diff --git a/.gitattributes b/.gitattributes index 41aef290fd..b09befdedd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,9 +2,14 @@ *.pdf binary # Unified diffs require a leading space on blank context lines. *.patch -whitespace +*.diff -whitespace # Preserve the exact upstream bytes, including original whitespace. upstream/** -whitespace # Preserve the exact pinned third-party proof snapshots and notices. references/copied-centers/pr29/** -whitespace references/copied-centers/pr33/** -whitespace references/semantic-bulk/** -whitespace +# Immutable signed-recursion imports retain their original Git bytes. +references/signed-recursion/** -text -whitespace +# Immutable stopped-recursion inputs retain their original Git bytes. +references/stopped-recursion/** -text -whitespace diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 6bd374e1ca..9868482c61 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -11,12 +11,12 @@ permissions: jobs: verify: runs-on: ubuntu-24.04 - timeout-minutes: 20 + timeout-minutes: 40 strategy: fail-fast: false matrix: python-version: ['3.11', '3.13', '3.14'] - group: [community, producers, certificates, ternary, research, tests, strips, clones, positive, joint, pair] + group: [community, producers, certificates, ternary, research, tests, strips, clones, positive, joint, pair, rank-pair, ordered-frames, balanced-split, aligned-exchange, deferred-span, merged-span, saturated-deferred, stopped-pairtree] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: @@ -31,6 +31,9 @@ jobs: sudo apt-get update sudo apt-get install -y libboost-dev fi + - name: Install pinned symbolic endpoint-check dependencies + if: matrix.group == 'saturated-deferred' + run: python -m pip install sympy==1.14.0 mpmath==1.3.0 - name: Check arithmetic, source hashes, finite identities, and patches run: make verify-${{ matrix.group }} - name: Require reproducible certificates and patches diff --git a/Makefile b/Makefile index 84fe8290f3..ba8ffba95e 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,14 @@ verify: $(MAKE) verify-joint $(MAKE) verify-pair $(MAKE) verify-tests + $(MAKE) verify-rank-pair + $(MAKE) verify-ordered-frames + $(MAKE) verify-balanced-split + $(MAKE) verify-aligned-exchange + $(MAKE) verify-deferred-span + $(MAKE) verify-merged-span + $(MAKE) verify-saturated-deferred + $(MAKE) verify-stopped-pairtree verify-community: community-audit-check community-followup-check copied-reversed-producer copied-reversed-check copied-fixed-reversed-producer copied-fixed-reversed-check $(MAKE) copied-fixed-verify @@ -428,3 +436,57 @@ pair-assembly-verify: pair-assembly-producer pair-assembly-check .PHONY: verify-pair verify-pair: pair-assembly-verify python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: verify-rank-pair rank-pair-verify rank-pair-refinement-verify +verify-rank-pair: rank-pair-verify rank-pair-refinement-verify +rank-pair-verify: + python3 research/rank-pair/frame_compile.py + python3 research/rank-pair/screen.py + python3 -m unittest discover -s tests -p 'test_rank_pair.py' -v + +rank-pair-refinement-verify: + python3 research/rank-pair-refinement/refine.py + +.PHONY: verify-ordered-frames ordered-frames-verify +verify-ordered-frames: ordered-frames-verify +ordered-frames-verify: + python3 research/ordered-frames/producer.py + python3 research/ordered-frames/graph_audit.py + python3 research/ordered-frames/check.py + python3 research/ordered-frames/independent_check.py + +.PHONY: verify-balanced-split balanced-split-frames-verify +verify-balanced-split: balanced-split-frames-verify +balanced-split-frames-verify: + python3 research/balanced-split-frames/producer.py + python3 research/balanced-split-frames/graph_audit.py + python3 research/balanced-split-frames/check.py + python3 research/balanced-split-frames/independent_check.py + +.PHONY: verify-aligned-exchange aligned-exchange-frames-verify +verify-aligned-exchange: aligned-exchange-frames-verify +aligned-exchange-frames-verify: + python3 research/aligned-exchange-frames/producer.py + python3 research/aligned-exchange-frames/graph_audit.py + python3 research/aligned-exchange-frames/check.py + python3 research/aligned-exchange-frames/independent_check.py + +.PHONY: verify-deferred-span deferred-span-frames-verify +verify-deferred-span: deferred-span-frames-verify +deferred-span-frames-verify: + python3 research/deferred-span-frames/verify.py + +.PHONY: verify-merged-span merged-span-frames-verify +verify-merged-span: merged-span-frames-verify +merged-span-frames-verify: + python3 research/merged-span-frames/verify.py + +.PHONY: verify-saturated-deferred saturated-deferred-verify +verify-saturated-deferred: saturated-deferred-verify +saturated-deferred-verify: + python3 research/saturated-deferred/verify.py + +.PHONY: verify-stopped-pairtree stopped-pairtree-verify +verify-stopped-pairtree: stopped-pairtree-verify +stopped-pairtree-verify: + python3 research/stopped-pairtree/verify.py diff --git a/NOTICE b/NOTICE index b565637758..a3f3cf8526 100644 --- a/NOTICE +++ b/NOTICE @@ -302,3 +302,107 @@ inherited PR #48 sources. The stacked witness in research/pair-assembly/frame uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and verify_skip_frame.py. Original notices are retained. + +Rank-first reclamation on interval-strip pair assembly, 8 October 2026 +Composition and exact profile witness: Dominik Scholz, with substantial OpenAI +GPT-6 Astra / Codex assistance. The PR #60 descending-frame-rank compiler by +Chafik Boukhalfa is reused unchanged on Avi Eisenberg's PR #62 scalar graph. +The joint frame compiler and paid reclamation are eumemic's PR #57, developed +with OpenAI Codex assistance. PR #62 records Anthropic Claude assistance. +This composition improves actual fixed-basis block profiles with unchanged +role counts; no new slot-priority rule or scalar graph is claimed. All prior +contributors, licenses, compiler arguments and conditional analytic/tape +interfaces remain credited. See research/rank-pair/PROOF.md. + +Ordered scalar frames, minimum-raise reclamation and coordinate relabeling +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +The new finite construction and exact arithmetic certificates are in +research/ordered-frames, with an earlier parameter refinement in +research/rank-pair-refinement. These build on Dominik Scholz's PR #63 +composition, Chafik Boukhalfa's PR #60 reclamation compiler, Avi Eisenberg's +PR #62 scalar graph and eumemic's PR #57 reversible frame compiler. +Concurrent PR #65/#67 work is acknowledged in the proof. All inherited +licenses, author notices and conditional proof boundaries remain in force. + +Balanced split frames with core node ordering and coordinate relabeling +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +This composition combines eumemic's PR69 coarse column sums, Chafik Boukhalfa's +PR71 anchored split/next-use-live compiler, and the earlier PR74 node ordering +and coordinate relabeling. Rohan Garg's PR59 split operation, Avi Eisenberg's +PR62 scalar graph, Rohan Arun's PR65/67 schedules and profile-cost selection, +Dominik Scholz's PR63/68 composition and pending controls, and eumemic's PR57 +compiler remain credited. Original source closures and notices are preserved +under references/frame-compiler/pr69 and pr71; all preceding licenses apply. +See research/balanced-split-frames/PROOF.md for the finite conditional scope. + +Aligned multi-pair recursion and coordinated carrier exchanges +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +This finite construction splits and aligns six or nine top-level pairs, +adds cardinality-preserving two-edge carrier cycles, and composes future-unit +basis completion and coordinate-aware pricing with the inherited compiler. +Chafik Boukhalfa's PR79 future completion, Rohan Arun's PR82 composition and +geometric pricing, Alejandro Zarzuelo Urdiales's PR70 carrier exchanges, +Dominik Scholz's PR76 profile pricing, eumemic's PR69 balanced sums, Rohan +Garg's PR59 split operation, and the PR71/PR74 sources remain credited. +All earlier source-specific licenses and notices apply. Selected exact PR82 +Git blobs supplement the preserved PR69/PR71 archives. See +research/aligned-exchange-frames/PROOF.md for the finite conditional scope. + +The selected aligned-recursion update also preserves Chafik Boukhalfa's PR84 +indexed engine and its outgoing-use routing. Explicit coordinate pricing +and the new deeper aligned/half-plane scalar graphs compose with that source; +PR84's original source, license, notices and strategy audits are archived +unchanged under references/frame-compiler/pr84. + +Deferred reconstruction from reserved retired spans +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +This storage extension reserves compatible retired carriers, clears a pending +value using an explicit linear dependence, and reconstructs it before its next +use. The selected witness includes 23 three-carrier reconstructions and pays +all added operations and frame changes. It composes with the aligned scalar +graphs, coordinate pricing and archived PR84 engine described above. All +inherited contributors, licenses, notices and conditional proof boundaries +remain credited. See research/deferred-span-frames/PROOF.md. + +Merged auxiliary endpoints with deferred span storage +Composition prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +Merged auxiliary exterior profiles and the exact complementary-projector +profiler are eumemic's PR96 contribution, prepared with Anthropic Claude +assistance. Chafik Boukhalfa's PR91 supplies the smaller 23-dimensional axis; +Rohan Arun's PR93 and Maxime Fleury's PR94 supply further coordinate choices. +PR94 records Codebuff assistance. This composition adds an explicit +multiplicative endpoint argument, fresh combined reproduction, independent +audits, and the previously credited deferred storage extension. All original +source notices, licenses, conditional hypotheses and contributor credits +remain in force. See research/merged-span-frames/PROOF.md. + +Saturated deferred readouts with balanced transfer +Integrated reproduction prepared for Thomas DiFiore with substantial OpenAI +Codex assistance. Swapnil Jain supplies the round-seven deferred bit and +round-six complex networks, lifted frames, late copies, V leaves and common +flag/staircase basis, with the original Claude assistance disclosure. +Zhihao Chen / jacklightChen supplies PR97's reflected ledgers, commuting fan +order, nonzero endpoint gauges, signed complex correction and main-interface +integration, with Codex assistance. djsmanchanda supplies PR99's nondegenerate +readout saturation and selected changed frames, with Codex assistance. +Rohan Arun supplies PR100's exact moment refinement and balanced transfer, +with Codex assistance. Paureel, Avi Eisenberg, RaD, icekylinx, James Chang, +Dominik Scholz, Douglas Colkitt, OpenAI and all earlier contributors retain +the credits in the preserved notices. Original Git bytes and licenses are +archived under references/signed-recursion. See +research/saturated-deferred/PROOF.md for the finite conditional scope. + +Stopped pair-star trees and integer-weighted carrier exchanges +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. +The new binary exclusion tree and deterministic cardinality-preserving +integer-weighted exchanges refine the complete paid complex child moment. +icekylinx supplies PR104's opposite-bank factorization, stopped atom interface, +rational centers and retained ordinary leaf lineage. Rohan Arun supplies PR107 +and its comparison producer, PR100's balanced transfer and exact refinement +precedents. Zhihao Chen, RaD / hipotures, James Chang, Aurel Prosz / Paureel, +eumemic, Swapnil Jain, Dominik Scholz and all preceding contributors retain +the credits in the original notices. Douglas Colkitt, OpenAI, David Harvey +and Joris van der Hoeven retain their framework and analytic-work credits. +The complete selected PR107 source closure is archived as original Git blobs +under references/stopped-recursion/pr107, including original AI disclosures +and licenses. See research/stopped-pairtree/PROOF.md for conditional scope. diff --git a/README.md b/README.md index 035c259b68..b424eb8823 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,33 @@ +# Proposed stopped pair-tree refinement: conditional κ = 7.808981744031e-5 + +This branch proposes **κ = 7808981744031/100000000000000000**, combining a +new binary pair-star exclusion tree and deterministic integer-weighted carrier +exchanges with icekylinx's PR104 stopped product-ring/rational-center interface +and Rohan Arun's PR107 comparison and PR100 balanced transfer. It improves the +pinned PR107 witness by approximately **0.13553%**. The complete paid recursive +moment improves despite a larger auxiliary role count. + +[Construction and reproduction](research/stopped-pairtree/README.md) · +[Proof and credits](research/stopped-pairtree/PROOF.md) · +[Exact certificate](research/stopped-pairtree/certificate.json) + +Run `make stopped-pairtree-verify` with Python 3.11+ and a C++17 compiler. +The gate freshly reproduces the complex producers and matching, checks every +signed scalar coefficient, actual binary frame, carrier edge and literal role +operation, and independently checks the recurrence, three row reserves, +47 strict constraints and seven margins. The unchanged coarse bit producer +and ordinary leaf are inherited, source-pinned inputs. Finite interface +controls accompany the written stopped-recursion and balanced-layout review. +The result retains all inherited and newly proposed analytic, streaming and +all-size tape hypotheses; it is not a measured runtime speedup. + +Earlier constructions remain available, including +[the saturated deferred composition](research/saturated-deferred/README.md), +`research/merged-span-frames/` and `research/deferred-span-frames/`. +The inherited reviewed result below is separate from this proposal. + +Prepared for Thomas DiFiore with substantial OpenAI Codex assistance. + # A sharper exponent for integer multiplication **Community research maintained by Douglas Colkitt — conditional on the original diff --git a/certificates/joint-dual-kappa.json b/certificates/joint-dual-kappa.json index d92f653fe4..f2110ee6cc 100644 --- a/certificates/joint-dual-kappa.json +++ b/certificates/joint-dual-kappa.json @@ -842,7 +842,7 @@ "scripts/experiments/pin_joint_dual_sources.py": "4d31cc0e38b7902709ca5f8f714cba109760d2592346dd7f8dc0b900a2d9fe00", "scripts/experiments/verify_joint_dual.py": "7a31bba1e9c0ded32ae285df2ca9bc91ef20c330f6789fdba361876f3c7a1985" }, - "source_manifest_sha256": "fd1aab7d75753b4b55b2377f26119dae74f367b0b4fab66cba42d944b3042cc9", + "source_manifest_sha256": "332e2f9a72f191b02edb10d33f58e2bd269f45fd28b3726c2489c641cd073d06", "sources": [ { "files": { diff --git a/certificates/joint-dual-validation.json b/certificates/joint-dual-validation.json index 99adb4cf74..5a1d2da5aa 100644 --- a/certificates/joint-dual-validation.json +++ b/certificates/joint-dual-validation.json @@ -226,7 +226,7 @@ } }, "bit_saving": "2382370177/50000000000000", - "certificate_sha256": "2ed658f05365b28825e24a6e7bac9fc9cc015d5a5d63d9579f4ac6e0640ae559", + "certificate_sha256": "b2e0da4544dd256074c7151a8a3066cdf8e1ed5415069bdb252396b8bd5fe83c", "kappa": "4764513337/100000000000000", "margins": 7, "producer_words_regenerated_and_matched": true, diff --git a/references/frame-compiler/pr69/LICENSE b/references/frame-compiler/pr69/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/frame-compiler/pr69/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/frame-compiler/pr69/NOTICE b/references/frame-compiler/pr69/NOTICE new file mode 100644 index 0000000000..901d0e2c23 --- /dev/null +++ b/references/frame-compiler/pr69/NOTICE @@ -0,0 +1,311 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Balanced coarse-column sums (eumemic, with OpenAI Codex assistance): +Reassociates PR62 coarse sums into shared two-edge column sums, compiled +with PR57 joint frames and PR60 rank-first slot reclamation. PR62 graph: +Avi Eisenberg / ikeboy with Anthropic Claude assistance; PR60 priority: +Chafik Boukhalfa with OpenAI Codex assistance; PR63 composition: Dominik +Scholz with OpenAI Codex assistance. All inherited credits are retained. diff --git a/references/frame-compiler/pr69/SOURCE.json b/references/frame-compiler/pr69/SOURCE.json new file mode 100644 index 0000000000..b4481a8a8a --- /dev/null +++ b/references/frame-compiler/pr69/SOURCE.json @@ -0,0 +1,12 @@ +{ + "commit": "91aa1f17e6e3fc063241686a41a34ddd0dc24c50", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499" + }, + "pull_request": "https://github.com/CrocSwap/integer-mult-bounds/pull/69", + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "scope": "Original coarse-sum replacement and notices; new producer applies the literal replacement to PR71s byte-identical archived PR62 graph." +} diff --git a/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt b/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt new file mode 100644 index 0000000000..d4534278e5 --- /dev/null +++ b/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt @@ -0,0 +1,62 @@ +Balanced coarse sums: finite physical witness + +Run from the repository root with Python 3 and a C++17 compiler available: + + python3 scripts/experiments/verify_balanced_coarse.py + +An independent dense global-support audit also checks the scalar graph: + + python3 scripts/experiments/pr62_exploration/audit_balanced_coarse.py \ + --check certificates/balanced-coarse-independent-audit.json + +Regenerate each physical word with the pinned compiler, for example: + + python3 scripts/experiments/balanced_coarse_compiler.py --h 23 \ + --output /tmp/balanced-coarse-23-receipt.json \ + --word /tmp/balanced-coarse-23.json.gz + +Repeat with --h 25 and corresponding output paths. + +Assertions must remain enabled. The verifier independently replays both saved +physical XOR words on the complete input and dirty basis in both orientations, +checks every original-envelope frame incidence, reconstructs transitions, +recomputes fixed-I+J profiles with bounded-minor CRT controls, and checks the +exact recurrence, all 47 strict assembly inequalities and seven margins. +It binds the source manifests, compiler record, words and verification code. +It also excludes the complete pinned predecessor child network at the new +bit saving using an exact lower moment bound. + +The fixed rational witness is + + bit saving = 513710137 / 10000000000000 + kappa = 1284209371 / 25000000000000 = 0.00005136837484. + +The local change factors a four-edge coarse sum into two two-edge column sums +and then their sum. Each sum still takes three additions before interning; +existing interning can now share the column sums with strip computations. +The intermediate envelopes and physical carrier opportunities also change. +The resulting words use 27,698 roles at dimension 23 and 36,300 at dimension +25; actual transition profiles and every dirty coordinate are checked. + +The surrounding interval graph is PR62 (Avi Eisenberg / ikeboy with +Anthropic Claude assistance), joint frame compilation is PR57 (eumemic with +OpenAI Codex assistance), and descending-rank reclamation is PR60 (Chafik +Boukhalfa with OpenAI Codex assistance). Dominik Scholz's contemporaneous +PR63 uses those three ingredients before the balanced coarse-sum change. +The pinned ranked-interval comparison is an independent reproduction of +that predecessor, with finer rational rounding. PR64 reports a still finer +arithmetic refinement of the same predecessor words; the certificate labels +that comparison as reported, without claiming to replay the PR64 sources. The new factorization and +this finite integration were prepared with OpenAI Codex assistance. + +Outputs use the certificates/balanced-coarse- prefix. The exact composition +is in balanced-coarse-kappa.json and the completed replay record is in +balanced-coarse-validation.json. The producer and inherited sources are +hash-pinned under references/frame-compiler/balanced-coarse; original +attribution and license notices are preserved. + +Scope: this is a finite conditional certificate. The data profile and its +ten exact rational recoveries, ordered affine residual compiler, fixed-tape +recursion, scalar overhead, balanced transfer, analytic, routing and recovery +interfaces remain inherited dependencies. It is not an unconditional proof +of an improved integer-multiplication theorem or a global optimality claim. diff --git a/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py b/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py new file mode 100644 index 0000000000..271b44d795 --- /dev/null +++ b/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +"""Balance each four-edge coarse sum in PR62 into two column pair-star sums. + +Instead of a three-addition chain, use (e(a,b)+e(a2,b))+(e(a,b2)+e(a2,b2)). +The existing interning shares pair-star sums with the strip computations. +Only the coarse-edge construction changes. The full graph is checked and +compiled, so all remaining copies and clearing operations remain charged. + +Base graph: Avi Eisenberg / ikeboy, with Anthropic Claude assistance (#62). +Compiler: eumemic with OpenAI Codex assistance (#57). Rank priority: Chafik +Boukhalfa with OpenAI Codex assistance (#60). Their unchanged composition +is also published by Dominik Scholz with OpenAI Codex assistance (#63). +This coarse-sum experiment was prepared with OpenAI Codex assistance. +All inherited licenses and notices remain. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse +import gzip +from hashlib import sha256 +import inspect +import json +from pathlib import Path + +import binary_frame_compiler as compiler +import ranked_interval_compiler as predecessor + +ROOT = Path(__file__).resolve().parents[2] +PIN = ROOT / 'references/frame-compiler/balanced-coarse' +BEFORE = ''' coarse = {(i, j): self.total([e(a, b) for a in groups[i] for b in groups[j]]) + for i, j in combinations(range(ng), 2)}''' +AFTER = ''' def coarse_sum(i, j): + columns = [self.total([e(a,b) for a in groups[i]]) for b in groups[j]] + return self.total(columns) + coarse = {(i,j):coarse_sum(i,j) for i,j in combinations(range(ng),2)}''' + + +def check_sources(): + predecessor.check_sources() + manifest = json.loads((PIN / 'SOURCE.json').read_text()) + for name, digest in manifest['files'].items(): + assert sha256((PIN / name).read_bytes()).hexdigest() == digest, name + dependency = PIN / manifest['shared_dependency_manifest'] + assert sha256(dependency.read_bytes()).hexdigest() == manifest['shared_dependency_manifest_sha256'] + return manifest + + +def graph(h): + assert h in (23, 25) + check_sources() + path = predecessor.PIN / 'research/pair-assembly/pair_graph.py' + source = path.read_text() + assert source.count(BEFORE) == 1 + namespace = {'__file__': str(path), '__name__': 'balanced_coarse_pr62'} + exec(compile(source.replace(BEFORE, AFTER), str(path) + ':balanced_coarse', 'exec'), namespace) + result = namespace['graph'](h) + result.verify() + return result + + +def compile_axis(h): + circuit = graph(h) + source = inspect.getsource(compiler.compile_) + before = 'for s in sorted(retired):' + after = "for s in sorted(retired, key=lambda s: (-blocks[frames[s]]['rank'], s)):" + assert source.count(before) == 1 + namespace = dict(vars(compiler)) + exec(compile(source.replace(before, after), __file__ + ':ranked_compile', 'exec'), namespace) + # build() is the original function and resolves graph in compiler's globals. + previous = compiler.graph + compiler.graph = lambda _: circuit + try: + result, word = namespace['compile_'](h, matching=True, reclaim=True, dirty=True) + finally: + compiler.graph = previous + result['scalar'] = circuit.verify() + result['baseline_pr62_stacked_roles'] = {23: 27918, 25: 36586}[h] + return result, word + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--h', type=int, choices=(23, 25), required=True) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--word', type=Path, required=True) + args = parser.parse_args() + result, word = compile_axis(args.h) + raw = (json.dumps(word, separators=(',', ':')) + '\n').encode() + args.word.write_bytes(gzip.compress(raw, mtime=0)) + args.output.write_text(json.dumps(result, indent=2) + '\n') + print(json.dumps(result), flush=True) diff --git a/references/frame-compiler/pr71/LICENSE b/references/frame-compiler/pr71/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/frame-compiler/pr71/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/frame-compiler/pr71/Makefile b/references/frame-compiler/pr71/Makefile new file mode 100644 index 0000000000..1bd0bb83a6 --- /dev/null +++ b/references/frame-compiler/pr71/Makefile @@ -0,0 +1,437 @@ +.PHONY: verify note audit-note tuned-note reuse-note incidence-note dag-note shared-point-note paired-note compact-note complex-note ternary-note fetch +.DEFAULT_GOAL := verify + +.PHONY: community-audit-check +community-audit-check: + python3 scripts/audit_community_candidate.py --check docs/research/community-audit-arithmetic.json + +.PHONY: community-followup-check +community-followup-check: + python3 scripts/audit_followup_candidate.py --candidate-root . --check docs/research/community-followup-arithmetic.json + +.PHONY: verify-community verify-producers verify-certificates verify-ternary verify-tests +# CI runs these in separate checkouts. Keep local verification sequential: +# different groups regenerate certificates that another group may read. +verify: + $(MAKE) verify-community + $(MAKE) verify-producers + $(MAKE) verify-certificates + $(MAKE) verify-ternary + $(MAKE) verify-research + $(MAKE) verify-strips + $(MAKE) verify-clones + $(MAKE) verify-positive + $(MAKE) verify-joint + $(MAKE) verify-pair + $(MAKE) verify-tests + +verify-community: community-audit-check community-followup-check copied-reversed-producer copied-reversed-check copied-fixed-reversed-producer copied-fixed-reversed-check + $(MAKE) copied-fixed-verify + $(MAKE) climbed-48-verify + +verify-producers: + $(MAKE) copied-centers-verify + $(MAKE) structured-bulk-verify + $(MAKE) endpoint-gauge-producer endpoint-gauge-certificate + $(MAKE) partial-swap-producer partial-swap-certificate + +verify-certificates: + python3 scripts/prime_field_network.py + python3 scripts/complex_network.py + python3 scripts/fast_gaussian.py + $(MAKE) batched-certificate batched-patch + python3 scripts/certify.py + python3 scripts/search_network.py + python3 scripts/make_patch.py + python3 scripts/nonadjacent.py + python3 scripts/make_nonadjacent_patch.py + python3 scripts/tune_routing.py + python3 scripts/research_networks.py + python3 scripts/search_network_variants.py + python3 scripts/block_label_targets.py + python3 scripts/audit_block_labels.py + python3 scripts/audit_additive_labels.py + python3 scripts/small_block_witness.py + python3 scripts/incidence_network.py + python3 scripts/make_incidence_patch.py + python3 scripts/search_incidence_partitions.py + python3 scripts/dag_network.py + python3 scripts/make_dag_patch.py + python3 scripts/shared_point_network.py + python3 scripts/make_shared_point_patch.py + python3 scripts/paired_network.py + python3 scripts/make_paired_patch.py + python3 scripts/prepare_layers.py + python3 scripts/audit_sparse_fusion.py + python3 scripts/audit_fused_block.py + python3 scripts/audit_short_guards.py + python3 scripts/audit_gather_schedules.py + python3 scripts/audit_coded_carries.py + python3 scripts/audit_cancellation.py + python3 scripts/audit_joint_frames.py + python3 scripts/audit_compact_controls.py + python3 scripts/compact_control_layer.py + python3 scripts/make_compact_control_patch.py + python3 scripts/audit_scratch_pooling.py + python3 scripts/reuse_network.py + python3 scripts/make_reuse_patch.py + +verify-ternary: + python3 scripts/complex_compression.py + python3 scripts/make_complex_compression_patch.py + python3 scripts/audit_ternary_side.py + python3 scripts/make_ternary_patch.py + +verify-tests: + python3 scripts/run_isolated_tests.py + git apply --check --directory=upstream patches/frozen-154.patch + git apply --check --directory=upstream patches/balanced-153.patch + git apply --check --directory=upstream patches/same-network-129.patch + git apply --check --directory=upstream patches/h46-111.patch + git apply --check --directory=upstream patches/h46-109.patch + git apply --check --directory=upstream patches/h46-108.patch + git apply --check --directory=upstream patches/h46-rational.patch + git apply --check --directory=upstream patches/nonadjacent-layout.patch + git apply --check --directory=upstream patches/frozen-nonadjacent-107.patch + git apply --check --directory=upstream patches/h46-nonadjacent-78.patch + git apply --check --directory=upstream patches/h46-nonadjacent-76.patch + git apply --check --directory=upstream patches/h46-shared-side-75.patch + git apply --check --directory=upstream patches/h46-incidence-67.patch + git apply --check --directory=upstream patches/h46-dag-63.patch + git apply --check --directory=upstream patches/h46-shared-point.patch + git apply --check --directory=upstream patches/h50-paired-59.patch + git apply --check --directory=upstream patches/compact-control-34.patch + git apply --check --directory=upstream patches/complex-compression-31.patch + git apply --check --directory=upstream patches/ternary-30.patch + git apply --check --directory=upstream patches/batched-23.patch + +note: + mkdir -p artifacts + tectonic --outdir artifacts notes/parameter-note.tex + +audit-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/nonadjacent-axis-note.tex + +tuned-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/routing-tuned-note.tex + +reuse-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/stage-reuse-note.tex + +incidence-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/incidence-note.tex + +dag-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/dag-note.tex + +shared-point-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/shared-point-note.tex + +paired-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/paired-note.tex + +compact-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/compact-control-note.tex + +complex-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/complex-compression-note.tex + +ternary-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/ternary-note.tex + +fetch: + python3 scripts/fetch_upstream.py + +.PHONY: batched-certificate batched-patch batched-note +PDFLATEX ?= pdflatex +TEX_ENGINE ?= pdflatex +TECTONIC ?= tectonic + +batched-certificate: + python3 scripts/controlled_bit_rank_moment.py --output certificates/controlled-bit-rank-moment.json > /dev/null + python3 scripts/batched_network.py --output certificates/batched-network.json --summary + +batched-patch: + python3 scripts/make_batched_patch.py + +batched-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/batched-23-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex +endif + +.PHONY: partial-swap-producer partial-swap-certificate partial-swap-note +partial-swap-producer: + python3 scripts/partial_swap_producer.py + +partial-swap-certificate: + python3 scripts/partial_swap_network.py + +partial-swap-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/partial-swap-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex +endif + +.PHONY: endpoint-gauge-producer endpoint-gauge-certificate endpoint-gauge-note +endpoint-gauge-producer: + python3 scripts/endpoint_gauge_producer.py + +endpoint-gauge-certificate: + python3 scripts/endpoint_gauge_network.py + +endpoint-gauge-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/endpoint-gauge-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex +endif + +.PHONY: endpoint-gauge-verify +endpoint-gauge-verify: endpoint-gauge-producer endpoint-gauge-certificate + python3 -m unittest discover -s tests -p 'test_endpoint_gauge.py' -v + +.PHONY: structured-bulk-producer structured-bulk-certificate structured-bulk-verify structured-bulk-note +structured-bulk-producer: + python3 scripts/structured_bulk_producer.py + +structured-bulk-certificate: + python3 scripts/structured_bulk_network.py + +structured-bulk-verify: structured-bulk-producer structured-bulk-certificate + +structured-bulk-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/structured-bulk-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex +endif + +.PHONY: copied-centers-producer copied-centers-certificate copied-centers-verify +copied-centers-producer: + python3 scripts/copied_centers_producer.py + +copied-centers-certificate: + python3 scripts/copied_centers_network.py + +copied-centers-verify: copied-centers-producer copied-centers-certificate + +.PHONY: copied-reversed-check copied-reversed-producer +copied-reversed-check: + python3 research/copied-reversed/geometry.py + python3 research/copied-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_reversed.py' -v + +copied-reversed-producer: + mkdir -p build/copied-reversed/producer + python3 scripts/copied_centers_producer.py --work-dir build/copied-reversed/producer --output build/copied-reversed/producer.json + + +.PHONY: copied-fixed-reversed-check copied-fixed-reversed-producer +copied-fixed-reversed-check: + python3 research/copied-fixed-reversed/geometry.py --full + python3 research/copied-fixed-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_fixed_reversed.py' + +copied-fixed-reversed-producer: + mkdir -p build/copied-fixed-reversed/producer + python3 research/copied-fixed-reversed/producer.py --work-dir build/copied-fixed-reversed/producer --output build/copied-fixed-reversed/producer.json + python3 research/copied-fixed-reversed/review/fixed25_copied_crt_audit.py --work-dir build/copied-fixed-reversed/producer --record build/copied-fixed-reversed/producer.json --profiler-source research/copied-fixed-reversed/full_profiles25.cpp --output build/copied-fixed-reversed/crt-audit.json + + +.PHONY: copied-fixed-verify copied-fixed-producer copied-fixed-check +copied-fixed-producer: + python3 research/copied-fixed/producer.py + +copied-fixed-check: + python3 research/copied-fixed/audit.py + python3 research/copied-fixed/verify.py --output research/copied-fixed/certificate.json + python3 -m unittest discover -s tests -p 'test_copied_fixed.py' -v + +copied-fixed-verify: copied-fixed-producer copied-fixed-check + +.PHONY: climbed-48-verify climbed-48-producer climbed-48-check +climbed-48-producer: + python3 research/climbed-48/producer.py + +climbed-48-check: + python3 research/climbed-48/witness.py --output research/climbed-48/certificate.json + python3 -m unittest discover -s tests -p 'test_climbed_48.py' -v + +climbed-48-verify: climbed-48-producer climbed-48-check + +.PHONY: formal-verify formal-historical-verify formal-gaussian-verify +formal-verify: formal-historical-verify formal-gaussian-verify + +formal-historical-verify: + cd formal/lean && lake build + python3 scripts/check_lean_axioms.py --project formal/lean --audit formal/lean/AuditAll.lean + python3 formal/lean/sources.py + python3 formal/open-prs/drift_A.py + python3 formal/open-prs/drift_B.py --selftest + python3 formal/open-prs/drift_C.py + mkdir -p build/formal + python3 formal/circuit/export_paired.py build/formal/paired50.json + python3 -I formal/circuit/check_paired.py build/formal/paired50.json + +formal-gaussian-verify: + $(MAKE) -C research/gaussian-parity-synthesis verify + python3 scripts/check_lean_axioms.py --project research/gaussian-parity-synthesis --audit research/gaussian-parity-synthesis/AuditAll.lean + +.PHONY: verify-research +# Historical finite searches; no current witness or production certificates change. +verify-research: + python3 scripts/audit_bit_compression.py + python3 scripts/audit_mixed_point.py + python3 scripts/audit_early_sharing.py + python3 scripts/audit_split_centers.py + python3 scripts/audit_stage_pair.py + python3 scripts/audit_block_carry.py + python3 scripts/audit_joint_return.py + python3 scripts/audit_cyclic_topology.py + python3 scripts/audit_fano_completion.py + python3 scripts/audit_fano_permutation.py + python3 scripts/audit_rank_product_core.py + python3 scripts/audit_stronger_screens.py + python3 scripts/audit_subset_cores.py + python3 scripts/audit_cube_cores.py + python3 scripts/audit_single_intersection.py + python3 scripts/audit_shared_core.py + python3 scripts/audit_general_guard.py + python3 scripts/audit_disjoint_tensor.py + python3 scripts/audit_core_limits.py + python3 scripts/audit_affine_vectors.py + python3 scripts/audit_block_core.py + python3 scripts/audit_complex_centers.py + python3 scripts/audit_inplace_side.py + python3 scripts/audit_quadratic_affine.py + python3 scripts/audit_signed_sparse.py + python3 scripts/audit_positive_side.py + python3 scripts/audit_parity_side.py + python3 scripts/audit_prime_subset_limits.py +.PHONY: skip-frame-verify +skip-frame-verify: + python3 scripts/experiments/verify_skip_frame.py + + +.PHONY: joint-dual-verify +joint-dual-verify: + python3 scripts/experiments/verify_joint_dual.py + python3 -m unittest discover -s tests -p 'test_joint_reclaim.py' -v + + +.PHONY: skip-strips-verify skip-strips-producer skip-strips-check +skip-strips-producer: + python3 research/skip-strips/producer.py + +skip-strips-check: + python3 research/skip-strips/audit.py + python3 research/skip-strips/verify.py --output research/skip-strips/certificate.json + cd research/skip-strips && python3 -m unittest discover -s ../../tests -p 'test_skip_strips.py' -v + +skip-strips-verify: skip-strips-producer skip-strips-check + +.PHONY: positive-skip-verify positive-skip-build positive-skip-check +positive-skip-build: + python3 scripts/audit_positive_skip_exact.py + +positive-skip-check: + python3 research/positive-skip/witness.py --output research/positive-skip/certificate.json + python3 -m unittest discover -s tests -p 'test_positive_skip.py' -v + +positive-skip-verify: positive-skip-build positive-skip-check + +.PHONY: split-skip-producer split-skip-check split-skip-verify +split-skip-producer: + python3 research/split-skip/producer.py --work-dir build/split-skip --output build/split-skip-receipt.json + +split-skip-check: + python3 research/split-skip/witness.py + python3 research/split-skip/independent_arithmetic.py + python3 -m unittest discover -s tests -p 'test_split_skip.py' -v + +split-skip-verify: split-skip-producer split-skip-check + +.PHONY: skip-suffix-verify skip-suffix-producer skip-suffix-check +skip-suffix-producer: + python3 research/skip-suffix/producer.py + +skip-suffix-check: + python3 research/skip-suffix/audit.py + python3 research/skip-suffix/verify.py --output research/skip-suffix/certificate.json + cd research/skip-suffix && python3 -m unittest discover -s ../../tests -p 'test_skip_suffix.py' -v + +skip-suffix-verify: skip-suffix-producer skip-suffix-check + +.PHONY: skip-clones-verify skip-clones-producer skip-clones-check +skip-clones-producer: + python3 research/skip-clones/producer.py + +skip-clones-check: + python3 research/skip-clones/witness.py --output research/skip-clones/certificate.json + python3 -m unittest discover -s tests -p 'test_skip_clones.py' -v + +skip-clones-verify: skip-clones-producer skip-clones-check + +.PHONY: verify-strips verify-clones verify-positive verify-joint formal-matrix-verify +verify-strips: skip-strips-verify skip-suffix-verify +verify-clones: skip-clones-verify split-skip-verify +verify-positive: positive-skip-verify +verify-joint: skip-frame-verify joint-dual-verify + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + +formal-verify: formal-matrix-verify +formal-matrix-verify: + mkdir -p build + cd research/matrix-exponent-synthesis && lake build + python3 scripts/check_lean_axioms.py --project research/matrix-exponent-synthesis --audit research/matrix-exponent-synthesis/AuditAll.lean + python3 research/matrix-exponent-synthesis/run_checks.py --work "$$(mktemp -d build/matrix-synthesis.XXXXXX)" + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: pair-assembly-verify pair-assembly-producer pair-assembly-check +pair-assembly-producer: + python3 research/pair-assembly/producer.py + +pair-assembly-check: + python3 research/pair-assembly/audit.py + python3 research/pair-assembly/verify.py --output research/pair-assembly/certificate.json + python3 research/pair-assembly/frame/frame_verify.py + cd research/pair-assembly && python3 -m unittest discover -s ../../tests -p 'test_pair_assembly.py' -v + +pair-assembly-verify: pair-assembly-producer pair-assembly-check + +.PHONY: verify-pair +verify-pair: pair-assembly-verify + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: split-pair-verify +split-pair-verify: + python3 scripts/experiments/verify_split_pair.py + python3 -m unittest discover -s tests -p 'test_split_pair*.py' -v + +verify-joint: split-pair-verify diff --git a/references/frame-compiler/pr71/NOTICE b/references/frame-compiler/pr71/NOTICE new file mode 100644 index 0000000000..8adab44ba3 --- /dev/null +++ b/references/frame-compiler/pr71/NOTICE @@ -0,0 +1,324 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Aligned split-pair composition (2026-10-08) +------------------------------------------ +Avi Eisenberg: PR62 interval strips and core-aware pair assembly. Dominik +Scholz with OpenAI assistance: PR63 ranked-frame composition and PR68 pending +live-carrier controls. Rohan Arun with OpenAI assistance: PR65 region schedules +and refined exact arithmetic, and PR67 all-rank profile-cost selection and +its profile oracle. Rohan Garg / rohangar1 +with substantial OpenAI Codex assistance: PR59 split-pair operation. Eumemic +with substantial OpenAI Codex assistance: PR57 joint reversible compiler and +independent physical-word/profile checks. Chafik Boukhalfa with OpenAI Codex +assistance: PR60 ranked reclamation and this selected [1,1,2] split vector, +aligned common-point permutation, next-use profile score, composition and +certification package. +The complete PR65 baseline words, profiles and arithmetic, plus 43 original +source/provenance files, are preserved under references/frame-compiler/pr65. +The original PR59 split operation and notices are separately preserved. +PR67's compiler/oracle and baseline profile, and PR68's compiler/driver/proof, +retain their original bytes, licenses and notices in their own archives. +All previous notices and mathematical dependencies remain applicable. diff --git a/references/frame-compiler/pr71/README.md b/references/frame-compiler/pr71/README.md new file mode 100644 index 0000000000..4a9b481aa3 --- /dev/null +++ b/references/frame-compiler/pr71/README.md @@ -0,0 +1,172 @@ +# A sharper exponent for integer multiplication + +**Community research maintained by Douglas Colkitt — conditional on the original +OpenAI #109 framework.** + +The reviewed community witness gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\boxed{\kappa=\frac{25508460085039}{500000000000000000} +=5.1016920170078\times10^{-5}>2^{-15}}. +$$ + +This is **23.71% above the preceding PR #49 release** and remains below 2^-14. +It is an improvement in the asymptotic exponent saving, not a measured runtime +speedup. The model and general reduction are inherited from OpenAI's +[*Integer multiplication below n log n*](https://github.com/openai/math/tree/adc7f1241b42e322a6451854ab7e4b4c146bf78a/preprints/Integer-multiplication-below-n-log-n-September-23-2026). + +**[Maintainer review and contribution ledger](docs/research/community-round2-review.md)** · +[Finite circuit proof](research/pair-assembly/PROOF.md) · +[Selected parameter certificate](research/matrix-exponent-synthesis/candidate/arithmetic.json) · +[Independent arithmetic check](docs/research/community-pair-arithmetic.json) + +## Additional conditional construction: anchored split frames with live reclamation + +The [split-pair proof and reproduction guide](research/split-pair/README.md) +gives **κ=51414646104039/10^18=5.1414646104039e-5**, approximately +**0.7463402960%** above the complete pinned PR67 witness. It combines +the PR62/63 interval pair graph, the PR59 split operation, PR65's schedules +and exact arithmetic, PR67's profile-cost selection, and PR68's pending live +controls on the PR60/57 reversible frame compiler. +The new selection uses split vector `[1,1,2]` and aligns the first intact +global pair across common-point permutations. A new integer score uses each +live control's known next-use frame. Actual roles are R23=27455 +and R25=36015, with W=135075665. + +`make split-pair-verify` regenerates the words, checks arbitrary dirty scratch +and actual fixed-I+J profiles, and certifies the complete recursive child +list and strict assembly inequalities. This separately submitted finite +conditional witness retains the inherited all-size hypotheses. Its namespace, +sources and comparison remain distinct from the maintainer-reviewed statement +above. Prepared by Chafik Boukhalfa with OpenAI Codex assistance; contributor +credits and original notices are retained in the package. + +## What changed + +**Avi Eisenberg's interval strips and core-aware pair assembly (#62)** arrange +additions to allow more physical wire reuse. Combined with **eumemic's joint +frame compiler (#57)**, this yields the strongest finite network in this batch. +**Alejandro Zarzuelo Urdiales's exact parameter refinement and scoped Lean +certificate (#61)** supply the selected numerical value. + +The bit network has m=575 and 137,151,806 physical roles; its certified recursive +saving is 102039046058023/2000000000000000000. The complex network retains saving +717/10^7. All recursive children, workspace restoration, copied centers and +endpoint costs remain charged. The seven final exponent margins are strictly positive. + +The preceding combination of Avi's skip-prefix strips (#53), **Rohan Gupta's +dual-suffix layout (#55)**, eumemic's compiler and **Chafik Boukhalfa's composition +and ranked reclamation (#58/#60)** is also fully retained and reviewed. + +Other reviewed contributions are retained even when their numerical witnesses +are superseded: **RaD's enlarged-frame and clone machinery (#51)**, **Rohan Arun's +positive-frame composition and order searches (#52/#56)**, **Rohan Gupta's parallel +order search (#50)**, **Chafik's original-envelope clones (#54)**, and **Rohan Garg's +split-pair recursion (#59)**. The review records the exact validation scope of each. + +## Attribution + +The names below identify GitHub contributors; they are not verified Twitter handles. + +- **[Avi Eisenberg (ikeboy)](https://github.com/ikeboy):** skip-prefix and interval strips, core-aware pair assembly ([#53](https://github.com/CrocSwap/integer-mult-bounds/pull/53), [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62)). +- **[Rohan Gupta (gupt1156)](https://github.com/gupt1156):** dual-suffix strips and parallel order improvements ([#50](https://github.com/CrocSwap/integer-mult-bounds/pull/50), [#55](https://github.com/CrocSwap/integer-mult-bounds/pull/55)). +- **[eumemic](https://github.com/eumemic):** joint frame compilation and paid reclamation ([#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57)); earlier complex circuits, Gaussian resampling and source frames. +- **[Chafik Boukhalfa (chafreaky)](https://github.com/chafreaky):** exact recovery, independent checkers, reordered sums, paid clones and joint-compiler composition/refinement ([#43/#46/#48/#54/#58/#60](docs/research/community-round2-review.md)). +- **[Rohan Arun (rohanarun)](https://github.com/rohanarun):** corner geometry, fixed-basis composition, weighted matching, order searches and positive-frame composition ([#49](https://github.com/CrocSwap/integer-mult-bounds/pull/49), [#52](https://github.com/CrocSwap/integer-mult-bounds/pull/52), [#56](https://github.com/CrocSwap/integer-mult-bounds/pull/56)). +- **[Rohan Garg (rohangar1)](https://github.com/rohangar1):** split-pair recursion, order refinement and paid-clone composition ([#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59)). +- **[Alejandro Zarzuelo Urdiales (alejandrozu)](https://github.com/alejandrozu):** Gaussian parity and finite tensor proofs, matrix/search tools, exact refinement and scoped Lean arithmetic ([#45](https://github.com/CrocSwap/integer-mult-bounds/pull/45), [#61](https://github.com/CrocSwap/integer-mult-bounds/pull/61)). +- **[RaD project (hipotures)](https://github.com/hipotures):** semantic precision, routing, phase-cell inversion, bulk resampling, alternating producers, physical compiler and enlarged-frame/clone machinery ([#41](https://github.com/CrocSwap/integer-mult-bounds/pull/41), [#51](https://github.com/CrocSwap/integer-mult-bounds/pull/51)). +- **icekylinx:** recursive batching, partial swaps, fixed projector profiles, copied retained centers and the selected complex construction. +- **Zhihao Chen (jacklightChen):** controlled bases, translated frames, semantic/bulk compatibility and two-stage integration. +- **James Chang (jamesyc):** reversed two-stage geometry and exact controls. +- **Aurel Prosz (Paureel) and Swapnil Jain:** attributed two-stage development and paid copied-stream endpoints. +- **Dominik Scholz:** dimension, parameter and fixed-basis refinements. +- **Ryan S (princezuda):** historical Lean certificates, algebraic contracts and independent circuit checks ([#26](https://github.com/CrocSwap/integer-mult-bounds/pull/26)). +- **Andrew Barnes (Bortlesboat) and David Leen (dleen):** aligned pairing, retained totals and sharing. + +The [full contribution record](CONTRIBUTORS.md) credits incorporated, parallel, +superseded and pending work separately. Douglas Colkitt maintains the project, +original research, review and integration, with OpenAI Codex assistance. +OpenAI's original manuscript and Harvey–van der Hoeven's analytic work retain +their attribution. Contributor-specific AI disclosures remain in [NOTICE](NOTICE). + +## Evidence and limits + +The [round-two review](docs/research/community-round2-review.md) extends the +[previous follow-up audit](docs/research/community-followup-review.md) and +[PR #39 transfer review](docs/research/community-final-audit.md). The original +#109 framework and retained all-size interfaces remain assumptions. This is not +full formal verification, independent human peer review, a worldwide priority +claim, or a practical multiplication benchmark. + +Fresh checks cover complete emitted words and dirty basis vectors, physical +frame transitions, exact fixed-basis profiles, all 4,073,300 data pairs for the +retained geometry, and independent rational recurrence/assembly arithmetic. +The formal packages verify their stated finite/arithmetic contracts. PR #61's +integrated axiom audit contains 169 distinct declarations, including 11 concrete +frontier theorems; its input rows are bound to the replayed finite profile. +They do not formalize the whole multiplication algorithm. + +The [review receipt](docs/research/community-round2-validation.json) distinguishes +fresh maintainer checks from contributor-supplied evidence. Earlier witnesses, +patches and attribution remain available. Submissions after #62 are outside this checkpoint's review; exact reviewed heads +are recorded in the ledger. + +## Reproduce + +```sh +make verify-pair +make verify-joint +make verify-positive +make formal-matrix-verify +# Complete arithmetic, producer, historical and unit-test suite: +make verify +``` + +Python 3.11+, a C++17 compiler and Boost headers are required for the full +arithmetic suite. The formal targets use their pinned Lean versions. See +[reproduction details](docs/reproducibility.md) and [CI layout](docs/ci-verification.md). + +## Historical witnesses and independent patches + + +Each patch applies independently to the **unmodified** pinned source; they are +alternatives, not a sequence to apply together. The +[result history](docs/research/result-history.md) records the earlier mechanisms +and scoped ceilings. The [preserved research index](docs/research/preserved-research.md) +collects the intermediate compression, routing, Fano, and core searches, including +scoped negative results and reproducible certificates. + +| Patch | Conditional saving | Scope | +| --- | --- | --- | +| [frozen-154](patches/frozen-154.patch) | `2^-154` | Original network and recurrence exponents | +| [balanced-153](patches/balanced-153.patch) | `2^-153` | Balanced assembly parameters | +| [same-network-129](patches/same-network-129.patch) | `2^-129` | Original network, sharper recurrence comparison | +| [h46-111](patches/h46-111.patch) | `2^-111` | Smaller network, dyadic parameters | +| [h46-109](patches/h46-109.patch) | `2^-109` | Rational recurrence saving, strict final margin | +| [h46-108](patches/h46-108.patch) | `2^-108` | Variable stopping exponent | +| [h46-rational](patches/h46-rational.patch) | `5.8e-33` | Strongest supplied parameter-only witness | +| [nonadjacent-layout](patches/nonadjacent-layout.patch) | Original parameters retained | Routing proof and revised layout cost only | +| [frozen-nonadjacent-107](patches/frozen-nonadjacent-107.patch) | `2^-107` | Direct routing, original network and recurrence exponents | +| [h46-nonadjacent-78](patches/h46-nonadjacent-78.patch) | `2^-78` | Direct routing with the h = 46 network | +| [h46-nonadjacent-76](patches/h46-nonadjacent-76.patch) | `2^-76` | Direct routing with tuned dimension and stopping parameters | +| [h46-shared-side-75](patches/h46-shared-side-75.patch) | `2^-75` | Stage-1/stage-3 side-role sharing, routing, and parameter tuning | +| [h46-incidence-67](patches/h46-incidence-67.patch) | `2^-67` | Rectangle incidence circuits, full auxiliary sharing, routing, and parameter tuning | +| [h46-dag-63](patches/h46-dag-63.patch) | `2^-63` | Shared intermediate sums and reversible role allocation | +| [h46-shared-point](patches/h46-shared-point.patch) | `13*2^-66` | Cross-group sharing | +| [h50-paired-59](patches/h50-paired-59.patch) | `2^-59` | Paired sums, stopped guard and tighter Gaussian setup | +| **[compact-control-34](patches/compact-control-34.patch)** | **`83/10^12 > 2^-34`** | **Compact controls, complete reservations, local repair and separate complex arity** | +| [complex-compression-31](patches/complex-compression-31.patch) | `2^-31` | Weighted complex circuits, binary phase frames and complete auxiliary sharing | +| **[ternary-30](patches/ternary-30.patch)** | **`2^-30`** | **Ternary five-subset circuit, rational frames and fixed-alphabet interchange** | + +## Citation and license + +Use [CITATION.cff](CITATION.cff), cite the individual contributions used and +include the repository version or commit. [CONTRIBUTORS.md](CONTRIBUTORS.md), +[NOTICE](NOTICE) and source-specific manifests preserve the dependency credits. + +The project is [Apache-2.0](LICENSE). Bundled RaD sources retain their separate +CC0 license and notices. The pinned original OpenAI manuscript remains unchanged +under `upstream/`; its source hashes are in [upstream/manifest.json](upstream/manifest.json). +This project is not an official OpenAI release or endorsement. diff --git a/references/frame-compiler/pr71/SOURCE.json b/references/frame-compiler/pr71/SOURCE.json new file mode 100644 index 0000000000..8d1561e66b --- /dev/null +++ b/references/frame-compiler/pr71/SOURCE.json @@ -0,0 +1,120 @@ +{ + "commit": "1bef94fd40a746452548c84a4a8f8834670a3113", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1" + }, + "pull_request": "https://github.com/CrocSwap/integer-mult-bounds/pull/71", + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "scope": "Immutable consumed PR71 source and finite-input closure. Original root documentation is retained inside this archive to preserve its source pins." +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-compiler.json b/references/frame-compiler/pr71/certificates/split-pair-compiler.json new file mode 100644 index 0000000000..e74fb90ba1 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-compiler.json @@ -0,0 +1,345 @@ +{ + "axes": { + "23": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 36432, + "baseline_pr65_roles": 27918, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 30997, + "elementary_xors": 162103, + "graph_configuration": { + "anchor": true, + "groups": [ + 1, + 1, + 2 + ], + "schedule": "cover-core" + }, + "h": 23, + "histogram": { + "0": 327738, + "1": 58564, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "2": 78945, + "21": 171, + "22": 23, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "paid_clones": 0, + "pending_cost_uses_next_use_frame": true, + "pending_live_controls": true, + "rank_mass": 631971, + "reclamation_order": "all eligible retired ranks, exact integer profile cost, XOR count, slot ID", + "roles": 27455, + "scalar": { + "additions": 68771, + "all_additions_disjoint": true, + "all_partial_outputs_exact": true, + "circuit_sha256": "9799e2c1d16bedd74db65afaf26aa0983e2d3ec5acbe4c56751721dbae50ec20", + "every_node_has_common_point": true, + "h": 23, + "inputs": 1771, + "merged_additions": 11937, + "partial_outputs": 5336, + "roles": 74107 + }, + "source_pr65_head": "49e84f939d15b618b50714eb039cabf97c74256a", + "source_pr67_head": "b3745601e947a94316bf25c2c6263d93c06e3364", + "source_pr68_head": "734c58e225e9d2254570c3b50296ed96943f62ea", + "stats": { + "augmentations": 134, + "clearing_xors": 1630, + "live_anchor_candidates": 76133, + "live_anchor_xors": 64, + "matched": 44071, + "multi_node_regions": 9752, + "reclaimed": 925, + "regions": 59801 + } + }, + "gzip_sha256": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "replay": { + "elementary_xors": 162103, + "full_basis_vectors": 30997, + "h": 23, + "histogram": { + "0": 175253, + "1": 58564, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "2": 78945, + "21": 171, + "22": 23, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411 + }, + "output_roles": 5336, + "rank_mass": 631971, + "roles": 27455, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 673206 + }, + "word_sha256": "b0379d99fd6c10307da0d0fc526ed6171f19105a47bae61730fc3745ef60bd9e" + }, + "25": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 48329, + "baseline_pr65_roles": 36586, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 40615, + "elementary_xors": 225757, + "graph_configuration": { + "anchor": true, + "groups": [ + 1, + 1, + 2 + ], + "schedule": "reverse-node" + }, + "h": 25, + "histogram": { + "0": 455858, + "1": 77226, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "2": 114947, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "paid_clones": 0, + "pending_cost_uses_next_use_frame": true, + "pending_live_controls": true, + "rank_mass": 900975, + "reclamation_order": "all eligible retired ranks, exact integer profile cost, XOR count, slot ID", + "roles": 36015, + "scalar": { + "additions": 96718, + "all_additions_disjoint": true, + "all_partial_outputs_exact": true, + "circuit_sha256": "e25c6e1f52aec60245f4540cdfe97b31bd4f0af0d06ba0cd5db1d6849324fd30", + "every_node_has_common_point": true, + "h": 25, + "inputs": 2300, + "merged_additions": 17168, + "partial_outputs": 6925, + "roles": 103643 + }, + "source_pr65_head": "49e84f939d15b618b50714eb039cabf97c74256a", + "source_pr67_head": "b3745601e947a94316bf25c2c6263d93c06e3364", + "source_pr68_head": "734c58e225e9d2254570c3b50296ed96943f62ea", + "stats": { + "augmentations": 229, + "clearing_xors": 2344, + "live_anchor_candidates": 102320, + "live_anchor_xors": 140, + "matched": 64255, + "multi_node_regions": 13075, + "reclaimed": 1373, + "regions": 84843 + } + }, + "gzip_sha256": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "replay": { + "elementary_xors": 225757, + "full_basis_vectors": 40615, + "h": 25, + "histogram": { + "0": 242882, + "1": 77226, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "2": 114947, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664 + }, + "output_roles": 6925, + "rank_mass": 900975, + "roles": 36015, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 935228 + }, + "word_sha256": "4c956749f0ec72c61875c51099afdf23e69ccea268a9b43b8d46da2ffdb24903" + } + }, + "source": { + "inherited": { + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" + }, + "pr65": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "49e84f939d15b618b50714eb039cabf97c74256a", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Authenticated PR65 finite source closure and complete published baseline physical words, profiles and arithmetic. Original upstream sources and notices are preserved byte-for-byte. Actual inherited dependencies are additionally checked through the shared PR48 manifest.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr67": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "b3745601e947a94316bf25c2c6263d93c06e3364", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Preserved immutable source and reported complete baseline profile/arithmetic for all-rank profile-cost reclamation. This package verifies its own composed words, actual paid profile and exact improvement.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr68": { + "author": "Dominik Scholz with OpenAI assistance", + "commit": "734c58e225e9d2254570c3b50296ed96943f62ea", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22" + }, + "repo": "DominikScholz/integer-mult-bounds", + "scope": "Preserved original pending live-carrier compiler, selected driver, proof and source provenance. This package composes the pending lifecycle and both containment checks with PR67 profile-cost selection and its own next-use scoring.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + } + } +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-kappa.json b/references/frame-compiler/pr71/certificates/split-pair-kappa.json new file mode 100644 index 0000000000..28e4da0b52 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-kappa.json @@ -0,0 +1,1547 @@ +{ + "assembly": { + "absorption_gap": "3383538513793298997152069121/3788073550339794868050835561000000000000000000", + "constraints": { + "K_dominates_log": "194762461953764197464516131949164439/3788073550339794868050835561000000000000", + "K_geometry": "2841103853371044868050835561/3788073550339794868050835561000000000000", + "a_below_b": "5070677573513/250000000000000000", + "a_positive": "12854322426487/250000000000000000", + "alpha_below_one": "7575757575753788073550339794868050835561/7576147100679589736101671122000000000000", + "alpha_below_one_fourth": "1893647250244095771474086453368050835561/7576147100679589736101671122000000000000", + "alpha_positive": "389524925801662551331327131949164439/7576147100679589736101671122000000000000", + "artificial_boundary": "212133676918758235775904495288604152506683/30304588402718358944406684488000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "124993572838755519354322426487/125000000000000000000000000000", + "c_positive": "6427161244480645677573513/125000000000000000000000000000", + "cell_above_band": "7575757575746211926449660205131949164439/15152294201359179472203342244000000000000", + "compact_leaf": "2087213786769354322426487/125000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "194762464794868050835561/3788073550339794868050835561", + "epsilon_positive": "3787878787875000000000000000/3788073550339794868050835561", + "g1_above_kappa": "3788076933878308661349832713069121/3788073550339794868050835561000000000000000000", + "g2_above_kappa": "2643601909/1000000000000000000", + "g3_above_kappa": "3383538513793298997152069121/3788073550339794868050835561000000000000000000", + "g4_above_kappa": "2643601909/1000000000000000000", + "g5_above_kappa": "1420530964915936868818060487444121/3788073550339794868050835561000000000000000000", + "g6_above_kappa": "3314567740085834302843478267944121/3788073550339794868050835561000000000000000000", + "g7_above_kappa": "3787684025413993208883042747661349832713069121/3788073550339794868050835561000000000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "194762464794868050835561/3788073550339794868050835561", + "lambda_above_internal": "12854322426487/250000000000000000000000000000", + "lambda_above_sigma": "5070677573525854322426487/250000000000000000000000000000", + "lambda_above_tau": "12854322426487/250000000000000000000000000000", + "lambda_prime_above_lambda": "12854322426487/250000000000000000000000000000", + "lambda_prime_below_one": "6427161213230645677573513/125000000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "311619939883715330997102731949164439/6060917680543671788881336897600000000000", + "phase_leaf_above_bit": "4174427573513/250000000000000000", + "phase_local": "1558099714570870856344693131949164439/30304588402718358944406684488000000000000", + "prime_interval_packing": "194762464794868050835561/3788073550339794868050835561", + "q_below_internal": "12854322426487/125000000000000000000000000000", + "q_below_leaf": "2087213786769354322426487/125000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "6427161213230645677573513/125000000000000000000000000000", + "record_suffix": "194762464794868050835561/3788073550339794868050835561", + "row_product_gap": "6548/25", + "short_record_fallback": "946921003849958684943088358953439458652095793/947018387584948717012708890250000000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 135075665, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "194762464794868050835561/3788073550339794868050835561", + "g2": "12854322426487/250000000000000000", + "g3": "194762461006794500495766131949164439/3788073550339794868050835561000000000000", + "g4": "12854322426487/250000000000000000", + "g5": "311619939883715330997102731949164439/6060917680543671788881336897600000000000", + "g6": "1558099714570870856344693131949164439/30304588402718358944406684488000000000000", + "g7": "3787878787875000000000000000/3788073550339794868050835561" + }, + "minimum_margin": "194762461006794500495766131949164439/3788073550339794868050835561000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "12854322426487/250000000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "389524925801662551331327131949164439/7576147100679589736101671122000000000000", + "beta": "1/20", + "c": "6427161244480645677573513/125000000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "3787878787875000000000000000/3788073550339794868050835561", + "h": "1/1000000000000", + "kappa": "51414646104039/1000000000000000000", + "lambda_": "249987145677573525854322426487/250000000000000000000000000000", + "lambda_prime": "124993572838786769354322426487/125000000000000000000000000000", + "q": "6427161213230645677573513/125000000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "249987145677573513/250000000000000000" + }, + "recurrence": { + "internal": "249987145677573513/250000000000000000", + "leaf": "199986377/200000000", + "reservations": "124993572838755519354322426487/125000000000000000000000000000" + }, + "scoped_limit": "12854322426487/250012854322426487" + }, + "bit": { + "L": 2226400, + "N": 4073300, + "W": 135075665, + "axes": [ + { + "R": 27455, + "blocks": [ + 0, + 357148, + 21253, + 8022, + 5466, + 4156, + 3835, + 3250, + 2612, + 2109, + 1750, + 1529, + 1008, + 863, + 555, + 461, + 234, + 149, + 40, + 9, + 0, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 5750, + "distinct_matrices": 38745, + "field_prime": 2305843009213693951, + "frames": 59803, + "h": 23, + "loss": 506, + "rank_sum": 631971, + "v": 1771 + }, + { + "R": 36015, + "blocks": [ + 0, + 492698, + 27869, + 10467, + 7897, + 5674, + 5027, + 4110, + 3809, + 3047, + 2490, + 2047, + 1814, + 1443, + 1151, + 898, + 567, + 470, + 271, + 163, + 47, + 13, + 0, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 7444, + "distinct_matrices": 52075, + "field_prime": 2305843009213693951, + "frames": 84845, + "h": 25, + "loss": 600, + "rank_sum": 900975, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1787694458, + "10": 8434790, + "11": 7141937, + "12": 5530994, + "13": 4540453, + "14": 3314921, + "15": 2650658, + "16": 1542357, + "17": 9321670, + "18": 571941, + "19": 309373, + "2": 98237899, + "20": 83237, + "21": 16369123, + "23": 71337375, + "25": 63782565, + "3": 36987657, + "4": 26557387, + "481": 8146600, + "5": 19607454, + "525": 63782565, + "529": 63146500, + "6": 17723317, + "7": 14753810, + "8": 12753339, + "9": 10246937 + }, + "deficit": 1846900, + "excluded_moment": { + "degree": 8, + "lower": "33768916250000000010022095404584149100145740282531/33768916250000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "51417289705949/1000000000000000000", + "strict_gap": "-1252761925573018854569429712673/4221114531250000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "10003267778655445106790722302765419144453/10000000000000000000000000000000000000000", + "exp_upper": "2000653555731089021358144460553083931993/2000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "77725846/3376891625" + }, + "10": { + "exp_lower": "10002083535030640392531679990230827409983/10000000000000000000000000000000000000000", + "exp_upper": "2000416707006128078506335998046165584857/2000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "146692/135075665" + }, + "11": { + "exp_lower": "312563578719653801492982787854331371607/312500000000000000000000000000000000000", + "exp_upper": "10002034519028921647775449211338604405719/10000000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "3415709/3376891625" + }, + "12": { + "exp_lower": "312562180347969491295131019477506502967/312500000000000000000000000000000000000", + "exp_upper": "10001989771135023721444192623280208609233/10000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "2885736/3376891625" + }, + "13": { + "exp_lower": "250048715180994423722847155302605928823/250000000000000000000000000000000000000", + "exp_upper": "5000974303619888474456943106052118833603/5000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "2566343/3376891625" + }, + "14": { + "exp_lower": "10001910495576616867647870788206156289007/10000000000000000000000000000000000000000", + "exp_upper": "1250238811947077108455983848525769600411/1250000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "2017778/3376891625" + }, + "15": { + "exp_lower": "5000937507298799262977531218477536343733/5000000000000000000000000000000000000000", + "exp_upper": "625117188412349907872191402309692075109/625000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "345738/675378325" + }, + "16": { + "exp_lower": "10001841824472241665399768197052194639411/10000000000000000000000000000000000000000", + "exp_upper": "10001841824472241665399768197052195153687/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "1072944/3376891625" + }, + "17": { + "exp_lower": "2000362129448430252012945516154011194071/2000000000000000000000000000000000000000", + "exp_upper": "2500452661810537815016181895192514121157/2500000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1377986/675378325" + }, + "18": { + "exp_lower": "2000356250531348677044626743436098790769/2000000000000000000000000000000000000000", + "exp_upper": "2500445313164185846305783429295123617029/2500000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "447606/3376891625" + }, + "19": { + "exp_lower": "10001753447843730922769540497100952395327/10000000000000000000000000000000000000000", + "exp_upper": "2500438361960932730692385124275238227399/2500000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "255569/3376891625" + }, + "2": { + "exp_lower": "5001455635525837099027147878050810091981/5000000000000000000000000000000000000000", + "exp_upper": "10002911271051674198054295756101620698699/10000000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "8542426/3376891625" + }, + "20": { + "exp_lower": "10001727069632263391270081525057406972681/10000000000000000000000000000000000000000", + "exp_upper": "10001727069632263391270081525057407486947/10000000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "14476/675378325" + }, + "21": { + "exp_lower": "10001701978751049559741097025770056308617/10000000000000000000000000000000000000000", + "exp_upper": "10001701978751049559741097025770056822881/10000000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "14945721/3376891625" + }, + "23": { + "exp_lower": "10001655195676669869696546755559759526491/10000000000000000000000000000000000000000", + "exp_upper": "625103449729791866856034172222485002547/625000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "24813/1174571" + }, + "25": { + "exp_lower": "10001612316108909947800937936092361032443/10000000000000000000000000000000000000000", + "exp_upper": "5000806158054454973900468968046180773351/5000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "554631/27015133" + }, + "3": { + "exp_lower": "2000540546672448081230698924320354215411/2000000000000000000000000000000000000000", + "exp_upper": "500135136668112020307674731080088579579/500000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "4824477/3376891625" + }, + "4": { + "exp_lower": "10002554776153518530136570780570940852327/10000000000000000000000000000000000000000", + "exp_upper": "250063869403837963253414269514273534169/250000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "200812/146821375" + }, + "481": { + "exp_lower": "1000009178170793115863449932118267045899/1000000000000000000000000000000000000000", + "exp_upper": "10000091781707931158634499321182670973169/10000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "296296/5872855" + }, + "5": { + "exp_lower": "1000244001313358125115777929404069675659/1000000000000000000000000000000000000000", + "exp_upper": "5001220006566790625578889647020348635487/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "852498/675378325" + }, + "525": { + "exp_lower": "2500011693833036733901012916854838034773/2500000000000000000000000000000000000000", + "exp_upper": "10000046775332146935604051667419352653269/10000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "11647251/27015133" + }, + "529": { + "exp_lower": "10000042872655332639439754288243415079783/10000000000000000000000000000000000000000", + "exp_upper": "250001071816383315985993857206085389849/250000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "505172/1174571" + }, + "6": { + "exp_lower": "10002346245896183288531298062561787000253/10000000000000000000000000000000000000000", + "exp_upper": "10002346245896183288531298062561787514607/10000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "4623474/3376891625" + }, + "7": { + "exp_lower": "2500566741878091263012227018387188047879/2500000000000000000000000000000000000000", + "exp_upper": "200045339350247301040978161470975054117/200000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "39046/29364275" + }, + "8": { + "exp_lower": "1000219829396052528616368495818770588647/1000000000000000000000000000000000000000", + "exp_upper": "10002198293960525286163684958187706400789/10000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "4435944/3376891625" + }, + "9": { + "exp_lower": "1250267214998278026507565978807412603539/1250000000000000000000000000000000000000", + "exp_upper": "10002137719986224212060527830459301342621/10000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4009671/3376891625" + } + }, + "upper": "4221114531250000001252761925573018854569429712673/4221114531250000000000000000000000000000000000000" + }, + "m": 575, + "maxchild": 529, + "moment": { + "degree": 8, + "lower": "33768916249999999994403223852264730755493459036779/33768916250000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "12854322426487/250000000000000000", + "strict_gap": "2798388073867633754049266311989/16884458125000000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "10003267778655445043226257220003797512123/10000000000000000000000000000000000000000", + "exp_upper": "5001633889327722521613128610001899013817/5000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "77725846/3376891625" + }, + "10": { + "exp_lower": "10002083535030640352005388476322410292353/10000000000000000000000000000000000000000", + "exp_upper": "5001041767515320176002694238161205403327/5000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "146692/135075665" + }, + "11": { + "exp_lower": "10002034519028921608202652008145862723993/10000000000000000000000000000000000000000", + "exp_upper": "625127157439307600512665750509116452393/625000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "3415709/3376891625" + }, + "12": { + "exp_lower": "5000994885567511841370929683311622729687/5000000000000000000000000000000000000000", + "exp_upper": "10001989771135023682741859366623245973663/10000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "2885736/3376891625" + }, + "13": { + "exp_lower": "10001948607239776911012295286167991505649/10000000000000000000000000000000000000000", + "exp_upper": "2000389721447955382202459057233598403987/2000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "2566343/3376891625" + }, + "14": { + "exp_lower": "2000382099115323366097529117576955258961/2000000000000000000000000000000000000000", + "exp_upper": "5000955247788308415243822793942388404543/5000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "2017778/3376891625" + }, + "15": { + "exp_lower": "5000937507298799244742513568538363754269/5000000000000000000000000000000000000000", + "exp_upper": "312558594206174952796407098033647750713/312500000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "345738/675378325" + }, + "16": { + "exp_lower": "312557557014757550924229937468430166527/312500000000000000000000000000000000000", + "exp_upper": "10001841824472241629575357998989765843139/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "1072944/3376891625" + }, + "17": { + "exp_lower": "5000905323621075612423392520348287829533/5000000000000000000000000000000000000000", + "exp_upper": "5000905323621075612423392520348288086669/5000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1377986/675378325" + }, + "18": { + "exp_lower": "2500445313164185837644245158006066068553/2500000000000000000000000000000000000000", + "exp_upper": "5000890626328371675288490316012132394241/5000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "447606/3376891625" + }, + "19": { + "exp_lower": "10001753447843730888664250744524564838061/10000000000000000000000000000000000000000", + "exp_upper": "1000175344784373088866425074452456535233/1000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "255569/3376891625" + }, + "2": { + "exp_lower": "2500727817762918535356396449874370919091/2500000000000000000000000000000000000000", + "exp_upper": "10002911271051674141425585799497484191101/10000000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "8542426/3376891625" + }, + "20": { + "exp_lower": "10001727069632263357677903251330233637041/10000000000000000000000000000000000000000", + "exp_upper": "2500431767408065839419475812832558537827/2500000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "14476/675378325" + }, + "21": { + "exp_lower": "10001701978751049526636987704741137786343/10000000000000000000000000000000000000000", + "exp_upper": "156276593417985148853702932886580285947/156250000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "14945721/3376891625" + }, + "23": { + "exp_lower": "1250206899459583729687807579691086634971/1250000000000000000000000000000000000000", + "exp_upper": "10001655195676669837502460637528693594029/10000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "24813/1174571" + }, + "25": { + "exp_lower": "250040307902722747911023509224178190981/250000000000000000000000000000000000000", + "exp_upper": "10001612316108909916440940368967128153499/10000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "554631/27015133" + }, + "3": { + "exp_lower": "2000540546672448070716342437697766077413/2000000000000000000000000000000000000000", + "exp_upper": "1000270273336224035358171218848883090159/1000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "4824477/3376891625" + }, + "4": { + "exp_lower": "5001277388076759240221560831260513712993/5000000000000000000000000000000000000000", + "exp_upper": "10002554776153518480443121662521027940419/10000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "200812/146821375" + }, + "481": { + "exp_lower": "5000045890853965578424727615488806672627/5000000000000000000000000000000000000000", + "exp_upper": "1250011472713491394606181903872201732429/1250000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "296296/5872855" + }, + "5": { + "exp_lower": "10002440013133581203696880313697038245867/10000000000000000000000000000000000000000", + "exp_upper": "10002440013133581203696880313697038760251/10000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "852498/675378325" + }, + "525": { + "exp_lower": "1250005846916518366836791203765867953231/1250000000000000000000000000000000000000", + "exp_upper": "400001871013285877387773185205077765601/400000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "11647251/27015133" + }, + "529": { + "exp_lower": "10000042872655332638605934624061923371007/10000000000000000000000000000000000000000", + "exp_upper": "10000042872655332638605934624061923885183/10000000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "505172/1174571" + }, + "6": { + "exp_lower": "312573320184255726340452729391856430141/312500000000000000000000000000000000000", + "exp_upper": "5001173122948091621447243670269703139433/5000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "4623474/3376891625" + }, + "7": { + "exp_lower": "1250283370939045625994289415096779673387/1250000000000000000000000000000000000000", + "exp_upper": "1000226696751236500795431532077423790143/1000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "39046/29364275" + }, + "8": { + "exp_lower": "5001099146980262621702501208755636701013/5000000000000000000000000000000000000000", + "exp_upper": "5001099146980262621702501208755636958173/5000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "4435944/3376891625" + }, + "9": { + "exp_lower": "1250267214998278021310023297863138520977/1250000000000000000000000000000000000000", + "exp_upper": "5001068859993112085240093191452554341063/5000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4009671/3376891625" + } + }, + "upper": "16884458124999999997201611926132366245950733688011/16884458125000000000000000000000000000000000000000" + }, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 63146500, + "529": 63146500 + }, + "exterior_25": { + "25": 63782565, + "525": 63782565 + }, + "internal_23": { + "1": 821440400, + "10": 4025000, + "11": 3516700, + "12": 2318400, + "13": 1984900, + "14": 1276500, + "15": 1060300, + "16": 538200, + "17": 342700, + "18": 92000, + "19": 20700, + "2": 48881900, + "21": 52900, + "3": 18450600, + "4": 12571800, + "5": 9558800, + "6": 8820500, + "7": 7475000, + "8": 6007600, + "9": 4850700 + }, + "internal_25": { + "1": 872568158, + "10": 4409790, + "11": 3625237, + "12": 3212594, + "13": 2555553, + "14": 2038421, + "15": 1590358, + "16": 1004157, + "17": 832370, + "18": 479941, + "19": 288673, + "2": 49355999, + "20": 83237, + "21": 23023, + "23": 44275, + "3": 18537057, + "4": 13985587, + "5": 10048654, + "6": 8902817, + "7": 7278810, + "8": 6745739, + "9": 5396237 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 77666660475, + "words": [ + { + "R": 27455, + "copied_centers": 23, + "distinct_transitions": 152272, + "frames": 59803, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 69190, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "2": 73632, + "21": 171, + "22": 23, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411 + }, + "rank_mass": 631971, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "b0379d99fd6c10307da0d0fc526ed6171f19105a47bae61730fc3745ef60bd9e" + }, + { + "R": 36015, + "copied_centers": 25, + "distinct_transitions": 212584, + "frames": 84845, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 91026, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "2": 108047, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664 + }, + "rank_mass": 900975, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "4c956749f0ec72c61875c51099afdf23e69ccea268a9b43b8d46da2ffdb24903" + } + ] + }, + "bit_saving": "12854322426487/250000000000000000", + "bit_saving_excluded_above": "51417289705949/1000000000000000000", + "coarse_grid_control": { + "assembly": { + "absorption_gap": "1111010233862361277161/173620037722222204369000000000000", + "constraints": { + "K_dominates_log": "8926611154487109055512170631/173620037722222204369000000000000", + "K_geometry": "130217259944487829369/173620037722222204369000000000000", + "a_below_b": "126767/6250000000", + "a_positive": "160679/3125000000", + "alpha_below_one": "347222222222048620037722222204369/347240075444444408738000000000000", + "alpha_below_one_fourth": "86792165638715313484222222204369/347240075444444408738000000000000", + "alpha_positive": "17853222395788700277777795631/347240075444444408738000000000000", + "artificial_boundary": "9722793525335241939729166666613107/1388960301777777634952000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "1562419660499609535679/1562500000000000000000", + "c_positive": "80339500390464321/1562500000000000000000", + "cell_above_band": "347222222221701379962277777795631/694480150888888817476000000000000", + "compact_leaf": "26090187500160679/1562500000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "8926611284704369/173620037722222204369", + "epsilon_positive": "173611111110937500000/173620037722222204369", + "g1_above_kappa": "128463027158458348153/17362003772222220436900000000000", + "g2_above_kappa": "53/20000000000", + "g3_above_kappa": "1111010233862361277161/173620037722222204369000000000000", + "g4_above_kappa": "53/20000000000", + "g5_above_kappa": "1881788396813111366079/277792060355555526990400000000000", + "g6_above_kappa": "10103422134954445647871/1388960301777777634952000000000000", + "g7_above_kappa": "17360218450093742590258458348153/17362003772222220436900000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "8926611284704369/173620037722222204369", + "lambda_above_internal": "160679/3125000000000000000000", + "lambda_above_sigma": "63383500000160679/3125000000000000000000", + "lambda_above_tau": "160679/3125000000000000000000", + "lambda_prime_above_lambda": "160679/3125000000000000000000", + "lambda_prime_below_one": "80339499999839321/1562500000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "14282577881906952677777795631/277792060355555526990400000000000", + "phase_leaf_above_bit": "417443/25000000000", + "phase_local": "71412890104014914277777795631/1388960301777777634952000000000000", + "prime_interval_packing": "8926611284704369/173620037722222204369", + "q_below_internal": "160679/1562500000000000000000", + "q_below_leaf": "26090187500160679/1562500000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "80339499999839321/1562500000000000000000", + "record_suffix": "8926611284704369/173620037722222204369", + "row_product_gap": "6548/25", + "short_record_fallback": "542506825127638518558424193449/542562617881944388653125000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 135075665, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "8926611284704369/173620037722222204369", + "g2": "160679/3125000000", + "g3": "8926611111084331277777795631/173620037722222204369000000000000", + "g4": "160679/3125000000", + "g5": "14282577881906952677777795631/277792060355555526990400000000000", + "g6": "71412890104014914277777795631/1388960301777777634952000000000000", + "g7": "173611111110937500000/173620037722222204369" + }, + "minimum_margin": "8926611111084331277777795631/173620037722222204369000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "160679/3125000000", + "a_complex": "717/10000000", + "alpha_squared_power": "17853222395788700277777795631/347240075444444408738000000000000", + "beta": "1/20", + "c": "80339500390464321/1562500000000000000000", + "delta": "1/8000000000000", + "epsilon": "173611111110937500000/173620037722222204369", + "h": "1/1000000000000", + "kappa": "5141463/100000000000", + "lambda_": "3124839321000000160679/3125000000000000000000", + "lambda_prime": "1562419660500000160679/1562500000000000000000", + "q": "80339499999839321/1562500000000000000000", + "sigma": "9999283/10000000", + "tau": "3124839321/3125000000" + }, + "recurrence": { + "internal": "3124839321/3125000000", + "leaf": "199986377/200000000", + "reservations": "1562419660499609535679/1562500000000000000000" + }, + "scoped_limit": "160679/3125160679" + }, + "bit_saving": "160679/3125000000", + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6052840001, + "compact": 24211360001, + "geometry": 3999931448325, + "guard": 4317837, + "log_p": 25, + "normalization": 14000000000000, + "period": 48422720001, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 719794344, + "rhs": 112000000155664, + "rhs_bits": 47 + }, + "compact": { + "exponent": 719794344, + "rhs": 448000000622592, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 719794344, + "rhs": 224000000311256, + "rhs_bits": 48 + }, + "rows": { + "exponent": 719794344, + "rhs": 112000000155664000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1439588688, + "rhs": 224000000155664, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1439588688, + "rhs": 896000000622592, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1439588688, + "rhs": 448000000311256, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1439588688, + "rhs": 224000000155664000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2879177377, + "rhs": 448000000155664, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2879177377, + "rhs": 1792000000622592, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2879177377, + "rhs": 896000000311256, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2879177377, + "rhs": 448000000155664000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5758354755, + "rhs": 896000000155664, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5758354755, + "rhs": 3584000000622592, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5758354755, + "rhs": 1792000000311256, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5758354755, + "rhs": 896000000155664000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11516709511, + "rhs": 1792000000155664, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11516709511, + "rhs": 7168000000622592, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11516709511, + "rhs": 3584000000311256, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11516709511, + "rhs": 1792000000155664000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 23033419023, + "rhs": 3584000000155664, + "rhs_bits": 52 + }, + "compact": { + "exponent": 23033419023, + "rhs": 14336000000622592, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 23033419023, + "rhs": 7168000000311256, + "rhs_bits": 53 + }, + "rows": { + "exponent": 23033419023, + "rhs": 3584000000155664000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "5141463/100000000000", + "next_kappa": "642683/12500000000", + "next_kappa_rejection": "{'g1_above_kappa': '-5644626320470482027/2170250471527777554612500000000', 'g3_above_kappa': '-625190143359860766529/173620037722222204369000000000000', 'g5_above_kappa': '-35845288269697756153/11111682414222221079616000000000', 'g6_above_kappa': '-3786180882823330701649/1388960301777777634952000000000000'}" + }, + "comparison": { + "absolute_gain_pr67": "23805344989/62500000000000000", + "full_pr67_child_list_excluded_at_new_bit_saving": true, + "pr67_commit": "b3745601e947a94316bf25c2c6263d93c06e3364", + "pr67_complete_profile_exclusion_lower": "34287957494011363648350450392318916509349095499539/34287951500000000000000000000000000000000000000000", + "pr67_kappa": "10206752116843/200000000000000000", + "ratio_pr67": "51414646104039/51033760584215" + }, + "dependencies": { + "data_profile": "Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries", + "geometry": "Unchanged fixed-I+J original-envelope projector and CRT formulas", + "producer": "PR62/63 interval pair assembly, selected split-pair partition and point permutation, PR65 schedules, PR67 profile-cost reclamation, PR68 pending live controls and selected next-use scoring; complete literal words", + "proof_scope": "Ordered affine residual compiler, all-size recursion, finite scalar overhead, routing, prime selection, exact recovery and fixed-tape/analytic transfer remain inherited. Arithmetic cutoffs are not full operational thresholds." + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6052840001, + "compact": 24211360001, + "geometry": 3999931448313, + "guard": 4317836, + "log_p": 25, + "normalization": 14000000000000, + "period": 48422720001, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 719794344, + "rhs": 112000000155664, + "rhs_bits": 47 + }, + "compact": { + "exponent": 719794344, + "rhs": 448000000622592, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 719794344, + "rhs": 224000000311256, + "rhs_bits": 48 + }, + "rows": { + "exponent": 719794344, + "rhs": 112000000155664000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1439588688, + "rhs": 224000000155664, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1439588688, + "rhs": 896000000622592, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1439588688, + "rhs": 448000000311256, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1439588688, + "rhs": 224000000155664000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2879177377, + "rhs": 448000000155664, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2879177377, + "rhs": 1792000000622592, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2879177377, + "rhs": 896000000311256, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2879177377, + "rhs": 448000000155664000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5758354755, + "rhs": 896000000155664, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5758354755, + "rhs": 3584000000622592, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5758354755, + "rhs": 1792000000311256, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5758354755, + "rhs": 896000000155664000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11516709511, + "rhs": 1792000000155664, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11516709511, + "rhs": 7168000000622592, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11516709511, + "rhs": 3584000000311256, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11516709511, + "rhs": 1792000000155664000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 23033419023, + "rhs": 3584000000155664, + "rhs_bits": 52 + }, + "compact": { + "exponent": 23033419023, + "rhs": 14336000000622592, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 23033419023, + "rhs": 7168000000311256, + "rhs_bits": 53 + }, + "rows": { + "exponent": 23033419023, + "rhs": 3584000000155664000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "exactness": [ + { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + } + ], + "finite_bridge": { + "bit": { + "W": 135075665, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "grid_denominator": 1000000000000000000, + "independent_enclosures": { + "accepted_lower": "6753783249999999998880644770452946278125051932003/6753783250000000000000000000000000000000000000000", + "accepted_upper": "6753783249999999998880644770452946278126402656533/6753783250000000000000000000000000000000000000000", + "rejected_lower": "33768916250000000010022095404584149735276384834051/33768916250000000000000000000000000000000000000000", + "rejected_upper": "33768916250000000010022095404584149735283138456701/33768916250000000000000000000000000000000000000000" + }, + "kappa": "51414646104039/1000000000000000000", + "next_kappa": "1285366152601/25000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-10113375913662396772469161/94701838758494871701270889025000000000000000'}", + "source_manifest_sha256": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "sources": { + "inherited": { + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" + }, + "pr65": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "49e84f939d15b618b50714eb039cabf97c74256a", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Authenticated PR65 finite source closure and complete published baseline physical words, profiles and arithmetic. Original upstream sources and notices are preserved byte-for-byte. Actual inherited dependencies are additionally checked through the shared PR48 manifest.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr67": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "b3745601e947a94316bf25c2c6263d93c06e3364", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Preserved immutable source and reported complete baseline profile/arithmetic for all-rank profile-cost reclamation. This package verifies its own composed words, actual paid profile and exact improvement.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr68": { + "author": "Dominik Scholz with OpenAI assistance", + "commit": "734c58e225e9d2254570c3b50296ed96943f62ea", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22" + }, + "repo": "DominikScholz/integer-mult-bounds", + "scope": "Preserved original pending live-carrier compiler, selected driver, proof and source provenance. This package composes the pending lifecycle and both containment checks with PR67 profile-cost selection and its own next-use scoring.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "split_operation": { + "author": "Rohan Garg / rohangar1 with OpenAI Codex assistance", + "commit": "641f22e52913db784f3b6ff1176b0c2945aae45b", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905" + }, + "repo": "CrocSwap/integer-mult-bounds", + "scope": "Preserved original split-pair operation and attribution. These files document the adapted grouping operation; they are not imported by this producer. Actual imported source closure is PR65 plus shared PR48." + } + }, + "status": "Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed" +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json b/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json new file mode 100644 index 0000000000..bf40dc76b4 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json @@ -0,0 +1 @@ +{"h":23,"v":1771,"R":27455,"loss":506,"rank_sum":631971,"field_prime":2305843009213693951,"frames":59803,"distinct_matrices":38745,"crt_matrices":5750,"crt_disagreements":0,"blocks":[0,357148,21253,8022,5466,4156,3835,3250,2612,2109,1750,1529,1008,863,555,461,234,149,40,9,0,23,0,0]} diff --git a/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json b/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json new file mode 100644 index 0000000000..2f4bb6b9e9 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json @@ -0,0 +1 @@ +{"h":25,"v":2300,"R":36015,"loss":600,"rank_sum":900975,"field_prime":2305843009213693951,"frames":84845,"distinct_matrices":52075,"crt_matrices":7444,"crt_disagreements":0,"blocks":[0,492698,27869,10467,7897,5674,5027,4110,3809,3047,2490,2047,1814,1443,1151,898,567,470,271,163,47,13,0,25,0,0]} diff --git a/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json b/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json new file mode 100644 index 0000000000..1a389c32fd --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json @@ -0,0 +1,35 @@ +{ + "h": 23, + "v": 1771, + "R": 27455, + "frames": 59803, + "distinct_transitions": 152272, + "singles": 15939, + "rank_mass": 631971, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 69190, + "2": 73632, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "21": 171, + "22": 23 + }, + "word_sha256": "b0379d99fd6c10307da0d0fc526ed6171f19105a47bae61730fc3745ef60bd9e", + "copied_centers": 23, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json b/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json new file mode 100644 index 0000000000..e5864300a1 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json @@ -0,0 +1,37 @@ +{ + "h": 25, + "v": 2300, + "R": 36015, + "frames": 84845, + "distinct_transitions": 212584, + "singles": 20700, + "rank_mass": 900975, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 91026, + "2": 108047, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25 + }, + "word_sha256": "4c956749f0ec72c61875c51099afdf23e69ccea268a9b43b8d46da2ffdb24903", + "copied_centers": 25, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-validation.json b/references/frame-compiler/pr71/certificates/split-pair-validation.json new file mode 100644 index 0000000000..471a5bed88 --- /dev/null +++ b/references/frame-compiler/pr71/certificates/split-pair-validation.json @@ -0,0 +1,237 @@ +{ + "axes": { + "23": { + "profile": { + "R": 27455, + "blocks": [ + 0, + 357148, + 21253, + 8022, + 5466, + 4156, + 3835, + 3250, + 2612, + 2109, + 1750, + 1529, + 1008, + 863, + 555, + 461, + 234, + 149, + 40, + 9, + 0, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 5750, + "distinct_matrices": 38745, + "field_prime": 2305843009213693951, + "frames": 59803, + "h": 23, + "loss": 506, + "rank_sum": 631971, + "v": 1771 + }, + "replay": { + "elementary_xors": 162103, + "full_basis_vectors": 30997, + "h": 23, + "histogram": { + "0": 175253, + "1": 58564, + "2": 78945, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "21": 171, + "22": 23 + }, + "output_roles": 5336, + "rank_mass": 631971, + "roles": 27455, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 673206 + }, + "transitions": { + "R": 27455, + "copied_centers": 23, + "distinct_transitions": 152272, + "frames": 59803, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 69190, + "2": 73632, + "3": 10224, + "4": 15382, + "5": 6461, + "6": 1593, + "7": 694, + "8": 1229, + "9": 411, + "10": 539, + "11": 98, + "12": 671, + "13": 254, + "14": 1927, + "15": 439, + "16": 440, + "17": 487, + "18": 3417, + "19": 6882, + "21": 171, + "22": 23 + }, + "rank_mass": 631971, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "b0379d99fd6c10307da0d0fc526ed6171f19105a47bae61730fc3745ef60bd9e" + } + }, + "25": { + "profile": { + "R": 36015, + "blocks": [ + 0, + 492698, + 27869, + 10467, + 7897, + 5674, + 5027, + 4110, + 3809, + 3047, + 2490, + 2047, + 1814, + 1443, + 1151, + 898, + 567, + 470, + 271, + 163, + 47, + 13, + 0, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 7444, + "distinct_matrices": 52075, + "field_prime": 2305843009213693951, + "frames": 84845, + "h": 25, + "loss": 600, + "rank_sum": 900975, + "v": 2300 + }, + "replay": { + "elementary_xors": 225757, + "full_basis_vectors": 40615, + "h": 25, + "histogram": { + "0": 242882, + "1": 77226, + "2": 114947, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25 + }, + "output_roles": 6925, + "rank_mass": 900975, + "roles": 36015, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 935228 + }, + "transitions": { + "R": 36015, + "copied_centers": 25, + "distinct_transitions": 212584, + "frames": 84845, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 91026, + "2": 108047, + "3": 13560, + "4": 19874, + "5": 8387, + "6": 2967, + "7": 1127, + "8": 1443, + "9": 664, + "10": 791, + "11": 38, + "12": 758, + "13": 149, + "14": 681, + "15": 167, + "16": 2265, + "17": 680, + "18": 566, + "19": 828, + "20": 4481, + "21": 8893, + "23": 280, + "24": 25 + }, + "rank_mass": 900975, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "4c956749f0ec72c61875c51099afdf23e69ccea268a9b43b8d46da2ffdb24903" + } + } + }, + "bit_saving": "12854322426487/250000000000000000", + "certificate_sha256": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "kappa": "51414646104039/1000000000000000000", + "margins": 7, + "producer_words_regenerated_and_matched": true, + "scope": "Finite conditional witness; unchanged data geometry and general transfer proofs are inherited dependencies.", + "source_binding": "Source manifests, inherited manifest digest, compiler receipt source, both word digests, and all local compiler/verifier sources are bound by the exact composition certificate.", + "status": "PASS complete serialized-word replay, actual CRT profiles, exact recurrence and balanced assembly", + "strict_constraints": 47 +} diff --git a/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz b/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz new file mode 100644 index 0000000000..38b82cbb3d Binary files /dev/null and b/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz differ diff --git a/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz b/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz new file mode 100644 index 0000000000..da9935d15a Binary files /dev/null and b/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz differ diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json b/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json new file mode 100644 index 0000000000..4e38e34dc8 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json @@ -0,0 +1,16 @@ +{ + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py new file mode 100644 index 0000000000..c7fd42867d --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py @@ -0,0 +1,196 @@ +"""Exact, import-safe balanced copied-center semantic assembly arithmetic. + +The PR36 copied-center guard uses E=64*(W+m+G+1)^3, including G. +Its complex saving is 717/10^7. All balanced parameter formulas are unchanged. + +Adapted from Zhihao Chen PR23/29 semantic assembly (Apache-2.0), RaD's +balanced transform / arbitrary routing / bulk resampling composition, and +jamesyc PR34's check_composition.py at 7fecbe3. PR34 source is research/reversed-two-stage/check_composition.py in that +pinned upstream commit. Original parameterized transcription by the +research workers is in rectangular-dimensions/next/assembly_parameterized.py. + +This checks arithmetic, not physical corner existence, producer correctness, +or inherited all-size tape/analytic hypotheses. No imports execute producers, +parse argv, read files, change globals, or mutate the supplied finite bridge. +""" +from fractions import Fraction as Q + + +class InvalidAssembly(AssertionError): + """A named exact input validation or strict inequality failed.""" + + +def require(condition, message): + if not condition: + raise InvalidAssembly(message) + + +def rational(value): + # Fraction(float) silently preserves binary floating error; forbid it. + require(type(value) in (int, str, Q), 'expected integer or exact rational string/Fraction') + return Q(value) + + +def integer(value): + x = rational(value) + require(x.denominator == 1, 'nonintegral graph constant') + return x.numerator + + +def ceil(value): + return -(-value.numerator // value.denominator) + + +def halving_degree(m, child): + require(0 < child < m, 'child must strictly contract') + degree = 1 + while m**degree <= 2 * child**degree: + degree += 1 + return degree + + +def validate_bridge(finite_bridge): + """Recompute rather than trust stored semantic and product-stock totals. + + scalar_group_upper remains a supplied, proof-certified local scalar upper + charge. Its producer provenance is external to this arithmetic interface. + """ + result = {} + for name in ('bit', 'complex'): + data = finite_bridge[name] + m, W, child = (integer(data[k]) for k in ('m', 'W', 'maxchild')) + require(m > 1 and W > 0, 'positive arity and role volume required') + degree, bits = halving_degree(m, child), W.bit_length() + require(integer(data['halving_degree']) == degree, name + ' stale halving degree') + require(integer(data['wire_bits']) == bits, name + ' stale role logarithm') + result[name] = dict(m=m, W=W, maxchild=child, + halving_degree=degree, wire_bits=bits) + phase = finite_bridge['complex'] + s, scalar = (integer(phase[k]) for k in ('s', 'scalar_group_upper')) + m, W, child = (result['complex'][k] for k in ('m', 'W', 'maxchild')) + require(0 < s < m*W and scalar > 0, 'invalid complex rank/scalar bound') + E = 64*(W+m+scalar+1)**3 + B = s+E + literal = 2*scalar*W**2+8*s+4*W+4+32*m + C0 = 32*m*B**2 + semantic = dict(E=E, B=B, C0=C0, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-child)-(s+E)) + require(E > literal and semantic['induction_gap'] >= 0 and C0 > 2*B+18, + 'semantic completed-child bound failed') + for key, value in semantic.items(): + require(rational(finite_bridge['semantic'][key]) == value, + 'stale semantic constant: '+key) + result['complex'].update(s=s, scalar_group_upper=scalar) + result['semantic'] = semantic + rows = finite_bridge['rows'] + coefficient = sum(result[name]['halving_degree']*result[name]['wire_bits'] + for name in ('bit', 'complex')) + degree = integer(rows['degree']) + gap = degree-Q(51,25)*coefficient + require(degree > 0 and gap > 0, 'insufficient product row degree') + expected = dict(coefficient=coefficient, degree=degree, + degree_gap=gap, suffix_slope=4*degree) + for key, value in expected.items(): + require(rational(rows[key]) == value, 'stale product row constant: '+key) + result['rows'] = expected + return result + + +def assembly(finite_bridge, a_bit, kappa, beta=Q(1,20), h=Q(1,10**12), + a_complex=Q(717,10**7), *, original_prefix=False, + old_guard=False, old_exposures=False): + """Return 47 strict slacks and seven margins, or raise InvalidAssembly. + + The three keyword switches are negative controls: they impose the old + prefix, nonlinear guard, or old separate movement charges at these SAME + balanced parameters. They do not silently optimize an alternative family. + """ + f = validate_bridge(finite_bridge) + a, b, kappa, beta, h = map(rational, (a_bit,a_complex,kappa,beta,h)) + require(0 < h < Q(1,2) and kappa > 0, 'positive backoff and saving required') + tau, sigma = 1-a, 1-b + q = a*(1-2*h) + require(1+q != 0, 'undefined balanced epsilon') + lp, c, eps = 1-q, q+h/4, (1-h)/(1+q) + lam = (tau+lp)/2 + G = eps*q + r, delta = (G+1-eps)/2, h/8 + C1 = Q(19991,10000) if old_guard else Q(1) + margins = dict(g1=1-eps, g2=a, g3=G, g4=a, + g5=min(1-eps-delta,r-delta), g6=1-eps-delta, g7=eps) + if original_prefix: + margins['g1'] = 1-eps*(1+c) + if old_exposures: + margins.update(g2=eps*c*a, g4=a*(1-eps)) + internal = tau+(1-beta)*max(sigma-tau,Q(0)) + leaf = sigma+beta*(1-sigma) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=eps, epsilon_below_one=1-eps, guard_width=1-eps*C1, + K_geometry=1-eps*(1+c), K_dominates_log=eps*c, + record_suffix=1-eps, phase_local=1-eps-delta, phase_boundary=r-delta, + gamma_sublinear=1-eps-r, cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=eps-a, + small_field_exposure=1-eps-G, artificial_boundary=8-eps+r-delta-G, + literal_scalar_guard=Q(f['semantic']['strict_literal_gap']), + row_product_gap=f['rows']['degree_gap']) + slacks.update({name+'_above_kappa': value-kappa for name,value in margins.items()}) + require(len(slacks) == 47 and len(margins) == 7, 'constraint list incomplete') + failed = {name:str(value) for name,value in slacks.items() if value <= 0} + require(not failed, str(failed)) + require(min(margins.values()) == G, 'unexpected controlling margin') + require(1-eps-G == h and 1-eps-r == h/2, 'balanced identities failed') + require(1-eps*(1+c) == h-eps*h/4, 'geometric identity failed') + parameters = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta,h=h, + q=q,c=c,epsilon=eps,lambda_=lam,lambda_prime=lp,alpha_squared_power=r, + delta=delta,C0=f['semantic']['C0'],C1=C1,kappa=kappa) + return dict(parameters=parameters,constraints=slacks,margins=margins, + minimum_margin=G,absorption_gap=G-kappa,scoped_limit=a/(1+a), + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c),finite_bridge=f) + + +def cutoffs(finite_bridge, result): + """PR34 sufficient numeric comparisons, retaining its all-interval padding. + + These are eventual arithmetic thresholds, not practical running times or + substitutes for additional native setup / prime / recovery thresholds. + """ + f = validate_bridge(finite_bridge) + p = result['parameters'] + e,c,r,beta = (p[k] for k in ('epsilon','c','alpha_squared_power','beta')) + ka,km,kb,ks = (ceil(1/x) for x in (r,e*c,1-e,e*beta)) + C0 = f['semantic']['C0'] + largest = max(f['bit']['m'],f['complex']['m']) + cuts = dict(guard=ceil(Q((2*C0).bit_length())/(1-e)), + normalization=ceil(7/(1-e-r)), alpha=16*ka*ka+1, compact=64*km*km+1, + geometry=ceil(3/(1-e*(1+c))),phase_cell=ceil(9/(e-(1-r)/2)), + period=128*kb*kb+1,stopped_leaf=ks*(4*largest).bit_length(),log_p=25,reservoir=14) + common = max(cuts.values()) + require(common >= max(2*ka,2*km,2*kb,25), 'cutoff does not cover monotone regime') + checkpoints=[] + for j in range(6): + z=common*2**j + powers=dict(alpha=(z//ka,8*(z+ka)+64),compact=(z//km,32*(z+km)+192), + period=(z//kb,16*(z+kb)+56), + rows=(z//kb,f['rows']['suffix_slope']*(z+kb+8)), + leaf=(z//ks,4*largest)) + require(all(lhs >= rhs.bit_length() for lhs,rhs in powers.values()), + 'compressed-power threshold failed') + checkpoints.append(dict(log2_input=z,powers={name:dict(exponent=lhs,rhs=rhs, + rhs_bits=rhs.bit_length()) for name,(lhs,rhs) in powers.items()})) + return dict(cutoff_log2_input=cuts,common_cutoff=common,power_checkpoints=checkpoints, + all_interval_argument='For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). ' + 'Successive intervals double LHS; the positive affine RHS grows at most ' + 'linearly, so 2^j >= j+1 proves persistence.', + additional_eventual_conditions=['BHP prime threshold and distinct-prime packing', + 'Fixed rational basis, eligible common prime and native table setup', + 'Catalogue/descriptor domination, logarithm absorption, exact recovery'], + practical_runtime_claim=False) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json new file mode 100644 index 0000000000..fa4b29c06d --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json @@ -0,0 +1,17916 @@ +{ + "assembly": { + "absorption_gap": "74937627730682908927817/3333470626501666392080330000000000000", + "constraints": { + "K_dominates_log": "13729316916625478716083360791967/333347062650166639208033000000000000", + "K_geometry": "250013729316916639208033/333347062650166639208033000000000000", + "a_below_b": "61024099/2000000000000", + "a_positive": "82375901/2000000000000", + "alpha_below_one": "666666666666333347062650166639208033/666694125300333278416066000000000000", + "alpha_below_one_fourth": "166646072691083388250600666639208033/666694125300333278416066000000000000", + "alpha_positive": "27458633999931353415833360791967/666694125300333278416066000000000000", + "artificial_boundary": "18667545342947664950502062499917624099/2666776501201333113664264000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "999958812049250082375901/1000000000000000000000000", + "c_positive": "41187950749917624099/1000000000000000000000000", + "cell_above_band": "666666666665666652937349833360791967/1333388250600666556832132000000000000", + "compact_leaf": "26927049500082375901/1000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "13729317166639208033/333347062650166639208033", + "epsilon_positive": "333333333333000000000000/333347062650166639208033", + "g1_above_kappa": "3408408254232349301008147/3333470626501666392080330000000000000", + "g2_above_kappa": "4241/2500000000000", + "g3_above_kappa": "74937627730682908927817/3333470626501666392080330000000000000", + "g4_above_kappa": "4241/2500000000000", + "g5_above_kappa": "5299956450675231223831763/13333882506006665568321320000000000000", + "g6_above_kappa": "11966897703678564007992423/13333882506006665568321320000000000000", + "g7_above_kappa": "3333196040161742016173902349301008147/3333470626501666392080330000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "13729317166639208033/333347062650166639208033", + "lambda_above_internal": "82375901/2000000000000000000000000", + "lambda_above_sigma": "61024099000082375901/2000000000000000000000000", + "lambda_above_tau": "82375901/2000000000000000000000000", + "lambda_prime_above_lambda": "82375901/2000000000000000000000000", + "lambda_prime_below_one": "41187950499917624099/1000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "21966907133275670202633360791967/533355300240266622732852800000000000", + "phase_leaf_above_bit": "53854099/2000000000000", + "phase_local": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "prime_interval_packing": "13729317166639208033/333347062650166639208033", + "q_below_internal": "82375901/1000000000000000000000000", + "q_below_leaf": "26927049500082375901/1000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "41187950499917624099/1000000000000000000000000", + "record_suffix": "13729317166639208033/333347062650166639208033", + "row_product_gap": "6548/25", + "short_record_fallback": "666639206901368489075295096355187267/666694125300333278416066000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "13729317166639208033/333347062650166639208033", + "g2": "82375901/2000000000000", + "g3": "13729316833292145382833360791967/333347062650166639208033000000000000", + "g4": "82375901/2000000000000", + "g5": "21966907133275670202633360791967/533355300240266622732852800000000000", + "g6": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "g7": "333333333333000000000000/333347062650166639208033" + }, + "minimum_margin": "13729316833292145382833360791967/333347062650166639208033000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "82375901/2000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "27458633999931353415833360791967/666694125300333278416066000000000000", + "beta": "1/20", + "c": "41187950749917624099/1000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "333333333333000000000000/333347062650166639208033", + "h": "1/1000000000000", + "kappa": "411862541/10000000000000", + "lambda_": "1999917624099000082375901/2000000000000000000000000", + "lambda_prime": "999958812049500082375901/1000000000000000000000000", + "q": "41187950499917624099/1000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "1999917624099/2000000000000" + }, + "recurrence": { + "internal": "1999917624099/2000000000000", + "leaf": "199986377/200000000", + "reservations": "999958812049250082375901/1000000000000000000000000" + }, + "scoped_limit": "82375901/2000082375901" + }, + "bit": { + "counts": { + "L": 2226400, + "N": 4073300, + "W": 177530859, + "axes": [ + { + "copied_blocks": [ + 0, + 295366, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + "fixed": { + "R": 36432, + "blocks": [ + 0, + 295343, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 23 + ], + "crt_disagreements": 0, + "crt_matrices": 5379, + "distinct_matrices": 68025, + "field_prime": 2305843009213693951, + "frames": 33627, + "h": 23, + "loss": 506, + "rank_sum": 838948, + "v": 1771 + }, + "original": { + "R": 36432, + "baseline_R": 42434, + "c": 37098, + "h": 23, + "histogram": [ + 5244, + 41676, + 30595, + 6012, + 15568, + 7215, + 4691, + 1842, + 4185, + 1306, + 3391, + 976, + 3359, + 939, + 3937, + 1398, + 3343, + 1467, + 8640, + 6346, + 0, + 220, + 23, + 23 + ], + "loss": 506, + "matched": 6002, + "orientation_changes": 717, + "q": 5336, + "rank_sum": 838948, + "v": 1771 + } + }, + { + "copied_blocks": [ + 0, + 394005, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + }, + "fixed": { + "R": 48329, + "blocks": [ + 0, + 393980, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 25 + ], + "crt_disagreements": 0, + "crt_matrices": 7186, + "distinct_matrices": 91415, + "field_prime": 2305843009213693951, + "frames": 44621, + "h": 25, + "loss": 600, + "rank_sum": 1209425, + "v": 2300 + }, + "original": { + "R": 48329, + "baseline_R": 56044, + "c": 49119, + "h": 25, + "histogram": [ + 6800, + 54247, + 39973, + 7714, + 20972, + 9090, + 4755, + 2916, + 5934, + 1457, + 3588, + 1332, + 4566, + 1032, + 3588, + 1281, + 4949, + 1932, + 4238, + 1657, + 11304, + 8160, + 0, + 286, + 25, + 25 + ], + "loss": 600, + "matched": 7715, + "orientation_changes": 3214, + "q": 6925, + "rank_sum": 1209425, + "v": 2300 + } + } + ], + "child_multiplicities": { + "1": 1470810555, + "10": 17713956, + "11": 17077983, + "12": 11614448, + "13": 10148060, + "14": 7290333, + "15": 5881721, + "16": 3695640, + "17": 10837991, + "18": 1620511, + "19": 731423, + "2": 109787050, + "20": 524975, + "21": 16346100, + "22": 116886, + "23": 91984475, + "25": 85590659, + "3": 74203405, + "4": 47288874, + "481": 8146600, + "5": 42136207, + "525": 85590659, + "529": 83793600, + "6": 34427343, + "7": 35567660, + "8": 24924065, + "9": 22825959 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 83793600, + "529": 83793600 + }, + "exterior_25": { + "25": 85590659, + "525": 85590659 + }, + "internal_23": { + "1": 679341800, + "10": 8086800, + "11": 7739500, + "12": 5260100, + "13": 4374600, + "14": 2999200, + "15": 2249400, + "16": 1322500, + "17": 883200, + "18": 485300, + "2": 53203600, + "20": 126500, + "21": 52900, + "3": 38686000, + "4": 24453600, + "5": 20499900, + "6": 16304700, + "7": 17574300, + "8": 12323400, + "9": 10731800 + }, + "internal_25": { + "1": 697782855, + "10": 9627156, + "11": 9338483, + "12": 6354348, + "13": 5773460, + "14": 4291133, + "15": 3632321, + "16": 2373140, + "17": 1808191, + "18": 1135211, + "19": 731423, + "2": 56583450, + "20": 398475, + "22": 116886, + "23": 44275, + "3": 35517405, + "4": 22835274, + "5": 21636307, + "6": 18122643, + "7": 17993360, + "8": 12600665, + "9": 12094159 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 102078397025 + }, + "exponent": "1999917624099/2000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "53259257699997876183736668495459569052785792230580620090082251565468500625309917919185182222272809724224279711231586883132969347622582523/53259257700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "82375901/2000000000000", + "strict_gap": "86357381254751862420191545704798752662973008553534107565392680757691400260904026452418824652737693710240154702379980434099259423216638822857814148601254263753449261128928174148567282159375696049922777800392880416655334347910898177298462563939142973301126073080543562257726240755581747563199696454706185011538581049130537795661088578393521117824130621795646880463274069889057323677109569884775881772801092142271729230590294146536649396307431553962131510800493187347962391626149529196354368034923540602827584261314666865682234666101889906754883827341580055378422372738052380207834708917356370987627010158783063063125894233253844345938226133499179262281464327246428498583476060857838740222705374132954626560591512450850356668750508178861378641462227199236700632011495218187888904536056810333037554362038569390969321460209586420356538594375798712535346414221488555689979502778312890748219238773997515630296103388733080327724435692020757582285245414049886745837906270620637509081126350164913074203246001707064231855337207315125811248151826010206143889771624137487832831018986105280880723364301345037770870540726794365290209985707605672563008298333698438513936108259/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000", + "upper": "2165940252601372784296236000020593083647617867462841476279305086888009256377625415940898150796257728944348499946538153344121051225287760019875091065436588571323213837914854091327650301867139439668907881337729538978936109245127232713850526728262779048520241484236058379648589825858960095635345716281532838210892742470454544563413329512341540575399345230160294764208504164645058090672700282213212249184290484446518682525973056622514659633237643672009277869217096639483865484322488173558485118729435839295151900341521849560561667394825750388800070618416176223140977318728500263303812327512540197098237503555469520961476602423236911363430136975060274545307031332276130295751430329335183539439189658880340788133471383927380215760170412939867434297900395752498035130674231798452741356243608657815950087296037913527105015002919210443826497716744881621478142349329099529642920943387319698979249846386671662169038464160435599552782978926172147697357480056718541348895072631523335416188177976414941135950546362600954687550006808395614924186050708131879487056899055922026517731796737367235908268487455800472679267394707376152418619446993501890014292394327436991701666301561486063891741/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000" + }, + "comparison": { + "PR36": "384569/10000000000", + "PR37": "3850771033/100000000000000", + "PR38": "242889/6250000000", + "PR39": "971668963/25000000000000", + "PR40": "1959367447/50000000000000", + "PR41": "1008542031/25000000000000", + "PR42": "4099494519/100000000000000", + "PR43": "409953/10000000000", + "PR44": "2050314627/50000000000000", + "PR46": "82012589/2000000000000", + "PR47": "4105106623/100000000000000", + "dyadic_corollary": "2^-15", + "next_dyadic_not_reached": "2^-14", + "ratio_PR36": "4627669/4321000", + "ratio_PR37": "4118625410/3850771033", + "ratio_PR38": "411862541/388622400", + "ratio_PR39": "2059312705/1943337926", + "ratio_PR40": "89535335/85189889", + "ratio_PR41": "2059312705/2017084062", + "ratio_PR42": "4118625410/4099494519", + "ratio_PR43": "411862541/409953000", + "ratio_PR44": "23138345/23037243", + "ratio_PR46": "411862541/410062945", + "ratio_PR47": "4118625410/4105106623" + }, + "complex": { + "child_width_multiplicities": [ + [ + 1, + 540572760 + ], + [ + 2, + 336785904 + ], + [ + 3, + 161899920 + ], + [ + 4, + 117097344 + ], + [ + 5, + 93051504 + ], + [ + 6, + 64779624 + ], + [ + 7, + 52822224 + ], + [ + 8, + 70243992 + ], + [ + 9, + 32150664 + ], + [ + 10, + 50699376 + ], + [ + 11, + 22728888 + ], + [ + 12, + 47580624 + ], + [ + 13, + 26208000 + ], + [ + 14, + 44907408 + ], + [ + 15, + 24714144 + ], + [ + 16, + 49192416 + ], + [ + 17, + 20815704 + ], + [ + 18, + 52501176 + ], + [ + 19, + 22624056 + ], + [ + 20, + 46348848 + ], + [ + 21, + 37759176 + ], + [ + 22, + 58961448 + ], + [ + 23, + 40773096 + ], + [ + 24, + 38781288 + ], + [ + 25, + 2208024 + ], + [ + 26, + 3741192 + ], + [ + 27, + 43112160 + ], + [ + 729, + 21464352 + ], + [ + 756, + 516232080 + ] + ], + "counts": { + "B1": 258116040, + "B2": 258116040, + "L": 4953312, + "N": 10732176, + "W": 537696432, + "child_multiplicities": { + "1": 540572760, + "10": 50699376, + "11": 22728888, + "12": 47580624, + "13": 26208000, + "14": 44907408, + "15": 24714144, + "16": 49192416, + "17": 20815704, + "18": 52501176, + "19": 22624056, + "2": 336785904, + "20": 46348848, + "21": 37759176, + "22": 58961448, + "23": 40773096, + "24": 38781288, + "25": 2208024, + "26": 3741192, + "27": 43112160, + "3": 161899920, + "4": 117097344, + "5": 93051504, + "6": 64779624, + "7": 52822224, + "729": 21464352, + "756": 516232080, + "8": 70243992, + "9": 32150664 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + }, + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + } + ], + "deficit": 5778864, + "dimensions": [ + 28, + 28 + ], + "m": 784, + "maxchild": 756, + "total_rank": 421548223824 + }, + "enclosure": "1+u+u^2/(2(1-u/3))", + "exponent": "9999283/10000000", + "logarithm_upper_bounds": { + "1": "6664409020351/1000000000000", + "10": "4361823927357/1000000000000", + "11": "4266513747553/1000000000000", + "12": "4179502370563/1000000000000", + "13": "4099459662889/1000000000000", + "14": "251584480671/62500000000", + "15": "3956358819249/1000000000000", + "16": "3891820298111/1000000000000", + "17": "766239135259/200000000000", + "18": "754807452491/200000000000", + "19": "116249063787/31250000000", + "2": "5971261839791/1000000000000", + "20": "3668676746797/1000000000000", + "21": "3619886582627/1000000000000", + "22": "3573366566993/1000000000000", + "23": "1764457402211/500000000000", + "24": "3486355190003/1000000000000", + "25": "3445533195483/1000000000000", + "26": "3406312482329/1000000000000", + "27": "3368572154347/1000000000000", + "3": "5565796731683/1000000000000", + "4": "5278114659231/1000000000000", + "5": "5054971107917/1000000000000", + "6": "4872649551123/1000000000000", + "7": "2303954527/488281250", + "729": "36367644171/500000000000", + "756": "36367644171/1000000000000", + "8": "4584967478671/1000000000000", + "9": "893436888603/200000000000" + }, + "moment_upper": "93758349669268174319758205865410416369669365194946428036263324886438920093698460010858713501882394775456058947688857504496378147740660153782705622445171968788940999158190850771009870660961702451316489933657453673410640256343163004633261783258126014322372415015196690665271304600343211202483869148840537844645971747977878306709988702092424295624899718047484041316483866997928443286860331217210569026228462754909148637641705274404842932443778349005557711550186032457951943018925944743009981965944635321901441335715694527157550303349516161701526749290641/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000", + "saving": "717/10000000", + "strict_gap": "799473866277846996709566868461626852274119892073214726922559004722049349860610885265197736074614901241077938822464125203618856630115942991121576126038522365700920238764631890201019076228268900099948049068998325124717427528599065415563911051089321775180102241577945383026678416698968257186466124918166171990724170465498339188718920943864567240237109440116392647851672422772615476546648773879307167872400514966177486129179086589485432748351924928772206631719941743038644792509730653397329958725804455602353626204716908969469523838298473250709359/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000" + }, + "controls": { + "PR40_bit_at_new_lower": "225818511431434901143450129613675250367060741840259317558179152603547745091720641143418160534936518333388387416533785674009254042754668107/225818314800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR41_bit_at_new_lower": "71351390501120105382667951093623831543963199017523832465221628611249289862638259523399377589566608499665993308315735243596852498486401143/71351363600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR42_bit_at_new_lower": "35675684798200343049340019110122720910157671615408029067001840793135754771116659125262690868038927797668077298780777541247295863817121613/35675681800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR43_bit_at_new_lower": "39385956009599315979378903721423208346195507187143417888392878949339863777130231502525440065262077654352230783095147155214119706814579573/39385952707200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR44_bit_at_new_lower": "27972979985809926698189510242186111721799641298372934454141074653606330355033987247203097142447598338739628213358928631749381262069447381/27972977775000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR46_bit_at_new_lower": "53513526929327323279826583353483061995125044145882592243457696059568495005255560229136252301198123695755265918459690181269467077912590743/53513522700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR47_bit_at_new_lower": "106900961147318756414776323709299143180165013078166700653729842113479441057835447594482895468854894319066737732648871855706927505431906281/106900954800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "old_bit_at_new_lower": "28227323527781237813430958008983158845436241200945201577976121288826000958450463883474541742600969253008151638715984357964612558619308229/28227289350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 9432294401, + "compact": 37729177601, + "geometry": 3999945085748, + "guard": 5390148, + "log_p": 25, + "normalization": 14000000000000, + "period": 75458355201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 576606260, + "rhs": 112000000194304, + "rhs_bits": 47 + }, + "compact": { + "exponent": 576606260, + "rhs": 448000000777152, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 576606260, + "rhs": 224000000388536, + "rhs_bits": 48 + }, + "rows": { + "exponent": 576606260, + "rhs": 112000000194304000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1153212520, + "rhs": 224000000194304, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1153212520, + "rhs": 896000000777152, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1153212520, + "rhs": 448000000388536, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1153212520, + "rhs": 224000000194304000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2306425041, + "rhs": 448000000194304, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2306425041, + "rhs": 1792000000777152, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2306425041, + "rhs": 896000000388536, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2306425041, + "rhs": 448000000194304000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 4612850082, + "rhs": 896000000194304, + "rhs_bits": 50 + }, + "compact": { + "exponent": 4612850082, + "rhs": 3584000000777152, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 4612850082, + "rhs": 1792000000388536, + "rhs_bits": 51 + }, + "rows": { + "exponent": 4612850082, + "rhs": 896000000194304000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 9225700164, + "rhs": 1792000000194304, + "rhs_bits": 51 + }, + "compact": { + "exponent": 9225700164, + "rhs": 7168000000777152, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 9225700164, + "rhs": 3584000000388536, + "rhs_bits": 52 + }, + "rows": { + "exponent": 9225700164, + "rhs": 1792000000194304000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 18451400329, + "rhs": 3584000000194304, + "rhs_bits": 52 + }, + "compact": { + "exponent": 18451400329, + "rhs": 14336000000777152, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 18451400329, + "rhs": 7168000000388536, + "rhs_bits": 53 + }, + "rows": { + "exponent": 18451400329, + "rhs": 3584000000194304000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "geometry": { + "accepted_profile": { + "blocks": [ + 21, + 17, + 481 + ], + "singletons": 9 + }, + "column_tree": [ + [ + 0, + 26 + ], + [ + 1, + 27 + ], + [ + 2, + 28 + ], + [ + 3, + 29 + ], + [ + 4, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 32 + ], + [ + 7, + 33 + ], + [ + 8, + 34 + ], + [ + 9, + 35 + ], + [ + 10, + 36 + ], + [ + 11, + 37 + ], + [ + 12, + 38 + ], + [ + 13, + 39 + ], + [ + 14, + 40 + ], + [ + 15, + 41 + ], + [ + 16, + 42 + ], + [ + 17, + 43 + ], + [ + 18, + 44 + ], + [ + 19, + 45 + ], + [ + 20, + 46 + ], + [ + 21, + 47 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 0, + 25 + ], + [ + 1, + 26 + ], + [ + 2, + 27 + ], + [ + 3, + 28 + ], + [ + 4, + 29 + ], + [ + 5, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 32 + ], + [ + 8, + 33 + ], + [ + 9, + 34 + ], + [ + 10, + 35 + ], + [ + 11, + 36 + ], + [ + 12, + 37 + ], + [ + 13, + 38 + ], + [ + 14, + 39 + ], + [ + 15, + 40 + ], + [ + 16, + 41 + ], + [ + 17, + 42 + ], + [ + 18, + 43 + ], + [ + 19, + 44 + ], + [ + 20, + 45 + ], + [ + 21, + 46 + ], + [ + 22, + 47 + ] + ], + "dimensions": [ + 23, + 25 + ], + "fallback_profile": { + "blocks": [ + 481 + ], + "singletons": 47 + }, + "inherited": { + "actual_local_and_auxiliary_contractions": true, + "actual_null_corner": true, + "author_witness": { + "nu_denominator": 105625, + "nu_numerators": [ + 1, + 8, + 27, + 64, + 125, + 216, + 343, + 512, + 729, + 1000, + 1331, + 1728, + 2197, + 2744, + 3375, + 4096, + 4913, + 5832, + 6859, + 8000, + 9261, + 10648, + 12167, + 13824, + 15625 + ], + "p": "all ones", + "pivot_values": [ + "-1", + "1081", + "4324/9", + "1081/4", + "4324/25", + "1081/9", + "4324/49", + "1081/16", + "4324/81", + "1081/25", + "4324/121", + "1081/36", + "4324/169", + "1081/49", + "4324/225", + "1081/64", + "4324/289", + "1081/81", + "4324/361", + "1081/100", + "4324/441", + "1081/121", + "142812651751657877942589556478847433551977787425536169375/19268941635246593353904372229207380456680824753881088", + "-3301880224346962861941006006629802656529005188895982595479857959591861547197179585193848574930840744013899375/11019785351154517046629105770544670194180926949645355094282023563638938723955445008552317770143413305344", + "74907043800035918709206033348544416861478577835267509060516462595758002954160059826338653120940771668514812472/60116162482420807682130286875371919099299138623504462366497186337585098720021476289373665451631146909675", + "10940299784531588304345150315393704447900044902431187377875452629639845445581682724600127025820276398750/30226196505888073803577264188652004854088012439298071298271200975120006873557454163131322338706864804567", + "-5831395627680712592570933775404123356087221102691725998080707457029019970438674252017627955200000/622802236364140798653392176212549886737354011381551974831022707159458930937546871107955711994323", + "-14843046800460539712231070321073001452509820092416000/38851899814728176802610554213615671238028162148034359", + "845", + "105625/216", + "105625/343", + "105625/512", + "105625/729", + "845/8", + "105625/1331", + "105625/1728", + "625/13", + "105625/2744", + "845/27", + "105625/4096", + "105625/4913", + "105625/5832", + "105625/6859", + "845/64", + "105625/9261", + "230987404375/5999554", + "-228361250/22253" + ], + "v": "all ones", + "xi_denominator": 4324, + "xi_numerators": [ + 1, + 4, + 9, + 16, + 25, + 36, + 49, + 64, + 81, + 100, + 121, + 144, + 169, + 196, + 225, + 256, + 289, + 324, + 361, + 400, + 441, + 484, + 529 + ] + }, + "both_trees": true, + "columns": [ + [ + 0, + 3 + ], + [ + 1, + 4 + ], + [ + 2, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 14 + ], + [ + 12, + 15 + ], + [ + 13, + 16 + ], + [ + 14, + 17 + ], + [ + 15, + 18 + ], + [ + 16, + 19 + ], + [ + 17, + 20 + ], + [ + 18, + 21 + ], + [ + 19, + 22 + ], + [ + 20, + 23 + ], + [ + 21, + 24 + ], + [ + 22, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 14 + ], + [ + 13, + 15 + ], + [ + 14, + 16 + ], + [ + 15, + 17 + ], + [ + 16, + 18 + ], + [ + 17, + 19 + ], + [ + 18, + 20 + ], + [ + 19, + 21 + ], + [ + 20, + 22 + ], + [ + 21, + 23 + ], + [ + 22, + 24 + ] + ], + "cuts": [ + { + "pivot": 46, + "row": 0, + "trivial_suffix_bound": 0 + }, + { + "left_rank": 1, + "pivot": 25, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 1, + "selected": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 26, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 2, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 27, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 3, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 28, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 4, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 29, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 5, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 30, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 6, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 31, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 7, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 32, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 8, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 33, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 9, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 34, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 10, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 35, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 11, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 36, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 12, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 37, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 13, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 38, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 14, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 39, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 15, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 40, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 16, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 41, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 17, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 42, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 18, + "selected": [ + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 43, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 19, + "selected": [ + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 44, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 20, + "selected": [ + 21, + 22, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 45, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 21, + "selected": [ + 22, + 45, + 46, + 47, + 48 + ] + }, + { + "pivot": 24, + "row": 22, + "trivial_suffix_bound": 22 + }, + { + "pivot": 23, + "row": 23, + "trivial_suffix_bound": 23 + }, + { + "pivot": 22, + "row": 24, + "trivial_suffix_bound": 24 + }, + { + "pivot": 21, + "row": 25, + "trivial_suffix_bound": 25 + }, + { + "pivot": 20, + "row": 26, + "trivial_suffix_bound": 26 + }, + { + "pivot": 19, + "row": 27, + "trivial_suffix_bound": 27 + }, + { + "left_rank": 22, + "pivot": 2, + "preceding_right_pivots": 28, + "right_rank": 6, + "row": 28, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 21, + "pivot": 3, + "preceding_right_pivots": 28, + "right_rank": 7, + "row": 29, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 20, + "pivot": 4, + "preceding_right_pivots": 28, + "right_rank": 8, + "row": 30, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 19, + "pivot": 5, + "preceding_right_pivots": 28, + "right_rank": 9, + "row": 31, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 18, + "pivot": 6, + "preceding_right_pivots": 28, + "right_rank": 10, + "row": 32, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 17, + "pivot": 7, + "preceding_right_pivots": 28, + "right_rank": 11, + "row": 33, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 16, + "pivot": 8, + "preceding_right_pivots": 28, + "right_rank": 12, + "row": 34, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 15, + "pivot": 9, + "preceding_right_pivots": 28, + "right_rank": 13, + "row": 35, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 14, + "pivot": 10, + "preceding_right_pivots": 28, + "right_rank": 14, + "row": 36, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 13, + "pivot": 11, + "preceding_right_pivots": 28, + "right_rank": 15, + "row": 37, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 12, + "pivot": 12, + "preceding_right_pivots": 28, + "right_rank": 16, + "row": 38, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 11, + "pivot": 13, + "preceding_right_pivots": 28, + "right_rank": 17, + "row": 39, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 10, + "pivot": 14, + "preceding_right_pivots": 28, + "right_rank": 18, + "row": 40, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 9, + "pivot": 15, + "preceding_right_pivots": 28, + "right_rank": 19, + "row": 41, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 8, + "pivot": 16, + "preceding_right_pivots": 28, + "right_rank": 20, + "row": 42, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 7, + "pivot": 17, + "preceding_right_pivots": 28, + "right_rank": 21, + "row": 43, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 6, + "pivot": 18, + "preceding_right_pivots": 28, + "right_rank": 22, + "row": 44, + "selected": [ + 19, + 20, + 21, + 22, + 44, + 45, + 46, + 47 + ] + }, + { + "pivot": 1, + "row": 45, + "trivial_suffix_bound": 45 + }, + { + "pivot": 0, + "row": 46, + "trivial_suffix_bound": 46 + } + ], + "d": 47, + "dimensions": [ + 23, + 25 + ], + "m": 575, + "negative_controls": [ + "incorrect_unshifted_auxiliary_formula", + "old_25_23_data_residue_offset" + ], + "permutations": [ + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 2, + 3, + 1, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 3, + 4, + 2, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0, + 1 + ], + [ + 4, + 5, + 0, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 1, + 2 + ], + [ + 5, + 6, + 0, + 1, + 4, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 2, + 3 + ], + [ + 6, + 7, + 0, + 1, + 2, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 3, + 4 + ], + [ + 7, + 8, + 0, + 1, + 2, + 3, + 6, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 4, + 5 + ], + [ + 8, + 9, + 0, + 1, + 2, + 3, + 4, + 7, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 5, + 6 + ], + [ + 9, + 10, + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 6, + 7 + ], + [ + 10, + 11, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 9, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 7, + 8 + ], + [ + 11, + 12, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 8, + 9 + ], + [ + 12, + 13, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 11, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 9, + 10 + ], + [ + 13, + 14, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 12, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 10, + 11 + ], + [ + 14, + 15, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 11, + 12 + ], + [ + 15, + 16, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 12, + 13 + ], + [ + 16, + 17, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 15, + 18, + 19, + 20, + 21, + 22, + 13, + 14 + ], + [ + 17, + 18, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 16, + 19, + 20, + 21, + 22, + 14, + 15 + ], + [ + 18, + 19, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 17, + 20, + 21, + 22, + 15, + 16 + ], + [ + 19, + 20, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 18, + 21, + 22, + 16, + 17 + ], + [ + 20, + 21, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 19, + 22, + 17, + 18 + ], + [ + 21, + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 20, + 18, + 19 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 21, + 19, + 20 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "physical_blocks": [ + { + "columns": [ + 553, + 573 + ], + "rows": [ + 1, + 21 + ] + }, + { + "columns": [ + 530, + 546 + ], + "rows": [ + 28, + 44 + ] + }, + { + "columns": [ + 47, + 527 + ], + "rows": [ + 47, + 527 + ] + } + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "profile": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 21, + 17, + 481 + ], + "rank": 528, + "rational_controls": [ + { + "degree": 1, + "left_weights": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "ordered_prefix_determinants": [ + "-136/22425", + "-136/1681875", + "-1496/1135265625", + "-1496/58946484375", + "-1496/2652591796875", + "-25432/1790499462890625", + "-483208/1208587137451171875", + "-3382456/271932105926513671875", + "-3382456/7980616152191162109375", + "-3382456/215476636109161376953125", + "-3382456/5386915902729034423828125", + "-98091224/3636168234342098236083984375", + "-3040827944/2454413558180916309356689453125", + "-33449107384/552243050590706169605255126953125", + "-234143751688/74552811829745332896709442138671875", + "-8663318812456/50323147985078099705278873443603515625", + "-112623144561928/11322708296642572433687746524810791015625", + "-4617548927039048/7642828100233736392739228904247283935546875", + "-198554603862679064/5158908967657772065098979510366916656494140625", + "-198554603862679064/77383634514866580976484692655503749847412109375", + "-9332066381545916008/52233953297534942159127167542465031147003173828125", + "-457271252695749884392/35257918475836085957410838091163896024227142333984375", + "-774427803494826766413381910805757663636935962869953/934698078008949744645355209409485648384168738776353571529398323036730289459228515625", + "22488141150263136890277253182027357481046933636363407735902104533297154704/30739301928905317568582693128157367185453821539556669670738239185018288815279232907414552755653858184814453125", + "43781442323389343420444995260351594325182959245296311928874937920867383808/340409306546025553815045379456261214387062690382497934501879019122980309472907060715442639775574207305908203125", + "5223914806424997682784519984030088376145366436712067460675070411721763904/256160849407544313071522442734644726545448512829638913922818659875152406793993607561787939630448818206787109375", + "-2611659069095967460510300272690333032678968481792/134561904785955098423573914776839656121083847689766160464250788209028542041778564453125", + "8147026035721446555641344/421291420783618973406213148627626540264827781356871128082275390625", + "2962554922080526020233216/9689702678023236388342902418435410426091038971208035945892333984375", + "2962554922080526020233216/502184990793017597886518156006112537682878246414475142955780029296875", + "100726867350737884687929344/750766561235561308840344643229138243835902978389640338718891143798828125", + "788039609273419921382035456/224479201809432831343263048325512334906934990538502461276948451995849609375", + "2322643058911132399862841344/22373093780340138857211883816442729379057854057004078640602529048919677734375", + "331806151273018914266120192/96950073048140601714584829871251827309250700913684340775944292545318603515625", + "663612302546037828532240384/5333805218816503343929599000196790531245736561467257692129351198673248291015625", + "7299735328006416113854644224/1476673852246420833180509352832259600780069659146953749950625933706760406494140625", + "846769298048744269207138729984/3973729336395118462088750668471610585699167452764452541117134387604892253875732421875", + "905167180672795598117975883776/91395774737087724628041265374847043471080851413582408445694090914912521839141845703125", + "4496636962051952326134460841984/9109112215463076554594779449026421999284391524220380041754177727852948009967803955078125", + "2861496248578515116631020535808/108944982096938395592953562210356007111441322629675745299379965625121258199214935302734375", + "242000825594068707006509165314048/162872748234922901411465575504482230631604777331365239222573048609556281007826328277587890625", + "111189568516193730246233940819968/1248691069801075577487902745534363768175636626207133500706393372673264821060001850128173828125", + "9117544618327885880191183147237376/1617887396105593589898492657297357322299566522022375972415250346526993453153409063816070556640625", + "181683754955460555222346259299827712/483748331435572483379649304531909839367570390084690415752159853611571042492869310081005096435546875", + "16900814414461446997427559004635136/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625", + "7911019513152166679646942512807936/385708669597963126748040378813442778589076124360859824826388789946292644547647796571254730224609375", + "-494438719572010417477933907050496/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625" + ], + "pivot_values": [ + "-136/22425", + "1/75", + "11/675", + "13/675", + "1/45", + "17/675", + "19/675", + "7/225", + "23/675", + "1/27", + "1/25", + "29/675", + "31/675", + "11/225", + "7/135", + "37/675", + "13/225", + "41/675", + "43/675", + "1/15", + "47/675", + "49/675", + "90780708748082000078232473828014673925846401/1421023343629369829514948334235558745343301400", + "-18222683405075170949504376828173428931220504447233253567507707755072724400/20637750563429036160721040917538741498726591150217622165190926435667742044567", + "1507779263688153408612263867384557457627474361764031150611764443703341024/8576472198888619808919513649778290671980909639378391470707562825836542419", + "498070958903403796923651618375317737393961914724779391180435603668624811/3141206799350319601275549723717828036723904920341731563774509257715293800", + "-279771447951617034403030589935947704264107576270394945571233421944416/293962792978597558680101289617539486952958045283167061487567737754451", + "-7203444964173917251700002130749899185/7229663935460457778827016360402446746516", + "4/253", + "75/3887", + "34/1495", + "133/5083", + "168/5681", + "3/91", + "250/6877", + "297/7475", + "116/2691", + "31/667", + "462/9269", + "175/3289", + "592/10465", + "51/851", + "246/3887", + "817/12259", + "900/12857", + "110/141", + "-3/80" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + }, + { + "degree": 2, + "left_weights": [ + 2, + 5, + 10, + 17, + 26, + 37, + 50, + 65, + 82, + 101, + 122, + 145, + 170, + 197, + 226, + 257, + 290, + 325, + 362, + 401, + 442, + 485, + 530 + ], + "ordered_prefix_determinants": [ + "-9434/672175", + "-481134/14031653125", + "-39934122/292910758984375", + "-4911897006/6114512093798828125", + "-839934388026/127640439958050537109375", + "-190665106081902/2664494184124304962158203125", + "-55483545869833482/55621316093594866085052490234375", + "-20140527150749553966/1161094973453792829525470733642578125", + "-8922253527782052406938/24237857570847925316344201564788818359375", + "-4737716623252269828084078/505965276791450440978685207664966583251953125", + "-2970548322779173182208716906/10562025153021527955430053710006177425384521484375", + "-2171470823951575596194572058286/220482275069324396069602371196378953754901885986328125", + "-1830549904591178227592024245135098/4602567492072146767952949498724410659633576869964599609375", + "-1762819558121304633171119348065099374/96078596397006063781017820785872072519850917160511016845703125", + "-1923236137910343354789691208739023417034/2005640699787501581428747008905079513851887895725667476654052734375", + "-2359810741215991296326951113122781732700718/41867749608064095512325093810893534851658159823273308575153350830078125", + "-3235300526207124067264249976091333755532684378/873989273068337993819786333302402540028364086310830316506326198577880859375", + "-4927362701413449954443452713587101309676278307694/18244526075301555620988039707687653023092100301738582857069559395313262939453125", + "-8292751426478836273328330916967091504185176391849002/380854481821919973588125328897979756857047593798792917141327052377164363861083984375", + "-15349882890412325941930740527306086374246761501312502702/7950337308032579448652116240745327424390868520549802145325202218373306095600128173828125", + "-31114212618865784684293611048849437080598185563160442976954/165963291305180095990612926525558709984159380366477119783663596308542764745652675628662109375", + "-68793524100312249936973174029006105385202588280147739422045294/3464483705995634503804044841221038070919327065150209875483977572940830214065499603748321533203125", + "-320939889277029603849885218613819697637636425903389849074463084765835708779339849991808742586501/3072430179236252823264716186856353699802821337240763732623601650174243307843734253380457949016146823595363457570783793926239013671875", + "1245875627001486003524925840693082579900506702795220917872585680790449852841448300695325314605332716089358256276075666345371933435627513884/330392547940061126524090579005410197690598250921499159106894411964503315752339204942691190056398718416654087768414819695413626236548660752671835449945092477719299495220184326171875", + "-191122033997905806909528288458719256707212395642607937861919035317221617214725016921351463139805611093698337401145528199270922701922964576/594706586292110027743363042209738355843076851658698486392409941536105968354210568896844142101517693149977357983146675451744527225787589354809303809901166459894739091396331787109375", + "-33866419223477871432738970551480649008242390490093325529817983170572951863931838751688060529213753137420036470368457792949569488757290928/66078509588012225304818115801082039538119650184299831821378882392900663150467840988538238011279743683330817553682963939082725247309732150534367089989018495543859899044036865234375", + "-2451948467107434017727241549738357444604312885323666172115751274420393797285211501893659384900192544/6057064308553699886924805654804969362527607504292870424430510150921615686976776716332276924490573394820047692377329440205357968807220458984375", + "2201445419163520268278455908505270834917331925591970045434279936/4344364695505523672609278644785573695044342470968858137422975269751647398042138092932873405516147613525390625", + "2174921980378417614443775716836532632087002625283633056935071744/1258996888757500760322168951258859256823850448086775088225178233174027415952611619331946712918579578399658203125", + "17134141455176314377203403818004879028392727999185694570488492032/1824286491809618601706822810374087063137759299277737102838283259869165725715334236411990787019021809101104736328125", + "5322405414128979339697604701782357685556520034273366808159109472256/71371560419067708554576028810265408171138557065642908674342155975861370687161021331146315560545190237462520599365234375", + "84150277670964347357597811782805646402917843185053363323713849761792/103417391047229109695580665746074576439979769188116574669121784009023126125696319908831011247229980654083192348480224609375", + "209941929859519299593182169602463571438207402585390865199368573632512/17982215955292197593867566159927447351383682266429710003466895803488941170736076105747536235668349036131985485553741455078125", + "9992194826950178895513521609426344693492863070159223080026145583054848/46901215654593109764325386058322768181878920087301969631042357634659856361513833699010724009870187956039444543421268463134765625", + "109124692037889312633170242768407800512682779985170025420240389008621568/22653287161168472016169161466169897031847518402166851331793458737540710622611181676622179696767300782767051714472472667694091796875", + "39042595325895008480908316179632546796986793266219560450777192738694791168/295421517868798043562862034680321627192323487482657908217918495396268407229472420244829845425542369508065121408435516059398651123046875", + "16659792996908940891599834705894687983008977019464080574742639247953487396864/3852592014526995286103283794266074340215090600261341781069875098462736298679549832412826014194498040754677248287407564930617809295654296875", + "185719087731615539433169703171458019662845627539825981673840994844833062649856/1116481165809923233912731643578308343794333255955736848154049803534500979357333541433236978913565532210705466553690712316893041133880615234375", + "2404434310205043887750431957785637991222179334483583349926809748204635878719488/323556241851715753187909630308993758031597777575972538595043633064298383817755260307352076489151291234662444207259568429435603320598602294921875", + "4829699560648966987500346629822372117190741474977131949997377932265212855191994368/12658490849964675411970588466578762795470199852104773627453892056374545670102039049004535288485065966973698804720616095664809108711779117584228515625", + "409191979091683423027137525555454761026956001373085439657248058470213276862343544832/18342153241598814671945382688072627290636319585699816986180689589686716675977854582007571633014860586144889568040172722618308398523367941379547119140625", + "117504128978824269807125367332426910092554903191363109541085885621682345120306569674752/79733340141230047378946578545051710832396081239037104438927457646368157390475733867986913888715598967971834952270630825221786608381080441176891326904296875", + "22712493937014142339480551855454264061522417545964702228013743152091221605814355635994624/207960497756356209573768466161203872193055459087656575797610595033257428105838809074483468804548025228264139922512259318343463831979534006677567958831787109375", + "36253494918503860818960749547346891617571239037583841836048200658393801525761456698032128/4017796816652801968965206766234458810769831469573525044409836696042533511004805791319020617303867847410063183302936850030395721233844597009010612964630126953125", + "43301406973409151493893899756139666472465275529414446039832672779972669229865905878782181376/52396088285969190477275261438463577351249372194708340104148680353090679517013672324591347870259740598074633973453599461246390600610567389594507403671741485595703125", + "554988883545755027968047998507518444029367563360357849952925447551814126412537914860601344/5346539621017264334415843003924854831760140019868197969811089831948028522144252278019525292883646999803534078923836679719019449041894631591276265680789947509765625", + "-32310996644787107792660328680232238179791947181938641949314152768427534756894330659692544/87326813809948650795458769064105962252082286991180566840247800588484465861689453874318913117099567663457723289089332435410651001017612315990845672786235809326171875" + ], + "pivot_values": [ + "-9434/672175", + "51/20875", + "83/20875", + "123/20875", + "171/20875", + "227/20875", + "291/20875", + "363/20875", + "443/20875", + "531/20875", + "627/20875", + "731/20875", + "843/20875", + "963/20875", + "1091/20875", + "1227/20875", + "1371/20875", + "1523/20875", + "1683/20875", + "1851/20875", + "2027/20875", + "2211/20875", + "7364264693087061471645133239325113464318947332450318677985803365344435086883928283287/1399899145438201838550668546301643374764987111921828690592232299085948881442256498995830", + "-1210951777731703669691036352292953792524111331980891992800227130351123452472151452796669369975246604029157358069355455022522387772275100/33544712846985983089282237094201319680739975881928986568756767766484387589009805209852654469240424774578668316635040936193829465841865738629", + "-826652396184713697705572181914875677799361572848650250267815896700785541586180869036987297317498317879318068344055052765012641444303480/9699723739630946394225201181866559878118131769166944862329819314112498854301933136901321653501725298273550438135537194730404326055923551", + "1243707045322602512301081865587769476211813321843539571098949894460226246880045655012374097256821579930715578414980577693682368441991/779860751117654431797709605580071394150341106460990802139448959151684473194510253808478582374998413093696290890617974306615699475758", + "12643111167595480352640007527254011647390963772039223157364200341282508663461620715678931690444819848574010438266842033543946234/16007143716264495569984450694206590681902947627881894681891834877282600961170259533989395951668939340395582563226129421904093703", + "-36805546261487763107273876367617172536163293857447402763620390901622045709208640/29402264143559069033185372711699522165505155634755438669527959728477744344281439641", + "410/120267", + "323/59409", + "5902/743337", + "3589/328923", + "6050/421659", + "28795/1577961", + "4838/213969", + "21109/769419", + "89182/2725569", + "40745/1059219", + "18190/407169", + "214927/4186161", + "92434/1580859", + "117449/1777923", + "441670/5959737", + "60775/735609", + "223354/2438667", + "296891/2363680", + "-51/14308" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 11, + 27, + 51, + 83, + 123, + 171, + 227, + 291, + 363, + 443, + 531, + 627, + 731, + 843, + 963, + 1091, + 1227, + 1371, + 1523, + 1683, + 1851, + 2027, + 2211, + 2403 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + } + ], + "rows": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 14 + ], + [ + 15, + 15 + ], + [ + 16, + 16 + ], + [ + 17, + 17 + ], + [ + 18, + 18 + ], + [ + 19, + 19 + ], + [ + 20, + 20 + ], + [ + 21, + 21 + ], + [ + 22, + 22 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 1, + 0 + ], + [ + 2, + 1 + ], + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 14 + ], + [ + 16, + 15 + ], + [ + 17, + 16 + ], + [ + 18, + 17 + ], + [ + 19, + 18 + ], + [ + 20, + 19 + ], + [ + 21, + 20 + ], + [ + 22, + 21 + ] + ], + "source_sha256": { + "certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65" + }, + "status": "PASS EXACT REVERSED23/25 GEOMETRY; PR36 PHYSICAL INTEGRATION SEPARATE" + }, + "line_coordinates": { + "23": { + "dual": [ + "-5/72", + "31/72" + ], + "primal": [ + "3", + "4" + ] + }, + "25": { + "dual": [ + "-5/78", + "17/39" + ], + "primal": [ + "3", + "4" + ] + } + }, + "modular": { + "dimensions": [ + 23, + 25 + ], + "exact_recovery": [ + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 9, + 10, + 14, + 18, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 11, + 12, + 6, + 8, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 15, + 18, + 6, + 13, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 1, + 15, + 17, + 12, + 13, + 18 + ], + "pivots": [ + "-1", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 2, + 11, + 18, + 4, + 7, + 22 + ], + "pivots": [ + "-1", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "39/68", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 7, + 22, + 6, + 11, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 11, + 20, + 2, + 17, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "39/68", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 5, + 7, + 21, + 6, + 11, + 12 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 10, + 11, + 22, + 14, + 16, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 12, + 13, + 22, + 4, + 6, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + } + ], + "fallback": 0, + "fallback_pairs": [ + [ + 0, + 9, + 10, + 14, + 18, + 20, + 26 + ], + [ + 0, + 11, + 12, + 6, + 8, + 10, + 25 + ], + [ + 0, + 15, + 18, + 6, + 13, + 18, + 25 + ], + [ + 1, + 15, + 17, + 12, + 13, + 18, + 24 + ], + [ + 2, + 11, + 18, + 4, + 7, + 22, + 25 + ], + [ + 4, + 7, + 22, + 6, + 11, + 18, + 25 + ], + [ + 4, + 11, + 20, + 2, + 17, + 20, + 25 + ], + [ + 5, + 7, + 21, + 6, + 11, + 12, + 24 + ], + [ + 10, + 11, + 22, + 14, + 16, + 18, + 25 + ], + [ + 12, + 13, + 22, + 4, + 6, + 10, + 26 + ] + ], + "good": 4073300, + "nonzero_pivots": 191444880, + "ordered_zero_checks": 1409360440, + "pairs": 4073300, + "primary_fallback": 10, + "primary_good": 4073290, + "prime": 1000003, + "records": [ + [ + 0, + 1, + 2, + 2300, + 428310 + ], + [ + 0, + 1, + 3, + 2300, + 428310 + ], + [ + 0, + 1, + 4, + 2300, + 428310 + ], + [ + 0, + 1, + 5, + 2300, + 428310 + ], + [ + 0, + 1, + 6, + 2300, + 428310 + ], + [ + 0, + 1, + 7, + 2300, + 428310 + ], + [ + 0, + 1, + 8, + 2300, + 428310 + ], + [ + 0, + 1, + 9, + 2300, + 428310 + ], + [ + 0, + 1, + 10, + 2300, + 428310 + ], + [ + 0, + 1, + 11, + 2300, + 428310 + ], + [ + 0, + 1, + 12, + 2300, + 428310 + ], + [ + 0, + 1, + 13, + 2300, + 428310 + ], + [ + 0, + 1, + 14, + 2300, + 428310 + ], + [ + 0, + 1, + 15, + 2300, + 428310 + ], + [ + 0, + 1, + 16, + 2300, + 428310 + ], + [ + 0, + 1, + 17, + 2300, + 428310 + ], + [ + 0, + 1, + 18, + 2300, + 428310 + ], + [ + 0, + 1, + 19, + 2300, + 428310 + ], + [ + 0, + 1, + 20, + 2300, + 428310 + ], + [ + 0, + 1, + 21, + 2300, + 428310 + ], + [ + 0, + 1, + 22, + 2300, + 428310 + ], + [ + 0, + 2, + 3, + 2300, + 428310 + ], + [ + 0, + 2, + 4, + 2300, + 428310 + ], + [ + 0, + 2, + 5, + 2300, + 428310 + ], + [ + 0, + 2, + 6, + 2300, + 428310 + ], + [ + 0, + 2, + 7, + 2300, + 428310 + ], + [ + 0, + 2, + 8, + 2300, + 428310 + ], + [ + 0, + 2, + 9, + 2300, + 428310 + ], + [ + 0, + 2, + 10, + 2300, + 428310 + ], + [ + 0, + 2, + 11, + 2300, + 428310 + ], + [ + 0, + 2, + 12, + 2300, + 428310 + ], + [ + 0, + 2, + 13, + 2300, + 428310 + ], + [ + 0, + 2, + 14, + 2300, + 428310 + ], + [ + 0, + 2, + 15, + 2300, + 428310 + ], + [ + 0, + 2, + 16, + 2300, + 428310 + ], + [ + 0, + 2, + 17, + 2300, + 428310 + ], + [ + 0, + 2, + 18, + 2300, + 428310 + ], + [ + 0, + 2, + 19, + 2300, + 428310 + ], + [ + 0, + 2, + 20, + 2300, + 428310 + ], + [ + 0, + 2, + 21, + 2300, + 428310 + ], + [ + 0, + 2, + 22, + 2300, + 428310 + ], + [ + 0, + 3, + 4, + 2300, + 428310 + ], + [ + 0, + 3, + 5, + 2300, + 428310 + ], + [ + 0, + 3, + 6, + 2300, + 428310 + ], + [ + 0, + 3, + 7, + 2300, + 428310 + ], + [ + 0, + 3, + 8, + 2300, + 428310 + ], + [ + 0, + 3, + 9, + 2300, + 428310 + ], + [ + 0, + 3, + 10, + 2300, + 428310 + ], + [ + 0, + 3, + 11, + 2300, + 428310 + ], + [ + 0, + 3, + 12, + 2300, + 428310 + ], + [ + 0, + 3, + 13, + 2300, + 428310 + ], + [ + 0, + 3, + 14, + 2300, + 428310 + ], + [ + 0, + 3, + 15, + 2300, + 428310 + ], + [ + 0, + 3, + 16, + 2300, + 428310 + ], + [ + 0, + 3, + 17, + 2300, + 428310 + ], + [ + 0, + 3, + 18, + 2300, + 428310 + ], + [ + 0, + 3, + 19, + 2300, + 428310 + ], + [ + 0, + 3, + 20, + 2300, + 428310 + ], + [ + 0, + 3, + 21, + 2300, + 428310 + ], + [ + 0, + 3, + 22, + 2300, + 428310 + ], + [ + 0, + 4, + 5, + 2300, + 428310 + ], + [ + 0, + 4, + 6, + 2300, + 428310 + ], + [ + 0, + 4, + 7, + 2300, + 428310 + ], + [ + 0, + 4, + 8, + 2300, + 428310 + ], + [ + 0, + 4, + 9, + 2300, + 428310 + ], + [ + 0, + 4, + 10, + 2300, + 428310 + ], + [ + 0, + 4, + 11, + 2300, + 428310 + ], + [ + 0, + 4, + 12, + 2300, + 428310 + ], + [ + 0, + 4, + 13, + 2300, + 428310 + ], + [ + 0, + 4, + 14, + 2300, + 428310 + ], + [ + 0, + 4, + 15, + 2300, + 428310 + ], + [ + 0, + 4, + 16, + 2300, + 428310 + ], + [ + 0, + 4, + 17, + 2300, + 428310 + ], + [ + 0, + 4, + 18, + 2300, + 428310 + ], + [ + 0, + 4, + 19, + 2300, + 428310 + ], + [ + 0, + 4, + 20, + 2300, + 428310 + ], + [ + 0, + 4, + 21, + 2300, + 428310 + ], + [ + 0, + 4, + 22, + 2300, + 428310 + ], + [ + 0, + 5, + 6, + 2300, + 428310 + ], + [ + 0, + 5, + 7, + 2300, + 428310 + ], + [ + 0, + 5, + 8, + 2300, + 428310 + ], + [ + 0, + 5, + 9, + 2300, + 428310 + ], + [ + 0, + 5, + 10, + 2300, + 428310 + ], + [ + 0, + 5, + 11, + 2300, + 428310 + ], + [ + 0, + 5, + 12, + 2300, + 428310 + ], + [ + 0, + 5, + 13, + 2300, + 428310 + ], + [ + 0, + 5, + 14, + 2300, + 428310 + ], + [ + 0, + 5, + 15, + 2300, + 428310 + ], + [ + 0, + 5, + 16, + 2300, + 428310 + ], + [ + 0, + 5, + 17, + 2300, + 428310 + ], + [ + 0, + 5, + 18, + 2300, + 428310 + ], + [ + 0, + 5, + 19, + 2300, + 428310 + ], + [ + 0, + 5, + 20, + 2300, + 428310 + ], + [ + 0, + 5, + 21, + 2300, + 428310 + ], + [ + 0, + 5, + 22, + 2300, + 428310 + ], + [ + 0, + 6, + 7, + 2300, + 428310 + ], + [ + 0, + 6, + 8, + 2300, + 428310 + ], + [ + 0, + 6, + 9, + 2300, + 428310 + ], + [ + 0, + 6, + 10, + 2300, + 428310 + ], + [ + 0, + 6, + 11, + 2300, + 428310 + ], + [ + 0, + 6, + 12, + 2300, + 428310 + ], + [ + 0, + 6, + 13, + 2300, + 428310 + ], + [ + 0, + 6, + 14, + 2300, + 428310 + ], + [ + 0, + 6, + 15, + 2300, + 428310 + ], + [ + 0, + 6, + 16, + 2300, + 428310 + ], + [ + 0, + 6, + 17, + 2300, + 428310 + ], + [ + 0, + 6, + 18, + 2300, + 428310 + ], + [ + 0, + 6, + 19, + 2300, + 428310 + ], + [ + 0, + 6, + 20, + 2300, + 428310 + ], + [ + 0, + 6, + 21, + 2300, + 428310 + ], + [ + 0, + 6, + 22, + 2300, + 428310 + ], + [ + 0, + 7, + 8, + 2300, + 428310 + ], + [ + 0, + 7, + 9, + 2300, + 428310 + ], + [ + 0, + 7, + 10, + 2300, + 428310 + ], + [ + 0, + 7, + 11, + 2300, + 428310 + ], + [ + 0, + 7, + 12, + 2300, + 428310 + ], + [ + 0, + 7, + 13, + 2300, + 428310 + ], + [ + 0, + 7, + 14, + 2300, + 428310 + ], + [ + 0, + 7, + 15, + 2300, + 428310 + ], + [ + 0, + 7, + 16, + 2300, + 428310 + ], + [ + 0, + 7, + 17, + 2300, + 428310 + ], + [ + 0, + 7, + 18, + 2300, + 428310 + ], + [ + 0, + 7, + 19, + 2300, + 428310 + ], + [ + 0, + 7, + 20, + 2300, + 428310 + ], + [ + 0, + 7, + 21, + 2300, + 428310 + ], + [ + 0, + 7, + 22, + 2300, + 428310 + ], + [ + 0, + 8, + 9, + 2300, + 428310 + ], + [ + 0, + 8, + 10, + 2300, + 428310 + ], + [ + 0, + 8, + 11, + 2300, + 428310 + ], + [ + 0, + 8, + 12, + 2300, + 428310 + ], + [ + 0, + 8, + 13, + 2300, + 428310 + ], + [ + 0, + 8, + 14, + 2300, + 428310 + ], + [ + 0, + 8, + 15, + 2300, + 428310 + ], + [ + 0, + 8, + 16, + 2300, + 428310 + ], + [ + 0, + 8, + 17, + 2300, + 428310 + ], + [ + 0, + 8, + 18, + 2300, + 428310 + ], + [ + 0, + 8, + 19, + 2300, + 428310 + ], + [ + 0, + 8, + 20, + 2300, + 428310 + ], + [ + 0, + 8, + 21, + 2300, + 428310 + ], + [ + 0, + 8, + 22, + 2300, + 428310 + ], + [ + 0, + 9, + 10, + 2299, + 189775 + ], + [ + 0, + 9, + 11, + 2300, + 428310 + ], + [ + 0, + 9, + 12, + 2300, + 428310 + ], + [ + 0, + 9, + 13, + 2300, + 428310 + ], + [ + 0, + 9, + 14, + 2300, + 428310 + ], + [ + 0, + 9, + 15, + 2300, + 428310 + ], + [ + 0, + 9, + 16, + 2300, + 428310 + ], + [ + 0, + 9, + 17, + 2300, + 428310 + ], + [ + 0, + 9, + 18, + 2300, + 428310 + ], + [ + 0, + 9, + 19, + 2300, + 428310 + ], + [ + 0, + 9, + 20, + 2300, + 428310 + ], + [ + 0, + 9, + 21, + 2300, + 428310 + ], + [ + 0, + 9, + 22, + 2300, + 428310 + ], + [ + 0, + 10, + 11, + 2300, + 428310 + ], + [ + 0, + 10, + 12, + 2300, + 428310 + ], + [ + 0, + 10, + 13, + 2300, + 428310 + ], + [ + 0, + 10, + 14, + 2300, + 428310 + ], + [ + 0, + 10, + 15, + 2300, + 428310 + ], + [ + 0, + 10, + 16, + 2300, + 428310 + ], + [ + 0, + 10, + 17, + 2300, + 428310 + ], + [ + 0, + 10, + 18, + 2300, + 428310 + ], + [ + 0, + 10, + 19, + 2300, + 428310 + ], + [ + 0, + 10, + 20, + 2300, + 428310 + ], + [ + 0, + 10, + 21, + 2300, + 428310 + ], + [ + 0, + 10, + 22, + 2300, + 428310 + ], + [ + 0, + 11, + 12, + 2299, + 189775 + ], + [ + 0, + 11, + 13, + 2300, + 428310 + ], + [ + 0, + 11, + 14, + 2300, + 428310 + ], + [ + 0, + 11, + 15, + 2300, + 428310 + ], + [ + 0, + 11, + 16, + 2300, + 428310 + ], + [ + 0, + 11, + 17, + 2300, + 428310 + ], + [ + 0, + 11, + 18, + 2300, + 428310 + ], + [ + 0, + 11, + 19, + 2300, + 428310 + ], + [ + 0, + 11, + 20, + 2300, + 428310 + ], + [ + 0, + 11, + 21, + 2300, + 428310 + ], + [ + 0, + 11, + 22, + 2300, + 428310 + ], + [ + 0, + 12, + 13, + 2300, + 428310 + ], + [ + 0, + 12, + 14, + 2300, + 428310 + ], + [ + 0, + 12, + 15, + 2300, + 428310 + ], + [ + 0, + 12, + 16, + 2300, + 428310 + ], + [ + 0, + 12, + 17, + 2300, + 428310 + ], + [ + 0, + 12, + 18, + 2300, + 428310 + ], + [ + 0, + 12, + 19, + 2300, + 428310 + ], + [ + 0, + 12, + 20, + 2300, + 428310 + ], + [ + 0, + 12, + 21, + 2300, + 428310 + ], + [ + 0, + 12, + 22, + 2300, + 428310 + ], + [ + 0, + 13, + 14, + 2300, + 428310 + ], + [ + 0, + 13, + 15, + 2300, + 428310 + ], + [ + 0, + 13, + 16, + 2300, + 428310 + ], + [ + 0, + 13, + 17, + 2300, + 428310 + ], + [ + 0, + 13, + 18, + 2300, + 428310 + ], + [ + 0, + 13, + 19, + 2300, + 428310 + ], + [ + 0, + 13, + 20, + 2300, + 428310 + ], + [ + 0, + 13, + 21, + 2300, + 428310 + ], + [ + 0, + 13, + 22, + 2300, + 428310 + ], + [ + 0, + 14, + 15, + 2300, + 428310 + ], + [ + 0, + 14, + 16, + 2300, + 428310 + ], + [ + 0, + 14, + 17, + 2300, + 428310 + ], + [ + 0, + 14, + 18, + 2300, + 428310 + ], + [ + 0, + 14, + 19, + 2300, + 428310 + ], + [ + 0, + 14, + 20, + 2300, + 428310 + ], + [ + 0, + 14, + 21, + 2300, + 428310 + ], + [ + 0, + 14, + 22, + 2300, + 428310 + ], + [ + 0, + 15, + 16, + 2300, + 428310 + ], + [ + 0, + 15, + 17, + 2300, + 428310 + ], + [ + 0, + 15, + 18, + 2299, + 189775 + ], + [ + 0, + 15, + 19, + 2300, + 428310 + ], + [ + 0, + 15, + 20, + 2300, + 428310 + ], + [ + 0, + 15, + 21, + 2300, + 428310 + ], + [ + 0, + 15, + 22, + 2300, + 428310 + ], + [ + 0, + 16, + 17, + 2300, + 428310 + ], + [ + 0, + 16, + 18, + 2300, + 428310 + ], + [ + 0, + 16, + 19, + 2300, + 428310 + ], + [ + 0, + 16, + 20, + 2300, + 428310 + ], + [ + 0, + 16, + 21, + 2300, + 428310 + ], + [ + 0, + 16, + 22, + 2300, + 428310 + ], + [ + 0, + 17, + 18, + 2300, + 428310 + ], + [ + 0, + 17, + 19, + 2300, + 428310 + ], + [ + 0, + 17, + 20, + 2300, + 428310 + ], + [ + 0, + 17, + 21, + 2300, + 428310 + ], + [ + 0, + 17, + 22, + 2300, + 428310 + ], + [ + 0, + 18, + 19, + 2300, + 428310 + ], + [ + 0, + 18, + 20, + 2300, + 428310 + ], + [ + 0, + 18, + 21, + 2300, + 428310 + ], + [ + 0, + 18, + 22, + 2300, + 428310 + ], + [ + 0, + 19, + 20, + 2300, + 428310 + ], + [ + 0, + 19, + 21, + 2300, + 428310 + ], + [ + 0, + 19, + 22, + 2300, + 428310 + ], + [ + 0, + 20, + 21, + 2300, + 428310 + ], + [ + 0, + 20, + 22, + 2300, + 428310 + ], + [ + 0, + 21, + 22, + 2300, + 428310 + ], + [ + 1, + 2, + 3, + 2300, + 428310 + ], + [ + 1, + 2, + 4, + 2300, + 428310 + ], + [ + 1, + 2, + 5, + 2300, + 428310 + ], + [ + 1, + 2, + 6, + 2300, + 428310 + ], + [ + 1, + 2, + 7, + 2300, + 428310 + ], + [ + 1, + 2, + 8, + 2300, + 428310 + ], + [ + 1, + 2, + 9, + 2300, + 428310 + ], + [ + 1, + 2, + 10, + 2300, + 428310 + ], + [ + 1, + 2, + 11, + 2300, + 428310 + ], + [ + 1, + 2, + 12, + 2300, + 428310 + ], + [ + 1, + 2, + 13, + 2300, + 428310 + ], + [ + 1, + 2, + 14, + 2300, + 428310 + ], + [ + 1, + 2, + 15, + 2300, + 428310 + ], + [ + 1, + 2, + 16, + 2300, + 428310 + ], + [ + 1, + 2, + 17, + 2300, + 428310 + ], + [ + 1, + 2, + 18, + 2300, + 428310 + ], + [ + 1, + 2, + 19, + 2300, + 428310 + ], + [ + 1, + 2, + 20, + 2300, + 428310 + ], + [ + 1, + 2, + 21, + 2300, + 428310 + ], + [ + 1, + 2, + 22, + 2300, + 428310 + ], + [ + 1, + 3, + 4, + 2300, + 428310 + ], + [ + 1, + 3, + 5, + 2300, + 428310 + ], + [ + 1, + 3, + 6, + 2300, + 428310 + ], + [ + 1, + 3, + 7, + 2300, + 428310 + ], + [ + 1, + 3, + 8, + 2300, + 428310 + ], + [ + 1, + 3, + 9, + 2300, + 428310 + ], + [ + 1, + 3, + 10, + 2300, + 428310 + ], + [ + 1, + 3, + 11, + 2300, + 428310 + ], + [ + 1, + 3, + 12, + 2300, + 428310 + ], + [ + 1, + 3, + 13, + 2300, + 428310 + ], + [ + 1, + 3, + 14, + 2300, + 428310 + ], + [ + 1, + 3, + 15, + 2300, + 428310 + ], + [ + 1, + 3, + 16, + 2300, + 428310 + ], + [ + 1, + 3, + 17, + 2300, + 428310 + ], + [ + 1, + 3, + 18, + 2300, + 428310 + ], + [ + 1, + 3, + 19, + 2300, + 428310 + ], + [ + 1, + 3, + 20, + 2300, + 428310 + ], + [ + 1, + 3, + 21, + 2300, + 428310 + ], + [ + 1, + 3, + 22, + 2300, + 428310 + ], + [ + 1, + 4, + 5, + 2300, + 428310 + ], + [ + 1, + 4, + 6, + 2300, + 428310 + ], + [ + 1, + 4, + 7, + 2300, + 428310 + ], + [ + 1, + 4, + 8, + 2300, + 428310 + ], + [ + 1, + 4, + 9, + 2300, + 428310 + ], + [ + 1, + 4, + 10, + 2300, + 428310 + ], + [ + 1, + 4, + 11, + 2300, + 428310 + ], + [ + 1, + 4, + 12, + 2300, + 428310 + ], + [ + 1, + 4, + 13, + 2300, + 428310 + ], + [ + 1, + 4, + 14, + 2300, + 428310 + ], + [ + 1, + 4, + 15, + 2300, + 428310 + ], + [ + 1, + 4, + 16, + 2300, + 428310 + ], + [ + 1, + 4, + 17, + 2300, + 428310 + ], + [ + 1, + 4, + 18, + 2300, + 428310 + ], + [ + 1, + 4, + 19, + 2300, + 428310 + ], + [ + 1, + 4, + 20, + 2300, + 428310 + ], + [ + 1, + 4, + 21, + 2300, + 428310 + ], + [ + 1, + 4, + 22, + 2300, + 428310 + ], + [ + 1, + 5, + 6, + 2300, + 428310 + ], + [ + 1, + 5, + 7, + 2300, + 428310 + ], + [ + 1, + 5, + 8, + 2300, + 428310 + ], + [ + 1, + 5, + 9, + 2300, + 428310 + ], + [ + 1, + 5, + 10, + 2300, + 428310 + ], + [ + 1, + 5, + 11, + 2300, + 428310 + ], + [ + 1, + 5, + 12, + 2300, + 428310 + ], + [ + 1, + 5, + 13, + 2300, + 428310 + ], + [ + 1, + 5, + 14, + 2300, + 428310 + ], + [ + 1, + 5, + 15, + 2300, + 428310 + ], + [ + 1, + 5, + 16, + 2300, + 428310 + ], + [ + 1, + 5, + 17, + 2300, + 428310 + ], + [ + 1, + 5, + 18, + 2300, + 428310 + ], + [ + 1, + 5, + 19, + 2300, + 428310 + ], + [ + 1, + 5, + 20, + 2300, + 428310 + ], + [ + 1, + 5, + 21, + 2300, + 428310 + ], + [ + 1, + 5, + 22, + 2300, + 428310 + ], + [ + 1, + 6, + 7, + 2300, + 428310 + ], + [ + 1, + 6, + 8, + 2300, + 428310 + ], + [ + 1, + 6, + 9, + 2300, + 428310 + ], + [ + 1, + 6, + 10, + 2300, + 428310 + ], + [ + 1, + 6, + 11, + 2300, + 428310 + ], + [ + 1, + 6, + 12, + 2300, + 428310 + ], + [ + 1, + 6, + 13, + 2300, + 428310 + ], + [ + 1, + 6, + 14, + 2300, + 428310 + ], + [ + 1, + 6, + 15, + 2300, + 428310 + ], + [ + 1, + 6, + 16, + 2300, + 428310 + ], + [ + 1, + 6, + 17, + 2300, + 428310 + ], + [ + 1, + 6, + 18, + 2300, + 428310 + ], + [ + 1, + 6, + 19, + 2300, + 428310 + ], + [ + 1, + 6, + 20, + 2300, + 428310 + ], + [ + 1, + 6, + 21, + 2300, + 428310 + ], + [ + 1, + 6, + 22, + 2300, + 428310 + ], + [ + 1, + 7, + 8, + 2300, + 428310 + ], + [ + 1, + 7, + 9, + 2300, + 428310 + ], + [ + 1, + 7, + 10, + 2300, + 428310 + ], + [ + 1, + 7, + 11, + 2300, + 428310 + ], + [ + 1, + 7, + 12, + 2300, + 428310 + ], + [ + 1, + 7, + 13, + 2300, + 428310 + ], + [ + 1, + 7, + 14, + 2300, + 428310 + ], + [ + 1, + 7, + 15, + 2300, + 428310 + ], + [ + 1, + 7, + 16, + 2300, + 428310 + ], + [ + 1, + 7, + 17, + 2300, + 428310 + ], + [ + 1, + 7, + 18, + 2300, + 428310 + ], + [ + 1, + 7, + 19, + 2300, + 428310 + ], + [ + 1, + 7, + 20, + 2300, + 428310 + ], + [ + 1, + 7, + 21, + 2300, + 428310 + ], + [ + 1, + 7, + 22, + 2300, + 428310 + ], + [ + 1, + 8, + 9, + 2300, + 428310 + ], + [ + 1, + 8, + 10, + 2300, + 428310 + ], + [ + 1, + 8, + 11, + 2300, + 428310 + ], + [ + 1, + 8, + 12, + 2300, + 428310 + ], + [ + 1, + 8, + 13, + 2300, + 428310 + ], + [ + 1, + 8, + 14, + 2300, + 428310 + ], + [ + 1, + 8, + 15, + 2300, + 428310 + ], + [ + 1, + 8, + 16, + 2300, + 428310 + ], + [ + 1, + 8, + 17, + 2300, + 428310 + ], + [ + 1, + 8, + 18, + 2300, + 428310 + ], + [ + 1, + 8, + 19, + 2300, + 428310 + ], + [ + 1, + 8, + 20, + 2300, + 428310 + ], + [ + 1, + 8, + 21, + 2300, + 428310 + ], + [ + 1, + 8, + 22, + 2300, + 428310 + ], + [ + 1, + 9, + 10, + 2300, + 428310 + ], + [ + 1, + 9, + 11, + 2300, + 428310 + ], + [ + 1, + 9, + 12, + 2300, + 428310 + ], + [ + 1, + 9, + 13, + 2300, + 428310 + ], + [ + 1, + 9, + 14, + 2300, + 428310 + ], + [ + 1, + 9, + 15, + 2300, + 428310 + ], + [ + 1, + 9, + 16, + 2300, + 428310 + ], + [ + 1, + 9, + 17, + 2300, + 428310 + ], + [ + 1, + 9, + 18, + 2300, + 428310 + ], + [ + 1, + 9, + 19, + 2300, + 428310 + ], + [ + 1, + 9, + 20, + 2300, + 428310 + ], + [ + 1, + 9, + 21, + 2300, + 428310 + ], + [ + 1, + 9, + 22, + 2300, + 428310 + ], + [ + 1, + 10, + 11, + 2300, + 428310 + ], + [ + 1, + 10, + 12, + 2300, + 428310 + ], + [ + 1, + 10, + 13, + 2300, + 428310 + ], + [ + 1, + 10, + 14, + 2300, + 428310 + ], + [ + 1, + 10, + 15, + 2300, + 428310 + ], + [ + 1, + 10, + 16, + 2300, + 428310 + ], + [ + 1, + 10, + 17, + 2300, + 428310 + ], + [ + 1, + 10, + 18, + 2300, + 428310 + ], + [ + 1, + 10, + 19, + 2300, + 428310 + ], + [ + 1, + 10, + 20, + 2300, + 428310 + ], + [ + 1, + 10, + 21, + 2300, + 428310 + ], + [ + 1, + 10, + 22, + 2300, + 428310 + ], + [ + 1, + 11, + 12, + 2300, + 428310 + ], + [ + 1, + 11, + 13, + 2300, + 428310 + ], + [ + 1, + 11, + 14, + 2300, + 428310 + ], + [ + 1, + 11, + 15, + 2300, + 428310 + ], + [ + 1, + 11, + 16, + 2300, + 428310 + ], + [ + 1, + 11, + 17, + 2300, + 428310 + ], + [ + 1, + 11, + 18, + 2300, + 428310 + ], + [ + 1, + 11, + 19, + 2300, + 428310 + ], + [ + 1, + 11, + 20, + 2300, + 428310 + ], + [ + 1, + 11, + 21, + 2300, + 428310 + ], + [ + 1, + 11, + 22, + 2300, + 428310 + ], + [ + 1, + 12, + 13, + 2300, + 428310 + ], + [ + 1, + 12, + 14, + 2300, + 428310 + ], + [ + 1, + 12, + 15, + 2300, + 428310 + ], + [ + 1, + 12, + 16, + 2300, + 428310 + ], + [ + 1, + 12, + 17, + 2300, + 428310 + ], + [ + 1, + 12, + 18, + 2300, + 428310 + ], + [ + 1, + 12, + 19, + 2300, + 428310 + ], + [ + 1, + 12, + 20, + 2300, + 428310 + ], + [ + 1, + 12, + 21, + 2300, + 428310 + ], + [ + 1, + 12, + 22, + 2300, + 428310 + ], + [ + 1, + 13, + 14, + 2300, + 428310 + ], + [ + 1, + 13, + 15, + 2300, + 428310 + ], + [ + 1, + 13, + 16, + 2300, + 428310 + ], + [ + 1, + 13, + 17, + 2300, + 428310 + ], + [ + 1, + 13, + 18, + 2300, + 428310 + ], + [ + 1, + 13, + 19, + 2300, + 428310 + ], + [ + 1, + 13, + 20, + 2300, + 428310 + ], + [ + 1, + 13, + 21, + 2300, + 428310 + ], + [ + 1, + 13, + 22, + 2300, + 428310 + ], + [ + 1, + 14, + 15, + 2300, + 428310 + ], + [ + 1, + 14, + 16, + 2300, + 428310 + ], + [ + 1, + 14, + 17, + 2300, + 428310 + ], + [ + 1, + 14, + 18, + 2300, + 428310 + ], + [ + 1, + 14, + 19, + 2300, + 428310 + ], + [ + 1, + 14, + 20, + 2300, + 428310 + ], + [ + 1, + 14, + 21, + 2300, + 428310 + ], + [ + 1, + 14, + 22, + 2300, + 428310 + ], + [ + 1, + 15, + 16, + 2300, + 428310 + ], + [ + 1, + 15, + 17, + 2299, + 189775 + ], + [ + 1, + 15, + 18, + 2300, + 428310 + ], + [ + 1, + 15, + 19, + 2300, + 428310 + ], + [ + 1, + 15, + 20, + 2300, + 428310 + ], + [ + 1, + 15, + 21, + 2300, + 428310 + ], + [ + 1, + 15, + 22, + 2300, + 428310 + ], + [ + 1, + 16, + 17, + 2300, + 428310 + ], + [ + 1, + 16, + 18, + 2300, + 428310 + ], + [ + 1, + 16, + 19, + 2300, + 428310 + ], + [ + 1, + 16, + 20, + 2300, + 428310 + ], + [ + 1, + 16, + 21, + 2300, + 428310 + ], + [ + 1, + 16, + 22, + 2300, + 428310 + ], + [ + 1, + 17, + 18, + 2300, + 428310 + ], + [ + 1, + 17, + 19, + 2300, + 428310 + ], + [ + 1, + 17, + 20, + 2300, + 428310 + ], + [ + 1, + 17, + 21, + 2300, + 428310 + ], + [ + 1, + 17, + 22, + 2300, + 428310 + ], + [ + 1, + 18, + 19, + 2300, + 428310 + ], + [ + 1, + 18, + 20, + 2300, + 428310 + ], + [ + 1, + 18, + 21, + 2300, + 428310 + ], + [ + 1, + 18, + 22, + 2300, + 428310 + ], + [ + 1, + 19, + 20, + 2300, + 428310 + ], + [ + 1, + 19, + 21, + 2300, + 428310 + ], + [ + 1, + 19, + 22, + 2300, + 428310 + ], + [ + 1, + 20, + 21, + 2300, + 428310 + ], + [ + 1, + 20, + 22, + 2300, + 428310 + ], + [ + 1, + 21, + 22, + 2300, + 428310 + ], + [ + 2, + 3, + 4, + 2300, + 428310 + ], + [ + 2, + 3, + 5, + 2300, + 428310 + ], + [ + 2, + 3, + 6, + 2300, + 428310 + ], + [ + 2, + 3, + 7, + 2300, + 428310 + ], + [ + 2, + 3, + 8, + 2300, + 428310 + ], + [ + 2, + 3, + 9, + 2300, + 428310 + ], + [ + 2, + 3, + 10, + 2300, + 428310 + ], + [ + 2, + 3, + 11, + 2300, + 428310 + ], + [ + 2, + 3, + 12, + 2300, + 428310 + ], + [ + 2, + 3, + 13, + 2300, + 428310 + ], + [ + 2, + 3, + 14, + 2300, + 428310 + ], + [ + 2, + 3, + 15, + 2300, + 428310 + ], + [ + 2, + 3, + 16, + 2300, + 428310 + ], + [ + 2, + 3, + 17, + 2300, + 428310 + ], + [ + 2, + 3, + 18, + 2300, + 428310 + ], + [ + 2, + 3, + 19, + 2300, + 428310 + ], + [ + 2, + 3, + 20, + 2300, + 428310 + ], + [ + 2, + 3, + 21, + 2300, + 428310 + ], + [ + 2, + 3, + 22, + 2300, + 428310 + ], + [ + 2, + 4, + 5, + 2300, + 428310 + ], + [ + 2, + 4, + 6, + 2300, + 428310 + ], + [ + 2, + 4, + 7, + 2300, + 428310 + ], + [ + 2, + 4, + 8, + 2300, + 428310 + ], + [ + 2, + 4, + 9, + 2300, + 428310 + ], + [ + 2, + 4, + 10, + 2300, + 428310 + ], + [ + 2, + 4, + 11, + 2300, + 428310 + ], + [ + 2, + 4, + 12, + 2300, + 428310 + ], + [ + 2, + 4, + 13, + 2300, + 428310 + ], + [ + 2, + 4, + 14, + 2300, + 428310 + ], + [ + 2, + 4, + 15, + 2300, + 428310 + ], + [ + 2, + 4, + 16, + 2300, + 428310 + ], + [ + 2, + 4, + 17, + 2300, + 428310 + ], + [ + 2, + 4, + 18, + 2300, + 428310 + ], + [ + 2, + 4, + 19, + 2300, + 428310 + ], + [ + 2, + 4, + 20, + 2300, + 428310 + ], + [ + 2, + 4, + 21, + 2300, + 428310 + ], + [ + 2, + 4, + 22, + 2300, + 428310 + ], + [ + 2, + 5, + 6, + 2300, + 428310 + ], + [ + 2, + 5, + 7, + 2300, + 428310 + ], + [ + 2, + 5, + 8, + 2300, + 428310 + ], + [ + 2, + 5, + 9, + 2300, + 428310 + ], + [ + 2, + 5, + 10, + 2300, + 428310 + ], + [ + 2, + 5, + 11, + 2300, + 428310 + ], + [ + 2, + 5, + 12, + 2300, + 428310 + ], + [ + 2, + 5, + 13, + 2300, + 428310 + ], + [ + 2, + 5, + 14, + 2300, + 428310 + ], + [ + 2, + 5, + 15, + 2300, + 428310 + ], + [ + 2, + 5, + 16, + 2300, + 428310 + ], + [ + 2, + 5, + 17, + 2300, + 428310 + ], + [ + 2, + 5, + 18, + 2300, + 428310 + ], + [ + 2, + 5, + 19, + 2300, + 428310 + ], + [ + 2, + 5, + 20, + 2300, + 428310 + ], + [ + 2, + 5, + 21, + 2300, + 428310 + ], + [ + 2, + 5, + 22, + 2300, + 428310 + ], + [ + 2, + 6, + 7, + 2300, + 428310 + ], + [ + 2, + 6, + 8, + 2300, + 428310 + ], + [ + 2, + 6, + 9, + 2300, + 428310 + ], + [ + 2, + 6, + 10, + 2300, + 428310 + ], + [ + 2, + 6, + 11, + 2300, + 428310 + ], + [ + 2, + 6, + 12, + 2300, + 428310 + ], + [ + 2, + 6, + 13, + 2300, + 428310 + ], + [ + 2, + 6, + 14, + 2300, + 428310 + ], + [ + 2, + 6, + 15, + 2300, + 428310 + ], + [ + 2, + 6, + 16, + 2300, + 428310 + ], + [ + 2, + 6, + 17, + 2300, + 428310 + ], + [ + 2, + 6, + 18, + 2300, + 428310 + ], + [ + 2, + 6, + 19, + 2300, + 428310 + ], + [ + 2, + 6, + 20, + 2300, + 428310 + ], + [ + 2, + 6, + 21, + 2300, + 428310 + ], + [ + 2, + 6, + 22, + 2300, + 428310 + ], + [ + 2, + 7, + 8, + 2300, + 428310 + ], + [ + 2, + 7, + 9, + 2300, + 428310 + ], + [ + 2, + 7, + 10, + 2300, + 428310 + ], + [ + 2, + 7, + 11, + 2300, + 428310 + ], + [ + 2, + 7, + 12, + 2300, + 428310 + ], + [ + 2, + 7, + 13, + 2300, + 428310 + ], + [ + 2, + 7, + 14, + 2300, + 428310 + ], + [ + 2, + 7, + 15, + 2300, + 428310 + ], + [ + 2, + 7, + 16, + 2300, + 428310 + ], + [ + 2, + 7, + 17, + 2300, + 428310 + ], + [ + 2, + 7, + 18, + 2300, + 428310 + ], + [ + 2, + 7, + 19, + 2300, + 428310 + ], + [ + 2, + 7, + 20, + 2300, + 428310 + ], + [ + 2, + 7, + 21, + 2300, + 428310 + ], + [ + 2, + 7, + 22, + 2300, + 428310 + ], + [ + 2, + 8, + 9, + 2300, + 428310 + ], + [ + 2, + 8, + 10, + 2300, + 428310 + ], + [ + 2, + 8, + 11, + 2300, + 428310 + ], + [ + 2, + 8, + 12, + 2300, + 428310 + ], + [ + 2, + 8, + 13, + 2300, + 428310 + ], + [ + 2, + 8, + 14, + 2300, + 428310 + ], + [ + 2, + 8, + 15, + 2300, + 428310 + ], + [ + 2, + 8, + 16, + 2300, + 428310 + ], + [ + 2, + 8, + 17, + 2300, + 428310 + ], + [ + 2, + 8, + 18, + 2300, + 428310 + ], + [ + 2, + 8, + 19, + 2300, + 428310 + ], + [ + 2, + 8, + 20, + 2300, + 428310 + ], + [ + 2, + 8, + 21, + 2300, + 428310 + ], + [ + 2, + 8, + 22, + 2300, + 428310 + ], + [ + 2, + 9, + 10, + 2300, + 428310 + ], + [ + 2, + 9, + 11, + 2300, + 428310 + ], + [ + 2, + 9, + 12, + 2300, + 428310 + ], + [ + 2, + 9, + 13, + 2300, + 428310 + ], + [ + 2, + 9, + 14, + 2300, + 428310 + ], + [ + 2, + 9, + 15, + 2300, + 428310 + ], + [ + 2, + 9, + 16, + 2300, + 428310 + ], + [ + 2, + 9, + 17, + 2300, + 428310 + ], + [ + 2, + 9, + 18, + 2300, + 428310 + ], + [ + 2, + 9, + 19, + 2300, + 428310 + ], + [ + 2, + 9, + 20, + 2300, + 428310 + ], + [ + 2, + 9, + 21, + 2300, + 428310 + ], + [ + 2, + 9, + 22, + 2300, + 428310 + ], + [ + 2, + 10, + 11, + 2300, + 428310 + ], + [ + 2, + 10, + 12, + 2300, + 428310 + ], + [ + 2, + 10, + 13, + 2300, + 428310 + ], + [ + 2, + 10, + 14, + 2300, + 428310 + ], + [ + 2, + 10, + 15, + 2300, + 428310 + ], + [ + 2, + 10, + 16, + 2300, + 428310 + ], + [ + 2, + 10, + 17, + 2300, + 428310 + ], + [ + 2, + 10, + 18, + 2300, + 428310 + ], + [ + 2, + 10, + 19, + 2300, + 428310 + ], + [ + 2, + 10, + 20, + 2300, + 428310 + ], + [ + 2, + 10, + 21, + 2300, + 428310 + ], + [ + 2, + 10, + 22, + 2300, + 428310 + ], + [ + 2, + 11, + 12, + 2300, + 428310 + ], + [ + 2, + 11, + 13, + 2300, + 428310 + ], + [ + 2, + 11, + 14, + 2300, + 428310 + ], + [ + 2, + 11, + 15, + 2300, + 428310 + ], + [ + 2, + 11, + 16, + 2300, + 428310 + ], + [ + 2, + 11, + 17, + 2300, + 428310 + ], + [ + 2, + 11, + 18, + 2299, + 189775 + ], + [ + 2, + 11, + 19, + 2300, + 428310 + ], + [ + 2, + 11, + 20, + 2300, + 428310 + ], + [ + 2, + 11, + 21, + 2300, + 428310 + ], + [ + 2, + 11, + 22, + 2300, + 428310 + ], + [ + 2, + 12, + 13, + 2300, + 428310 + ], + [ + 2, + 12, + 14, + 2300, + 428310 + ], + [ + 2, + 12, + 15, + 2300, + 428310 + ], + [ + 2, + 12, + 16, + 2300, + 428310 + ], + [ + 2, + 12, + 17, + 2300, + 428310 + ], + [ + 2, + 12, + 18, + 2300, + 428310 + ], + [ + 2, + 12, + 19, + 2300, + 428310 + ], + [ + 2, + 12, + 20, + 2300, + 428310 + ], + [ + 2, + 12, + 21, + 2300, + 428310 + ], + [ + 2, + 12, + 22, + 2300, + 428310 + ], + [ + 2, + 13, + 14, + 2300, + 428310 + ], + [ + 2, + 13, + 15, + 2300, + 428310 + ], + [ + 2, + 13, + 16, + 2300, + 428310 + ], + [ + 2, + 13, + 17, + 2300, + 428310 + ], + [ + 2, + 13, + 18, + 2300, + 428310 + ], + [ + 2, + 13, + 19, + 2300, + 428310 + ], + [ + 2, + 13, + 20, + 2300, + 428310 + ], + [ + 2, + 13, + 21, + 2300, + 428310 + ], + [ + 2, + 13, + 22, + 2300, + 428310 + ], + [ + 2, + 14, + 15, + 2300, + 428310 + ], + [ + 2, + 14, + 16, + 2300, + 428310 + ], + [ + 2, + 14, + 17, + 2300, + 428310 + ], + [ + 2, + 14, + 18, + 2300, + 428310 + ], + [ + 2, + 14, + 19, + 2300, + 428310 + ], + [ + 2, + 14, + 20, + 2300, + 428310 + ], + [ + 2, + 14, + 21, + 2300, + 428310 + ], + [ + 2, + 14, + 22, + 2300, + 428310 + ], + [ + 2, + 15, + 16, + 2300, + 428310 + ], + [ + 2, + 15, + 17, + 2300, + 428310 + ], + [ + 2, + 15, + 18, + 2300, + 428310 + ], + [ + 2, + 15, + 19, + 2300, + 428310 + ], + [ + 2, + 15, + 20, + 2300, + 428310 + ], + [ + 2, + 15, + 21, + 2300, + 428310 + ], + [ + 2, + 15, + 22, + 2300, + 428310 + ], + [ + 2, + 16, + 17, + 2300, + 428310 + ], + [ + 2, + 16, + 18, + 2300, + 428310 + ], + [ + 2, + 16, + 19, + 2300, + 428310 + ], + [ + 2, + 16, + 20, + 2300, + 428310 + ], + [ + 2, + 16, + 21, + 2300, + 428310 + ], + [ + 2, + 16, + 22, + 2300, + 428310 + ], + [ + 2, + 17, + 18, + 2300, + 428310 + ], + [ + 2, + 17, + 19, + 2300, + 428310 + ], + [ + 2, + 17, + 20, + 2300, + 428310 + ], + [ + 2, + 17, + 21, + 2300, + 428310 + ], + [ + 2, + 17, + 22, + 2300, + 428310 + ], + [ + 2, + 18, + 19, + 2300, + 428310 + ], + [ + 2, + 18, + 20, + 2300, + 428310 + ], + [ + 2, + 18, + 21, + 2300, + 428310 + ], + [ + 2, + 18, + 22, + 2300, + 428310 + ], + [ + 2, + 19, + 20, + 2300, + 428310 + ], + [ + 2, + 19, + 21, + 2300, + 428310 + ], + [ + 2, + 19, + 22, + 2300, + 428310 + ], + [ + 2, + 20, + 21, + 2300, + 428310 + ], + [ + 2, + 20, + 22, + 2300, + 428310 + ], + [ + 2, + 21, + 22, + 2300, + 428310 + ], + [ + 3, + 4, + 5, + 2300, + 428310 + ], + [ + 3, + 4, + 6, + 2300, + 428310 + ], + [ + 3, + 4, + 7, + 2300, + 428310 + ], + [ + 3, + 4, + 8, + 2300, + 428310 + ], + [ + 3, + 4, + 9, + 2300, + 428310 + ], + [ + 3, + 4, + 10, + 2300, + 428310 + ], + [ + 3, + 4, + 11, + 2300, + 428310 + ], + [ + 3, + 4, + 12, + 2300, + 428310 + ], + [ + 3, + 4, + 13, + 2300, + 428310 + ], + [ + 3, + 4, + 14, + 2300, + 428310 + ], + [ + 3, + 4, + 15, + 2300, + 428310 + ], + [ + 3, + 4, + 16, + 2300, + 428310 + ], + [ + 3, + 4, + 17, + 2300, + 428310 + ], + [ + 3, + 4, + 18, + 2300, + 428310 + ], + [ + 3, + 4, + 19, + 2300, + 428310 + ], + [ + 3, + 4, + 20, + 2300, + 428310 + ], + [ + 3, + 4, + 21, + 2300, + 428310 + ], + [ + 3, + 4, + 22, + 2300, + 428310 + ], + [ + 3, + 5, + 6, + 2300, + 428310 + ], + [ + 3, + 5, + 7, + 2300, + 428310 + ], + [ + 3, + 5, + 8, + 2300, + 428310 + ], + [ + 3, + 5, + 9, + 2300, + 428310 + ], + [ + 3, + 5, + 10, + 2300, + 428310 + ], + [ + 3, + 5, + 11, + 2300, + 428310 + ], + [ + 3, + 5, + 12, + 2300, + 428310 + ], + [ + 3, + 5, + 13, + 2300, + 428310 + ], + [ + 3, + 5, + 14, + 2300, + 428310 + ], + [ + 3, + 5, + 15, + 2300, + 428310 + ], + [ + 3, + 5, + 16, + 2300, + 428310 + ], + [ + 3, + 5, + 17, + 2300, + 428310 + ], + [ + 3, + 5, + 18, + 2300, + 428310 + ], + [ + 3, + 5, + 19, + 2300, + 428310 + ], + [ + 3, + 5, + 20, + 2300, + 428310 + ], + [ + 3, + 5, + 21, + 2300, + 428310 + ], + [ + 3, + 5, + 22, + 2300, + 428310 + ], + [ + 3, + 6, + 7, + 2300, + 428310 + ], + [ + 3, + 6, + 8, + 2300, + 428310 + ], + [ + 3, + 6, + 9, + 2300, + 428310 + ], + [ + 3, + 6, + 10, + 2300, + 428310 + ], + [ + 3, + 6, + 11, + 2300, + 428310 + ], + [ + 3, + 6, + 12, + 2300, + 428310 + ], + [ + 3, + 6, + 13, + 2300, + 428310 + ], + [ + 3, + 6, + 14, + 2300, + 428310 + ], + [ + 3, + 6, + 15, + 2300, + 428310 + ], + [ + 3, + 6, + 16, + 2300, + 428310 + ], + [ + 3, + 6, + 17, + 2300, + 428310 + ], + [ + 3, + 6, + 18, + 2300, + 428310 + ], + [ + 3, + 6, + 19, + 2300, + 428310 + ], + [ + 3, + 6, + 20, + 2300, + 428310 + ], + [ + 3, + 6, + 21, + 2300, + 428310 + ], + [ + 3, + 6, + 22, + 2300, + 428310 + ], + [ + 3, + 7, + 8, + 2300, + 428310 + ], + [ + 3, + 7, + 9, + 2300, + 428310 + ], + [ + 3, + 7, + 10, + 2300, + 428310 + ], + [ + 3, + 7, + 11, + 2300, + 428310 + ], + [ + 3, + 7, + 12, + 2300, + 428310 + ], + [ + 3, + 7, + 13, + 2300, + 428310 + ], + [ + 3, + 7, + 14, + 2300, + 428310 + ], + [ + 3, + 7, + 15, + 2300, + 428310 + ], + [ + 3, + 7, + 16, + 2300, + 428310 + ], + [ + 3, + 7, + 17, + 2300, + 428310 + ], + [ + 3, + 7, + 18, + 2300, + 428310 + ], + [ + 3, + 7, + 19, + 2300, + 428310 + ], + [ + 3, + 7, + 20, + 2300, + 428310 + ], + [ + 3, + 7, + 21, + 2300, + 428310 + ], + [ + 3, + 7, + 22, + 2300, + 428310 + ], + [ + 3, + 8, + 9, + 2300, + 428310 + ], + [ + 3, + 8, + 10, + 2300, + 428310 + ], + [ + 3, + 8, + 11, + 2300, + 428310 + ], + [ + 3, + 8, + 12, + 2300, + 428310 + ], + [ + 3, + 8, + 13, + 2300, + 428310 + ], + [ + 3, + 8, + 14, + 2300, + 428310 + ], + [ + 3, + 8, + 15, + 2300, + 428310 + ], + [ + 3, + 8, + 16, + 2300, + 428310 + ], + [ + 3, + 8, + 17, + 2300, + 428310 + ], + [ + 3, + 8, + 18, + 2300, + 428310 + ], + [ + 3, + 8, + 19, + 2300, + 428310 + ], + [ + 3, + 8, + 20, + 2300, + 428310 + ], + [ + 3, + 8, + 21, + 2300, + 428310 + ], + [ + 3, + 8, + 22, + 2300, + 428310 + ], + [ + 3, + 9, + 10, + 2300, + 428310 + ], + [ + 3, + 9, + 11, + 2300, + 428310 + ], + [ + 3, + 9, + 12, + 2300, + 428310 + ], + [ + 3, + 9, + 13, + 2300, + 428310 + ], + [ + 3, + 9, + 14, + 2300, + 428310 + ], + [ + 3, + 9, + 15, + 2300, + 428310 + ], + [ + 3, + 9, + 16, + 2300, + 428310 + ], + [ + 3, + 9, + 17, + 2300, + 428310 + ], + [ + 3, + 9, + 18, + 2300, + 428310 + ], + [ + 3, + 9, + 19, + 2300, + 428310 + ], + [ + 3, + 9, + 20, + 2300, + 428310 + ], + [ + 3, + 9, + 21, + 2300, + 428310 + ], + [ + 3, + 9, + 22, + 2300, + 428310 + ], + [ + 3, + 10, + 11, + 2300, + 428310 + ], + [ + 3, + 10, + 12, + 2300, + 428310 + ], + [ + 3, + 10, + 13, + 2300, + 428310 + ], + [ + 3, + 10, + 14, + 2300, + 428310 + ], + [ + 3, + 10, + 15, + 2300, + 428310 + ], + [ + 3, + 10, + 16, + 2300, + 428310 + ], + [ + 3, + 10, + 17, + 2300, + 428310 + ], + [ + 3, + 10, + 18, + 2300, + 428310 + ], + [ + 3, + 10, + 19, + 2300, + 428310 + ], + [ + 3, + 10, + 20, + 2300, + 428310 + ], + [ + 3, + 10, + 21, + 2300, + 428310 + ], + [ + 3, + 10, + 22, + 2300, + 428310 + ], + [ + 3, + 11, + 12, + 2300, + 428310 + ], + [ + 3, + 11, + 13, + 2300, + 428310 + ], + [ + 3, + 11, + 14, + 2300, + 428310 + ], + [ + 3, + 11, + 15, + 2300, + 428310 + ], + [ + 3, + 11, + 16, + 2300, + 428310 + ], + [ + 3, + 11, + 17, + 2300, + 428310 + ], + [ + 3, + 11, + 18, + 2300, + 428310 + ], + [ + 3, + 11, + 19, + 2300, + 428310 + ], + [ + 3, + 11, + 20, + 2300, + 428310 + ], + [ + 3, + 11, + 21, + 2300, + 428310 + ], + [ + 3, + 11, + 22, + 2300, + 428310 + ], + [ + 3, + 12, + 13, + 2300, + 428310 + ], + [ + 3, + 12, + 14, + 2300, + 428310 + ], + [ + 3, + 12, + 15, + 2300, + 428310 + ], + [ + 3, + 12, + 16, + 2300, + 428310 + ], + [ + 3, + 12, + 17, + 2300, + 428310 + ], + [ + 3, + 12, + 18, + 2300, + 428310 + ], + [ + 3, + 12, + 19, + 2300, + 428310 + ], + [ + 3, + 12, + 20, + 2300, + 428310 + ], + [ + 3, + 12, + 21, + 2300, + 428310 + ], + [ + 3, + 12, + 22, + 2300, + 428310 + ], + [ + 3, + 13, + 14, + 2300, + 428310 + ], + [ + 3, + 13, + 15, + 2300, + 428310 + ], + [ + 3, + 13, + 16, + 2300, + 428310 + ], + [ + 3, + 13, + 17, + 2300, + 428310 + ], + [ + 3, + 13, + 18, + 2300, + 428310 + ], + [ + 3, + 13, + 19, + 2300, + 428310 + ], + [ + 3, + 13, + 20, + 2300, + 428310 + ], + [ + 3, + 13, + 21, + 2300, + 428310 + ], + [ + 3, + 13, + 22, + 2300, + 428310 + ], + [ + 3, + 14, + 15, + 2300, + 428310 + ], + [ + 3, + 14, + 16, + 2300, + 428310 + ], + [ + 3, + 14, + 17, + 2300, + 428310 + ], + [ + 3, + 14, + 18, + 2300, + 428310 + ], + [ + 3, + 14, + 19, + 2300, + 428310 + ], + [ + 3, + 14, + 20, + 2300, + 428310 + ], + [ + 3, + 14, + 21, + 2300, + 428310 + ], + [ + 3, + 14, + 22, + 2300, + 428310 + ], + [ + 3, + 15, + 16, + 2300, + 428310 + ], + [ + 3, + 15, + 17, + 2300, + 428310 + ], + [ + 3, + 15, + 18, + 2300, + 428310 + ], + [ + 3, + 15, + 19, + 2300, + 428310 + ], + [ + 3, + 15, + 20, + 2300, + 428310 + ], + [ + 3, + 15, + 21, + 2300, + 428310 + ], + [ + 3, + 15, + 22, + 2300, + 428310 + ], + [ + 3, + 16, + 17, + 2300, + 428310 + ], + [ + 3, + 16, + 18, + 2300, + 428310 + ], + [ + 3, + 16, + 19, + 2300, + 428310 + ], + [ + 3, + 16, + 20, + 2300, + 428310 + ], + [ + 3, + 16, + 21, + 2300, + 428310 + ], + [ + 3, + 16, + 22, + 2300, + 428310 + ], + [ + 3, + 17, + 18, + 2300, + 428310 + ], + [ + 3, + 17, + 19, + 2300, + 428310 + ], + [ + 3, + 17, + 20, + 2300, + 428310 + ], + [ + 3, + 17, + 21, + 2300, + 428310 + ], + [ + 3, + 17, + 22, + 2300, + 428310 + ], + [ + 3, + 18, + 19, + 2300, + 428310 + ], + [ + 3, + 18, + 20, + 2300, + 428310 + ], + [ + 3, + 18, + 21, + 2300, + 428310 + ], + [ + 3, + 18, + 22, + 2300, + 428310 + ], + [ + 3, + 19, + 20, + 2300, + 428310 + ], + [ + 3, + 19, + 21, + 2300, + 428310 + ], + [ + 3, + 19, + 22, + 2300, + 428310 + ], + [ + 3, + 20, + 21, + 2300, + 428310 + ], + [ + 3, + 20, + 22, + 2300, + 428310 + ], + [ + 3, + 21, + 22, + 2300, + 428310 + ], + [ + 4, + 5, + 6, + 2300, + 428310 + ], + [ + 4, + 5, + 7, + 2300, + 428310 + ], + [ + 4, + 5, + 8, + 2300, + 428310 + ], + [ + 4, + 5, + 9, + 2300, + 428310 + ], + [ + 4, + 5, + 10, + 2300, + 428310 + ], + [ + 4, + 5, + 11, + 2300, + 428310 + ], + [ + 4, + 5, + 12, + 2300, + 428310 + ], + [ + 4, + 5, + 13, + 2300, + 428310 + ], + [ + 4, + 5, + 14, + 2300, + 428310 + ], + [ + 4, + 5, + 15, + 2300, + 428310 + ], + [ + 4, + 5, + 16, + 2300, + 428310 + ], + [ + 4, + 5, + 17, + 2300, + 428310 + ], + [ + 4, + 5, + 18, + 2300, + 428310 + ], + [ + 4, + 5, + 19, + 2300, + 428310 + ], + [ + 4, + 5, + 20, + 2300, + 428310 + ], + [ + 4, + 5, + 21, + 2300, + 428310 + ], + [ + 4, + 5, + 22, + 2300, + 428310 + ], + [ + 4, + 6, + 7, + 2300, + 428310 + ], + [ + 4, + 6, + 8, + 2300, + 428310 + ], + [ + 4, + 6, + 9, + 2300, + 428310 + ], + [ + 4, + 6, + 10, + 2300, + 428310 + ], + [ + 4, + 6, + 11, + 2300, + 428310 + ], + [ + 4, + 6, + 12, + 2300, + 428310 + ], + [ + 4, + 6, + 13, + 2300, + 428310 + ], + [ + 4, + 6, + 14, + 2300, + 428310 + ], + [ + 4, + 6, + 15, + 2300, + 428310 + ], + [ + 4, + 6, + 16, + 2300, + 428310 + ], + [ + 4, + 6, + 17, + 2300, + 428310 + ], + [ + 4, + 6, + 18, + 2300, + 428310 + ], + [ + 4, + 6, + 19, + 2300, + 428310 + ], + [ + 4, + 6, + 20, + 2300, + 428310 + ], + [ + 4, + 6, + 21, + 2300, + 428310 + ], + [ + 4, + 6, + 22, + 2300, + 428310 + ], + [ + 4, + 7, + 8, + 2300, + 428310 + ], + [ + 4, + 7, + 9, + 2300, + 428310 + ], + [ + 4, + 7, + 10, + 2300, + 428310 + ], + [ + 4, + 7, + 11, + 2300, + 428310 + ], + [ + 4, + 7, + 12, + 2300, + 428310 + ], + [ + 4, + 7, + 13, + 2300, + 428310 + ], + [ + 4, + 7, + 14, + 2300, + 428310 + ], + [ + 4, + 7, + 15, + 2300, + 428310 + ], + [ + 4, + 7, + 16, + 2300, + 428310 + ], + [ + 4, + 7, + 17, + 2300, + 428310 + ], + [ + 4, + 7, + 18, + 2300, + 428310 + ], + [ + 4, + 7, + 19, + 2300, + 428310 + ], + [ + 4, + 7, + 20, + 2300, + 428310 + ], + [ + 4, + 7, + 21, + 2300, + 428310 + ], + [ + 4, + 7, + 22, + 2299, + 189775 + ], + [ + 4, + 8, + 9, + 2300, + 428310 + ], + [ + 4, + 8, + 10, + 2300, + 428310 + ], + [ + 4, + 8, + 11, + 2300, + 428310 + ], + [ + 4, + 8, + 12, + 2300, + 428310 + ], + [ + 4, + 8, + 13, + 2300, + 428310 + ], + [ + 4, + 8, + 14, + 2300, + 428310 + ], + [ + 4, + 8, + 15, + 2300, + 428310 + ], + [ + 4, + 8, + 16, + 2300, + 428310 + ], + [ + 4, + 8, + 17, + 2300, + 428310 + ], + [ + 4, + 8, + 18, + 2300, + 428310 + ], + [ + 4, + 8, + 19, + 2300, + 428310 + ], + [ + 4, + 8, + 20, + 2300, + 428310 + ], + [ + 4, + 8, + 21, + 2300, + 428310 + ], + [ + 4, + 8, + 22, + 2300, + 428310 + ], + [ + 4, + 9, + 10, + 2300, + 428310 + ], + [ + 4, + 9, + 11, + 2300, + 428310 + ], + [ + 4, + 9, + 12, + 2300, + 428310 + ], + [ + 4, + 9, + 13, + 2300, + 428310 + ], + [ + 4, + 9, + 14, + 2300, + 428310 + ], + [ + 4, + 9, + 15, + 2300, + 428310 + ], + [ + 4, + 9, + 16, + 2300, + 428310 + ], + [ + 4, + 9, + 17, + 2300, + 428310 + ], + [ + 4, + 9, + 18, + 2300, + 428310 + ], + [ + 4, + 9, + 19, + 2300, + 428310 + ], + [ + 4, + 9, + 20, + 2300, + 428310 + ], + [ + 4, + 9, + 21, + 2300, + 428310 + ], + [ + 4, + 9, + 22, + 2300, + 428310 + ], + [ + 4, + 10, + 11, + 2300, + 428310 + ], + [ + 4, + 10, + 12, + 2300, + 428310 + ], + [ + 4, + 10, + 13, + 2300, + 428310 + ], + [ + 4, + 10, + 14, + 2300, + 428310 + ], + [ + 4, + 10, + 15, + 2300, + 428310 + ], + [ + 4, + 10, + 16, + 2300, + 428310 + ], + [ + 4, + 10, + 17, + 2300, + 428310 + ], + [ + 4, + 10, + 18, + 2300, + 428310 + ], + [ + 4, + 10, + 19, + 2300, + 428310 + ], + [ + 4, + 10, + 20, + 2300, + 428310 + ], + [ + 4, + 10, + 21, + 2300, + 428310 + ], + [ + 4, + 10, + 22, + 2300, + 428310 + ], + [ + 4, + 11, + 12, + 2300, + 428310 + ], + [ + 4, + 11, + 13, + 2300, + 428310 + ], + [ + 4, + 11, + 14, + 2300, + 428310 + ], + [ + 4, + 11, + 15, + 2300, + 428310 + ], + [ + 4, + 11, + 16, + 2300, + 428310 + ], + [ + 4, + 11, + 17, + 2300, + 428310 + ], + [ + 4, + 11, + 18, + 2300, + 428310 + ], + [ + 4, + 11, + 19, + 2300, + 428310 + ], + [ + 4, + 11, + 20, + 2299, + 189775 + ], + [ + 4, + 11, + 21, + 2300, + 428310 + ], + [ + 4, + 11, + 22, + 2300, + 428310 + ], + [ + 4, + 12, + 13, + 2300, + 428310 + ], + [ + 4, + 12, + 14, + 2300, + 428310 + ], + [ + 4, + 12, + 15, + 2300, + 428310 + ], + [ + 4, + 12, + 16, + 2300, + 428310 + ], + [ + 4, + 12, + 17, + 2300, + 428310 + ], + [ + 4, + 12, + 18, + 2300, + 428310 + ], + [ + 4, + 12, + 19, + 2300, + 428310 + ], + [ + 4, + 12, + 20, + 2300, + 428310 + ], + [ + 4, + 12, + 21, + 2300, + 428310 + ], + [ + 4, + 12, + 22, + 2300, + 428310 + ], + [ + 4, + 13, + 14, + 2300, + 428310 + ], + [ + 4, + 13, + 15, + 2300, + 428310 + ], + [ + 4, + 13, + 16, + 2300, + 428310 + ], + [ + 4, + 13, + 17, + 2300, + 428310 + ], + [ + 4, + 13, + 18, + 2300, + 428310 + ], + [ + 4, + 13, + 19, + 2300, + 428310 + ], + [ + 4, + 13, + 20, + 2300, + 428310 + ], + [ + 4, + 13, + 21, + 2300, + 428310 + ], + [ + 4, + 13, + 22, + 2300, + 428310 + ], + [ + 4, + 14, + 15, + 2300, + 428310 + ], + [ + 4, + 14, + 16, + 2300, + 428310 + ], + [ + 4, + 14, + 17, + 2300, + 428310 + ], + [ + 4, + 14, + 18, + 2300, + 428310 + ], + [ + 4, + 14, + 19, + 2300, + 428310 + ], + [ + 4, + 14, + 20, + 2300, + 428310 + ], + [ + 4, + 14, + 21, + 2300, + 428310 + ], + [ + 4, + 14, + 22, + 2300, + 428310 + ], + [ + 4, + 15, + 16, + 2300, + 428310 + ], + [ + 4, + 15, + 17, + 2300, + 428310 + ], + [ + 4, + 15, + 18, + 2300, + 428310 + ], + [ + 4, + 15, + 19, + 2300, + 428310 + ], + [ + 4, + 15, + 20, + 2300, + 428310 + ], + [ + 4, + 15, + 21, + 2300, + 428310 + ], + [ + 4, + 15, + 22, + 2300, + 428310 + ], + [ + 4, + 16, + 17, + 2300, + 428310 + ], + [ + 4, + 16, + 18, + 2300, + 428310 + ], + [ + 4, + 16, + 19, + 2300, + 428310 + ], + [ + 4, + 16, + 20, + 2300, + 428310 + ], + [ + 4, + 16, + 21, + 2300, + 428310 + ], + [ + 4, + 16, + 22, + 2300, + 428310 + ], + [ + 4, + 17, + 18, + 2300, + 428310 + ], + [ + 4, + 17, + 19, + 2300, + 428310 + ], + [ + 4, + 17, + 20, + 2300, + 428310 + ], + [ + 4, + 17, + 21, + 2300, + 428310 + ], + [ + 4, + 17, + 22, + 2300, + 428310 + ], + [ + 4, + 18, + 19, + 2300, + 428310 + ], + [ + 4, + 18, + 20, + 2300, + 428310 + ], + [ + 4, + 18, + 21, + 2300, + 428310 + ], + [ + 4, + 18, + 22, + 2300, + 428310 + ], + [ + 4, + 19, + 20, + 2300, + 428310 + ], + [ + 4, + 19, + 21, + 2300, + 428310 + ], + [ + 4, + 19, + 22, + 2300, + 428310 + ], + [ + 4, + 20, + 21, + 2300, + 428310 + ], + [ + 4, + 20, + 22, + 2300, + 428310 + ], + [ + 4, + 21, + 22, + 2300, + 428310 + ], + [ + 5, + 6, + 7, + 2300, + 428310 + ], + [ + 5, + 6, + 8, + 2300, + 428310 + ], + [ + 5, + 6, + 9, + 2300, + 428310 + ], + [ + 5, + 6, + 10, + 2300, + 428310 + ], + [ + 5, + 6, + 11, + 2300, + 428310 + ], + [ + 5, + 6, + 12, + 2300, + 428310 + ], + [ + 5, + 6, + 13, + 2300, + 428310 + ], + [ + 5, + 6, + 14, + 2300, + 428310 + ], + [ + 5, + 6, + 15, + 2300, + 428310 + ], + [ + 5, + 6, + 16, + 2300, + 428310 + ], + [ + 5, + 6, + 17, + 2300, + 428310 + ], + [ + 5, + 6, + 18, + 2300, + 428310 + ], + [ + 5, + 6, + 19, + 2300, + 428310 + ], + [ + 5, + 6, + 20, + 2300, + 428310 + ], + [ + 5, + 6, + 21, + 2300, + 428310 + ], + [ + 5, + 6, + 22, + 2300, + 428310 + ], + [ + 5, + 7, + 8, + 2300, + 428310 + ], + [ + 5, + 7, + 9, + 2300, + 428310 + ], + [ + 5, + 7, + 10, + 2300, + 428310 + ], + [ + 5, + 7, + 11, + 2300, + 428310 + ], + [ + 5, + 7, + 12, + 2300, + 428310 + ], + [ + 5, + 7, + 13, + 2300, + 428310 + ], + [ + 5, + 7, + 14, + 2300, + 428310 + ], + [ + 5, + 7, + 15, + 2300, + 428310 + ], + [ + 5, + 7, + 16, + 2300, + 428310 + ], + [ + 5, + 7, + 17, + 2300, + 428310 + ], + [ + 5, + 7, + 18, + 2300, + 428310 + ], + [ + 5, + 7, + 19, + 2300, + 428310 + ], + [ + 5, + 7, + 20, + 2300, + 428310 + ], + [ + 5, + 7, + 21, + 2299, + 189775 + ], + [ + 5, + 7, + 22, + 2300, + 428310 + ], + [ + 5, + 8, + 9, + 2300, + 428310 + ], + [ + 5, + 8, + 10, + 2300, + 428310 + ], + [ + 5, + 8, + 11, + 2300, + 428310 + ], + [ + 5, + 8, + 12, + 2300, + 428310 + ], + [ + 5, + 8, + 13, + 2300, + 428310 + ], + [ + 5, + 8, + 14, + 2300, + 428310 + ], + [ + 5, + 8, + 15, + 2300, + 428310 + ], + [ + 5, + 8, + 16, + 2300, + 428310 + ], + [ + 5, + 8, + 17, + 2300, + 428310 + ], + [ + 5, + 8, + 18, + 2300, + 428310 + ], + [ + 5, + 8, + 19, + 2300, + 428310 + ], + [ + 5, + 8, + 20, + 2300, + 428310 + ], + [ + 5, + 8, + 21, + 2300, + 428310 + ], + [ + 5, + 8, + 22, + 2300, + 428310 + ], + [ + 5, + 9, + 10, + 2300, + 428310 + ], + [ + 5, + 9, + 11, + 2300, + 428310 + ], + [ + 5, + 9, + 12, + 2300, + 428310 + ], + [ + 5, + 9, + 13, + 2300, + 428310 + ], + [ + 5, + 9, + 14, + 2300, + 428310 + ], + [ + 5, + 9, + 15, + 2300, + 428310 + ], + [ + 5, + 9, + 16, + 2300, + 428310 + ], + [ + 5, + 9, + 17, + 2300, + 428310 + ], + [ + 5, + 9, + 18, + 2300, + 428310 + ], + [ + 5, + 9, + 19, + 2300, + 428310 + ], + [ + 5, + 9, + 20, + 2300, + 428310 + ], + [ + 5, + 9, + 21, + 2300, + 428310 + ], + [ + 5, + 9, + 22, + 2300, + 428310 + ], + [ + 5, + 10, + 11, + 2300, + 428310 + ], + [ + 5, + 10, + 12, + 2300, + 428310 + ], + [ + 5, + 10, + 13, + 2300, + 428310 + ], + [ + 5, + 10, + 14, + 2300, + 428310 + ], + [ + 5, + 10, + 15, + 2300, + 428310 + ], + [ + 5, + 10, + 16, + 2300, + 428310 + ], + [ + 5, + 10, + 17, + 2300, + 428310 + ], + [ + 5, + 10, + 18, + 2300, + 428310 + ], + [ + 5, + 10, + 19, + 2300, + 428310 + ], + [ + 5, + 10, + 20, + 2300, + 428310 + ], + [ + 5, + 10, + 21, + 2300, + 428310 + ], + [ + 5, + 10, + 22, + 2300, + 428310 + ], + [ + 5, + 11, + 12, + 2300, + 428310 + ], + [ + 5, + 11, + 13, + 2300, + 428310 + ], + [ + 5, + 11, + 14, + 2300, + 428310 + ], + [ + 5, + 11, + 15, + 2300, + 428310 + ], + [ + 5, + 11, + 16, + 2300, + 428310 + ], + [ + 5, + 11, + 17, + 2300, + 428310 + ], + [ + 5, + 11, + 18, + 2300, + 428310 + ], + [ + 5, + 11, + 19, + 2300, + 428310 + ], + [ + 5, + 11, + 20, + 2300, + 428310 + ], + [ + 5, + 11, + 21, + 2300, + 428310 + ], + [ + 5, + 11, + 22, + 2300, + 428310 + ], + [ + 5, + 12, + 13, + 2300, + 428310 + ], + [ + 5, + 12, + 14, + 2300, + 428310 + ], + [ + 5, + 12, + 15, + 2300, + 428310 + ], + [ + 5, + 12, + 16, + 2300, + 428310 + ], + [ + 5, + 12, + 17, + 2300, + 428310 + ], + [ + 5, + 12, + 18, + 2300, + 428310 + ], + [ + 5, + 12, + 19, + 2300, + 428310 + ], + [ + 5, + 12, + 20, + 2300, + 428310 + ], + [ + 5, + 12, + 21, + 2300, + 428310 + ], + [ + 5, + 12, + 22, + 2300, + 428310 + ], + [ + 5, + 13, + 14, + 2300, + 428310 + ], + [ + 5, + 13, + 15, + 2300, + 428310 + ], + [ + 5, + 13, + 16, + 2300, + 428310 + ], + [ + 5, + 13, + 17, + 2300, + 428310 + ], + [ + 5, + 13, + 18, + 2300, + 428310 + ], + [ + 5, + 13, + 19, + 2300, + 428310 + ], + [ + 5, + 13, + 20, + 2300, + 428310 + ], + [ + 5, + 13, + 21, + 2300, + 428310 + ], + [ + 5, + 13, + 22, + 2300, + 428310 + ], + [ + 5, + 14, + 15, + 2300, + 428310 + ], + [ + 5, + 14, + 16, + 2300, + 428310 + ], + [ + 5, + 14, + 17, + 2300, + 428310 + ], + [ + 5, + 14, + 18, + 2300, + 428310 + ], + [ + 5, + 14, + 19, + 2300, + 428310 + ], + [ + 5, + 14, + 20, + 2300, + 428310 + ], + [ + 5, + 14, + 21, + 2300, + 428310 + ], + [ + 5, + 14, + 22, + 2300, + 428310 + ], + [ + 5, + 15, + 16, + 2300, + 428310 + ], + [ + 5, + 15, + 17, + 2300, + 428310 + ], + [ + 5, + 15, + 18, + 2300, + 428310 + ], + [ + 5, + 15, + 19, + 2300, + 428310 + ], + [ + 5, + 15, + 20, + 2300, + 428310 + ], + [ + 5, + 15, + 21, + 2300, + 428310 + ], + [ + 5, + 15, + 22, + 2300, + 428310 + ], + [ + 5, + 16, + 17, + 2300, + 428310 + ], + [ + 5, + 16, + 18, + 2300, + 428310 + ], + [ + 5, + 16, + 19, + 2300, + 428310 + ], + [ + 5, + 16, + 20, + 2300, + 428310 + ], + [ + 5, + 16, + 21, + 2300, + 428310 + ], + [ + 5, + 16, + 22, + 2300, + 428310 + ], + [ + 5, + 17, + 18, + 2300, + 428310 + ], + [ + 5, + 17, + 19, + 2300, + 428310 + ], + [ + 5, + 17, + 20, + 2300, + 428310 + ], + [ + 5, + 17, + 21, + 2300, + 428310 + ], + [ + 5, + 17, + 22, + 2300, + 428310 + ], + [ + 5, + 18, + 19, + 2300, + 428310 + ], + [ + 5, + 18, + 20, + 2300, + 428310 + ], + [ + 5, + 18, + 21, + 2300, + 428310 + ], + [ + 5, + 18, + 22, + 2300, + 428310 + ], + [ + 5, + 19, + 20, + 2300, + 428310 + ], + [ + 5, + 19, + 21, + 2300, + 428310 + ], + [ + 5, + 19, + 22, + 2300, + 428310 + ], + [ + 5, + 20, + 21, + 2300, + 428310 + ], + [ + 5, + 20, + 22, + 2300, + 428310 + ], + [ + 5, + 21, + 22, + 2300, + 428310 + ], + [ + 6, + 7, + 8, + 2300, + 428310 + ], + [ + 6, + 7, + 9, + 2300, + 428310 + ], + [ + 6, + 7, + 10, + 2300, + 428310 + ], + [ + 6, + 7, + 11, + 2300, + 428310 + ], + [ + 6, + 7, + 12, + 2300, + 428310 + ], + [ + 6, + 7, + 13, + 2300, + 428310 + ], + [ + 6, + 7, + 14, + 2300, + 428310 + ], + [ + 6, + 7, + 15, + 2300, + 428310 + ], + [ + 6, + 7, + 16, + 2300, + 428310 + ], + [ + 6, + 7, + 17, + 2300, + 428310 + ], + [ + 6, + 7, + 18, + 2300, + 428310 + ], + [ + 6, + 7, + 19, + 2300, + 428310 + ], + [ + 6, + 7, + 20, + 2300, + 428310 + ], + [ + 6, + 7, + 21, + 2300, + 428310 + ], + [ + 6, + 7, + 22, + 2300, + 428310 + ], + [ + 6, + 8, + 9, + 2300, + 428310 + ], + [ + 6, + 8, + 10, + 2300, + 428310 + ], + [ + 6, + 8, + 11, + 2300, + 428310 + ], + [ + 6, + 8, + 12, + 2300, + 428310 + ], + [ + 6, + 8, + 13, + 2300, + 428310 + ], + [ + 6, + 8, + 14, + 2300, + 428310 + ], + [ + 6, + 8, + 15, + 2300, + 428310 + ], + [ + 6, + 8, + 16, + 2300, + 428310 + ], + [ + 6, + 8, + 17, + 2300, + 428310 + ], + [ + 6, + 8, + 18, + 2300, + 428310 + ], + [ + 6, + 8, + 19, + 2300, + 428310 + ], + [ + 6, + 8, + 20, + 2300, + 428310 + ], + [ + 6, + 8, + 21, + 2300, + 428310 + ], + [ + 6, + 8, + 22, + 2300, + 428310 + ], + [ + 6, + 9, + 10, + 2300, + 428310 + ], + [ + 6, + 9, + 11, + 2300, + 428310 + ], + [ + 6, + 9, + 12, + 2300, + 428310 + ], + [ + 6, + 9, + 13, + 2300, + 428310 + ], + [ + 6, + 9, + 14, + 2300, + 428310 + ], + [ + 6, + 9, + 15, + 2300, + 428310 + ], + [ + 6, + 9, + 16, + 2300, + 428310 + ], + [ + 6, + 9, + 17, + 2300, + 428310 + ], + [ + 6, + 9, + 18, + 2300, + 428310 + ], + [ + 6, + 9, + 19, + 2300, + 428310 + ], + [ + 6, + 9, + 20, + 2300, + 428310 + ], + [ + 6, + 9, + 21, + 2300, + 428310 + ], + [ + 6, + 9, + 22, + 2300, + 428310 + ], + [ + 6, + 10, + 11, + 2300, + 428310 + ], + [ + 6, + 10, + 12, + 2300, + 428310 + ], + [ + 6, + 10, + 13, + 2300, + 428310 + ], + [ + 6, + 10, + 14, + 2300, + 428310 + ], + [ + 6, + 10, + 15, + 2300, + 428310 + ], + [ + 6, + 10, + 16, + 2300, + 428310 + ], + [ + 6, + 10, + 17, + 2300, + 428310 + ], + [ + 6, + 10, + 18, + 2300, + 428310 + ], + [ + 6, + 10, + 19, + 2300, + 428310 + ], + [ + 6, + 10, + 20, + 2300, + 428310 + ], + [ + 6, + 10, + 21, + 2300, + 428310 + ], + [ + 6, + 10, + 22, + 2300, + 428310 + ], + [ + 6, + 11, + 12, + 2300, + 428310 + ], + [ + 6, + 11, + 13, + 2300, + 428310 + ], + [ + 6, + 11, + 14, + 2300, + 428310 + ], + [ + 6, + 11, + 15, + 2300, + 428310 + ], + [ + 6, + 11, + 16, + 2300, + 428310 + ], + [ + 6, + 11, + 17, + 2300, + 428310 + ], + [ + 6, + 11, + 18, + 2300, + 428310 + ], + [ + 6, + 11, + 19, + 2300, + 428310 + ], + [ + 6, + 11, + 20, + 2300, + 428310 + ], + [ + 6, + 11, + 21, + 2300, + 428310 + ], + [ + 6, + 11, + 22, + 2300, + 428310 + ], + [ + 6, + 12, + 13, + 2300, + 428310 + ], + [ + 6, + 12, + 14, + 2300, + 428310 + ], + [ + 6, + 12, + 15, + 2300, + 428310 + ], + [ + 6, + 12, + 16, + 2300, + 428310 + ], + [ + 6, + 12, + 17, + 2300, + 428310 + ], + [ + 6, + 12, + 18, + 2300, + 428310 + ], + [ + 6, + 12, + 19, + 2300, + 428310 + ], + [ + 6, + 12, + 20, + 2300, + 428310 + ], + [ + 6, + 12, + 21, + 2300, + 428310 + ], + [ + 6, + 12, + 22, + 2300, + 428310 + ], + [ + 6, + 13, + 14, + 2300, + 428310 + ], + [ + 6, + 13, + 15, + 2300, + 428310 + ], + [ + 6, + 13, + 16, + 2300, + 428310 + ], + [ + 6, + 13, + 17, + 2300, + 428310 + ], + [ + 6, + 13, + 18, + 2300, + 428310 + ], + [ + 6, + 13, + 19, + 2300, + 428310 + ], + [ + 6, + 13, + 20, + 2300, + 428310 + ], + [ + 6, + 13, + 21, + 2300, + 428310 + ], + [ + 6, + 13, + 22, + 2300, + 428310 + ], + [ + 6, + 14, + 15, + 2300, + 428310 + ], + [ + 6, + 14, + 16, + 2300, + 428310 + ], + [ + 6, + 14, + 17, + 2300, + 428310 + ], + [ + 6, + 14, + 18, + 2300, + 428310 + ], + [ + 6, + 14, + 19, + 2300, + 428310 + ], + [ + 6, + 14, + 20, + 2300, + 428310 + ], + [ + 6, + 14, + 21, + 2300, + 428310 + ], + [ + 6, + 14, + 22, + 2300, + 428310 + ], + [ + 6, + 15, + 16, + 2300, + 428310 + ], + [ + 6, + 15, + 17, + 2300, + 428310 + ], + [ + 6, + 15, + 18, + 2300, + 428310 + ], + [ + 6, + 15, + 19, + 2300, + 428310 + ], + [ + 6, + 15, + 20, + 2300, + 428310 + ], + [ + 6, + 15, + 21, + 2300, + 428310 + ], + [ + 6, + 15, + 22, + 2300, + 428310 + ], + [ + 6, + 16, + 17, + 2300, + 428310 + ], + [ + 6, + 16, + 18, + 2300, + 428310 + ], + [ + 6, + 16, + 19, + 2300, + 428310 + ], + [ + 6, + 16, + 20, + 2300, + 428310 + ], + [ + 6, + 16, + 21, + 2300, + 428310 + ], + [ + 6, + 16, + 22, + 2300, + 428310 + ], + [ + 6, + 17, + 18, + 2300, + 428310 + ], + [ + 6, + 17, + 19, + 2300, + 428310 + ], + [ + 6, + 17, + 20, + 2300, + 428310 + ], + [ + 6, + 17, + 21, + 2300, + 428310 + ], + [ + 6, + 17, + 22, + 2300, + 428310 + ], + [ + 6, + 18, + 19, + 2300, + 428310 + ], + [ + 6, + 18, + 20, + 2300, + 428310 + ], + [ + 6, + 18, + 21, + 2300, + 428310 + ], + [ + 6, + 18, + 22, + 2300, + 428310 + ], + [ + 6, + 19, + 20, + 2300, + 428310 + ], + [ + 6, + 19, + 21, + 2300, + 428310 + ], + [ + 6, + 19, + 22, + 2300, + 428310 + ], + [ + 6, + 20, + 21, + 2300, + 428310 + ], + [ + 6, + 20, + 22, + 2300, + 428310 + ], + [ + 6, + 21, + 22, + 2300, + 428310 + ], + [ + 7, + 8, + 9, + 2300, + 428310 + ], + [ + 7, + 8, + 10, + 2300, + 428310 + ], + [ + 7, + 8, + 11, + 2300, + 428310 + ], + [ + 7, + 8, + 12, + 2300, + 428310 + ], + [ + 7, + 8, + 13, + 2300, + 428310 + ], + [ + 7, + 8, + 14, + 2300, + 428310 + ], + [ + 7, + 8, + 15, + 2300, + 428310 + ], + [ + 7, + 8, + 16, + 2300, + 428310 + ], + [ + 7, + 8, + 17, + 2300, + 428310 + ], + [ + 7, + 8, + 18, + 2300, + 428310 + ], + [ + 7, + 8, + 19, + 2300, + 428310 + ], + [ + 7, + 8, + 20, + 2300, + 428310 + ], + [ + 7, + 8, + 21, + 2300, + 428310 + ], + [ + 7, + 8, + 22, + 2300, + 428310 + ], + [ + 7, + 9, + 10, + 2300, + 428310 + ], + [ + 7, + 9, + 11, + 2300, + 428310 + ], + [ + 7, + 9, + 12, + 2300, + 428310 + ], + [ + 7, + 9, + 13, + 2300, + 428310 + ], + [ + 7, + 9, + 14, + 2300, + 428310 + ], + [ + 7, + 9, + 15, + 2300, + 428310 + ], + [ + 7, + 9, + 16, + 2300, + 428310 + ], + [ + 7, + 9, + 17, + 2300, + 428310 + ], + [ + 7, + 9, + 18, + 2300, + 428310 + ], + [ + 7, + 9, + 19, + 2300, + 428310 + ], + [ + 7, + 9, + 20, + 2300, + 428310 + ], + [ + 7, + 9, + 21, + 2300, + 428310 + ], + [ + 7, + 9, + 22, + 2300, + 428310 + ], + [ + 7, + 10, + 11, + 2300, + 428310 + ], + [ + 7, + 10, + 12, + 2300, + 428310 + ], + [ + 7, + 10, + 13, + 2300, + 428310 + ], + [ + 7, + 10, + 14, + 2300, + 428310 + ], + [ + 7, + 10, + 15, + 2300, + 428310 + ], + [ + 7, + 10, + 16, + 2300, + 428310 + ], + [ + 7, + 10, + 17, + 2300, + 428310 + ], + [ + 7, + 10, + 18, + 2300, + 428310 + ], + [ + 7, + 10, + 19, + 2300, + 428310 + ], + [ + 7, + 10, + 20, + 2300, + 428310 + ], + [ + 7, + 10, + 21, + 2300, + 428310 + ], + [ + 7, + 10, + 22, + 2300, + 428310 + ], + [ + 7, + 11, + 12, + 2300, + 428310 + ], + [ + 7, + 11, + 13, + 2300, + 428310 + ], + [ + 7, + 11, + 14, + 2300, + 428310 + ], + [ + 7, + 11, + 15, + 2300, + 428310 + ], + [ + 7, + 11, + 16, + 2300, + 428310 + ], + [ + 7, + 11, + 17, + 2300, + 428310 + ], + [ + 7, + 11, + 18, + 2300, + 428310 + ], + [ + 7, + 11, + 19, + 2300, + 428310 + ], + [ + 7, + 11, + 20, + 2300, + 428310 + ], + [ + 7, + 11, + 21, + 2300, + 428310 + ], + [ + 7, + 11, + 22, + 2300, + 428310 + ], + [ + 7, + 12, + 13, + 2300, + 428310 + ], + [ + 7, + 12, + 14, + 2300, + 428310 + ], + [ + 7, + 12, + 15, + 2300, + 428310 + ], + [ + 7, + 12, + 16, + 2300, + 428310 + ], + [ + 7, + 12, + 17, + 2300, + 428310 + ], + [ + 7, + 12, + 18, + 2300, + 428310 + ], + [ + 7, + 12, + 19, + 2300, + 428310 + ], + [ + 7, + 12, + 20, + 2300, + 428310 + ], + [ + 7, + 12, + 21, + 2300, + 428310 + ], + [ + 7, + 12, + 22, + 2300, + 428310 + ], + [ + 7, + 13, + 14, + 2300, + 428310 + ], + [ + 7, + 13, + 15, + 2300, + 428310 + ], + [ + 7, + 13, + 16, + 2300, + 428310 + ], + [ + 7, + 13, + 17, + 2300, + 428310 + ], + [ + 7, + 13, + 18, + 2300, + 428310 + ], + [ + 7, + 13, + 19, + 2300, + 428310 + ], + [ + 7, + 13, + 20, + 2300, + 428310 + ], + [ + 7, + 13, + 21, + 2300, + 428310 + ], + [ + 7, + 13, + 22, + 2300, + 428310 + ], + [ + 7, + 14, + 15, + 2300, + 428310 + ], + [ + 7, + 14, + 16, + 2300, + 428310 + ], + [ + 7, + 14, + 17, + 2300, + 428310 + ], + [ + 7, + 14, + 18, + 2300, + 428310 + ], + [ + 7, + 14, + 19, + 2300, + 428310 + ], + [ + 7, + 14, + 20, + 2300, + 428310 + ], + [ + 7, + 14, + 21, + 2300, + 428310 + ], + [ + 7, + 14, + 22, + 2300, + 428310 + ], + [ + 7, + 15, + 16, + 2300, + 428310 + ], + [ + 7, + 15, + 17, + 2300, + 428310 + ], + [ + 7, + 15, + 18, + 2300, + 428310 + ], + [ + 7, + 15, + 19, + 2300, + 428310 + ], + [ + 7, + 15, + 20, + 2300, + 428310 + ], + [ + 7, + 15, + 21, + 2300, + 428310 + ], + [ + 7, + 15, + 22, + 2300, + 428310 + ], + [ + 7, + 16, + 17, + 2300, + 428310 + ], + [ + 7, + 16, + 18, + 2300, + 428310 + ], + [ + 7, + 16, + 19, + 2300, + 428310 + ], + [ + 7, + 16, + 20, + 2300, + 428310 + ], + [ + 7, + 16, + 21, + 2300, + 428310 + ], + [ + 7, + 16, + 22, + 2300, + 428310 + ], + [ + 7, + 17, + 18, + 2300, + 428310 + ], + [ + 7, + 17, + 19, + 2300, + 428310 + ], + [ + 7, + 17, + 20, + 2300, + 428310 + ], + [ + 7, + 17, + 21, + 2300, + 428310 + ], + [ + 7, + 17, + 22, + 2300, + 428310 + ], + [ + 7, + 18, + 19, + 2300, + 428310 + ], + [ + 7, + 18, + 20, + 2300, + 428310 + ], + [ + 7, + 18, + 21, + 2300, + 428310 + ], + [ + 7, + 18, + 22, + 2300, + 428310 + ], + [ + 7, + 19, + 20, + 2300, + 428310 + ], + [ + 7, + 19, + 21, + 2300, + 428310 + ], + [ + 7, + 19, + 22, + 2300, + 428310 + ], + [ + 7, + 20, + 21, + 2300, + 428310 + ], + [ + 7, + 20, + 22, + 2300, + 428310 + ], + [ + 7, + 21, + 22, + 2300, + 428310 + ], + [ + 8, + 9, + 10, + 2300, + 428310 + ], + [ + 8, + 9, + 11, + 2300, + 428310 + ], + [ + 8, + 9, + 12, + 2300, + 428310 + ], + [ + 8, + 9, + 13, + 2300, + 428310 + ], + [ + 8, + 9, + 14, + 2300, + 428310 + ], + [ + 8, + 9, + 15, + 2300, + 428310 + ], + [ + 8, + 9, + 16, + 2300, + 428310 + ], + [ + 8, + 9, + 17, + 2300, + 428310 + ], + [ + 8, + 9, + 18, + 2300, + 428310 + ], + [ + 8, + 9, + 19, + 2300, + 428310 + ], + [ + 8, + 9, + 20, + 2300, + 428310 + ], + [ + 8, + 9, + 21, + 2300, + 428310 + ], + [ + 8, + 9, + 22, + 2300, + 428310 + ], + [ + 8, + 10, + 11, + 2300, + 428310 + ], + [ + 8, + 10, + 12, + 2300, + 428310 + ], + [ + 8, + 10, + 13, + 2300, + 428310 + ], + [ + 8, + 10, + 14, + 2300, + 428310 + ], + [ + 8, + 10, + 15, + 2300, + 428310 + ], + [ + 8, + 10, + 16, + 2300, + 428310 + ], + [ + 8, + 10, + 17, + 2300, + 428310 + ], + [ + 8, + 10, + 18, + 2300, + 428310 + ], + [ + 8, + 10, + 19, + 2300, + 428310 + ], + [ + 8, + 10, + 20, + 2300, + 428310 + ], + [ + 8, + 10, + 21, + 2300, + 428310 + ], + [ + 8, + 10, + 22, + 2300, + 428310 + ], + [ + 8, + 11, + 12, + 2300, + 428310 + ], + [ + 8, + 11, + 13, + 2300, + 428310 + ], + [ + 8, + 11, + 14, + 2300, + 428310 + ], + [ + 8, + 11, + 15, + 2300, + 428310 + ], + [ + 8, + 11, + 16, + 2300, + 428310 + ], + [ + 8, + 11, + 17, + 2300, + 428310 + ], + [ + 8, + 11, + 18, + 2300, + 428310 + ], + [ + 8, + 11, + 19, + 2300, + 428310 + ], + [ + 8, + 11, + 20, + 2300, + 428310 + ], + [ + 8, + 11, + 21, + 2300, + 428310 + ], + [ + 8, + 11, + 22, + 2300, + 428310 + ], + [ + 8, + 12, + 13, + 2300, + 428310 + ], + [ + 8, + 12, + 14, + 2300, + 428310 + ], + [ + 8, + 12, + 15, + 2300, + 428310 + ], + [ + 8, + 12, + 16, + 2300, + 428310 + ], + [ + 8, + 12, + 17, + 2300, + 428310 + ], + [ + 8, + 12, + 18, + 2300, + 428310 + ], + [ + 8, + 12, + 19, + 2300, + 428310 + ], + [ + 8, + 12, + 20, + 2300, + 428310 + ], + [ + 8, + 12, + 21, + 2300, + 428310 + ], + [ + 8, + 12, + 22, + 2300, + 428310 + ], + [ + 8, + 13, + 14, + 2300, + 428310 + ], + [ + 8, + 13, + 15, + 2300, + 428310 + ], + [ + 8, + 13, + 16, + 2300, + 428310 + ], + [ + 8, + 13, + 17, + 2300, + 428310 + ], + [ + 8, + 13, + 18, + 2300, + 428310 + ], + [ + 8, + 13, + 19, + 2300, + 428310 + ], + [ + 8, + 13, + 20, + 2300, + 428310 + ], + [ + 8, + 13, + 21, + 2300, + 428310 + ], + [ + 8, + 13, + 22, + 2300, + 428310 + ], + [ + 8, + 14, + 15, + 2300, + 428310 + ], + [ + 8, + 14, + 16, + 2300, + 428310 + ], + [ + 8, + 14, + 17, + 2300, + 428310 + ], + [ + 8, + 14, + 18, + 2300, + 428310 + ], + [ + 8, + 14, + 19, + 2300, + 428310 + ], + [ + 8, + 14, + 20, + 2300, + 428310 + ], + [ + 8, + 14, + 21, + 2300, + 428310 + ], + [ + 8, + 14, + 22, + 2300, + 428310 + ], + [ + 8, + 15, + 16, + 2300, + 428310 + ], + [ + 8, + 15, + 17, + 2300, + 428310 + ], + [ + 8, + 15, + 18, + 2300, + 428310 + ], + [ + 8, + 15, + 19, + 2300, + 428310 + ], + [ + 8, + 15, + 20, + 2300, + 428310 + ], + [ + 8, + 15, + 21, + 2300, + 428310 + ], + [ + 8, + 15, + 22, + 2300, + 428310 + ], + [ + 8, + 16, + 17, + 2300, + 428310 + ], + [ + 8, + 16, + 18, + 2300, + 428310 + ], + [ + 8, + 16, + 19, + 2300, + 428310 + ], + [ + 8, + 16, + 20, + 2300, + 428310 + ], + [ + 8, + 16, + 21, + 2300, + 428310 + ], + [ + 8, + 16, + 22, + 2300, + 428310 + ], + [ + 8, + 17, + 18, + 2300, + 428310 + ], + [ + 8, + 17, + 19, + 2300, + 428310 + ], + [ + 8, + 17, + 20, + 2300, + 428310 + ], + [ + 8, + 17, + 21, + 2300, + 428310 + ], + [ + 8, + 17, + 22, + 2300, + 428310 + ], + [ + 8, + 18, + 19, + 2300, + 428310 + ], + [ + 8, + 18, + 20, + 2300, + 428310 + ], + [ + 8, + 18, + 21, + 2300, + 428310 + ], + [ + 8, + 18, + 22, + 2300, + 428310 + ], + [ + 8, + 19, + 20, + 2300, + 428310 + ], + [ + 8, + 19, + 21, + 2300, + 428310 + ], + [ + 8, + 19, + 22, + 2300, + 428310 + ], + [ + 8, + 20, + 21, + 2300, + 428310 + ], + [ + 8, + 20, + 22, + 2300, + 428310 + ], + [ + 8, + 21, + 22, + 2300, + 428310 + ], + [ + 9, + 10, + 11, + 2300, + 428310 + ], + [ + 9, + 10, + 12, + 2300, + 428310 + ], + [ + 9, + 10, + 13, + 2300, + 428310 + ], + [ + 9, + 10, + 14, + 2300, + 428310 + ], + [ + 9, + 10, + 15, + 2300, + 428310 + ], + [ + 9, + 10, + 16, + 2300, + 428310 + ], + [ + 9, + 10, + 17, + 2300, + 428310 + ], + [ + 9, + 10, + 18, + 2300, + 428310 + ], + [ + 9, + 10, + 19, + 2300, + 428310 + ], + [ + 9, + 10, + 20, + 2300, + 428310 + ], + [ + 9, + 10, + 21, + 2300, + 428310 + ], + [ + 9, + 10, + 22, + 2300, + 428310 + ], + [ + 9, + 11, + 12, + 2300, + 428310 + ], + [ + 9, + 11, + 13, + 2300, + 428310 + ], + [ + 9, + 11, + 14, + 2300, + 428310 + ], + [ + 9, + 11, + 15, + 2300, + 428310 + ], + [ + 9, + 11, + 16, + 2300, + 428310 + ], + [ + 9, + 11, + 17, + 2300, + 428310 + ], + [ + 9, + 11, + 18, + 2300, + 428310 + ], + [ + 9, + 11, + 19, + 2300, + 428310 + ], + [ + 9, + 11, + 20, + 2300, + 428310 + ], + [ + 9, + 11, + 21, + 2300, + 428310 + ], + [ + 9, + 11, + 22, + 2300, + 428310 + ], + [ + 9, + 12, + 13, + 2300, + 428310 + ], + [ + 9, + 12, + 14, + 2300, + 428310 + ], + [ + 9, + 12, + 15, + 2300, + 428310 + ], + [ + 9, + 12, + 16, + 2300, + 428310 + ], + [ + 9, + 12, + 17, + 2300, + 428310 + ], + [ + 9, + 12, + 18, + 2300, + 428310 + ], + [ + 9, + 12, + 19, + 2300, + 428310 + ], + [ + 9, + 12, + 20, + 2300, + 428310 + ], + [ + 9, + 12, + 21, + 2300, + 428310 + ], + [ + 9, + 12, + 22, + 2300, + 428310 + ], + [ + 9, + 13, + 14, + 2300, + 428310 + ], + [ + 9, + 13, + 15, + 2300, + 428310 + ], + [ + 9, + 13, + 16, + 2300, + 428310 + ], + [ + 9, + 13, + 17, + 2300, + 428310 + ], + [ + 9, + 13, + 18, + 2300, + 428310 + ], + [ + 9, + 13, + 19, + 2300, + 428310 + ], + [ + 9, + 13, + 20, + 2300, + 428310 + ], + [ + 9, + 13, + 21, + 2300, + 428310 + ], + [ + 9, + 13, + 22, + 2300, + 428310 + ], + [ + 9, + 14, + 15, + 2300, + 428310 + ], + [ + 9, + 14, + 16, + 2300, + 428310 + ], + [ + 9, + 14, + 17, + 2300, + 428310 + ], + [ + 9, + 14, + 18, + 2300, + 428310 + ], + [ + 9, + 14, + 19, + 2300, + 428310 + ], + [ + 9, + 14, + 20, + 2300, + 428310 + ], + [ + 9, + 14, + 21, + 2300, + 428310 + ], + [ + 9, + 14, + 22, + 2300, + 428310 + ], + [ + 9, + 15, + 16, + 2300, + 428310 + ], + [ + 9, + 15, + 17, + 2300, + 428310 + ], + [ + 9, + 15, + 18, + 2300, + 428310 + ], + [ + 9, + 15, + 19, + 2300, + 428310 + ], + [ + 9, + 15, + 20, + 2300, + 428310 + ], + [ + 9, + 15, + 21, + 2300, + 428310 + ], + [ + 9, + 15, + 22, + 2300, + 428310 + ], + [ + 9, + 16, + 17, + 2300, + 428310 + ], + [ + 9, + 16, + 18, + 2300, + 428310 + ], + [ + 9, + 16, + 19, + 2300, + 428310 + ], + [ + 9, + 16, + 20, + 2300, + 428310 + ], + [ + 9, + 16, + 21, + 2300, + 428310 + ], + [ + 9, + 16, + 22, + 2300, + 428310 + ], + [ + 9, + 17, + 18, + 2300, + 428310 + ], + [ + 9, + 17, + 19, + 2300, + 428310 + ], + [ + 9, + 17, + 20, + 2300, + 428310 + ], + [ + 9, + 17, + 21, + 2300, + 428310 + ], + [ + 9, + 17, + 22, + 2300, + 428310 + ], + [ + 9, + 18, + 19, + 2300, + 428310 + ], + [ + 9, + 18, + 20, + 2300, + 428310 + ], + [ + 9, + 18, + 21, + 2300, + 428310 + ], + [ + 9, + 18, + 22, + 2300, + 428310 + ], + [ + 9, + 19, + 20, + 2300, + 428310 + ], + [ + 9, + 19, + 21, + 2300, + 428310 + ], + [ + 9, + 19, + 22, + 2300, + 428310 + ], + [ + 9, + 20, + 21, + 2300, + 428310 + ], + [ + 9, + 20, + 22, + 2300, + 428310 + ], + [ + 9, + 21, + 22, + 2300, + 428310 + ], + [ + 10, + 11, + 12, + 2300, + 428310 + ], + [ + 10, + 11, + 13, + 2300, + 428310 + ], + [ + 10, + 11, + 14, + 2300, + 428310 + ], + [ + 10, + 11, + 15, + 2300, + 428310 + ], + [ + 10, + 11, + 16, + 2300, + 428310 + ], + [ + 10, + 11, + 17, + 2300, + 428310 + ], + [ + 10, + 11, + 18, + 2300, + 428310 + ], + [ + 10, + 11, + 19, + 2300, + 428310 + ], + [ + 10, + 11, + 20, + 2300, + 428310 + ], + [ + 10, + 11, + 21, + 2300, + 428310 + ], + [ + 10, + 11, + 22, + 2299, + 189775 + ], + [ + 10, + 12, + 13, + 2300, + 428310 + ], + [ + 10, + 12, + 14, + 2300, + 428310 + ], + [ + 10, + 12, + 15, + 2300, + 428310 + ], + [ + 10, + 12, + 16, + 2300, + 428310 + ], + [ + 10, + 12, + 17, + 2300, + 428310 + ], + [ + 10, + 12, + 18, + 2300, + 428310 + ], + [ + 10, + 12, + 19, + 2300, + 428310 + ], + [ + 10, + 12, + 20, + 2300, + 428310 + ], + [ + 10, + 12, + 21, + 2300, + 428310 + ], + [ + 10, + 12, + 22, + 2300, + 428310 + ], + [ + 10, + 13, + 14, + 2300, + 428310 + ], + [ + 10, + 13, + 15, + 2300, + 428310 + ], + [ + 10, + 13, + 16, + 2300, + 428310 + ], + [ + 10, + 13, + 17, + 2300, + 428310 + ], + [ + 10, + 13, + 18, + 2300, + 428310 + ], + [ + 10, + 13, + 19, + 2300, + 428310 + ], + [ + 10, + 13, + 20, + 2300, + 428310 + ], + [ + 10, + 13, + 21, + 2300, + 428310 + ], + [ + 10, + 13, + 22, + 2300, + 428310 + ], + [ + 10, + 14, + 15, + 2300, + 428310 + ], + [ + 10, + 14, + 16, + 2300, + 428310 + ], + [ + 10, + 14, + 17, + 2300, + 428310 + ], + [ + 10, + 14, + 18, + 2300, + 428310 + ], + [ + 10, + 14, + 19, + 2300, + 428310 + ], + [ + 10, + 14, + 20, + 2300, + 428310 + ], + [ + 10, + 14, + 21, + 2300, + 428310 + ], + [ + 10, + 14, + 22, + 2300, + 428310 + ], + [ + 10, + 15, + 16, + 2300, + 428310 + ], + [ + 10, + 15, + 17, + 2300, + 428310 + ], + [ + 10, + 15, + 18, + 2300, + 428310 + ], + [ + 10, + 15, + 19, + 2300, + 428310 + ], + [ + 10, + 15, + 20, + 2300, + 428310 + ], + [ + 10, + 15, + 21, + 2300, + 428310 + ], + [ + 10, + 15, + 22, + 2300, + 428310 + ], + [ + 10, + 16, + 17, + 2300, + 428310 + ], + [ + 10, + 16, + 18, + 2300, + 428310 + ], + [ + 10, + 16, + 19, + 2300, + 428310 + ], + [ + 10, + 16, + 20, + 2300, + 428310 + ], + [ + 10, + 16, + 21, + 2300, + 428310 + ], + [ + 10, + 16, + 22, + 2300, + 428310 + ], + [ + 10, + 17, + 18, + 2300, + 428310 + ], + [ + 10, + 17, + 19, + 2300, + 428310 + ], + [ + 10, + 17, + 20, + 2300, + 428310 + ], + [ + 10, + 17, + 21, + 2300, + 428310 + ], + [ + 10, + 17, + 22, + 2300, + 428310 + ], + [ + 10, + 18, + 19, + 2300, + 428310 + ], + [ + 10, + 18, + 20, + 2300, + 428310 + ], + [ + 10, + 18, + 21, + 2300, + 428310 + ], + [ + 10, + 18, + 22, + 2300, + 428310 + ], + [ + 10, + 19, + 20, + 2300, + 428310 + ], + [ + 10, + 19, + 21, + 2300, + 428310 + ], + [ + 10, + 19, + 22, + 2300, + 428310 + ], + [ + 10, + 20, + 21, + 2300, + 428310 + ], + [ + 10, + 20, + 22, + 2300, + 428310 + ], + [ + 10, + 21, + 22, + 2300, + 428310 + ], + [ + 11, + 12, + 13, + 2300, + 428310 + ], + [ + 11, + 12, + 14, + 2300, + 428310 + ], + [ + 11, + 12, + 15, + 2300, + 428310 + ], + [ + 11, + 12, + 16, + 2300, + 428310 + ], + [ + 11, + 12, + 17, + 2300, + 428310 + ], + [ + 11, + 12, + 18, + 2300, + 428310 + ], + [ + 11, + 12, + 19, + 2300, + 428310 + ], + [ + 11, + 12, + 20, + 2300, + 428310 + ], + [ + 11, + 12, + 21, + 2300, + 428310 + ], + [ + 11, + 12, + 22, + 2300, + 428310 + ], + [ + 11, + 13, + 14, + 2300, + 428310 + ], + [ + 11, + 13, + 15, + 2300, + 428310 + ], + [ + 11, + 13, + 16, + 2300, + 428310 + ], + [ + 11, + 13, + 17, + 2300, + 428310 + ], + [ + 11, + 13, + 18, + 2300, + 428310 + ], + [ + 11, + 13, + 19, + 2300, + 428310 + ], + [ + 11, + 13, + 20, + 2300, + 428310 + ], + [ + 11, + 13, + 21, + 2300, + 428310 + ], + [ + 11, + 13, + 22, + 2300, + 428310 + ], + [ + 11, + 14, + 15, + 2300, + 428310 + ], + [ + 11, + 14, + 16, + 2300, + 428310 + ], + [ + 11, + 14, + 17, + 2300, + 428310 + ], + [ + 11, + 14, + 18, + 2300, + 428310 + ], + [ + 11, + 14, + 19, + 2300, + 428310 + ], + [ + 11, + 14, + 20, + 2300, + 428310 + ], + [ + 11, + 14, + 21, + 2300, + 428310 + ], + [ + 11, + 14, + 22, + 2300, + 428310 + ], + [ + 11, + 15, + 16, + 2300, + 428310 + ], + [ + 11, + 15, + 17, + 2300, + 428310 + ], + [ + 11, + 15, + 18, + 2300, + 428310 + ], + [ + 11, + 15, + 19, + 2300, + 428310 + ], + [ + 11, + 15, + 20, + 2300, + 428310 + ], + [ + 11, + 15, + 21, + 2300, + 428310 + ], + [ + 11, + 15, + 22, + 2300, + 428310 + ], + [ + 11, + 16, + 17, + 2300, + 428310 + ], + [ + 11, + 16, + 18, + 2300, + 428310 + ], + [ + 11, + 16, + 19, + 2300, + 428310 + ], + [ + 11, + 16, + 20, + 2300, + 428310 + ], + [ + 11, + 16, + 21, + 2300, + 428310 + ], + [ + 11, + 16, + 22, + 2300, + 428310 + ], + [ + 11, + 17, + 18, + 2300, + 428310 + ], + [ + 11, + 17, + 19, + 2300, + 428310 + ], + [ + 11, + 17, + 20, + 2300, + 428310 + ], + [ + 11, + 17, + 21, + 2300, + 428310 + ], + [ + 11, + 17, + 22, + 2300, + 428310 + ], + [ + 11, + 18, + 19, + 2300, + 428310 + ], + [ + 11, + 18, + 20, + 2300, + 428310 + ], + [ + 11, + 18, + 21, + 2300, + 428310 + ], + [ + 11, + 18, + 22, + 2300, + 428310 + ], + [ + 11, + 19, + 20, + 2300, + 428310 + ], + [ + 11, + 19, + 21, + 2300, + 428310 + ], + [ + 11, + 19, + 22, + 2300, + 428310 + ], + [ + 11, + 20, + 21, + 2300, + 428310 + ], + [ + 11, + 20, + 22, + 2300, + 428310 + ], + [ + 11, + 21, + 22, + 2300, + 428310 + ], + [ + 12, + 13, + 14, + 2300, + 428310 + ], + [ + 12, + 13, + 15, + 2300, + 428310 + ], + [ + 12, + 13, + 16, + 2300, + 428310 + ], + [ + 12, + 13, + 17, + 2300, + 428310 + ], + [ + 12, + 13, + 18, + 2300, + 428310 + ], + [ + 12, + 13, + 19, + 2300, + 428310 + ], + [ + 12, + 13, + 20, + 2300, + 428310 + ], + [ + 12, + 13, + 21, + 2300, + 428310 + ], + [ + 12, + 13, + 22, + 2299, + 189775 + ], + [ + 12, + 14, + 15, + 2300, + 428310 + ], + [ + 12, + 14, + 16, + 2300, + 428310 + ], + [ + 12, + 14, + 17, + 2300, + 428310 + ], + [ + 12, + 14, + 18, + 2300, + 428310 + ], + [ + 12, + 14, + 19, + 2300, + 428310 + ], + [ + 12, + 14, + 20, + 2300, + 428310 + ], + [ + 12, + 14, + 21, + 2300, + 428310 + ], + [ + 12, + 14, + 22, + 2300, + 428310 + ], + [ + 12, + 15, + 16, + 2300, + 428310 + ], + [ + 12, + 15, + 17, + 2300, + 428310 + ], + [ + 12, + 15, + 18, + 2300, + 428310 + ], + [ + 12, + 15, + 19, + 2300, + 428310 + ], + [ + 12, + 15, + 20, + 2300, + 428310 + ], + [ + 12, + 15, + 21, + 2300, + 428310 + ], + [ + 12, + 15, + 22, + 2300, + 428310 + ], + [ + 12, + 16, + 17, + 2300, + 428310 + ], + [ + 12, + 16, + 18, + 2300, + 428310 + ], + [ + 12, + 16, + 19, + 2300, + 428310 + ], + [ + 12, + 16, + 20, + 2300, + 428310 + ], + [ + 12, + 16, + 21, + 2300, + 428310 + ], + [ + 12, + 16, + 22, + 2300, + 428310 + ], + [ + 12, + 17, + 18, + 2300, + 428310 + ], + [ + 12, + 17, + 19, + 2300, + 428310 + ], + [ + 12, + 17, + 20, + 2300, + 428310 + ], + [ + 12, + 17, + 21, + 2300, + 428310 + ], + [ + 12, + 17, + 22, + 2300, + 428310 + ], + [ + 12, + 18, + 19, + 2300, + 428310 + ], + [ + 12, + 18, + 20, + 2300, + 428310 + ], + [ + 12, + 18, + 21, + 2300, + 428310 + ], + [ + 12, + 18, + 22, + 2300, + 428310 + ], + [ + 12, + 19, + 20, + 2300, + 428310 + ], + [ + 12, + 19, + 21, + 2300, + 428310 + ], + [ + 12, + 19, + 22, + 2300, + 428310 + ], + [ + 12, + 20, + 21, + 2300, + 428310 + ], + [ + 12, + 20, + 22, + 2300, + 428310 + ], + [ + 12, + 21, + 22, + 2300, + 428310 + ], + [ + 13, + 14, + 15, + 2300, + 428310 + ], + [ + 13, + 14, + 16, + 2300, + 428310 + ], + [ + 13, + 14, + 17, + 2300, + 428310 + ], + [ + 13, + 14, + 18, + 2300, + 428310 + ], + [ + 13, + 14, + 19, + 2300, + 428310 + ], + [ + 13, + 14, + 20, + 2300, + 428310 + ], + [ + 13, + 14, + 21, + 2300, + 428310 + ], + [ + 13, + 14, + 22, + 2300, + 428310 + ], + [ + 13, + 15, + 16, + 2300, + 428310 + ], + [ + 13, + 15, + 17, + 2300, + 428310 + ], + [ + 13, + 15, + 18, + 2300, + 428310 + ], + [ + 13, + 15, + 19, + 2300, + 428310 + ], + [ + 13, + 15, + 20, + 2300, + 428310 + ], + [ + 13, + 15, + 21, + 2300, + 428310 + ], + [ + 13, + 15, + 22, + 2300, + 428310 + ], + [ + 13, + 16, + 17, + 2300, + 428310 + ], + [ + 13, + 16, + 18, + 2300, + 428310 + ], + [ + 13, + 16, + 19, + 2300, + 428310 + ], + [ + 13, + 16, + 20, + 2300, + 428310 + ], + [ + 13, + 16, + 21, + 2300, + 428310 + ], + [ + 13, + 16, + 22, + 2300, + 428310 + ], + [ + 13, + 17, + 18, + 2300, + 428310 + ], + [ + 13, + 17, + 19, + 2300, + 428310 + ], + [ + 13, + 17, + 20, + 2300, + 428310 + ], + [ + 13, + 17, + 21, + 2300, + 428310 + ], + [ + 13, + 17, + 22, + 2300, + 428310 + ], + [ + 13, + 18, + 19, + 2300, + 428310 + ], + [ + 13, + 18, + 20, + 2300, + 428310 + ], + [ + 13, + 18, + 21, + 2300, + 428310 + ], + [ + 13, + 18, + 22, + 2300, + 428310 + ], + [ + 13, + 19, + 20, + 2300, + 428310 + ], + [ + 13, + 19, + 21, + 2300, + 428310 + ], + [ + 13, + 19, + 22, + 2300, + 428310 + ], + [ + 13, + 20, + 21, + 2300, + 428310 + ], + [ + 13, + 20, + 22, + 2300, + 428310 + ], + [ + 13, + 21, + 22, + 2300, + 428310 + ], + [ + 14, + 15, + 16, + 2300, + 428310 + ], + [ + 14, + 15, + 17, + 2300, + 428310 + ], + [ + 14, + 15, + 18, + 2300, + 428310 + ], + [ + 14, + 15, + 19, + 2300, + 428310 + ], + [ + 14, + 15, + 20, + 2300, + 428310 + ], + [ + 14, + 15, + 21, + 2300, + 428310 + ], + [ + 14, + 15, + 22, + 2300, + 428310 + ], + [ + 14, + 16, + 17, + 2300, + 428310 + ], + [ + 14, + 16, + 18, + 2300, + 428310 + ], + [ + 14, + 16, + 19, + 2300, + 428310 + ], + [ + 14, + 16, + 20, + 2300, + 428310 + ], + [ + 14, + 16, + 21, + 2300, + 428310 + ], + [ + 14, + 16, + 22, + 2300, + 428310 + ], + [ + 14, + 17, + 18, + 2300, + 428310 + ], + [ + 14, + 17, + 19, + 2300, + 428310 + ], + [ + 14, + 17, + 20, + 2300, + 428310 + ], + [ + 14, + 17, + 21, + 2300, + 428310 + ], + [ + 14, + 17, + 22, + 2300, + 428310 + ], + [ + 14, + 18, + 19, + 2300, + 428310 + ], + [ + 14, + 18, + 20, + 2300, + 428310 + ], + [ + 14, + 18, + 21, + 2300, + 428310 + ], + [ + 14, + 18, + 22, + 2300, + 428310 + ], + [ + 14, + 19, + 20, + 2300, + 428310 + ], + [ + 14, + 19, + 21, + 2300, + 428310 + ], + [ + 14, + 19, + 22, + 2300, + 428310 + ], + [ + 14, + 20, + 21, + 2300, + 428310 + ], + [ + 14, + 20, + 22, + 2300, + 428310 + ], + [ + 14, + 21, + 22, + 2300, + 428310 + ], + [ + 15, + 16, + 17, + 2300, + 428310 + ], + [ + 15, + 16, + 18, + 2300, + 428310 + ], + [ + 15, + 16, + 19, + 2300, + 428310 + ], + [ + 15, + 16, + 20, + 2300, + 428310 + ], + [ + 15, + 16, + 21, + 2300, + 428310 + ], + [ + 15, + 16, + 22, + 2300, + 428310 + ], + [ + 15, + 17, + 18, + 2300, + 428310 + ], + [ + 15, + 17, + 19, + 2300, + 428310 + ], + [ + 15, + 17, + 20, + 2300, + 428310 + ], + [ + 15, + 17, + 21, + 2300, + 428310 + ], + [ + 15, + 17, + 22, + 2300, + 428310 + ], + [ + 15, + 18, + 19, + 2300, + 428310 + ], + [ + 15, + 18, + 20, + 2300, + 428310 + ], + [ + 15, + 18, + 21, + 2300, + 428310 + ], + [ + 15, + 18, + 22, + 2300, + 428310 + ], + [ + 15, + 19, + 20, + 2300, + 428310 + ], + [ + 15, + 19, + 21, + 2300, + 428310 + ], + [ + 15, + 19, + 22, + 2300, + 428310 + ], + [ + 15, + 20, + 21, + 2300, + 428310 + ], + [ + 15, + 20, + 22, + 2300, + 428310 + ], + [ + 15, + 21, + 22, + 2300, + 428310 + ], + [ + 16, + 17, + 18, + 2300, + 428310 + ], + [ + 16, + 17, + 19, + 2300, + 428310 + ], + [ + 16, + 17, + 20, + 2300, + 428310 + ], + [ + 16, + 17, + 21, + 2300, + 428310 + ], + [ + 16, + 17, + 22, + 2300, + 428310 + ], + [ + 16, + 18, + 19, + 2300, + 428310 + ], + [ + 16, + 18, + 20, + 2300, + 428310 + ], + [ + 16, + 18, + 21, + 2300, + 428310 + ], + [ + 16, + 18, + 22, + 2300, + 428310 + ], + [ + 16, + 19, + 20, + 2300, + 428310 + ], + [ + 16, + 19, + 21, + 2300, + 428310 + ], + [ + 16, + 19, + 22, + 2300, + 428310 + ], + [ + 16, + 20, + 21, + 2300, + 428310 + ], + [ + 16, + 20, + 22, + 2300, + 428310 + ], + [ + 16, + 21, + 22, + 2300, + 428310 + ], + [ + 17, + 18, + 19, + 2300, + 428310 + ], + [ + 17, + 18, + 20, + 2300, + 428310 + ], + [ + 17, + 18, + 21, + 2300, + 428310 + ], + [ + 17, + 18, + 22, + 2300, + 428310 + ], + [ + 17, + 19, + 20, + 2300, + 428310 + ], + [ + 17, + 19, + 21, + 2300, + 428310 + ], + [ + 17, + 19, + 22, + 2300, + 428310 + ], + [ + 17, + 20, + 21, + 2300, + 428310 + ], + [ + 17, + 20, + 22, + 2300, + 428310 + ], + [ + 17, + 21, + 22, + 2300, + 428310 + ], + [ + 18, + 19, + 20, + 2300, + 428310 + ], + [ + 18, + 19, + 21, + 2300, + 428310 + ], + [ + 18, + 19, + 22, + 2300, + 428310 + ], + [ + 18, + 20, + 21, + 2300, + 428310 + ], + [ + 18, + 20, + 22, + 2300, + 428310 + ], + [ + 18, + 21, + 22, + 2300, + 428310 + ], + [ + 19, + 20, + 21, + 2300, + 428310 + ], + [ + 19, + 20, + 22, + 2300, + 428310 + ], + [ + 19, + 21, + 22, + 2300, + 428310 + ], + [ + 20, + 21, + 22, + 2300, + 428310 + ] + ] + }, + "row_tree": [ + [ + 0, + 23 + ], + [ + 1, + 24 + ], + [ + 2, + 25 + ], + [ + 3, + 26 + ], + [ + 4, + 27 + ], + [ + 5, + 28 + ], + [ + 6, + 29 + ], + [ + 7, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 32 + ], + [ + 10, + 33 + ], + [ + 11, + 34 + ], + [ + 12, + 35 + ], + [ + 13, + 36 + ], + [ + 14, + 37 + ], + [ + 15, + 38 + ], + [ + 16, + 39 + ], + [ + 17, + 40 + ], + [ + 18, + 41 + ], + [ + 19, + 42 + ], + [ + 20, + 43 + ], + [ + 21, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 0, + 47 + ], + [ + 1, + 23 + ], + [ + 2, + 24 + ], + [ + 3, + 25 + ], + [ + 4, + 26 + ], + [ + 5, + 27 + ], + [ + 6, + 28 + ], + [ + 7, + 29 + ], + [ + 8, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 32 + ], + [ + 11, + 33 + ], + [ + 12, + 34 + ], + [ + 13, + 35 + ], + [ + 14, + 36 + ], + [ + 15, + 37 + ], + [ + 16, + 38 + ], + [ + 17, + 39 + ], + [ + 18, + 40 + ], + [ + 19, + 41 + ], + [ + 20, + 42 + ], + [ + 21, + 43 + ], + [ + 22, + 44 + ] + ], + "scope": "Nonzero modular pivots certify rational nonvanishing at the actual two fixed bases; zeros follow separate exact rank cuts. Ten primary-prime failures are replayed with exact rational elimination, yielding the same profile for every pair." + }, + "kappa": "411862541/10000000000000", + "local_sha256": { + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/SOURCE.json": "bd5a765474ed52155f3393951b96babc4ca3fe7522397140c51594289b401e32", + "research/copied-fixed/audit.py": "dd369a7a6e0be4354c05560d0e1d9750c14839928459f43beeb55970f86e0631", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/data_corners.cpp": "d134f43d31b896daf504511991be8608c6ba9d20a6606c57e2e12d4b203b7d44", + "research/copied-fixed/data_recovery.py": "0de7e0fc4f38b066ec319e4dde43bce8f20edd207be9f9736610babf95030253", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/original_timeline.py": "cf152459e080f556931122bc0afa3417835ea4a6d14e541be12c67f317e25f60", + "research/copied-fixed/producer.py": "281b7ebcbad71d2cebca80b1aca4af1d63417e3995576be41f040b776a51e43e", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a" + }, + "scope": "Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); all actual data pairs checked for 9 singletons +21+17+481; ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/matching/profile reconstruction is producer.py. OpenAI base theorem, written residual compiler, fixed-tape recursion, analytic/semantic/routing/recovery and eventual-threshold interfaces remain assumed.", + "sources": { + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + } + }, + "status": "Conditional exact arithmetic witness; general transfer proofs are dependencies" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py new file mode 100644 index 0000000000..24070a7d85 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py @@ -0,0 +1,60 @@ +"""Changed exclusion graphs with more admissible retained carriers. + +Underlying cancellation-free generators: icekylinx PR18/36. Alternating +point order: RaD/hipotures PR41, checkpoint 7e488e6b25dc1713c1f41baaf1cefbf677507cf3. +Compared with PR46, reorder the vector leave-one-out construction by source +support size, breaking ties by ascending support at h23 and descending at +h25; restore the original output indexing. The h23 total folds in reverse +input order, while h25 retains descending (support size, support) order. +Prepared with OpenAI Codex assistance. Apache-2.0. +""" +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h,common): + pairs=[(a,a+1) for a in range(0,h-1,2) if common not in (a,a+1)] + if common%2: + pairs.reverse() + head=[x for pair in pairs for x in pair] + return head+[x for x in range(h) if x!=common and x not in head] + + +def graph(h): + assert h in (23,25) + class Changed(PairedExclusionCircuit): + base_threshold=2 + def total(self,values): + values=[x for x in values if x] + if h==23: + values.reverse() + else: + values.sort(key=lambda node:(self.support[node].bit_count(),self.support[node]),reverse=True) + result=0 + for node in values: + result=self.add(result,node) + return result + def vector(self,values,two=True): + if two: + return super().vector(values,two) + sign=1 if h==23 else -1 + order=sorted(range(len(values)),key=lambda i: + (self.support[values[i]].bit_count(),sign*self.support[values[i]])) + total,one,_=super().vector([values[i] for i in order],False) + restored=[0]*len(values) + for position,original in enumerate(order): + restored[original]=one[position] + return total,restored,{} + local=Changed(h-1) + total=local.pair(list(range(h-1)))[0] + local.outputs[()]=total + stack=[total] + while stack: + node=stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions=sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h,local,point_order=alternating_points) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp new file mode 100644 index 0000000000..410e50f475 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp @@ -0,0 +1,107 @@ +#include +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){assert(argc==2||argc==3);std::ifstream f(argv[1],std::ios::binary);U hdr[4];read_array(f,hdr);U h=hdr[0],v=hdr[1],n=hdr[2],q=hdr[3];assert(h==23||h==25); +std::vector>args(n);std::vectorcore(n),cover(n);std::vectorroots(q),kind(q);std::vectoractive(n);readv(f,args);readv(f,core);readv(f,cover);readv(f,roots);readv(f,kind);readv(f,active); +std::vectorranks(n),degree(n),begin(n+1);V c=0,inputs=0,loss=0; +for(U x=1;xuses(begin.back()),cursor(begin.begin(),begin.end()-1);for(U x=1;xU{return e>>31?roots[e&0x7fffffff]:e/2;}; +auto before=[&](U a,U b){U x=nd(a),y=nd(b);if(ranks[x]!=ranks[y])return ranks[x]>31?V(n)+(a&0x7fffffff):x,oy=b>>31?V(n)+(b&0x7fffffff):y;return oxdonors;for(U x=1;xleftmatch(n),rightmatch(uses.size()),distance(n,UINT32_MAX),queue;V matches=0;U phase=0,inf=UINT32_MAX,shortest=inf; +const char* lin=getenv("LINKS_IN"); +assert(lin && "A pinned carrier matching is required"); +if(lin){std::ifstream lf(lin,std::ios::binary);U hd[2];read_array(lf,hd);assert(hd[0]==n);std::vectorisdonor(n);for(U x:donors)isdonor[x]=1;for(U i=0;i=shortest)continue;adjacency(x,[&](U j){U y=rightmatch[j];if(!y)shortest=distance[x]+1;else if(distance[y]==inf){distance[y]=distance[x]+1;queue.push_back(y);}return false;});}if(shortest==inf)break; +auto aug=[&](auto&&self,U x)->bool{bool ok=adjacency(x,[&](U j){U y=rightmatch[j];if((!y&&distance[x]+1==shortest)||(y&&distance[y]==distance[x]+1&&self(self,y))){leftmatch[x]=j+1;rightmatch[j]=x;return true;}return false;});if(!ok)distance[x]=inf;return ok;};V gained=0;for(U x:donors)if(!leftmatch[x]&&aug(aug,x)){matches++;gained++;}std::cerr<<"h="<hist(h+1);for(U x=1;x=ranks[y]);hist[r-ranks[y]]++;}}else hist[1]+=degree[x];} +for(U j=0;j>31?target:args[target][e&1];assert(value==args[donor][0]||value==args[donor][1]);if(value==args[donor][0])changed++;U ru=ranks[donor],rv=ranks[value],rt=ranks[target];assert(rt>=ru&&ru>=rv);hist[h-ru]--;hist[rv]--;hist[rt-rv]--;hist[rt-ru]++;} +V R=c+q-matches,sum=0;for(U r=0;r<=h;r++){assert(hist[r]>=0);sum+=r*hist[r];}assert(sum==h*R+2*loss); +if(argc==3){std::ofstream out(argv[2],std::ios::binary);U header[2]={n,U(matches)};write_array(out,header);for(U donor:donors)if(leftmatch[donor]){U edge[2]={donor,uses[leftmatch[donor]-1]};write_array(out,edge);}assert(out);} +std::cout<<"{\"h\":"<frames{{0,0,0},{0,0,h}};std::map,U>frame_lookup;std::vectorfi(n); +for(U x=1;xsecond;} +std::map,int64_t>transitions;int64_t singles=0; +auto edge=[&](U a,U b,int64_t count){if(a==b)return;transitions[{a,b}]+=count;}; +for(U x=1;x>31?target:args[target][e&1];edge(fi[donor],1,-1);edge(0,fi[value],-1);edge(fi[value],fi[target],-1);edge(fi[donor],fi[target],1);} +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".round3_rankone_certified_profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +def tree(edges, n): + require(len(edges) == n-1 and len(set(edges)) == n-1, 'Wrong tree edge count') + seen = {0} + while True: + new = seen | {v for u,v in edges if u in seen} | {u for u,v in edges if v in seen} + if new == seen: + break + seen = new + require(len(seen) == n, 'Disconnected restriction graph') + + +def data_corners(): + c = read(HERE/'data-corners.json') + prime = c['prime'] + require(prime == 1000003 and all(prime % j for j in range(2,isqrt(prime)+1)), + 'Data witness prime not proved') + require(c['dimensions'] == [23,25], 'Data dimensions') + require([tuple(r[:3]) for r in c['records']] == list(combinations(range(23),3)), + 'Incomplete first triple coverage') + require(all(0 <= r[3] <= 2300 and 0 < r[4] < prime for r in c['records']), + 'Invalid modular product record') + failures = c['fallback_pairs'] + require(len({tuple(r[:6]) for r in failures}) == len(failures), 'Duplicate fallback') + counts = Counter() + for aa,bb,cc,u,v,w,row in failures: + require(0<=aa= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + + +def profile(): + a,b = 23,25 + m = a*b + rows = [read(HERE / f'original-{h}.json') for h in (a,b)] + N = comb(a,3)*comb(b,3) + W = 2*N+sum(N//r['v']*r['R'] for r in rows) + L = sum(N//r['v']*r['loss'] for r in rows) + data = data_corners() + good,bad = data['good'],data['fallback'] + parts = {'data':Counter({1:2*(9*good+47*bad),21:2*good,17:2*good,481:2*N}), + 'paid_endpoint_copy':Counter({1:N})} + axes = [] + for row in rows: + h = row['h'] + require(row['v'] == comb(h,3), 'Triple count') + require(row['R'] == row['c']+row['q']-row['matched'], 'Role allocation') + require(row['loss'] == h*(h-1), 'Retained center loss') + require(sum(r*n for r,n in enumerate(row['histogram'])) == h*row['R']+2*row['loss'], + 'Original frame rank mass') + f = read(HERE / f'profiles-{h}.json') + for key in ('h','v','R','loss','rank_sum'): + require(f[key] == row[key], 'Fixed/original mismatch: '+key) + require(f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1, + 'Invalid CRT profile') + blocks = f['blocks'][:] + require(len(blocks) == h+1 and all(type(n) is int and n>=0 for n in blocks), + 'Invalid fixed blocks') + require(sum(t*n for t,n in enumerate(blocks)) == f['rank_sum'], 'Fixed profile mass') + require(blocks[h] == h, 'Exactly h full center cleanup calls expected') + # Preserve every transformed copy. Replace only its original's full cleanup. + blocks[h] -= h + blocks[1] += h + require(sum(t*n for t,n in enumerate(blocks)) == h*row['R']+row['loss'], + 'Copied fixed profile mass') + rep = N//row['v'] + bank = rep*row['R'] + parts[f'internal_{h}'] = Counter({t:n*rep for t,n in enumerate(blocks) if t and n}) + parts[f'exterior_{h}'] = Counter({h:bank,m-2*h:bank}) + parts[f'data_growth_{h}'] = Counter({1:2*N,h-2:2*N}) + axes.append(dict(original=row,fixed=f,copied_blocks=blocks,exactness=exactness(h))) + hist = sum(parts.values(),Counter()) + s = sum(t*n for t,n in hist.items()) + require(s == W*m-N+L == 102078397025, 'Complete rank mass') + require((m,N,W,L) == (575,4073300,177530859,2226400), 'Physical constants') + require(max(hist) == 529 and all(00 for t,n in hist.items()), 'Proper children') + return dict(m=m,N=N,W=W,L=L,total_rank=s,deficit=W*m-s,maxchild=max(hist), + child_multiplicities=dict(sorted(hist.items())),parts=parts,axes=axes) + + +def run(): + require(not sys.flags.optimize, 'Assertions must remain enabled') + sources = check_sources() + prior = baseline.certificate() + geo,p = geometry(),profile() + exact = moment(p['m'],p['W'],p['child_multiplicities'],AB) + require(exact['upper'] < 1, 'Bit characteristic failed') + old = prior['bit']['counts'] + old_at_new = moment(old['m'],old['W'],old['child_multiplicities'],AB) + require(old_at_new['lower'] > 1, 'Old construction not excluded at new saving') + forward=read(HERE/'comparison-pr40.json') + forward_rows={int(t):n for t,n in forward['child_multiplicities'].items()} + require(sum(t*n for t,n in forward_rows.items())==108202762275, 'PR40 rank mismatch') + forward_at_new=moment(forward['m'],forward['W'],forward_rows,AB) + require(forward_at_new['lower']>1,'PR40 network not excluded at new saving') + rad=read(HERE/'comparison-pr41.json') + rad_rows={int(t):n for t,n in rad['child_multiplicities'].items()} + require(sum(t*n for t,n in rad_rows.items())==rad['total_rank']==102565738275,'PR41 rank mismatch') + rad_at_new=moment(rad['m'],rad['W'],rad_rows,AB) + require(rad_at_new['lower']>1,'PR41 alternating network not excluded at new saving') + newest=read(HERE/'comparison-pr42.json') + newest_rows={int(t):n for t,n in newest['child_multiplicities'].items()} + require(sum(t*n for t,n in newest_rows.items())==newest['total_rank']==102565738275,'PR42 rank mismatch') + newest_at_new=moment(newest['m'],newest['W'],newest_rows,AB) + require(newest_at_new['lower']>1,'PR42 network not excluded at new saving') + previous=read(HERE/'comparison-pr43.json') + previous_rows={int(t):n for t,n in previous['child_multiplicities'].items()} + require(sum(t*n for t,n in previous_rows.items())==previous['total_rank']==102565738275,'PR43 rank mismatch') + previous_at_new=moment(previous['m'],previous['W'],previous_rows,AB) + require(previous_at_new['lower']>1,'PR43 network not excluded at new saving') + frontier=read(HERE/'comparison-pr44.json') + frontier_rows={int(t):n for t,n in frontier['child_multiplicities'].items()} + require(sum(t*n for t,n in frontier_rows.items())==frontier['total_rank']==102565738275,'PR44 rank mismatch') + frontier_at_new=moment(frontier['m'],frontier['W'],frontier_rows,AB) + require(frontier_at_new['lower']>1,'PR44 network not excluded at new saving') + parent=read(HERE/'comparison-pr46.json') + parent_rows={int(t):n for t,n in parent['child_multiplicities'].items()} + require(sum(t*n for t,n in parent_rows.items())==parent['total_rank']==102565738275,'PR46 rank mismatch') + parent_at_new=moment(parent['m'],parent['W'],parent_rows,AB) + require(parent_at_new['lower']>1,'PR46 network not excluded at new saving') + latest=read(HERE/'comparison-pr47.json') + latest_rows={int(t):n for t,n in latest['child_multiplicities'].items()} + require(sum(t*n for t,n in latest_rows.items())==latest['total_rank']==latest['W']*latest['m']-1846900,'PR47 rank mismatch') + latest_at_new=moment(latest['m'],latest['W'],latest_rows,AB) + require(latest_at_new['lower']>1,'PR47 network not excluded at new saving') + phase = prior['complex']['counts'] + phase_row = read(ROOT / 'certificates/copied-centers-complex-input.json') + bridge = baseline.finite_bridge(p,phase,[phase_row,phase_row]) + require(all(js(bridge[k])==js(prior['finite_bridge'][k]) for k in ('complex','semantic','rows')), 'Unexpected phase or stock change') + final = assembly(bridge,AB,KAPPA,a_complex=AC) + eventual = cutoffs(bridge,final) + require(KAPPA > PR47_KAPPA > PR46_KAPPA > PR44_KAPPA > PR43_KAPPA > PR42_KAPPA > PR41_KAPPA > PR40_KAPPA > PR39_KAPPA > PR38_KAPPA > PR37_KAPPA > prior['kappa'] > Q(1,2**15), 'Comparison failed') + require(KAPPA < Q(1,2**14), 'Unexpected power-of-two bracket') + own_files = sorted(HERE.glob('*.py'))+sorted(HERE.glob('*.cpp'))+[HERE/'PROOF.md',HERE/'SOURCE.json'] + own_files += [HERE/f'{kind}-{h}.json' for h in (23,25) for kind in ('profiles','original','scalar')] + own_files += [HERE/'data-corners.json',HERE/'comparison-pr40.json',HERE/'comparison-pr41.json',HERE/'comparison-pr42.json',HERE/'comparison-pr43.json',HERE/'comparison-pr44.json',HERE/'comparison-pr46.json',HERE/'comparison-pr47.json',HERE/'search-record.json',HERE/'links-23.uses',HERE/'links-25.uses'] + return dict(status='Conditional exact arithmetic witness; general transfer proofs are dependencies', + kappa=KAPPA,bit=dict(counts=p,**exact),complex=prior['complex'], + geometry=geo,finite_bridge=bridge,assembly=final,eventual_bounds=eventual,sources=sources, + comparison=dict(PR47=PR47_KAPPA,ratio_PR47=KAPPA/PR47_KAPPA,PR46=PR46_KAPPA,ratio_PR46=KAPPA/PR46_KAPPA,PR44=PR44_KAPPA,ratio_PR44=KAPPA/PR44_KAPPA,PR36=prior['kappa'],PR37=PR37_KAPPA,PR38=PR38_KAPPA,PR39=PR39_KAPPA,PR40=PR40_KAPPA,PR41=PR41_KAPPA,PR42=PR42_KAPPA,PR43=PR43_KAPPA, + ratio_PR36=KAPPA/prior['kappa'],ratio_PR37=KAPPA/PR37_KAPPA, + ratio_PR38=KAPPA/PR38_KAPPA,ratio_PR39=KAPPA/PR39_KAPPA,ratio_PR40=KAPPA/PR40_KAPPA,ratio_PR41=KAPPA/PR41_KAPPA,ratio_PR42=KAPPA/PR42_KAPPA,ratio_PR43=KAPPA/PR43_KAPPA, + dyadic_corollary='2^-15',next_dyadic_not_reached='2^-14'), + controls=dict(PR47_bit_at_new_lower=latest_at_new['lower'],PR46_bit_at_new_lower=parent_at_new['lower'],PR44_bit_at_new_lower=frontier_at_new['lower'],old_bit_at_new_lower=old_at_new['lower'],PR40_bit_at_new_lower=forward_at_new['lower'],PR41_bit_at_new_lower=rad_at_new['lower'],PR42_bit_at_new_lower=newest_at_new['lower'],PR43_bit_at_new_lower=previous_at_new['lower']), + local_sha256={str(p.relative_to(ROOT)):sha256(p.read_bytes()).hexdigest() for p in own_files}, + scope='Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); ' + 'all actual data pairs checked for 9 singletons +21+17+481; ' + 'ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/' + 'matching/profile reconstruction is producer.py. OpenAI base theorem, ' + 'written residual compiler, fixed-tape recursion, analytic/semantic/' + 'routing/recovery and eventual-threshold interfaces remain assumed.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--output',type=Path) + args = parser.parse_args() + result = run() + if args.output: + args.output.write_text(json.dumps(js(result),indent=2,sort_keys=True)+'\n') + print('PASS conditional kappa='+str(KAPPA)+'; bit saving='+str(AB)) + print('47 strict inequalities; seven margins; all-exact enclosures; inherited balanced assembly') diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py new file mode 100644 index 0000000000..aaa99986c4 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +"""Cancellation-free circuit for all pair sums avoiding two specified points. + +Every addition has disjoint input supports. Node interning shares equal sums; +support tracking verifies the full linear map, not sampled input values. +""" +from itertools import combinations +from hashlib import sha256 +import json + + +class ExclusionCircuit: + def __init__(self,n): + assert n>=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1< +#include + +inline unsigned popcount64(uint64_t value) { + unsigned count = 0; + while (value) { value &= value-1; ++count; } + return count; +} + +inline bool little_endian() { + const uint16_t one = 1; + return *reinterpret_cast(&one) == 1; +} +template void normalize_le(T& value) { + static_assert(std::is_integral::value, "integer array required"); + if (!little_endian()) { + auto p = reinterpret_cast(&value); + std::reverse(p, p + sizeof(T)); + } +} +template void normalize_le(std::array& row) { + for (auto& value : row) normalize_le(value); +} +template void readv(std::ifstream& f, std::vector& values) { + f.read(reinterpret_cast(values.data()), values.size()*sizeof(T)); + if (!f) throw std::runtime_error("Truncated producer array"); + if (!little_endian()) for (auto& value : values) normalize_le(value); +} +template void read_array(std::ifstream& f, T (&values)[N]) { + f.read(reinterpret_cast(values), sizeof(values)); + if (!f) throw std::runtime_error("Truncated producer header"); + for (auto& value : values) normalize_le(value); +} +template void write_array(std::ofstream& f, const T (&values)[N]) { + for (auto value : values) { + normalize_le(value); + f.write(reinterpret_cast(&value), sizeof(T)); + } + if (!f) throw std::runtime_error("Cannot write producer array"); +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py new file mode 100644 index 0000000000..b879293977 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py @@ -0,0 +1,46 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Cancellation-free pair exclusion with recursively aggregated vertex weights. + +At each level group vertices in pairs. Internal edges become vertex weights +in the smaller graph. Keeping those weights in the recursion avoids a separate +leave-two-out circuit for each level. All coefficients are checked exactly. +""" +from exclusion_circuit import ExclusionCircuit +from itertools import combinations +class PairedExclusionCircuit(ExclusionCircuit): + base_threshold = 2 + def pair(self,points):return self.block(points,{(a,b):self.variables[a,b] for a,b in combinations(points,2)},{a:0 for a in points}) + def grouping(self,points):return [points[i:i+2] for i in range(0,len(points),2)] + def block(self,points,edges,weights): + if len(points)<=self.base_threshold: + total=lambda omit:self.total([x for p,x in edges.items() if not set(p)&set(omit)]+[x for p,x in weights.items() if p not in omit]) + return total(()),{a:total((a,)) for a in points},{(a,b):total((a,b)) for a,b in combinations(points,2)} + groups=self.grouping(points);ng=len(groups);e=lambda a,b:edges[tuple(sorted((a,b)))] + coarse={(i,j):self.total([e(a,b) for a in groups[i] for b in groups[j]]) for i,j in combinations(range(ng),2)} + wt={i:self.total([weights[a] for a in g]+[e(a,b) for a,b in combinations(g,2)]) for i,g in enumerate(groups)} + total,outside,far=self.block(list(range(ng)),coarse,wt) + strips={};sums={} + for i,g in enumerate(groups): + other=[j for j in range(ng) if j!=i] + for a in g: + carry=self.total([weights[u] for u in g if u!=a]) + vals=[self.total([e(u,v) for u in g if u!=a for v in groups[j]]) for j in other] + st,one,_=self.vector([carry]+vals,False) + strips[a]={j:z for j,z in zip(other,one[1:])};sums[a]=st + out={};single={a:self.add(outside[i],sums[a]) for i,g in enumerate(groups) for a in g} + for i,g in enumerate(groups): + for a,b in combinations(g,2):out[a,b]=outside[i] + for i,j in combinations(range(ng),2): + for a in groups[i]: + left=self.add(far[i,j],strips[a][j]) + for b in groups[j]: + cross=self.total([e(u,v) for u in groups[i] if u!=a for v in groups[j] if v!=b]) + out[a,b]=self.add(left,self.add(strips[b][i],cross)) + return total,single,out +if __name__=='__main__': + for n in (15,25,45,49): + c=PairedExclusionCircuit(n);print(n,c.verify(),flush=True) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py new file mode 100644 index 0000000000..a2f0190704 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py @@ -0,0 +1,163 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Merge equal sums across the common-point circuits, with exact certificates. + +Supports are represented by their provenance in the small pair circuit, not +by half a million dense global bit vectors. A sum that occurs in two distinct +common-point groups must be a pair-star; its fixed pair and union of vertices +identify its support exactly. +""" +from functools import lru_cache +from hashlib import sha256 +from itertools import combinations +import json + +from exclusion_circuit import ExclusionCircuit + + +class SharedPointCircuit: + def __init__(self,h,circuit=None,point_order=None): + assert h>=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1<3 and choice: + k={1:0,2:(len(groups)-1)//2,3:len(groups)-1}[choice] + if len(groups[k])==2:groups[k:k+1]=[[x] for x in groups[k]] + assert all(len(g) in (1,2) for g in groups) and len(groups) 1 and W > 0, 'positive arity and role volume required') + degree, bits = halving_degree(m, child), W.bit_length() + require(integer(data['halving_degree']) == degree, name + ' stale halving degree') + require(integer(data['wire_bits']) == bits, name + ' stale role logarithm') + result[name] = dict(m=m, W=W, maxchild=child, + halving_degree=degree, wire_bits=bits) + phase = finite_bridge['complex'] + s, scalar = (integer(phase[k]) for k in ('s', 'scalar_group_upper')) + m, W, child = (result['complex'][k] for k in ('m', 'W', 'maxchild')) + require(0 < s < m*W and scalar > 0, 'invalid complex rank/scalar bound') + E = 64*(W+m+scalar+1)**3 + B = s+E + literal = 2*scalar*W**2+8*s+4*W+4+32*m + C0 = 32*m*B**2 + semantic = dict(E=E, B=B, C0=C0, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-child)-(s+E)) + require(E > literal and semantic['induction_gap'] >= 0 and C0 > 2*B+18, + 'semantic completed-child bound failed') + for key, value in semantic.items(): + require(rational(finite_bridge['semantic'][key]) == value, + 'stale semantic constant: '+key) + result['complex'].update(s=s, scalar_group_upper=scalar) + result['semantic'] = semantic + rows = finite_bridge['rows'] + coefficient = sum(result[name]['halving_degree']*result[name]['wire_bits'] + for name in ('bit', 'complex')) + degree = integer(rows['degree']) + gap = degree-Q(51,25)*coefficient + require(degree > 0 and gap > 0, 'insufficient product row degree') + expected = dict(coefficient=coefficient, degree=degree, + degree_gap=gap, suffix_slope=4*degree) + for key, value in expected.items(): + require(rational(rows[key]) == value, 'stale product row constant: '+key) + result['rows'] = expected + return result + + +def assembly(finite_bridge, a_bit, kappa, beta=Q(1,20), h=Q(1,10**12), + a_complex=Q(717,10**7), *, original_prefix=False, + old_guard=False, old_exposures=False): + """Return 47 strict slacks and seven margins, or raise InvalidAssembly. + + The three keyword switches are negative controls: they impose the old + prefix, nonlinear guard, or old separate movement charges at these SAME + balanced parameters. They do not silently optimize an alternative family. + """ + f = validate_bridge(finite_bridge) + a, b, kappa, beta, h = map(rational, (a_bit,a_complex,kappa,beta,h)) + require(0 < h < Q(1,2) and kappa > 0, 'positive backoff and saving required') + tau, sigma = 1-a, 1-b + q = a*(1-2*h) + require(1+q != 0, 'undefined balanced epsilon') + lp, c, eps = 1-q, q+h/4, (1-h)/(1+q) + lam = (tau+lp)/2 + G = eps*q + r, delta = (G+1-eps)/2, h/8 + C1 = Q(19991,10000) if old_guard else Q(1) + margins = dict(g1=1-eps, g2=a, g3=G, g4=a, + g5=min(1-eps-delta,r-delta), g6=1-eps-delta, g7=eps) + if original_prefix: + margins['g1'] = 1-eps*(1+c) + if old_exposures: + margins.update(g2=eps*c*a, g4=a*(1-eps)) + internal = tau+(1-beta)*max(sigma-tau,Q(0)) + leaf = sigma+beta*(1-sigma) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=eps, epsilon_below_one=1-eps, guard_width=1-eps*C1, + K_geometry=1-eps*(1+c), K_dominates_log=eps*c, + record_suffix=1-eps, phase_local=1-eps-delta, phase_boundary=r-delta, + gamma_sublinear=1-eps-r, cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=eps-a, + small_field_exposure=1-eps-G, artificial_boundary=8-eps+r-delta-G, + literal_scalar_guard=Q(f['semantic']['strict_literal_gap']), + row_product_gap=f['rows']['degree_gap']) + slacks.update({name+'_above_kappa': value-kappa for name,value in margins.items()}) + require(len(slacks) == 47 and len(margins) == 7, 'constraint list incomplete') + failed = {name:str(value) for name,value in slacks.items() if value <= 0} + require(not failed, str(failed)) + require(min(margins.values()) == G, 'unexpected controlling margin') + require(1-eps-G == h and 1-eps-r == h/2, 'balanced identities failed') + require(1-eps*(1+c) == h-eps*h/4, 'geometric identity failed') + parameters = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta,h=h, + q=q,c=c,epsilon=eps,lambda_=lam,lambda_prime=lp,alpha_squared_power=r, + delta=delta,C0=f['semantic']['C0'],C1=C1,kappa=kappa) + return dict(parameters=parameters,constraints=slacks,margins=margins, + minimum_margin=G,absorption_gap=G-kappa,scoped_limit=a/(1+a), + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c),finite_bridge=f) + + +def cutoffs(finite_bridge, result): + """PR34 sufficient numeric comparisons, retaining its all-interval padding. + + These are eventual arithmetic thresholds, not practical running times or + substitutes for additional native setup / prime / recovery thresholds. + """ + f = validate_bridge(finite_bridge) + p = result['parameters'] + e,c,r,beta = (p[k] for k in ('epsilon','c','alpha_squared_power','beta')) + ka,km,kb,ks = (ceil(1/x) for x in (r,e*c,1-e,e*beta)) + C0 = f['semantic']['C0'] + largest = max(f['bit']['m'],f['complex']['m']) + cuts = dict(guard=ceil(Q((2*C0).bit_length())/(1-e)), + normalization=ceil(7/(1-e-r)), alpha=16*ka*ka+1, compact=64*km*km+1, + geometry=ceil(3/(1-e*(1+c))),phase_cell=ceil(9/(e-(1-r)/2)), + period=128*kb*kb+1,stopped_leaf=ks*(4*largest).bit_length(),log_p=25,reservoir=14) + common = max(cuts.values()) + require(common >= max(2*ka,2*km,2*kb,25), 'cutoff does not cover monotone regime') + checkpoints=[] + for j in range(6): + z=common*2**j + powers=dict(alpha=(z//ka,8*(z+ka)+64),compact=(z//km,32*(z+km)+192), + period=(z//kb,16*(z+kb)+56), + rows=(z//kb,f['rows']['suffix_slope']*(z+kb+8)), + leaf=(z//ks,4*largest)) + require(all(lhs >= rhs.bit_length() for lhs,rhs in powers.values()), + 'compressed-power threshold failed') + checkpoints.append(dict(log2_input=z,powers={name:dict(exponent=lhs,rhs=rhs, + rhs_bits=rhs.bit_length()) for name,(lhs,rhs) in powers.items()})) + return dict(cutoff_log2_input=cuts,common_cutoff=common,power_checkpoints=checkpoints, + all_interval_argument='For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). ' + 'Successive intervals double LHS; the positive affine RHS grows at most ' + 'linearly, so 2^j >= j+1 proves persistence.', + additional_eventual_conditions=['BHP prime threshold and distinct-prime packing', + 'Fixed rational basis, eligible common prime and native table setup', + 'Catalogue/descriptor domination, logarithm absorption, exact recovery'], + practical_runtime_claim=False) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json new file mode 100644 index 0000000000..fa4b29c06d --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json @@ -0,0 +1,17916 @@ +{ + "assembly": { + "absorption_gap": "74937627730682908927817/3333470626501666392080330000000000000", + "constraints": { + "K_dominates_log": "13729316916625478716083360791967/333347062650166639208033000000000000", + "K_geometry": "250013729316916639208033/333347062650166639208033000000000000", + "a_below_b": "61024099/2000000000000", + "a_positive": "82375901/2000000000000", + "alpha_below_one": "666666666666333347062650166639208033/666694125300333278416066000000000000", + "alpha_below_one_fourth": "166646072691083388250600666639208033/666694125300333278416066000000000000", + "alpha_positive": "27458633999931353415833360791967/666694125300333278416066000000000000", + "artificial_boundary": "18667545342947664950502062499917624099/2666776501201333113664264000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "999958812049250082375901/1000000000000000000000000", + "c_positive": "41187950749917624099/1000000000000000000000000", + "cell_above_band": "666666666665666652937349833360791967/1333388250600666556832132000000000000", + "compact_leaf": "26927049500082375901/1000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "13729317166639208033/333347062650166639208033", + "epsilon_positive": "333333333333000000000000/333347062650166639208033", + "g1_above_kappa": "3408408254232349301008147/3333470626501666392080330000000000000", + "g2_above_kappa": "4241/2500000000000", + "g3_above_kappa": "74937627730682908927817/3333470626501666392080330000000000000", + "g4_above_kappa": "4241/2500000000000", + "g5_above_kappa": "5299956450675231223831763/13333882506006665568321320000000000000", + "g6_above_kappa": "11966897703678564007992423/13333882506006665568321320000000000000", + "g7_above_kappa": "3333196040161742016173902349301008147/3333470626501666392080330000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "13729317166639208033/333347062650166639208033", + "lambda_above_internal": "82375901/2000000000000000000000000", + "lambda_above_sigma": "61024099000082375901/2000000000000000000000000", + "lambda_above_tau": "82375901/2000000000000000000000000", + "lambda_prime_above_lambda": "82375901/2000000000000000000000000", + "lambda_prime_below_one": "41187950499917624099/1000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "21966907133275670202633360791967/533355300240266622732852800000000000", + "phase_leaf_above_bit": "53854099/2000000000000", + "phase_local": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "prime_interval_packing": "13729317166639208033/333347062650166639208033", + "q_below_internal": "82375901/1000000000000000000000000", + "q_below_leaf": "26927049500082375901/1000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "41187950499917624099/1000000000000000000000000", + "record_suffix": "13729317166639208033/333347062650166639208033", + "row_product_gap": "6548/25", + "short_record_fallback": "666639206901368489075295096355187267/666694125300333278416066000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "13729317166639208033/333347062650166639208033", + "g2": "82375901/2000000000000", + "g3": "13729316833292145382833360791967/333347062650166639208033000000000000", + "g4": "82375901/2000000000000", + "g5": "21966907133275670202633360791967/533355300240266622732852800000000000", + "g6": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "g7": "333333333333000000000000/333347062650166639208033" + }, + "minimum_margin": "13729316833292145382833360791967/333347062650166639208033000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "82375901/2000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "27458633999931353415833360791967/666694125300333278416066000000000000", + "beta": "1/20", + "c": "41187950749917624099/1000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "333333333333000000000000/333347062650166639208033", + "h": "1/1000000000000", + "kappa": "411862541/10000000000000", + "lambda_": "1999917624099000082375901/2000000000000000000000000", + "lambda_prime": "999958812049500082375901/1000000000000000000000000", + "q": "41187950499917624099/1000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "1999917624099/2000000000000" + }, + "recurrence": { + "internal": "1999917624099/2000000000000", + "leaf": "199986377/200000000", + "reservations": "999958812049250082375901/1000000000000000000000000" + }, + "scoped_limit": "82375901/2000082375901" + }, + "bit": { + "counts": { + "L": 2226400, + "N": 4073300, + "W": 177530859, + "axes": [ + { + "copied_blocks": [ + 0, + 295366, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + "fixed": { + "R": 36432, + "blocks": [ + 0, + 295343, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 23 + ], + "crt_disagreements": 0, + "crt_matrices": 5379, + "distinct_matrices": 68025, + "field_prime": 2305843009213693951, + "frames": 33627, + "h": 23, + "loss": 506, + "rank_sum": 838948, + "v": 1771 + }, + "original": { + "R": 36432, + "baseline_R": 42434, + "c": 37098, + "h": 23, + "histogram": [ + 5244, + 41676, + 30595, + 6012, + 15568, + 7215, + 4691, + 1842, + 4185, + 1306, + 3391, + 976, + 3359, + 939, + 3937, + 1398, + 3343, + 1467, + 8640, + 6346, + 0, + 220, + 23, + 23 + ], + "loss": 506, + "matched": 6002, + "orientation_changes": 717, + "q": 5336, + "rank_sum": 838948, + "v": 1771 + } + }, + { + "copied_blocks": [ + 0, + 394005, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + }, + "fixed": { + "R": 48329, + "blocks": [ + 0, + 393980, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 25 + ], + "crt_disagreements": 0, + "crt_matrices": 7186, + "distinct_matrices": 91415, + "field_prime": 2305843009213693951, + "frames": 44621, + "h": 25, + "loss": 600, + "rank_sum": 1209425, + "v": 2300 + }, + "original": { + "R": 48329, + "baseline_R": 56044, + "c": 49119, + "h": 25, + "histogram": [ + 6800, + 54247, + 39973, + 7714, + 20972, + 9090, + 4755, + 2916, + 5934, + 1457, + 3588, + 1332, + 4566, + 1032, + 3588, + 1281, + 4949, + 1932, + 4238, + 1657, + 11304, + 8160, + 0, + 286, + 25, + 25 + ], + "loss": 600, + "matched": 7715, + "orientation_changes": 3214, + "q": 6925, + "rank_sum": 1209425, + "v": 2300 + } + } + ], + "child_multiplicities": { + "1": 1470810555, + "10": 17713956, + "11": 17077983, + "12": 11614448, + "13": 10148060, + "14": 7290333, + "15": 5881721, + "16": 3695640, + "17": 10837991, + "18": 1620511, + "19": 731423, + "2": 109787050, + "20": 524975, + "21": 16346100, + "22": 116886, + "23": 91984475, + "25": 85590659, + "3": 74203405, + "4": 47288874, + "481": 8146600, + "5": 42136207, + "525": 85590659, + "529": 83793600, + "6": 34427343, + "7": 35567660, + "8": 24924065, + "9": 22825959 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 83793600, + "529": 83793600 + }, + "exterior_25": { + "25": 85590659, + "525": 85590659 + }, + "internal_23": { + "1": 679341800, + "10": 8086800, + "11": 7739500, + "12": 5260100, + "13": 4374600, + "14": 2999200, + "15": 2249400, + "16": 1322500, + "17": 883200, + "18": 485300, + "2": 53203600, + "20": 126500, + "21": 52900, + "3": 38686000, + "4": 24453600, + "5": 20499900, + "6": 16304700, + "7": 17574300, + "8": 12323400, + "9": 10731800 + }, + "internal_25": { + "1": 697782855, + "10": 9627156, + "11": 9338483, + "12": 6354348, + "13": 5773460, + "14": 4291133, + "15": 3632321, + "16": 2373140, + "17": 1808191, + "18": 1135211, + "19": 731423, + "2": 56583450, + "20": 398475, + "22": 116886, + "23": 44275, + "3": 35517405, + "4": 22835274, + "5": 21636307, + "6": 18122643, + "7": 17993360, + "8": 12600665, + "9": 12094159 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 102078397025 + }, + "exponent": "1999917624099/2000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "53259257699997876183736668495459569052785792230580620090082251565468500625309917919185182222272809724224279711231586883132969347622582523/53259257700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "82375901/2000000000000", + "strict_gap": "86357381254751862420191545704798752662973008553534107565392680757691400260904026452418824652737693710240154702379980434099259423216638822857814148601254263753449261128928174148567282159375696049922777800392880416655334347910898177298462563939142973301126073080543562257726240755581747563199696454706185011538581049130537795661088578393521117824130621795646880463274069889057323677109569884775881772801092142271729230590294146536649396307431553962131510800493187347962391626149529196354368034923540602827584261314666865682234666101889906754883827341580055378422372738052380207834708917356370987627010158783063063125894233253844345938226133499179262281464327246428498583476060857838740222705374132954626560591512450850356668750508178861378641462227199236700632011495218187888904536056810333037554362038569390969321460209586420356538594375798712535346414221488555689979502778312890748219238773997515630296103388733080327724435692020757582285245414049886745837906270620637509081126350164913074203246001707064231855337207315125811248151826010206143889771624137487832831018986105280880723364301345037770870540726794365290209985707605672563008298333698438513936108259/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000", + "upper": "2165940252601372784296236000020593083647617867462841476279305086888009256377625415940898150796257728944348499946538153344121051225287760019875091065436588571323213837914854091327650301867139439668907881337729538978936109245127232713850526728262779048520241484236058379648589825858960095635345716281532838210892742470454544563413329512341540575399345230160294764208504164645058090672700282213212249184290484446518682525973056622514659633237643672009277869217096639483865484322488173558485118729435839295151900341521849560561667394825750388800070618416176223140977318728500263303812327512540197098237503555469520961476602423236911363430136975060274545307031332276130295751430329335183539439189658880340788133471383927380215760170412939867434297900395752498035130674231798452741356243608657815950087296037913527105015002919210443826497716744881621478142349329099529642920943387319698979249846386671662169038464160435599552782978926172147697357480056718541348895072631523335416188177976414941135950546362600954687550006808395614924186050708131879487056899055922026517731796737367235908268487455800472679267394707376152418619446993501890014292394327436991701666301561486063891741/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000" + }, + "comparison": { + "PR36": "384569/10000000000", + "PR37": "3850771033/100000000000000", + "PR38": "242889/6250000000", + "PR39": "971668963/25000000000000", + "PR40": "1959367447/50000000000000", + "PR41": "1008542031/25000000000000", + "PR42": "4099494519/100000000000000", + "PR43": "409953/10000000000", + "PR44": "2050314627/50000000000000", + "PR46": "82012589/2000000000000", + "PR47": "4105106623/100000000000000", + "dyadic_corollary": "2^-15", + "next_dyadic_not_reached": "2^-14", + "ratio_PR36": "4627669/4321000", + "ratio_PR37": "4118625410/3850771033", + "ratio_PR38": "411862541/388622400", + "ratio_PR39": "2059312705/1943337926", + "ratio_PR40": "89535335/85189889", + "ratio_PR41": "2059312705/2017084062", + "ratio_PR42": "4118625410/4099494519", + "ratio_PR43": "411862541/409953000", + "ratio_PR44": "23138345/23037243", + "ratio_PR46": "411862541/410062945", + "ratio_PR47": "4118625410/4105106623" + }, + "complex": { + "child_width_multiplicities": [ + [ + 1, + 540572760 + ], + [ + 2, + 336785904 + ], + [ + 3, + 161899920 + ], + [ + 4, + 117097344 + ], + [ + 5, + 93051504 + ], + [ + 6, + 64779624 + ], + [ + 7, + 52822224 + ], + [ + 8, + 70243992 + ], + [ + 9, + 32150664 + ], + [ + 10, + 50699376 + ], + [ + 11, + 22728888 + ], + [ + 12, + 47580624 + ], + [ + 13, + 26208000 + ], + [ + 14, + 44907408 + ], + [ + 15, + 24714144 + ], + [ + 16, + 49192416 + ], + [ + 17, + 20815704 + ], + [ + 18, + 52501176 + ], + [ + 19, + 22624056 + ], + [ + 20, + 46348848 + ], + [ + 21, + 37759176 + ], + [ + 22, + 58961448 + ], + [ + 23, + 40773096 + ], + [ + 24, + 38781288 + ], + [ + 25, + 2208024 + ], + [ + 26, + 3741192 + ], + [ + 27, + 43112160 + ], + [ + 729, + 21464352 + ], + [ + 756, + 516232080 + ] + ], + "counts": { + "B1": 258116040, + "B2": 258116040, + "L": 4953312, + "N": 10732176, + "W": 537696432, + "child_multiplicities": { + "1": 540572760, + "10": 50699376, + "11": 22728888, + "12": 47580624, + "13": 26208000, + "14": 44907408, + "15": 24714144, + "16": 49192416, + "17": 20815704, + "18": 52501176, + "19": 22624056, + "2": 336785904, + "20": 46348848, + "21": 37759176, + "22": 58961448, + "23": 40773096, + "24": 38781288, + "25": 2208024, + "26": 3741192, + "27": 43112160, + "3": 161899920, + "4": 117097344, + "5": 93051504, + "6": 64779624, + "7": 52822224, + "729": 21464352, + "756": 516232080, + "8": 70243992, + "9": 32150664 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + }, + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + } + ], + "deficit": 5778864, + "dimensions": [ + 28, + 28 + ], + "m": 784, + "maxchild": 756, + "total_rank": 421548223824 + }, + "enclosure": "1+u+u^2/(2(1-u/3))", + "exponent": "9999283/10000000", + "logarithm_upper_bounds": { + "1": "6664409020351/1000000000000", + "10": "4361823927357/1000000000000", + "11": "4266513747553/1000000000000", + "12": "4179502370563/1000000000000", + "13": "4099459662889/1000000000000", + "14": "251584480671/62500000000", + "15": "3956358819249/1000000000000", + "16": "3891820298111/1000000000000", + "17": "766239135259/200000000000", + "18": "754807452491/200000000000", + "19": "116249063787/31250000000", + "2": "5971261839791/1000000000000", + "20": "3668676746797/1000000000000", + "21": "3619886582627/1000000000000", + "22": "3573366566993/1000000000000", + "23": "1764457402211/500000000000", + "24": "3486355190003/1000000000000", + "25": "3445533195483/1000000000000", + "26": "3406312482329/1000000000000", + "27": "3368572154347/1000000000000", + "3": "5565796731683/1000000000000", + "4": "5278114659231/1000000000000", + "5": "5054971107917/1000000000000", + "6": "4872649551123/1000000000000", + "7": "2303954527/488281250", + "729": "36367644171/500000000000", + "756": "36367644171/1000000000000", + "8": "4584967478671/1000000000000", + "9": "893436888603/200000000000" + }, + "moment_upper": "93758349669268174319758205865410416369669365194946428036263324886438920093698460010858713501882394775456058947688857504496378147740660153782705622445171968788940999158190850771009870660961702451316489933657453673410640256343163004633261783258126014322372415015196690665271304600343211202483869148840537844645971747977878306709988702092424295624899718047484041316483866997928443286860331217210569026228462754909148637641705274404842932443778349005557711550186032457951943018925944743009981965944635321901441335715694527157550303349516161701526749290641/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000", + "saving": "717/10000000", + "strict_gap": "799473866277846996709566868461626852274119892073214726922559004722049349860610885265197736074614901241077938822464125203618856630115942991121576126038522365700920238764631890201019076228268900099948049068998325124717427528599065415563911051089321775180102241577945383026678416698968257186466124918166171990724170465498339188718920943864567240237109440116392647851672422772615476546648773879307167872400514966177486129179086589485432748351924928772206631719941743038644792509730653397329958725804455602353626204716908969469523838298473250709359/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000" + }, + "controls": { + "PR40_bit_at_new_lower": "225818511431434901143450129613675250367060741840259317558179152603547745091720641143418160534936518333388387416533785674009254042754668107/225818314800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR41_bit_at_new_lower": "71351390501120105382667951093623831543963199017523832465221628611249289862638259523399377589566608499665993308315735243596852498486401143/71351363600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR42_bit_at_new_lower": "35675684798200343049340019110122720910157671615408029067001840793135754771116659125262690868038927797668077298780777541247295863817121613/35675681800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR43_bit_at_new_lower": "39385956009599315979378903721423208346195507187143417888392878949339863777130231502525440065262077654352230783095147155214119706814579573/39385952707200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR44_bit_at_new_lower": "27972979985809926698189510242186111721799641298372934454141074653606330355033987247203097142447598338739628213358928631749381262069447381/27972977775000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR46_bit_at_new_lower": "53513526929327323279826583353483061995125044145882592243457696059568495005255560229136252301198123695755265918459690181269467077912590743/53513522700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR47_bit_at_new_lower": "106900961147318756414776323709299143180165013078166700653729842113479441057835447594482895468854894319066737732648871855706927505431906281/106900954800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "old_bit_at_new_lower": "28227323527781237813430958008983158845436241200945201577976121288826000958450463883474541742600969253008151638715984357964612558619308229/28227289350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 9432294401, + "compact": 37729177601, + "geometry": 3999945085748, + "guard": 5390148, + "log_p": 25, + "normalization": 14000000000000, + "period": 75458355201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 576606260, + "rhs": 112000000194304, + "rhs_bits": 47 + }, + "compact": { + "exponent": 576606260, + "rhs": 448000000777152, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 576606260, + "rhs": 224000000388536, + "rhs_bits": 48 + }, + "rows": { + "exponent": 576606260, + "rhs": 112000000194304000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1153212520, + "rhs": 224000000194304, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1153212520, + "rhs": 896000000777152, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1153212520, + "rhs": 448000000388536, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1153212520, + "rhs": 224000000194304000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2306425041, + "rhs": 448000000194304, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2306425041, + "rhs": 1792000000777152, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2306425041, + "rhs": 896000000388536, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2306425041, + "rhs": 448000000194304000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 4612850082, + "rhs": 896000000194304, + "rhs_bits": 50 + }, + "compact": { + "exponent": 4612850082, + "rhs": 3584000000777152, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 4612850082, + "rhs": 1792000000388536, + "rhs_bits": 51 + }, + "rows": { + "exponent": 4612850082, + "rhs": 896000000194304000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 9225700164, + "rhs": 1792000000194304, + "rhs_bits": 51 + }, + "compact": { + "exponent": 9225700164, + "rhs": 7168000000777152, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 9225700164, + "rhs": 3584000000388536, + "rhs_bits": 52 + }, + "rows": { + "exponent": 9225700164, + "rhs": 1792000000194304000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 18451400329, + "rhs": 3584000000194304, + "rhs_bits": 52 + }, + "compact": { + "exponent": 18451400329, + "rhs": 14336000000777152, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 18451400329, + "rhs": 7168000000388536, + "rhs_bits": 53 + }, + "rows": { + "exponent": 18451400329, + "rhs": 3584000000194304000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "geometry": { + "accepted_profile": { + "blocks": [ + 21, + 17, + 481 + ], + "singletons": 9 + }, + "column_tree": [ + [ + 0, + 26 + ], + [ + 1, + 27 + ], + [ + 2, + 28 + ], + [ + 3, + 29 + ], + [ + 4, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 32 + ], + [ + 7, + 33 + ], + [ + 8, + 34 + ], + [ + 9, + 35 + ], + [ + 10, + 36 + ], + [ + 11, + 37 + ], + [ + 12, + 38 + ], + [ + 13, + 39 + ], + [ + 14, + 40 + ], + [ + 15, + 41 + ], + [ + 16, + 42 + ], + [ + 17, + 43 + ], + [ + 18, + 44 + ], + [ + 19, + 45 + ], + [ + 20, + 46 + ], + [ + 21, + 47 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 0, + 25 + ], + [ + 1, + 26 + ], + [ + 2, + 27 + ], + [ + 3, + 28 + ], + [ + 4, + 29 + ], + [ + 5, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 32 + ], + [ + 8, + 33 + ], + [ + 9, + 34 + ], + [ + 10, + 35 + ], + [ + 11, + 36 + ], + [ + 12, + 37 + ], + [ + 13, + 38 + ], + [ + 14, + 39 + ], + [ + 15, + 40 + ], + [ + 16, + 41 + ], + [ + 17, + 42 + ], + [ + 18, + 43 + ], + [ + 19, + 44 + ], + [ + 20, + 45 + ], + [ + 21, + 46 + ], + [ + 22, + 47 + ] + ], + "dimensions": [ + 23, + 25 + ], + "fallback_profile": { + "blocks": [ + 481 + ], + "singletons": 47 + }, + "inherited": { + "actual_local_and_auxiliary_contractions": true, + "actual_null_corner": true, + "author_witness": { + "nu_denominator": 105625, + "nu_numerators": [ + 1, + 8, + 27, + 64, + 125, + 216, + 343, + 512, + 729, + 1000, + 1331, + 1728, + 2197, + 2744, + 3375, + 4096, + 4913, + 5832, + 6859, + 8000, + 9261, + 10648, + 12167, + 13824, + 15625 + ], + "p": "all ones", + "pivot_values": [ + "-1", + "1081", + "4324/9", + "1081/4", + "4324/25", + "1081/9", + "4324/49", + "1081/16", + "4324/81", + "1081/25", + "4324/121", + "1081/36", + "4324/169", + "1081/49", + "4324/225", + "1081/64", + "4324/289", + "1081/81", + "4324/361", + "1081/100", + "4324/441", + "1081/121", + "142812651751657877942589556478847433551977787425536169375/19268941635246593353904372229207380456680824753881088", + "-3301880224346962861941006006629802656529005188895982595479857959591861547197179585193848574930840744013899375/11019785351154517046629105770544670194180926949645355094282023563638938723955445008552317770143413305344", + "74907043800035918709206033348544416861478577835267509060516462595758002954160059826338653120940771668514812472/60116162482420807682130286875371919099299138623504462366497186337585098720021476289373665451631146909675", + "10940299784531588304345150315393704447900044902431187377875452629639845445581682724600127025820276398750/30226196505888073803577264188652004854088012439298071298271200975120006873557454163131322338706864804567", + "-5831395627680712592570933775404123356087221102691725998080707457029019970438674252017627955200000/622802236364140798653392176212549886737354011381551974831022707159458930937546871107955711994323", + "-14843046800460539712231070321073001452509820092416000/38851899814728176802610554213615671238028162148034359", + "845", + "105625/216", + "105625/343", + "105625/512", + "105625/729", + "845/8", + "105625/1331", + "105625/1728", + "625/13", + "105625/2744", + "845/27", + "105625/4096", + "105625/4913", + "105625/5832", + "105625/6859", + "845/64", + "105625/9261", + "230987404375/5999554", + "-228361250/22253" + ], + "v": "all ones", + "xi_denominator": 4324, + "xi_numerators": [ + 1, + 4, + 9, + 16, + 25, + 36, + 49, + 64, + 81, + 100, + 121, + 144, + 169, + 196, + 225, + 256, + 289, + 324, + 361, + 400, + 441, + 484, + 529 + ] + }, + "both_trees": true, + "columns": [ + [ + 0, + 3 + ], + [ + 1, + 4 + ], + [ + 2, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 14 + ], + [ + 12, + 15 + ], + [ + 13, + 16 + ], + [ + 14, + 17 + ], + [ + 15, + 18 + ], + [ + 16, + 19 + ], + [ + 17, + 20 + ], + [ + 18, + 21 + ], + [ + 19, + 22 + ], + [ + 20, + 23 + ], + [ + 21, + 24 + ], + [ + 22, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 14 + ], + [ + 13, + 15 + ], + [ + 14, + 16 + ], + [ + 15, + 17 + ], + [ + 16, + 18 + ], + [ + 17, + 19 + ], + [ + 18, + 20 + ], + [ + 19, + 21 + ], + [ + 20, + 22 + ], + [ + 21, + 23 + ], + [ + 22, + 24 + ] + ], + "cuts": [ + { + "pivot": 46, + "row": 0, + "trivial_suffix_bound": 0 + }, + { + "left_rank": 1, + "pivot": 25, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 1, + "selected": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 26, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 2, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 27, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 3, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 28, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 4, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 29, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 5, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 30, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 6, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 31, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 7, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 32, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 8, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 33, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 9, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 34, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 10, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 35, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 11, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 36, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 12, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 37, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 13, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 38, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 14, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 39, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 15, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 40, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 16, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 41, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 17, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 42, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 18, + "selected": [ + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 43, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 19, + "selected": [ + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 44, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 20, + "selected": [ + 21, + 22, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 45, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 21, + "selected": [ + 22, + 45, + 46, + 47, + 48 + ] + }, + { + "pivot": 24, + "row": 22, + "trivial_suffix_bound": 22 + }, + { + "pivot": 23, + "row": 23, + "trivial_suffix_bound": 23 + }, + { + "pivot": 22, + "row": 24, + "trivial_suffix_bound": 24 + }, + { + "pivot": 21, + "row": 25, + "trivial_suffix_bound": 25 + }, + { + "pivot": 20, + "row": 26, + "trivial_suffix_bound": 26 + }, + { + "pivot": 19, + "row": 27, + "trivial_suffix_bound": 27 + }, + { + "left_rank": 22, + "pivot": 2, + "preceding_right_pivots": 28, + "right_rank": 6, + "row": 28, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 21, + "pivot": 3, + "preceding_right_pivots": 28, + "right_rank": 7, + "row": 29, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 20, + "pivot": 4, + "preceding_right_pivots": 28, + "right_rank": 8, + "row": 30, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 19, + "pivot": 5, + "preceding_right_pivots": 28, + "right_rank": 9, + "row": 31, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 18, + "pivot": 6, + "preceding_right_pivots": 28, + "right_rank": 10, + "row": 32, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 17, + "pivot": 7, + "preceding_right_pivots": 28, + "right_rank": 11, + "row": 33, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 16, + "pivot": 8, + "preceding_right_pivots": 28, + "right_rank": 12, + "row": 34, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 15, + "pivot": 9, + "preceding_right_pivots": 28, + "right_rank": 13, + "row": 35, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 14, + "pivot": 10, + "preceding_right_pivots": 28, + "right_rank": 14, + "row": 36, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 13, + "pivot": 11, + "preceding_right_pivots": 28, + "right_rank": 15, + "row": 37, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 12, + "pivot": 12, + "preceding_right_pivots": 28, + "right_rank": 16, + "row": 38, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 11, + "pivot": 13, + "preceding_right_pivots": 28, + "right_rank": 17, + "row": 39, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 10, + "pivot": 14, + "preceding_right_pivots": 28, + "right_rank": 18, + "row": 40, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 9, + "pivot": 15, + "preceding_right_pivots": 28, + "right_rank": 19, + "row": 41, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 8, + "pivot": 16, + "preceding_right_pivots": 28, + "right_rank": 20, + "row": 42, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 7, + "pivot": 17, + "preceding_right_pivots": 28, + "right_rank": 21, + "row": 43, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 6, + "pivot": 18, + "preceding_right_pivots": 28, + "right_rank": 22, + "row": 44, + "selected": [ + 19, + 20, + 21, + 22, + 44, + 45, + 46, + 47 + ] + }, + { + "pivot": 1, + "row": 45, + "trivial_suffix_bound": 45 + }, + { + "pivot": 0, + "row": 46, + "trivial_suffix_bound": 46 + } + ], + "d": 47, + "dimensions": [ + 23, + 25 + ], + "m": 575, + "negative_controls": [ + "incorrect_unshifted_auxiliary_formula", + "old_25_23_data_residue_offset" + ], + "permutations": [ + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 2, + 3, + 1, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 3, + 4, + 2, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0, + 1 + ], + [ + 4, + 5, + 0, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 1, + 2 + ], + [ + 5, + 6, + 0, + 1, + 4, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 2, + 3 + ], + [ + 6, + 7, + 0, + 1, + 2, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 3, + 4 + ], + [ + 7, + 8, + 0, + 1, + 2, + 3, + 6, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 4, + 5 + ], + [ + 8, + 9, + 0, + 1, + 2, + 3, + 4, + 7, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 5, + 6 + ], + [ + 9, + 10, + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 6, + 7 + ], + [ + 10, + 11, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 9, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 7, + 8 + ], + [ + 11, + 12, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 8, + 9 + ], + [ + 12, + 13, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 11, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 9, + 10 + ], + [ + 13, + 14, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 12, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 10, + 11 + ], + [ + 14, + 15, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 11, + 12 + ], + [ + 15, + 16, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 12, + 13 + ], + [ + 16, + 17, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 15, + 18, + 19, + 20, + 21, + 22, + 13, + 14 + ], + [ + 17, + 18, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 16, + 19, + 20, + 21, + 22, + 14, + 15 + ], + [ + 18, + 19, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 17, + 20, + 21, + 22, + 15, + 16 + ], + [ + 19, + 20, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 18, + 21, + 22, + 16, + 17 + ], + [ + 20, + 21, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 19, + 22, + 17, + 18 + ], + [ + 21, + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 20, + 18, + 19 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 21, + 19, + 20 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "physical_blocks": [ + { + "columns": [ + 553, + 573 + ], + "rows": [ + 1, + 21 + ] + }, + { + "columns": [ + 530, + 546 + ], + "rows": [ + 28, + 44 + ] + }, + { + "columns": [ + 47, + 527 + ], + "rows": [ + 47, + 527 + ] + } + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "profile": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 21, + 17, + 481 + ], + "rank": 528, + "rational_controls": [ + { + "degree": 1, + "left_weights": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "ordered_prefix_determinants": [ + "-136/22425", + "-136/1681875", + "-1496/1135265625", + "-1496/58946484375", + "-1496/2652591796875", + "-25432/1790499462890625", + "-483208/1208587137451171875", + "-3382456/271932105926513671875", + "-3382456/7980616152191162109375", + "-3382456/215476636109161376953125", + "-3382456/5386915902729034423828125", + "-98091224/3636168234342098236083984375", + "-3040827944/2454413558180916309356689453125", + "-33449107384/552243050590706169605255126953125", + "-234143751688/74552811829745332896709442138671875", + "-8663318812456/50323147985078099705278873443603515625", + "-112623144561928/11322708296642572433687746524810791015625", + "-4617548927039048/7642828100233736392739228904247283935546875", + "-198554603862679064/5158908967657772065098979510366916656494140625", + "-198554603862679064/77383634514866580976484692655503749847412109375", + "-9332066381545916008/52233953297534942159127167542465031147003173828125", + "-457271252695749884392/35257918475836085957410838091163896024227142333984375", + "-774427803494826766413381910805757663636935962869953/934698078008949744645355209409485648384168738776353571529398323036730289459228515625", + "22488141150263136890277253182027357481046933636363407735902104533297154704/30739301928905317568582693128157367185453821539556669670738239185018288815279232907414552755653858184814453125", + "43781442323389343420444995260351594325182959245296311928874937920867383808/340409306546025553815045379456261214387062690382497934501879019122980309472907060715442639775574207305908203125", + "5223914806424997682784519984030088376145366436712067460675070411721763904/256160849407544313071522442734644726545448512829638913922818659875152406793993607561787939630448818206787109375", + "-2611659069095967460510300272690333032678968481792/134561904785955098423573914776839656121083847689766160464250788209028542041778564453125", + "8147026035721446555641344/421291420783618973406213148627626540264827781356871128082275390625", + "2962554922080526020233216/9689702678023236388342902418435410426091038971208035945892333984375", + "2962554922080526020233216/502184990793017597886518156006112537682878246414475142955780029296875", + "100726867350737884687929344/750766561235561308840344643229138243835902978389640338718891143798828125", + "788039609273419921382035456/224479201809432831343263048325512334906934990538502461276948451995849609375", + "2322643058911132399862841344/22373093780340138857211883816442729379057854057004078640602529048919677734375", + "331806151273018914266120192/96950073048140601714584829871251827309250700913684340775944292545318603515625", + "663612302546037828532240384/5333805218816503343929599000196790531245736561467257692129351198673248291015625", + "7299735328006416113854644224/1476673852246420833180509352832259600780069659146953749950625933706760406494140625", + "846769298048744269207138729984/3973729336395118462088750668471610585699167452764452541117134387604892253875732421875", + "905167180672795598117975883776/91395774737087724628041265374847043471080851413582408445694090914912521839141845703125", + "4496636962051952326134460841984/9109112215463076554594779449026421999284391524220380041754177727852948009967803955078125", + "2861496248578515116631020535808/108944982096938395592953562210356007111441322629675745299379965625121258199214935302734375", + "242000825594068707006509165314048/162872748234922901411465575504482230631604777331365239222573048609556281007826328277587890625", + "111189568516193730246233940819968/1248691069801075577487902745534363768175636626207133500706393372673264821060001850128173828125", + "9117544618327885880191183147237376/1617887396105593589898492657297357322299566522022375972415250346526993453153409063816070556640625", + "181683754955460555222346259299827712/483748331435572483379649304531909839367570390084690415752159853611571042492869310081005096435546875", + "16900814414461446997427559004635136/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625", + "7911019513152166679646942512807936/385708669597963126748040378813442778589076124360859824826388789946292644547647796571254730224609375", + "-494438719572010417477933907050496/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625" + ], + "pivot_values": [ + "-136/22425", + "1/75", + "11/675", + "13/675", + "1/45", + "17/675", + "19/675", + "7/225", + "23/675", + "1/27", + "1/25", + "29/675", + "31/675", + "11/225", + "7/135", + "37/675", + "13/225", + "41/675", + "43/675", + "1/15", + "47/675", + "49/675", + "90780708748082000078232473828014673925846401/1421023343629369829514948334235558745343301400", + "-18222683405075170949504376828173428931220504447233253567507707755072724400/20637750563429036160721040917538741498726591150217622165190926435667742044567", + "1507779263688153408612263867384557457627474361764031150611764443703341024/8576472198888619808919513649778290671980909639378391470707562825836542419", + "498070958903403796923651618375317737393961914724779391180435603668624811/3141206799350319601275549723717828036723904920341731563774509257715293800", + "-279771447951617034403030589935947704264107576270394945571233421944416/293962792978597558680101289617539486952958045283167061487567737754451", + "-7203444964173917251700002130749899185/7229663935460457778827016360402446746516", + "4/253", + "75/3887", + "34/1495", + "133/5083", + "168/5681", + "3/91", + "250/6877", + "297/7475", + "116/2691", + "31/667", + "462/9269", + "175/3289", + "592/10465", + "51/851", + "246/3887", + "817/12259", + "900/12857", + "110/141", + "-3/80" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + }, + { + "degree": 2, + "left_weights": [ + 2, + 5, + 10, + 17, + 26, + 37, + 50, + 65, + 82, + 101, + 122, + 145, + 170, + 197, + 226, + 257, + 290, + 325, + 362, + 401, + 442, + 485, + 530 + ], + "ordered_prefix_determinants": [ + "-9434/672175", + "-481134/14031653125", + "-39934122/292910758984375", + "-4911897006/6114512093798828125", + "-839934388026/127640439958050537109375", + "-190665106081902/2664494184124304962158203125", + "-55483545869833482/55621316093594866085052490234375", + "-20140527150749553966/1161094973453792829525470733642578125", + "-8922253527782052406938/24237857570847925316344201564788818359375", + "-4737716623252269828084078/505965276791450440978685207664966583251953125", + "-2970548322779173182208716906/10562025153021527955430053710006177425384521484375", + "-2171470823951575596194572058286/220482275069324396069602371196378953754901885986328125", + "-1830549904591178227592024245135098/4602567492072146767952949498724410659633576869964599609375", + "-1762819558121304633171119348065099374/96078596397006063781017820785872072519850917160511016845703125", + "-1923236137910343354789691208739023417034/2005640699787501581428747008905079513851887895725667476654052734375", + "-2359810741215991296326951113122781732700718/41867749608064095512325093810893534851658159823273308575153350830078125", + "-3235300526207124067264249976091333755532684378/873989273068337993819786333302402540028364086310830316506326198577880859375", + "-4927362701413449954443452713587101309676278307694/18244526075301555620988039707687653023092100301738582857069559395313262939453125", + "-8292751426478836273328330916967091504185176391849002/380854481821919973588125328897979756857047593798792917141327052377164363861083984375", + "-15349882890412325941930740527306086374246761501312502702/7950337308032579448652116240745327424390868520549802145325202218373306095600128173828125", + "-31114212618865784684293611048849437080598185563160442976954/165963291305180095990612926525558709984159380366477119783663596308542764745652675628662109375", + "-68793524100312249936973174029006105385202588280147739422045294/3464483705995634503804044841221038070919327065150209875483977572940830214065499603748321533203125", + "-320939889277029603849885218613819697637636425903389849074463084765835708779339849991808742586501/3072430179236252823264716186856353699802821337240763732623601650174243307843734253380457949016146823595363457570783793926239013671875", + "1245875627001486003524925840693082579900506702795220917872585680790449852841448300695325314605332716089358256276075666345371933435627513884/330392547940061126524090579005410197690598250921499159106894411964503315752339204942691190056398718416654087768414819695413626236548660752671835449945092477719299495220184326171875", + "-191122033997905806909528288458719256707212395642607937861919035317221617214725016921351463139805611093698337401145528199270922701922964576/594706586292110027743363042209738355843076851658698486392409941536105968354210568896844142101517693149977357983146675451744527225787589354809303809901166459894739091396331787109375", + "-33866419223477871432738970551480649008242390490093325529817983170572951863931838751688060529213753137420036470368457792949569488757290928/66078509588012225304818115801082039538119650184299831821378882392900663150467840988538238011279743683330817553682963939082725247309732150534367089989018495543859899044036865234375", + "-2451948467107434017727241549738357444604312885323666172115751274420393797285211501893659384900192544/6057064308553699886924805654804969362527607504292870424430510150921615686976776716332276924490573394820047692377329440205357968807220458984375", + "2201445419163520268278455908505270834917331925591970045434279936/4344364695505523672609278644785573695044342470968858137422975269751647398042138092932873405516147613525390625", + "2174921980378417614443775716836532632087002625283633056935071744/1258996888757500760322168951258859256823850448086775088225178233174027415952611619331946712918579578399658203125", + "17134141455176314377203403818004879028392727999185694570488492032/1824286491809618601706822810374087063137759299277737102838283259869165725715334236411990787019021809101104736328125", + "5322405414128979339697604701782357685556520034273366808159109472256/71371560419067708554576028810265408171138557065642908674342155975861370687161021331146315560545190237462520599365234375", + "84150277670964347357597811782805646402917843185053363323713849761792/103417391047229109695580665746074576439979769188116574669121784009023126125696319908831011247229980654083192348480224609375", + "209941929859519299593182169602463571438207402585390865199368573632512/17982215955292197593867566159927447351383682266429710003466895803488941170736076105747536235668349036131985485553741455078125", + "9992194826950178895513521609426344693492863070159223080026145583054848/46901215654593109764325386058322768181878920087301969631042357634659856361513833699010724009870187956039444543421268463134765625", + "109124692037889312633170242768407800512682779985170025420240389008621568/22653287161168472016169161466169897031847518402166851331793458737540710622611181676622179696767300782767051714472472667694091796875", + "39042595325895008480908316179632546796986793266219560450777192738694791168/295421517868798043562862034680321627192323487482657908217918495396268407229472420244829845425542369508065121408435516059398651123046875", + "16659792996908940891599834705894687983008977019464080574742639247953487396864/3852592014526995286103283794266074340215090600261341781069875098462736298679549832412826014194498040754677248287407564930617809295654296875", + "185719087731615539433169703171458019662845627539825981673840994844833062649856/1116481165809923233912731643578308343794333255955736848154049803534500979357333541433236978913565532210705466553690712316893041133880615234375", + "2404434310205043887750431957785637991222179334483583349926809748204635878719488/323556241851715753187909630308993758031597777575972538595043633064298383817755260307352076489151291234662444207259568429435603320598602294921875", + "4829699560648966987500346629822372117190741474977131949997377932265212855191994368/12658490849964675411970588466578762795470199852104773627453892056374545670102039049004535288485065966973698804720616095664809108711779117584228515625", + "409191979091683423027137525555454761026956001373085439657248058470213276862343544832/18342153241598814671945382688072627290636319585699816986180689589686716675977854582007571633014860586144889568040172722618308398523367941379547119140625", + "117504128978824269807125367332426910092554903191363109541085885621682345120306569674752/79733340141230047378946578545051710832396081239037104438927457646368157390475733867986913888715598967971834952270630825221786608381080441176891326904296875", + "22712493937014142339480551855454264061522417545964702228013743152091221605814355635994624/207960497756356209573768466161203872193055459087656575797610595033257428105838809074483468804548025228264139922512259318343463831979534006677567958831787109375", + "36253494918503860818960749547346891617571239037583841836048200658393801525761456698032128/4017796816652801968965206766234458810769831469573525044409836696042533511004805791319020617303867847410063183302936850030395721233844597009010612964630126953125", + "43301406973409151493893899756139666472465275529414446039832672779972669229865905878782181376/52396088285969190477275261438463577351249372194708340104148680353090679517013672324591347870259740598074633973453599461246390600610567389594507403671741485595703125", + "554988883545755027968047998507518444029367563360357849952925447551814126412537914860601344/5346539621017264334415843003924854831760140019868197969811089831948028522144252278019525292883646999803534078923836679719019449041894631591276265680789947509765625", + "-32310996644787107792660328680232238179791947181938641949314152768427534756894330659692544/87326813809948650795458769064105962252082286991180566840247800588484465861689453874318913117099567663457723289089332435410651001017612315990845672786235809326171875" + ], + "pivot_values": [ + "-9434/672175", + "51/20875", + "83/20875", + "123/20875", + "171/20875", + "227/20875", + "291/20875", + "363/20875", + "443/20875", + "531/20875", + "627/20875", + "731/20875", + "843/20875", + "963/20875", + "1091/20875", + "1227/20875", + "1371/20875", + "1523/20875", + "1683/20875", + "1851/20875", + "2027/20875", + "2211/20875", + "7364264693087061471645133239325113464318947332450318677985803365344435086883928283287/1399899145438201838550668546301643374764987111921828690592232299085948881442256498995830", + "-1210951777731703669691036352292953792524111331980891992800227130351123452472151452796669369975246604029157358069355455022522387772275100/33544712846985983089282237094201319680739975881928986568756767766484387589009805209852654469240424774578668316635040936193829465841865738629", + "-826652396184713697705572181914875677799361572848650250267815896700785541586180869036987297317498317879318068344055052765012641444303480/9699723739630946394225201181866559878118131769166944862329819314112498854301933136901321653501725298273550438135537194730404326055923551", + "1243707045322602512301081865587769476211813321843539571098949894460226246880045655012374097256821579930715578414980577693682368441991/779860751117654431797709605580071394150341106460990802139448959151684473194510253808478582374998413093696290890617974306615699475758", + "12643111167595480352640007527254011647390963772039223157364200341282508663461620715678931690444819848574010438266842033543946234/16007143716264495569984450694206590681902947627881894681891834877282600961170259533989395951668939340395582563226129421904093703", + "-36805546261487763107273876367617172536163293857447402763620390901622045709208640/29402264143559069033185372711699522165505155634755438669527959728477744344281439641", + "410/120267", + "323/59409", + "5902/743337", + "3589/328923", + "6050/421659", + "28795/1577961", + "4838/213969", + "21109/769419", + "89182/2725569", + "40745/1059219", + "18190/407169", + "214927/4186161", + "92434/1580859", + "117449/1777923", + "441670/5959737", + "60775/735609", + "223354/2438667", + "296891/2363680", + "-51/14308" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 11, + 27, + 51, + 83, + 123, + 171, + 227, + 291, + 363, + 443, + 531, + 627, + 731, + 843, + 963, + 1091, + 1227, + 1371, + 1523, + 1683, + 1851, + 2027, + 2211, + 2403 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + } + ], + "rows": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 14 + ], + [ + 15, + 15 + ], + [ + 16, + 16 + ], + [ + 17, + 17 + ], + [ + 18, + 18 + ], + [ + 19, + 19 + ], + [ + 20, + 20 + ], + [ + 21, + 21 + ], + [ + 22, + 22 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 1, + 0 + ], + [ + 2, + 1 + ], + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 14 + ], + [ + 16, + 15 + ], + [ + 17, + 16 + ], + [ + 18, + 17 + ], + [ + 19, + 18 + ], + [ + 20, + 19 + ], + [ + 21, + 20 + ], + [ + 22, + 21 + ] + ], + "source_sha256": { + "certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65" + }, + "status": "PASS EXACT REVERSED23/25 GEOMETRY; PR36 PHYSICAL INTEGRATION SEPARATE" + }, + "line_coordinates": { + "23": { + "dual": [ + "-5/72", + "31/72" + ], + "primal": [ + "3", + "4" + ] + }, + "25": { + "dual": [ + "-5/78", + "17/39" + ], + "primal": [ + "3", + "4" + ] + } + }, + "modular": { + "dimensions": [ + 23, + 25 + ], + "exact_recovery": [ + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 9, + 10, + 14, + 18, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 11, + 12, + 6, + 8, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 15, + 18, + 6, + 13, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 1, + 15, + 17, + 12, + 13, + 18 + ], + "pivots": [ + "-1", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 2, + 11, + 18, + 4, + 7, + 22 + ], + "pivots": [ + "-1", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "39/68", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 7, + 22, + 6, + 11, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 11, + 20, + 2, + 17, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "39/68", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 5, + 7, + 21, + 6, + 11, + 12 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 10, + 11, + 22, + 14, + 16, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 12, + 13, + 22, + 4, + 6, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + } + ], + "fallback": 0, + "fallback_pairs": [ + [ + 0, + 9, + 10, + 14, + 18, + 20, + 26 + ], + [ + 0, + 11, + 12, + 6, + 8, + 10, + 25 + ], + [ + 0, + 15, + 18, + 6, + 13, + 18, + 25 + ], + [ + 1, + 15, + 17, + 12, + 13, + 18, + 24 + ], + [ + 2, + 11, + 18, + 4, + 7, + 22, + 25 + ], + [ + 4, + 7, + 22, + 6, + 11, + 18, + 25 + ], + [ + 4, + 11, + 20, + 2, + 17, + 20, + 25 + ], + [ + 5, + 7, + 21, + 6, + 11, + 12, + 24 + ], + [ + 10, + 11, + 22, + 14, + 16, + 18, + 25 + ], + [ + 12, + 13, + 22, + 4, + 6, + 10, + 26 + ] + ], + "good": 4073300, + "nonzero_pivots": 191444880, + "ordered_zero_checks": 1409360440, + "pairs": 4073300, + "primary_fallback": 10, + "primary_good": 4073290, + "prime": 1000003, + "records": [ + [ + 0, + 1, + 2, + 2300, + 428310 + ], + [ + 0, + 1, + 3, + 2300, + 428310 + ], + [ + 0, + 1, + 4, + 2300, + 428310 + ], + [ + 0, + 1, + 5, + 2300, + 428310 + ], + [ + 0, + 1, + 6, + 2300, + 428310 + ], + [ + 0, + 1, + 7, + 2300, + 428310 + ], + [ + 0, + 1, + 8, + 2300, + 428310 + ], + [ + 0, + 1, + 9, + 2300, + 428310 + ], + [ + 0, + 1, + 10, + 2300, + 428310 + ], + [ + 0, + 1, + 11, + 2300, + 428310 + ], + [ + 0, + 1, + 12, + 2300, + 428310 + ], + [ + 0, + 1, + 13, + 2300, + 428310 + ], + [ + 0, + 1, + 14, + 2300, + 428310 + ], + [ + 0, + 1, + 15, + 2300, + 428310 + ], + [ + 0, + 1, + 16, + 2300, + 428310 + ], + [ + 0, + 1, + 17, + 2300, + 428310 + ], + [ + 0, + 1, + 18, + 2300, + 428310 + ], + [ + 0, + 1, + 19, + 2300, + 428310 + ], + [ + 0, + 1, + 20, + 2300, + 428310 + ], + [ + 0, + 1, + 21, + 2300, + 428310 + ], + [ + 0, + 1, + 22, + 2300, + 428310 + ], + [ + 0, + 2, + 3, + 2300, + 428310 + ], + [ + 0, + 2, + 4, + 2300, + 428310 + ], + [ + 0, + 2, + 5, + 2300, + 428310 + ], + [ + 0, + 2, + 6, + 2300, + 428310 + ], + [ + 0, + 2, + 7, + 2300, + 428310 + ], + [ + 0, + 2, + 8, + 2300, + 428310 + ], + [ + 0, + 2, + 9, + 2300, + 428310 + ], + [ + 0, + 2, + 10, + 2300, + 428310 + ], + [ + 0, + 2, + 11, + 2300, + 428310 + ], + [ + 0, + 2, + 12, + 2300, + 428310 + ], + [ + 0, + 2, + 13, + 2300, + 428310 + ], + [ + 0, + 2, + 14, + 2300, + 428310 + ], + [ + 0, + 2, + 15, + 2300, + 428310 + ], + [ + 0, + 2, + 16, + 2300, + 428310 + ], + [ + 0, + 2, + 17, + 2300, + 428310 + ], + [ + 0, + 2, + 18, + 2300, + 428310 + ], + [ + 0, + 2, + 19, + 2300, + 428310 + ], + [ + 0, + 2, + 20, + 2300, + 428310 + ], + [ + 0, + 2, + 21, + 2300, + 428310 + ], + [ + 0, + 2, + 22, + 2300, + 428310 + ], + [ + 0, + 3, + 4, + 2300, + 428310 + ], + [ + 0, + 3, + 5, + 2300, + 428310 + ], + [ + 0, + 3, + 6, + 2300, + 428310 + ], + [ + 0, + 3, + 7, + 2300, + 428310 + ], + [ + 0, + 3, + 8, + 2300, + 428310 + ], + [ + 0, + 3, + 9, + 2300, + 428310 + ], + [ + 0, + 3, + 10, + 2300, + 428310 + ], + [ + 0, + 3, + 11, + 2300, + 428310 + ], + [ + 0, + 3, + 12, + 2300, + 428310 + ], + [ + 0, + 3, + 13, + 2300, + 428310 + ], + [ + 0, + 3, + 14, + 2300, + 428310 + ], + [ + 0, + 3, + 15, + 2300, + 428310 + ], + [ + 0, + 3, + 16, + 2300, + 428310 + ], + [ + 0, + 3, + 17, + 2300, + 428310 + ], + [ + 0, + 3, + 18, + 2300, + 428310 + ], + [ + 0, + 3, + 19, + 2300, + 428310 + ], + [ + 0, + 3, + 20, + 2300, + 428310 + ], + [ + 0, + 3, + 21, + 2300, + 428310 + ], + [ + 0, + 3, + 22, + 2300, + 428310 + ], + [ + 0, + 4, + 5, + 2300, + 428310 + ], + [ + 0, + 4, + 6, + 2300, + 428310 + ], + [ + 0, + 4, + 7, + 2300, + 428310 + ], + [ + 0, + 4, + 8, + 2300, + 428310 + ], + [ + 0, + 4, + 9, + 2300, + 428310 + ], + [ + 0, + 4, + 10, + 2300, + 428310 + ], + [ + 0, + 4, + 11, + 2300, + 428310 + ], + [ + 0, + 4, + 12, + 2300, + 428310 + ], + [ + 0, + 4, + 13, + 2300, + 428310 + ], + [ + 0, + 4, + 14, + 2300, + 428310 + ], + [ + 0, + 4, + 15, + 2300, + 428310 + ], + [ + 0, + 4, + 16, + 2300, + 428310 + ], + [ + 0, + 4, + 17, + 2300, + 428310 + ], + [ + 0, + 4, + 18, + 2300, + 428310 + ], + [ + 0, + 4, + 19, + 2300, + 428310 + ], + [ + 0, + 4, + 20, + 2300, + 428310 + ], + [ + 0, + 4, + 21, + 2300, + 428310 + ], + [ + 0, + 4, + 22, + 2300, + 428310 + ], + [ + 0, + 5, + 6, + 2300, + 428310 + ], + [ + 0, + 5, + 7, + 2300, + 428310 + ], + [ + 0, + 5, + 8, + 2300, + 428310 + ], + [ + 0, + 5, + 9, + 2300, + 428310 + ], + [ + 0, + 5, + 10, + 2300, + 428310 + ], + [ + 0, + 5, + 11, + 2300, + 428310 + ], + [ + 0, + 5, + 12, + 2300, + 428310 + ], + [ + 0, + 5, + 13, + 2300, + 428310 + ], + [ + 0, + 5, + 14, + 2300, + 428310 + ], + [ + 0, + 5, + 15, + 2300, + 428310 + ], + [ + 0, + 5, + 16, + 2300, + 428310 + ], + [ + 0, + 5, + 17, + 2300, + 428310 + ], + [ + 0, + 5, + 18, + 2300, + 428310 + ], + [ + 0, + 5, + 19, + 2300, + 428310 + ], + [ + 0, + 5, + 20, + 2300, + 428310 + ], + [ + 0, + 5, + 21, + 2300, + 428310 + ], + [ + 0, + 5, + 22, + 2300, + 428310 + ], + [ + 0, + 6, + 7, + 2300, + 428310 + ], + [ + 0, + 6, + 8, + 2300, + 428310 + ], + [ + 0, + 6, + 9, + 2300, + 428310 + ], + [ + 0, + 6, + 10, + 2300, + 428310 + ], + [ + 0, + 6, + 11, + 2300, + 428310 + ], + [ + 0, + 6, + 12, + 2300, + 428310 + ], + [ + 0, + 6, + 13, + 2300, + 428310 + ], + [ + 0, + 6, + 14, + 2300, + 428310 + ], + [ + 0, + 6, + 15, + 2300, + 428310 + ], + [ + 0, + 6, + 16, + 2300, + 428310 + ], + [ + 0, + 6, + 17, + 2300, + 428310 + ], + [ + 0, + 6, + 18, + 2300, + 428310 + ], + [ + 0, + 6, + 19, + 2300, + 428310 + ], + [ + 0, + 6, + 20, + 2300, + 428310 + ], + [ + 0, + 6, + 21, + 2300, + 428310 + ], + [ + 0, + 6, + 22, + 2300, + 428310 + ], + [ + 0, + 7, + 8, + 2300, + 428310 + ], + [ + 0, + 7, + 9, + 2300, + 428310 + ], + [ + 0, + 7, + 10, + 2300, + 428310 + ], + [ + 0, + 7, + 11, + 2300, + 428310 + ], + [ + 0, + 7, + 12, + 2300, + 428310 + ], + [ + 0, + 7, + 13, + 2300, + 428310 + ], + [ + 0, + 7, + 14, + 2300, + 428310 + ], + [ + 0, + 7, + 15, + 2300, + 428310 + ], + [ + 0, + 7, + 16, + 2300, + 428310 + ], + [ + 0, + 7, + 17, + 2300, + 428310 + ], + [ + 0, + 7, + 18, + 2300, + 428310 + ], + [ + 0, + 7, + 19, + 2300, + 428310 + ], + [ + 0, + 7, + 20, + 2300, + 428310 + ], + [ + 0, + 7, + 21, + 2300, + 428310 + ], + [ + 0, + 7, + 22, + 2300, + 428310 + ], + [ + 0, + 8, + 9, + 2300, + 428310 + ], + [ + 0, + 8, + 10, + 2300, + 428310 + ], + [ + 0, + 8, + 11, + 2300, + 428310 + ], + [ + 0, + 8, + 12, + 2300, + 428310 + ], + [ + 0, + 8, + 13, + 2300, + 428310 + ], + [ + 0, + 8, + 14, + 2300, + 428310 + ], + [ + 0, + 8, + 15, + 2300, + 428310 + ], + [ + 0, + 8, + 16, + 2300, + 428310 + ], + [ + 0, + 8, + 17, + 2300, + 428310 + ], + [ + 0, + 8, + 18, + 2300, + 428310 + ], + [ + 0, + 8, + 19, + 2300, + 428310 + ], + [ + 0, + 8, + 20, + 2300, + 428310 + ], + [ + 0, + 8, + 21, + 2300, + 428310 + ], + [ + 0, + 8, + 22, + 2300, + 428310 + ], + [ + 0, + 9, + 10, + 2299, + 189775 + ], + [ + 0, + 9, + 11, + 2300, + 428310 + ], + [ + 0, + 9, + 12, + 2300, + 428310 + ], + [ + 0, + 9, + 13, + 2300, + 428310 + ], + [ + 0, + 9, + 14, + 2300, + 428310 + ], + [ + 0, + 9, + 15, + 2300, + 428310 + ], + [ + 0, + 9, + 16, + 2300, + 428310 + ], + [ + 0, + 9, + 17, + 2300, + 428310 + ], + [ + 0, + 9, + 18, + 2300, + 428310 + ], + [ + 0, + 9, + 19, + 2300, + 428310 + ], + [ + 0, + 9, + 20, + 2300, + 428310 + ], + [ + 0, + 9, + 21, + 2300, + 428310 + ], + [ + 0, + 9, + 22, + 2300, + 428310 + ], + [ + 0, + 10, + 11, + 2300, + 428310 + ], + [ + 0, + 10, + 12, + 2300, + 428310 + ], + [ + 0, + 10, + 13, + 2300, + 428310 + ], + [ + 0, + 10, + 14, + 2300, + 428310 + ], + [ + 0, + 10, + 15, + 2300, + 428310 + ], + [ + 0, + 10, + 16, + 2300, + 428310 + ], + [ + 0, + 10, + 17, + 2300, + 428310 + ], + [ + 0, + 10, + 18, + 2300, + 428310 + ], + [ + 0, + 10, + 19, + 2300, + 428310 + ], + [ + 0, + 10, + 20, + 2300, + 428310 + ], + [ + 0, + 10, + 21, + 2300, + 428310 + ], + [ + 0, + 10, + 22, + 2300, + 428310 + ], + [ + 0, + 11, + 12, + 2299, + 189775 + ], + [ + 0, + 11, + 13, + 2300, + 428310 + ], + [ + 0, + 11, + 14, + 2300, + 428310 + ], + [ + 0, + 11, + 15, + 2300, + 428310 + ], + [ + 0, + 11, + 16, + 2300, + 428310 + ], + [ + 0, + 11, + 17, + 2300, + 428310 + ], + [ + 0, + 11, + 18, + 2300, + 428310 + ], + [ + 0, + 11, + 19, + 2300, + 428310 + ], + [ + 0, + 11, + 20, + 2300, + 428310 + ], + [ + 0, + 11, + 21, + 2300, + 428310 + ], + [ + 0, + 11, + 22, + 2300, + 428310 + ], + [ + 0, + 12, + 13, + 2300, + 428310 + ], + [ + 0, + 12, + 14, + 2300, + 428310 + ], + [ + 0, + 12, + 15, + 2300, + 428310 + ], + [ + 0, + 12, + 16, + 2300, + 428310 + ], + [ + 0, + 12, + 17, + 2300, + 428310 + ], + [ + 0, + 12, + 18, + 2300, + 428310 + ], + [ + 0, + 12, + 19, + 2300, + 428310 + ], + [ + 0, + 12, + 20, + 2300, + 428310 + ], + [ + 0, + 12, + 21, + 2300, + 428310 + ], + [ + 0, + 12, + 22, + 2300, + 428310 + ], + [ + 0, + 13, + 14, + 2300, + 428310 + ], + [ + 0, + 13, + 15, + 2300, + 428310 + ], + [ + 0, + 13, + 16, + 2300, + 428310 + ], + [ + 0, + 13, + 17, + 2300, + 428310 + ], + [ + 0, + 13, + 18, + 2300, + 428310 + ], + [ + 0, + 13, + 19, + 2300, + 428310 + ], + [ + 0, + 13, + 20, + 2300, + 428310 + ], + [ + 0, + 13, + 21, + 2300, + 428310 + ], + [ + 0, + 13, + 22, + 2300, + 428310 + ], + [ + 0, + 14, + 15, + 2300, + 428310 + ], + [ + 0, + 14, + 16, + 2300, + 428310 + ], + [ + 0, + 14, + 17, + 2300, + 428310 + ], + [ + 0, + 14, + 18, + 2300, + 428310 + ], + [ + 0, + 14, + 19, + 2300, + 428310 + ], + [ + 0, + 14, + 20, + 2300, + 428310 + ], + [ + 0, + 14, + 21, + 2300, + 428310 + ], + [ + 0, + 14, + 22, + 2300, + 428310 + ], + [ + 0, + 15, + 16, + 2300, + 428310 + ], + [ + 0, + 15, + 17, + 2300, + 428310 + ], + [ + 0, + 15, + 18, + 2299, + 189775 + ], + [ + 0, + 15, + 19, + 2300, + 428310 + ], + [ + 0, + 15, + 20, + 2300, + 428310 + ], + [ + 0, + 15, + 21, + 2300, + 428310 + ], + [ + 0, + 15, + 22, + 2300, + 428310 + ], + [ + 0, + 16, + 17, + 2300, + 428310 + ], + [ + 0, + 16, + 18, + 2300, + 428310 + ], + [ + 0, + 16, + 19, + 2300, + 428310 + ], + [ + 0, + 16, + 20, + 2300, + 428310 + ], + [ + 0, + 16, + 21, + 2300, + 428310 + ], + [ + 0, + 16, + 22, + 2300, + 428310 + ], + [ + 0, + 17, + 18, + 2300, + 428310 + ], + [ + 0, + 17, + 19, + 2300, + 428310 + ], + [ + 0, + 17, + 20, + 2300, + 428310 + ], + [ + 0, + 17, + 21, + 2300, + 428310 + ], + [ + 0, + 17, + 22, + 2300, + 428310 + ], + [ + 0, + 18, + 19, + 2300, + 428310 + ], + [ + 0, + 18, + 20, + 2300, + 428310 + ], + [ + 0, + 18, + 21, + 2300, + 428310 + ], + [ + 0, + 18, + 22, + 2300, + 428310 + ], + [ + 0, + 19, + 20, + 2300, + 428310 + ], + [ + 0, + 19, + 21, + 2300, + 428310 + ], + [ + 0, + 19, + 22, + 2300, + 428310 + ], + [ + 0, + 20, + 21, + 2300, + 428310 + ], + [ + 0, + 20, + 22, + 2300, + 428310 + ], + [ + 0, + 21, + 22, + 2300, + 428310 + ], + [ + 1, + 2, + 3, + 2300, + 428310 + ], + [ + 1, + 2, + 4, + 2300, + 428310 + ], + [ + 1, + 2, + 5, + 2300, + 428310 + ], + [ + 1, + 2, + 6, + 2300, + 428310 + ], + [ + 1, + 2, + 7, + 2300, + 428310 + ], + [ + 1, + 2, + 8, + 2300, + 428310 + ], + [ + 1, + 2, + 9, + 2300, + 428310 + ], + [ + 1, + 2, + 10, + 2300, + 428310 + ], + [ + 1, + 2, + 11, + 2300, + 428310 + ], + [ + 1, + 2, + 12, + 2300, + 428310 + ], + [ + 1, + 2, + 13, + 2300, + 428310 + ], + [ + 1, + 2, + 14, + 2300, + 428310 + ], + [ + 1, + 2, + 15, + 2300, + 428310 + ], + [ + 1, + 2, + 16, + 2300, + 428310 + ], + [ + 1, + 2, + 17, + 2300, + 428310 + ], + [ + 1, + 2, + 18, + 2300, + 428310 + ], + [ + 1, + 2, + 19, + 2300, + 428310 + ], + [ + 1, + 2, + 20, + 2300, + 428310 + ], + [ + 1, + 2, + 21, + 2300, + 428310 + ], + [ + 1, + 2, + 22, + 2300, + 428310 + ], + [ + 1, + 3, + 4, + 2300, + 428310 + ], + [ + 1, + 3, + 5, + 2300, + 428310 + ], + [ + 1, + 3, + 6, + 2300, + 428310 + ], + [ + 1, + 3, + 7, + 2300, + 428310 + ], + [ + 1, + 3, + 8, + 2300, + 428310 + ], + [ + 1, + 3, + 9, + 2300, + 428310 + ], + [ + 1, + 3, + 10, + 2300, + 428310 + ], + [ + 1, + 3, + 11, + 2300, + 428310 + ], + [ + 1, + 3, + 12, + 2300, + 428310 + ], + [ + 1, + 3, + 13, + 2300, + 428310 + ], + [ + 1, + 3, + 14, + 2300, + 428310 + ], + [ + 1, + 3, + 15, + 2300, + 428310 + ], + [ + 1, + 3, + 16, + 2300, + 428310 + ], + [ + 1, + 3, + 17, + 2300, + 428310 + ], + [ + 1, + 3, + 18, + 2300, + 428310 + ], + [ + 1, + 3, + 19, + 2300, + 428310 + ], + [ + 1, + 3, + 20, + 2300, + 428310 + ], + [ + 1, + 3, + 21, + 2300, + 428310 + ], + [ + 1, + 3, + 22, + 2300, + 428310 + ], + [ + 1, + 4, + 5, + 2300, + 428310 + ], + [ + 1, + 4, + 6, + 2300, + 428310 + ], + [ + 1, + 4, + 7, + 2300, + 428310 + ], + [ + 1, + 4, + 8, + 2300, + 428310 + ], + [ + 1, + 4, + 9, + 2300, + 428310 + ], + [ + 1, + 4, + 10, + 2300, + 428310 + ], + [ + 1, + 4, + 11, + 2300, + 428310 + ], + [ + 1, + 4, + 12, + 2300, + 428310 + ], + [ + 1, + 4, + 13, + 2300, + 428310 + ], + [ + 1, + 4, + 14, + 2300, + 428310 + ], + [ + 1, + 4, + 15, + 2300, + 428310 + ], + [ + 1, + 4, + 16, + 2300, + 428310 + ], + [ + 1, + 4, + 17, + 2300, + 428310 + ], + [ + 1, + 4, + 18, + 2300, + 428310 + ], + [ + 1, + 4, + 19, + 2300, + 428310 + ], + [ + 1, + 4, + 20, + 2300, + 428310 + ], + [ + 1, + 4, + 21, + 2300, + 428310 + ], + [ + 1, + 4, + 22, + 2300, + 428310 + ], + [ + 1, + 5, + 6, + 2300, + 428310 + ], + [ + 1, + 5, + 7, + 2300, + 428310 + ], + [ + 1, + 5, + 8, + 2300, + 428310 + ], + [ + 1, + 5, + 9, + 2300, + 428310 + ], + [ + 1, + 5, + 10, + 2300, + 428310 + ], + [ + 1, + 5, + 11, + 2300, + 428310 + ], + [ + 1, + 5, + 12, + 2300, + 428310 + ], + [ + 1, + 5, + 13, + 2300, + 428310 + ], + [ + 1, + 5, + 14, + 2300, + 428310 + ], + [ + 1, + 5, + 15, + 2300, + 428310 + ], + [ + 1, + 5, + 16, + 2300, + 428310 + ], + [ + 1, + 5, + 17, + 2300, + 428310 + ], + [ + 1, + 5, + 18, + 2300, + 428310 + ], + [ + 1, + 5, + 19, + 2300, + 428310 + ], + [ + 1, + 5, + 20, + 2300, + 428310 + ], + [ + 1, + 5, + 21, + 2300, + 428310 + ], + [ + 1, + 5, + 22, + 2300, + 428310 + ], + [ + 1, + 6, + 7, + 2300, + 428310 + ], + [ + 1, + 6, + 8, + 2300, + 428310 + ], + [ + 1, + 6, + 9, + 2300, + 428310 + ], + [ + 1, + 6, + 10, + 2300, + 428310 + ], + [ + 1, + 6, + 11, + 2300, + 428310 + ], + [ + 1, + 6, + 12, + 2300, + 428310 + ], + [ + 1, + 6, + 13, + 2300, + 428310 + ], + [ + 1, + 6, + 14, + 2300, + 428310 + ], + [ + 1, + 6, + 15, + 2300, + 428310 + ], + [ + 1, + 6, + 16, + 2300, + 428310 + ], + [ + 1, + 6, + 17, + 2300, + 428310 + ], + [ + 1, + 6, + 18, + 2300, + 428310 + ], + [ + 1, + 6, + 19, + 2300, + 428310 + ], + [ + 1, + 6, + 20, + 2300, + 428310 + ], + [ + 1, + 6, + 21, + 2300, + 428310 + ], + [ + 1, + 6, + 22, + 2300, + 428310 + ], + [ + 1, + 7, + 8, + 2300, + 428310 + ], + [ + 1, + 7, + 9, + 2300, + 428310 + ], + [ + 1, + 7, + 10, + 2300, + 428310 + ], + [ + 1, + 7, + 11, + 2300, + 428310 + ], + [ + 1, + 7, + 12, + 2300, + 428310 + ], + [ + 1, + 7, + 13, + 2300, + 428310 + ], + [ + 1, + 7, + 14, + 2300, + 428310 + ], + [ + 1, + 7, + 15, + 2300, + 428310 + ], + [ + 1, + 7, + 16, + 2300, + 428310 + ], + [ + 1, + 7, + 17, + 2300, + 428310 + ], + [ + 1, + 7, + 18, + 2300, + 428310 + ], + [ + 1, + 7, + 19, + 2300, + 428310 + ], + [ + 1, + 7, + 20, + 2300, + 428310 + ], + [ + 1, + 7, + 21, + 2300, + 428310 + ], + [ + 1, + 7, + 22, + 2300, + 428310 + ], + [ + 1, + 8, + 9, + 2300, + 428310 + ], + [ + 1, + 8, + 10, + 2300, + 428310 + ], + [ + 1, + 8, + 11, + 2300, + 428310 + ], + [ + 1, + 8, + 12, + 2300, + 428310 + ], + [ + 1, + 8, + 13, + 2300, + 428310 + ], + [ + 1, + 8, + 14, + 2300, + 428310 + ], + [ + 1, + 8, + 15, + 2300, + 428310 + ], + [ + 1, + 8, + 16, + 2300, + 428310 + ], + [ + 1, + 8, + 17, + 2300, + 428310 + ], + [ + 1, + 8, + 18, + 2300, + 428310 + ], + [ + 1, + 8, + 19, + 2300, + 428310 + ], + [ + 1, + 8, + 20, + 2300, + 428310 + ], + [ + 1, + 8, + 21, + 2300, + 428310 + ], + [ + 1, + 8, + 22, + 2300, + 428310 + ], + [ + 1, + 9, + 10, + 2300, + 428310 + ], + [ + 1, + 9, + 11, + 2300, + 428310 + ], + [ + 1, + 9, + 12, + 2300, + 428310 + ], + [ + 1, + 9, + 13, + 2300, + 428310 + ], + [ + 1, + 9, + 14, + 2300, + 428310 + ], + [ + 1, + 9, + 15, + 2300, + 428310 + ], + [ + 1, + 9, + 16, + 2300, + 428310 + ], + [ + 1, + 9, + 17, + 2300, + 428310 + ], + [ + 1, + 9, + 18, + 2300, + 428310 + ], + [ + 1, + 9, + 19, + 2300, + 428310 + ], + [ + 1, + 9, + 20, + 2300, + 428310 + ], + [ + 1, + 9, + 21, + 2300, + 428310 + ], + [ + 1, + 9, + 22, + 2300, + 428310 + ], + [ + 1, + 10, + 11, + 2300, + 428310 + ], + [ + 1, + 10, + 12, + 2300, + 428310 + ], + [ + 1, + 10, + 13, + 2300, + 428310 + ], + [ + 1, + 10, + 14, + 2300, + 428310 + ], + [ + 1, + 10, + 15, + 2300, + 428310 + ], + [ + 1, + 10, + 16, + 2300, + 428310 + ], + [ + 1, + 10, + 17, + 2300, + 428310 + ], + [ + 1, + 10, + 18, + 2300, + 428310 + ], + [ + 1, + 10, + 19, + 2300, + 428310 + ], + [ + 1, + 10, + 20, + 2300, + 428310 + ], + [ + 1, + 10, + 21, + 2300, + 428310 + ], + [ + 1, + 10, + 22, + 2300, + 428310 + ], + [ + 1, + 11, + 12, + 2300, + 428310 + ], + [ + 1, + 11, + 13, + 2300, + 428310 + ], + [ + 1, + 11, + 14, + 2300, + 428310 + ], + [ + 1, + 11, + 15, + 2300, + 428310 + ], + [ + 1, + 11, + 16, + 2300, + 428310 + ], + [ + 1, + 11, + 17, + 2300, + 428310 + ], + [ + 1, + 11, + 18, + 2300, + 428310 + ], + [ + 1, + 11, + 19, + 2300, + 428310 + ], + [ + 1, + 11, + 20, + 2300, + 428310 + ], + [ + 1, + 11, + 21, + 2300, + 428310 + ], + [ + 1, + 11, + 22, + 2300, + 428310 + ], + [ + 1, + 12, + 13, + 2300, + 428310 + ], + [ + 1, + 12, + 14, + 2300, + 428310 + ], + [ + 1, + 12, + 15, + 2300, + 428310 + ], + [ + 1, + 12, + 16, + 2300, + 428310 + ], + [ + 1, + 12, + 17, + 2300, + 428310 + ], + [ + 1, + 12, + 18, + 2300, + 428310 + ], + [ + 1, + 12, + 19, + 2300, + 428310 + ], + [ + 1, + 12, + 20, + 2300, + 428310 + ], + [ + 1, + 12, + 21, + 2300, + 428310 + ], + [ + 1, + 12, + 22, + 2300, + 428310 + ], + [ + 1, + 13, + 14, + 2300, + 428310 + ], + [ + 1, + 13, + 15, + 2300, + 428310 + ], + [ + 1, + 13, + 16, + 2300, + 428310 + ], + [ + 1, + 13, + 17, + 2300, + 428310 + ], + [ + 1, + 13, + 18, + 2300, + 428310 + ], + [ + 1, + 13, + 19, + 2300, + 428310 + ], + [ + 1, + 13, + 20, + 2300, + 428310 + ], + [ + 1, + 13, + 21, + 2300, + 428310 + ], + [ + 1, + 13, + 22, + 2300, + 428310 + ], + [ + 1, + 14, + 15, + 2300, + 428310 + ], + [ + 1, + 14, + 16, + 2300, + 428310 + ], + [ + 1, + 14, + 17, + 2300, + 428310 + ], + [ + 1, + 14, + 18, + 2300, + 428310 + ], + [ + 1, + 14, + 19, + 2300, + 428310 + ], + [ + 1, + 14, + 20, + 2300, + 428310 + ], + [ + 1, + 14, + 21, + 2300, + 428310 + ], + [ + 1, + 14, + 22, + 2300, + 428310 + ], + [ + 1, + 15, + 16, + 2300, + 428310 + ], + [ + 1, + 15, + 17, + 2299, + 189775 + ], + [ + 1, + 15, + 18, + 2300, + 428310 + ], + [ + 1, + 15, + 19, + 2300, + 428310 + ], + [ + 1, + 15, + 20, + 2300, + 428310 + ], + [ + 1, + 15, + 21, + 2300, + 428310 + ], + [ + 1, + 15, + 22, + 2300, + 428310 + ], + [ + 1, + 16, + 17, + 2300, + 428310 + ], + [ + 1, + 16, + 18, + 2300, + 428310 + ], + [ + 1, + 16, + 19, + 2300, + 428310 + ], + [ + 1, + 16, + 20, + 2300, + 428310 + ], + [ + 1, + 16, + 21, + 2300, + 428310 + ], + [ + 1, + 16, + 22, + 2300, + 428310 + ], + [ + 1, + 17, + 18, + 2300, + 428310 + ], + [ + 1, + 17, + 19, + 2300, + 428310 + ], + [ + 1, + 17, + 20, + 2300, + 428310 + ], + [ + 1, + 17, + 21, + 2300, + 428310 + ], + [ + 1, + 17, + 22, + 2300, + 428310 + ], + [ + 1, + 18, + 19, + 2300, + 428310 + ], + [ + 1, + 18, + 20, + 2300, + 428310 + ], + [ + 1, + 18, + 21, + 2300, + 428310 + ], + [ + 1, + 18, + 22, + 2300, + 428310 + ], + [ + 1, + 19, + 20, + 2300, + 428310 + ], + [ + 1, + 19, + 21, + 2300, + 428310 + ], + [ + 1, + 19, + 22, + 2300, + 428310 + ], + [ + 1, + 20, + 21, + 2300, + 428310 + ], + [ + 1, + 20, + 22, + 2300, + 428310 + ], + [ + 1, + 21, + 22, + 2300, + 428310 + ], + [ + 2, + 3, + 4, + 2300, + 428310 + ], + [ + 2, + 3, + 5, + 2300, + 428310 + ], + [ + 2, + 3, + 6, + 2300, + 428310 + ], + [ + 2, + 3, + 7, + 2300, + 428310 + ], + [ + 2, + 3, + 8, + 2300, + 428310 + ], + [ + 2, + 3, + 9, + 2300, + 428310 + ], + [ + 2, + 3, + 10, + 2300, + 428310 + ], + [ + 2, + 3, + 11, + 2300, + 428310 + ], + [ + 2, + 3, + 12, + 2300, + 428310 + ], + [ + 2, + 3, + 13, + 2300, + 428310 + ], + [ + 2, + 3, + 14, + 2300, + 428310 + ], + [ + 2, + 3, + 15, + 2300, + 428310 + ], + [ + 2, + 3, + 16, + 2300, + 428310 + ], + [ + 2, + 3, + 17, + 2300, + 428310 + ], + [ + 2, + 3, + 18, + 2300, + 428310 + ], + [ + 2, + 3, + 19, + 2300, + 428310 + ], + [ + 2, + 3, + 20, + 2300, + 428310 + ], + [ + 2, + 3, + 21, + 2300, + 428310 + ], + [ + 2, + 3, + 22, + 2300, + 428310 + ], + [ + 2, + 4, + 5, + 2300, + 428310 + ], + [ + 2, + 4, + 6, + 2300, + 428310 + ], + [ + 2, + 4, + 7, + 2300, + 428310 + ], + [ + 2, + 4, + 8, + 2300, + 428310 + ], + [ + 2, + 4, + 9, + 2300, + 428310 + ], + [ + 2, + 4, + 10, + 2300, + 428310 + ], + [ + 2, + 4, + 11, + 2300, + 428310 + ], + [ + 2, + 4, + 12, + 2300, + 428310 + ], + [ + 2, + 4, + 13, + 2300, + 428310 + ], + [ + 2, + 4, + 14, + 2300, + 428310 + ], + [ + 2, + 4, + 15, + 2300, + 428310 + ], + [ + 2, + 4, + 16, + 2300, + 428310 + ], + [ + 2, + 4, + 17, + 2300, + 428310 + ], + [ + 2, + 4, + 18, + 2300, + 428310 + ], + [ + 2, + 4, + 19, + 2300, + 428310 + ], + [ + 2, + 4, + 20, + 2300, + 428310 + ], + [ + 2, + 4, + 21, + 2300, + 428310 + ], + [ + 2, + 4, + 22, + 2300, + 428310 + ], + [ + 2, + 5, + 6, + 2300, + 428310 + ], + [ + 2, + 5, + 7, + 2300, + 428310 + ], + [ + 2, + 5, + 8, + 2300, + 428310 + ], + [ + 2, + 5, + 9, + 2300, + 428310 + ], + [ + 2, + 5, + 10, + 2300, + 428310 + ], + [ + 2, + 5, + 11, + 2300, + 428310 + ], + [ + 2, + 5, + 12, + 2300, + 428310 + ], + [ + 2, + 5, + 13, + 2300, + 428310 + ], + [ + 2, + 5, + 14, + 2300, + 428310 + ], + [ + 2, + 5, + 15, + 2300, + 428310 + ], + [ + 2, + 5, + 16, + 2300, + 428310 + ], + [ + 2, + 5, + 17, + 2300, + 428310 + ], + [ + 2, + 5, + 18, + 2300, + 428310 + ], + [ + 2, + 5, + 19, + 2300, + 428310 + ], + [ + 2, + 5, + 20, + 2300, + 428310 + ], + [ + 2, + 5, + 21, + 2300, + 428310 + ], + [ + 2, + 5, + 22, + 2300, + 428310 + ], + [ + 2, + 6, + 7, + 2300, + 428310 + ], + [ + 2, + 6, + 8, + 2300, + 428310 + ], + [ + 2, + 6, + 9, + 2300, + 428310 + ], + [ + 2, + 6, + 10, + 2300, + 428310 + ], + [ + 2, + 6, + 11, + 2300, + 428310 + ], + [ + 2, + 6, + 12, + 2300, + 428310 + ], + [ + 2, + 6, + 13, + 2300, + 428310 + ], + [ + 2, + 6, + 14, + 2300, + 428310 + ], + [ + 2, + 6, + 15, + 2300, + 428310 + ], + [ + 2, + 6, + 16, + 2300, + 428310 + ], + [ + 2, + 6, + 17, + 2300, + 428310 + ], + [ + 2, + 6, + 18, + 2300, + 428310 + ], + [ + 2, + 6, + 19, + 2300, + 428310 + ], + [ + 2, + 6, + 20, + 2300, + 428310 + ], + [ + 2, + 6, + 21, + 2300, + 428310 + ], + [ + 2, + 6, + 22, + 2300, + 428310 + ], + [ + 2, + 7, + 8, + 2300, + 428310 + ], + [ + 2, + 7, + 9, + 2300, + 428310 + ], + [ + 2, + 7, + 10, + 2300, + 428310 + ], + [ + 2, + 7, + 11, + 2300, + 428310 + ], + [ + 2, + 7, + 12, + 2300, + 428310 + ], + [ + 2, + 7, + 13, + 2300, + 428310 + ], + [ + 2, + 7, + 14, + 2300, + 428310 + ], + [ + 2, + 7, + 15, + 2300, + 428310 + ], + [ + 2, + 7, + 16, + 2300, + 428310 + ], + [ + 2, + 7, + 17, + 2300, + 428310 + ], + [ + 2, + 7, + 18, + 2300, + 428310 + ], + [ + 2, + 7, + 19, + 2300, + 428310 + ], + [ + 2, + 7, + 20, + 2300, + 428310 + ], + [ + 2, + 7, + 21, + 2300, + 428310 + ], + [ + 2, + 7, + 22, + 2300, + 428310 + ], + [ + 2, + 8, + 9, + 2300, + 428310 + ], + [ + 2, + 8, + 10, + 2300, + 428310 + ], + [ + 2, + 8, + 11, + 2300, + 428310 + ], + [ + 2, + 8, + 12, + 2300, + 428310 + ], + [ + 2, + 8, + 13, + 2300, + 428310 + ], + [ + 2, + 8, + 14, + 2300, + 428310 + ], + [ + 2, + 8, + 15, + 2300, + 428310 + ], + [ + 2, + 8, + 16, + 2300, + 428310 + ], + [ + 2, + 8, + 17, + 2300, + 428310 + ], + [ + 2, + 8, + 18, + 2300, + 428310 + ], + [ + 2, + 8, + 19, + 2300, + 428310 + ], + [ + 2, + 8, + 20, + 2300, + 428310 + ], + [ + 2, + 8, + 21, + 2300, + 428310 + ], + [ + 2, + 8, + 22, + 2300, + 428310 + ], + [ + 2, + 9, + 10, + 2300, + 428310 + ], + [ + 2, + 9, + 11, + 2300, + 428310 + ], + [ + 2, + 9, + 12, + 2300, + 428310 + ], + [ + 2, + 9, + 13, + 2300, + 428310 + ], + [ + 2, + 9, + 14, + 2300, + 428310 + ], + [ + 2, + 9, + 15, + 2300, + 428310 + ], + [ + 2, + 9, + 16, + 2300, + 428310 + ], + [ + 2, + 9, + 17, + 2300, + 428310 + ], + [ + 2, + 9, + 18, + 2300, + 428310 + ], + [ + 2, + 9, + 19, + 2300, + 428310 + ], + [ + 2, + 9, + 20, + 2300, + 428310 + ], + [ + 2, + 9, + 21, + 2300, + 428310 + ], + [ + 2, + 9, + 22, + 2300, + 428310 + ], + [ + 2, + 10, + 11, + 2300, + 428310 + ], + [ + 2, + 10, + 12, + 2300, + 428310 + ], + [ + 2, + 10, + 13, + 2300, + 428310 + ], + [ + 2, + 10, + 14, + 2300, + 428310 + ], + [ + 2, + 10, + 15, + 2300, + 428310 + ], + [ + 2, + 10, + 16, + 2300, + 428310 + ], + [ + 2, + 10, + 17, + 2300, + 428310 + ], + [ + 2, + 10, + 18, + 2300, + 428310 + ], + [ + 2, + 10, + 19, + 2300, + 428310 + ], + [ + 2, + 10, + 20, + 2300, + 428310 + ], + [ + 2, + 10, + 21, + 2300, + 428310 + ], + [ + 2, + 10, + 22, + 2300, + 428310 + ], + [ + 2, + 11, + 12, + 2300, + 428310 + ], + [ + 2, + 11, + 13, + 2300, + 428310 + ], + [ + 2, + 11, + 14, + 2300, + 428310 + ], + [ + 2, + 11, + 15, + 2300, + 428310 + ], + [ + 2, + 11, + 16, + 2300, + 428310 + ], + [ + 2, + 11, + 17, + 2300, + 428310 + ], + [ + 2, + 11, + 18, + 2299, + 189775 + ], + [ + 2, + 11, + 19, + 2300, + 428310 + ], + [ + 2, + 11, + 20, + 2300, + 428310 + ], + [ + 2, + 11, + 21, + 2300, + 428310 + ], + [ + 2, + 11, + 22, + 2300, + 428310 + ], + [ + 2, + 12, + 13, + 2300, + 428310 + ], + [ + 2, + 12, + 14, + 2300, + 428310 + ], + [ + 2, + 12, + 15, + 2300, + 428310 + ], + [ + 2, + 12, + 16, + 2300, + 428310 + ], + [ + 2, + 12, + 17, + 2300, + 428310 + ], + [ + 2, + 12, + 18, + 2300, + 428310 + ], + [ + 2, + 12, + 19, + 2300, + 428310 + ], + [ + 2, + 12, + 20, + 2300, + 428310 + ], + [ + 2, + 12, + 21, + 2300, + 428310 + ], + [ + 2, + 12, + 22, + 2300, + 428310 + ], + [ + 2, + 13, + 14, + 2300, + 428310 + ], + [ + 2, + 13, + 15, + 2300, + 428310 + ], + [ + 2, + 13, + 16, + 2300, + 428310 + ], + [ + 2, + 13, + 17, + 2300, + 428310 + ], + [ + 2, + 13, + 18, + 2300, + 428310 + ], + [ + 2, + 13, + 19, + 2300, + 428310 + ], + [ + 2, + 13, + 20, + 2300, + 428310 + ], + [ + 2, + 13, + 21, + 2300, + 428310 + ], + [ + 2, + 13, + 22, + 2300, + 428310 + ], + [ + 2, + 14, + 15, + 2300, + 428310 + ], + [ + 2, + 14, + 16, + 2300, + 428310 + ], + [ + 2, + 14, + 17, + 2300, + 428310 + ], + [ + 2, + 14, + 18, + 2300, + 428310 + ], + [ + 2, + 14, + 19, + 2300, + 428310 + ], + [ + 2, + 14, + 20, + 2300, + 428310 + ], + [ + 2, + 14, + 21, + 2300, + 428310 + ], + [ + 2, + 14, + 22, + 2300, + 428310 + ], + [ + 2, + 15, + 16, + 2300, + 428310 + ], + [ + 2, + 15, + 17, + 2300, + 428310 + ], + [ + 2, + 15, + 18, + 2300, + 428310 + ], + [ + 2, + 15, + 19, + 2300, + 428310 + ], + [ + 2, + 15, + 20, + 2300, + 428310 + ], + [ + 2, + 15, + 21, + 2300, + 428310 + ], + [ + 2, + 15, + 22, + 2300, + 428310 + ], + [ + 2, + 16, + 17, + 2300, + 428310 + ], + [ + 2, + 16, + 18, + 2300, + 428310 + ], + [ + 2, + 16, + 19, + 2300, + 428310 + ], + [ + 2, + 16, + 20, + 2300, + 428310 + ], + [ + 2, + 16, + 21, + 2300, + 428310 + ], + [ + 2, + 16, + 22, + 2300, + 428310 + ], + [ + 2, + 17, + 18, + 2300, + 428310 + ], + [ + 2, + 17, + 19, + 2300, + 428310 + ], + [ + 2, + 17, + 20, + 2300, + 428310 + ], + [ + 2, + 17, + 21, + 2300, + 428310 + ], + [ + 2, + 17, + 22, + 2300, + 428310 + ], + [ + 2, + 18, + 19, + 2300, + 428310 + ], + [ + 2, + 18, + 20, + 2300, + 428310 + ], + [ + 2, + 18, + 21, + 2300, + 428310 + ], + [ + 2, + 18, + 22, + 2300, + 428310 + ], + [ + 2, + 19, + 20, + 2300, + 428310 + ], + [ + 2, + 19, + 21, + 2300, + 428310 + ], + [ + 2, + 19, + 22, + 2300, + 428310 + ], + [ + 2, + 20, + 21, + 2300, + 428310 + ], + [ + 2, + 20, + 22, + 2300, + 428310 + ], + [ + 2, + 21, + 22, + 2300, + 428310 + ], + [ + 3, + 4, + 5, + 2300, + 428310 + ], + [ + 3, + 4, + 6, + 2300, + 428310 + ], + [ + 3, + 4, + 7, + 2300, + 428310 + ], + [ + 3, + 4, + 8, + 2300, + 428310 + ], + [ + 3, + 4, + 9, + 2300, + 428310 + ], + [ + 3, + 4, + 10, + 2300, + 428310 + ], + [ + 3, + 4, + 11, + 2300, + 428310 + ], + [ + 3, + 4, + 12, + 2300, + 428310 + ], + [ + 3, + 4, + 13, + 2300, + 428310 + ], + [ + 3, + 4, + 14, + 2300, + 428310 + ], + [ + 3, + 4, + 15, + 2300, + 428310 + ], + [ + 3, + 4, + 16, + 2300, + 428310 + ], + [ + 3, + 4, + 17, + 2300, + 428310 + ], + [ + 3, + 4, + 18, + 2300, + 428310 + ], + [ + 3, + 4, + 19, + 2300, + 428310 + ], + [ + 3, + 4, + 20, + 2300, + 428310 + ], + [ + 3, + 4, + 21, + 2300, + 428310 + ], + [ + 3, + 4, + 22, + 2300, + 428310 + ], + [ + 3, + 5, + 6, + 2300, + 428310 + ], + [ + 3, + 5, + 7, + 2300, + 428310 + ], + [ + 3, + 5, + 8, + 2300, + 428310 + ], + [ + 3, + 5, + 9, + 2300, + 428310 + ], + [ + 3, + 5, + 10, + 2300, + 428310 + ], + [ + 3, + 5, + 11, + 2300, + 428310 + ], + [ + 3, + 5, + 12, + 2300, + 428310 + ], + [ + 3, + 5, + 13, + 2300, + 428310 + ], + [ + 3, + 5, + 14, + 2300, + 428310 + ], + [ + 3, + 5, + 15, + 2300, + 428310 + ], + [ + 3, + 5, + 16, + 2300, + 428310 + ], + [ + 3, + 5, + 17, + 2300, + 428310 + ], + [ + 3, + 5, + 18, + 2300, + 428310 + ], + [ + 3, + 5, + 19, + 2300, + 428310 + ], + [ + 3, + 5, + 20, + 2300, + 428310 + ], + [ + 3, + 5, + 21, + 2300, + 428310 + ], + [ + 3, + 5, + 22, + 2300, + 428310 + ], + [ + 3, + 6, + 7, + 2300, + 428310 + ], + [ + 3, + 6, + 8, + 2300, + 428310 + ], + [ + 3, + 6, + 9, + 2300, + 428310 + ], + [ + 3, + 6, + 10, + 2300, + 428310 + ], + [ + 3, + 6, + 11, + 2300, + 428310 + ], + [ + 3, + 6, + 12, + 2300, + 428310 + ], + [ + 3, + 6, + 13, + 2300, + 428310 + ], + [ + 3, + 6, + 14, + 2300, + 428310 + ], + [ + 3, + 6, + 15, + 2300, + 428310 + ], + [ + 3, + 6, + 16, + 2300, + 428310 + ], + [ + 3, + 6, + 17, + 2300, + 428310 + ], + [ + 3, + 6, + 18, + 2300, + 428310 + ], + [ + 3, + 6, + 19, + 2300, + 428310 + ], + [ + 3, + 6, + 20, + 2300, + 428310 + ], + [ + 3, + 6, + 21, + 2300, + 428310 + ], + [ + 3, + 6, + 22, + 2300, + 428310 + ], + [ + 3, + 7, + 8, + 2300, + 428310 + ], + [ + 3, + 7, + 9, + 2300, + 428310 + ], + [ + 3, + 7, + 10, + 2300, + 428310 + ], + [ + 3, + 7, + 11, + 2300, + 428310 + ], + [ + 3, + 7, + 12, + 2300, + 428310 + ], + [ + 3, + 7, + 13, + 2300, + 428310 + ], + [ + 3, + 7, + 14, + 2300, + 428310 + ], + [ + 3, + 7, + 15, + 2300, + 428310 + ], + [ + 3, + 7, + 16, + 2300, + 428310 + ], + [ + 3, + 7, + 17, + 2300, + 428310 + ], + [ + 3, + 7, + 18, + 2300, + 428310 + ], + [ + 3, + 7, + 19, + 2300, + 428310 + ], + [ + 3, + 7, + 20, + 2300, + 428310 + ], + [ + 3, + 7, + 21, + 2300, + 428310 + ], + [ + 3, + 7, + 22, + 2300, + 428310 + ], + [ + 3, + 8, + 9, + 2300, + 428310 + ], + [ + 3, + 8, + 10, + 2300, + 428310 + ], + [ + 3, + 8, + 11, + 2300, + 428310 + ], + [ + 3, + 8, + 12, + 2300, + 428310 + ], + [ + 3, + 8, + 13, + 2300, + 428310 + ], + [ + 3, + 8, + 14, + 2300, + 428310 + ], + [ + 3, + 8, + 15, + 2300, + 428310 + ], + [ + 3, + 8, + 16, + 2300, + 428310 + ], + [ + 3, + 8, + 17, + 2300, + 428310 + ], + [ + 3, + 8, + 18, + 2300, + 428310 + ], + [ + 3, + 8, + 19, + 2300, + 428310 + ], + [ + 3, + 8, + 20, + 2300, + 428310 + ], + [ + 3, + 8, + 21, + 2300, + 428310 + ], + [ + 3, + 8, + 22, + 2300, + 428310 + ], + [ + 3, + 9, + 10, + 2300, + 428310 + ], + [ + 3, + 9, + 11, + 2300, + 428310 + ], + [ + 3, + 9, + 12, + 2300, + 428310 + ], + [ + 3, + 9, + 13, + 2300, + 428310 + ], + [ + 3, + 9, + 14, + 2300, + 428310 + ], + [ + 3, + 9, + 15, + 2300, + 428310 + ], + [ + 3, + 9, + 16, + 2300, + 428310 + ], + [ + 3, + 9, + 17, + 2300, + 428310 + ], + [ + 3, + 9, + 18, + 2300, + 428310 + ], + [ + 3, + 9, + 19, + 2300, + 428310 + ], + [ + 3, + 9, + 20, + 2300, + 428310 + ], + [ + 3, + 9, + 21, + 2300, + 428310 + ], + [ + 3, + 9, + 22, + 2300, + 428310 + ], + [ + 3, + 10, + 11, + 2300, + 428310 + ], + [ + 3, + 10, + 12, + 2300, + 428310 + ], + [ + 3, + 10, + 13, + 2300, + 428310 + ], + [ + 3, + 10, + 14, + 2300, + 428310 + ], + [ + 3, + 10, + 15, + 2300, + 428310 + ], + [ + 3, + 10, + 16, + 2300, + 428310 + ], + [ + 3, + 10, + 17, + 2300, + 428310 + ], + [ + 3, + 10, + 18, + 2300, + 428310 + ], + [ + 3, + 10, + 19, + 2300, + 428310 + ], + [ + 3, + 10, + 20, + 2300, + 428310 + ], + [ + 3, + 10, + 21, + 2300, + 428310 + ], + [ + 3, + 10, + 22, + 2300, + 428310 + ], + [ + 3, + 11, + 12, + 2300, + 428310 + ], + [ + 3, + 11, + 13, + 2300, + 428310 + ], + [ + 3, + 11, + 14, + 2300, + 428310 + ], + [ + 3, + 11, + 15, + 2300, + 428310 + ], + [ + 3, + 11, + 16, + 2300, + 428310 + ], + [ + 3, + 11, + 17, + 2300, + 428310 + ], + [ + 3, + 11, + 18, + 2300, + 428310 + ], + [ + 3, + 11, + 19, + 2300, + 428310 + ], + [ + 3, + 11, + 20, + 2300, + 428310 + ], + [ + 3, + 11, + 21, + 2300, + 428310 + ], + [ + 3, + 11, + 22, + 2300, + 428310 + ], + [ + 3, + 12, + 13, + 2300, + 428310 + ], + [ + 3, + 12, + 14, + 2300, + 428310 + ], + [ + 3, + 12, + 15, + 2300, + 428310 + ], + [ + 3, + 12, + 16, + 2300, + 428310 + ], + [ + 3, + 12, + 17, + 2300, + 428310 + ], + [ + 3, + 12, + 18, + 2300, + 428310 + ], + [ + 3, + 12, + 19, + 2300, + 428310 + ], + [ + 3, + 12, + 20, + 2300, + 428310 + ], + [ + 3, + 12, + 21, + 2300, + 428310 + ], + [ + 3, + 12, + 22, + 2300, + 428310 + ], + [ + 3, + 13, + 14, + 2300, + 428310 + ], + [ + 3, + 13, + 15, + 2300, + 428310 + ], + [ + 3, + 13, + 16, + 2300, + 428310 + ], + [ + 3, + 13, + 17, + 2300, + 428310 + ], + [ + 3, + 13, + 18, + 2300, + 428310 + ], + [ + 3, + 13, + 19, + 2300, + 428310 + ], + [ + 3, + 13, + 20, + 2300, + 428310 + ], + [ + 3, + 13, + 21, + 2300, + 428310 + ], + [ + 3, + 13, + 22, + 2300, + 428310 + ], + [ + 3, + 14, + 15, + 2300, + 428310 + ], + [ + 3, + 14, + 16, + 2300, + 428310 + ], + [ + 3, + 14, + 17, + 2300, + 428310 + ], + [ + 3, + 14, + 18, + 2300, + 428310 + ], + [ + 3, + 14, + 19, + 2300, + 428310 + ], + [ + 3, + 14, + 20, + 2300, + 428310 + ], + [ + 3, + 14, + 21, + 2300, + 428310 + ], + [ + 3, + 14, + 22, + 2300, + 428310 + ], + [ + 3, + 15, + 16, + 2300, + 428310 + ], + [ + 3, + 15, + 17, + 2300, + 428310 + ], + [ + 3, + 15, + 18, + 2300, + 428310 + ], + [ + 3, + 15, + 19, + 2300, + 428310 + ], + [ + 3, + 15, + 20, + 2300, + 428310 + ], + [ + 3, + 15, + 21, + 2300, + 428310 + ], + [ + 3, + 15, + 22, + 2300, + 428310 + ], + [ + 3, + 16, + 17, + 2300, + 428310 + ], + [ + 3, + 16, + 18, + 2300, + 428310 + ], + [ + 3, + 16, + 19, + 2300, + 428310 + ], + [ + 3, + 16, + 20, + 2300, + 428310 + ], + [ + 3, + 16, + 21, + 2300, + 428310 + ], + [ + 3, + 16, + 22, + 2300, + 428310 + ], + [ + 3, + 17, + 18, + 2300, + 428310 + ], + [ + 3, + 17, + 19, + 2300, + 428310 + ], + [ + 3, + 17, + 20, + 2300, + 428310 + ], + [ + 3, + 17, + 21, + 2300, + 428310 + ], + [ + 3, + 17, + 22, + 2300, + 428310 + ], + [ + 3, + 18, + 19, + 2300, + 428310 + ], + [ + 3, + 18, + 20, + 2300, + 428310 + ], + [ + 3, + 18, + 21, + 2300, + 428310 + ], + [ + 3, + 18, + 22, + 2300, + 428310 + ], + [ + 3, + 19, + 20, + 2300, + 428310 + ], + [ + 3, + 19, + 21, + 2300, + 428310 + ], + [ + 3, + 19, + 22, + 2300, + 428310 + ], + [ + 3, + 20, + 21, + 2300, + 428310 + ], + [ + 3, + 20, + 22, + 2300, + 428310 + ], + [ + 3, + 21, + 22, + 2300, + 428310 + ], + [ + 4, + 5, + 6, + 2300, + 428310 + ], + [ + 4, + 5, + 7, + 2300, + 428310 + ], + [ + 4, + 5, + 8, + 2300, + 428310 + ], + [ + 4, + 5, + 9, + 2300, + 428310 + ], + [ + 4, + 5, + 10, + 2300, + 428310 + ], + [ + 4, + 5, + 11, + 2300, + 428310 + ], + [ + 4, + 5, + 12, + 2300, + 428310 + ], + [ + 4, + 5, + 13, + 2300, + 428310 + ], + [ + 4, + 5, + 14, + 2300, + 428310 + ], + [ + 4, + 5, + 15, + 2300, + 428310 + ], + [ + 4, + 5, + 16, + 2300, + 428310 + ], + [ + 4, + 5, + 17, + 2300, + 428310 + ], + [ + 4, + 5, + 18, + 2300, + 428310 + ], + [ + 4, + 5, + 19, + 2300, + 428310 + ], + [ + 4, + 5, + 20, + 2300, + 428310 + ], + [ + 4, + 5, + 21, + 2300, + 428310 + ], + [ + 4, + 5, + 22, + 2300, + 428310 + ], + [ + 4, + 6, + 7, + 2300, + 428310 + ], + [ + 4, + 6, + 8, + 2300, + 428310 + ], + [ + 4, + 6, + 9, + 2300, + 428310 + ], + [ + 4, + 6, + 10, + 2300, + 428310 + ], + [ + 4, + 6, + 11, + 2300, + 428310 + ], + [ + 4, + 6, + 12, + 2300, + 428310 + ], + [ + 4, + 6, + 13, + 2300, + 428310 + ], + [ + 4, + 6, + 14, + 2300, + 428310 + ], + [ + 4, + 6, + 15, + 2300, + 428310 + ], + [ + 4, + 6, + 16, + 2300, + 428310 + ], + [ + 4, + 6, + 17, + 2300, + 428310 + ], + [ + 4, + 6, + 18, + 2300, + 428310 + ], + [ + 4, + 6, + 19, + 2300, + 428310 + ], + [ + 4, + 6, + 20, + 2300, + 428310 + ], + [ + 4, + 6, + 21, + 2300, + 428310 + ], + [ + 4, + 6, + 22, + 2300, + 428310 + ], + [ + 4, + 7, + 8, + 2300, + 428310 + ], + [ + 4, + 7, + 9, + 2300, + 428310 + ], + [ + 4, + 7, + 10, + 2300, + 428310 + ], + [ + 4, + 7, + 11, + 2300, + 428310 + ], + [ + 4, + 7, + 12, + 2300, + 428310 + ], + [ + 4, + 7, + 13, + 2300, + 428310 + ], + [ + 4, + 7, + 14, + 2300, + 428310 + ], + [ + 4, + 7, + 15, + 2300, + 428310 + ], + [ + 4, + 7, + 16, + 2300, + 428310 + ], + [ + 4, + 7, + 17, + 2300, + 428310 + ], + [ + 4, + 7, + 18, + 2300, + 428310 + ], + [ + 4, + 7, + 19, + 2300, + 428310 + ], + [ + 4, + 7, + 20, + 2300, + 428310 + ], + [ + 4, + 7, + 21, + 2300, + 428310 + ], + [ + 4, + 7, + 22, + 2299, + 189775 + ], + [ + 4, + 8, + 9, + 2300, + 428310 + ], + [ + 4, + 8, + 10, + 2300, + 428310 + ], + [ + 4, + 8, + 11, + 2300, + 428310 + ], + [ + 4, + 8, + 12, + 2300, + 428310 + ], + [ + 4, + 8, + 13, + 2300, + 428310 + ], + [ + 4, + 8, + 14, + 2300, + 428310 + ], + [ + 4, + 8, + 15, + 2300, + 428310 + ], + [ + 4, + 8, + 16, + 2300, + 428310 + ], + [ + 4, + 8, + 17, + 2300, + 428310 + ], + [ + 4, + 8, + 18, + 2300, + 428310 + ], + [ + 4, + 8, + 19, + 2300, + 428310 + ], + [ + 4, + 8, + 20, + 2300, + 428310 + ], + [ + 4, + 8, + 21, + 2300, + 428310 + ], + [ + 4, + 8, + 22, + 2300, + 428310 + ], + [ + 4, + 9, + 10, + 2300, + 428310 + ], + [ + 4, + 9, + 11, + 2300, + 428310 + ], + [ + 4, + 9, + 12, + 2300, + 428310 + ], + [ + 4, + 9, + 13, + 2300, + 428310 + ], + [ + 4, + 9, + 14, + 2300, + 428310 + ], + [ + 4, + 9, + 15, + 2300, + 428310 + ], + [ + 4, + 9, + 16, + 2300, + 428310 + ], + [ + 4, + 9, + 17, + 2300, + 428310 + ], + [ + 4, + 9, + 18, + 2300, + 428310 + ], + [ + 4, + 9, + 19, + 2300, + 428310 + ], + [ + 4, + 9, + 20, + 2300, + 428310 + ], + [ + 4, + 9, + 21, + 2300, + 428310 + ], + [ + 4, + 9, + 22, + 2300, + 428310 + ], + [ + 4, + 10, + 11, + 2300, + 428310 + ], + [ + 4, + 10, + 12, + 2300, + 428310 + ], + [ + 4, + 10, + 13, + 2300, + 428310 + ], + [ + 4, + 10, + 14, + 2300, + 428310 + ], + [ + 4, + 10, + 15, + 2300, + 428310 + ], + [ + 4, + 10, + 16, + 2300, + 428310 + ], + [ + 4, + 10, + 17, + 2300, + 428310 + ], + [ + 4, + 10, + 18, + 2300, + 428310 + ], + [ + 4, + 10, + 19, + 2300, + 428310 + ], + [ + 4, + 10, + 20, + 2300, + 428310 + ], + [ + 4, + 10, + 21, + 2300, + 428310 + ], + [ + 4, + 10, + 22, + 2300, + 428310 + ], + [ + 4, + 11, + 12, + 2300, + 428310 + ], + [ + 4, + 11, + 13, + 2300, + 428310 + ], + [ + 4, + 11, + 14, + 2300, + 428310 + ], + [ + 4, + 11, + 15, + 2300, + 428310 + ], + [ + 4, + 11, + 16, + 2300, + 428310 + ], + [ + 4, + 11, + 17, + 2300, + 428310 + ], + [ + 4, + 11, + 18, + 2300, + 428310 + ], + [ + 4, + 11, + 19, + 2300, + 428310 + ], + [ + 4, + 11, + 20, + 2299, + 189775 + ], + [ + 4, + 11, + 21, + 2300, + 428310 + ], + [ + 4, + 11, + 22, + 2300, + 428310 + ], + [ + 4, + 12, + 13, + 2300, + 428310 + ], + [ + 4, + 12, + 14, + 2300, + 428310 + ], + [ + 4, + 12, + 15, + 2300, + 428310 + ], + [ + 4, + 12, + 16, + 2300, + 428310 + ], + [ + 4, + 12, + 17, + 2300, + 428310 + ], + [ + 4, + 12, + 18, + 2300, + 428310 + ], + [ + 4, + 12, + 19, + 2300, + 428310 + ], + [ + 4, + 12, + 20, + 2300, + 428310 + ], + [ + 4, + 12, + 21, + 2300, + 428310 + ], + [ + 4, + 12, + 22, + 2300, + 428310 + ], + [ + 4, + 13, + 14, + 2300, + 428310 + ], + [ + 4, + 13, + 15, + 2300, + 428310 + ], + [ + 4, + 13, + 16, + 2300, + 428310 + ], + [ + 4, + 13, + 17, + 2300, + 428310 + ], + [ + 4, + 13, + 18, + 2300, + 428310 + ], + [ + 4, + 13, + 19, + 2300, + 428310 + ], + [ + 4, + 13, + 20, + 2300, + 428310 + ], + [ + 4, + 13, + 21, + 2300, + 428310 + ], + [ + 4, + 13, + 22, + 2300, + 428310 + ], + [ + 4, + 14, + 15, + 2300, + 428310 + ], + [ + 4, + 14, + 16, + 2300, + 428310 + ], + [ + 4, + 14, + 17, + 2300, + 428310 + ], + [ + 4, + 14, + 18, + 2300, + 428310 + ], + [ + 4, + 14, + 19, + 2300, + 428310 + ], + [ + 4, + 14, + 20, + 2300, + 428310 + ], + [ + 4, + 14, + 21, + 2300, + 428310 + ], + [ + 4, + 14, + 22, + 2300, + 428310 + ], + [ + 4, + 15, + 16, + 2300, + 428310 + ], + [ + 4, + 15, + 17, + 2300, + 428310 + ], + [ + 4, + 15, + 18, + 2300, + 428310 + ], + [ + 4, + 15, + 19, + 2300, + 428310 + ], + [ + 4, + 15, + 20, + 2300, + 428310 + ], + [ + 4, + 15, + 21, + 2300, + 428310 + ], + [ + 4, + 15, + 22, + 2300, + 428310 + ], + [ + 4, + 16, + 17, + 2300, + 428310 + ], + [ + 4, + 16, + 18, + 2300, + 428310 + ], + [ + 4, + 16, + 19, + 2300, + 428310 + ], + [ + 4, + 16, + 20, + 2300, + 428310 + ], + [ + 4, + 16, + 21, + 2300, + 428310 + ], + [ + 4, + 16, + 22, + 2300, + 428310 + ], + [ + 4, + 17, + 18, + 2300, + 428310 + ], + [ + 4, + 17, + 19, + 2300, + 428310 + ], + [ + 4, + 17, + 20, + 2300, + 428310 + ], + [ + 4, + 17, + 21, + 2300, + 428310 + ], + [ + 4, + 17, + 22, + 2300, + 428310 + ], + [ + 4, + 18, + 19, + 2300, + 428310 + ], + [ + 4, + 18, + 20, + 2300, + 428310 + ], + [ + 4, + 18, + 21, + 2300, + 428310 + ], + [ + 4, + 18, + 22, + 2300, + 428310 + ], + [ + 4, + 19, + 20, + 2300, + 428310 + ], + [ + 4, + 19, + 21, + 2300, + 428310 + ], + [ + 4, + 19, + 22, + 2300, + 428310 + ], + [ + 4, + 20, + 21, + 2300, + 428310 + ], + [ + 4, + 20, + 22, + 2300, + 428310 + ], + [ + 4, + 21, + 22, + 2300, + 428310 + ], + [ + 5, + 6, + 7, + 2300, + 428310 + ], + [ + 5, + 6, + 8, + 2300, + 428310 + ], + [ + 5, + 6, + 9, + 2300, + 428310 + ], + [ + 5, + 6, + 10, + 2300, + 428310 + ], + [ + 5, + 6, + 11, + 2300, + 428310 + ], + [ + 5, + 6, + 12, + 2300, + 428310 + ], + [ + 5, + 6, + 13, + 2300, + 428310 + ], + [ + 5, + 6, + 14, + 2300, + 428310 + ], + [ + 5, + 6, + 15, + 2300, + 428310 + ], + [ + 5, + 6, + 16, + 2300, + 428310 + ], + [ + 5, + 6, + 17, + 2300, + 428310 + ], + [ + 5, + 6, + 18, + 2300, + 428310 + ], + [ + 5, + 6, + 19, + 2300, + 428310 + ], + [ + 5, + 6, + 20, + 2300, + 428310 + ], + [ + 5, + 6, + 21, + 2300, + 428310 + ], + [ + 5, + 6, + 22, + 2300, + 428310 + ], + [ + 5, + 7, + 8, + 2300, + 428310 + ], + [ + 5, + 7, + 9, + 2300, + 428310 + ], + [ + 5, + 7, + 10, + 2300, + 428310 + ], + [ + 5, + 7, + 11, + 2300, + 428310 + ], + [ + 5, + 7, + 12, + 2300, + 428310 + ], + [ + 5, + 7, + 13, + 2300, + 428310 + ], + [ + 5, + 7, + 14, + 2300, + 428310 + ], + [ + 5, + 7, + 15, + 2300, + 428310 + ], + [ + 5, + 7, + 16, + 2300, + 428310 + ], + [ + 5, + 7, + 17, + 2300, + 428310 + ], + [ + 5, + 7, + 18, + 2300, + 428310 + ], + [ + 5, + 7, + 19, + 2300, + 428310 + ], + [ + 5, + 7, + 20, + 2300, + 428310 + ], + [ + 5, + 7, + 21, + 2299, + 189775 + ], + [ + 5, + 7, + 22, + 2300, + 428310 + ], + [ + 5, + 8, + 9, + 2300, + 428310 + ], + [ + 5, + 8, + 10, + 2300, + 428310 + ], + [ + 5, + 8, + 11, + 2300, + 428310 + ], + [ + 5, + 8, + 12, + 2300, + 428310 + ], + [ + 5, + 8, + 13, + 2300, + 428310 + ], + [ + 5, + 8, + 14, + 2300, + 428310 + ], + [ + 5, + 8, + 15, + 2300, + 428310 + ], + [ + 5, + 8, + 16, + 2300, + 428310 + ], + [ + 5, + 8, + 17, + 2300, + 428310 + ], + [ + 5, + 8, + 18, + 2300, + 428310 + ], + [ + 5, + 8, + 19, + 2300, + 428310 + ], + [ + 5, + 8, + 20, + 2300, + 428310 + ], + [ + 5, + 8, + 21, + 2300, + 428310 + ], + [ + 5, + 8, + 22, + 2300, + 428310 + ], + [ + 5, + 9, + 10, + 2300, + 428310 + ], + [ + 5, + 9, + 11, + 2300, + 428310 + ], + [ + 5, + 9, + 12, + 2300, + 428310 + ], + [ + 5, + 9, + 13, + 2300, + 428310 + ], + [ + 5, + 9, + 14, + 2300, + 428310 + ], + [ + 5, + 9, + 15, + 2300, + 428310 + ], + [ + 5, + 9, + 16, + 2300, + 428310 + ], + [ + 5, + 9, + 17, + 2300, + 428310 + ], + [ + 5, + 9, + 18, + 2300, + 428310 + ], + [ + 5, + 9, + 19, + 2300, + 428310 + ], + [ + 5, + 9, + 20, + 2300, + 428310 + ], + [ + 5, + 9, + 21, + 2300, + 428310 + ], + [ + 5, + 9, + 22, + 2300, + 428310 + ], + [ + 5, + 10, + 11, + 2300, + 428310 + ], + [ + 5, + 10, + 12, + 2300, + 428310 + ], + [ + 5, + 10, + 13, + 2300, + 428310 + ], + [ + 5, + 10, + 14, + 2300, + 428310 + ], + [ + 5, + 10, + 15, + 2300, + 428310 + ], + [ + 5, + 10, + 16, + 2300, + 428310 + ], + [ + 5, + 10, + 17, + 2300, + 428310 + ], + [ + 5, + 10, + 18, + 2300, + 428310 + ], + [ + 5, + 10, + 19, + 2300, + 428310 + ], + [ + 5, + 10, + 20, + 2300, + 428310 + ], + [ + 5, + 10, + 21, + 2300, + 428310 + ], + [ + 5, + 10, + 22, + 2300, + 428310 + ], + [ + 5, + 11, + 12, + 2300, + 428310 + ], + [ + 5, + 11, + 13, + 2300, + 428310 + ], + [ + 5, + 11, + 14, + 2300, + 428310 + ], + [ + 5, + 11, + 15, + 2300, + 428310 + ], + [ + 5, + 11, + 16, + 2300, + 428310 + ], + [ + 5, + 11, + 17, + 2300, + 428310 + ], + [ + 5, + 11, + 18, + 2300, + 428310 + ], + [ + 5, + 11, + 19, + 2300, + 428310 + ], + [ + 5, + 11, + 20, + 2300, + 428310 + ], + [ + 5, + 11, + 21, + 2300, + 428310 + ], + [ + 5, + 11, + 22, + 2300, + 428310 + ], + [ + 5, + 12, + 13, + 2300, + 428310 + ], + [ + 5, + 12, + 14, + 2300, + 428310 + ], + [ + 5, + 12, + 15, + 2300, + 428310 + ], + [ + 5, + 12, + 16, + 2300, + 428310 + ], + [ + 5, + 12, + 17, + 2300, + 428310 + ], + [ + 5, + 12, + 18, + 2300, + 428310 + ], + [ + 5, + 12, + 19, + 2300, + 428310 + ], + [ + 5, + 12, + 20, + 2300, + 428310 + ], + [ + 5, + 12, + 21, + 2300, + 428310 + ], + [ + 5, + 12, + 22, + 2300, + 428310 + ], + [ + 5, + 13, + 14, + 2300, + 428310 + ], + [ + 5, + 13, + 15, + 2300, + 428310 + ], + [ + 5, + 13, + 16, + 2300, + 428310 + ], + [ + 5, + 13, + 17, + 2300, + 428310 + ], + [ + 5, + 13, + 18, + 2300, + 428310 + ], + [ + 5, + 13, + 19, + 2300, + 428310 + ], + [ + 5, + 13, + 20, + 2300, + 428310 + ], + [ + 5, + 13, + 21, + 2300, + 428310 + ], + [ + 5, + 13, + 22, + 2300, + 428310 + ], + [ + 5, + 14, + 15, + 2300, + 428310 + ], + [ + 5, + 14, + 16, + 2300, + 428310 + ], + [ + 5, + 14, + 17, + 2300, + 428310 + ], + [ + 5, + 14, + 18, + 2300, + 428310 + ], + [ + 5, + 14, + 19, + 2300, + 428310 + ], + [ + 5, + 14, + 20, + 2300, + 428310 + ], + [ + 5, + 14, + 21, + 2300, + 428310 + ], + [ + 5, + 14, + 22, + 2300, + 428310 + ], + [ + 5, + 15, + 16, + 2300, + 428310 + ], + [ + 5, + 15, + 17, + 2300, + 428310 + ], + [ + 5, + 15, + 18, + 2300, + 428310 + ], + [ + 5, + 15, + 19, + 2300, + 428310 + ], + [ + 5, + 15, + 20, + 2300, + 428310 + ], + [ + 5, + 15, + 21, + 2300, + 428310 + ], + [ + 5, + 15, + 22, + 2300, + 428310 + ], + [ + 5, + 16, + 17, + 2300, + 428310 + ], + [ + 5, + 16, + 18, + 2300, + 428310 + ], + [ + 5, + 16, + 19, + 2300, + 428310 + ], + [ + 5, + 16, + 20, + 2300, + 428310 + ], + [ + 5, + 16, + 21, + 2300, + 428310 + ], + [ + 5, + 16, + 22, + 2300, + 428310 + ], + [ + 5, + 17, + 18, + 2300, + 428310 + ], + [ + 5, + 17, + 19, + 2300, + 428310 + ], + [ + 5, + 17, + 20, + 2300, + 428310 + ], + [ + 5, + 17, + 21, + 2300, + 428310 + ], + [ + 5, + 17, + 22, + 2300, + 428310 + ], + [ + 5, + 18, + 19, + 2300, + 428310 + ], + [ + 5, + 18, + 20, + 2300, + 428310 + ], + [ + 5, + 18, + 21, + 2300, + 428310 + ], + [ + 5, + 18, + 22, + 2300, + 428310 + ], + [ + 5, + 19, + 20, + 2300, + 428310 + ], + [ + 5, + 19, + 21, + 2300, + 428310 + ], + [ + 5, + 19, + 22, + 2300, + 428310 + ], + [ + 5, + 20, + 21, + 2300, + 428310 + ], + [ + 5, + 20, + 22, + 2300, + 428310 + ], + [ + 5, + 21, + 22, + 2300, + 428310 + ], + [ + 6, + 7, + 8, + 2300, + 428310 + ], + [ + 6, + 7, + 9, + 2300, + 428310 + ], + [ + 6, + 7, + 10, + 2300, + 428310 + ], + [ + 6, + 7, + 11, + 2300, + 428310 + ], + [ + 6, + 7, + 12, + 2300, + 428310 + ], + [ + 6, + 7, + 13, + 2300, + 428310 + ], + [ + 6, + 7, + 14, + 2300, + 428310 + ], + [ + 6, + 7, + 15, + 2300, + 428310 + ], + [ + 6, + 7, + 16, + 2300, + 428310 + ], + [ + 6, + 7, + 17, + 2300, + 428310 + ], + [ + 6, + 7, + 18, + 2300, + 428310 + ], + [ + 6, + 7, + 19, + 2300, + 428310 + ], + [ + 6, + 7, + 20, + 2300, + 428310 + ], + [ + 6, + 7, + 21, + 2300, + 428310 + ], + [ + 6, + 7, + 22, + 2300, + 428310 + ], + [ + 6, + 8, + 9, + 2300, + 428310 + ], + [ + 6, + 8, + 10, + 2300, + 428310 + ], + [ + 6, + 8, + 11, + 2300, + 428310 + ], + [ + 6, + 8, + 12, + 2300, + 428310 + ], + [ + 6, + 8, + 13, + 2300, + 428310 + ], + [ + 6, + 8, + 14, + 2300, + 428310 + ], + [ + 6, + 8, + 15, + 2300, + 428310 + ], + [ + 6, + 8, + 16, + 2300, + 428310 + ], + [ + 6, + 8, + 17, + 2300, + 428310 + ], + [ + 6, + 8, + 18, + 2300, + 428310 + ], + [ + 6, + 8, + 19, + 2300, + 428310 + ], + [ + 6, + 8, + 20, + 2300, + 428310 + ], + [ + 6, + 8, + 21, + 2300, + 428310 + ], + [ + 6, + 8, + 22, + 2300, + 428310 + ], + [ + 6, + 9, + 10, + 2300, + 428310 + ], + [ + 6, + 9, + 11, + 2300, + 428310 + ], + [ + 6, + 9, + 12, + 2300, + 428310 + ], + [ + 6, + 9, + 13, + 2300, + 428310 + ], + [ + 6, + 9, + 14, + 2300, + 428310 + ], + [ + 6, + 9, + 15, + 2300, + 428310 + ], + [ + 6, + 9, + 16, + 2300, + 428310 + ], + [ + 6, + 9, + 17, + 2300, + 428310 + ], + [ + 6, + 9, + 18, + 2300, + 428310 + ], + [ + 6, + 9, + 19, + 2300, + 428310 + ], + [ + 6, + 9, + 20, + 2300, + 428310 + ], + [ + 6, + 9, + 21, + 2300, + 428310 + ], + [ + 6, + 9, + 22, + 2300, + 428310 + ], + [ + 6, + 10, + 11, + 2300, + 428310 + ], + [ + 6, + 10, + 12, + 2300, + 428310 + ], + [ + 6, + 10, + 13, + 2300, + 428310 + ], + [ + 6, + 10, + 14, + 2300, + 428310 + ], + [ + 6, + 10, + 15, + 2300, + 428310 + ], + [ + 6, + 10, + 16, + 2300, + 428310 + ], + [ + 6, + 10, + 17, + 2300, + 428310 + ], + [ + 6, + 10, + 18, + 2300, + 428310 + ], + [ + 6, + 10, + 19, + 2300, + 428310 + ], + [ + 6, + 10, + 20, + 2300, + 428310 + ], + [ + 6, + 10, + 21, + 2300, + 428310 + ], + [ + 6, + 10, + 22, + 2300, + 428310 + ], + [ + 6, + 11, + 12, + 2300, + 428310 + ], + [ + 6, + 11, + 13, + 2300, + 428310 + ], + [ + 6, + 11, + 14, + 2300, + 428310 + ], + [ + 6, + 11, + 15, + 2300, + 428310 + ], + [ + 6, + 11, + 16, + 2300, + 428310 + ], + [ + 6, + 11, + 17, + 2300, + 428310 + ], + [ + 6, + 11, + 18, + 2300, + 428310 + ], + [ + 6, + 11, + 19, + 2300, + 428310 + ], + [ + 6, + 11, + 20, + 2300, + 428310 + ], + [ + 6, + 11, + 21, + 2300, + 428310 + ], + [ + 6, + 11, + 22, + 2300, + 428310 + ], + [ + 6, + 12, + 13, + 2300, + 428310 + ], + [ + 6, + 12, + 14, + 2300, + 428310 + ], + [ + 6, + 12, + 15, + 2300, + 428310 + ], + [ + 6, + 12, + 16, + 2300, + 428310 + ], + [ + 6, + 12, + 17, + 2300, + 428310 + ], + [ + 6, + 12, + 18, + 2300, + 428310 + ], + [ + 6, + 12, + 19, + 2300, + 428310 + ], + [ + 6, + 12, + 20, + 2300, + 428310 + ], + [ + 6, + 12, + 21, + 2300, + 428310 + ], + [ + 6, + 12, + 22, + 2300, + 428310 + ], + [ + 6, + 13, + 14, + 2300, + 428310 + ], + [ + 6, + 13, + 15, + 2300, + 428310 + ], + [ + 6, + 13, + 16, + 2300, + 428310 + ], + [ + 6, + 13, + 17, + 2300, + 428310 + ], + [ + 6, + 13, + 18, + 2300, + 428310 + ], + [ + 6, + 13, + 19, + 2300, + 428310 + ], + [ + 6, + 13, + 20, + 2300, + 428310 + ], + [ + 6, + 13, + 21, + 2300, + 428310 + ], + [ + 6, + 13, + 22, + 2300, + 428310 + ], + [ + 6, + 14, + 15, + 2300, + 428310 + ], + [ + 6, + 14, + 16, + 2300, + 428310 + ], + [ + 6, + 14, + 17, + 2300, + 428310 + ], + [ + 6, + 14, + 18, + 2300, + 428310 + ], + [ + 6, + 14, + 19, + 2300, + 428310 + ], + [ + 6, + 14, + 20, + 2300, + 428310 + ], + [ + 6, + 14, + 21, + 2300, + 428310 + ], + [ + 6, + 14, + 22, + 2300, + 428310 + ], + [ + 6, + 15, + 16, + 2300, + 428310 + ], + [ + 6, + 15, + 17, + 2300, + 428310 + ], + [ + 6, + 15, + 18, + 2300, + 428310 + ], + [ + 6, + 15, + 19, + 2300, + 428310 + ], + [ + 6, + 15, + 20, + 2300, + 428310 + ], + [ + 6, + 15, + 21, + 2300, + 428310 + ], + [ + 6, + 15, + 22, + 2300, + 428310 + ], + [ + 6, + 16, + 17, + 2300, + 428310 + ], + [ + 6, + 16, + 18, + 2300, + 428310 + ], + [ + 6, + 16, + 19, + 2300, + 428310 + ], + [ + 6, + 16, + 20, + 2300, + 428310 + ], + [ + 6, + 16, + 21, + 2300, + 428310 + ], + [ + 6, + 16, + 22, + 2300, + 428310 + ], + [ + 6, + 17, + 18, + 2300, + 428310 + ], + [ + 6, + 17, + 19, + 2300, + 428310 + ], + [ + 6, + 17, + 20, + 2300, + 428310 + ], + [ + 6, + 17, + 21, + 2300, + 428310 + ], + [ + 6, + 17, + 22, + 2300, + 428310 + ], + [ + 6, + 18, + 19, + 2300, + 428310 + ], + [ + 6, + 18, + 20, + 2300, + 428310 + ], + [ + 6, + 18, + 21, + 2300, + 428310 + ], + [ + 6, + 18, + 22, + 2300, + 428310 + ], + [ + 6, + 19, + 20, + 2300, + 428310 + ], + [ + 6, + 19, + 21, + 2300, + 428310 + ], + [ + 6, + 19, + 22, + 2300, + 428310 + ], + [ + 6, + 20, + 21, + 2300, + 428310 + ], + [ + 6, + 20, + 22, + 2300, + 428310 + ], + [ + 6, + 21, + 22, + 2300, + 428310 + ], + [ + 7, + 8, + 9, + 2300, + 428310 + ], + [ + 7, + 8, + 10, + 2300, + 428310 + ], + [ + 7, + 8, + 11, + 2300, + 428310 + ], + [ + 7, + 8, + 12, + 2300, + 428310 + ], + [ + 7, + 8, + 13, + 2300, + 428310 + ], + [ + 7, + 8, + 14, + 2300, + 428310 + ], + [ + 7, + 8, + 15, + 2300, + 428310 + ], + [ + 7, + 8, + 16, + 2300, + 428310 + ], + [ + 7, + 8, + 17, + 2300, + 428310 + ], + [ + 7, + 8, + 18, + 2300, + 428310 + ], + [ + 7, + 8, + 19, + 2300, + 428310 + ], + [ + 7, + 8, + 20, + 2300, + 428310 + ], + [ + 7, + 8, + 21, + 2300, + 428310 + ], + [ + 7, + 8, + 22, + 2300, + 428310 + ], + [ + 7, + 9, + 10, + 2300, + 428310 + ], + [ + 7, + 9, + 11, + 2300, + 428310 + ], + [ + 7, + 9, + 12, + 2300, + 428310 + ], + [ + 7, + 9, + 13, + 2300, + 428310 + ], + [ + 7, + 9, + 14, + 2300, + 428310 + ], + [ + 7, + 9, + 15, + 2300, + 428310 + ], + [ + 7, + 9, + 16, + 2300, + 428310 + ], + [ + 7, + 9, + 17, + 2300, + 428310 + ], + [ + 7, + 9, + 18, + 2300, + 428310 + ], + [ + 7, + 9, + 19, + 2300, + 428310 + ], + [ + 7, + 9, + 20, + 2300, + 428310 + ], + [ + 7, + 9, + 21, + 2300, + 428310 + ], + [ + 7, + 9, + 22, + 2300, + 428310 + ], + [ + 7, + 10, + 11, + 2300, + 428310 + ], + [ + 7, + 10, + 12, + 2300, + 428310 + ], + [ + 7, + 10, + 13, + 2300, + 428310 + ], + [ + 7, + 10, + 14, + 2300, + 428310 + ], + [ + 7, + 10, + 15, + 2300, + 428310 + ], + [ + 7, + 10, + 16, + 2300, + 428310 + ], + [ + 7, + 10, + 17, + 2300, + 428310 + ], + [ + 7, + 10, + 18, + 2300, + 428310 + ], + [ + 7, + 10, + 19, + 2300, + 428310 + ], + [ + 7, + 10, + 20, + 2300, + 428310 + ], + [ + 7, + 10, + 21, + 2300, + 428310 + ], + [ + 7, + 10, + 22, + 2300, + 428310 + ], + [ + 7, + 11, + 12, + 2300, + 428310 + ], + [ + 7, + 11, + 13, + 2300, + 428310 + ], + [ + 7, + 11, + 14, + 2300, + 428310 + ], + [ + 7, + 11, + 15, + 2300, + 428310 + ], + [ + 7, + 11, + 16, + 2300, + 428310 + ], + [ + 7, + 11, + 17, + 2300, + 428310 + ], + [ + 7, + 11, + 18, + 2300, + 428310 + ], + [ + 7, + 11, + 19, + 2300, + 428310 + ], + [ + 7, + 11, + 20, + 2300, + 428310 + ], + [ + 7, + 11, + 21, + 2300, + 428310 + ], + [ + 7, + 11, + 22, + 2300, + 428310 + ], + [ + 7, + 12, + 13, + 2300, + 428310 + ], + [ + 7, + 12, + 14, + 2300, + 428310 + ], + [ + 7, + 12, + 15, + 2300, + 428310 + ], + [ + 7, + 12, + 16, + 2300, + 428310 + ], + [ + 7, + 12, + 17, + 2300, + 428310 + ], + [ + 7, + 12, + 18, + 2300, + 428310 + ], + [ + 7, + 12, + 19, + 2300, + 428310 + ], + [ + 7, + 12, + 20, + 2300, + 428310 + ], + [ + 7, + 12, + 21, + 2300, + 428310 + ], + [ + 7, + 12, + 22, + 2300, + 428310 + ], + [ + 7, + 13, + 14, + 2300, + 428310 + ], + [ + 7, + 13, + 15, + 2300, + 428310 + ], + [ + 7, + 13, + 16, + 2300, + 428310 + ], + [ + 7, + 13, + 17, + 2300, + 428310 + ], + [ + 7, + 13, + 18, + 2300, + 428310 + ], + [ + 7, + 13, + 19, + 2300, + 428310 + ], + [ + 7, + 13, + 20, + 2300, + 428310 + ], + [ + 7, + 13, + 21, + 2300, + 428310 + ], + [ + 7, + 13, + 22, + 2300, + 428310 + ], + [ + 7, + 14, + 15, + 2300, + 428310 + ], + [ + 7, + 14, + 16, + 2300, + 428310 + ], + [ + 7, + 14, + 17, + 2300, + 428310 + ], + [ + 7, + 14, + 18, + 2300, + 428310 + ], + [ + 7, + 14, + 19, + 2300, + 428310 + ], + [ + 7, + 14, + 20, + 2300, + 428310 + ], + [ + 7, + 14, + 21, + 2300, + 428310 + ], + [ + 7, + 14, + 22, + 2300, + 428310 + ], + [ + 7, + 15, + 16, + 2300, + 428310 + ], + [ + 7, + 15, + 17, + 2300, + 428310 + ], + [ + 7, + 15, + 18, + 2300, + 428310 + ], + [ + 7, + 15, + 19, + 2300, + 428310 + ], + [ + 7, + 15, + 20, + 2300, + 428310 + ], + [ + 7, + 15, + 21, + 2300, + 428310 + ], + [ + 7, + 15, + 22, + 2300, + 428310 + ], + [ + 7, + 16, + 17, + 2300, + 428310 + ], + [ + 7, + 16, + 18, + 2300, + 428310 + ], + [ + 7, + 16, + 19, + 2300, + 428310 + ], + [ + 7, + 16, + 20, + 2300, + 428310 + ], + [ + 7, + 16, + 21, + 2300, + 428310 + ], + [ + 7, + 16, + 22, + 2300, + 428310 + ], + [ + 7, + 17, + 18, + 2300, + 428310 + ], + [ + 7, + 17, + 19, + 2300, + 428310 + ], + [ + 7, + 17, + 20, + 2300, + 428310 + ], + [ + 7, + 17, + 21, + 2300, + 428310 + ], + [ + 7, + 17, + 22, + 2300, + 428310 + ], + [ + 7, + 18, + 19, + 2300, + 428310 + ], + [ + 7, + 18, + 20, + 2300, + 428310 + ], + [ + 7, + 18, + 21, + 2300, + 428310 + ], + [ + 7, + 18, + 22, + 2300, + 428310 + ], + [ + 7, + 19, + 20, + 2300, + 428310 + ], + [ + 7, + 19, + 21, + 2300, + 428310 + ], + [ + 7, + 19, + 22, + 2300, + 428310 + ], + [ + 7, + 20, + 21, + 2300, + 428310 + ], + [ + 7, + 20, + 22, + 2300, + 428310 + ], + [ + 7, + 21, + 22, + 2300, + 428310 + ], + [ + 8, + 9, + 10, + 2300, + 428310 + ], + [ + 8, + 9, + 11, + 2300, + 428310 + ], + [ + 8, + 9, + 12, + 2300, + 428310 + ], + [ + 8, + 9, + 13, + 2300, + 428310 + ], + [ + 8, + 9, + 14, + 2300, + 428310 + ], + [ + 8, + 9, + 15, + 2300, + 428310 + ], + [ + 8, + 9, + 16, + 2300, + 428310 + ], + [ + 8, + 9, + 17, + 2300, + 428310 + ], + [ + 8, + 9, + 18, + 2300, + 428310 + ], + [ + 8, + 9, + 19, + 2300, + 428310 + ], + [ + 8, + 9, + 20, + 2300, + 428310 + ], + [ + 8, + 9, + 21, + 2300, + 428310 + ], + [ + 8, + 9, + 22, + 2300, + 428310 + ], + [ + 8, + 10, + 11, + 2300, + 428310 + ], + [ + 8, + 10, + 12, + 2300, + 428310 + ], + [ + 8, + 10, + 13, + 2300, + 428310 + ], + [ + 8, + 10, + 14, + 2300, + 428310 + ], + [ + 8, + 10, + 15, + 2300, + 428310 + ], + [ + 8, + 10, + 16, + 2300, + 428310 + ], + [ + 8, + 10, + 17, + 2300, + 428310 + ], + [ + 8, + 10, + 18, + 2300, + 428310 + ], + [ + 8, + 10, + 19, + 2300, + 428310 + ], + [ + 8, + 10, + 20, + 2300, + 428310 + ], + [ + 8, + 10, + 21, + 2300, + 428310 + ], + [ + 8, + 10, + 22, + 2300, + 428310 + ], + [ + 8, + 11, + 12, + 2300, + 428310 + ], + [ + 8, + 11, + 13, + 2300, + 428310 + ], + [ + 8, + 11, + 14, + 2300, + 428310 + ], + [ + 8, + 11, + 15, + 2300, + 428310 + ], + [ + 8, + 11, + 16, + 2300, + 428310 + ], + [ + 8, + 11, + 17, + 2300, + 428310 + ], + [ + 8, + 11, + 18, + 2300, + 428310 + ], + [ + 8, + 11, + 19, + 2300, + 428310 + ], + [ + 8, + 11, + 20, + 2300, + 428310 + ], + [ + 8, + 11, + 21, + 2300, + 428310 + ], + [ + 8, + 11, + 22, + 2300, + 428310 + ], + [ + 8, + 12, + 13, + 2300, + 428310 + ], + [ + 8, + 12, + 14, + 2300, + 428310 + ], + [ + 8, + 12, + 15, + 2300, + 428310 + ], + [ + 8, + 12, + 16, + 2300, + 428310 + ], + [ + 8, + 12, + 17, + 2300, + 428310 + ], + [ + 8, + 12, + 18, + 2300, + 428310 + ], + [ + 8, + 12, + 19, + 2300, + 428310 + ], + [ + 8, + 12, + 20, + 2300, + 428310 + ], + [ + 8, + 12, + 21, + 2300, + 428310 + ], + [ + 8, + 12, + 22, + 2300, + 428310 + ], + [ + 8, + 13, + 14, + 2300, + 428310 + ], + [ + 8, + 13, + 15, + 2300, + 428310 + ], + [ + 8, + 13, + 16, + 2300, + 428310 + ], + [ + 8, + 13, + 17, + 2300, + 428310 + ], + [ + 8, + 13, + 18, + 2300, + 428310 + ], + [ + 8, + 13, + 19, + 2300, + 428310 + ], + [ + 8, + 13, + 20, + 2300, + 428310 + ], + [ + 8, + 13, + 21, + 2300, + 428310 + ], + [ + 8, + 13, + 22, + 2300, + 428310 + ], + [ + 8, + 14, + 15, + 2300, + 428310 + ], + [ + 8, + 14, + 16, + 2300, + 428310 + ], + [ + 8, + 14, + 17, + 2300, + 428310 + ], + [ + 8, + 14, + 18, + 2300, + 428310 + ], + [ + 8, + 14, + 19, + 2300, + 428310 + ], + [ + 8, + 14, + 20, + 2300, + 428310 + ], + [ + 8, + 14, + 21, + 2300, + 428310 + ], + [ + 8, + 14, + 22, + 2300, + 428310 + ], + [ + 8, + 15, + 16, + 2300, + 428310 + ], + [ + 8, + 15, + 17, + 2300, + 428310 + ], + [ + 8, + 15, + 18, + 2300, + 428310 + ], + [ + 8, + 15, + 19, + 2300, + 428310 + ], + [ + 8, + 15, + 20, + 2300, + 428310 + ], + [ + 8, + 15, + 21, + 2300, + 428310 + ], + [ + 8, + 15, + 22, + 2300, + 428310 + ], + [ + 8, + 16, + 17, + 2300, + 428310 + ], + [ + 8, + 16, + 18, + 2300, + 428310 + ], + [ + 8, + 16, + 19, + 2300, + 428310 + ], + [ + 8, + 16, + 20, + 2300, + 428310 + ], + [ + 8, + 16, + 21, + 2300, + 428310 + ], + [ + 8, + 16, + 22, + 2300, + 428310 + ], + [ + 8, + 17, + 18, + 2300, + 428310 + ], + [ + 8, + 17, + 19, + 2300, + 428310 + ], + [ + 8, + 17, + 20, + 2300, + 428310 + ], + [ + 8, + 17, + 21, + 2300, + 428310 + ], + [ + 8, + 17, + 22, + 2300, + 428310 + ], + [ + 8, + 18, + 19, + 2300, + 428310 + ], + [ + 8, + 18, + 20, + 2300, + 428310 + ], + [ + 8, + 18, + 21, + 2300, + 428310 + ], + [ + 8, + 18, + 22, + 2300, + 428310 + ], + [ + 8, + 19, + 20, + 2300, + 428310 + ], + [ + 8, + 19, + 21, + 2300, + 428310 + ], + [ + 8, + 19, + 22, + 2300, + 428310 + ], + [ + 8, + 20, + 21, + 2300, + 428310 + ], + [ + 8, + 20, + 22, + 2300, + 428310 + ], + [ + 8, + 21, + 22, + 2300, + 428310 + ], + [ + 9, + 10, + 11, + 2300, + 428310 + ], + [ + 9, + 10, + 12, + 2300, + 428310 + ], + [ + 9, + 10, + 13, + 2300, + 428310 + ], + [ + 9, + 10, + 14, + 2300, + 428310 + ], + [ + 9, + 10, + 15, + 2300, + 428310 + ], + [ + 9, + 10, + 16, + 2300, + 428310 + ], + [ + 9, + 10, + 17, + 2300, + 428310 + ], + [ + 9, + 10, + 18, + 2300, + 428310 + ], + [ + 9, + 10, + 19, + 2300, + 428310 + ], + [ + 9, + 10, + 20, + 2300, + 428310 + ], + [ + 9, + 10, + 21, + 2300, + 428310 + ], + [ + 9, + 10, + 22, + 2300, + 428310 + ], + [ + 9, + 11, + 12, + 2300, + 428310 + ], + [ + 9, + 11, + 13, + 2300, + 428310 + ], + [ + 9, + 11, + 14, + 2300, + 428310 + ], + [ + 9, + 11, + 15, + 2300, + 428310 + ], + [ + 9, + 11, + 16, + 2300, + 428310 + ], + [ + 9, + 11, + 17, + 2300, + 428310 + ], + [ + 9, + 11, + 18, + 2300, + 428310 + ], + [ + 9, + 11, + 19, + 2300, + 428310 + ], + [ + 9, + 11, + 20, + 2300, + 428310 + ], + [ + 9, + 11, + 21, + 2300, + 428310 + ], + [ + 9, + 11, + 22, + 2300, + 428310 + ], + [ + 9, + 12, + 13, + 2300, + 428310 + ], + [ + 9, + 12, + 14, + 2300, + 428310 + ], + [ + 9, + 12, + 15, + 2300, + 428310 + ], + [ + 9, + 12, + 16, + 2300, + 428310 + ], + [ + 9, + 12, + 17, + 2300, + 428310 + ], + [ + 9, + 12, + 18, + 2300, + 428310 + ], + [ + 9, + 12, + 19, + 2300, + 428310 + ], + [ + 9, + 12, + 20, + 2300, + 428310 + ], + [ + 9, + 12, + 21, + 2300, + 428310 + ], + [ + 9, + 12, + 22, + 2300, + 428310 + ], + [ + 9, + 13, + 14, + 2300, + 428310 + ], + [ + 9, + 13, + 15, + 2300, + 428310 + ], + [ + 9, + 13, + 16, + 2300, + 428310 + ], + [ + 9, + 13, + 17, + 2300, + 428310 + ], + [ + 9, + 13, + 18, + 2300, + 428310 + ], + [ + 9, + 13, + 19, + 2300, + 428310 + ], + [ + 9, + 13, + 20, + 2300, + 428310 + ], + [ + 9, + 13, + 21, + 2300, + 428310 + ], + [ + 9, + 13, + 22, + 2300, + 428310 + ], + [ + 9, + 14, + 15, + 2300, + 428310 + ], + [ + 9, + 14, + 16, + 2300, + 428310 + ], + [ + 9, + 14, + 17, + 2300, + 428310 + ], + [ + 9, + 14, + 18, + 2300, + 428310 + ], + [ + 9, + 14, + 19, + 2300, + 428310 + ], + [ + 9, + 14, + 20, + 2300, + 428310 + ], + [ + 9, + 14, + 21, + 2300, + 428310 + ], + [ + 9, + 14, + 22, + 2300, + 428310 + ], + [ + 9, + 15, + 16, + 2300, + 428310 + ], + [ + 9, + 15, + 17, + 2300, + 428310 + ], + [ + 9, + 15, + 18, + 2300, + 428310 + ], + [ + 9, + 15, + 19, + 2300, + 428310 + ], + [ + 9, + 15, + 20, + 2300, + 428310 + ], + [ + 9, + 15, + 21, + 2300, + 428310 + ], + [ + 9, + 15, + 22, + 2300, + 428310 + ], + [ + 9, + 16, + 17, + 2300, + 428310 + ], + [ + 9, + 16, + 18, + 2300, + 428310 + ], + [ + 9, + 16, + 19, + 2300, + 428310 + ], + [ + 9, + 16, + 20, + 2300, + 428310 + ], + [ + 9, + 16, + 21, + 2300, + 428310 + ], + [ + 9, + 16, + 22, + 2300, + 428310 + ], + [ + 9, + 17, + 18, + 2300, + 428310 + ], + [ + 9, + 17, + 19, + 2300, + 428310 + ], + [ + 9, + 17, + 20, + 2300, + 428310 + ], + [ + 9, + 17, + 21, + 2300, + 428310 + ], + [ + 9, + 17, + 22, + 2300, + 428310 + ], + [ + 9, + 18, + 19, + 2300, + 428310 + ], + [ + 9, + 18, + 20, + 2300, + 428310 + ], + [ + 9, + 18, + 21, + 2300, + 428310 + ], + [ + 9, + 18, + 22, + 2300, + 428310 + ], + [ + 9, + 19, + 20, + 2300, + 428310 + ], + [ + 9, + 19, + 21, + 2300, + 428310 + ], + [ + 9, + 19, + 22, + 2300, + 428310 + ], + [ + 9, + 20, + 21, + 2300, + 428310 + ], + [ + 9, + 20, + 22, + 2300, + 428310 + ], + [ + 9, + 21, + 22, + 2300, + 428310 + ], + [ + 10, + 11, + 12, + 2300, + 428310 + ], + [ + 10, + 11, + 13, + 2300, + 428310 + ], + [ + 10, + 11, + 14, + 2300, + 428310 + ], + [ + 10, + 11, + 15, + 2300, + 428310 + ], + [ + 10, + 11, + 16, + 2300, + 428310 + ], + [ + 10, + 11, + 17, + 2300, + 428310 + ], + [ + 10, + 11, + 18, + 2300, + 428310 + ], + [ + 10, + 11, + 19, + 2300, + 428310 + ], + [ + 10, + 11, + 20, + 2300, + 428310 + ], + [ + 10, + 11, + 21, + 2300, + 428310 + ], + [ + 10, + 11, + 22, + 2299, + 189775 + ], + [ + 10, + 12, + 13, + 2300, + 428310 + ], + [ + 10, + 12, + 14, + 2300, + 428310 + ], + [ + 10, + 12, + 15, + 2300, + 428310 + ], + [ + 10, + 12, + 16, + 2300, + 428310 + ], + [ + 10, + 12, + 17, + 2300, + 428310 + ], + [ + 10, + 12, + 18, + 2300, + 428310 + ], + [ + 10, + 12, + 19, + 2300, + 428310 + ], + [ + 10, + 12, + 20, + 2300, + 428310 + ], + [ + 10, + 12, + 21, + 2300, + 428310 + ], + [ + 10, + 12, + 22, + 2300, + 428310 + ], + [ + 10, + 13, + 14, + 2300, + 428310 + ], + [ + 10, + 13, + 15, + 2300, + 428310 + ], + [ + 10, + 13, + 16, + 2300, + 428310 + ], + [ + 10, + 13, + 17, + 2300, + 428310 + ], + [ + 10, + 13, + 18, + 2300, + 428310 + ], + [ + 10, + 13, + 19, + 2300, + 428310 + ], + [ + 10, + 13, + 20, + 2300, + 428310 + ], + [ + 10, + 13, + 21, + 2300, + 428310 + ], + [ + 10, + 13, + 22, + 2300, + 428310 + ], + [ + 10, + 14, + 15, + 2300, + 428310 + ], + [ + 10, + 14, + 16, + 2300, + 428310 + ], + [ + 10, + 14, + 17, + 2300, + 428310 + ], + [ + 10, + 14, + 18, + 2300, + 428310 + ], + [ + 10, + 14, + 19, + 2300, + 428310 + ], + [ + 10, + 14, + 20, + 2300, + 428310 + ], + [ + 10, + 14, + 21, + 2300, + 428310 + ], + [ + 10, + 14, + 22, + 2300, + 428310 + ], + [ + 10, + 15, + 16, + 2300, + 428310 + ], + [ + 10, + 15, + 17, + 2300, + 428310 + ], + [ + 10, + 15, + 18, + 2300, + 428310 + ], + [ + 10, + 15, + 19, + 2300, + 428310 + ], + [ + 10, + 15, + 20, + 2300, + 428310 + ], + [ + 10, + 15, + 21, + 2300, + 428310 + ], + [ + 10, + 15, + 22, + 2300, + 428310 + ], + [ + 10, + 16, + 17, + 2300, + 428310 + ], + [ + 10, + 16, + 18, + 2300, + 428310 + ], + [ + 10, + 16, + 19, + 2300, + 428310 + ], + [ + 10, + 16, + 20, + 2300, + 428310 + ], + [ + 10, + 16, + 21, + 2300, + 428310 + ], + [ + 10, + 16, + 22, + 2300, + 428310 + ], + [ + 10, + 17, + 18, + 2300, + 428310 + ], + [ + 10, + 17, + 19, + 2300, + 428310 + ], + [ + 10, + 17, + 20, + 2300, + 428310 + ], + [ + 10, + 17, + 21, + 2300, + 428310 + ], + [ + 10, + 17, + 22, + 2300, + 428310 + ], + [ + 10, + 18, + 19, + 2300, + 428310 + ], + [ + 10, + 18, + 20, + 2300, + 428310 + ], + [ + 10, + 18, + 21, + 2300, + 428310 + ], + [ + 10, + 18, + 22, + 2300, + 428310 + ], + [ + 10, + 19, + 20, + 2300, + 428310 + ], + [ + 10, + 19, + 21, + 2300, + 428310 + ], + [ + 10, + 19, + 22, + 2300, + 428310 + ], + [ + 10, + 20, + 21, + 2300, + 428310 + ], + [ + 10, + 20, + 22, + 2300, + 428310 + ], + [ + 10, + 21, + 22, + 2300, + 428310 + ], + [ + 11, + 12, + 13, + 2300, + 428310 + ], + [ + 11, + 12, + 14, + 2300, + 428310 + ], + [ + 11, + 12, + 15, + 2300, + 428310 + ], + [ + 11, + 12, + 16, + 2300, + 428310 + ], + [ + 11, + 12, + 17, + 2300, + 428310 + ], + [ + 11, + 12, + 18, + 2300, + 428310 + ], + [ + 11, + 12, + 19, + 2300, + 428310 + ], + [ + 11, + 12, + 20, + 2300, + 428310 + ], + [ + 11, + 12, + 21, + 2300, + 428310 + ], + [ + 11, + 12, + 22, + 2300, + 428310 + ], + [ + 11, + 13, + 14, + 2300, + 428310 + ], + [ + 11, + 13, + 15, + 2300, + 428310 + ], + [ + 11, + 13, + 16, + 2300, + 428310 + ], + [ + 11, + 13, + 17, + 2300, + 428310 + ], + [ + 11, + 13, + 18, + 2300, + 428310 + ], + [ + 11, + 13, + 19, + 2300, + 428310 + ], + [ + 11, + 13, + 20, + 2300, + 428310 + ], + [ + 11, + 13, + 21, + 2300, + 428310 + ], + [ + 11, + 13, + 22, + 2300, + 428310 + ], + [ + 11, + 14, + 15, + 2300, + 428310 + ], + [ + 11, + 14, + 16, + 2300, + 428310 + ], + [ + 11, + 14, + 17, + 2300, + 428310 + ], + [ + 11, + 14, + 18, + 2300, + 428310 + ], + [ + 11, + 14, + 19, + 2300, + 428310 + ], + [ + 11, + 14, + 20, + 2300, + 428310 + ], + [ + 11, + 14, + 21, + 2300, + 428310 + ], + [ + 11, + 14, + 22, + 2300, + 428310 + ], + [ + 11, + 15, + 16, + 2300, + 428310 + ], + [ + 11, + 15, + 17, + 2300, + 428310 + ], + [ + 11, + 15, + 18, + 2300, + 428310 + ], + [ + 11, + 15, + 19, + 2300, + 428310 + ], + [ + 11, + 15, + 20, + 2300, + 428310 + ], + [ + 11, + 15, + 21, + 2300, + 428310 + ], + [ + 11, + 15, + 22, + 2300, + 428310 + ], + [ + 11, + 16, + 17, + 2300, + 428310 + ], + [ + 11, + 16, + 18, + 2300, + 428310 + ], + [ + 11, + 16, + 19, + 2300, + 428310 + ], + [ + 11, + 16, + 20, + 2300, + 428310 + ], + [ + 11, + 16, + 21, + 2300, + 428310 + ], + [ + 11, + 16, + 22, + 2300, + 428310 + ], + [ + 11, + 17, + 18, + 2300, + 428310 + ], + [ + 11, + 17, + 19, + 2300, + 428310 + ], + [ + 11, + 17, + 20, + 2300, + 428310 + ], + [ + 11, + 17, + 21, + 2300, + 428310 + ], + [ + 11, + 17, + 22, + 2300, + 428310 + ], + [ + 11, + 18, + 19, + 2300, + 428310 + ], + [ + 11, + 18, + 20, + 2300, + 428310 + ], + [ + 11, + 18, + 21, + 2300, + 428310 + ], + [ + 11, + 18, + 22, + 2300, + 428310 + ], + [ + 11, + 19, + 20, + 2300, + 428310 + ], + [ + 11, + 19, + 21, + 2300, + 428310 + ], + [ + 11, + 19, + 22, + 2300, + 428310 + ], + [ + 11, + 20, + 21, + 2300, + 428310 + ], + [ + 11, + 20, + 22, + 2300, + 428310 + ], + [ + 11, + 21, + 22, + 2300, + 428310 + ], + [ + 12, + 13, + 14, + 2300, + 428310 + ], + [ + 12, + 13, + 15, + 2300, + 428310 + ], + [ + 12, + 13, + 16, + 2300, + 428310 + ], + [ + 12, + 13, + 17, + 2300, + 428310 + ], + [ + 12, + 13, + 18, + 2300, + 428310 + ], + [ + 12, + 13, + 19, + 2300, + 428310 + ], + [ + 12, + 13, + 20, + 2300, + 428310 + ], + [ + 12, + 13, + 21, + 2300, + 428310 + ], + [ + 12, + 13, + 22, + 2299, + 189775 + ], + [ + 12, + 14, + 15, + 2300, + 428310 + ], + [ + 12, + 14, + 16, + 2300, + 428310 + ], + [ + 12, + 14, + 17, + 2300, + 428310 + ], + [ + 12, + 14, + 18, + 2300, + 428310 + ], + [ + 12, + 14, + 19, + 2300, + 428310 + ], + [ + 12, + 14, + 20, + 2300, + 428310 + ], + [ + 12, + 14, + 21, + 2300, + 428310 + ], + [ + 12, + 14, + 22, + 2300, + 428310 + ], + [ + 12, + 15, + 16, + 2300, + 428310 + ], + [ + 12, + 15, + 17, + 2300, + 428310 + ], + [ + 12, + 15, + 18, + 2300, + 428310 + ], + [ + 12, + 15, + 19, + 2300, + 428310 + ], + [ + 12, + 15, + 20, + 2300, + 428310 + ], + [ + 12, + 15, + 21, + 2300, + 428310 + ], + [ + 12, + 15, + 22, + 2300, + 428310 + ], + [ + 12, + 16, + 17, + 2300, + 428310 + ], + [ + 12, + 16, + 18, + 2300, + 428310 + ], + [ + 12, + 16, + 19, + 2300, + 428310 + ], + [ + 12, + 16, + 20, + 2300, + 428310 + ], + [ + 12, + 16, + 21, + 2300, + 428310 + ], + [ + 12, + 16, + 22, + 2300, + 428310 + ], + [ + 12, + 17, + 18, + 2300, + 428310 + ], + [ + 12, + 17, + 19, + 2300, + 428310 + ], + [ + 12, + 17, + 20, + 2300, + 428310 + ], + [ + 12, + 17, + 21, + 2300, + 428310 + ], + [ + 12, + 17, + 22, + 2300, + 428310 + ], + [ + 12, + 18, + 19, + 2300, + 428310 + ], + [ + 12, + 18, + 20, + 2300, + 428310 + ], + [ + 12, + 18, + 21, + 2300, + 428310 + ], + [ + 12, + 18, + 22, + 2300, + 428310 + ], + [ + 12, + 19, + 20, + 2300, + 428310 + ], + [ + 12, + 19, + 21, + 2300, + 428310 + ], + [ + 12, + 19, + 22, + 2300, + 428310 + ], + [ + 12, + 20, + 21, + 2300, + 428310 + ], + [ + 12, + 20, + 22, + 2300, + 428310 + ], + [ + 12, + 21, + 22, + 2300, + 428310 + ], + [ + 13, + 14, + 15, + 2300, + 428310 + ], + [ + 13, + 14, + 16, + 2300, + 428310 + ], + [ + 13, + 14, + 17, + 2300, + 428310 + ], + [ + 13, + 14, + 18, + 2300, + 428310 + ], + [ + 13, + 14, + 19, + 2300, + 428310 + ], + [ + 13, + 14, + 20, + 2300, + 428310 + ], + [ + 13, + 14, + 21, + 2300, + 428310 + ], + [ + 13, + 14, + 22, + 2300, + 428310 + ], + [ + 13, + 15, + 16, + 2300, + 428310 + ], + [ + 13, + 15, + 17, + 2300, + 428310 + ], + [ + 13, + 15, + 18, + 2300, + 428310 + ], + [ + 13, + 15, + 19, + 2300, + 428310 + ], + [ + 13, + 15, + 20, + 2300, + 428310 + ], + [ + 13, + 15, + 21, + 2300, + 428310 + ], + [ + 13, + 15, + 22, + 2300, + 428310 + ], + [ + 13, + 16, + 17, + 2300, + 428310 + ], + [ + 13, + 16, + 18, + 2300, + 428310 + ], + [ + 13, + 16, + 19, + 2300, + 428310 + ], + [ + 13, + 16, + 20, + 2300, + 428310 + ], + [ + 13, + 16, + 21, + 2300, + 428310 + ], + [ + 13, + 16, + 22, + 2300, + 428310 + ], + [ + 13, + 17, + 18, + 2300, + 428310 + ], + [ + 13, + 17, + 19, + 2300, + 428310 + ], + [ + 13, + 17, + 20, + 2300, + 428310 + ], + [ + 13, + 17, + 21, + 2300, + 428310 + ], + [ + 13, + 17, + 22, + 2300, + 428310 + ], + [ + 13, + 18, + 19, + 2300, + 428310 + ], + [ + 13, + 18, + 20, + 2300, + 428310 + ], + [ + 13, + 18, + 21, + 2300, + 428310 + ], + [ + 13, + 18, + 22, + 2300, + 428310 + ], + [ + 13, + 19, + 20, + 2300, + 428310 + ], + [ + 13, + 19, + 21, + 2300, + 428310 + ], + [ + 13, + 19, + 22, + 2300, + 428310 + ], + [ + 13, + 20, + 21, + 2300, + 428310 + ], + [ + 13, + 20, + 22, + 2300, + 428310 + ], + [ + 13, + 21, + 22, + 2300, + 428310 + ], + [ + 14, + 15, + 16, + 2300, + 428310 + ], + [ + 14, + 15, + 17, + 2300, + 428310 + ], + [ + 14, + 15, + 18, + 2300, + 428310 + ], + [ + 14, + 15, + 19, + 2300, + 428310 + ], + [ + 14, + 15, + 20, + 2300, + 428310 + ], + [ + 14, + 15, + 21, + 2300, + 428310 + ], + [ + 14, + 15, + 22, + 2300, + 428310 + ], + [ + 14, + 16, + 17, + 2300, + 428310 + ], + [ + 14, + 16, + 18, + 2300, + 428310 + ], + [ + 14, + 16, + 19, + 2300, + 428310 + ], + [ + 14, + 16, + 20, + 2300, + 428310 + ], + [ + 14, + 16, + 21, + 2300, + 428310 + ], + [ + 14, + 16, + 22, + 2300, + 428310 + ], + [ + 14, + 17, + 18, + 2300, + 428310 + ], + [ + 14, + 17, + 19, + 2300, + 428310 + ], + [ + 14, + 17, + 20, + 2300, + 428310 + ], + [ + 14, + 17, + 21, + 2300, + 428310 + ], + [ + 14, + 17, + 22, + 2300, + 428310 + ], + [ + 14, + 18, + 19, + 2300, + 428310 + ], + [ + 14, + 18, + 20, + 2300, + 428310 + ], + [ + 14, + 18, + 21, + 2300, + 428310 + ], + [ + 14, + 18, + 22, + 2300, + 428310 + ], + [ + 14, + 19, + 20, + 2300, + 428310 + ], + [ + 14, + 19, + 21, + 2300, + 428310 + ], + [ + 14, + 19, + 22, + 2300, + 428310 + ], + [ + 14, + 20, + 21, + 2300, + 428310 + ], + [ + 14, + 20, + 22, + 2300, + 428310 + ], + [ + 14, + 21, + 22, + 2300, + 428310 + ], + [ + 15, + 16, + 17, + 2300, + 428310 + ], + [ + 15, + 16, + 18, + 2300, + 428310 + ], + [ + 15, + 16, + 19, + 2300, + 428310 + ], + [ + 15, + 16, + 20, + 2300, + 428310 + ], + [ + 15, + 16, + 21, + 2300, + 428310 + ], + [ + 15, + 16, + 22, + 2300, + 428310 + ], + [ + 15, + 17, + 18, + 2300, + 428310 + ], + [ + 15, + 17, + 19, + 2300, + 428310 + ], + [ + 15, + 17, + 20, + 2300, + 428310 + ], + [ + 15, + 17, + 21, + 2300, + 428310 + ], + [ + 15, + 17, + 22, + 2300, + 428310 + ], + [ + 15, + 18, + 19, + 2300, + 428310 + ], + [ + 15, + 18, + 20, + 2300, + 428310 + ], + [ + 15, + 18, + 21, + 2300, + 428310 + ], + [ + 15, + 18, + 22, + 2300, + 428310 + ], + [ + 15, + 19, + 20, + 2300, + 428310 + ], + [ + 15, + 19, + 21, + 2300, + 428310 + ], + [ + 15, + 19, + 22, + 2300, + 428310 + ], + [ + 15, + 20, + 21, + 2300, + 428310 + ], + [ + 15, + 20, + 22, + 2300, + 428310 + ], + [ + 15, + 21, + 22, + 2300, + 428310 + ], + [ + 16, + 17, + 18, + 2300, + 428310 + ], + [ + 16, + 17, + 19, + 2300, + 428310 + ], + [ + 16, + 17, + 20, + 2300, + 428310 + ], + [ + 16, + 17, + 21, + 2300, + 428310 + ], + [ + 16, + 17, + 22, + 2300, + 428310 + ], + [ + 16, + 18, + 19, + 2300, + 428310 + ], + [ + 16, + 18, + 20, + 2300, + 428310 + ], + [ + 16, + 18, + 21, + 2300, + 428310 + ], + [ + 16, + 18, + 22, + 2300, + 428310 + ], + [ + 16, + 19, + 20, + 2300, + 428310 + ], + [ + 16, + 19, + 21, + 2300, + 428310 + ], + [ + 16, + 19, + 22, + 2300, + 428310 + ], + [ + 16, + 20, + 21, + 2300, + 428310 + ], + [ + 16, + 20, + 22, + 2300, + 428310 + ], + [ + 16, + 21, + 22, + 2300, + 428310 + ], + [ + 17, + 18, + 19, + 2300, + 428310 + ], + [ + 17, + 18, + 20, + 2300, + 428310 + ], + [ + 17, + 18, + 21, + 2300, + 428310 + ], + [ + 17, + 18, + 22, + 2300, + 428310 + ], + [ + 17, + 19, + 20, + 2300, + 428310 + ], + [ + 17, + 19, + 21, + 2300, + 428310 + ], + [ + 17, + 19, + 22, + 2300, + 428310 + ], + [ + 17, + 20, + 21, + 2300, + 428310 + ], + [ + 17, + 20, + 22, + 2300, + 428310 + ], + [ + 17, + 21, + 22, + 2300, + 428310 + ], + [ + 18, + 19, + 20, + 2300, + 428310 + ], + [ + 18, + 19, + 21, + 2300, + 428310 + ], + [ + 18, + 19, + 22, + 2300, + 428310 + ], + [ + 18, + 20, + 21, + 2300, + 428310 + ], + [ + 18, + 20, + 22, + 2300, + 428310 + ], + [ + 18, + 21, + 22, + 2300, + 428310 + ], + [ + 19, + 20, + 21, + 2300, + 428310 + ], + [ + 19, + 20, + 22, + 2300, + 428310 + ], + [ + 19, + 21, + 22, + 2300, + 428310 + ], + [ + 20, + 21, + 22, + 2300, + 428310 + ] + ] + }, + "row_tree": [ + [ + 0, + 23 + ], + [ + 1, + 24 + ], + [ + 2, + 25 + ], + [ + 3, + 26 + ], + [ + 4, + 27 + ], + [ + 5, + 28 + ], + [ + 6, + 29 + ], + [ + 7, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 32 + ], + [ + 10, + 33 + ], + [ + 11, + 34 + ], + [ + 12, + 35 + ], + [ + 13, + 36 + ], + [ + 14, + 37 + ], + [ + 15, + 38 + ], + [ + 16, + 39 + ], + [ + 17, + 40 + ], + [ + 18, + 41 + ], + [ + 19, + 42 + ], + [ + 20, + 43 + ], + [ + 21, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 0, + 47 + ], + [ + 1, + 23 + ], + [ + 2, + 24 + ], + [ + 3, + 25 + ], + [ + 4, + 26 + ], + [ + 5, + 27 + ], + [ + 6, + 28 + ], + [ + 7, + 29 + ], + [ + 8, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 32 + ], + [ + 11, + 33 + ], + [ + 12, + 34 + ], + [ + 13, + 35 + ], + [ + 14, + 36 + ], + [ + 15, + 37 + ], + [ + 16, + 38 + ], + [ + 17, + 39 + ], + [ + 18, + 40 + ], + [ + 19, + 41 + ], + [ + 20, + 42 + ], + [ + 21, + 43 + ], + [ + 22, + 44 + ] + ], + "scope": "Nonzero modular pivots certify rational nonvanishing at the actual two fixed bases; zeros follow separate exact rank cuts. Ten primary-prime failures are replayed with exact rational elimination, yielding the same profile for every pair." + }, + "kappa": "411862541/10000000000000", + "local_sha256": { + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/SOURCE.json": "bd5a765474ed52155f3393951b96babc4ca3fe7522397140c51594289b401e32", + "research/copied-fixed/audit.py": "dd369a7a6e0be4354c05560d0e1d9750c14839928459f43beeb55970f86e0631", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/data_corners.cpp": "d134f43d31b896daf504511991be8608c6ba9d20a6606c57e2e12d4b203b7d44", + "research/copied-fixed/data_recovery.py": "0de7e0fc4f38b066ec319e4dde43bce8f20edd207be9f9736610babf95030253", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/original_timeline.py": "cf152459e080f556931122bc0afa3417835ea4a6d14e541be12c67f317e25f60", + "research/copied-fixed/producer.py": "281b7ebcbad71d2cebca80b1aca4af1d63417e3995576be41f040b776a51e43e", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a" + }, + "scope": "Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); all actual data pairs checked for 9 singletons +21+17+481; ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/matching/profile reconstruction is producer.py. OpenAI base theorem, written residual compiler, fixed-tape recursion, analytic/semantic/routing/recovery and eventual-threshold interfaces remain assumed.", + "sources": { + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + } + }, + "status": "Conditional exact arithmetic witness; general transfer proofs are dependencies" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py new file mode 100644 index 0000000000..24070a7d85 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py @@ -0,0 +1,60 @@ +"""Changed exclusion graphs with more admissible retained carriers. + +Underlying cancellation-free generators: icekylinx PR18/36. Alternating +point order: RaD/hipotures PR41, checkpoint 7e488e6b25dc1713c1f41baaf1cefbf677507cf3. +Compared with PR46, reorder the vector leave-one-out construction by source +support size, breaking ties by ascending support at h23 and descending at +h25; restore the original output indexing. The h23 total folds in reverse +input order, while h25 retains descending (support size, support) order. +Prepared with OpenAI Codex assistance. Apache-2.0. +""" +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h,common): + pairs=[(a,a+1) for a in range(0,h-1,2) if common not in (a,a+1)] + if common%2: + pairs.reverse() + head=[x for pair in pairs for x in pair] + return head+[x for x in range(h) if x!=common and x not in head] + + +def graph(h): + assert h in (23,25) + class Changed(PairedExclusionCircuit): + base_threshold=2 + def total(self,values): + values=[x for x in values if x] + if h==23: + values.reverse() + else: + values.sort(key=lambda node:(self.support[node].bit_count(),self.support[node]),reverse=True) + result=0 + for node in values: + result=self.add(result,node) + return result + def vector(self,values,two=True): + if two: + return super().vector(values,two) + sign=1 if h==23 else -1 + order=sorted(range(len(values)),key=lambda i: + (self.support[values[i]].bit_count(),sign*self.support[values[i]])) + total,one,_=super().vector([values[i] for i in order],False) + restored=[0]*len(values) + for position,original in enumerate(order): + restored[original]=one[position] + return total,restored,{} + local=Changed(h-1) + total=local.pair(list(range(h-1)))[0] + local.outputs[()]=total + stack=[total] + while stack: + node=stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions=sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h,local,point_order=alternating_points) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp new file mode 100644 index 0000000000..410e50f475 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp @@ -0,0 +1,107 @@ +#include +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){assert(argc==2||argc==3);std::ifstream f(argv[1],std::ios::binary);U hdr[4];read_array(f,hdr);U h=hdr[0],v=hdr[1],n=hdr[2],q=hdr[3];assert(h==23||h==25); +std::vector>args(n);std::vectorcore(n),cover(n);std::vectorroots(q),kind(q);std::vectoractive(n);readv(f,args);readv(f,core);readv(f,cover);readv(f,roots);readv(f,kind);readv(f,active); +std::vectorranks(n),degree(n),begin(n+1);V c=0,inputs=0,loss=0; +for(U x=1;xuses(begin.back()),cursor(begin.begin(),begin.end()-1);for(U x=1;xU{return e>>31?roots[e&0x7fffffff]:e/2;}; +auto before=[&](U a,U b){U x=nd(a),y=nd(b);if(ranks[x]!=ranks[y])return ranks[x]>31?V(n)+(a&0x7fffffff):x,oy=b>>31?V(n)+(b&0x7fffffff):y;return oxdonors;for(U x=1;xleftmatch(n),rightmatch(uses.size()),distance(n,UINT32_MAX),queue;V matches=0;U phase=0,inf=UINT32_MAX,shortest=inf; +const char* lin=getenv("LINKS_IN"); +assert(lin && "A pinned carrier matching is required"); +if(lin){std::ifstream lf(lin,std::ios::binary);U hd[2];read_array(lf,hd);assert(hd[0]==n);std::vectorisdonor(n);for(U x:donors)isdonor[x]=1;for(U i=0;i=shortest)continue;adjacency(x,[&](U j){U y=rightmatch[j];if(!y)shortest=distance[x]+1;else if(distance[y]==inf){distance[y]=distance[x]+1;queue.push_back(y);}return false;});}if(shortest==inf)break; +auto aug=[&](auto&&self,U x)->bool{bool ok=adjacency(x,[&](U j){U y=rightmatch[j];if((!y&&distance[x]+1==shortest)||(y&&distance[y]==distance[x]+1&&self(self,y))){leftmatch[x]=j+1;rightmatch[j]=x;return true;}return false;});if(!ok)distance[x]=inf;return ok;};V gained=0;for(U x:donors)if(!leftmatch[x]&&aug(aug,x)){matches++;gained++;}std::cerr<<"h="<hist(h+1);for(U x=1;x=ranks[y]);hist[r-ranks[y]]++;}}else hist[1]+=degree[x];} +for(U j=0;j>31?target:args[target][e&1];assert(value==args[donor][0]||value==args[donor][1]);if(value==args[donor][0])changed++;U ru=ranks[donor],rv=ranks[value],rt=ranks[target];assert(rt>=ru&&ru>=rv);hist[h-ru]--;hist[rv]--;hist[rt-rv]--;hist[rt-ru]++;} +V R=c+q-matches,sum=0;for(U r=0;r<=h;r++){assert(hist[r]>=0);sum+=r*hist[r];}assert(sum==h*R+2*loss); +if(argc==3){std::ofstream out(argv[2],std::ios::binary);U header[2]={n,U(matches)};write_array(out,header);for(U donor:donors)if(leftmatch[donor]){U edge[2]={donor,uses[leftmatch[donor]-1]};write_array(out,edge);}assert(out);} +std::cout<<"{\"h\":"<frames{{0,0,0},{0,0,h}};std::map,U>frame_lookup;std::vectorfi(n); +for(U x=1;xsecond;} +std::map,int64_t>transitions;int64_t singles=0; +auto edge=[&](U a,U b,int64_t count){if(a==b)return;transitions[{a,b}]+=count;}; +for(U x=1;x>31?target:args[target][e&1];edge(fi[donor],1,-1);edge(0,fi[value],-1);edge(fi[value],fi[target],-1);edge(fi[donor],fi[target],1);} +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".round3_rankone_certified_profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +def tree(edges, n): + require(len(edges) == n-1 and len(set(edges)) == n-1, 'Wrong tree edge count') + seen = {0} + while True: + new = seen | {v for u,v in edges if u in seen} | {u for u,v in edges if v in seen} + if new == seen: + break + seen = new + require(len(seen) == n, 'Disconnected restriction graph') + + +def data_corners(): + c = read(HERE/'data-corners.json') + prime = c['prime'] + require(prime == 1000003 and all(prime % j for j in range(2,isqrt(prime)+1)), + 'Data witness prime not proved') + require(c['dimensions'] == [23,25], 'Data dimensions') + require([tuple(r[:3]) for r in c['records']] == list(combinations(range(23),3)), + 'Incomplete first triple coverage') + require(all(0 <= r[3] <= 2300 and 0 < r[4] < prime for r in c['records']), + 'Invalid modular product record') + failures = c['fallback_pairs'] + require(len({tuple(r[:6]) for r in failures}) == len(failures), 'Duplicate fallback') + counts = Counter() + for aa,bb,cc,u,v,w,row in failures: + require(0<=aa= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + + +def profile(): + a,b = 23,25 + m = a*b + rows = [read(HERE / f'original-{h}.json') for h in (a,b)] + N = comb(a,3)*comb(b,3) + W = 2*N+sum(N//r['v']*r['R'] for r in rows) + L = sum(N//r['v']*r['loss'] for r in rows) + data = data_corners() + good,bad = data['good'],data['fallback'] + parts = {'data':Counter({1:2*(9*good+47*bad),21:2*good,17:2*good,481:2*N}), + 'paid_endpoint_copy':Counter({1:N})} + axes = [] + for row in rows: + h = row['h'] + require(row['v'] == comb(h,3), 'Triple count') + require(row['R'] == row['c']+row['q']-row['matched'], 'Role allocation') + require(row['loss'] == h*(h-1), 'Retained center loss') + require(sum(r*n for r,n in enumerate(row['histogram'])) == h*row['R']+2*row['loss'], + 'Original frame rank mass') + f = read(HERE / f'profiles-{h}.json') + for key in ('h','v','R','loss','rank_sum'): + require(f[key] == row[key], 'Fixed/original mismatch: '+key) + require(f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1, + 'Invalid CRT profile') + blocks = f['blocks'][:] + require(len(blocks) == h+1 and all(type(n) is int and n>=0 for n in blocks), + 'Invalid fixed blocks') + require(sum(t*n for t,n in enumerate(blocks)) == f['rank_sum'], 'Fixed profile mass') + require(blocks[h] == h, 'Exactly h full center cleanup calls expected') + # Preserve every transformed copy. Replace only its original's full cleanup. + blocks[h] -= h + blocks[1] += h + require(sum(t*n for t,n in enumerate(blocks)) == h*row['R']+row['loss'], + 'Copied fixed profile mass') + rep = N//row['v'] + bank = rep*row['R'] + parts[f'internal_{h}'] = Counter({t:n*rep for t,n in enumerate(blocks) if t and n}) + parts[f'exterior_{h}'] = Counter({h:bank,m-2*h:bank}) + parts[f'data_growth_{h}'] = Counter({1:2*N,h-2:2*N}) + axes.append(dict(original=row,fixed=f,copied_blocks=blocks,exactness=exactness(h))) + hist = sum(parts.values(),Counter()) + s = sum(t*n for t,n in hist.items()) + require(s == W*m-N+L == 102078397025, 'Complete rank mass') + require((m,N,W,L) == (575,4073300,177530859,2226400), 'Physical constants') + require(max(hist) == 529 and all(00 for t,n in hist.items()), 'Proper children') + return dict(m=m,N=N,W=W,L=L,total_rank=s,deficit=W*m-s,maxchild=max(hist), + child_multiplicities=dict(sorted(hist.items())),parts=parts,axes=axes) + + +def run(): + require(not sys.flags.optimize, 'Assertions must remain enabled') + sources = check_sources() + prior = baseline.certificate() + geo,p = geometry(),profile() + exact = moment(p['m'],p['W'],p['child_multiplicities'],AB) + require(exact['upper'] < 1, 'Bit characteristic failed') + old = prior['bit']['counts'] + old_at_new = moment(old['m'],old['W'],old['child_multiplicities'],AB) + require(old_at_new['lower'] > 1, 'Old construction not excluded at new saving') + forward=read(HERE/'comparison-pr40.json') + forward_rows={int(t):n for t,n in forward['child_multiplicities'].items()} + require(sum(t*n for t,n in forward_rows.items())==108202762275, 'PR40 rank mismatch') + forward_at_new=moment(forward['m'],forward['W'],forward_rows,AB) + require(forward_at_new['lower']>1,'PR40 network not excluded at new saving') + rad=read(HERE/'comparison-pr41.json') + rad_rows={int(t):n for t,n in rad['child_multiplicities'].items()} + require(sum(t*n for t,n in rad_rows.items())==rad['total_rank']==102565738275,'PR41 rank mismatch') + rad_at_new=moment(rad['m'],rad['W'],rad_rows,AB) + require(rad_at_new['lower']>1,'PR41 alternating network not excluded at new saving') + newest=read(HERE/'comparison-pr42.json') + newest_rows={int(t):n for t,n in newest['child_multiplicities'].items()} + require(sum(t*n for t,n in newest_rows.items())==newest['total_rank']==102565738275,'PR42 rank mismatch') + newest_at_new=moment(newest['m'],newest['W'],newest_rows,AB) + require(newest_at_new['lower']>1,'PR42 network not excluded at new saving') + previous=read(HERE/'comparison-pr43.json') + previous_rows={int(t):n for t,n in previous['child_multiplicities'].items()} + require(sum(t*n for t,n in previous_rows.items())==previous['total_rank']==102565738275,'PR43 rank mismatch') + previous_at_new=moment(previous['m'],previous['W'],previous_rows,AB) + require(previous_at_new['lower']>1,'PR43 network not excluded at new saving') + frontier=read(HERE/'comparison-pr44.json') + frontier_rows={int(t):n for t,n in frontier['child_multiplicities'].items()} + require(sum(t*n for t,n in frontier_rows.items())==frontier['total_rank']==102565738275,'PR44 rank mismatch') + frontier_at_new=moment(frontier['m'],frontier['W'],frontier_rows,AB) + require(frontier_at_new['lower']>1,'PR44 network not excluded at new saving') + parent=read(HERE/'comparison-pr46.json') + parent_rows={int(t):n for t,n in parent['child_multiplicities'].items()} + require(sum(t*n for t,n in parent_rows.items())==parent['total_rank']==102565738275,'PR46 rank mismatch') + parent_at_new=moment(parent['m'],parent['W'],parent_rows,AB) + require(parent_at_new['lower']>1,'PR46 network not excluded at new saving') + latest=read(HERE/'comparison-pr47.json') + latest_rows={int(t):n for t,n in latest['child_multiplicities'].items()} + require(sum(t*n for t,n in latest_rows.items())==latest['total_rank']==latest['W']*latest['m']-1846900,'PR47 rank mismatch') + latest_at_new=moment(latest['m'],latest['W'],latest_rows,AB) + require(latest_at_new['lower']>1,'PR47 network not excluded at new saving') + phase = prior['complex']['counts'] + phase_row = read(ROOT / 'certificates/copied-centers-complex-input.json') + bridge = baseline.finite_bridge(p,phase,[phase_row,phase_row]) + require(all(js(bridge[k])==js(prior['finite_bridge'][k]) for k in ('complex','semantic','rows')), 'Unexpected phase or stock change') + final = assembly(bridge,AB,KAPPA,a_complex=AC) + eventual = cutoffs(bridge,final) + require(KAPPA > PR47_KAPPA > PR46_KAPPA > PR44_KAPPA > PR43_KAPPA > PR42_KAPPA > PR41_KAPPA > PR40_KAPPA > PR39_KAPPA > PR38_KAPPA > PR37_KAPPA > prior['kappa'] > Q(1,2**15), 'Comparison failed') + require(KAPPA < Q(1,2**14), 'Unexpected power-of-two bracket') + own_files = sorted(HERE.glob('*.py'))+sorted(HERE.glob('*.cpp'))+[HERE/'PROOF.md',HERE/'SOURCE.json'] + own_files += [HERE/f'{kind}-{h}.json' for h in (23,25) for kind in ('profiles','original','scalar')] + own_files += [HERE/'data-corners.json',HERE/'comparison-pr40.json',HERE/'comparison-pr41.json',HERE/'comparison-pr42.json',HERE/'comparison-pr43.json',HERE/'comparison-pr44.json',HERE/'comparison-pr46.json',HERE/'comparison-pr47.json',HERE/'search-record.json',HERE/'links-23.uses',HERE/'links-25.uses'] + return dict(status='Conditional exact arithmetic witness; general transfer proofs are dependencies', + kappa=KAPPA,bit=dict(counts=p,**exact),complex=prior['complex'], + geometry=geo,finite_bridge=bridge,assembly=final,eventual_bounds=eventual,sources=sources, + comparison=dict(PR47=PR47_KAPPA,ratio_PR47=KAPPA/PR47_KAPPA,PR46=PR46_KAPPA,ratio_PR46=KAPPA/PR46_KAPPA,PR44=PR44_KAPPA,ratio_PR44=KAPPA/PR44_KAPPA,PR36=prior['kappa'],PR37=PR37_KAPPA,PR38=PR38_KAPPA,PR39=PR39_KAPPA,PR40=PR40_KAPPA,PR41=PR41_KAPPA,PR42=PR42_KAPPA,PR43=PR43_KAPPA, + ratio_PR36=KAPPA/prior['kappa'],ratio_PR37=KAPPA/PR37_KAPPA, + ratio_PR38=KAPPA/PR38_KAPPA,ratio_PR39=KAPPA/PR39_KAPPA,ratio_PR40=KAPPA/PR40_KAPPA,ratio_PR41=KAPPA/PR41_KAPPA,ratio_PR42=KAPPA/PR42_KAPPA,ratio_PR43=KAPPA/PR43_KAPPA, + dyadic_corollary='2^-15',next_dyadic_not_reached='2^-14'), + controls=dict(PR47_bit_at_new_lower=latest_at_new['lower'],PR46_bit_at_new_lower=parent_at_new['lower'],PR44_bit_at_new_lower=frontier_at_new['lower'],old_bit_at_new_lower=old_at_new['lower'],PR40_bit_at_new_lower=forward_at_new['lower'],PR41_bit_at_new_lower=rad_at_new['lower'],PR42_bit_at_new_lower=newest_at_new['lower'],PR43_bit_at_new_lower=previous_at_new['lower']), + local_sha256={str(p.relative_to(ROOT)):sha256(p.read_bytes()).hexdigest() for p in own_files}, + scope='Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); ' + 'all actual data pairs checked for 9 singletons +21+17+481; ' + 'ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/' + 'matching/profile reconstruction is producer.py. OpenAI base theorem, ' + 'written residual compiler, fixed-tape recursion, analytic/semantic/' + 'routing/recovery and eventual-threshold interfaces remain assumed.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--output',type=Path) + args = parser.parse_args() + result = run() + if args.output: + args.output.write_text(json.dumps(js(result),indent=2,sort_keys=True)+'\n') + print('PASS conditional kappa='+str(KAPPA)+'; bit saving='+str(AB)) + print('47 strict inequalities; seven margins; all-exact enclosures; inherited balanced assembly') diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py new file mode 100644 index 0000000000..aaa99986c4 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +"""Cancellation-free circuit for all pair sums avoiding two specified points. + +Every addition has disjoint input supports. Node interning shares equal sums; +support tracking verifies the full linear map, not sampled input values. +""" +from itertools import combinations +from hashlib import sha256 +import json + + +class ExclusionCircuit: + def __init__(self,n): + assert n>=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1< +#include + +inline unsigned popcount64(uint64_t value) { + unsigned count = 0; + while (value) { value &= value-1; ++count; } + return count; +} + +inline bool little_endian() { + const uint16_t one = 1; + return *reinterpret_cast(&one) == 1; +} +template void normalize_le(T& value) { + static_assert(std::is_integral::value, "integer array required"); + if (!little_endian()) { + auto p = reinterpret_cast(&value); + std::reverse(p, p + sizeof(T)); + } +} +template void normalize_le(std::array& row) { + for (auto& value : row) normalize_le(value); +} +template void readv(std::ifstream& f, std::vector& values) { + f.read(reinterpret_cast(values.data()), values.size()*sizeof(T)); + if (!f) throw std::runtime_error("Truncated producer array"); + if (!little_endian()) for (auto& value : values) normalize_le(value); +} +template void read_array(std::ifstream& f, T (&values)[N]) { + f.read(reinterpret_cast(values), sizeof(values)); + if (!f) throw std::runtime_error("Truncated producer header"); + for (auto& value : values) normalize_le(value); +} +template void write_array(std::ofstream& f, const T (&values)[N]) { + for (auto value : values) { + normalize_le(value); + f.write(reinterpret_cast(&value), sizeof(T)); + } + if (!f) throw std::runtime_error("Cannot write producer array"); +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py new file mode 100644 index 0000000000..b879293977 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py @@ -0,0 +1,46 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Cancellation-free pair exclusion with recursively aggregated vertex weights. + +At each level group vertices in pairs. Internal edges become vertex weights +in the smaller graph. Keeping those weights in the recursion avoids a separate +leave-two-out circuit for each level. All coefficients are checked exactly. +""" +from exclusion_circuit import ExclusionCircuit +from itertools import combinations +class PairedExclusionCircuit(ExclusionCircuit): + base_threshold = 2 + def pair(self,points):return self.block(points,{(a,b):self.variables[a,b] for a,b in combinations(points,2)},{a:0 for a in points}) + def grouping(self,points):return [points[i:i+2] for i in range(0,len(points),2)] + def block(self,points,edges,weights): + if len(points)<=self.base_threshold: + total=lambda omit:self.total([x for p,x in edges.items() if not set(p)&set(omit)]+[x for p,x in weights.items() if p not in omit]) + return total(()),{a:total((a,)) for a in points},{(a,b):total((a,b)) for a,b in combinations(points,2)} + groups=self.grouping(points);ng=len(groups);e=lambda a,b:edges[tuple(sorted((a,b)))] + coarse={(i,j):self.total([e(a,b) for a in groups[i] for b in groups[j]]) for i,j in combinations(range(ng),2)} + wt={i:self.total([weights[a] for a in g]+[e(a,b) for a,b in combinations(g,2)]) for i,g in enumerate(groups)} + total,outside,far=self.block(list(range(ng)),coarse,wt) + strips={};sums={} + for i,g in enumerate(groups): + other=[j for j in range(ng) if j!=i] + for a in g: + carry=self.total([weights[u] for u in g if u!=a]) + vals=[self.total([e(u,v) for u in g if u!=a for v in groups[j]]) for j in other] + st,one,_=self.vector([carry]+vals,False) + strips[a]={j:z for j,z in zip(other,one[1:])};sums[a]=st + out={};single={a:self.add(outside[i],sums[a]) for i,g in enumerate(groups) for a in g} + for i,g in enumerate(groups): + for a,b in combinations(g,2):out[a,b]=outside[i] + for i,j in combinations(range(ng),2): + for a in groups[i]: + left=self.add(far[i,j],strips[a][j]) + for b in groups[j]: + cross=self.total([e(u,v) for u in groups[i] if u!=a for v in groups[j] if v!=b]) + out[a,b]=self.add(left,self.add(strips[b][i],cross)) + return total,single,out +if __name__=='__main__': + for n in (15,25,45,49): + c=PairedExclusionCircuit(n);print(n,c.verify(),flush=True) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py new file mode 100644 index 0000000000..a2f0190704 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py @@ -0,0 +1,163 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Merge equal sums across the common-point circuits, with exact certificates. + +Supports are represented by their provenance in the small pair circuit, not +by half a million dense global bit vectors. A sum that occurs in two distinct +common-point groups must be a pair-star; its fixed pair and union of vertices +identify its support exactly. +""" +from functools import lru_cache +from hashlib import sha256 +from itertools import combinations +import json + +from exclusion_circuit import ExclusionCircuit + + +class SharedPointCircuit: + def __init__(self,h,circuit=None,point_order=None): + assert h>=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1<2^{-15}.} +\] + +The exact bit saving is 4986382/10^11. The next grid value of the bit saving +fails the exact moment test, and the next κ grid value fails the assembly. + +This is **6.782% above PR #57** (4669442391/10^14), **10.092% above PR #54** +(141532521/3125000000000) and **10.849% above PR #53** (4498144/10^11). It +does not use PR #57's compiler or PR #54's clones. These compare asymptotic +exponent savings, not running times. They are conditional research claims +without independent mathematical review or formal verification. + +Section "Stacking with PR #57's frame compiler" below gives a second, larger +witness, κ = 5101691/10^11, that also uses PR #57's compiler. + +## What changes + +Only the scalar producer DAG changes, in `pair_graph.py`, together with its +pinned carrier matching, `links-{23,25}.uses`. Everything else is PR #53's +`research/skip-strips` pipeline, which is PR #48's `research/copied-fixed` +pipeline, with constants recomputed for the new DAG. + +A role is a physical scratch wire. With c additions, q designated outputs and +μ retained carrier links, the role count is R = c + q − μ. A link lets a +donor addition x = u + w continue its carrier into a later consumer t of u, +when the original envelope of x lies inside the envelope of t: the common core +of t lies inside the core of x, and the cover of x lies inside the cover of t. +So R counts the additions that cannot continue a carrier, plus q. + +### 1. Interval strips + +The paired-exclusion recursion (icekylinx PR #18/#36) needs, for each vertex, +every leave-one-out sum of its k strip values v_1, …, v_k. PR #53 used the +skip-prefix layout s_j = A_(j−2) + (v_(j−1) + B_(j+1)). We build every cyclic +interval of the values instead, each from an interval one item shorter: + + I(a, m) = I(a, m−1) + v_(a+m−1), 2 ≤ m ≤ k−1, + +and output s_j = I(j+1, k−1), with the total I(0, k−1) + v_(k−1). The interval +I(a, m) with m < k−1 has the later consumer I(a−1, m+1) of its last item +v_(a+m−1), and its cover lies inside that consumer's cover, so it can continue +a carrier. Only the k outputs and the total stay unmatched. + +This costs k(k−2)+1 additions instead of about 4k. The role count still falls, +because R counts unmatched additions. In a model of one strip, an exact integer +program over every leave-one-out circuit shows that k−1 unmatched additions is +the minimum for k ≤ 8. Skip-prefix leaves 2k−3 unmatched; intervals leave k−1 +or k. Intervals are used for every strip with k ≥ 3 nonzero values; smaller +strips keep PR #53's layout. Value orders are PR #53's: reversed at the top +level, sorted by (support size, ±support) below it. + +### 2. Core-aware pair assembly + +For groups i < j with members (a, a2) and (b, b2), let F = far[i,j] and let +Sa, Sa2, Sb, Sb2 be the strip outputs that omit the other group. Each of the +four outputs is a sum of four pieces, for example +out[a,b] = F + Sa + Sb + e(a2,b2). PR #53 computes left(a,j) = F + Sa, +then out[a,b] = left(a,j) + (Sb + e(a2,b2)). None of those ten additions can +continue a carrier. We compute + + F+Sa, F+Sa2, F+Sb, F+Sb2, + Y1 = (F+Sb) + Sa, Y2 = (F+Sa) + Sb2, + Y3 = (F+Sa2) + e(a,b2), Y4 = (F+Sb2) + e(a,b), + out[a,b] = e(a2,b2) + Y1, out[a,b2] = e(a2,b) + Y2, + out[a2,b] = Y3 + Sb, out[a2,b2] = Y4 + Sa2. + +Each F+S node then has a later consumer of its strip operand whose envelope +contains its own: the same common core and a larger cover. An exact integer +program over every assembly of these nine pieces, with their actual cores and +covers, shows that 8 unmatched additions per group pair is optimal. The cores +matter: a node such as Sa + e(a2,b2) has the two-point core {c, a2}, so a +one-point-core donor cannot continue into it. Each output needs its own +addition and at least one more addition that serves only that output, and +neither can continue a carrier, so 8 is also a lower bound for this +decomposition. + +### Counts + +| h | v | additions c | outputs q | matched μ | roles R | loss | +|---|---|---|---|---|---|---| +| 23 | 1771 | 62294 | 5336 | 38911 | 28719 | 506 | +| 25 | 2300 | 86595 | 6925 | 55844 | 37676 | 600 | + +PR #53 had R23 = 32946 and R25 = 43409. The physical constants are +m = 575, N = 4,073,300, W = 140,924,496 (PR #53: 160,799,739) and +L = 2,226,400. The complete rank is Wm − N + L = 81,029,738,300. The deficit +N − L is unchanged. + +The weighted matching is pinned in `links-{h}.uses`. `optimize_matching.py` +regenerates it from Rohan Arun's PR #44 optimizer with only the graph import +changed. Its output is not trusted: `profiles.cpp` replays every pinned link, +and `producer.py` recounts every link independently. + +## Why the inherited proofs apply + +The new DAG enters the inherited proofs only through properties and +quantities that `producer.py` recomputes, as for PR #41, #43, #47, #48 and #53: + +- **Scalar outputs.** Every addition joins disjoint supports, every node has a + common point, and every output is the exact leave-two-out sum or retained + total, checked on dense global supports. +- **Carrier links.** Every pinned link lies in the admissible adjacency + (causal order and envelope inclusion), with distinct donors and uses. +- **Physical timeline.** The full physical timeline and every dirty basis + vector are checked in both orientations at h = 23 and 25. +- **Fixed-basis profiles.** These are recomputed from the new DAGs and pinned + matchings: 37,728 and 51,927 distinct transition matrices; 6,026 and 7,981 + of them CRT-checked; zero modular disagreements. Exactly h full center + cleanups appear, so the copied-center replacement applies unchanged. +- **Data corners.** These do not depend on the producer. All 4,073,300 pairs + are replayed, and the ten primary-prime failures are recovered by exact + rational elimination. + +The integer programs explain why the links exist; correctness does not depend +on them. + +## Exact arithmetic + +`verify.py` uses PR #43/#48's exact logarithm and exponential enclosures: + +- The moment at a_b = 4986382/10^11 is below 1; at 4986383/10^11 its exact + lower bound exceeds 1. +- Each of the following is excluded at the new bit saving by an exact lower + bound: the complete child lists of PR #57, #54, #53, #48, #47, #46, #44, + #43, #42, #41 and #40, and the PR #36 baseline. +- The inherited balanced assembly passes all 47 strict conditions and seven + margins at κ = 4986133/10^11 and fails at the next grid value. Its + parameters are β = 1/20, h = 10^-12, a_c = 717/10^7, C1 = 1 and row stock + p^2000. + +## Stacking with PR #57's frame compiler + +PR #57 (eumemic, with OpenAI Codex assistance) compiles each set of nodes that +share one original envelope as a single invertible binary map, matches +retained signals to later uses, and reclaims retired roles with paid XOR +clearing. Its compiler, `scripts/experiments/binary_frame_compiler.py`, is +included unchanged through PR #57's own commit on this branch. +`frame/frame_compile.py` feeds it the hash-pinned `pair_graph.py` instead of +PR #53's graph, exactly as PR #57's driver feeds it PR #53's graph. + +The compiled words give the following role counts: + +| h | roles R, this graph | roles R, compiled | shared-frame regions | retained signals | reclaimed roles | +|---|---|---|---|---|---| +| 23 | 28719 | 27918 | 52473 | 37025 | 801 | +| 25 | 37676 | 36586 | 73695 | 53194 | 1090 | + +With W = 137,151,806 the stacked witness gives + +\[ +\kappa=\frac{5101691}{10^{11}}=5.101691\times10^{-5}, +\] + +with exact bit saving 5101952/10^11. This is **9.257% above PR #57** and +2.318% above the plain witness above. PR #57's own result on PR #53's graph +is 4669442391/10^14. + +`frame/frame_verify.py` checks, as PR #57's verifier does: + +- both serialized XOR words, replayed independently on every input and dirty + basis vector in both orientations; +- every frame transition, reconstructed from the actual XOR word; +- all fixed-basis profiles, with bounded-minor and CRT checks; +- the exact moment, the rejection of the next bit-saving grid value, the + exclusion of PR #53's and PR #57's networks at the new saving, all 47 + strict assembly inequalities, seven margins, and the rejection of the next + κ grid value. + +This stacked witness also depends on PR #57's compiler argument, which has +the same review status as PR #57. + +## Reproduce + +```sh +python3 research/pair-assembly/producer.py --work-dir /tmp/pair-assembly +python3 research/pair-assembly/verify.py +python3 research/pair-assembly/frame/frame_verify.py +python3 research/pair-assembly/optimize_matching.py --work-dir /tmp/pair-opt # optional, needs scipy +python3 research/pair-assembly/frame/frame_compile.py # optional, rewrites the words +``` + +`producer.py --record` rewrites the JSON records. Without `--record` it checks +them against fresh regeneration. `make pair-assembly-verify` runs the first +three commands and the tests. + +## Scope and attribution + +This is a conditional finite certificate. It covers the same written proof +obligations as PR #43–#53: the base theorem, the residual compiler, fixed-tape +recursion, the physical meaning of carrier continuations and copied centers, +the analytic/semantic/routing/recovery interfaces and eventual thresholds. +None of these are re-proved here. There is no formal verification or claim of +global optimality. The stacked witness additionally depends on PR #57's +compiler mechanism and its written argument. + +The interval strips and core-aware pair assembly are new here, by Avi +Eisenberg with assistance from Claude (Anthropic). Everything else is +inherited, with all original notices: + +- Avi Eisenberg PR #53: skip-prefix strips and this pipeline's adaptation. +- eumemic PR #57: the joint frame compiler, used unchanged for the stacked + witness. +- Chafik Boukhalfa PR #43/#46/#48: pipeline, recovery, the sorting idea and + verification code. +- Rohan Arun PR #44: weighted matching; also PR #37/#39/#40/#42/#47. +- RaD / hipotures PR #41: alternating order and changed DAGs. +- Dominik Scholz PR #35/#38. +- James Chang PR #34. +- icekylinx PR #18/#24/#32/#36. +- Zhihao Chen PR #21/#23/#29. +- Paureel / Aurel Prosz, Swapnil Jain, Douglas Colkitt, OpenAI, and + Harvey–van der Hoeven. + +Apache-2.0. diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json new file mode 100644 index 0000000000..439c763887 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json @@ -0,0 +1,147 @@ +{ + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "PR48": { + "author": "Chafik Boukhalfa", + "commit": "b7194b8586844956904b33e9fe18f0c75606c11b", + "contribution": "research/copied-fixed pipeline (weighted-matching replay, exact data recovery, verification) reused here", + "pull_request": 48 + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "research/skip-strips/PROOF.md": "0fad3bfbd7062e1607fc95430170d12f9613cc6d850a18871f1cbc8c27434934", + "research/skip-strips/comparison-pr48.json": "36de96fd3aea4e0b335d3693434f004f05220bc33a4a165596288e038052734b", + "research/skip-strips/links-23.uses": "63e47bdaebb8a5c718a4d65e2d6f6bcb8d7548a32030e3b312157b4fa665b7bf", + "research/skip-strips/links-25.uses": "a8a3b0dd47d5d5a46aa4eaf844f7fbd9279e21547b5c01950a31706e700210d3", + "research/skip-strips/optimize_matching.py": "b8146942253fd34fafb92f6eaca4d145609e4c277704492635135095a03ddacf", + "research/skip-strips/original-23.json": "35caafcaf98170fe5260765248ed8bf43edc33d01e81138e8fa540067192fbb3", + "research/skip-strips/original-25.json": "8ecd5028fcfa9972ee9e1d241a0bc296ac4e1888c42e8f0c05f95e11de326109", + "research/skip-strips/profiles-23.json": "baac5249694959d063a4b0bae156610679682f0782d4254cd509dbf3bd26850f", + "research/skip-strips/profiles-25.json": "214bdd7a5a5c0618d0d5507bc2973b4bb06f88327ee33697823ed1924bcffdf0", + "research/skip-strips/scalar-23.json": "08fd09b33c22f609e241753aa38495fd4bef0bfbc4222d5f7e0301cb0aa9c2bc", + "research/skip-strips/scalar-25.json": "c54a47e688ba8d69fbe095f6775cd540505a80e5977ea53afe8f0051e115633a", + "research/skip-strips/skip_graph.py": "03ee019cdaf73391455aaf4f5dcb4873f4fdcb278179b296c02ea39eafd047e4", + "research/skip-strips/timeline-23.json": "1f7e9ca7efc96855ef64164d8c2ec1026b9e5f1ce95f0858ef6528aee81c150c", + "research/skip-strips/timeline-25.json": "1e7a692e2e73465ecd0138cfe3429dec5a91f8c87998a6318d689ff600213441", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "d0be783f61ac4b7981e7e48a8c1139b52572302ba76c191c0e9a1b16a1a05e0e", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + }, + "integration_note": "Against main d55bcd62, binary_io.hpp adds only six standard-library includes. Its functions and binary format are unchanged. Retain the current main header and pin its actual bytes; regenerate inherited certificates on integration." +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json new file mode 100644 index 0000000000..ab8cde595c --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json @@ -0,0 +1,176 @@ +{ + "status": "Joint frame compilation of the pair-assembly graph; complete dirty basis both orientations", + "axes": { + "23": { + "compiled": { + "h": 23, + "mode": { + "matching": true, + "reclaim": true + }, + "roles": 27918, + "baseline_pr48_roles": 36432, + "histogram": { + "1": 42694, + "0": 301874, + "2": 82328, + "3": 11086, + "4": 10646, + "6": 2005, + "5": 7548, + "8": 1361, + "9": 562, + "10": 597, + "12": 558, + "14": 2005, + "16": 547, + "18": 4220, + "19": 7820, + "22": 23, + "17": 274, + "7": 688, + "15": 396, + "21": 165, + "13": 23 + }, + "rank_mass": 642620, + "elementary_xors": 148958, + "stats": { + "augmentations": 220, + "regions": 52473, + "matched": 37025, + "multi_node_regions": 10350, + "reclaimed": 801, + "clearing_xors": 1398 + }, + "dirty_basis_vectors": 31460, + "complete_dirty_basis_both_orientations": true, + "all_physical_frame_inclusions": true, + "seconds": 26.58313250541687 + }, + "replay": { + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "h": 23, + "roles": 27918, + "output_roles": 5336, + "elementary_xors": 148958, + "word_length": 620626, + "full_basis_vectors": 31460, + "rank_mass": 642620, + "histogram": { + "1": 42694, + "0": 162731, + "2": 82328, + "3": 11086, + "4": 10646, + "6": 2005, + "5": 7548, + "8": 1361, + "9": 562, + "10": 597, + "12": 558, + "14": 2005, + "16": 547, + "18": 4220, + "19": 7820, + "22": 23, + "17": 274, + "7": 688, + "15": 396, + "21": 165, + "13": 23 + } + }, + "gzip_sha256": "4629d45d5074f87706db46be3aa3cd369071cd215bc6560d641115aadcce54a0", + "word_sha256": "bd0cbf73756f2e4f8d3879ec6c7a194990eb9ec40aaf3580bdded6994798d920" + }, + "25": { + "compiled": { + "h": 25, + "mode": { + "matching": true, + "reclaim": true + }, + "roles": 36586, + "baseline_pr48_roles": 48329, + "histogram": { + "1": 55478, + "0": 416276, + "2": 115441, + "3": 14362, + "4": 16687, + "5": 10074, + "6": 1767, + "8": 2140, + "9": 790, + "10": 529, + "12": 781, + "14": 625, + "16": 3200, + "18": 519, + "20": 5436, + "21": 10094, + "24": 25, + "17": 687, + "19": 300, + "7": 881, + "23": 220 + }, + "rank_mass": 915250, + "elementary_xors": 205650, + "stats": { + "augmentations": 286, + "regions": 73695, + "matched": 53194, + "multi_node_regions": 13975, + "reclaimed": 1090, + "clearing_xors": 1827 + }, + "dirty_basis_vectors": 41186, + "complete_dirty_basis_both_orientations": true, + "all_physical_frame_inclusions": true, + "seconds": 51.009533166885376 + }, + "replay": { + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "h": 25, + "roles": 36586, + "output_roles": 6925, + "elementary_xors": 205650, + "word_length": 854800, + "full_basis_vectors": 41186, + "rank_mass": 915250, + "histogram": { + "1": 55478, + "0": 224000, + "2": 115441, + "3": 14362, + "4": 16687, + "5": 10074, + "6": 1767, + "8": 2140, + "9": 790, + "10": 529, + "12": 781, + "14": 625, + "16": 3200, + "18": 519, + "20": 5436, + "21": 10094, + "24": 25, + "17": 687, + "19": 300, + "7": 881, + "23": 220 + } + }, + "gzip_sha256": "1094276c9ee901e4e5c23062775aad2f50bb5a85a67e64e685d79babcf5b8ecb", + "word_sha256": "634d3cc0fa8e4f592b1924c141bc953524ea08bf683059e18d8ad0c2f26785ec" + } + }, + "source": { + "graph": "research/pair-assembly/pair_graph.py", + "graph_sha256": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "compiler": "scripts/experiments/binary_frame_compiler.py (PR #57, unchanged)" + } +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py new file mode 100644 index 0000000000..d47c1cb3df --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +"""Replay the pair-assembly frame words, actual fixed profiles and assembly. + +Adapted from PR #57's verify_skip_frame.py and skip_frame_compose.py (eumemic, +with OpenAI Codex assistance), with the PR #57 compiler words replaced by the +pair-assembly words. Every XOR word, dirty basis column, frame incidence and +fixed-basis profile is checked; the unchanged data geometry and general +transfer proofs remain inherited dependencies, exactly as in PR #57. +Adapted with assistance from Claude (Anthropic). +Usage: python frame_verify.py [--record] +""" +import sys +sys.dont_write_bytecode = True +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from math import comb +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import os +import shlex +import subprocess +import tempfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +EXP = ROOT/'scripts/experiments' +sys.path.insert(0, str(EXP)) +import binary_frame_math as arithmetic +from binary_frame_profile_prepare import prepare +from binary_frame_replay import replay + +AB_S = 5101952 +KAPPA_S = 5101691 +WIRES_S = 137151806 +MASS_S = 78860441550 +INHERITED = ROOT/'references/frame-compiler/pr48' +OLD = INHERITED/'research/copied-fixed' +AB = Q(AB_S, 10**11) +KAPPA = Q(KAPPA_S, 10**11) +EXCLUDED_ABOVE = Q(AB_S+1, 10**11) +PLAIN_KAPPA = Q(4986133, 10**11) +PR57_KAPPA = Q(4669442391, 10**14) +PR53_KAPPA = Q(4498144, 10**11) + +spec = importlib.util.spec_from_file_location('pair_frame_balanced_assembly', OLD/'balanced_assembly.py') +balanced = importlib.util.module_from_spec(spec) +spec.loader.exec_module(balanced) + + +def check_sources(): + document = json.loads((INHERITED/'SOURCE.json').read_text()) + for name, digest in document['files'].items(): + assert sha256((INHERITED/name).read_bytes()).hexdigest() == digest, name + record = json.loads((HERE/'frame-compiler.json').read_text()) + graph = ROOT/record['source']['graph'] + assert sha256(graph.read_bytes()).hexdigest() == record['source']['graph_sha256'], 'pair_graph.py changed' + return document, record + + +def profile(profiles, words): + a, b = 23, 25 + m, N = a*b, comb(a, 3)*comb(b, 3) + W = 2*N + sum(N//f['v']*f['R'] for f in profiles) + L = sum(N//f['v']*f['loss'] for f in profiles) + parts = {'data': Counter({1: 18*N, 21: 2*N, 17: 2*N, 481: 2*N}), + 'paid_endpoint_copy': Counter({1: N})} + for f in profiles: + h = f['h'] + rep, bank = N//f['v'], N//f['v']*f['R'] + replayed = words['axes'][str(h)]['replay'] + assert f['R'] == replayed['roles'] + assert f['v'] == comb(h, 3) and f['loss'] == h*(h-1) + assert f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1 + assert sum(t*n for t, n in enumerate(f['blocks'])) == h*f['R']+f['loss'] == f['rank_sum'] == replayed['rank_mass'] + assert f['blocks'][h] == 0 # Copied centers already included. + arithmetic.exactness(h) + parts[f'internal_{h}'] = Counter({t: n*rep for t, n in enumerate(f['blocks']) if t and n}) + parts[f'exterior_{h}'] = Counter({h: bank, m-2*h: bank}) + parts[f'data_growth_{h}'] = Counter({1: 2*N, h-2: 2*N}) + rows = sum(parts.values(), Counter()) + mass = sum(t*n for t, n in rows.items()) + assert mass == m*W-N+L and max(rows) == 529 and all(0 < t < m for t in rows) + assert (W, mass, m*W-mass) == (WIRES_S, MASS_S, 1846900) + return dict(m=m, N=N, W=W, L=L, total_rank=mass, deficit=m*W-mass, maxchild=max(rows), + child_multiplicities=dict(sorted(rows.items())), parts=parts, axes=profiles) + + +def compose(p, sources): + exact = arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], AB) + excluded = arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], EXCLUDED_ABOVE) + assert exact['strict_gap'] > 0 and excluded['lower'] > 1 + controls = {} + for name in ('pr53', 'pr57'): + row = json.loads((HERE.parent/f'comparison-{name}.json').read_text()) + rows = {int(t): n for t, n in row['child_multiplicities'].items()} + controls[name] = arithmetic.moment(row['m'], row['W'], rows, AB)['lower'] + assert controls[name] > 1, name+' network not excluded at stacked saving' + prior = json.loads((OLD/'certificate.json').read_text()) + bridge = prior['finite_bridge'] + bridge['bit']['W'] = p['W'] + assert p['W'].bit_length() == bridge['bit']['wire_bits'] + assembled = balanced.assembly(bridge, AB, KAPPA, a_complex=Q(717, 10**7)) + assert len(assembled['constraints']) == 47 and len(assembled['margins']) == 7 + try: + balanced.assembly(bridge, AB, KAPPA+Q(1, 10**11), a_complex=Q(717, 10**7)) + next_grid_fails = False + except AssertionError: + next_grid_fails = True + assert next_grid_fails + assert KAPPA > PLAIN_KAPPA > PR57_KAPPA > PR53_KAPPA > Q(1, 2**15) and KAPPA < Q(1, 2**14) + local = [HERE/name for name in ('frame_compile.py', 'frame_verify.py')]+[ + EXP/name for name in ('binary_frame_compiler.py', 'binary_frame_math.py', 'binary_frame_replay.py', + 'binary_frame_profile_prepare.py', 'binary_frame_profiles.cpp')] + return dict( + status='Conditional exact fixed-basis moment and balanced assembly; inherited transfer hypotheses remain assumed', + kappa=KAPPA, bit_saving=AB, bit_saving_excluded_above=EXCLUDED_ABOVE, + bit=dict(p, moment=exact, excluded_above_lower=excluded['lower']), + controls=dict(PR53_bit_at_stacked_lower=controls['pr53'], PR57_bit_at_stacked_lower=controls['pr57']), + assembly=assembled, eventual_bounds=balanced.cutoffs(bridge, assembled), finite_bridge=bridge, + comparison=dict(plain_pair_assembly_kappa=PLAIN_KAPPA, ratio_plain=KAPPA/PLAIN_KAPPA, + pr57_kappa=PR57_KAPPA, ratio_pr57=KAPPA/PR57_KAPPA, + pr53_kappa=PR53_KAPPA, ratio_pr53=KAPPA/PR53_KAPPA, next_kappa_grid_fails=next_grid_fails), + exactness=[arithmetic.exactness(h) for h in (23, 25)], sources=sources, + local_source_sha256={str(x.relative_to(ROOT)): sha256(x.read_bytes()).hexdigest() for x in local}, + scope='Pair-assembly graph compiled by PR #57\'s unchanged joint frame compiler. Ordered affine residual ' + 'compiler, fixed-tape recursion, finite scalar overhead, balanced transfer, analytic/routing/recovery ' + 'interfaces and PR #57\'s compiler argument remain inherited.') + + +def verify(record_mode=False): + inherited, words = check_sources() + profiles = [] + with tempfile.TemporaryDirectory(prefix='pair-frame-verify-') as directory: + work = Path(directory) + profiler = work/'profiles' + subprocess.run([*shlex.split(os.environ.get('CXX', 'c++')), '-O3', '-std=c++17', + '-I', str(INHERITED/'scripts/partial_swap'), + str(EXP/'binary_frame_profiles.cpp'), '-o', str(profiler)], check=True) + for h in (23, 25): + word = HERE/f'frame-word-{h}.json.gz' + axis = words['axes'][str(h)] + packed = word.read_bytes() + assert sha256(packed).hexdigest() == axis['gzip_sha256'] + assert sha256(gzip.decompress(packed)).hexdigest() == axis['word_sha256'] + receipt = replay(word) + assert json.loads(json.dumps(receipt)) == axis['replay'] + transitions = work/f'word{h}.bin' + prepared = json.loads(json.dumps(prepare(word, transitions))) + path = HERE/f'frame-transitions-{h}.json' + if record_mode: + path.write_text(json.dumps(prepared, indent=2)+'\n') + assert prepared == json.loads(path.read_text()) + subprocess.run([str(profiler), str(transitions)], check=True, capture_output=True, text=True) + prof = json.loads(Path(str(transitions)+'.profiles.json').read_text()) + path = HERE/f'frame-profiles-{h}.json' + if record_mode: + path.write_text(json.dumps(prof, indent=2)+'\n') + assert prof == json.loads(path.read_text()) + profiles.append(prof) + print(f'PASS h={h}: full dirty basis, exact frame path, every fixed-basis profile', flush=True) + p = profile(profiles, words) + result = compose(p, dict(inherited=inherited, compiler_record=words['source'])) + (HERE/'frame-certificate.json').write_text(json.dumps(arithmetic.js(result), indent=2, sort_keys=True)+'\n') + print('PASS conditional stacked kappa='+str(KAPPA)+'; bit saving='+str(AB), flush=True) + print('47 strict inequalities, seven margins, next grid values rejected, PR #53 and #57 excluded', flush=True) + return result + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--record', action='store_true') + verify(parser.parse_args().record) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py new file mode 100644 index 0000000000..eef8e1eba0 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py @@ -0,0 +1,248 @@ +"""Interval strips and core-aware pair assembly, stacked on PR #53. + +Only the scalar addition DAG changes. Everything else is inherited from +Avi Eisenberg's PR #53 research/skip-strips pipeline, which builds on Chafik +Boukhalfa's PR #48 research/copied-fixed pipeline, Rohan Arun's PR #44 +weighted carrier matching, exact data-corner recovery (PR #46), RaD / +hipotures PR #41 alternating pair order and PR #43's original-envelope / +fixed I+J framework. Those build in turn on icekylinx PR #18/#32/#36 and +earlier credited work. + +New here, two changes to how the paired-exclusion recursion places its sums: + +1. Interval strips. A strip of k values needs every leave-one-out sum. We + build every cyclic interval of the values, each one item longer than an + interval already built: + I(a, m) = I(a, m-1) + v_(a+m-1), + and output s_j = I(j+1, k-1). Each interval I(a, m) with m < k-1 has the + later consumer I(a-1, m+1) of its last item, with a containing cover, so + it can continue a retained carrier. Only the k outputs and the total stay + unmatched. This costs k(k-2)+1 additions instead of about 4k, but the role + count R = additions + outputs - links falls. In a model of one strip, an + exact integer program shows k-1 unmatched additions is the minimum for + k <= 8; intervals reach k-1 or k. They are used for every strip with + k >= 3 nonzero values; smaller strips keep PR #53's layout. + +2. Core-aware pair assembly. For groups i < j with members (a, a2) and + (b, b2), let F = far[i,j] and let Sa, Sa2, Sb, Sb2 be the strip outputs. + Each of the four outputs is F + Sa + Sb + e(a2, b2) and its analogues. We + compute + F+Sa, F+Sa2, F+Sb, F+Sb2, + Y1 = (F+Sb)+Sa, Y2 = (F+Sa)+Sb2, + Y3 = (F+Sa2)+e(a,b2), Y4 = (F+Sb2)+e(a,b), + out[a,b] = e(a2,b2)+Y1, out[a,b2] = e(a2,b)+Y2, + out[a2,b] = Y3+Sb, out[a2,b2] = Y4+Sa2. + Each F+S node then has a later consumer of its strip operand with a + containing envelope (equal common core, larger cover). An exact integer + program over all assemblies of these nine pieces, with the actual cores + and covers, shows 8 unmatched additions per group pair is optimal; the + inherited assembly has 10. + +All supports, envelopes, links and profiles are checked by the inherited +pipeline; nothing here is trusted. + +Apache-2.0, like the inherited files. Prepared with assistance from Claude +(Anthropic). +""" +from itertools import combinations +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +sys.path.insert(0, str(ROOT / 'scripts')) +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h, common): + """RaD PR #41 alternating global pair order (as specialized in PR #43/#48).""" + pairs = [(a, a+1) for a in range(0, h-1, 2) if common not in (a, a+1)] + if common % 2: + pairs.reverse() + head = [x for pair in pairs for x in pair] + return head + [x for x in range(h) if x != common and x not in head] + + +def prefix_suffix(c, vals): + """Ordinary leave-one-out: total and s_j = A_{j-1} + B_{j+1}.""" + n = len(vals) + prefix = [0] + for x in vals: + prefix.append(c.add(prefix[-1], x)) + suffix = [0]*(n+1) + for i in range(n-1, -1, -1): + suffix[i] = c.add(vals[i], suffix[i+1]) + return prefix[-1], [c.add(prefix[i], suffix[i+1]) for i in range(n)] + + +def skip_prefix(c, vals): + """PR #53: s_j = A_{j-2} + (v_{j-1} + B_{j+1}) (1-indexed).""" + k = len(vals) + if k <= 2: + return prefix_suffix(c, vals) + v = [0] + list(vals) + A = [0]*(k+1) + for i in range(1, k): + A[i] = c.add(A[i-1], v[i]) + B = [0]*(k+2) + for i in range(k, 1, -1): + B[i] = c.add(v[i], B[i+1]) + out = [0]*(k+1) + out[1] = B[2] + for j in range(2, k+1): + out[j] = c.add(A[j-2], c.add(v[j-1], B[j+1])) + return c.add(A[k-1], v[k]), out[1:] + + +def interval_splits(k): + """Every cyclic interval I(a, m), 2 <= m <= k-1, as I(a, m-1) + v_(a+m-1); total last.""" + full = (1 << k)-1 + interval = lambda a, m: sum(1 << ((a+t) % k) for t in range(m)) + splits = [(interval(a, m), interval(a, m-1), 1 << ((a+m-1) % k)) + for m in range(2, k) for a in range(k)] + return splits + [(full, interval(0, k-1), 1 << (k-1))] + + +def interval_layout(fallback): + """Interval strips for k >= 3 values; the fallback handles k <= 2.""" + def apply(c, vals): + k = len(vals) + if k < 3: + return fallback(c, vals) + splits = interval_splits(k) + node = {1 << i: x for i, x in enumerate(vals)} + for S, L, R in splits: + node[S] = c.add(node[L], node[R]) + full = (1 << k)-1 + return node[full], [node[full ^ (1 << j)] for j in range(k)] + return apply + + +def reversed_layout(layout): + def apply(c, vals): + total, out = layout(c, list(vals)[::-1]) + return total, out[::-1] + return apply + + +def sorted_layout(layout, sign): + """Apply a layout to values sorted by (support size, sign*support); restore order.""" + def apply(c, vals): + order = sorted(range(len(vals)), key=lambda i: (c.support[vals[i]].bit_count(), sign*c.support[vals[i]])) + total, out = layout(c, [vals[i] for i in order]) + restored = [0]*len(vals) + for position, original in enumerate(order): + restored[original] = out[position] + return total, restored + return apply + + +def leave_one_out(c, values, layout): + """Zero entries are omitted; their leave-one-out value is the total.""" + values = list(values) + nonzero = [i for i, x in enumerate(values) if x] + if not nonzero: + return 0, [0]*len(values) + if len(nonzero) == 1: + x = values[nonzero[0]] + return x, [0 if i in nonzero else x for i in range(len(values))] + total, out = layout(c, [values[i] for i in nonzero]) + result = [total]*len(values) + for i, x in zip(nonzero, out): + result[i] = x + return total, result + + +def circuit_class(h): + deep_sign = 1 if h == 23 else -1 + top = reversed_layout(interval_layout(skip_prefix)) + deep = sorted_layout(interval_layout(skip_prefix), deep_sign) + + class PairAssemblyCircuit(PairedExclusionCircuit): + base_threshold = 2 + + def total(self, values): + values = [x for x in values if x] + if h == 23: + values.reverse() + else: + values.sort(key=lambda node: (self.support[node].bit_count(), self.support[node]), reverse=True) + result = 0 + for node in values: + result = self.add(result, node) + return result + + def block(self, points, edges, weights): + level = getattr(self, '_level', -1) + 1 + self._level = level + try: + return self._block(points, edges, weights, level) + finally: + self._level = level - 1 + + def _block(self, points, edges, weights, level): + if len(points) <= self.base_threshold: + return PairedExclusionCircuit.block(self, points, edges, weights) + layout = top if level == 0 else deep + groups = self.grouping(points) + ng = len(groups) + e = lambda a, b: edges[tuple(sorted((a, b)))] + coarse = {(i, j): self.total([e(a, b) for a in groups[i] for b in groups[j]]) + for i, j in combinations(range(ng), 2)} + wt = {i: self.total([weights[a] for a in g] + [e(a, b) for a, b in combinations(g, 2)]) + for i, g in enumerate(groups)} + total, outside, far = self.block(list(range(ng)), coarse, wt) + strips, sums = {}, {} + for i, g in enumerate(groups): + other = [j for j in range(ng) if j != i] + for a in g: + carry = self.total([weights[u] for u in g if u != a]) + vals = [self.total([e(u, v) for u in g if u != a for v in groups[j]]) for j in other] + st, one = leave_one_out(self, [carry] + vals, layout) + strips[a] = {j: z for j, z in zip(other, one[1:])} + sums[a] = st + out = {} + single = {a: self.add(outside[i], sums[a]) for i, g in enumerate(groups) for a in g} + for i, g in enumerate(groups): + for a, b in combinations(g, 2): + out[a, b] = outside[i] + for i, j in combinations(range(ng), 2): + if len(groups[i]) == 2 and len(groups[j]) == 2: + (a, a2), (b, b2) = groups[i], groups[j] + F = far[i, j] + Sa, Sa2, Sb, Sb2 = strips[a][j], strips[a2][j], strips[b][i], strips[b2][i] + FSa, FSa2 = self.add(F, Sa), self.add(F, Sa2) + FSb, FSb2 = self.add(F, Sb), self.add(F, Sb2) + Y1 = self.add(FSb, Sa) + Y2 = self.add(FSa, Sb2) + Y3 = self.add(FSa2, e(a, b2)) + Y4 = self.add(FSb2, e(a, b)) + out[a, b] = self.add(e(a2, b2), Y1) + out[a, b2] = self.add(e(a2, b), Y2) + out[a2, b] = self.add(Y3, Sb) + out[a2, b2] = self.add(Y4, Sa2) + continue + for a in groups[i]: + left = self.add(far[i, j], strips[a][j]) + for b in groups[j]: + cross = self.total([e(u, v) for u in groups[i] if u != a for v in groups[j] if v != b]) + out[a, b] = self.add(left, self.add(strips[b][i], cross)) + return total, single, out + return PairAssemblyCircuit + + +def graph(h): + assert h in (23, 25) + local = circuit_class(h)(h-1) + total = local.pair(list(range(h-1)))[0] + local.outputs[()] = total + stack = [total] + while stack: + node = stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions = sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h, local, point_order=alternating_points) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md new file mode 100644 index 0000000000..7248e4e2b7 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md @@ -0,0 +1,74 @@ +# Reordering the rank-pair physical compilation + +This experiment changes the schedule of equal-rank regions in PR #63's +composition of the PR #62 scalar graph and PR #60 rank-first compiler. The +23-axis uses increasing `(rank, cover, core)`; the 25-axis uses increasing rank +and decreasing minimum node number. The scalar identities, matched carrier +candidates, synthesis, and descending-rank retirement policy are unchanged. + +Reordering changes which retired physical roles are available when a region +is compiled. The resulting words have the same 27,918 and 36,586 physical +roles, but different paid fixed-I+J profiles. The selected schedules came +from a bounded comparison of reverse-node, core-cover, cover-core, and +reverse-core-cover orders. Core-cover was screened only; the other three +23-axis words and the reverse-node 25-axis word were independently replayed +and physically profiled before selection. Reversing both axes was weaker +than the selected mixed schedule. These finite tests do not prove optimality. + +## Why the schedule remains valid + +Every region retains its exact original envelope and its original linear +map. The wrapper checks every incoming inter-region dependency and every +selected-candidate direction against the new order. Thus all required inputs +are available, and retained carriers still travel forward. The admissibility argument uses these explicit dependency inequalities; +rank ties alone do not certify topological order, especially for source +frames. The complete serialized physical word is replayed on every input +and dirty basis vector in both orientations, and all frame inclusions and +actual fixed-basis profiles are independently regenerated. + +The literal rank identity and all paid endpoint/data/exterior terms use the +unchanged inherited profile constructor. No histogram estimate substitutes +for the physical word. The general transfer, routing, analytic, recovery, +and fixed-tape hypotheses remain inherited conditions; this is a finite +conditional certificate rather than a new formal proof of those hypotheses. + +## Reproduce + +From the repository root, with assertions enabled: + +```sh +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/verify.py +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/verify.py --rebuild +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/test_negative.py +``` + +The first command checks source/artifact hashes, independently replays both +committed words, rebuilds their fixed-I+J profiles, and recomposes the paid +global profile. `--rebuild` also recompiles both words and requires exact +byte equality with the committed decompressed witnesses. Disposable output +goes under `build/reordered-rank-pair` (or `--work-dir`). The tests reject a +missing physical XOR, understated physical role count, changed word/profile +digests, a backward region dependency, and execution with Python assertions +disabled. Arithmetic witnesses and their +independent controls are in `arithmetic/`. + +## Attribution + +The graph is Avi Eisenberg's PR #62 interval-strip/core-aware pair assembly, +prepared with Claude assistance, with its retained credits to PR #53, #48, +#44, #46, #41, #43, and earlier icekylinx work. Chafik Boukhalfa's PR #60 +rank-first compiler derives from eumemic's PR #57 joint frame compiler, +both with OpenAI Codex assistance. Dominik Scholz's PR #63 combines those +sources, with OpenAI GPT-6 Astra assistance. Alejandro Zarzuelo Urdiales's +PR #61 supplies precedent for rational parameter refinement. This bounded +region-order experiment and its packaging are by Rohan Arun with OpenAI +Codex assistance. Original Apache-2.0 notices remain applicable. + +## Live comparison at publication + +PR #64 (`790a14e28e935398072b9a9a68694ce7fba8940f`, @rfu08) reports +`20411033624901463/400000000000000000000` for the unchanged #63 profiles, +with additional independent verification and scoped Lean formalization. +The present changed-schedule bound exceeds that reported value; exact +arithmetic and the source pin are in `current-comparison.json`. This is only +a bound comparison, not a comparison of formal proof coverage. diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md new file mode 100644 index 0000000000..fed8b1bc5d --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md @@ -0,0 +1,174 @@ +# Exact arithmetic for the reordered rank-pair witness + +The selected complete paid profile admits + +- bit saving `a = 5103158916233/100000000000000000`; +- backoff `h = 1/1000000000000`, unchanged from PR63; +- `kappa = 2041159402879/40000000000000000 = 0.000051028985071975`. + +All 47 strict assembly inequalities and all seven margins pass. The next bit +saving on the 1e-18 grid has moment strictly above one; the next kappa on that +grid fails the unchanged balanced assembly. The finite sufficient arithmetic +cutoff remains `log2(input) >= 14000000000000`. This is an eventual arithmetic +threshold, not a practical runtime claim or the complete all-size threshold. + +The exact gain above PR63's `5102757/10^11` is +`56602879/40000000000000000`, approximately 0.0027731518 percent relative. +The construction gain is separated from parameter precision: + +| Check | Bit saving | Kappa | Gain versus PR63 | +|---|---:|---:|---:| +| Same 1e-11 grid and same h as PR63 | 0.00005103158 | 0.00005102897 | 0.0000000014 | +| Refined 1e-18 grid; same h | 0.000051031589162330 | 0.000051028985071975 | 0.000000001415071975 | + +The first row passes even with PR63's original low-order exponential bounds, +and its next bit grid point fails with those bounds. Thus its 1.4e-9 gain does +not depend on tightening the numerical enclosure. Precision adds a further +`602879/40000000000000000 = 1.5071975e-11`. + +## Reproduction and source linkage + +Run from any checkout location using Python 3.11 or later: + +```sh +python3 -B research/reordered-rank-pair/arithmetic/refine.py +python3 -B research/reordered-rank-pair/arithmetic/audit.py +python3 -B -m unittest discover -s research/reordered-rank-pair/arithmetic -p test_arithmetic.py -v +``` + +The default commands recompute and compare without writing outputs. An +intentional certificate update uses `--record` on the first two commands. +`refine.py` accepts `--profile PATH` and `--certificate PATH`; `audit.py` +accepts `--certificate PATH` and `--receipt PATH`. + +`certificate.json` pins `../paired-candidate.json`, both arithmetic scripts, +the inherited logarithm implementation and the inherited balanced assembly +by SHA256. All paths are repository relative. It includes the complete exact +per-child logarithm and exponential intervals, weighted moment bounds, +assembly slacks, all seven margins, next-grid failures, comparisons and +sufficient arithmetic cutoffs. `audit-receipt.json` records an independently +computed enclosure and ten deliberate assembly failures. + +This package checks the supplied complete paid profile. The parent +`../verify.py` checks the words, physical replay, actual profile/CRT results, +paid profile assembly and its correspondence to `../paired-candidate.json`. +An arithmetic pass alone does not prove that physical linkage. + +## Rational logarithm enclosure + +For `y >= 1`, put `z = (y-1)/(y+1)`. With `0 <= z < 1`, + +`log(y) = 2 * sum(j>=0, z^(2j+1)/(2j+1))`. + +Every term is nonnegative. Truncation after indices `0,...,J-1` is therefore a +lower bound. For the tail, `2j+1 >= 2J+1` and the powers form a geometric series, +so the upper remainder is + +`2*z^(2J+1)/((2J+1)*(1-z^2))`. + +The inherited helper reduces by powers of 2 to `1 <= y <= 2`, uses `J=32`, +adds the corresponding multiple of `log(2)`, then rounds downward/upward to +the 1e-30 rational grid. These operations preserve the enclosure. + +The independent audit instead reduces by powers of 3/2 to +`1 <= y <= 3/2`, uses `J=60`, and adds the corresponding multiple of +`log(3/2)`. Its exact logarithm enclosure is checked to lie inside the recorded +inherited interval for every child. The two implementations share the +mathematical atanh-series identity but use different range reduction, term +counts and evaluation code; neither relies on machine floating-point logs. + +## Rational exponential and complete moment enclosure + +For a child of dimension `t`, multiplicity `n`, arity `m` and width `W`, the +weight is `w=t*n/(m*W) > 0`. With bit saving `a>0`, its contribution to the +characteristic moment is `w*exp(a*log(m/t))`. The complete histogram includes +all paid parts; neither rare children nor physical transitions are omitted. + +Write `u=a*log_lower` and `v=a*log_upper`. The checker verifies +`0 <= u <= v < 1`. For `S_d(x)=sum(j=0..d, x^j/j!)`, positivity gives + +`S_d(u) <= exp(a*log(m/t))`. + +At `v`, the first omitted term is `v^(d+1)/(d+1)!`; each later term divided by +its predecessor is at most `v/(d+2) < 1`. A geometric majorant therefore gives + +`exp(a*log(m/t)) <= S_d(v) + v^(d+1)/((d+1)!*(1-v/(d+2)))`. + +The primary checker uses `d=8`. It rounds the lower expression downward and +the upper expression upward to the 1e-40 rational grid, multiplies by each +positive exact weight, and sums. Directed rounding can only widen the +interval. Every arithmetic operation uses integers and exact Fractions. + +The independent audit evaluates the exponential by a recurrence through +degree 12. It checks `v<1/1000`, rounds input bounds outward, and bounds the +remaining tail by twice the first omitted term. This is valid because all +successive tail ratios are below 1/2. It independently confirms that the +accepted upper moment is below one and the successor lower moment is above +one. No empirical epsilon, decimal-log assumption or float tolerance enters +the acceptance decision. + +All weights and `log(m/t)` are strictly positive, since `0= 1 + k = 0 + while x > Q(3, 2): + x /= Q(3, 2) + k += 1 + def small(y): + z = (y-1)/(y+1) + power, total = z, Q() + for j in range(60): + total += power/Q(2*j+1) + power *= z*z + return 2*total, 2*total+2*power/(121*(1-z*z)) + lo, hi = small(x) + blo, bhi = small(Q(3, 2)) + return lo+k*blo, hi+k*bhi + + +def independent_moment(profile, saving, recorded_terms): + low, high = Q(), Q() + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + for t, n in sorted(rows.items()): + lo, hi = log_interval(Q(profile['m'], t)) + recorded = recorded_terms[str(t)] + assert Q(recorded['log_lower']) <= lo <= hi <= Q(recorded['log_upper']) + u, v = lo*saving, hi*saving + assert 0 < u <= v < Q(1, 1000) + # Directed rounding of input logs bounds rational denominator sizes. + u = Q(refine.floor_scaled(u, 10**40), 10**40) + v = Q(refine.ceiling_scaled(v, 10**40), 10**40) + tlo, thi = Q(1), Q(1) + elo, ehi = Q(1), Q(1) + for j in range(1, 13): + tlo, thi = tlo*u/j, thi*v/j + elo, ehi = elo+tlo, ehi+thi + # First omitted term is degree13; subsequent ratios <1/2. + ehi += 2*thi*v/13 + weight = Q(t*n, profile['m']*profile['W']) + low += weight*Q(refine.floor_scaled(elo, 10**40), 10**40) + high += weight*Q(refine.ceiling_scaled(ehi, 10**40), 10**40) + return low, high + + +def audit(certificate): + profile_path = ROOT/certificate['profile_path'] + assert sha256(profile_path.read_bytes()).hexdigest() == certificate['profile_sha256'] + for name, digest in certificate['source_sha256'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest() == digest, name + source = json.loads(profile_path.read_text()) + p = source['bit'] + assert sum(int(t)*n for t, n in p['child_multiplicities'].items()) == p['total_rank'] + accepted = independent_moment(p, Q(certificate['bit_saving']), certificate['accepted_moment']['terms']) + rejected = independent_moment(p, Q(certificate['next_bit_saving']), certificate['accepted_moment']['terms']) + assert accepted[1] < 1 < rejected[0] + controls = {} + for name, variant in [('preferred', certificate['preferred']), ('coarse_grid_control', certificate['coarse_grid_control'])]: + params = variant['assembly']['parameters'] + result = refine.balanced.assembly(source['finite_bridge'], Q(params['a_bit']), Q(params['kappa']), h=Q(params['h'])) + assert refine.arithmetic.js(result) == variant['assembly'] + assert len(result['constraints']) == 47 and len(result['margins']) == 7 + assert all(v > 0 for v in result['constraints'].values()) + for label, kwargs in [('next_grid', dict(kappa=Q(variant['next_kappa']))), + ('zero_backoff', dict(h=Q())), + ('original_prefix', dict(original_prefix=True)), + ('old_guard', dict(old_guard=True)), + ('old_exposures', dict(old_exposures=True))]: + call = dict(a_bit=Q(params['a_bit']), kappa=Q(params['kappa']), h=Q(params['h'])) + call.update(kwargs) + try: + refine.balanced.assembly(source['finite_bridge'], **call) + except refine.balanced.InvalidAssembly as error: + controls[name+'/'+label] = str(error) + else: + raise AssertionError('Negative control accepted: '+name+'/'+label) + next_a = Q(certificate['next_bit_saving']) + best = Q(certificate['preferred']['kappa']) + cap = next_a/(1+next_a) + assert cap > best + return dict(status='PASS', independent_log_base='3/2', independent_log_terms=60, + independent_exp_degree=12, independent_tail='twice first omitted term', + independent_accepted_gap=1-accepted[1], independent_rejected_gap=rejected[0]-1, + variants_reassembled=2, constraints_each=47, margins_each=7, controls=controls, + fixed_profile_balanced_family_kappa_strict_upper=cap, + remaining_possible_parameter_gain_upper=cap-best) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--certificate', type=Path, default=HERE/'certificate.json') + parser.add_argument('--receipt', type=Path, default=HERE/'audit-receipt.json') + parser.add_argument('--record', action='store_true') + args = parser.parse_args() + result = refine.arithmetic.js(audit(json.loads(args.certificate.read_text()))) + if args.record: + args.receipt.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.receipt.read_text()), 'Independent receipt changed' + print('PASS independent logarithm/exponential enclosures; 47 strict constraints; seven margins; ten assembly negative controls') + + +if __name__ == '__main__': + main() diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json new file mode 100644 index 0000000000..346cf87ea3 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json @@ -0,0 +1,1087 @@ +{ + "accepted_moment": { + "degree": 8, + "lower": "34287951499999999998997315662315085394575263036671/34287951500000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "5103158916233/100000000000000000", + "strict_gap": "2278828040192983762647964739/77927162500000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "5001621630918375893019301295747281962987/5000000000000000000000000000000000000000", + "exp_upper": "10003243261836751786038602591494564437549/10000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "61988/2833715" + }, + "10": { + "exp_lower": "1000206790403018649267184041288978248657/1000000000000000000000000000000000000000", + "exp_upper": "2500516976007546623167960103222445749253/2500000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "7053/6234173" + }, + "11": { + "exp_lower": "10002019255791173815676540174477997136241/10000000000000000000000000000000000000000", + "exp_upper": "2500504813947793453919135043619499411669/2500000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "34143/28337150" + }, + "12": { + "exp_lower": "244188838955937173152799000772966753/244140625000000000000000000000000000", + "exp_upper": "1000197484363518661233864707166071871331/1000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "1637772/1714397575" + }, + "13": { + "exp_lower": "10001933988586235970593248414082864793191/10000000000000000000000000000000000000000", + "exp_upper": "10001933988586235970593248414082865303617/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "3064763/3428795150" + }, + "14": { + "exp_lower": "625118510179239092134146727144581987029/625000000000000000000000000000000000000", + "exp_upper": "5000948081433912737073173817156656151443/5000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "1222116/1714397575" + }, + "15": { + "exp_lower": "10001860948095049038065447122495285494181/10000000000000000000000000000000000000000", + "exp_upper": "50009304740475245190327235612476430023/50000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "437037/685759030" + }, + "16": { + "exp_lower": "10001828006987297838063812648469929988329/10000000000000000000000000000000000000000", + "exp_upper": "2000365601397459567612762529693986099749/2000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "65416/155854325" + }, + "17": { + "exp_lower": "2500449265917948104603244530335785484971/2500000000000000000000000000000000000000", + "exp_upper": "5000898531835896209206489060671571225149/5000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1423053/685759030" + }, + "18": { + "exp_lower": "5000883944812795540643983155649296384137/5000000000000000000000000000000000000000", + "exp_upper": "5000883944812795540643983155649296639343/5000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "73188/342879515" + }, + "19": { + "exp_lower": "2500435073355895874949004807973392212539/2500000000000000000000000000000000000000", + "exp_upper": "2000348058684716699959203846378713872113/2000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "24073/311708650" + }, + "2": { + "exp_lower": "10002889429351305579391066844438599404943/10000000000000000000000000000000000000000", + "exp_upper": "10002889429351305579391066844438599915793/10000000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "3622866/1714397575" + }, + "20": { + "exp_lower": "5000857056559616993851882270551970640809/5000000000000000000000000000000000000000", + "exp_upper": "400068564524769359508150581644157671681/400000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "26402/342879515" + }, + "21": { + "exp_lower": "5000844605243119232606473780943636091543/5000000000000000000000000000000000000000", + "exp_upper": "2500422302621559616303236890471818173373/2500000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "12978/2981561" + }, + "22": { + "exp_lower": "10001665466600995950680178785864990598847/10000000000000000000000000000000000000000", + "exp_upper": "2500416366650248987670044696466247777313/2500000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "77/2833715" + }, + "23": { + "exp_lower": "10001642778407860986976249508714803404087/10000000000000000000000000000000000000000", + "exp_upper": "1000164277840786098697624950871480391449/1000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "11447/542102" + }, + "25": { + "exp_lower": "5000800110274057186642873980504034355159/5000000000000000000000000000000000000000", + "exp_upper": "5000800110274057186642873980504034610359/5000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "11641/566743" + }, + "3": { + "exp_lower": "5001341228208864565852456321215617302809/5000000000000000000000000000000000000000", + "exp_upper": "1000268245641772913170491264243123511627/1000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "5956407/3428795150" + }, + "4": { + "exp_lower": "10002535609381542984545633250181207029999/10000000000000000000000000000000000000000", + "exp_upper": "2500633902345385746136408312545301885141/2500000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "95648/74539025" + }, + "481": { + "exp_lower": "5000045546607739441768548232115119086657/5000000000000000000000000000000000000000", + "exp_upper": "2000018218643095776707419292846047736727/2000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "13468/271051" + }, + "5": { + "exp_lower": "5001210853727897355673045114388323699841/5000000000000000000000000000000000000000", + "exp_upper": "5001210853727897355673045114388323955101/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "171439/137151806" + }, + "525": { + "exp_lower": "2500011606112967191389431902824088768163/2500000000000000000000000000000000000000", + "exp_upper": "10000046424451868765557727611296355582971/10000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "244461/566743" + }, + "529": { + "exp_lower": "10000042551050640055883233578467532894109/10000000000000000000000000000000000000000", + "exp_upper": "2500010637762660013970808394616883351107/2500000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "116748/271051" + }, + "6": { + "exp_lower": "10002328643768966895497189574260748515347/10000000000000000000000000000000000000000", + "exp_upper": "5001164321884483447748594787130374512919/5000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "97752/68575903" + }, + "7": { + "exp_lower": "5001124980109214394703176231536499760141/5000000000000000000000000000000000000000", + "exp_upper": "5001124980109214394703176231536500015377/5000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "8995/5963122" + }, + "8": { + "exp_lower": "1250272725240877662442274762818427730447/1250000000000000000000000000000000000000", + "exp_upper": "2000436360385404259907639620509484470807/2000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "2308672/1714397575" + }, + "9": { + "exp_lower": "10002121682438781438362153684387409255829/10000000000000000000000000000000000000000", + "exp_upper": "5001060841219390719181076842193704883139/5000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4279437/3428795150" + } + }, + "upper": "77927162499999999997721171959807016237352035261/77927162500000000000000000000000000000000000000" + }, + "binary_search_steps": 46, + "bit_saving": "5103158916233/100000000000000000", + "coarse_grid_control": { + "assembly": { + "absorption_gap": "147772050946704450795209/25001275789499997448421000000000000", + "constraints": { + "K_dominates_log": "1275789506246172631493752551579/25001275789499997448421000000000000", + "K_geometry": "18751275789506247448421/25001275789499997448421000000000000", + "a_below_b": "1033421/50000000000", + "a_positive": "2551579/50000000000", + "alpha_below_one": "49999999999975001275789499997448421/50002551578999994896842000000000000", + "alpha_below_one_fourth": "12498086315725005103157999997448421/50002551578999994896842000000000000", + "alpha_positive": "2551579024993621052500002551579/50002551578999994896842000000000000", + "artificial_boundary": "1400081650528274840526312499992345263/200010206315999979587368000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "24998724210493752551579/25000000000000000000000", + "c_positive": "1275789506247448421/25000000000000000000000", + "cell_above_band": "49999999999924998724210500002551579/100005103157999989793684000000000000", + "compact_leaf": "427085500002551579/25000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "1275789524997448421/25001275789499997448421", + "epsilon_positive": "24999999999975000000000/25001275789499997448421", + "g1_above_kappa": "17277332673620444824363/2500127578949999744842100000000000", + "g2_above_kappa": "261/100000000000", + "g3_above_kappa": "147772050946704450795209/25001275789499997448421000000000000", + "g4_above_kappa": "261/100000000000", + "g5_above_kappa": "251436046988427119741387/40002041263199995917473600000000000", + "g6_above_kappa": "1357185338100135588500619/200010206315999979587368000000000000", + "g7_above_kappa": "2499872421062277587831520444824363/2500127578949999744842100000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "1275789524997448421/25001275789499997448421", + "lambda_above_internal": "2551579/50000000000000000000000", + "lambda_above_sigma": "1033421000002551579/50000000000000000000000", + "lambda_above_tau": "2551579/50000000000000000000000", + "lambda_prime_above_lambda": "2551579/50000000000000000000000", + "lambda_prime_below_one": "1275789499997448421/25000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "2041263214994641684100002551579/40002041263199995917473600000000000", + "phase_leaf_above_bit": "854171/50000000000", + "phase_local": "10206316174978311578500002551579/200010206315999979587368000000000000", + "prime_interval_packing": "1275789524997448421/25001275789499997448421", + "q_below_internal": "2551579/25000000000000000000000", + "q_below_leaf": "427085500002551579/25000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "1275789499997448421/25000000000000000000000", + "record_suffix": "1275789524997448421/25001275789499997448421", + "row_product_gap": "6548/25", + "short_record_fallback": "1249936207268472303386010555393241/1250063789474999872421050000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "1275789524997448421/25001275789499997448421", + "g2": "2551579/50000000000", + "g3": "1275789499996172631500002551579/25001275789499997448421000000000000", + "g4": "2551579/50000000000", + "g5": "2041263214994641684100002551579/40002041263199995917473600000000000", + "g6": "10206316174978311578500002551579/200010206315999979587368000000000000", + "g7": "24999999999975000000000/25001275789499997448421" + }, + "minimum_margin": "1275789499996172631500002551579/25001275789499997448421000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "2551579/50000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "2551579024993621052500002551579/50002551578999994896842000000000000", + "beta": "1/20", + "c": "1275789506247448421/25000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "24999999999975000000000/25001275789499997448421", + "h": "1/1000000000000", + "kappa": "5102897/100000000000", + "lambda_": "49997448421000002551579/50000000000000000000000", + "lambda_prime": "24998724210500002551579/25000000000000000000000", + "q": "1275789499997448421/25000000000000000000000", + "sigma": "9999283/10000000", + "tau": "49997448421/50000000000" + }, + "recurrence": { + "internal": "49997448421/50000000000", + "leaf": "199986377/200000000", + "reservations": "24998724210493752551579/25000000000000000000000" + }, + "scoped_limit": "2551579/50002551579" + }, + "bit_saving": "2551579/50000000000", + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6144678545, + "compact": 24578714177, + "geometry": 3999931962522, + "guard": 4350470, + "log_p": 25, + "normalization": 14000000000000, + "period": 49157428353, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714395060, + "rhs": 112000000156840, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714395060, + "rhs": 448000000627296, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714395060, + "rhs": 224000000313608, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714395060, + "rhs": 112000000156840000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428790120, + "rhs": 224000000156840, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428790120, + "rhs": 896000000627296, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428790120, + "rhs": 448000000313608, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428790120, + "rhs": 224000000156840000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857580241, + "rhs": 448000000156840, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857580241, + "rhs": 1792000000627296, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857580241, + "rhs": 896000000313608, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857580241, + "rhs": 448000000156840000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715160483, + "rhs": 896000000156840, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715160483, + "rhs": 3584000000627296, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715160483, + "rhs": 1792000000313608, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715160483, + "rhs": 896000000156840000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11430320967, + "rhs": 1792000000156840, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11430320967, + "rhs": 7168000000627296, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11430320967, + "rhs": 3584000000313608, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11430320967, + "rhs": 1792000000156840000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22860641934, + "rhs": 3584000000156840, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22860641934, + "rhs": 14336000000627296, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22860641934, + "rhs": 7168000000313608, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22860641934, + "rhs": 3584000000156840000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "5102897/100000000000", + "next_kappa": "2551449/50000000000", + "next_kappa_rejection": "{'g1_above_kappa': '-3861971557939776312029/1250063789474999872421050000000000', 'g3_above_kappa': '-102240706948295523689001/25001275789499997448421000000000000', 'g5_above_kappa': '-148584365643572839433349/40002041263199995917473600000000000', 'g6_above_kappa': '-642916725059864207373061/200010206315999979587368000000000000'}", + "original_enclosure_control": { + "accepted_upper": "31414992474181823539041702638067726953223056746772774820280620883954624480305519031745809764132994753882959208071327673451891977500917359580739448204316627613266780596935363578879651608348551002554602192748716268528516725933970431888266732694392744516294938417364990394615459496174135452875261376547601026472470226550667164245213471672673356552873415990292886450680769855783208863391794669086641914987931788023468477730670510596084024075441538328713023339916398705498355221133970083432695259402733395827765524378869634877859432717500503762008141825929233798931167008254709475368374051508388865497584191790219342658185334902048023058803459831350043847989335813486544496037300755940307394107652855486456896566575748317602547494848406247443162533947105245390168398328016459797877468285152634495601980504971432647153838327703599916923129770537527763252079817632121422808367288976061726138191284657279243722541218532065785928083475110872929968618380998934997039362092148018713422246239745551881230117940054196601787013559986011292764417361901016082566421251251012796046354407091934611225772748232290671622065318731567021326655644433/31414992474313928708180677874523621352103556206396664915326573931249860477582831911222317820380827856642039713344072149134147290838751531190936044695701314916811987072594709057045214808187944535470830707987621606984629316990440314337928054373375239756786622747536638358910194874324537834871658829915196615134159915111843176058062858398672677319063507082132196557150809134463687646912815011944937916567827230684945134911902541741913908828373190059709863602873297351619699439315502609902441966270292307166646440080416271209577604712655987561111810454673336732766552145593680695393728809448293097946140834850551963984106408521113636519343699470563400737447659076590127108692675420700718486850662726460389191754854035249509438356371913439956070892922708754251914760229957817430459967799146328317903978512043261923216018417388785375175312052564481508758456363897794780826879543255296865094989354227737926374713389566671431655092360096234539036355176207671348640178309523607871939963595335502695552839476616785591517423577290524646680111733605065635354851433706404171727955918218555419921577500000000000000000000000000000000000000000", + "next_bit_lower": "83629150000032150841840339335260391704594576990920669747612543458292027591267047206938392674041113125970424391021640961919112939837/83629150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "comparison": { + "additional_precision_gain": "602879/40000000000000000", + "difference": "56602879/40000000000000000", + "kappa": "2041159402879/40000000000000000", + "pr63_kappa": "5102757/100000000000", + "structural_gain_on_original_grid": "7/5000000000" + }, + "grid_denominator": 1000000000000000000, + "next_bit_saving": "51031589162331/1000000000000000000", + "preferred": { + "assembly": { + "absorption_gap": "693483857012977651709354807/2000102063178324455873643350680000000000000000", + "constraints": { + "K_dominates_log": "150092910035814427153715035479936249/2941326563497535964520063751000000000000", + "K_geometry": "37502551579470611396841083767/50002551579458111396841083767000000000000", + "a_below_b": "2066841083767/100000000000000000", + "a_positive": "5103158916233/100000000000000000", + "alpha_below_one": "99999999999950002551579458111396841083767/100005103158916222793682167534000000000000", + "alpha_below_one_fourth": "24996172630762835456317832460896841083767/100005103158916222793682167534000000000000", + "alpha_positive": "5103158966220242102709422603158916233/100005103158916222793682167534000000000000", + "artificial_boundary": "2800163301085869137052567735422190523251301/400020412635664891174728670136000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "49997448420529388603158916233/50000000000000000000000000000", + "c_positive": "2551579470611396841083767/50000000000000000000000000000", + "cell_above_band": "99999999999849997448420541888603158916233/200010206317832445587364335068000000000000", + "compact_leaf": "854170541888603158916233/50000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "2551579508111396841083767/50002551579458111396841083767", + "epsilon_positive": "49999999999950000000000000000/50002551579458111396841083767", + "g1_above_kappa": "2000102756662181468851295060034807/2000102063178324455873643350680000000000000000", + "g2_above_kappa": "520818071/200000000000000000", + "g3_above_kappa": "693483857012977651709354807/2000102063178324455873643350680000000000000000", + "g4_above_kappa": "520818071/200000000000000000", + "g5_above_kappa": "750038967175728683930267965859807/2000102063178324455873643350680000000000000000", + "g6_above_kappa": "1750089998764890911867089641199807/2000102063178324455873643350680000000000000000", + "g7_above_kappa": "1999897936819675646883018830788851295060034807/2000102063178324455873643350680000000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "2551579508111396841083767/50002551579458111396841083767", + "lambda_above_internal": "5103158916233/100000000000000000000000000000", + "lambda_above_sigma": "2066841083772103158916233/100000000000000000000000000000", + "lambda_above_tau": "5103158916233/100000000000000000000000000000", + "lambda_prime_above_lambda": "5103158916233/100000000000000000000000000000", + "lambda_prime_below_one": "2551579458111396841083767/50000000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "4082527162975683366275915803158916233/80004082527132978234945734027200000000000", + "phase_leaf_above_bit": "1708341083767/100000000000000000", + "phase_local": "20412636014888623149212024603158916233/400020412635664891174728670136000000000000", + "prime_interval_packing": "2551579508111396841083767/50002551579458111396841083767", + "q_below_internal": "5103158916233/50000000000000000000000000000", + "q_below_leaf": "854170541888603158916233/50000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "2551579458111396841083767/50000000000000000000000000000", + "record_suffix": "2551579508111396841083767/50002551579458111396841083767", + "row_product_gap": "6548/25", + "short_record_fallback": "4999744829028072887861858675469183867110910289/5000255157945811139684108376700000000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "2551579508111396841083767/50002551579458111396841083767", + "g2": "5103158916233/100000000000000000", + "g3": "2551579458108845261625655603158916233/50002551579458111396841083767000000000000", + "g4": "5103158916233/100000000000000000", + "g5": "4082527162975683366275915803158916233/80004082527132978234945734027200000000000", + "g6": "20412636014888623149212024603158916233/400020412635664891174728670136000000000000", + "g7": "49999999999950000000000000000/50002551579458111396841083767" + }, + "minimum_margin": "2551579458108845261625655603158916233/50002551579458111396841083767000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "5103158916233/100000000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "5103158966220242102709422603158916233/100005103158916222793682167534000000000000", + "beta": "1/20", + "c": "2551579470611396841083767/50000000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "49999999999950000000000000000/50002551579458111396841083767", + "h": "1/1000000000000", + "kappa": "2041159402879/40000000000000000", + "lambda_": "99994896841083772103158916233/100000000000000000000000000000", + "lambda_prime": "49997448420541888603158916233/50000000000000000000000000000", + "q": "2551579458111396841083767/50000000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "99994896841083767/100000000000000000" + }, + "recurrence": { + "internal": "99994896841083767/100000000000000000", + "leaf": "199986377/200000000", + "reservations": "49997448420529388603158916233/50000000000000000000000000000" + }, + "scoped_limit": "5103158916233/100005103158916233" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6144678545, + "compact": 24578714177, + "geometry": 3999931962510, + "guard": 4350469, + "log_p": 25, + "normalization": 14000000000000, + "period": 49157428353, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714395060, + "rhs": 112000000156840, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714395060, + "rhs": 448000000627296, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714395060, + "rhs": 224000000313608, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714395060, + "rhs": 112000000156840000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428790120, + "rhs": 224000000156840, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428790120, + "rhs": 896000000627296, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428790120, + "rhs": 448000000313608, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428790120, + "rhs": 224000000156840000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857580241, + "rhs": 448000000156840, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857580241, + "rhs": 1792000000627296, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857580241, + "rhs": 896000000313608, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857580241, + "rhs": 448000000156840000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715160483, + "rhs": 896000000156840, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715160483, + "rhs": 3584000000627296, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715160483, + "rhs": 1792000000313608, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715160483, + "rhs": 896000000156840000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11430320967, + "rhs": 1792000000156840, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11430320967, + "rhs": 7168000000627296, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11430320967, + "rhs": 3584000000313608, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11430320967, + "rhs": 1792000000156840000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22860641934, + "rhs": 3584000000156840, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22860641934, + "rhs": 14336000000627296, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22860641934, + "rhs": 7168000000313608, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22860641934, + "rhs": 3584000000156840000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "2041159402879/40000000000000000", + "next_kappa": "6378623133997/125000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-4083181894266708763013401699/6250318947432263924605135470875000000000000000'}" + }, + "profile_path": "research/reordered-rank-pair/paired-candidate.json", + "profile_sha256": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "proof_limits": [ + "The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.", + "The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.", + "All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.", + "Neither global optimality nor measured practical speedup is claimed." + ], + "rejected_moment": { + "degree": 8, + "lower": "8571987875000000003683551653063012975552828889113/8571987875000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "51031589162331/1000000000000000000", + "strict_gap": "-920887913265753353254538048853/2142996968750000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "2000648652367350369920582377063597092877/2000000000000000000000000000000000000000", + "exp_upper": "250081081545918796240072797132949649399/250000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "61988/2833715" + }, + "10": { + "exp_lower": "1250258488003773316649758574168230193791/1250000000000000000000000000000000000000", + "exp_upper": "10002067904030186533198068593345842060769/10000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "7053/6234173" + }, + "11": { + "exp_lower": "2500504813947793463812319247263927798241/2500000000000000000000000000000000000000", + "exp_upper": "10002019255791173855249276989055711703399/10000000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "34143/28337150" + }, + "12": { + "exp_lower": "5000987421817593325520461283451770998243/5000000000000000000000000000000000000000", + "exp_upper": "2500493710908796662760230641725885626729/2500000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "1637772/1714397575" + }, + "13": { + "exp_lower": "10001933988586236008494783943791019880507/10000000000000000000000000000000000000000", + "exp_upper": "10001933988586236008494783943791020390933/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "3064763/3428795150" + }, + "14": { + "exp_lower": "2000379232573565102261303916827906717827/2000000000000000000000000000000000000000", + "exp_upper": "5000948081433912755653259792069767049779/5000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "1222116/1714397575" + }, + "15": { + "exp_lower": "80014887584760392596283449051250475889/80000000000000000000000000000000000000", + "exp_upper": "4883721166062035680925503482131987303/4882812500000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "437037/685759030" + }, + "16": { + "exp_lower": "2500457001746824468472043338830729543989/2500000000000000000000000000000000000000", + "exp_upper": "10001828006987297873888173355322918686373/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "65416/155854325" + }, + "17": { + "exp_lower": "5000898531835896226815436415768443842763/5000000000000000000000000000000000000000", + "exp_upper": "500089853183589622681543641576844409797/500000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1423053/685759030" + }, + "18": { + "exp_lower": "10001767889625591115934073106937856632037/10000000000000000000000000000000000000000", + "exp_upper": "10001767889625591115934073106937857142449/10000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "73188/342879515" + }, + "19": { + "exp_lower": "10001740293423583533901264128804098082667/10000000000000000000000000000000000000000", + "exp_upper": "10001740293423583533901264128804098593077/10000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "24073/311708650" + }, + "2": { + "exp_lower": "10002889429351305636019653150309302953393/10000000000000000000000000000000000000000", + "exp_upper": "2500722357337826409004913287577325866061/2500000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "3622866/1714397575" + }, + "20": { + "exp_lower": "312553566034976063165496853081160074831/312500000000000000000000000000000000000", + "exp_upper": "2000342822623846804259179859719424581/2000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "26402/342879515" + }, + "21": { + "exp_lower": "2500422302621559624579253655476377600133/2500000000000000000000000000000000000000", + "exp_upper": "5000844605243119249158507310952755455469/5000000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "12978/2981561" + }, + "22": { + "exp_lower": "2500416366650248995829722405840081230591/2500000000000000000000000000000000000000", + "exp_upper": "10001665466600995983318889623360325432769/10000000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "77/2833715" + }, + "23": { + "exp_lower": "2500410694601965254792573914274872537973/2500000000000000000000000000000000000000", + "exp_upper": "2000328555681572203834059131419898132459/2000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "11447/542102" + }, + "25": { + "exp_lower": "10001600220548114404645707602572389258573/10000000000000000000000000000000000000000", + "exp_upper": "10001600220548114404645707602572389768973/10000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "11641/566743" + }, + "3": { + "exp_lower": "10002682456417729184276588504835870946771/10000000000000000000000000000000000000000", + "exp_upper": "5001341228208864592138294252417935728711/5000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "5956407/3428795150" + }, + "4": { + "exp_lower": "10002535609381543034238987146257411071669/10000000000000000000000000000000000000000", + "exp_upper": "2000507121876308606847797429251482316447/2000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "95648/74539025" + }, + "481": { + "exp_lower": "10000091093215478885322140431537484956017/10000000000000000000000000000000000000000", + "exp_upper": "10000091093215478885322140431537485466339/10000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "13468/271051" + }, + "5": { + "exp_lower": "10002421707455794758806902349921645317387/10000000000000000000000000000000000000000", + "exp_upper": "5001210853727897379403451174960822913953/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "171439/137151806" + }, + "525": { + "exp_lower": "10000046424451868766467449616668560743529/10000000000000000000000000000000000000000", + "exp_upper": "10000046424451868766467449616668561253849/10000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "244461/566743" + }, + "529": { + "exp_lower": "10000042551050640056717053215833107892989/10000000000000000000000000000000000000000", + "exp_upper": "2500010637762660014179263303958277100827/2500000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "116748/271051" + }, + "6": { + "exp_lower": "5001164321884483470566959992315705168419/5000000000000000000000000000000000000000", + "exp_upper": "10002328643768966941133919984631410847329/10000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "97752/68575903" + }, + "7": { + "exp_lower": "10002249960218428833500870239874329437677/10000000000000000000000000000000000000000", + "exp_upper": "200044999204368576670017404797486598963/200000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "8995/5963122" + }, + "8": { + "exp_lower": "4000872720770808536918724056383927967/4000000000000000000000000000000000000", + "exp_upper": "10002181801927021342296810140959820427959/10000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "2308672/1714397575" + }, + "9": { + "exp_lower": "2500530420609695369985607115381001329959/2500000000000000000000000000000000000000", + "exp_upper": "5001060841219390739971214230762002915143/5000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4279437/3428795150" + } + }, + "upper": "2142996968750000000920887913265753353254538048853/2142996968750000000000000000000000000000000000000" + }, + "source_sha256": { + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0" + }, + "status": "Exact finite conditional screen; physical linkage checked by parent verifier" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py new file mode 100644 index 0000000000..399299089e --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3 +"""Exact arithmetic screen of the reordered rank-pair complete physical profile. + +Uses PR63's paid profile, inherited PR48 logarithm enclosures and balanced +assembly (PR34 and successors). New directed Taylor bounds are documented in +this file. Prepared with OpenAI assistance. Inherited licenses apply. +Physical linkage is checked by the parent verifier; no full theorem or practical speedup claim is implied. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import importlib.util +import json +from math import factorial +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(ROOT/'scripts/experiments')) +import binary_frame_math as arithmetic +spec = importlib.util.spec_from_file_location('inherited_assembly', ROOT/'references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py') +balanced = importlib.util.module_from_spec(spec) +spec.loader.exec_module(balanced) + + +def floor_scaled(x, denominator): + return (x * denominator).numerator // (x * denominator).denominator + + +def ceiling_scaled(x, denominator): + return -floor_scaled(-x, denominator) + + +def exact_moment(m, width, rows, saving, degree=8, rounding=10**40): + """Bound sum n*t/(mW)*exp(saving*log(m/t)) entirely in Q. + + At 0 <= u <= v < 1, S_d(u) is a lower bound for exp(u). + The tail at v has first term v^(d+1)/(d+1)!; successive ratios + are at most v/(d+2). Thus S_d(v)+first/(1-v/(d+2)) is upper. + Directed rounding per exp bound preserves both inequalities. + The inherited logarithm helper encloses log(m/t) rationally. + """ + assert type(saving) is Q and 0 < saving < 1 and degree >= 1 + lo, hi = Q(), Q() + terms = {} + for t, count in sorted(rows.items()): + assert type(t) is int and type(count) is int and 0 < t < m and count > 0 + loglo, loghi = arithmetic.logs(Q(m, t)) + u, v = saving*loglo, saving*loghi + assert 0 <= u <= v < 1 + lower = sum((u**j / factorial(j) for j in range(degree+1)), Q()) + upper = sum((v**j / factorial(j) for j in range(degree+1)), Q()) + upper += v**(degree+1)/factorial(degree+1)/(1-v/Q(degree+2)) + lower = Q(floor_scaled(lower, rounding), rounding) + upper = Q(ceiling_scaled(upper, rounding), rounding) + weight = Q(t*count, m*width) + lo += weight*lower + hi += weight*upper + terms[t] = dict(weight=weight, log_lower=loglo, log_upper=loghi, + exp_lower=lower, exp_upper=upper) + return dict(saving=saving, lower=lo, upper=hi, strict_gap=1-hi, + degree=degree, rounding_denominator=rounding, terms=terms) + + +def assemble(bridge, saving, h, denominator): + preliminary = balanced.assembly(bridge, saving, Q(1, denominator), h=h) + kappa = Q(ceiling_scaled(preliminary['minimum_margin'], denominator)-1, denominator) + accepted = balanced.assembly(bridge, saving, kappa, h=h) + assert len(accepted['constraints']) == 47 and len(accepted['margins']) == 7 + assert all(v > 0 for v in accepted['constraints'].values()) + assert all(v > kappa for v in accepted['margins'].values()) + try: + balanced.assembly(bridge, saving, kappa+Q(1, denominator), h=h) + except balanced.InvalidAssembly as error: + rejected = str(error) + else: + raise AssertionError('Next kappa grid unexpectedly passes') + return dict(kappa=kappa, assembly=accepted, + next_kappa=kappa+Q(1, denominator), next_kappa_rejection=rejected, + eventual_bounds=balanced.cutoffs(bridge, accepted)) + + +def build_certificate(profile_path, denominator=10**18, h=Q(1, 10**12)): + profile_path = profile_path.resolve() + source = json.loads(profile_path.read_text()) + profile = source['bit'] + bridge = source['finite_bridge'] + m, width = profile['m'], profile['W'] + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + assert sum(t*n for t, n in rows.items()) == profile['total_rank'] + assert bridge['bit']['W'] == width + low, high = 1, floor_scaled(Q(717, 10**7), denominator) + assert exact_moment(m, width, rows, Q(low, denominator))['upper'] < 1 + assert exact_moment(m, width, rows, Q(high, denominator))['lower'] > 1 + steps = 0 + while low+1 < high: + mid = (low+high)//2 + test = exact_moment(m, width, rows, Q(mid, denominator)) + if test['upper'] < 1: + low = mid + elif test['lower'] > 1: + high = mid + else: + raise ArithmeticError('Rational bounds inconclusive: increase enclosure precision') + steps += 1 + saving = Q(low, denominator) + accepted = exact_moment(m, width, rows, saving) + rejected = exact_moment(m, width, rows, Q(high, denominator)) + assert accepted['upper'] < 1 < rejected['lower'] + preferred = assemble(bridge, saving, h, denominator) + coarse_denom = 10**11 + coarse_bit = Q(floor_scaled(saving, coarse_denom), coarse_denom) + assert exact_moment(m, width, rows, coarse_bit)['upper'] < 1 + coarse = assemble(bridge, coarse_bit, h, coarse_denom) + inherited_coarse = arithmetic.moment(m, width, rows, coarse_bit) + inherited_next = arithmetic.moment(m, width, rows, coarse_bit+Q(1, coarse_denom)) + assert inherited_coarse['upper'] < 1 < inherited_next['lower'] + coarse['original_enclosure_control'] = dict(accepted_upper=inherited_coarse['upper'], + next_bit_lower=inherited_next['lower']) + # Same coarse grid/backoff as PR63 separates the structural gain from + # the additional precision refinement suggested by the PR61 precedent. + prior = Q(source['kappa']) + paths = (Path(__file__), Path(__file__).with_name('audit.py'), + ROOT/'scripts/experiments/binary_frame_math.py', Path(balanced.__file__)) + return dict(status='Exact finite conditional screen; physical linkage checked by parent verifier', + profile_path=str(profile_path.relative_to(ROOT)), + profile_sha256=sha256(profile_path.read_bytes()).hexdigest(), + source_sha256={str(path.relative_to(ROOT)):sha256(path.read_bytes()).hexdigest() for path in paths}, + grid_denominator=denominator, binary_search_steps=steps, bit_saving=saving, + next_bit_saving=Q(high, denominator), accepted_moment=accepted, rejected_moment=rejected, + preferred=preferred, coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr63_kappa=prior, kappa=preferred['kappa'], + difference=preferred['kappa']-prior, + structural_gain_on_original_grid=coarse['kappa']-prior, + additional_precision_gain=preferred['kappa']-coarse['kappa']), + proof_limits=['The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.', + 'The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.', + 'All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.', + 'Neither global optimality nor measured practical speedup is claimed.']) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--profile', type=Path, default=Path(__file__).resolve().parent.parent/'paired-candidate.json') + parser.add_argument('--certificate', type=Path, default=Path(__file__).with_name('certificate.json')) + parser.add_argument('--record', action='store_true', help='Regenerate certificate instead of comparing with recorded result') + args = parser.parse_args() + result = arithmetic.js(build_certificate(args.profile)) + if args.record: + args.certificate.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.certificate.read_text()), 'Arithmetic certificate changed' + print(json.dumps(dict(status='PASS exact arithmetic', bit_saving=result['bit_saving'], + kappa=result['preferred']['kappa'], constraints=47, margins=7, + next_grid_controls='PASS', comparison=result['comparison']), indent=2)) + + +if __name__ == '__main__': + main() diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py new file mode 100644 index 0000000000..e23cba24ec --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py @@ -0,0 +1,68 @@ +"""Meaningful certificate verification and deliberate-failure controls.""" +import sys +sys.dont_write_bytecode = True +from copy import deepcopy +from fractions import Fraction as Q +import json +from pathlib import Path +import subprocess +import unittest + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import refine +import audit + + +class ExactArithmeticTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.certificate = json.loads((HERE/'certificate.json').read_text()) + cls.profile = json.loads((refine.ROOT/cls.certificate['profile_path']).read_text())['bit'] + + def test_complete_reproduction(self): + actual = refine.arithmetic.js(refine.build_certificate(refine.ROOT/self.certificate['profile_path'])) + self.assertEqual(actual, self.certificate) + + def test_independent_enclosures_and_controls(self): + actual = refine.arithmetic.js(audit.audit(self.certificate)) + self.assertEqual(actual, json.loads((HERE/'audit-receipt.json').read_text())) + self.assertEqual(len(actual['controls']), 10) + + def test_next_bit_grid_is_rejected(self): + p = self.profile + result = refine.exact_moment(p['m'], p['W'], {int(t):n for t,n in p['child_multiplicities'].items()}, Q(self.certificate['next_bit_saving'])) + self.assertGreater(result['lower'], 1) + + def test_forged_accepted_bit_is_rejected(self): + forged = deepcopy(self.certificate) + forged['bit_saving'] = forged['next_bit_saving'] + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_forged_source_digest_is_rejected(self): + forged = deepcopy(self.certificate) + forged['profile_sha256'] = '0'*64 + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_omitted_constraint_is_rejected(self): + forged = deepcopy(self.certificate) + del forged['preferred']['assembly']['constraints']['K_geometry'] + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_float_saving_refused(self): + with self.assertRaises(AssertionError): + refine.exact_moment(2, 1, {1:1}, 0.01) + + def test_python_optimization_is_rejected(self): + for script in ('refine.py', 'audit.py'): + result = subprocess.run([sys.executable, '-B', '-O', str(HERE/script)], + cwd=refine.ROOT, capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn('Assertions must remain enabled', result.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json new file mode 100644 index 0000000000..1d539de130 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json @@ -0,0 +1,9 @@ +{ + "source_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/64", + "head": "790a14e28e935398072b9a9a68694ce7fba8940f", + "source": "PR body reported bound, checked 2026-10-08; not an independent audit of PR64", + "kappa": "2041159402879/40000000000000000", + "pr64_kappa": "20411033624901463/400000000000000000000", + "difference": "560403888537/400000000000000000000", + "relative_gain": "560403888537/20411033624901463" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json new file mode 100644 index 0000000000..42958fc74b --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json @@ -0,0 +1,195 @@ +{ + "artifact_sha256": { + "frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940" + }, + "axes": { + "23": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 36432, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 31460, + "elementary_xors": 149137, + "h": 23, + "histogram": { + "0": 302057, + "1": 42694, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "2": 82722, + "21": 165, + "22": 23, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "rank_mass": 642620, + "roles": 27918, + "stats": { + "augmentations": 220, + "clearing_xors": 1577, + "matched": 37025, + "multi_node_regions": 10350, + "reclaimed": 801, + "regions": 52473 + } + }, + "gzip_sha256": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "replay": { + "elementary_xors": 149137, + "full_basis_vectors": 31460, + "h": 23, + "histogram": { + "0": 162914, + "1": 42694, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "2": 82722, + "21": 165, + "22": 23, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525 + }, + "output_roles": 5336, + "rank_mass": 642620, + "roles": 27918, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 621342 + }, + "schedule": "cover-core", + "word_sha256": "09c20f4e46207b7c91092cefb2b851c88694b6c12d3bf5091333cd8a78a197a4" + }, + "25": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 48329, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 41186, + "elementary_xors": 205977, + "h": 25, + "histogram": { + "0": 416741, + "1": 55478, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "2": 115781, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "rank_mass": 915250, + "roles": 36586, + "stats": { + "augmentations": 286, + "clearing_xors": 2154, + "matched": 53194, + "multi_node_regions": 13975, + "reclaimed": 1090, + "regions": 73695 + } + }, + "gzip_sha256": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "replay": { + "elementary_xors": 205977, + "full_basis_vectors": 41186, + "h": 25, + "histogram": { + "0": 224465, + "1": 55478, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "2": 115781, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569 + }, + "output_roles": 6925, + "rank_mass": 915250, + "roles": 36586, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 856108 + }, + "schedule": "reverse-node", + "word_sha256": "a54443429f47c486016771ce0436effda098e142afc52861c20957e9ff8e086b" + } + }, + "source_sha256": { + "research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd" + }, + "status": "Exact topological scheduling of unchanged PR63 graph/compiler; both physical orientations and fixed profiles checked" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json new file mode 100644 index 0000000000..3b648dbe21 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json @@ -0,0 +1,38 @@ +{ + "h": 23, + "v": 1771, + "R": 27918, + "loss": 506, + "rank_sum": 642620, + "field_prime": 2305843009213693951, + "frames": 52475, + "distinct_matrices": 36399, + "crt_matrices": 6049, + "crt_disagreements": 0, + "blocks": [ + 0, + 343849, + 16857, + 10540, + 5782, + 4156, + 3911, + 3635, + 2858, + 2284, + 1804, + 1716, + 1262, + 1077, + 711, + 589, + 352, + 193, + 114, + 0, + 45, + 23, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json new file mode 100644 index 0000000000..19cc34b4ca --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json @@ -0,0 +1,40 @@ +{ + "h": 25, + "v": 2300, + "R": 36586, + "loss": 600, + "rank_sum": 915250, + "field_prime": 2305843009213693951, + "frames": 73697, + "distinct_matrices": 50394, + "crt_matrices": 8127, + "crt_disagreements": 0, + "blocks": [ + 0, + 474640, + 25158, + 12097, + 6776, + 5735, + 5500, + 4875, + 3784, + 3209, + 2695, + 2649, + 1906, + 1663, + 1344, + 1127, + 711, + 585, + 380, + 181, + 113, + 0, + 55, + 25, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json new file mode 100644 index 0000000000..2883a5f7c9 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json @@ -0,0 +1,35 @@ +{ + "h": 23, + "v": 1771, + "R": 27918, + "frames": 52475, + "distinct_transitions": 138016, + "singles": 15939, + "rank_mass": 642620, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 53320, + "2": 77409, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "21": 165, + "22": 23 + }, + "word_sha256": "09c20f4e46207b7c91092cefb2b851c88694b6c12d3bf5091333cd8a78a197a4", + "copied_centers": 23, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json new file mode 100644 index 0000000000..3b4bc33ff6 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json @@ -0,0 +1,35 @@ +{ + "h": 25, + "v": 2300, + "R": 36586, + "frames": 73697, + "distinct_transitions": 190838, + "singles": 20700, + "rank_mass": 915250, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 69278, + "2": 108881, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25 + }, + "word_sha256": "a54443429f47c486016771ce0436effda098e142afc52861c20957e9ff8e086b", + "copied_centers": 25, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz new file mode 100644 index 0000000000..3a7c7c41c1 Binary files /dev/null and b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz differ diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz new file mode 100644 index 0000000000..6a239a3e9f Binary files /dev/null and b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz differ diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json new file mode 100644 index 0000000000..dbfad24526 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json @@ -0,0 +1,252 @@ +{ + "bit": { + "L": 2226400, + "N": 4073300, + "W": 137151806, + "axes": [ + { + "R": 27918, + "blocks": [ + 0, + 343849, + 16857, + 10540, + 5782, + 4156, + 3911, + 3635, + 2858, + 2284, + 1804, + 1716, + 1262, + 1077, + 711, + 589, + 352, + 193, + 114, + 0, + 45, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6049, + "distinct_matrices": 36399, + "field_prime": 2305843009213693951, + "frames": 52475, + "h": 23, + "loss": 506, + "rank_sum": 642620, + "v": 1771 + }, + { + "R": 36586, + "blocks": [ + 0, + 474640, + 25158, + 12097, + 6776, + 5735, + 5500, + 4875, + 3784, + 3209, + 2695, + 2649, + 1906, + 1663, + 1344, + 1127, + 711, + 585, + 380, + 181, + 113, + 0, + 55, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8127, + "distinct_matrices": 50394, + "field_prime": 2305843009213693951, + "frames": 73697, + "h": 25, + "loss": 600, + "rank_sum": 915250, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1725126040, + "10": 8922045, + "11": 8638179, + "12": 6278126, + "13": 5422273, + "14": 4015524, + "15": 3350617, + "16": 2068781, + "17": 9626535, + "18": 935180, + "19": 320551, + "2": 83325918, + "20": 303623, + "21": 16346100, + "22": 97405, + "23": 72402275, + "25": 64793806, + "3": 45665787, + "4": 25298896, + "481": 8146600, + "5": 19715485, + "525": 64793806, + "529": 64211400, + "6": 18735800, + "7": 16994125, + "8": 13274864, + "9": 10936339 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 64211400, + "529": 64211400 + }, + "exterior_25": { + "25": 64793806, + "525": 64793806 + }, + "internal_23": { + "1": 790852700, + "10": 4149200, + "11": 3946800, + "12": 2902600, + "13": 2477100, + "14": 1635300, + "15": 1354700, + "16": 809600, + "17": 443900, + "18": 262200, + "2": 38771100, + "20": 103500, + "21": 52900, + "3": 24242000, + "4": 13298600, + "5": 9558800, + "6": 8995300, + "7": 8360500, + "8": 6573400, + "9": 5253200 + }, + "internal_25": { + "1": 840587440, + "10": 4772845, + "11": 4691379, + "12": 3375526, + "13": 2945173, + "14": 2380224, + "15": 1995917, + "16": 1259181, + "17": 1036035, + "18": 672980, + "19": 320551, + "2": 44554818, + "20": 200123, + "22": 97405, + "23": 44275, + "3": 21423787, + "4": 12000296, + "5": 10156685, + "6": 9740500, + "7": 8633625, + "8": 6701464, + "9": 5683139 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 78860441550 + }, + "bit_saving": "2551509/50000000000", + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "kappa": "5102757/100000000000", + "source": { + "axis23": "research/reordered-rank-pair/frame-profiles-23.json", + "axis25": "research/reordered-rank-pair/frame-profiles-25.json", + "profile_constructor": "research/pair-assembly/frame/frame_verify.py" + } +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py new file mode 100644 index 0000000000..a219a87719 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +"""Adversarial controls for the reordered serialized words and scheduling.""" +import sys +sys.dont_write_bytecode=True +import gzip,json,tempfile,subprocess +from pathlib import Path +import verify + +def rejected(label,call): + try:call() + except (AssertionError,IndexError,ValueError): + print('PASS rejected '+label,flush=True) + else:raise AssertionError('Invalid control accepted: '+label) + +def main(): + optimized=subprocess.run([sys.executable,'-B','-O',str(verify.HERE/'verify.py')],capture_output=True,text=True) + assert optimized.returncode!=0 and 'Assertions must remain enabled' in optimized.stderr + print('PASS rejected optimized Python invocation',flush=True) + work=verify.ROOT/'build/reordered-rank-pair';work.mkdir(parents=True,exist_ok=True) + original=json.loads(gzip.decompress((verify.HERE/'frame-word-23.json.gz').read_bytes())) + with tempfile.TemporaryDirectory(prefix='negative-',dir=work) as temporary: + path=Path(temporary)/'mutated.json' + bad=dict(original);bad['ops']=original['ops'][1:] + path.write_text(json.dumps(bad,separators=(',',':'))) + rejected('omitted physical XOR',lambda:verify.replay(path)) + bad=dict(original);bad['R']=original['R']-1 + path.write_text(json.dumps(bad,separators=(',',':'))) + rejected('understated physical role count',lambda:verify.replay(path)) + records=json.loads((verify.HERE/'frame-compiler.json').read_text()) + for name in ('frame-word-23.json.gz','frame-profiles-23.json'): + path.write_bytes((verify.HERE/name).read_bytes()+b' ') + rejected('changed digest '+name,lambda name=name:require_digest(path,records['artifact_sha256'][name])) + # Two equal-rank regions with an actual dependency must not be reversed. + blocks=[{'rank':1,'nodes':[1],'inputs':[],'candidates':[]}, + {'rank':1,'nodes':[2],'inputs':[1],'candidates':[]}] + invalid=lambda h:(None,blocks,[],{}, {1:0,2:1},{},[0,1],None) + rejected('backward region dependency',lambda:verify.reordered_build(invalid,'reverse-node')(23)) + print('PASS all six reordered-word negative controls',flush=True) + +def require_digest(path,expected):assert verify.sha(path)==expected + +if __name__=='__main__':main() diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py new file mode 100644 index 0000000000..5ac300ecd0 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Replay, profile, or deterministically rebuild a reordered PR63 circuit. + +PR62 graph: Avi Eisenberg, assisted by Claude; PR60 compiler: Chafik +Boukhalfa, derived from eumemic PR57, with OpenAI Codex assistance. +Region scheduling experiment: Rohan Arun with OpenAI Codex assistance. +Apache-2.0; inherited notices and mathematical dependencies remain applicable. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse, gzip, importlib.util, json, os, shlex, subprocess, tempfile +from hashlib import sha256 +from pathlib import Path + +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +EXP=ROOT/'scripts/experiments' +sys.path[:0]=[str(EXP),str(ROOT/'scripts')] +from binary_frame_replay import replay +from binary_frame_profile_prepare import prepare +import binary_frame_math as arithmetic + +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path) + module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module) + return module + +def sha(path):return sha256(path.read_bytes()).hexdigest() + +def reordered_build(original,mode): + def build(h): + parts=list(original(h)) + c,blocks,uses,value_uses,owner,signal,order,contains=parts + if mode=='reverse-node': + key=lambda g:(blocks[g]['rank'],-min(blocks[g]['nodes'])) + elif mode=='cover-core': + key=lambda g:(blocks[g]['rank'],blocks[g]['frame'][1],blocks[g]['frame'][0]) + else:raise ValueError(mode) + parts[6]=sorted(range(len(blocks)),key=key) + position={g:i for i,g in enumerate(parts[6])} + for g,b in enumerate(blocks): + for x in b['inputs']: + assert position[owner[x]]=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +@lru_cache(None) +def logs(x): + x = Q(x) + require(x >= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py b/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py new file mode 100644 index 0000000000..85ad7b77bd --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py @@ -0,0 +1,88 @@ +"""Extract positive-rank transitions from independently replayed block words.""" +from collections import Counter +from hashlib import sha256 +from itertools import combinations +from pathlib import Path +import json,struct,sys,gzip,argparse + + +def prepare(path,destination): + raw=Path(path).read_bytes();raw=gzip.decompress(raw) if str(path).endswith('.gz') else raw;d=json.loads(raw) + h,v,R=d['h'],d['v'],d['R'] + frames=[(0,0,0),(0,0,h)]+[(c,u,1 if c==u else u.bit_count()-c.bit_count()) for c,u in d['frames']] + physical=[None]*R;transitions=Counter() + for s,a,b in d['events']: + assert 0<=s0 + histogram[r]+=count + with Path(destination).open('wb') as f: + f.write(struct.pack('<6I2Q',h,v,R,len(frames),len(transitions),singles,mass,h*(h-1))) + for c,u,r in frames:f.write(struct.pack('<2QI',c,u,r)) + for (a,b),count in sorted(transitions.items()):f.write(struct.pack('<2Iq',a,b,count)) + receipt=dict(h=h,v=v,R=R,frames=len(frames),distinct_transitions=len(transitions),singles=singles,rank_mass=mass, + rank_histogram_with_side_growth_split_into_singletons=dict(sorted(histogram.items())),word_sha256=sha256(raw).hexdigest(),copied_centers=centers, + transition_events_equal_independent_xor_word_reconstruction=True) + Path(str(destination)+'.json').write_text(json.dumps(receipt,indent=2)+'\n') + return receipt + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('word',type=Path);parser.add_argument('destination',type=Path) + args=parser.parse_args();print(json.dumps(prepare(args.word,args.destination),indent=2)) diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp b/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp new file mode 100644 index 0000000000..1b52bd057d --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp @@ -0,0 +1,85 @@ +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1<= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6143424401, + "compact": 24573697601, + "geometry": 3999931956149, + "guard": 4350062, + "log_p": 25, + "normalization": 14000000000000, + "period": 49147395201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714467976, + "rhs": 112000000156824, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714467976, + "rhs": 448000000627232, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714467976, + "rhs": 224000000313576, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714467976, + "rhs": 112000000156824000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428935953, + "rhs": 224000000156824, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428935953, + "rhs": 896000000627232, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428935953, + "rhs": 448000000313576, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428935953, + "rhs": 224000000156824000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857871906, + "rhs": 448000000156824, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857871906, + "rhs": 1792000000627232, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857871906, + "rhs": 896000000313576, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857871906, + "rhs": 448000000156824000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715743812, + "rhs": 896000000156824, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715743812, + "rhs": 3584000000627232, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715743812, + "rhs": 1792000000313576, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715743812, + "rhs": 896000000156824000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11431487624, + "rhs": 1792000000156824, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11431487624, + "rhs": 7168000000627232, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11431487624, + "rhs": 3584000000313576, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11431487624, + "rhs": 1792000000156824000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22862975248, + "rhs": 3584000000156824, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22862975248, + "rhs": 14336000000627232, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22862975248, + "rhs": 7168000000313576, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22862975248, + "rhs": 3584000000156824000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "40827/800000000", + "next_kappa": "318961/6250000000", + "next_kappa_rejection": "{'g1_above_kappa': '-25408022593116799041/7102635201420453820506250000000', 'g3_above_kappa': '-5201705247125960457841/1136421632227272611281000000000000', 'g5_above_kappa': '-7640875416065173165777/1818274611563636178049600000000000', 'g6_above_kappa': '-33658690551416775383761/9091373057818180890248000000000000'}", + "original_enclosure_control": { + "accepted_upper": "427922022655051425592169455669348999419009338821677321501934579031509793316011927849852932699225587520480274623290826519124585131702799274967695430254567113650998884459986946222692530282749027853246814000572815342011972280832203653626757194588235745687874105909336892415629002940540277569675953192803096179140323199169875932058482212840371519373866332987776983981442275480629595879092440778438065834410270423292532877965451564571150969903518733283745770147929604915103094966966240445718551419238205360172260389165815355293860586787487668007987689744585745259297708409486845374929838902410526770296527117452860612190765279746966315757114757646249443956020657651637850471083396567352186238660458491615294604389003317389825219053116168473153626947262543915434579501546193988862612230828605213616950127673267971569642351835151332191639228898384399684069201926146521990048728093044781289653532998958679374426311189560250341590145887508815021337226982815008224357898461730107482372032845888428476273500999760300211786400006201411895378711403441679516543048925021677151249124774565210588951830515783148269750340702961227551/427922022656065148722015624802653702889498564421131911283499341667573520226931037010841800905471906532344178836996138043716400845851217866305783744362952178488692163617667760947934446961428764096857095662125776648371730944750850740376437391609342381012534311915175448066736517476339673099556706774420618964194148648273392198066357729130169733561134843302857240883248026154958104699812690626052696940220399106081385425042375485602542555097186568052507330835744941604979041042724146442866160606543845260686788873587136675704407457814823973491248098778928607362558510538701395621352496475077156310639504247824069338077266718928997258973439362819271794470658904562860362470215133491491305622841328989108583065554731667738937158958161399293136952726957825424616696098290625805073806865420810062253320746566043770582998650738545122821954094593047815197564256009823257422725379706679933315631514838786135447434356419391187561619401952168548631044553632502869921434523792993783307013326156305798890689568359302672301544894715282222433613932715358768884516049207059704442128612279932500000000000000000000000000000000000000000", + "next_bit_lower": "374050380000830479912607937870818083834173718615907103079616878943322706260497332605534066060136407627149268792108716494485294881071/374050380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "comparison": { + "additional_precision_gain": "2116843/200000000000000000", + "difference": "1238116843/200000000000000000", + "difference_pr65": "59693903/12500000000000000", + "kappa": "10206752116843/200000000000000000", + "pr63_kappa": "5102757/100000000000", + "pr65_kappa": "2041159402879/40000000000000000", + "structural_gain_on_original_grid": "309/50000000000" + }, + "grid_denominator": 1000000000000000000, + "next_bit_saving": "5103636516201/100000000000000000", + "preferred": { + "assembly": { + "absorption_gap": "12957517239351787231794417587/100005103636516190692726967598200000000000000000", + "constraints": { + "K_dominates_log": "25518182705927945452132037536365162009/500025518182580953463634837991000000000000", + "K_geometry": "375025518182705953463634837991/500025518182580953463634837991000000000000", + "a_below_b": "20663634837991/1000000000000000000", + "a_positive": "51036365162009/1000000000000000000", + "alpha_below_one": "999999999999500025518182580953463634837991/1000051036365161906927269675982000000000000", + "alpha_below_one_fourth": "249961722725628595322730323966963634837991/1000051036365161906927269675982000000000000", + "alpha_positive": "51036365661881409087095028536365162009/1000051036365161906927269675982000000000000", + "artificial_boundary": "28001633163690681098227177374284390904513973/4000204145460647627709078703928000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "499974481817294046536365162009/500000000000000000000000000000", + "c_positive": "25518182705953463634837991/500000000000000000000000000000", + "cell_above_band": "999999999998499974481817419046536365162009/2000102072730323813854539351964000000000000", + "compact_leaf": "8539317419046536365162009/500000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "25518183080953463634837991/500025518182580953463634837991", + "epsilon_positive": "499999999999500000000000000000/500025518182580953463634837991", + "g1_above_kappa": "100005116594033430044514199392617587/100005103636516190692726967598200000000000000000", + "g2_above_kappa": "1302288897/500000000000000000", + "g3_above_kappa": "12957517239351787231794417587/100005103636516190692726967598200000000000000000", + "g4_above_kappa": "1302288897/500000000000000000", + "g5_above_kappa": "37501926821210810861559844643742587/100005103636516190692726967598200000000000000000", + "g6_above_kappa": "87504478639468906207923328442842587/100005103636516190692726967598200000000000000000", + "g7_above_kappa": "99994896363383814423867065831844514199392617587/100005103636516190692726967598200000000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "25518183080953463634837991/500025518182580953463634837991", + "lambda_above_internal": "51036365162009/1000000000000000000000000000000", + "lambda_above_sigma": "20663634838042036365162009/1000000000000000000000000000000", + "lambda_above_tau": "51036365162009/1000000000000000000000000000000", + "lambda_prime_above_lambda": "51036365162009/1000000000000000000000000000000", + "lambda_prime_below_one": "25518182580953463634837991/500000000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "40829092429500023633159832136365162009/800040829092129525541815740785600000000000", + "phase_leaf_above_bit": "17078634837991/1000000000000000000", + "phase_local": "204145464147602190896122974536365162009/4000204145460647627709078703928000000000000", + "prime_interval_packing": "25518183080953463634837991/500025518182580953463634837991", + "q_below_internal": "51036365162009/500000000000000000000000000000", + "q_below_leaf": "8539317419046536365162009/500000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "25518182580953463634837991/500000000000000000000000000000", + "record_suffix": "25518183080953463634837991/500025518182580953463634837991", + "row_product_gap": "6548/25", + "short_record_fallback": "499974480514563711027641740160491885440816916081/500025518182580953463634837991000000000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "25518183080953463634837991/500025518182580953463634837991", + "g2": "51036365162009/1000000000000000000", + "g3": "25518182580927945452257037536365162009/500025518182580953463634837991000000000000", + "g4": "51036365162009/1000000000000000000", + "g5": "40829092429500023633159832136365162009/800040829092129525541815740785600000000000", + "g6": "204145464147602190896122974536365162009/4000204145460647627709078703928000000000000", + "g7": "499999999999500000000000000000/500025518182580953463634837991" + }, + "minimum_margin": "25518182580927945452257037536365162009/500025518182580953463634837991000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "51036365162009/1000000000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "51036365661881409087095028536365162009/1000051036365161906927269675982000000000000", + "beta": "1/20", + "c": "25518182705953463634837991/500000000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "499999999999500000000000000000/500025518182580953463634837991", + "h": "1/1000000000000", + "kappa": "10206752116843/200000000000000000", + "lambda_": "999948963634838042036365162009/1000000000000000000000000000000", + "lambda_prime": "499974481817419046536365162009/500000000000000000000000000000", + "q": "25518182580953463634837991/500000000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "999948963634837991/1000000000000000000" + }, + "recurrence": { + "internal": "999948963634837991/1000000000000000000", + "leaf": "199986377/200000000", + "reservations": "499974481817294046536365162009/500000000000000000000000000000" + }, + "scoped_limit": "51036365162009/1000051036365162009" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6143424401, + "compact": 24573697601, + "geometry": 3999931956143, + "guard": 4350062, + "log_p": 25, + "normalization": 14000000000000, + "period": 49147395201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714467976, + "rhs": 112000000156824, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714467976, + "rhs": 448000000627232, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714467976, + "rhs": 224000000313576, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714467976, + "rhs": 112000000156824000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428935953, + "rhs": 224000000156824, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428935953, + "rhs": 896000000627232, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428935953, + "rhs": 448000000313576, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428935953, + "rhs": 224000000156824000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857871906, + "rhs": 448000000156824, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857871906, + "rhs": 1792000000627232, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857871906, + "rhs": 896000000313576, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857871906, + "rhs": 448000000156824000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715743812, + "rhs": 896000000156824, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715743812, + "rhs": 3584000000627232, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715743812, + "rhs": 1792000000313576, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715743812, + "rhs": 896000000156824000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11431487624, + "rhs": 1792000000156824, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11431487624, + "rhs": 7168000000627232, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11431487624, + "rhs": 3584000000313576, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11431487624, + "rhs": 1792000000156824000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22862975248, + "rhs": 3584000000156824, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22862975248, + "rhs": 14336000000627232, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22862975248, + "rhs": 7168000000313576, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22862975248, + "rhs": 3584000000156824000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "10206752116843/200000000000000000", + "next_kappa": "6379220073027/125000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-54404741498227752163082843757/62503189772822619182954354748875000000000000000'}" + }, + "profile_path": "research/slot-cost-rank-pair/paired-candidate.json", + "profile_sha256": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "proof_limits": [ + "The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.", + "The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.", + "All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.", + "Neither global optimality nor measured practical speedup is claimed." + ], + "rejected_moment": { + "degree": 8, + "lower": "2142996968750000000299438450297169612240838554633/2142996968750000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "5103636516201/100000000000000000", + "strict_gap": "-598876900594339443234732710509/4285993937500000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "5001621782709938619700922082052587636651/5000000000000000000000000000000000000000", + "exp_upper": "5001621782709938619700922082052587892463/5000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "37473373/1714397575" + }, + "10": { + "exp_lower": "10002068097583441186892788402001906405869/10000000000000000000000000000000000000000", + "exp_upper": "10002068097583441186892788402001906916359/10000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "77412/68575903" + }, + "11": { + "exp_lower": "2500504861197638491125402450459847848797/2500000000000000000000000000000000000000", + "exp_upper": "10002019444790553964501609801839391905671/10000000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "376059/311708650" + }, + "12": { + "exp_lower": "250049375711931092522054883859255295653/250000000000000000000000000000000000000", + "exp_upper": "5000987514238621850441097677185106168299/5000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "1634448/1714397575" + }, + "13": { + "exp_lower": "500096708480197958502100766884185152173/500000000000000000000000000000000000000", + "exp_upper": "5000967084801979585021007668841851776967/5000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "1529879/1714397575" + }, + "14": { + "exp_lower": "10001896340344796389866529516045856266039/10000000000000000000000000000000000000000", + "exp_upper": "10001896340344796389866529516045856776509/10000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "1223733/1714397575" + }, + "15": { + "exp_lower": "5000930561137841255446003888994805890563/5000000000000000000000000000000000000000", + "exp_upper": "10001861122275682510892007777989612291593/10000000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "3819/5963122" + }, + "16": { + "exp_lower": "10001828178084434573642232415005231243819/10000000000000000000000000000000000000000", + "exp_upper": "10001828178084434573642232415005231754283/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "65304/155854325" + }, + "17": { + "exp_lower": "10001797231872447698890844122750497512437/10000000000000000000000000000000000000000", + "exp_upper": "10001797231872447698890844122750498022899/10000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "3553051/1714397575" + }, + "18": { + "exp_lower": "5000884027547693709638795996529085554203/5000000000000000000000000000000000000000", + "exp_upper": "2000353611019077483855518398611634323773/2000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "361782/1714397575" + }, + "19": { + "exp_lower": "5000870228155111770067186341476859867097/5000000000000000000000000000000000000000", + "exp_upper": "2500435114077555885033593170738430061163/2500000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "11837/155854325" + }, + "2": { + "exp_lower": "10002889699809419311404957888177265700451/10000000000000000000000000000000000000000", + "exp_upper": "200057793996188386228099157763545324227/200000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "3613701/1714397575" + }, + "20": { + "exp_lower": "10001714273555260126773419135540751814249/10000000000000000000000000000000000000000", + "exp_upper": "2000342854711052025354683827108150464941/2000000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "26402/342879515" + }, + "21": { + "exp_lower": "312552792768476668756477376972760704219/312500000000000000000000000000000000000", + "exp_upper": "5000844684295626700103638031564171522731/5000000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "12978/2981561" + }, + "22": { + "exp_lower": "10001665622483469680935380405521948856003/10000000000000000000000000000000000000000", + "exp_upper": "2000333124496693936187076081104389873291/2000000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "77/2833715" + }, + "23": { + "exp_lower": "2000328586433323254292063195698384854901/2000000000000000000000000000000000000000", + "exp_upper": "2500410733041654067865078994622981196239/2500000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "11447/542102" + }, + "25": { + "exp_lower": "1000160037032327270766029206780672264517/1000000000000000000000000000000000000000", + "exp_upper": "10001600370323272707660292067806723155619/10000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "11641/566743" + }, + "3": { + "exp_lower": "10002682707500039378884137682290792778171/10000000000000000000000000000000000000000", + "exp_upper": "10002682707500039378884137682290793288871/10000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "266382/155854325" + }, + "4": { + "exp_lower": "10002535846716988106024017994549387191073/10000000000000000000000000000000000000000", + "exp_upper": "5001267923358494053012008997274693850843/5000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "88926/68575903" + }, + "481": { + "exp_lower": "10000091101740848303816500641039585810393/10000000000000000000000000000000000000000", + "exp_upper": "10000091101740848303816500641039586320763/10000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "13468/271051" + }, + "5": { + "exp_lower": "2000484386825724156576238643903443590659/2000000000000000000000000000000000000000", + "exp_upper": "5001210967064310391440596609758609231931/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "436112/342879515" + }, + "525": { + "exp_lower": "5000023214398350386524107026306460045369/5000000000000000000000000000000000000000", + "exp_upper": "2000009285759340154609642810522584120221/2000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "244461/566743" + }, + "529": { + "exp_lower": "10000042555032962377911876995537722779239/10000000000000000000000000000000000000000", + "exp_upper": "5000021277516481188955938497768861644803/5000000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "116748/271051" + }, + "6": { + "exp_lower": "625145553858123694154427541530940552571/625000000000000000000000000000000000000", + "exp_upper": "400093154469199164258833626579801974067/400000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "222609/155854325" + }, + "7": { + "exp_lower": "10002250170813833798186193306781280883941/10000000000000000000000000000000000000000", + "exp_upper": "10002250170813833798186193306781281394461/10000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "2615158/1714397575" + }, + "8": { + "exp_lower": "2500545501535535199243958421377203624343/2500000000000000000000000000000000000000", + "exp_upper": "5001091003071070398487916842754407503939/5000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "92592/68575903" + }, + "9": { + "exp_lower": "10002121881026162439707701289430730763687/10000000000000000000000000000000000000000", + "exp_upper": "1250265235128270304963462661178841409273/1250000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4275837/3428795150" + } + }, + "upper": "4285993937500000000598876900594339443234732710509/4285993937500000000000000000000000000000000000000" + }, + "source_sha256": { + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "research/slot-cost-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/slot-cost-rank-pair/arithmetic/refine.py": "8af4f9ed6cec841fe691b7f7950ca7b17483282e8869795922d29f10a4d49c16", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0" + }, + "status": "Exact finite conditional screen; physical linkage checked by parent verifier" +} diff --git a/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py b/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py new file mode 100644 index 0000000000..fe70b5cf01 --- /dev/null +++ b/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py @@ -0,0 +1,266 @@ +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + return profile_entropy(old,1)-profile_entropy(old,target)-profile_entropy(target,1) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +U aa,bb; +while(std::cin>>aa>>bb){ + assert(aa=frames[aa].rank); + if(rr<=2){blocks[1]=rr; for(U t=0;t<=h;t++)std::cout<1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i E +on the live control. The carrier is only an XOR control and its clean signal +is unchanged. Its later use can still raise it from E to G. Repeated use is +subject to the same inclusion test with its then-current frame, so the entire +physical frame path remains nested. + +This introduces no free copies, source-dependent runtime choice, or uncharged +frame jump. Candidate selection happens once while constructing a fixed finite +word. Every operation in that word is still a literal two-slot XOR. + +## Dirty state and frames + +The compiler's block transformations remain invertible on all incoming dirty +coordinates. Each additional clearing operation is invertible too. Therefore +the complete mixer M is invertible. The inherited word has the form + + M, J, inverse(M), V, M, J, inverse(M), V. + +Its dirty-scratch cancellation argument only requires the mixer to be a fixed +invertible word and its clean signal map to give the required injection. The +new controls preserve those properties. This argument is supplemented by +independent serialized replay on **every** input and dirty basis vector for +both h=23 and h=25 and both orientations; see `selected-replay-*.json`. + +Frame preparation independently reconstructs every transition from the actual +XOR list, checks it against the auxiliary event log, and checks every inclusion. +All frames remain the inherited original-envelope projectors. Consequently +the same fixed-I+J formulas and bounded-minor/CRT argument apply without a new +projector formula or denominator bound. The ranked/global profiles use 6,049 +and 7,997 CRT-checked matrices and report zero modular disagreements. + +Neither W nor total rank changes. The actual fixed-basis child profiles change +because different clearing expressions promote different slots at different +points. This is the source of the finite moment improvement; counting roles +alone misses it. + +## The selected finite profile improves every concave power + +There is also an exact comparison independent of the selected parameter grid. +Let d_t be the selected child multiplicity minus PR #63's pinned multiplicity. +The integer certificate `concavity-screen.json` checks + + sum(t*d_t) = 0, + C_k = sum(min(t,k)*d_t) <= 0 for every integer 1 <= k <= 529, + +with a strict inequality for some k. Its smallest C_k is -619850. The source +profile is pinned to PR #63 commit `aa7701b68540b7863d3b66a414e4319915d6282d` +in `comparison-pr63.json`. For any f with f(0)=0 and decreasing discrete +increments, the identity + + sum(d_t*f(t)) = sum_(k=1..528) (2*f(k)-f(k-1)-f(k+1))*C_k + +holds because the linear mass term vanishes. For f(t)=t^(1-a), 01 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1] + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<1 for b in blocks) ++ slots=[];frames=[];ops=[];events=[];hist=Counter();assign={};sources={};retired=set();pending={};stats['regions']=len(blocks);stats['matched']=len(chosen);stats['multi_node_regions']=sum(len(b['nodes'])>1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): +@@ -149,7 +151,8 @@ + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 +- return profile_entropy(old,1)-profile_entropy(old,target)-profile_entropy(target,1) ++ endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 ++ return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + def acquire(g,anchors): + if reclaim: + bb={} +@@ -161,6 +164,9 @@ + old,e=bb[p];row^=old;expr^=e + return expr + for s in anchors:ins(s) ++ for s,target in pending.items(): ++ if contains(blocks[frames[s]]['frame'],blocks[g]['frame']) and contains(blocks[g]['frame'],blocks[target]['frame']): ++ ins(s);stats['live_anchor_candidates']+=1 + best=None + # Inspect every eligible dependent candidate across all retired ranks. + # Rank the actual fixed-basis growth/cleanup profiles by an integer entropy score. +@@ -176,7 +182,9 @@ + if best is None or key= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +@lru_cache(None) +def logs(x): + x = Q(x) + require(x >= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + diff --git a/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py b/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py new file mode 100644 index 0000000000..85ad7b77bd --- /dev/null +++ b/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py @@ -0,0 +1,88 @@ +"""Extract positive-rank transitions from independently replayed block words.""" +from collections import Counter +from hashlib import sha256 +from itertools import combinations +from pathlib import Path +import json,struct,sys,gzip,argparse + + +def prepare(path,destination): + raw=Path(path).read_bytes();raw=gzip.decompress(raw) if str(path).endswith('.gz') else raw;d=json.loads(raw) + h,v,R=d['h'],d['v'],d['R'] + frames=[(0,0,0),(0,0,h)]+[(c,u,1 if c==u else u.bit_count()-c.bit_count()) for c,u in d['frames']] + physical=[None]*R;transitions=Counter() + for s,a,b in d['events']: + assert 0<=s0 + histogram[r]+=count + with Path(destination).open('wb') as f: + f.write(struct.pack('<6I2Q',h,v,R,len(frames),len(transitions),singles,mass,h*(h-1))) + for c,u,r in frames:f.write(struct.pack('<2QI',c,u,r)) + for (a,b),count in sorted(transitions.items()):f.write(struct.pack('<2Iq',a,b,count)) + receipt=dict(h=h,v=v,R=R,frames=len(frames),distinct_transitions=len(transitions),singles=singles,rank_mass=mass, + rank_histogram_with_side_growth_split_into_singletons=dict(sorted(histogram.items())),word_sha256=sha256(raw).hexdigest(),copied_centers=centers, + transition_events_equal_independent_xor_word_reconstruction=True) + Path(str(destination)+'.json').write_text(json.dumps(receipt,indent=2)+'\n') + return receipt + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('word',type=Path);parser.add_argument('destination',type=Path) + args=parser.parse_args();print(json.dumps(prepare(args.word,args.destination),indent=2)) diff --git a/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp b/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp new file mode 100644 index 0000000000..1b52bd057d --- /dev/null +++ b/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp @@ -0,0 +1,85 @@ +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 1 and kappa > previous_kappa + bridge = json.loads((OLD/'certificate.json').read_text())['finite_bridge'] + bridge['bit']['W'] = p['W'] + assert p['W'].bit_length() == bridge['bit']['wire_bits'] + assembled = refine.assemble(bridge, bit_saving, Q(1, 10**12), denominator) + assert assembled['kappa'] == kappa + assert all(value > 0 for value in assembled['assembly']['constraints'].values()) + assert all(value > kappa for value in assembled['assembly']['margins'].values()) + coarse_denominator = 10**11 + coarse_bit = Q(refine.floor_scaled(bit_saving, coarse_denominator), coarse_denominator) + coarse = refine.assemble(bridge, coarse_bit, Q(1, 10**12), coarse_denominator) + assert arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], coarse_bit)['upper'] < 1 + result = dict( + status='Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed', + source_manifest_sha256=sha256((ROOT/'research/split-pair/SOURCE.json').read_bytes()).hexdigest(), + kappa=kappa, bit_saving=bit_saving, bit_saving_excluded_above=bit_saving+grid, + grid_denominator=denominator, bit=dict(p, moment=exact, excluded_moment=excluded), + independent_enclosures=dict(accepted_lower=independent[0], accepted_upper=independent[1], + rejected_lower=independent_rejected[0], rejected_upper=independent_rejected[1]), + assembly=assembled['assembly'], eventual_bounds=assembled['eventual_bounds'], finite_bridge=bridge, + next_kappa=assembled['next_kappa'], next_kappa_rejection=assembled['next_kappa_rejection'], + coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr67_commit='b3745601e947a94316bf25c2c6263d93c06e3364', + pr67_kappa=previous_kappa, ratio_pr67=kappa/previous_kappa, + absolute_gain_pr67=kappa-previous_kappa, + pr67_complete_profile_exclusion_lower=prior65_lower, + full_pr67_child_list_excluded_at_new_bit_saving=True), + exactness=[arithmetic.exactness(h) for h in (23,25)], sources=sources, + dependencies=dict( + data_profile='Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries', + producer='PR62/63 interval pair assembly, selected split-pair partition and point permutation, PR65 schedules, PR67 profile-cost reclamation, PR68 pending live controls and selected next-use scoring; complete literal words', + geometry='Unchanged fixed-I+J original-envelope projector and CRT formulas', + proof_scope='Ordered affine residual compiler, all-size recursion, finite scalar overhead, routing, prime selection, exact recovery and fixed-tape/analytic transfer remain inherited. Arithmetic cutoffs are not full operational thresholds.')) + (OUT/'split-pair-kappa.json').write_text(json.dumps(arithmetic.js(result), indent=2, sort_keys=True)+'\n') + print('PASS finite conditional kappa='+str(kappa)+'; bit saving='+str(bit_saving), flush=True) + return result + + +if __name__ == '__main__': + compose() diff --git a/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py b/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py new file mode 100644 index 0000000000..1290ef2eb8 --- /dev/null +++ b/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py @@ -0,0 +1,275 @@ +# Composition of PR67 profile-cost reclamation and PR68 pending live controls. +# Next-use transition scoring added by Chafik Boukhalfa with OpenAI Codex assistance. +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1] + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 3 and choice: + index = {1: 0, 2: (len(groups)-1)//2, 3: len(groups)-1}[choice] + if len(groups[index]) == 2: + groups[index:index+1] = [[point] for point in groups[index]] + assert all(len(group) in (1, 2) for group in groups) + assert len(groups) < len(points) + assert sorted(point for group in groups for point in group) == sorted(points) + return groups + return SplitPair + + +def graph(h): + config = configuration(h) + original = _graph.circuit_class + previous_points = _graph.alternating_points + try: + _graph.circuit_class = lambda dimension: split_class(original(dimension), config['groups']) + if config['anchor']: + def anchored_points(dimension, common): + points = previous_points(dimension, common) + pairs = [(a, a+1) for a in range(0, dimension-1, 2) if common not in (a, a+1)] + chosen = min(pairs) + result = list(chosen) + [x for x in points if x not in chosen] + assert sorted(result) == [x for x in range(dimension) if x != common] + return result + _graph.alternating_points = anchored_points + return _graph.graph(h) + finally: + _graph.circuit_class = original + _graph.alternating_points = previous_points + + +def ordered_build(original, h): + mode = configuration(h)['schedule'] + if mode == 'original': + return original + return _schedule.reordered_build(original, mode) diff --git a/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py b/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py new file mode 100644 index 0000000000..7908c963a4 --- /dev/null +++ b/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 +"""Replay the aligned split-pair/interval words with profile-cost pending live compilation and exact profiles. + +Every new XOR word, dirty basis column, frame incidence and fixed-basis +profile is checked. Unchanged data geometry and general transfer proofs +remain inherited dependencies; this is a finite conditional certificate. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') + +from hashlib import sha256 +from pathlib import Path +import json +import subprocess +import tempfile + +from binary_frame_profile_prepare import prepare +from binary_frame_replay import replay +from split_pair_compose import compose, check_sources +from split_pair_compiler import compile_axis + + +def verify(): + import sys + if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') + check_sources() + here = Path(__file__).resolve().parent + root = here.parents[1] + certificates = root / 'certificates' + stored = json.loads((certificates / 'split-pair-compiler.json').read_text()) + axes = {} + with tempfile.TemporaryDirectory(prefix='split-pair-verify-') as directory: + work = Path(directory) + profiler = work / 'profiles' + subprocess.run([ + 'c++', '-O3', '-std=c++17', + '-I', str(root / 'references/frame-compiler/pr48/scripts/partial_swap'), + str(here / 'binary_frame_profiles.cpp'), '-o', str(profiler), + ], check=True) + for h in (23, 25): + word = certificates / f'split-pair-word-{h}.json.gz' + import gzip + compiled, regenerated = compile_axis(h) + assert json.loads(json.dumps(compiled)) == stored['axes'][str(h)]['compiled'], 'Regenerated compiler receipt differs' + regenerated_raw = (json.dumps(regenerated, separators=(',', ':'))+'\n').encode() + assert regenerated_raw == gzip.decompress(word.read_bytes()), 'Regenerated physical word differs' + receipt = replay(word) + assert json.loads(json.dumps(receipt)) == stored['axes'][str(h)]['replay'] + transitions = work / f'word{h}.bin' + prepared = prepare(word, transitions) + expected = json.loads((certificates / f'split-pair-transitions-{h}.json').read_text()) + assert json.loads(json.dumps(prepared)) == expected + subprocess.run([str(profiler), str(transitions)], check=True, capture_output=True, text=True) + profile = json.loads(Path(str(transitions)+'.profiles.json').read_text()) + expected = json.loads((certificates / f'split-pair-profiles-{h}.json').read_text()) + assert profile == expected + axes[str(h)] = dict(replay=receipt, transitions=prepared, profile=profile) + print(f'PASS h={h}: full dirty basis, exact frame path, every fixed-basis profile', flush=True) + result = compose() + assert len(result['assembly']['constraints']) == 47 + assert len(result['assembly']['margins']) == 7 + validation = dict( + status='PASS complete serialized-word replay, actual CRT profiles, exact recurrence and balanced assembly', + axes=axes, kappa=str(result['kappa']), bit_saving=str(result['bit_saving']), + strict_constraints=47, margins=7, + certificate_sha256=sha256((certificates / 'split-pair-kappa.json').read_bytes()).hexdigest(), + source_binding='Source manifests, inherited manifest digest, compiler receipt source, both word digests, and all local compiler/verifier sources are bound by the exact composition certificate.', + producer_words_regenerated_and_matched=True, + scope='Finite conditional witness; unchanged data geometry and general transfer proofs are inherited dependencies.') + (certificates / 'split-pair-validation.json').write_text(json.dumps(validation, indent=2, sort_keys=True)+'\n') + print('PASS exact recurrence, 47 strict inequalities, seven margins, eventual cutoffs', flush=True) + return result + + +if __name__ == '__main__': + verify() diff --git a/references/frame-compiler/pr71/tests/test_split_pair.py b/references/frame-compiler/pr71/tests/test_split_pair.py new file mode 100644 index 0000000000..5088cff133 --- /dev/null +++ b/references/frame-compiler/pr71/tests/test_split_pair.py @@ -0,0 +1,238 @@ +"""Physical and exact-arithmetic controls for the aligned split/pair witness.""" +from copy import deepcopy +from fractions import Fraction +from itertools import combinations +from pathlib import Path +import gzip +import json +import subprocess +import sys +import tempfile +import unittest +from unittest.mock import patch + +ROOT = Path(__file__).resolve().parents[1] +EXPERIMENTS = ROOT/'scripts/experiments' +sys.path.insert(0, str(EXPERIMENTS)) +from binary_frame_profile_prepare import prepare +from binary_frame_replay import replay +from binary_frame_math import moment + + +class SplitPairControls(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.words = {h: json.loads(gzip.decompress((ROOT/f'certificates/split-pair-word-{h}.json.gz').read_bytes())) + for h in (23,25)} + + def reject_mutation(self, mutate, checker='both'): + for h, original in self.words.items(): + with self.subTest(h=h), tempfile.TemporaryDirectory() as directory: + changed = deepcopy(original) + mutate(changed) + path = Path(directory)/'word.json' + path.write_text(json.dumps(changed, separators=(',', ':'))+'\n') + with self.assertRaises((AssertionError, ValueError, IndexError, KeyError)): + if checker != 'transitions': + replay(path) + if checker != 'replay': + prepare(path, Path(directory)/'transitions.bin') + + def test_selected_words_pass_independent_replay(self): + recorded = json.loads((ROOT/'certificates/split-pair-compiler.json').read_text()) + for h in (23,25): + with self.subTest(h=h): + actual = replay(ROOT/f'certificates/split-pair-word-{h}.json.gz') + self.assertEqual(json.loads(json.dumps(actual)), recorded['axes'][str(h)]['replay']) + + def test_omitted_literal_xor_is_rejected(self): + self.reject_mutation(lambda word: word['ops'].pop(0)) + + def test_self_xor_is_rejected(self): + def mutate(word): + word['ops'][0][1] = word['ops'][0][0] + self.reject_mutation(mutate, 'replay') + + def test_non_nested_operation_frame_is_rejected(self): + def mutate(word): + narrow = next(i for i,(core,cover) in enumerate(word['frames']) if core == cover) + operation = next(op for op in word['ops'] if word['frames'][op[2]][0] != word['frames'][op[2]][1]) + operation[2] = narrow + self.reject_mutation(mutate) + + def test_aliased_terminal_role_is_rejected(self): + def mutate(word): + word['outputs'][1][0] = word['outputs'][0][0] + self.reject_mutation(mutate, 'replay') + + def test_missing_copied_center_is_rejected(self): + def mutate(word): + index = next(i for i,(_,_,_,target) in enumerate(word['outputs']) if len(target) == 1) + word['outputs'].pop(index) + self.reject_mutation(mutate) + + def test_omitted_transition_cannot_reduce_paid_profile(self): + self.reject_mutation(lambda word: word['events'].pop(0), 'transitions') + + def test_understated_physical_width_is_rejected(self): + def mutate(word): + word['R'] -= 1 + self.reject_mutation(mutate) + + def test_complete_pr67_profile_fails_new_bit_saving(self): + from split_pair_arithmetic import refine + previous = json.loads((ROOT/'references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json').read_text())['bit'] + current = json.loads((ROOT/'certificates/split-pair-kappa.json').read_text()) + result = refine.exact_moment(previous['m'], previous['W'], {int(t): n for t,n in previous['child_multiplicities'].items()}, Fraction(current['bit_saving'])) + self.assertGreater(result['lower'], 1) + self.assertGreater(Fraction(current['kappa']), Fraction(current['comparison']['pr67_kappa'])) + + def test_private_import_preserves_path_and_arithmetic_module(self): + import split_pair_graph as provider + import split_pair_arithmetic as arithmetic + sentinel = object() + existing = sys.modules.get('refine', sentinel) + previous_path = sys.path[:] + graph, schedule = provider._private_modules() + refine, audit = arithmetic.private_arithmetic() + self.assertIs(audit.refine, refine) + self.assertIs(sys.modules.get('refine', sentinel), existing) + self.assertEqual(sys.path, previous_path) + + def test_failed_graph_build_restores_original_providers(self): + import split_pair_graph as provider + previous_class, previous_points = provider._graph.circuit_class, provider._graph.alternating_points + with patch.object(provider._graph, 'graph', side_effect=RuntimeError('deliberate graph failure')): + with self.assertRaises(RuntimeError): + provider.graph(23) + self.assertIs(provider._graph.circuit_class, previous_class) + self.assertIs(provider._graph.alternating_points, previous_points) + + def test_failed_compilation_restores_engine_graph_and_schedule(self): + import split_pair_compiler as producer + previous_graph, previous_build = producer.compiler.graph, producer.compiler.build + missing = object() + runtime = {name:getattr(producer.compiler,name,missing) for name in ('PENDING_COST','ORACLE_EXE','ORACLE_INPUT','oracles')} + with patch.object(producer.compiler, 'compile_', side_effect=RuntimeError('deliberate compiler failure')): + with self.assertRaises(RuntimeError): + producer.compile_axis(23) + self.assertIs(producer.compiler.graph, previous_graph) + self.assertIs(producer.compiler.build, previous_build) + for name,value in runtime.items(): + self.assertIs(getattr(producer.compiler,name,missing),value) + + def test_uncertified_configurations_are_rejected(self): + import split_pair_graph as provider + wrong_anchor = deepcopy(provider.EXPECTED_CONFIGS[23]); wrong_anchor['anchor'] = False + boolean_group = deepcopy(provider.EXPECTED_CONFIGS[23]); boolean_group['groups'][0] = True + changed_schedule = deepcopy(provider.EXPECTED_CONFIGS[23]); changed_schedule['schedule'] = 'reverse-node' + for changed in (wrong_anchor, boolean_group, changed_schedule): + with self.subTest(configuration=changed), patch.object(provider.json, 'loads', return_value=changed): + with self.assertRaises(ValueError): + provider.configuration(23) + for dimension in (True, 22, 24, '23'): + with self.subTest(dimension=dimension), self.assertRaises(ValueError): + provider.configuration(dimension) + + def test_recursive_weighted_exclusions_and_contraction(self): + import split_pair_graph as provider + for h in (23,25): + block_sizes = [] + parent = provider._graph.circuit_class(h) + selected = provider.split_class(parent, provider.configuration(h)['groups']) + case = self + class Audited(selected): + def grouping(self, points): + groups = super().grouping(points) + case.assertEqual([x for group in groups for x in group], list(points)) + case.assertLess(len(groups), len(points)) + return groups + + def _block(self, points, edges, weights, level): + def expected(omitted): + values = [value for pair,value in edges.items() if not set(pair) & omitted] + values += [value for point,value in weights.items() if point not in omitted] + support = 0 + for value in values: + case.assertEqual(support & self.support[value], 0) + support |= self.support[value] + return support + total, single, pairs = super()._block(points, edges, weights, level) + case.assertEqual(self.support[total], expected(set())) + case.assertEqual(set(single), set(points)) + for a in points: + case.assertEqual(self.support[single[a]], expected({a})) + case.assertEqual(set(pairs), set(combinations(points,2))) + for a,b in combinations(points,2): + case.assertEqual(self.support[pairs[a,b]], expected({a,b})) + block_sizes.append(len(points)) + return total, single, pairs + local = Audited(h-1) + block_sizes.clear() + local.pair(list(range(h-1))) + self.assertEqual(sorted(block_sizes, reverse=True), [h-1, 12 if h==23 else 13, 7 if h==23 else 8, 5, 3, 2]) + + def test_next_fine_grid_points_and_old_assembly_controls_reject(self): + from split_pair_arithmetic import refine + current = json.loads((ROOT/'certificates/split-pair-kappa.json').read_text()) + bit = current['bit']; saving = Fraction(current['bit_saving']); kappa = Fraction(current['kappa']) + grid = Fraction(1,10**18) + rows = {int(t): n for t,n in bit['child_multiplicities'].items()} + self.assertLess(refine.exact_moment(bit['m'],bit['W'],rows,saving)['upper'], 1) + self.assertGreater(refine.exact_moment(bit['m'],bit['W'],rows,saving+grid)['lower'], 1) + for label, variant in ( + ('next_kappa', dict(kappa=kappa+grid)), + ('zero_backoff', dict(h=Fraction())), + ('original_prefix', dict(original_prefix=True)), + ('old_guard', dict(old_guard=True)), + ('old_exposures', dict(old_exposures=True))): + call = dict(a_bit=saving, kappa=kappa, h=Fraction(1,10**12));call.update(variant) + with self.subTest(control=label), self.assertRaises(refine.balanced.InvalidAssembly): + refine.balanced.assembly(current['finite_bridge'], **call) + + def test_mass_preserving_profile_mutation_is_rejected(self): + from split_pair_compose import check_sources + profile_path = ROOT/'certificates/split-pair-profiles-23.json' + changed = json.loads(profile_path.read_text()) + before = sum(t*n for t,n in enumerate(changed['blocks'])) + changed['blocks'][2] += 3; changed['blocks'][3] -= 2 + self.assertTrue(all(n >= 0 for n in changed['blocks'])) + self.assertEqual(before, sum(t*n for t,n in enumerate(changed['blocks']))) + forged = (json.dumps(changed)+'\n').encode() + original = Path.read_bytes + def read_bytes(path): + return forged if path == profile_path else original(path) + with patch.object(Path, 'read_bytes', read_bytes), self.assertRaisesRegex(AssertionError, 'split-pair-profiles-23'): + check_sources() + + def test_missing_profile_pin_is_rejected(self): + from split_pair_compose import check_sources + manifest_path = ROOT/'research/split-pair/SOURCE.json' + manifest = json.loads(manifest_path.read_text());manifest['files'].pop('certificates/split-pair-profiles-23.json') + original = Path.read_text + def read_text(path, *args, **kwargs): + return json.dumps(manifest) if path == manifest_path else original(path, *args, **kwargs) + with patch.object(Path, 'read_text', read_text), self.assertRaisesRegex(AssertionError, 'Incomplete'): + check_sources() + + def test_backward_schedule_dependency_and_carrier_rejected(self): + import split_pair_graph as provider + for kind in ('dependency','carrier'): + blocks = [dict(rank=1,nodes=[1],frame=(0,1),inputs=[],candidates=[]), + dict(rank=2,nodes=[2],frame=(0,3),inputs=[],candidates=[])] + if kind == 'dependency': blocks[0]['inputs'] = [5] + else: blocks[1]['candidates'] = [(0,0)] + parts = (None,blocks,[(5,0,None)],None,{5:1},None,[0,1],None) + with self.subTest(kind=kind), self.assertRaises(AssertionError): + provider._schedule.reordered_build(lambda h:parts, 'cover-core')(23) + + def test_optimized_python_is_rejected_by_every_new_entry(self): + for name in ('split_pair_graph.py', 'split_pair_engine.py', 'split_pair_compiler.py', 'split_pair_arithmetic.py', 'split_pair_compose.py', 'verify_split_pair.py'): + with self.subTest(entry=name): + result = subprocess.run([sys.executable, '-O', str(EXPERIMENTS/name), '--help'], capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn('Assertions must remain enabled', result.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/frame-compiler/pr71/tests/test_split_pair_pending.py b/references/frame-compiler/pr71/tests/test_split_pair_pending.py new file mode 100644 index 0000000000..e6d63f72a4 --- /dev/null +++ b/references/frame-compiler/pr71/tests/test_split_pair_pending.py @@ -0,0 +1,101 @@ +"""Adverse fixtures for the actual integrated pending-control source. + +These tests extract the selected nested source functions without running the +full compiler or oracle; complete word replay is a separate focused gate. +Prepared by Chafik Boukhalfa with OpenAI Codex assistance. Apache-2.0. +""" +from pathlib import Path +from collections import Counter +import ast +import json +import unittest + +ROOT = Path(__file__).resolve().parents[1] +SOURCE = ROOT/'scripts/experiments/split_pair_engine.py' +TREE=ast.parse(SOURCE.read_text()) +body=next(n for n in TREE.body if isinstance(n,ast.FunctionDef) and n.name=='compile_').body +functions={n.name:n for n in body if isinstance(n,ast.FunctionDef)} +def check(ok,why): + if not ok: raise ValueError(why) +def contains(a,b): return not(b[0]&~a[0]) and not(a[1]&~b[1]) +def getfn(name,namespace,node=None): + exec(compile(ast.Module(body=[node or functions[name]],type_ignores=[]),str(SOURCE),'exec'),namespace) + return namespace[name] + +def scenario(pending_frame=0, endpoint=2, anchors=False, acquire_node=None): + # F subset E subset G, while H is not an envelope containing E. + blocks=[{'frame':(1,3),'rank':1},{'frame':(1,7),'rank':2},{'frame':(1,15),'rank':3},{'frame':(1,5),'rank':1}] + slots=[1,1];frames=[pending_frame,0];retired={1};pending={0:endpoint};ops=[];stats=Counter() + def new(g): + slots.append(0);frames.append(g);return len(slots)-1 + def xor(a,b,g): + check(a!=b,'noninvertible self XOR') + for s in (a,b): + check(contains(blocks[frames[s]]['frame'],blocks[g]['frame']),'invalid envelope raising') + frames[s]=g + slots[a]^=slots[b];ops.append((a,b,g)) + env=dict(reclaim=True,slots=slots,frames=frames,blocks=blocks,retired=retired,pending=pending,contains=contains,stats=stats,profile_cost=lambda a,g:0,new=new,xor=xor) + result=getfn('acquire',env,acquire_node)(1,[0] if anchors else []) + check(slots[0]==1 and pending=={0:endpoint},'passive pending control changed signal or future use') + return result,slots,frames,ops,stats + + +class PendingControlTests(unittest.TestCase): + def test_current_and_future_containment_and_passive_signal(self): + for name,kwargs,expected in [ + ('legal F subset E subset G',{},1), + ('future endpoint not containing E',{'endpoint':3},2), + ('current pending frame not contained in E',{'pending_frame':2},2), + ('terminal endpoint cannot be overshot',{'endpoint':0},2), + ('same physical control in anchors and pending',{'anchors':True},1), + ]: + with self.subTest(control=name): + result,slots,frames,ops,stats=scenario(**kwargs) + self.assertEqual(result,expected) + if expected==1: + self.assertEqual((slots,frames,ops),([1,0],[1,1],[(1,0,1)])) + self.assertEqual((stats['live_anchor_xors'],stats['clearing_xors'],stats['reclaimed']),(1,1,1)) + else: + self.assertEqual(ops,[]) + self.assertEqual(slots,[1,1,0]) + + def test_next_use_score_and_both_full_space_fallbacks(self): + for use_pending,a,expected_calls in [ + (True,0,[(2,4),(2,3),(3,4)]), + (False,0,[(2,1),(2,3),(3,1)]), + (True,1,[(2,1),(2,3),(3,1)]), + ]: + with self.subTest(pending_cost=use_pending,slot=a): + calls=[] + def entropy(x,y):calls.append((x,y));return 100*x+y + env=dict(frames=[0,0],pending={0:2},PENDING_COST=use_pending,profile_entropy=entropy) + result=getfn('profile_cost',env)(a,1) + self.assertEqual(calls,expected_calls) + self.assertEqual(result,sum(sign*(100*x+y) for sign,(x,y) in zip([1,-1,-1],expected_calls))) + + def test_removing_future_containment_reaches_adverse_fixture(self): + class RemoveFutureBound(ast.NodeTransformer): + def visit_If(self,node): + self.generic_visit(node) + if isinstance(node.test,ast.BoolOp) and isinstance(node.test.op,ast.And) and len(node.test.values)==2 and 'blocks[target]' in ast.unparse(node.test): + node.test=node.test.values[0] + return node + mutant=RemoveFutureBound().visit(ast.parse(ast.unparse(functions['acquire'])).body[0]) + ast.fix_missing_locations(mutant) + original=scenario(endpoint=3)[0] + mutated=scenario(endpoint=3,acquire_node=mutant)[0] + self.assertEqual(original,2) + self.assertEqual(mutated,1) + + def test_selected_words_exercise_pending_controls(self): + record=json.loads((ROOT/'certificates/split-pair-compiler.json').read_text()) + for h in (23,25): + with self.subTest(h=h): + compiled=record['axes'][str(h)]['compiled'] + self.assertTrue(compiled['pending_live_controls']) + self.assertTrue(compiled['pending_cost_uses_next_use_frame']) + self.assertGreater(compiled['stats']['live_anchor_xors'],0) + + +if __name__=='__main__': + unittest.main() diff --git a/references/frame-compiler/pr82/LICENSE b/references/frame-compiler/pr82/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/frame-compiler/pr82/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/frame-compiler/pr82/NOTICE b/references/frame-compiler/pr82/NOTICE new file mode 100644 index 0000000000..8a6bef1613 --- /dev/null +++ b/references/frame-compiler/pr82/NOTICE @@ -0,0 +1,337 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Aligned split-pair composition (2026-10-08) +------------------------------------------ +Avi Eisenberg: PR62 interval strips and core-aware pair assembly. Dominik +Scholz with OpenAI assistance: PR63 ranked-frame composition and PR68 pending +live-carrier controls. Rohan Arun with OpenAI assistance: PR65 region schedules +and refined exact arithmetic, and PR67 all-rank profile-cost selection and +its profile oracle. Rohan Garg / rohangar1 +with substantial OpenAI Codex assistance: PR59 split-pair operation. Eumemic +with substantial OpenAI Codex assistance: PR57 joint reversible compiler and +independent physical-word/profile checks. Chafik Boukhalfa with OpenAI Codex +assistance: PR60 ranked reclamation and this selected [1,1,2] split vector, +aligned common-point permutation, next-use profile score, composition and +certification package. +The complete PR65 baseline words, profiles and arithmetic, plus 43 original +source/provenance files, are preserved under references/frame-compiler/pr65. +The original PR59 split operation and notices are separately preserved. +PR67's compiler/oracle and baseline profile, and PR68's compiler/driver/proof, +retain their original bytes, licenses and notices in their own archives. +All previous notices and mathematical dependencies remain applicable. + +Balanced coarse split composition (2026-10-08) +--------------------------------------------- +Eumemic / @eumemic supplied PR69's balanced coarse sums, with OpenAI Codex +assistance. Alejandro Zarzuelo Urdiales / @alejandrozu supplied PR70's bounded +carry-exchange strategy with the AI disclosures retained in the source archive. +Chafik Boukhalfa / @chafreaky, with OpenAI Codex assistance, selected the row/ +half-plane coarse rules, future-compatible unit completion, exact integer-price +carry adaptation, composition and this certificate package. The PR71 anchored +split vector, schedules, arithmetic, pending controls and their contributor +chain are retained as credited above. Original PR69/70 sources, licenses and +notices and the complete published PR71 baseline are preserved under +references/frame-compiler. All earlier notices remain applicable. diff --git a/references/frame-compiler/pr82/SOURCE.json b/references/frame-compiler/pr82/SOURCE.json new file mode 100644 index 0000000000..2a80d087d3 --- /dev/null +++ b/references/frame-compiler/pr82/SOURCE.json @@ -0,0 +1,24 @@ +{ + "author": "Rohan Arun, with OpenAI Codex assistance; inherited contributors named in the retained NOTICE and source headers", + "commit": "3410b940aa26e5876202152dfa7c4f66451ee22c", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "research/envelope-balanced/certificate.json": "6eab6266585ecdf5509c2195a139088b7dba8b849e0679ca4be07bebb7c8a540", + "research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "research/envelope-balanced/profiles-23.json": "42c6b428c422f5f868d49578b4f915023f8401b53d1039533235f0b9947f1feb", + "research/envelope-balanced/profiles-25.json": "8a64a606e5200855c438bc572ff066848c9f169591cfcdeb5c9cebb17e8ce0d4", + "scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b" + }, + "scope": "Byte-identical selected source files and comparison profiles from Git objects. Runtime path bindings are adapted privately to existing pinned PR69 and PR71 archives; mathematical producer bytes remain archived unchanged.", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/82" +} diff --git a/references/frame-compiler/pr82/research/balanced-split/config-23.json b/references/frame-compiler/pr82/research/balanced-split/config-23.json new file mode 100644 index 0000000000..3405cec8fd --- /dev/null +++ b/references/frame-compiler/pr82/research/balanced-split/config-23.json @@ -0,0 +1,13 @@ +{ + "anchor": true, + "carry_exchange_passes": 0, + "coarse": "half", + "future_completion": true, + "groups": [ + 1, + 1, + 2 + ], + "pending_next_use_cost": true, + "schedule": "cover-core" +} diff --git a/references/frame-compiler/pr82/research/balanced-split/config-25.json b/references/frame-compiler/pr82/research/balanced-split/config-25.json new file mode 100644 index 0000000000..72b613ceb5 --- /dev/null +++ b/references/frame-compiler/pr82/research/balanced-split/config-25.json @@ -0,0 +1,13 @@ +{ + "anchor": true, + "carry_exchange_passes": 3, + "coarse": "row", + "future_completion": true, + "groups": [ + 1, + 1, + 2 + ], + "pending_next_use_cost": true, + "schedule": "reverse-node" +} diff --git a/references/frame-compiler/pr82/research/balanced-split/engine-provenance.json b/references/frame-compiler/pr82/research/balanced-split/engine-provenance.json new file mode 100644 index 0000000000..eb3c86dfdc --- /dev/null +++ b/references/frame-compiler/pr82/research/balanced-split/engine-provenance.json @@ -0,0 +1,14 @@ +{ + "23": { + "only_change": "Repository-relative ROOT constant; all function and class ASTs and other source bytes unchanged.", + "portable_engine": "balanced_split_engine.py", + "portable_engine_sha256": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "selected_scratch_sha256": "bf0cc43e75826ff9a06881f51ce5a276f8e70f9ad88a31db2b340896531781b8" + }, + "25": { + "only_change": "Repository-relative ROOT constant; all function and class ASTs and other source bytes unchanged.", + "portable_engine": "balanced_split_exchange_engine.py", + "portable_engine_sha256": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "selected_scratch_sha256": "55a8557f878b01ae6cfc956ff5a137b52366b96079e75c05ac16a012b4927852" + } +} diff --git a/references/frame-compiler/pr82/research/envelope-balanced/README.md b/references/frame-compiler/pr82/research/envelope-balanced/README.md new file mode 100644 index 0000000000..77486a38c2 --- /dev/null +++ b/references/frame-compiler/pr82/research/envelope-balanced/README.md @@ -0,0 +1,127 @@ +# Envelope ordering inside balanced split compilation + +The finite conditional witness gives **kappa = 5203279888519/100000000000000000 = 5.2032798885190e-05**, +0.49049670% above PR80. Bit saving is 13008876609597/250000000000000000. +This is a draft pending the full expanded repository verification. + +PR80 selected already-compiled axes from PR76 and PR79. Here we compose +their construction methods before compilation on both axes: PR79's balanced +coarse graph and future-compatible unit completion; PR76/PR74's envelope +node ordering; three passes of PR79/PR70's bounded carry exchanges; and +PR78's geometric coordinate flags. h23 uses the half-plane coarse choice +and cover-core schedule; h25 uses row coarse sums and reverse-node schedule. +Both retain the anchored [1,1,2] split vector and exact next-use profile costs. +All archived sources are unchanged. `compiler.py` is the portable composition. +At h25 the discovery oracle receives coordinate-permuted frame masks, so its +costs refer to the final flag rather than the original coordinate order. +`flag_engine.py` differs from PR79's engine only in that oracle frame writer +and an attribution comment; operations, eligibility, independence and dirty +checks are unchanged. This changes only heuristic selection among legal +choices. Its final word is still independently replayed and exactly priced. +At h23 oracle pricing retains the original coordinate order. + +| Quantity | PR80 | This witness | +|---|---:|---:| +| h23 auxiliary roles | 27256 | 27075 | +| h25 auxiliary roles | 35684 | 35500 | +| Physical width | 134031764 | 133289600 | +| Total recursive rank | 77066417400 | 76639673100 | +| Deficit | 1846900 | 1846900 | + +## General compatibility argument + +Balanced coarse parenthesization changes only how the same Cartesian-product +edge sums are evaluated. The weighted scalar identities and recursively +contracting anchored partition are inherited from PR79's proof. Envelope +ordering then applies a bijection to non-source scalar node IDs, grouping +nodes by (core, cover), preserving the order inside each group and every +argument, output and provenance reference. It changes no scalar linear form +or frame. The graph verifier is rerun after this relabeling. Dependency and +carrier-eligibility checks in the compiler remain enabled. + +Future-compatible completion chooses independent unit rows after the desired +outputs and retained carriers. Any accepted independent completion is a full +invertible basis; the unchanged synthesis emits its literal XOR operations. +Bounded carrier exchanges preserve matching cardinality, unique uses and +independence of the output-plus-retained-input rows. These choices can change +each other's costs, so the words are recompiled and every profile recomputed; +we do not add reported savings or assume independent numerical gains. + +All clearing targets and controls remain charged. Both frame-containment +checks for pending controls remain enabled. The compiler and independent +replay verify the full arbitrary-dirty-role wrapper in both orientations. +Independent axis implementations expose the same source triple lines, fixed +I+J basis, terminal frames and scatter identity. Hence the complete tensor/data +construction is unchanged. Every endpoint/copy/data-growth/complex term is +retained exactly once. The fixed-width bridge is derived from the actual W. + +## General relabeling argument + +Let P be a permutation matrix on the h coordinates. It commutes with J, +so P commutes with the fixed basis L = I+J and preserves the form I-J/9. +For a core/cover frame F(C,U), the relabeled projector is +P F(C,U) P^-1 = F(P C,P U). Consequently, every frame inclusion, rank, +nondegeneracy condition, projector denominator bound and elementary role +operation is preserved. The existing exact CRT bounds apply unchanged. + +Relabel each input triple T to P T, each output (c,T) to (P c,P T), +each frame mask by P, and each scatter row by the induced triple permutation. +The role slots and literal XOR operations do not change. This conjugates +the complete linear word by the input/output permutation and therefore +preserves its identity on every ordinary input and arbitrary dirty role. +The verifier independently replays that identity in both orientations. + +The data component sums over every pair of source triples. Independent +coordinate permutations on the two axes induce a bijection on that complete +Cartesian product. Hence its existing complete histogram, copied-center +costs and endpoint corrections are unchanged. This argument uses the full +case set; it would not justify retaining a selected subset's histogram. + +North-east corner rank profiles depend on the fixed coordinate order. +Conjugating by P can change which adjacent pivots form a recursive block, +even though total rank is unchanged. We regenerate these profiles from the +actual relabeled words rather than assuming their costs are invariant. +Both dimensions use the selected orders in order-23.json and order-25.json. + +## Reproduction and validation + +From the repository root with assert-enabled Python 3.11+ and C++17: + +```sh +python3 research/envelope-balanced/verify.py --regenerate +(cd research/envelope-balanced && python3 -m unittest test_controls -v) +make verify +``` + +The regeneration option launches two isolated compiler processes and requires +both original words to reproduce byte-for-byte. The verifier then regenerates +the coordinate-permuted words, performs independent full input/dirty replay, +reconstructs all transitions, and regenerates exact bounded-minor/CRT profiles. +The complete paid child list is reconstructed; independent rational moment +bounds, 47 strict inequalities, seven margins and both next-grid exclusions +are checked. The complete PR76, PR79 and PR80 child lists are each excluded at +the new bit saving using their own width. Six physical/coordinate failure +controls and three stale bridge controls run separately. A dedicated +three-version CI workflow retains every inherited workflow. + +The bounded searches are not proofs of global optimality. All inherited +all-size residual compiler, routing, recovery, prime selection, finite +alphabet/tape, precision and analytic transfer interfaces remain hypotheses. +No unconditional multiplication theorem or practical speedup is claimed. + +## Attribution + +Thomas DiFiore (PR74) introduced the envelope ordering; Dominik Scholz +(PR76) composed it with carried exchanges; Chafik Boukhalfa (PR79/71) +provided balanced/future/exchange and anchored split compilation; eumemic +(PR69/57) provided balanced coarse sums and reversible compilation; +Alejandro Zarzuelo Urdiales (PR70) supplied the carry-exchange strategy; +Rohan Arun (PR78/80/65/67) supplied coordinate flags, axis selection, +schedules and profile-cost reclamation. This new pre-compilation composition +and finite selection were prepared by Rohan Arun with OpenAI Codex assistance. + +Credit also Rohan Garg, Avi Eisenberg, icekylinx, James Chang, Zhihao Chen, +Aurel Prosz/Paureel, Swapnil Jain, RaD/hipotures, Douglas Colkitt, OpenAI, +Harvey–van der Hoeven and all inherited contributors. Original licenses, +author and AI-assistance notices remain preserved. Tested PR75 zero-circuit +variants were not selected for this witness and are not claimed as its method. diff --git a/references/frame-compiler/pr82/research/envelope-balanced/certificate.json b/references/frame-compiler/pr82/research/envelope-balanced/certificate.json new file mode 100644 index 0000000000..e3932e44a5 --- /dev/null +++ b/references/frame-compiler/pr82/research/envelope-balanced/certificate.json @@ -0,0 +1,623 @@ +{ + "pair": [ + "build/blend80-permutations/perm-hill1-1-23", + "build/blend80/25-flag-ordered" + ], + "bit": { + "m": 575, + "N": 4073300, + "W": 133289600, + "L": 2226400, + "total_rank": 76639673100, + "child_multiplicities": { + "1": 1779607014, + "2": 99734647, + "3": 31484516, + "4": 31129120, + "5": 14776994, + "6": 19970187, + "7": 10837554, + "8": 15698236, + "9": 7315702, + "10": 9932205, + "11": 4946058, + "12": 7147618, + "13": 3080942, + "14": 4187265, + "15": 1880181, + "16": 2095599, + "17": 9083091, + "18": 780413, + "19": 347898, + "20": 19481, + "21": 16436421, + "23": 70463375, + "25": 62870500, + "481": 8146600, + "525": 62870500, + "529": 62272500 + } + }, + "bit_saving": "13008876609597/250000000000000000", + "kappa": "5203279888519/100000000000000000", + "exact_moment": { + "saving": "13008876609597/250000000000000000", + "lower": "33322399999999999998793420212459638141569626027413/33322400000000000000000000000000000000000000000000", + "upper": "8330599999999999999698355053114909968907369717469/8330600000000000000000000000000000000000000000000", + "strict_gap": "301644946885090031092630282531/8330600000000000000000000000000000000000000000000", + "degree": 8, + "rounding_denominator": 10000000000000000000000000000000000000000, + "terms": { + "1": { + "weight": "38687109/1666120000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "exp_lower": "10003307075348533884063211385083187955613/10000000000000000000000000000000000000000", + "exp_upper": "2500826768837133471015802846270797119361/2500000000000000000000000000000000000000" + }, + "2": { + "weight": "4336289/1666120000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "exp_lower": "156296035623890139091713504965327004141/156250000000000000000000000000000000000", + "exp_upper": "5001473139964484450934832158890464392997/5000000000000000000000000000000000000000" + }, + "3": { + "weight": "1026669/833060000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "exp_lower": "2000547046834119088281245325042889117779/2000000000000000000000000000000000000000", + "exp_upper": "10002735234170595441406226625214446109629/10000000000000000000000000000000000000000" + }, + "4": { + "weight": "8459/5206625", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "exp_lower": "1000258549752243389052063957928480954997/1000000000000000000000000000000000000000", + "exp_upper": "10002585497522433890520639579284810070603/10000000000000000000000000000000000000000" + }, + "5": { + "weight": "321239/333224000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "exp_lower": "1250308669287312763743221615985093678373/1250000000000000000000000000000000000000", + "exp_upper": "10002469354298502109945772927880749947563/10000000000000000000000000000000000000000" + }, + "6": { + "weight": "2604807/1666120000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "exp_lower": "10002374459375977405734919038261318562077/10000000000000000000000000000000000000000", + "exp_upper": "10002374459375977405734919038261319082623/10000000000000000000000000000000000000000" + }, + "7": { + "weight": "1649193/1666120000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "exp_lower": "250057355689114048359699806249961362451/250000000000000000000000000000000000000", + "exp_upper": "2500573556891140483596998062499613754641/2500000000000000000000000000000000000000" + }, + "8": { + "weight": "170633/104132500", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "exp_lower": "10002224728128459501072555033941477363669/10000000000000000000000000000000000000000", + "exp_upper": "5001112364064229750536277516970738942089/5000000000000000000000000000000000000000" + }, + "9": { + "weight": "1431333/1666120000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "exp_lower": "10002163425682079638974676060010538615477/10000000000000000000000000000000000000000", + "exp_upper": "5001081712841039819487338030005269567987/5000000000000000000000000000000000000000" + }, + "10": { + "weight": "86367/66644800", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "exp_lower": "312565893409173022014773894456990509887/312500000000000000000000000000000000000", + "exp_upper": "1250263573636692088059095577827962104609/1250000000000000000000000000000000000000" + }, + "11": { + "weight": "1182753/1666120000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "exp_lower": "5001029491812110880967366452186132309107/5000000000000000000000000000000000000000", + "exp_upper": "2000411796724844352386946580874453027739/2000000000000000000000000000000000000000" + }, + "12": { + "weight": "466149/416530000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "exp_lower": "5001006848796822724140161659972701066113/5000000000000000000000000000000000000000", + "exp_upper": "5001006848796822724140161659972701326351/5000000000000000000000000000000000000000" + }, + "13": { + "weight": "870701/1666120000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "exp_lower": "10001972038664919614024366382022199635829/10000000000000000000000000000000000000000", + "exp_upper": "100019720386649196140243663820222001563/100000000000000000000000000000000000000" + }, + "14": { + "weight": "254877/333224000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "exp_lower": "5000966734337999995797883068039128092041/5000000000000000000000000000000000000000", + "exp_upper": "10001933468675999991595766136078256704549/10000000000000000000000000000000000000000" + }, + "15": { + "weight": "245241/666448000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "exp_lower": "10001897561009065782206419152957362255013/10000000000000000000000000000000000000000", + "exp_upper": "10001897561009065782206419152957362775477/10000000000000000000000000000000000000000" + }, + "16": { + "weight": "91113/208265000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "exp_lower": "10001863971746576401510125133073809765217/10000000000000000000000000000000000000000", + "exp_upper": "10001863971746576401510125133073810285677/10000000000000000000000000000000000000000" + }, + "17": { + "weight": "6713589/3332240000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "exp_lower": "10001832419587209034048979068887583537783/10000000000000000000000000000000000000000", + "exp_upper": "10001832419587209034048979068887584058241/10000000000000000000000000000000000000000" + }, + "18": { + "weight": "305379/1666120000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "exp_lower": "2500450667877807380085964916375389808249/2500000000000000000000000000000000000000", + "exp_upper": "10001802671511229520343859665501559753451/10000000000000000000000000000000000000000" + }, + "19": { + "weight": "143697/1666120000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "exp_lower": "10001774532326744488978617401034227396407/10000000000000000000000000000000000000000", + "exp_upper": "500088726616337224448930870051711395843/500000000000000000000000000000000000000" + }, + "20": { + "weight": "847/166612000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "exp_lower": "10001747836900511501325811867133104580149/10000000000000000000000000000000000000000", + "exp_upper": "10001747836900511501325811867133105100601/10000000000000000000000000000000000000000" + }, + "21": { + "weight": "15007167/3332240000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "exp_lower": "500086122214314131203829913985723634621/500000000000000000000000000000000000000", + "exp_upper": "10001722444286282624076598279714473212869/10000000000000000000000000000000000000000" + }, + "23": { + "weight": "24509/1159040", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "exp_lower": "10001675098619196670625281142245760964569/10000000000000000000000000000000000000000", + "exp_upper": "2000335019723839334125056228449152297003/2000000000000000000000000000000000000000" + }, + "25": { + "weight": "27335/1332896", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "exp_lower": "10001631703402925495537303947314434539479/10000000000000000000000000000000000000000", + "exp_upper": "5000815851701462747768651973657217529961/5000000000000000000000000000000000000000" + }, + "481": { + "weight": "37037/724400", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "exp_lower": "1250011610656514594334701763537864088907/1250000000000000000000000000000000000000", + "exp_upper": "10000092885252116754677614108302913231617/10000000000000000000000000000000000000000" + }, + "525": { + "weight": "574035/1332896", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "exp_lower": "156250739652149188643502175108116787809/156250000000000000000000000000000000000", + "exp_upper": "5000023668868774036592069603459737470067/5000000000000000000000000000000000000000" + }, + "529": { + "weight": "24909/57952", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "exp_lower": "125000542351707676988700108517956126037/125000000000000000000000000000000000000", + "exp_upper": "10000043388136614159096008681436490603319/10000000000000000000000000000000000000000" + } + } + }, + "next_grid_lower": "1666120000000000000711337479431561848499317127149/1666120000000000000000000000000000000000000000000", + "independent_enclosure": [ + "33322399999999999998793420212459638776463540296597/33322400000000000000000000000000000000000000000000", + "33322399999999999998793420212459638776470204615997/33322400000000000000000000000000000000000000000000" + ], + "assembly": { + "kappa": "5203279888519/100000000000000000", + "assembly": { + "parameters": { + "a_bit": "13008876609597/250000000000000000", + "a_complex": "717/10000000", + "tau": "249986991123390403/250000000000000000", + "sigma": "9999283/10000000", + "beta": "1/20", + "h": "1/1000000000000", + "q": "6504438304785491123390403/125000000000000000000000000000", + "c": "6504438336035491123390403/125000000000000000000000000000", + "epsilon": "124999999999875000000000000000/125006504438304785491123390403", + "lambda_": "249986991123390416008876609597/250000000000000000000000000000", + "lambda_prime": "124993495561695214508876609597/125000000000000000000000000000", + "alpha_squared_power": "13008876734564477808476020508876609597/250013008876609570982246780806000000000000", + "delta": "1/8000000000000", + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "kappa": "5203279888519/100000000000000000" + }, + "constraints": { + "a_positive": "13008876609597/250000000000000000", + "a_below_b": "4916123390403/250000000000000000", + "b_below_one_over32": "311783/10000000", + "beta_positive": "1/20", + "beta_below_one": "19/20", + "phase_leaf_above_bit": "4019873390403/250000000000000000", + "q_positive": "6504438304785491123390403/125000000000000000000000000000", + "q_below_internal": "13008876609597/125000000000000000000000000000", + "q_below_leaf": "2009936695214508876609597/125000000000000000000000000000", + "c_positive": "6504438336035491123390403/125000000000000000000000000000", + "c_below_one": "124993495561663964508876609597/125000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "lambda_above_tau": "13008876609597/250000000000000000000000000000", + "lambda_above_sigma": "4916123390416008876609597/250000000000000000000000000000", + "lambda_above_internal": "13008876609597/250000000000000000000000000000", + "lambda_prime_above_lambda": "13008876609597/250000000000000000000000000000", + "compact_leaf": "2009936695214508876609597/125000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "lambda_prime_below_one": "6504438304785491123390403/125000000000000000000000000000", + "epsilon_positive": "124999999999875000000000000000/125006504438304785491123390403", + "epsilon_below_one": "6504438429785491123390403/125006504438304785491123390403", + "guard_width": "6504438429785491123390403/125006504438304785491123390403", + "K_geometry": "93756504438336035491123390403/125006504438304785491123390403000000000000", + "K_dominates_log": "6504438336028986685054367508876609597/125006504438304785491123390403000000000000", + "record_suffix": "6504438429785491123390403/125006504438304785491123390403", + "phase_local": "52035507313277424548818438508876609597/1000052035506438283928987123224000000000000", + "phase_boundary": "10407101362650281359119859308876609597/200010407101287656785797424644800000000000", + "gamma_sublinear": "1/2000000000000", + "cell_above_band": "249999999999624993495561695214508876609597/500026017753219141964493561612000000000000", + "prime_interval_packing": "6504438429785491123390403/125006504438304785491123390403", + "alpha_positive": "13008876734564477808476020508876609597/250013008876609570982246780806000000000000", + "alpha_below_one": "249999999999875006504438304785491123390403/250013008876609570982246780806000000000000", + "alpha_below_one_fourth": "62490243342417828267753219180991123390403/250013008876609570982246780806000000000000", + "delta_positive": "1/8000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "short_record_fallback": "31248373805777115053309262094392515437552502409/31251626109576196372780847600750000000000000000", + "small_field_exposure": "1/1000000000000", + "artificial_boundary": "7000416284052881290945211900148473370171209/1000052035506438283928987123224000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "row_product_gap": "7007/25", + "g1_above_kappa": "12500656709375443576519804845516843/12500650443830478549112339040300000000000000000", + "g2_above_kappa": "1353776599/500000000000000000", + "g3_above_kappa": "6265544965027407465805216843/12500650443830478549112339040300000000000000000", + "g4_above_kappa": "1353776599/500000000000000000", + "g5_above_kappa": "4687750181981394483324592945329343/12500650443830478549112339040300000000000000000", + "g6_above_kappa": "10938075403896633757880762465479343/12500650443830478549112339040300000000000000000", + "g7_above_kappa": "12499349556157022107597036403276519804845516843/12500650443830478549112339040300000000000000000" + }, + "margins": { + "g1": "6504438429785491123390403/125006504438304785491123390403", + "g2": "13008876609597/250000000000000000", + "g3": "6504438304778986685085617508876609597/125006504438304785491123390403000000000000", + "g4": "13008876609597/250000000000000000", + "g5": "10407101362650281359119859308876609597/200010407101287656785797424644800000000000", + "g6": "52035507313277424548818438508876609597/1000052035506438283928987123224000000000000", + "g7": "124999999999875000000000000000/125006504438304785491123390403" + }, + "minimum_margin": "6504438304778986685085617508876609597/125006504438304785491123390403000000000000", + "absorption_gap": "6265544965027407465805216843/12500650443830478549112339040300000000000000000", + "scoped_limit": "13008876609597/250013008876609597", + "recurrence": { + "internal": "249986991123390403/250000000000000000", + "leaf": "199986377/200000000", + "reservations": "124993495561663964508876609597/125000000000000000000000000000" + }, + "finite_bridge": { + "bit": { + "m": 575, + "W": 133289600, + "maxchild": 529, + "halving_degree": 9, + "wire_bits": 27 + }, + "complex": { + "m": 784, + "W": 537696432, + "maxchild": 756, + "halving_degree": 20, + "wire_bits": 30, + "s": 421548223824, + "scalar_group_upper": 4793351472 + }, + "semantic": { + "E": 9696565176891520488192506033216, + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748, + "induction_gap": 533311084729033626873772984137200 + }, + "rows": { + "coefficient": 843, + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + } + } + }, + "next_kappa": "52032798885191/1000000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-62351054788030710833071221973/125006504438304785491123390403000000000000000000'}", + "eventual_bounds": { + "cutoff_log2_input": { + "guard": 4266540, + "normalization": 14000000000000, + "alpha": 5909919377, + "compact": 23639677505, + "geometry": 3999930624137, + "phase_cell": 19, + "period": 47279355009, + "stopped_leaf": 252, + "log_p": 25, + "reservoir": 14 + }, + "common_cutoff": 14000000000000, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 728445808, + "rhs": 112000000153816, + "rhs_bits": 47 + }, + "compact": { + "exponent": 728445808, + "rhs": 448000000615200, + "rhs_bits": 49 + }, + "period": { + "exponent": 728445808, + "rhs": 224000000307560, + "rhs_bits": 48 + }, + "rows": { + "exponent": 728445808, + "rhs": 112000000153816000, + "rhs_bits": 57 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1456891617, + "rhs": 224000000153816, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1456891617, + "rhs": 896000000615200, + "rhs_bits": 50 + }, + "period": { + "exponent": 1456891617, + "rhs": 448000000307560, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1456891617, + "rhs": 224000000153816000, + "rhs_bits": 58 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2913783235, + "rhs": 448000000153816, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2913783235, + "rhs": 1792000000615200, + "rhs_bits": 51 + }, + "period": { + "exponent": 2913783235, + "rhs": 896000000307560, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2913783235, + "rhs": 448000000153816000, + "rhs_bits": 59 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5827566470, + "rhs": 896000000153816, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5827566470, + "rhs": 3584000000615200, + "rhs_bits": 52 + }, + "period": { + "exponent": 5827566470, + "rhs": 1792000000307560, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5827566470, + "rhs": 896000000153816000, + "rhs_bits": 60 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11655132941, + "rhs": 1792000000153816, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11655132941, + "rhs": 7168000000615200, + "rhs_bits": 53 + }, + "period": { + "exponent": 11655132941, + "rhs": 3584000000307560, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11655132941, + "rhs": 1792000000153816000, + "rhs_bits": 61 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 23310265882, + "rhs": 3584000000153816, + "rhs_bits": 52 + }, + "compact": { + "exponent": 23310265882, + "rhs": 14336000000615200, + "rhs_bits": 54 + }, + "period": { + "exponent": 23310265882, + "rhs": 7168000000307560, + "rhs_bits": 53 + }, + "rows": { + "exponent": 23310265882, + "rhs": 3584000000153816000, + "rhs_bits": 62 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + } + } + } + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "practical_runtime_claim": false + } + }, + "finite_bridge": { + "bit": { + "W": 133289600, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 843, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "pr76_kappa": "51738676045141/1000000000000000000", + "gain_percent": "29412284004900/51738676045141", + "scope": "Finite conditional envelope-balanced witness; geometric coordinate-aware oracle pricing on h25; all inherited all-size assumptions remain." +} diff --git a/references/frame-compiler/pr82/research/envelope-balanced/compiler.py b/references/frame-compiler/pr82/research/envelope-balanced/compiler.py new file mode 100644 index 0000000000..b4d43e88aa --- /dev/null +++ b/references/frame-compiler/pr82/research/envelope-balanced/compiler.py @@ -0,0 +1,51 @@ +"""Portable composition of PR79 balanced/future/exchange engine and PR76 ordering. +All inherited sources and notices remain unmodified. Composition by Rohan Arun +with OpenAI Codex assistance. Apache-2.0; finite conditional witness only. +""" +import sys +if sys.flags.optimize: raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2] +sys.path.insert(0,str(ROOT/'scripts/experiments')) +import balanced_split_graph as graph +import balanced_split_exchange_engine as baseline_engine +import flag_engine +sys.path.insert(0,str(ROOT/'references/frame-compiler/pr76/research/round7-scheduling')) +from schedule_variant import reorder +import argparse,gzip,json,subprocess,os,shlex + +def check_flag_engine(): + original=(ROOT/'scripts/experiments/balanced_split_exchange_engine.py').read_text() + before="for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank']))" + after="for b in blocks:stream.write(struct.pack('<2QI',*[sum(1<>i&1) for mask in b['frame']],b['rank']))" + assert original.count(before)==1 + expected='# Coordinate-conjugated oracle pricing by Rohan Arun with OpenAI Codex.\n'+original.replace(before,after) + assert (Path(__file__).parent/'flag_engine.py').read_text()==expected,'Flag engine contains changes beyond oracle coordinate pricing' + +def compile_axis(h,work): + check_flag_engine() + engine=flag_engine if h==25 else baseline_engine + if h==25: + cfg=json.loads((ROOT/f'research/envelope-balanced/order-{h}.json').read_text()) + assert sorted(cfg['order'])==list(range(h)) + engine.COORD_MAP={int(k):v for k,v in cfg['mapping'].items()} + assert engine.COORD_MAP=={old:new for new,old in enumerate(cfg['order'])} + work.mkdir(parents=True,exist_ok=True) + oracle=work/'oracle' + subprocess.run([*shlex.split(os.environ.get('CXX','c++')),'-O3','-std=c++17','-I',str(ROOT/'references/frame-compiler/pr48/scripts/partial_swap'),str(ROOT/'references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp'),'-o',str(oracle)],check=True) + engine.graph=lambda dimension:reorder(graph.graph(dimension)) + engine.build=graph.ordered_build(engine.build,h) + engine.ORACLE_EXE=str(oracle);engine.ORACLE_INPUT=str(work/'oracle.bin');engine.PENDING_COST=True;engine.oracles=[] + try:result,word=engine.compile_(h,matching=True,reclaim=True,dirty=True) + finally: + for process in engine.oracles: + process.stdin.close();assert process.wait(timeout=10)==0 + result.pop('seconds',None);result['scalar']=engine.graph(h).verify() + raw=(json.dumps(word,separators=(',',':'))+'\n').encode() + (work/'word.json.gz').write_bytes(gzip.compress(raw,mtime=0)) + (work/'compiler.json').write_text(json.dumps(result,indent=2)+'\n') + print('PASS compiled envelope-balanced axis',h,result['roles'],flush=True) + +if __name__=='__main__': + p=argparse.ArgumentParser();p.add_argument('--h',type=int,choices=(23,25),required=True);p.add_argument('--work',type=Path,required=True);args=p.parse_args();compile_axis(args.h,args.work) diff --git a/references/frame-compiler/pr82/research/envelope-balanced/flag_engine.py b/references/frame-compiler/pr82/research/envelope-balanced/flag_engine.py new file mode 100644 index 0000000000..d210d9336b --- /dev/null +++ b/references/frame-compiler/pr82/research/envelope-balanced/flag_engine.py @@ -0,0 +1,312 @@ +# Coordinate-conjugated oracle pricing by Rohan Arun with OpenAI Codex. +# Bounded carry exchanges adapted from Alejandro Zarzuelo Urdiales PR70. +# Exact integer entropy discovery scores replace floating moment prices. +# Composition of PR67 profile-cost reclamation and PR68 pending live controls. +# Next-use transition scoring added by Chafik Boukhalfa with OpenAI Codex assistance. +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*[sum(1<>i&1) for mask in b['frame']],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + # Three deterministic improving exchanges, preserving both matroid constraints. + def carry_price(edge): + g,u,i=edge;producer=owner[blocks[g]['inputs'][i]];target=uses[u][1] + return (-profile_entropy(g+2,target+2)+profile_entropy(g+2,1) + +profile_entropy(0,producer+2)+profile_entropy(producer+2,target+2)) + prices=[carry_price(edge) for edge in edges] + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])) + initial_count=len(chosen);initial_price=sum(prices[e] for e in chosen) + def carry_can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not carry_can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1] + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1] + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + # Three deterministic improving exchanges, preserving both matroid constraints. + def carry_price(edge): + g,u,i=edge;producer=owner[blocks[g]['inputs'][i]];target=uses[u][1] + return (-profile_entropy(g+2,target+2)+profile_entropy(g+2,1) + +profile_entropy(0,producer+2)+profile_entropy(producer+2,target+2)) + prices=[carry_price(edge) for edge in edges] + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])) + initial_count=len(chosen);initial_price=sum(prices[e] for e in chosen) + def carry_can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not carry_can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1] + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 3 and choice: + index = {1: 0, 2: (len(groups)-1)//2, 3: len(groups)-1}[choice] + if len(groups[index]) == 2: + groups[index:index+1] = [[point] for point in groups[index]] + assert all(len(group) in (1, 2) for group in groups) + assert len(groups) < len(points) + assert sorted(point for group in groups for point in group) == sorted(points) + return groups + return SplitPair + + +def graph(h): + config = configuration(h) + _graph = _graphs[h] + original = _graph.circuit_class + previous_points = _graph.alternating_points + try: + _graph.circuit_class = lambda dimension: split_class(original(dimension), config['groups']) + if config['anchor']: + def anchored_points(dimension, common): + points = previous_points(dimension, common) + pairs = [(a, a+1) for a in range(0, dimension-1, 2) if common not in (a, a+1)] + chosen = min(pairs) + result = list(chosen) + [x for x in points if x not in chosen] + assert sorted(result) == [x for x in range(dimension) if x != common] + return result + _graph.alternating_points = anchored_points + return _graph.graph(h) + finally: + _graph.circuit_class = original + _graph.alternating_points = previous_points + + +def ordered_build(original, h): + mode = configuration(h)['schedule'] + if mode == 'original': + return original + return _schedule.reordered_build(original, mode) diff --git a/references/frame-compiler/pr84/LICENSE b/references/frame-compiler/pr84/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/frame-compiler/pr84/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/frame-compiler/pr84/NOTICE b/references/frame-compiler/pr84/NOTICE new file mode 100644 index 0000000000..70f4d45ed6 --- /dev/null +++ b/references/frame-compiler/pr84/NOTICE @@ -0,0 +1,339 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Aligned split-pair composition (2026-10-08) +------------------------------------------ +Avi Eisenberg: PR62 interval strips and core-aware pair assembly. Dominik +Scholz with OpenAI assistance: PR63 ranked-frame composition and PR68 pending +live-carrier controls. Rohan Arun with OpenAI assistance: PR65 region schedules +and refined exact arithmetic, and PR67 all-rank profile-cost selection and +its profile oracle. Rohan Garg / rohangar1 +with substantial OpenAI Codex assistance: PR59 split-pair operation. Eumemic +with substantial OpenAI Codex assistance: PR57 joint reversible compiler and +independent physical-word/profile checks. Chafik Boukhalfa with OpenAI Codex +assistance: PR60 ranked reclamation and this selected [1,1,2] split vector, +aligned common-point permutation, next-use profile score, composition and +certification package. +The complete PR65 baseline words, profiles and arithmetic, plus 43 original +source/provenance files, are preserved under references/frame-compiler/pr65. +The original PR59 split operation and notices are separately preserved. +PR67's compiler/oracle and baseline profile, and PR68's compiler/driver/proof, +retain their original bytes, licenses and notices in their own archives. +All previous notices and mathematical dependencies remain applicable. + +Balanced coarse split composition (2026-10-08) +--------------------------------------------- +Eumemic / @eumemic supplied PR69's balanced coarse sums, with OpenAI Codex +assistance. Alejandro Zarzuelo Urdiales / @alejandrozu supplied PR70's bounded +carry-exchange strategy with the AI disclosures retained in the source archive. +Chafik Boukhalfa / @chafreaky, with OpenAI Codex assistance, selected the row/ +half-plane coarse rules, future-compatible unit completion, exact integer-price +carry adaptation, composition and this certificate package. The PR71 anchored +split vector, schedules, arithmetic, pending controls and their contributor +chain are retained as credited above. Original PR69/70 sources, licenses and +notices and the complete published PR71 baseline are preserved under +references/frame-compiler. All earlier notices remain applicable. + +Indexed two-cycle composition (2026-10-08): Chafik Boukhalfa with OpenAI Codex assistance. Thomas DiFiore (@tomdif, PR74) supplied exact node ordering and coordinate relabeling, including the selected h25 permutation. Rohan Arun (@rohanarun, PR78) supplied the coordinate-flag search idea. Balanced multi-splits, exact retired/pending indices, bounded two-cycles, late-output routing and selected-coordinate certification compose inherited PR57/59/60/62/63/65/67/68/69/70/71/79 work. All original authorship, Apache-2.0 and AI disclosures remain in unchanged contributor archives. diff --git a/references/frame-compiler/pr84/SOURCE.json b/references/frame-compiler/pr84/SOURCE.json new file mode 100644 index 0000000000..8a553f20dd --- /dev/null +++ b/references/frame-compiler/pr84/SOURCE.json @@ -0,0 +1,26 @@ +{ + "author": "Chafik Boukhalfa with OpenAI Codex assistance, with inherited credits preserved", + "commit": "88ca39571907343a49e97f328971ec7bcd26fbfd", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "7d59d255960091cbd1c62ec1e7439023599687cdfdb7059904fe56578dac2333", + "certificates/indexed-cycle-kappa.json": "c2ca8f70fd7bfc962b675d4784941a93d4d756530d7b4ec26a116bdb2c6f8315", + "certificates/indexed-cycle-profiles-23.json": "263c516190c53723bf103dd603309efbbceac1e30193ed1781f92df19e0e08bc", + "certificates/indexed-cycle-profiles-25.json": "a74d3c0bccfbfb96b8e416536d3c52a2e9c0d99faa5f1c35b90d4d5647153ddb", + "research/indexed-cycle/PROOF.md": "bddb8f880bb13dbf481b05672ee46c529d4880e9df51c745679bf6954e0fb4d9", + "research/indexed-cycle/README.md": "3df371f98c6b1904b402297e7c0c2672b3a1fa4c0ae03238e2328a2948294a13", + "research/indexed-cycle/config-23.json": "ee7d447f14c6d4a46b04dbdc0468b00c3e8e49100352a202794800315ae8eaeb", + "research/indexed-cycle/config-25.json": "7c2ae35096692b97bbdad3efdd43331113ddadb38af0c44d9c5eaeb00613ff40", + "scripts/experiments/audit_indexed_cycle_completion.py": "49ba72874c5866f254d213ebcb44d42d62e98b94324f370a126abfde66caf04d", + "scripts/experiments/audit_indexed_cycle_cycles.py": "9b12947cebf91f0b26e7c40431a783921e8e1eed2b27f9f26533a2377c9b749b", + "scripts/experiments/audit_indexed_cycle_exchange.py": "93e65ff84fddc290d210669798bc5e420b04072d491ed05e0e75418cb1ee4288", + "scripts/experiments/audit_indexed_cycle_pending.py": "6843173cd4ced62ae8022adde3171a2e94eb6264527df37b67b629047130053d", + "scripts/experiments/audit_indexed_cycle_retired.py": "5866018a6db4e03d6b563a13a369e78d59c340b16956b626a0d94108e593650d", + "scripts/experiments/indexed_cycle_compiler.py": "f5084ee68d7a880db8fd8add54d9c0ab08af0cf93e0d7f65beb3bdbb8c533dd7", + "scripts/experiments/indexed_cycle_engine.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "scripts/experiments/indexed_cycle_graph.py": "d6b08e8806c3d774c16c8714dce2afd7fe72c7b087fcf2b123eb5971e862b48f", + "scripts/experiments/indexed_cycle_nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600" + }, + "scope": "Byte-identical selected Git blobs. Runtime location bindings may be adapted in the private composing producer; original sources and notices remain unchanged.", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/84" +} diff --git a/references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json b/references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json new file mode 100644 index 0000000000..4b0b0ebaed --- /dev/null +++ b/references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json @@ -0,0 +1,2069 @@ +{ + "assembly": { + "absorption_gap": "352109146567396207839649/1502482382844834650618925715000000000000000", + "constraints": { + "K_dominates_log": "923961074870814089634897492718521/17676263327586290007281479000000000000", + "K_geometry": "225376284261349742623785143/300496476568966930123785143000000000000", + "a_below_b": "151765456859/7812500000000000", + "a_positive": "408390793141/7812500000000000", + "alpha_below_one": "600961538461237996476568966930123785143/600992953137933860247570286000000000000", + "alpha_below_one_fourth": "150216823607787601290891252430123785143/600992953137933860247570286000000000000", + "alpha_positive": "31414676695863771001319069876214857/600992953137933860247570286000000000000", + "artificial_boundary": "16827928346571035017351956052790371355429/2403971812551735440990281144000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "3906045804602453345890793141/3906250000000000000000000000", + "c_positive": "204195397546654109206859/3906250000000000000000000000", + "cell_above_band": "600961538460637003523431033069876214857/1201985906275867720495140572000000000000", + "compact_leaf": "61878822179908390793141/3906250000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "15707338498180123785143/300496476568966930123785143", + "epsilon_positive": "300480769230468750000000000/300496476568966930123785143", + "g1_above_kappa": "1502482734953981218015133554649/1502482382844834650618925715000000000000000", + "g2_above_kappa": "341553831/125000000000000000", + "g3_above_kappa": "352109146567396207839649/1502482382844834650618925715000000000000000", + "g4_above_kappa": "341553831/125000000000000000", + "g5_above_kappa": "281715622837979780689152491387/751241191422417325309462857500000000000000", + "g6_above_kappa": "657336218549188443343883920137/751241191422417325309462857500000000000000", + "g7_above_kappa": "1502325309461355332116028266218015133554649/1502482382844834650618925715000000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "15707338498180123785143/300496476568966930123785143", + "lambda_above_internal": "408390793141/7812500000000000000000000000", + "lambda_above_sigma": "151765456859408390793141/7812500000000000000000000000", + "lambda_above_tau": "408390793141/7812500000000000000000000000", + "lambda_prime_above_lambda": "408390793141/7812500000000000000000000000", + "lambda_prime_below_one": "204195396570091609206859/3906250000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "25131741296591721487261869876214857/480794362510347088198056228800000000000", + "phase_leaf_above_bit": "123757644359/7812500000000000", + "phase_local": "125658707684944513712177069876214857/2403971812551735440990281144000000000000", + "prime_interval_packing": "15707338498180123785143/300496476568966930123785143", + "q_below_internal": "408390793141/3906250000000000000000000000", + "q_below_leaf": "61878822179908390793141/3906250000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "204195396570091609206859/3906250000000000000000000000", + "record_suffix": "15707338498180123785143/300496476568966930123785143", + "row_product_gap": "7007/25", + "short_record_fallback": "2347383289618635033048019747460141157895837/2347628723195054141592071429687500000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 132466108, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 843, + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "15707338498180123785143/300496476568966930123785143", + "g2": "408390793141/7812500000000000", + "g3": "15707338197683647216176069876214857/300496476568966930123785143000000000000", + "g4": "408390793141/7812500000000000", + "g5": "25131741296591721487261869876214857/480794362510347088198056228800000000000", + "g6": "125658707684944513712177069876214857/2403971812551735440990281144000000000000", + "g7": "300480769230468750000000000/300496476568966930123785143" + }, + "minimum_margin": "15707338197683647216176069876214857/300496476568966930123785143000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "408390793141/7812500000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "31414676695863771001319069876214857/600992953137933860247570286000000000000", + "beta": "1/20", + "c": "204195397546654109206859/3906250000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "300480769230468750000000000/300496476568966930123785143", + "h": "1/1000000000000", + "kappa": "261356445457/5000000000000000", + "lambda_": "7812091609206859408390793141/7812500000000000000000000000", + "lambda_prime": "3906045804603429908390793141/3906250000000000000000000000", + "q": "204195396570091609206859/3906250000000000000000000000", + "sigma": "9999283/10000000", + "tau": "7812091609206859/7812500000000000" + }, + "recurrence": { + "internal": "7812091609206859/7812500000000000", + "leaf": "199986377/200000000", + "reservations": "3906045804602453345890793141/3906250000000000000000000000" + }, + "scoped_limit": "408390793141/7812908390793141" + }, + "bit": { + "L": 2226400, + "N": 4073300, + "W": 132466108, + "axes": [ + { + "R": 26834, + "blocks": [ + 0, + 360947, + 18308, + 10287, + 5376, + 3976, + 3779, + 2686, + 2296, + 1754, + 1371, + 1322, + 902, + 790, + 495, + 433, + 233, + 96, + 102, + 0, + 90, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 5567, + "distinct_matrices": 38555, + "field_prime": 2305843009213693951, + "frames": 65728, + "h": 23, + "loss": 506, + "rank_sum": 617688, + "v": 1771 + }, + { + "R": 35348, + "blocks": [ + 0, + 492700, + 23012, + 12086, + 6121, + 4924, + 5649, + 4980, + 3550, + 2660, + 2408, + 2123, + 1685, + 1370, + 958, + 775, + 544, + 438, + 260, + 97, + 130, + 0, + 126, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 7465, + "distinct_matrices": 48221, + "field_prime": 2305843009213693951, + "frames": 86507, + "h": 25, + "loss": 600, + "rank_sum": 884300, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1796435700, + "10": 7417868, + "11": 6800433, + "12": 5058735, + "13": 4243270, + "14": 2835118, + "15": 2368425, + "16": 1499324, + "17": 9143098, + "18": 695060, + "19": 171787, + "2": 82862652, + "20": 437230, + "21": 16346100, + "22": 223146, + "23": 69909075, + "25": 62601308, + "3": 45064406, + "4": 23205091, + "481": 8146600, + "5": 17865204, + "525": 62601308, + "529": 61718200, + "6": 18696079, + "7": 14997380, + "8": 11567850, + "9": 8745060 + }, + "deficit": 1846900, + "excluded_moment": { + "degree": 8, + "lower": "33116527000000000004308405527912848157817980709109/33116527000000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "52274021522049/1000000000000000000", + "strict_gap": "-2154202763956424944534934883949/16558263500000000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "10003322236503288768062147469459636785297/10000000000000000000000000000000000000000", + "exp_upper": "10003322236503288768062147469459637309569/10000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "781059/33116527" + }, + "10": { + "exp_lower": "1000211825525423090233078862859460875997/1000000000000000000000000000000000000000", + "exp_upper": "5001059127627115451165394314297304641423/5000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "161258/165582635" + }, + "11": { + "exp_lower": "10002068422360797671494558759091993671449/10000000000000000000000000000000000000000", + "exp_upper": "10002068422360797671494558759091994194317/10000000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "3252381/3311652700" + }, + "12": { + "exp_lower": "5001011464355121093500750755126097426771/5000000000000000000000000000000000000000", + "exp_upper": "2000404585742048437400300302050439075281/2000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "131967/165582635" + }, + "13": { + "exp_lower": "5000990539395656851680128385990900613203/5000000000000000000000000000000000000000", + "exp_upper": "10001981078791313703360256771981801749263/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "239837/331165270" + }, + "14": { + "exp_lower": "10001942331974507447859801911955596183061/10000000000000000000000000000000000000000", + "exp_upper": "2000388466394901489571960382391119341183/2000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "431431/827913175" + }, + "15": { + "exp_lower": "10001906259685977746838977012792926793993/10000000000000000000000000000000000000000", + "exp_upper": "10001906259685977746838977012792927316843/10000000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "61785/132466108" + }, + "16": { + "exp_lower": "2000374503286268482151762176034829105789/2000000000000000000000000000000000000000", + "exp_upper": "625117032276958900672425680010884128237/625000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "260752/827913175" + }, + "17": { + "exp_lower": "200036816392390664173152077593824865751/200000000000000000000000000000000000000", + "exp_upper": "5000920409809766604328801939845621905197/5000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "198763/97401550" + }, + "18": { + "exp_lower": "10001810935162441534346397106105237922893/10000000000000000000000000000000000000000", + "exp_upper": "2000362187032488306869279421221047689147/2000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "27198/165582635" + }, + "19": { + "exp_lower": "10001782666973239573811500740024053015177/10000000000000000000000000000000000000000", + "exp_upper": "312555708342913736681609398125751673063/312500000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "141911/3311652700" + }, + "2": { + "exp_lower": "10002959786786852914801323097032091725353/10000000000000000000000000000000000000000", + "exp_upper": "1250369973348356614350165387129011531091/1250000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "1801362/827913175" + }, + "20": { + "exp_lower": "2000351169832313686269314031324357180651/2000000000000000000000000000000000000000", + "exp_upper": "10001755849161568431346570156621786426093/10000000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "3802/33116527" + }, + "21": { + "exp_lower": "625108146258435001419423008729870440289/625000000000000000000000000000000000000", + "exp_upper": "500086517006748001135538406983896378373/500000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "6489/1439849" + }, + "22": { + "exp_lower": "10001706018073727149567281224144287760869/10000000000000000000000000000000000000000", + "exp_upper": "10001706018073727149567281224144288283703/10000000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "53361/827913175" + }, + "23": { + "exp_lower": "1000168277741256869316467794345517048517/1000000000000000000000000000000000000000", + "exp_upper": "5000841388706284346582338971727585504001/5000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "121581/5759396" + }, + "25": { + "exp_lower": "10001639183252664810375067738776987755681/10000000000000000000000000000000000000000", + "exp_upper": "1000163918325266481037506773877698827851/1000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "680449/33116527" + }, + "3": { + "exp_lower": "39073233489774540626915691874794912217/39062500000000000000000000000000000000", + "exp_upper": "10002747773382282400490417119947498050683/10000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "2938983/1655826350" + }, + "4": { + "exp_lower": "5001298675101516895057802585042751630847/5000000000000000000000000000000000000000", + "exp_upper": "10002597350203033790115605170085503784719/10000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "1008917/827913175" + }, + "481": { + "exp_lower": "2500023327753028329016046443035861313241/2500000000000000000000000000000000000000", + "exp_upper": "1000009331101211331606418577214344577571/1000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "74074/1439849" + }, + "5": { + "exp_lower": "1250310084309800659723274809200586829309/1250000000000000000000000000000000000000", + "exp_upper": "10002480674478405277786198473604695157441/10000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "194187/165582635" + }, + "525": { + "exp_lower": "10000047554719990463448011203058861594111/10000000000000000000000000000000000000000", + "exp_upper": "2000009510943998092689602240611772423371/2000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "14289429/33116527" + }, + "529": { + "exp_lower": "10000043587015193348931189233051703466621/10000000000000000000000000000000000000000", + "exp_upper": "2000008717403038669786237846610340797873/2000000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "617182/1439849" + }, + "6": { + "exp_lower": "2000477068896066202876304067156419157559/2000000000000000000000000000000000000000", + "exp_upper": "1000238534448033101438152033578209631073/1000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "2438619/1655826350" + }, + "7": { + "exp_lower": "10002304744824234238865469172708232632337/10000000000000000000000000000000000000000", + "exp_upper": "10002304744824234238865469172708233155249/10000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "228221/165582635" + }, + "8": { + "exp_lower": "10002234926751355560767115645248196704407/10000000000000000000000000000000000000000", + "exp_upper": "10002234926751355560767115645248197227303/10000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "40236/33116527" + }, + "9": { + "exp_lower": "625135833953193985722580326064708084871/625000000000000000000000000000000000000", + "exp_upper": "500108667162555188578064260851766494041/500000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "171099/165582635" + } + }, + "upper": "16558263500000000002154202763956424944534934883949/16558263500000000000000000000000000000000000000000" + }, + "m": 575, + "maxchild": 529, + "moment": { + "degree": 8, + "lower": "16558263499999999994472742381183037441701346035491/16558263500000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "408390793141/7812500000000000", + "strict_gap": "1105451523763392338534834750613/3311652700000000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "1250415279562911088062167042672648886399/1250000000000000000000000000000000000000", + "exp_upper": "10003322236503288704497336341381191615463/10000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "781059/33116527" + }, + "10": { + "exp_lower": "10002118255254230861804356435806863249523/10000000000000000000000000000000000000000", + "exp_upper": "10002118255254230861804356435806863772399/10000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "161258/165582635" + }, + "11": { + "exp_lower": "2000413684472159526384325483644426784131/2000000000000000000000000000000000000000", + "exp_upper": "2500517105590199407980406854555533610881/2500000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "3252381/3311652700" + }, + "12": { + "exp_lower": "10002022928710242148299039951571789726643/10000000000000000000000000000000000000000", + "exp_upper": "5001011464355121074149519975785895124753/5000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "131967/165582635" + }, + "13": { + "exp_lower": "10001981078791313665458542797676542197009/10000000000000000000000000000000000000000", + "exp_upper": "10001981078791313665458542797676542719867/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "239837/331165270" + }, + "14": { + "exp_lower": "10001942331974507410699458429460455065463/10000000000000000000000000000000000000000", + "exp_upper": "10001942331974507410699458429460455588317/10000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "431431/827913175" + }, + "15": { + "exp_lower": "10001906259685977710368827783328931433879/10000000000000000000000000000000000000000", + "exp_upper": "10001906259685977710368827783328931956729/10000000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "61785/132466108" + }, + "16": { + "exp_lower": "100018725164313423749342907502259792357/100000000000000000000000000000000000000", + "exp_upper": "10001872516431342374934290750225979758547/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "260752/827913175" + }, + "17": { + "exp_lower": "5000920409809766586719777548974543963619/5000000000000000000000000000000000000000", + "exp_upper": "5000920409809766586719777548974544225041/5000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "198763/97401550" + }, + "18": { + "exp_lower": "2000362187032488299940028240160047530007/2000000000000000000000000000000000000000", + "exp_upper": "10001810935162441499700141200800238172877/10000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "27198/165582635" + }, + "19": { + "exp_lower": "5000891333486619769853055676115180046207/5000000000000000000000000000000000000000", + "exp_upper": "10001782666973239539706111352230360615253/10000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "141911/3311652700" + }, + "2": { + "exp_lower": "10002959786786852858172338482038880242437/10000000000000000000000000000000000000000", + "exp_upper": "10002959786786852858172338482038880765813/10000000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "1801362/827913175" + }, + "20": { + "exp_lower": "10001755849161568397754295222880565172981/10000000000000000000000000000000000000000", + "exp_upper": "10001755849161568397754295222880565695819/10000000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "3802/33116527" + }, + "21": { + "exp_lower": "125021629251686999870082061834880657713/125000000000000000000000000000000000000", + "exp_upper": "80013842721079679916852519574323625119/80000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "6489/1439849" + }, + "22": { + "exp_lower": "390691641331004965505017111480831193/390625000000000000000000000000000000", + "exp_upper": "5000853009036863558464219026954639531817/5000000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "53361/827913175" + }, + "23": { + "exp_lower": "78138146698535692663832055025321964189/78125000000000000000000000000000000000", + "exp_upper": "625105173588285541310656440202575746189/625000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "121581/5759396" + }, + "25": { + "exp_lower": "10001639183252664779014985929877912453901/10000000000000000000000000000000000000000", + "exp_upper": "1000163918325266477901498592987791297673/1000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "680449/33116527" + }, + "3": { + "exp_lower": "2000549554676456469583679593480013013891/2000000000000000000000000000000000000000", + "exp_upper": "5001373886691141173959198983700032796293/5000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "2938983/1655826350" + }, + "4": { + "exp_lower": "625162334387689608776371533808475480519/625000000000000000000000000000000000000", + "exp_upper": "10002597350203033740421944540935608211329/10000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "1008917/827913175" + }, + "481": { + "exp_lower": "10000093311012113314279141408953354393891/10000000000000000000000000000000000000000", + "exp_upper": "10000093311012113314279141408953354916637/10000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "74074/1439849" + }, + "5": { + "exp_lower": "5001240337239202615162553278969799071529/5000000000000000000000000000000000000000", + "exp_upper": "10002480674478405230325106557939598666027/10000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "194187/165582635" + }, + "525": { + "exp_lower": "10000047554719990462538289094864155043213/10000000000000000000000000000000000000000", + "exp_upper": "2500011888679997615634572273716038891489/2500000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "14289429/33116527" + }, + "529": { + "exp_lower": "10000043587015193348097369509305737210411/10000000000000000000000000000000000000000", + "exp_upper": "5000021793507596674048684754652868866577/5000000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "617182/1439849" + }, + "6": { + "exp_lower": "10002385344480330968744531222146348746419/10000000000000000000000000000000000000000", + "exp_upper": "5001192672240165484372265611073174634677/5000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "2438619/1655826350" + }, + "7": { + "exp_lower": "10002304744824234194770709880169524687429/10000000000000000000000000000000000000000", + "exp_upper": "10002304744824234194770709880169525210341/10000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "228221/165582635" + }, + "8": { + "exp_lower": "2000446985350271103601655300402048333661/2000000000000000000000000000000000000000", + "exp_upper": "10002234926751355518008276502010242191201/10000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "40236/33116527" + }, + "9": { + "exp_lower": "10002173343251103729980795678387148962427/10000000000000000000000000000000000000000", + "exp_upper": "10002173343251103729980795678387149485311/10000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "171099/165582635" + } + }, + "upper": "3311652699999999998894548476236607661465165249387/3311652700000000000000000000000000000000000000000" + }, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 61718200, + "529": 61718200 + }, + "exterior_25": { + "25": 62601308, + "525": 62601308 + }, + "internal_23": { + "1": 830178100, + "10": 3153300, + "11": 3040600, + "12": 2074600, + "13": 1817000, + "14": 1138500, + "15": 995900, + "16": 535900, + "17": 220800, + "18": 234600, + "2": 42108400, + "20": 207000, + "21": 52900, + "3": 23660100, + "4": 12364800, + "5": 9144800, + "6": 8691700, + "7": 6177800, + "8": 5280800, + "9": 4034200 + }, + "internal_25": { + "1": 872571700, + "10": 4264568, + "11": 3759833, + "12": 2984135, + "13": 2426270, + "14": 1696618, + "15": 1372525, + "16": 963424, + "17": 775698, + "18": 460460, + "19": 171787, + "2": 40754252, + "20": 230230, + "22": 223146, + "23": 44275, + "3": 21404306, + "4": 10840291, + "5": 8720404, + "6": 10004379, + "7": 8819580, + "8": 6287050, + "9": 4710860 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 76166165200, + "words": [ + { + "R": 26834, + "copied_centers": 23, + "distinct_transitions": 163929, + "frames": 65728, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 83674, + "10": 793, + "11": 207, + "12": 370, + "13": 104, + "14": 1219, + "15": 400, + "16": 493, + "17": 1036, + "18": 2643, + "19": 5609, + "2": 73284, + "21": 384, + "22": 23, + "3": 9345, + "4": 14768, + "5": 5655, + "6": 2630, + "7": 906, + "8": 1692, + "9": 1014 + }, + "rank_mass": 617688, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "c67fb6efa490db56814c743a48044c99397f3067f0038ce80673930c2f0ed829" + }, + { + "R": 35348, + "copied_centers": 25, + "distinct_transitions": 215055, + "frames": 86507, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 92777, + "10": 987, + "11": 156, + "12": 1101, + "13": 318, + "14": 575, + "15": 208, + "16": 1351, + "17": 472, + "18": 673, + "19": 779, + "2": 115704, + "20": 4243, + "21": 8332, + "23": 495, + "24": 25, + "3": 13298, + "4": 15384, + "5": 8687, + "6": 1876, + "7": 609, + "8": 2952, + "9": 849 + }, + "rank_mass": 884300, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "ec153b2cd0ef6edeb626dbb2831abc5ce7a59c99870ec6a5e08afb5a1530c845" + } + ] + }, + "bit_saving": "408390793141/7812500000000000", + "bit_saving_excluded_above": "52274021522049/1000000000000000000", + "coarse_grid_control": { + "assembly": { + "absorption_gap": "9011794092624833305761/1190538421452380827919000000000000", + "constraints": { + "K_dominates_log": "62230976487908545166369172081/1190538421452380827919000000000000", + "K_geometry": "892919373833630827919/1190538421452380827919000000000000", + "a_below_b": "971299/50000000000", + "a_positive": "2613701/50000000000", + "alpha_below_one": "2380952380951190538421452380827919/2381076842904761655838000000000000", + "alpha_below_one_fourth": "595144748772619296542952380827919/2381076842904761655838000000000000", + "alpha_positive": "124461953571117416547619172081/2381076842904761655838000000000000", + "artificial_boundary": "66670649449155944602080357142483757/9524307371619046623352000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "24998693149493752613701/25000000000000000000000", + "c_positive": "1306850506247386299/25000000000000000000000", + "cell_above_band": "2380952380948809461578547619172081/4762153685809523311676000000000000", + "compact_leaf": "396024500002613701/25000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "62230977380827919/1190538421452380827919", + "epsilon_positive": "1190476190475000000000/1190538421452380827919", + "g1_above_kappa": "127529156425965176671/14881730268154760348987500000000", + "g2_above_kappa": "137/50000000000", + "g3_above_kappa": "9011794092624833305761/1190538421452380827919000000000000", + "g4_above_kappa": "137/50000000000", + "g5_above_kappa": "15133193601071161785969/1904861474323809324670400000000000", + "g6_above_kappa": "80428121691165332241521/9524307371619046623352000000000000", + "g7_above_kappa": "14880174493847768807438465176671/14881730268154760348987500000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "62230977380827919/1190538421452380827919", + "lambda_above_internal": "2613701/50000000000000000000000", + "lambda_above_sigma": "971299000002613701/50000000000000000000000", + "lambda_above_tau": "2613701/50000000000000000000000", + "lambda_prime_above_lambda": "2613701/50000000000000000000000", + "lambda_prime_below_one": "1306850499997386299/25000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "99569562618786248947619172081/1904861474323809324670400000000000", + "phase_leaf_above_bit": "792049/50000000000", + "phase_local": "497847817856084930547619172081/9524307371619046623352000000000000", + "prime_interval_packing": "62230977380827919/1190538421452380827919", + "q_below_internal": "2613701/25000000000000000000000", + "q_below_leaf": "396024500002613701/25000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "1306850499997386299/25000000000000000000000", + "record_suffix": "62230977380827919/1190538421452380827919", + "row_product_gap": "7007/25", + "short_record_fallback": "59520697812287311490777687281781/59526921072619041395950000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 132466108, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 843, + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "62230977380827919/1190538421452380827919", + "g2": "2613701/50000000000", + "g3": "62230976190289497547619172081/1190538421452380827919000000000000", + "g4": "2613701/50000000000", + "g5": "99569562618786248947619172081/1904861474323809324670400000000000", + "g6": "497847817856084930547619172081/9524307371619046623352000000000000", + "g7": "1190476190475000000000/1190538421452380827919" + }, + "minimum_margin": "62230976190289497547619172081/1190538421452380827919000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "2613701/50000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "124461953571117416547619172081/2381076842904761655838000000000000", + "beta": "1/20", + "c": "1306850506247386299/25000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "1190476190475000000000/1190538421452380827919", + "h": "1/1000000000000", + "kappa": "653391/12500000000", + "lambda_": "49997386299000002613701/50000000000000000000000", + "lambda_prime": "24998693149500002613701/25000000000000000000000", + "q": "1306850499997386299/25000000000000000000000", + "sigma": "9999283/10000000", + "tau": "49997386299/50000000000" + }, + "recurrence": { + "internal": "49997386299/50000000000", + "leaf": "199986377/200000000", + "reservations": "24998693149493752613701/25000000000000000000000" + }, + "scoped_limit": "2613701/50002613701" + }, + "bit_saving": "2613701/50000000000", + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 5855922577, + "compact": 23423690305, + "geometry": 3999930306163, + "guard": 4247074, + "log_p": 25, + "normalization": 14000000000000, + "period": 46847380609, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 731796560, + "rhs": 112000000153112, + "rhs_bits": 47 + }, + "compact": { + "exponent": 731796560, + "rhs": 448000000612384, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 731796560, + "rhs": 224000000306152, + "rhs_bits": 48 + }, + "rows": { + "exponent": 731796560, + "rhs": 112000000153112000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1463593121, + "rhs": 224000000153112, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1463593121, + "rhs": 896000000612384, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1463593121, + "rhs": 448000000306152, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1463593121, + "rhs": 224000000153112000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2927186242, + "rhs": 448000000153112, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2927186242, + "rhs": 1792000000612384, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2927186242, + "rhs": 896000000306152, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2927186242, + "rhs": 448000000153112000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5854372484, + "rhs": 896000000153112, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5854372484, + "rhs": 3584000000612384, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5854372484, + "rhs": 1792000000306152, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5854372484, + "rhs": 896000000153112000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11708744968, + "rhs": 1792000000153112, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11708744968, + "rhs": 7168000000612384, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11708744968, + "rhs": 3584000000306152, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11708744968, + "rhs": 1792000000153112000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 23417489937, + "rhs": 3584000000153112, + "rhs_bits": 52 + }, + "compact": { + "exponent": 23417489937, + "rhs": 14336000000612384, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 23417489937, + "rhs": 7168000000306152, + "rhs_bits": 53 + }, + "rows": { + "exponent": 23417489937, + "rhs": 3584000000153112000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "653391/12500000000", + "next_kappa": "5227129/100000000000", + "next_kappa_rejection": "{'g1_above_kappa': '-170305170044659414551/119053842145238082791900000000000', 'g3_above_kappa': '-2893590121898974973429/1190538421452380827919000000000000', 'g5_above_kappa': '-783084228433386292147/380972294864761864934080000000000', 'g6_above_kappa': '-14814952025025133991999/9524307371619046623352000000000000'}" + }, + "comparison": { + "absolute_gain_pr79": "262831809267/500000000000000000", + "full_pr79_child_list_excluded_at_new_bit_saving": true, + "pr74_commit": "3f78d8967c009153f2df5c6a6577b6ab1d37e2ca", + "pr74_complete_profile_exclusion_lower": "33465512822326269546700342758348378533770522245477/33465506000000000000000000000000000000000000000000", + "pr79_commit": "9a58e62cf9e8954a4dde3c9b1372d733c276a6d1", + "pr79_complete_profile_exclusion_lower": "33531524158617416199941962723761455227922778190067/33531516000000000000000000000000000000000000000000", + "pr79_kappa": "25872812736433/500000000000000000", + "ratio_pr79": "26135644545700/25872812736433", + "ratio_reported_pr74": "10454257818280/10366199626713", + "reported_pr74_kappa": "10366199626713/200000000000000000" + }, + "dependencies": { + "data_profile": "Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries", + "geometry": "Unchanged fixed-I+J original-envelope projector and CRT formulas", + "producer": "PR62/63 interval pair assembly, selected indexed-cycle partition and point permutation, PR74 node order, natural execution, PR67 profile-cost reclamation, PR68 pending live controls and selected next-use scoring, PR69 balanced coarse sums, future unit completion and bounded PR70-derived single exchanges and two-cycles, exact frame indices, late-output routing and PR74/78-inspired coordinate relabeling; complete literal words", + "proof_scope": "Ordered affine residual compiler, all-size recursion, finite scalar overhead, routing, prime selection, exact recovery and fixed-tape/analytic transfer remain inherited. Arithmetic cutoffs are not full operational thresholds." + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 5855922577, + "compact": 23423690305, + "geometry": 3999930306161, + "guard": 4247074, + "log_p": 25, + "normalization": 14000000000000, + "period": 46847380609, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 731796560, + "rhs": 112000000153112, + "rhs_bits": 47 + }, + "compact": { + "exponent": 731796560, + "rhs": 448000000612384, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 731796560, + "rhs": 224000000306152, + "rhs_bits": 48 + }, + "rows": { + "exponent": 731796560, + "rhs": 112000000153112000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1463593121, + "rhs": 224000000153112, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1463593121, + "rhs": 896000000612384, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1463593121, + "rhs": 448000000306152, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1463593121, + "rhs": 224000000153112000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2927186242, + "rhs": 448000000153112, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2927186242, + "rhs": 1792000000612384, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2927186242, + "rhs": 896000000306152, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2927186242, + "rhs": 448000000153112000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5854372484, + "rhs": 896000000153112, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5854372484, + "rhs": 3584000000612384, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5854372484, + "rhs": 1792000000306152, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5854372484, + "rhs": 896000000153112000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11708744968, + "rhs": 1792000000153112, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11708744968, + "rhs": 7168000000612384, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11708744968, + "rhs": 3584000000306152, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11708744968, + "rhs": 1792000000153112000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 23417489937, + "rhs": 3584000000153112, + "rhs_bits": 52 + }, + "compact": { + "exponent": 23417489937, + "rhs": 14336000000612384, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 23417489937, + "rhs": 7168000000306152, + "rhs_bits": 53 + }, + "rows": { + "exponent": 23417489937, + "rhs": 3584000000153112000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "exactness": [ + { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + } + ], + "finite_bridge": { + "bit": { + "W": 132466108, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 843, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "grid_denominator": 1000000000000000000, + "independent_enclosures": { + "accepted_lower": "165582634999999999944727423811830377590252752857/165582635000000000000000000000000000000000000000", + "accepted_upper": "7199244999999999997596844513557842503925472547/7199245000000000000000000000000000000000000000", + "rejected_lower": "33116527000000000004308405527912848792467407824659/33116527000000000000000000000000000000000000000000", + "rejected_upper": "33116527000000000004308405527912848792474030969459/33116527000000000000000000000000000000000000000000" + }, + "kappa": "261356445457/5000000000000000", + "next_kappa": "52271289091401/1000000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-230074647255487688555855343/300496476568966930123785143000000000000000000'}", + "source_manifest_sha256": "c5b314b4acff73f8fcd31802db2609f848ef6fcc2b63740fd985c353d994a612", + "sources": { + "indexed_r5": { + "experiment": "envelope-r5", + "files": { + "EXPERIMENT.txt": "7547e7255fc629a6887398c6b68d5432fdf8f6c8325db1b73e0616a02ee54eaa", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "batch.py": "a11cbe7d7e6476ea20debe4ede5d1a2faa837ce0fa08466719d157c4a729b945", + "build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/compiler.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35" + } + }, + "inherited": { + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" + }, + "pr65": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "49e84f939d15b618b50714eb039cabf97c74256a", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Authenticated PR65 finite source closure and complete published baseline physical words, profiles and arithmetic. Original upstream sources and notices are preserved byte-for-byte. Actual inherited dependencies are additionally checked through the shared PR48 manifest.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr67": { + "author": "Rohan Arun with OpenAI assistance", + "commit": "b3745601e947a94316bf25c2c6263d93c06e3364", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77" + }, + "repo": "rohanarun/integer-mult-bounds", + "scope": "Preserved immutable source and reported complete baseline profile/arithmetic for all-rank profile-cost reclamation. This package verifies its own composed words, actual paid profile and exact improvement.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr68": { + "author": "Dominik Scholz with OpenAI assistance", + "commit": "734c58e225e9d2254570c3b50296ed96943f62ea", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22" + }, + "repo": "DominikScholz/integer-mult-bounds", + "scope": "Preserved original pending live-carrier compiler, selected driver, proof and source provenance. This package composes the pending lifecycle and both containment checks with PR67 profile-cost selection and its own next-use scoring.", + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3" + }, + "pr69": { + "commit": "91aa1f17e6e3fc063241686a41a34ddd0dc24c50", + "files": { + "FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902" + }, + "pull_request": 69, + "repository": "eumemic/integer-mult-bounds", + "scope": "Unmodified contributor source and notices; finite components adapted with attribution, no external proof claim assumed." + }, + "pr70": { + "commit": "98147912b80a2656da0416487be53f1f5e8dfdcc", + "files": { + "FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97" + }, + "pull_request": 70, + "repository": "alejandrozu/integer-mult-bounds", + "scope": "Unmodified contributor source and notices; finite components adapted with attribution, no external proof claim assumed." + }, + "pr71": { + "commit": "1bef94fd40a746452548c84a4a8f8834670a3113", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1" + }, + "pull_request": 71, + "repository": "CrocSwap/integer-mult-bounds", + "scope": "Immutable published source and finite physical/arithmetic baseline. No external claimed bound is imported as a proof." + }, + "pr74": { + "commit": "3f78d8967c009153f2df5c6a6577b6ab1d37e2ca", + "files": { + "FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4" + }, + "pr": 74, + "scope": "Exact attributed contributor inputs and reported comparison certificate, not a new audit of the entire foreign claim." + }, + "pr78": { + "commit": "1c1f1e4ee87a6895eaea622e1a33dcd4b0aa62cf", + "files": { + "FETCH.json": "79d6b40af23f03d6737be9a072ebca4f96aa6a663895cffdee4052432b5d13b8", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "0a0e0314b9d1e23a193e92aa633fc50c432b6e3ea326f40d5cbb1ea538823149", + "research/coordinate-flags/README.md": "cbc4f20613e1dfafcce7c5f82c274fdd48898cc968d14fbea7bf9b1a47607e85", + "research/coordinate-flags/SOURCE.json": "c0ec88783c06431d95e1e8efabbb2928857f1d4ca8d0ada10206e99322ae78e2", + "research/coordinate-flags/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "research/coordinate-flags/order-25.json": "209dee5fac04fa91a5bf63ed0307a56e849cc6800fa543254590045e0c95d6a5", + "research/coordinate-flags/verify.py": "b59a5345c8684bb67a5ea666d5de11422c45cdf19f2c13de1520623a71bae7e1" + }, + "pr": 78, + "scope": "Exact attributed contributor inputs and reported comparison certificate, not a new audit of the entire foreign claim." + }, + "pr79": { + "commit": "9a58e62cf9e8954a4dde3c9b1372d733c276a6d1", + "files": { + ".gitattributes": "5f257f4e9e574ad5767f902242f519dad19cc455d6858f49234d0ccc345cabf1", + ".github/workflows/verify.yml": "1a9cccd742ba2a5aa5a5ac38c1b7559bc0dec46b23d3ce3ff3e26c3137e6c3a2", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "1bf5b63d413280a68fc2b91a7e83a6172632e50c8177ca097d9622af669ee8d6", + "NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "README.md": "6ae40d1b2e5f4d8e23bcc3a1cb0f7246ecae489184384cca0ec60fd3080d6306", + "certificates/balanced-split-compiler.json": "41ec941f124456b65ccb558a921c0f3a1c624948fc91cec59c61689184f41f38", + "certificates/balanced-split-kappa.json": "0c9ddf817a7198d597b65cd178873a36910188cfe9bdd2b22a3477ee84df5e88", + "certificates/balanced-split-profiles-23.json": "9da8b8d868aeb0b7bd5441aac12fcf5db045d4708a507cde3fe4087e2f75060f", + "certificates/balanced-split-profiles-25.json": "c954ec6749c867d0699e1c66257ac04c78799fe9501acc406f917787b2a9d93a", + "certificates/balanced-split-repository-validation.json": "1e6a0f55ca73e1b304e9f396dedad5d4f9ee920bfb009c2154913d8589fa111c", + "certificates/balanced-split-transitions-23.json": "5c8b4221d59c103df8966c6aa4572ac09e2c3be2f0b6ae0775c22950bb40c029", + "certificates/balanced-split-transitions-25.json": "22f6e4add77e8fa4c4bb1d61b34bab48631b752e9b0ccb62913cc59cccc70ddb", + "certificates/balanced-split-validation.json": "97aaf596b02b2d5cf22ea292bf2d4c20f76f91a9231fa21fb496b3c6bffe060c", + "certificates/balanced-split-word-23.json.gz": "c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab", + "certificates/balanced-split-word-25.json.gz": "210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "research/balanced-split/PROOF.md": "2c04e3479d4b1ba3ce745a89c68d5757d854661bfd6f1b3f7e37287ae02fafa3", + "research/balanced-split/README.md": "c6a4505901658dfa9445024c5a1a76001b93ca81082debf370a6173832e2484d", + "research/balanced-split/SOURCE.json": "68a96f879c1501b62da0366ea1003ccf4d4468a2240a70cf020cc9fff9d38471", + "research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "research/balanced-split/engine-relocation-23.patch": "f6df06b5bcedf246f62243b1b6a590e6888c6e20ae5b8781eb10434a4358b139", + "research/balanced-split/engine-relocation-25.patch": "001c9ee58555d7790ff05f488293f197f443723020820fd6d401bb088841a868", + "research/balanced-split/parameters.json": "d1c35d01616ba26caa39af785e8625a344304dbf60c4e358139000e9e7a79f09", + "scripts/experiments/audit_balanced_split_completion.py": "3ec5d8a56ab5638f08da7583b923969b9470ba201a4bd1b69c4d814bd60b2621", + "scripts/experiments/audit_balanced_split_exchange.py": "7c0b6942d51bf2a9227135af3d0dd680ddec2603e2fc800d84bb3c5ed62a884e", + "scripts/experiments/balanced_split_compiler.py": "5660a168c82e661042070219f0a71aa6145437a4ee8a21d4bfc6330c5715dc19", + "scripts/experiments/balanced_split_compose.py": "0a00ba79cefb535eb5295aa7e9819805f4f606a53af5b7d658937836ad30ad3c", + "scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_balanced_split_sources.py": "1ad34c438f3900379b0c3679d1bc9307a520896153247b3949c0a625036545f1", + "scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "scripts/experiments/verify_balanced_split.py": "954795a732a39e716e6a35e0aaba7f9c95a5bc8d7fb91abfff7c4d7346c60dc5", + "tests/test_balanced_split.py": "9664bd572123cd525f1d2b0e60f928d000fd3093d4d1f322cf946791b5b4969e", + "tests/test_balanced_split_pending.py": "29139af10f899ae1738183b22439a888d89d1941f75573e5013fbfb579934524" + }, + "pr": 79, + "scope": "Complete immutable published construction source/finite-input closure and arithmetic certificate; inherited all-size claims remain conditional." + }, + "split_operation": { + "author": "Rohan Garg / rohangar1 with OpenAI Codex assistance", + "commit": "641f22e52913db784f3b6ff1176b0c2945aae45b", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905" + }, + "repo": "CrocSwap/integer-mult-bounds", + "scope": "Preserved original split-pair operation and attribution. These files document the adapted grouping operation; they are not imported by this producer. Actual imported source closure is PR65 plus shared PR48." + } + }, + "status": "Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed" +} diff --git a/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-23.json b/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-23.json new file mode 100644 index 0000000000..51adafc2f2 --- /dev/null +++ b/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-23.json @@ -0,0 +1 @@ +{"h":23,"v":1771,"R":26834,"loss":506,"rank_sum":617688,"field_prime":2305843009213693951,"frames":65728,"distinct_matrices":38555,"crt_matrices":5567,"crt_disagreements":0,"blocks":[0,360947,18308,10287,5376,3976,3779,2686,2296,1754,1371,1322,902,790,495,433,233,96,102,0,90,23,0,0]} diff --git a/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-25.json b/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-25.json new file mode 100644 index 0000000000..1b7e20ff3a --- /dev/null +++ b/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-25.json @@ -0,0 +1 @@ +{"h":25,"v":2300,"R":35348,"loss":600,"rank_sum":884300,"field_prime":2305843009213693951,"frames":86507,"distinct_matrices":48221,"crt_matrices":7465,"crt_disagreements":0,"blocks":[0,492700,23012,12086,6121,4924,5649,4980,3550,2660,2408,2123,1685,1370,958,775,544,438,260,97,130,0,126,25,0,0]} diff --git a/references/frame-compiler/pr84/research/indexed-cycle/PROOF.md b/references/frame-compiler/pr84/research/indexed-cycle/PROOF.md new file mode 100644 index 0000000000..61621dd74e --- /dev/null +++ b/references/frame-compiler/pr84/research/indexed-cycle/PROOF.md @@ -0,0 +1,63 @@ +# Finite indexed-cycle certificate and inherited scope + +## 1. Frozen construction and general weighted recursion + +At level d, start with the inherited ordered groups of size one or two. The chosen vector requests first/middle pair splits: h23 `[4,1,1]`, h25 `[1,4,1]`, where 1 requests the first group and 4 requests first then middle. Requested indices are deduplicated, valid, and must contain two points. Before admitting the kth split require `number_of_groups + admitted_splits + 1 < number_of_points`. Apply admitted splits in decreasing index order so earlier indices keep their meaning. Each split replaces one pair by its two ordered singletons; the point partition and ordering are unchanged. + +The admission guard proves that the final number of groups is strictly less than the number of points, even for multiple requested splits and overlapping first/middle indices. Splits are disabled for n≤3; n=3 has two coarse groups and n≤2 uses the direct base case. Thus every recursive call strictly contracts, for every input size allowed by the grouping interface. + +Coarse vertex weights contain the original vertex weights in that group and its internal edges. Each coarse edge contains exactly the Cartesian-product edges between its two groups. These sets partition the original weighted total. Recursive total and single/pair exclusions therefore have the required support by induction on size. Row and column coarse parenthesizations partition the same Cartesian product into disjoint sets, so changing between them preserves every identity. The half-plane rule uses fixed indices only. The generic singleton/pair assembly and interval-strip identities are inherited; tests independently check weighted exclusions at each recursive call. + +At common coordinate c, choose the smallest intact fixed global pair disjoint from c and move it to the front of the inherited alternating order, preserving all other relative positions. This is a permutation of precisely the other coordinates and preserves scalar exclusions. Dense graph verification checks the full triple-input map and all disjoint additions in both selected dimensions. + +## 2. PR74 node order, synthesis, and completion + +Group active computed nodes by exact `(core,cover)` frame and sort groups by `(rank,-core,cover,min_node)`, where rank is cover size minus core size. Keep input IDs fixed and retain original node order inside each group. Remap every dependency, active ID, output ID and provenance entry, and clear support caches. This is a bijective graph renaming; the preserved within-frame order and rank order retain scalar dependencies. The graph verifier recomputes the dense supports, and the compiler recomputes fixed linear signals before accepting the natural region order `(rank,min_node)`. Candidate carriers target strictly later regions with containing frames. No PR65 schedule wrapper is applied. + +The output rows and selected carriers form an independent prefix. Scan every standard input unit vector in future-use priority order and retain it only if independent. Every rejected unit is already in the current span and remains there; after the scan every standard unit is in the span. The final rows therefore form a full basis and keep the chosen prefix. Gaussian elimination and its reversed literal XOR synthesis implement an invertible transformation on arbitrary inputs and dirty roles. Future-use priority depends only on fixed graph incidence, symbolic signal supports and indices. It never examines runtime input data. + +Retired roles are reclaimed only by a valid literal clearing expression in an eligible signal span. Pending live controls have current frame F and assigned future frame G. They may clear a retired role in frame E only when F⊆E⊆G. A control's value does not change; its literal frame raise is charged, and the future inclusion remains valid. Candidate comparison makes no physical mutation until a chosen expression is emitted. Exact integer profile scores only order legal candidates; they do not certify the final recurrence. + +## 3. Exact retired and pending indexes + +For frames `(core,cover)`, containment F⊆E means `core(E)⊆core(F)` and `cover(F)⊆cover(E)`. The retired index intersects active-role core bitmaps for each coordinate in core(E), and removes roles whose cover includes any coordinate outside cover(E). This selects exactly the eligible roles. Rank bitmaps partition that set; descending rank and ascending set-bit order exactly reproduce the original `(-rank,slot)` enumeration. + +The pending index first enforces F⊆E using the same lower-frame index. It then removes target cores containing coordinates outside core(E) and intersects target-cover bitmaps for coordinates in cover(E). The result is precisely F⊆E⊆G. Each insertion receives a serial; removal deletes it; frame moves keep it. Sorting eligible roles by serial reproduces pending dictionary insertion order, including removal/reinsertion of reused slots. + +Insertion, reclamation and incoming-use removal update both representations. Every frame raise updates a retired role's old/new rank/frame index, or a pending control's lower frame without changing serial order. Retired and pending lifecycles remain disjoint. Actual-source exhaustive and randomized audits compare ordered queries with the direct predicates and exercise actual frame-raise functions, not copies of those functions. These indexes preserve compiler semantics; no measured speedup is claimed. + +## 4. Carry exchanges, two-cycles, and output routing + +Candidate edges remain subject to inherited temporal/frame eligibility. A single exchange removes the selected owner of an occupied future use, or drops a carrier from the receiving region for an unoccupied future use. The full output/carrier basis of the receiving region is checked after the removal. A distinct donor region only loses a row, preserving independence. Thus cardinality, linear independence and unique future-use ownership remain valid. Each accepted exchange decreases a fixed integer score; at most three deterministic passes execute. + +A two-cycle swaps carriers between distinct regions and distinct already-owned future uses. For new edge e and its complementary edge other, `carry_can(e,z)` checks the receiving region after removing z and `carry_can(other,f)` checks the other region after removing f. Because the regions differ, these tests describe exactly the final two bases. Remove both old edges before inserting either new edge; the two freed future uses are distinct, so unique ownership and global cardinality are preserved. Both regions lose and gain one carrier. The `(region,use)` lookup is checked for uniqueness. Accept only a strictly positive decrease of the sum of the two fixed integer scores; execute at most three passes. The source audit instruments every accepted exchange in 1,204 cases, including adverse linear dependence, equal-price, missing-complement and duplicate-key cases. This is a bounded legal heuristic, not an optimality proof. + +For h25, outgoing non-carrier uses are visited by descending fixed future-region deadline, with original use ID as tie-breaker. Terminal uses keep the explicit terminal deadline. This permutes a fixed list of uses; each is still assigned exactly once to a physical role. It may affect later reclamation choices, but changes no scalar target or candidate legality. h23 retains baseline output order. Both final physical words are independently regenerated and checked, including every charged allocation, XOR, raise and copy. + +## 5. Coordinate bijection and physical evidence + +For a permutation π of h coordinates, map every triple input to its sorted π-image, every frame's core/cover bitmask by π, each source's triple index, scatter input row, output common coordinate and output triple. Physical role IDs, operation order, operation frame IDs and transition event IDs are unchanged. Coordinate permutation is a bijection on triples, preserves set inclusion, and conjugates the scalar linear map. The scatter mapping changes only designated data-bank target rows and leaves auxiliary control rows fixed. Therefore arbitrary-dirty reversibility and the scalar target identities transport to the new word. + +The fixed I+J geometry is preserved by coordinate permutations, but the ordered fixed-coordinate child profile need not be invariant. Consequently profiles are freshly computed from the relabeled word's actual transitions; parent profiles are not reused. Full-basis replay checks both orientations on every ordinary and dirty column. The transition checker reconstructs every raise from literal XORs, splits side growth into paid singletons and requires exact equality with the event list. The original bounded-minor/CRT profiler verifies sufficient modulus product and agreement. Missing XORs, frames, centers, transitions, aliased terminals and understated width fail adverse tests. + +## 6. Complete recursive multiset and exact inequalities + +Let a=23, b=25, m=575, and N=binom(23,3)binom(25,3)=4,073,300. With R23=26,834 and R25=35,348, + + W = 2N + (N/binom(23,3))R23 + (N/binom(25,3))R25 = 132,466,108. + +Include all 18N rank-one data children and 2N at each data rank 21,17,481; N endpoint-copy singletons; every axis profile block replicated N/binom(h,3) times; (N/binom(h,3))Rh exterior children at each rank h and m−2h; and 2N growth children at each rank 1 and h−2. Each axis has rank sum hRh+h(h−1). Thus total rank is 76,166,165,200, deficit from mW is 1,846,900, and every child lies between 1 and 5291. The exponential tail bound is `(v^9/9!)/(1-v/10)` for upper argument v<1. An independent atanh log expansion at base 3/2 with 60 terms and a degree-12 exponential bound confirms both signs. Complete pinned PR79 and reported PR74 child lists separately have lower moment greater than one at s. These are complete-profile historical comparisons; the foreign PR74 claim is an accepted working input, not an independent audit of its entire construction. + +The reconstructed bridge has bit wire bits 27, row coefficient 843, row degree 2000, gap `2000-(51/25)*843=7007/25`, and suffix slope 8000. Tests reject stale values. The complex saving stays 717/10^7 and the backoff stays 10^-12. All 47 strict assembly constraints and seven margins hold for κ=261356445457/5000000000000000. The next 10^-18 κ point violates a controlling strict margin; coarser-grid reassembly and original-prefix/old-guard/old-exposure negative controls also execute. Eventual arithmetic cutoffs are recomputed by the unchanged inherited routine. + +## 7. Provenance and proof boundary + +This proves the stated finite scalar, arbitrary-dirty physical, actual-frame/profile, complete-child and exact-inequality claims. The ordered affine residual compiler, all-size construction and recursion, finite scalar alphabet/overhead, routing, prime selection, exact recovery, fixed-tape simulation and analytic transfer remain inherited assumptions. Arithmetic cutoffs cover the recorded inequalities and do not establish every operational threshold. Existing Lean packages remain inherited checks, not a formalization of the complete multiplication theorem. + +The engine is byte-identical to the preserved R5 compiler; the graph wrapper implements its selected split/coarse branch; PR74 order/relabel functions are byte-identical extracts. PR79's complete published construction archive and PR74/78 original input archives are immutable. The full source closure binds the selected configs, wrapper, engine, tests, proof, words, transition profiles and integration files. Derived arithmetic and validation receipts are excluded to avoid circular pins. + +Source credits: @eumemic [#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57) and [#69](https://github.com/CrocSwap/integer-mult-bounds/pull/69), reversible compilation and balanced coarse sums; @rohangar1 [#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59), split recursion; @ikeboy [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62), interval strips and core-aware assembly; @DominikScholz [#63](https://github.com/CrocSwap/integer-mult-bounds/pull/63) and [#68](https://github.com/CrocSwap/integer-mult-bounds/pull/68), ranked composition and pending live controls; @rohanarun [#65](https://github.com/CrocSwap/integer-mult-bounds/pull/65), [#67](https://github.com/CrocSwap/integer-mult-bounds/pull/67) and [#78](https://github.com/CrocSwap/integer-mult-bounds/pull/78), exact refined assembly, profile-cost reclamation and coordinate-flag search; @alejandrozu [#70](https://github.com/CrocSwap/integer-mult-bounds/pull/70), carry exchanges; Thomas DiFiore (@tomdif) [#74](https://github.com/CrocSwap/integer-mult-bounds/pull/74), exact node order, coordinate relabeling and the selected h25 permutation; @chafreaky [#60](https://github.com/CrocSwap/integer-mult-bounds/pull/60), [#71](https://github.com/CrocSwap/integer-mult-bounds/pull/71), [#79](https://github.com/CrocSwap/integer-mult-bounds/pull/79) and this composition, ranked reclamation, anchored splits, future completion, integer scoring, exact indexes, two-cycles, output routing, search and certification. + +Chafik Boukhalfa prepared this package with OpenAI Codex assistance. Original contributor, OpenAI/manuscript, Apache-2.0, and AI-assistance notices remain attached. In particular Avi Eisenberg's Claude assistance and the original contributors' OpenAI disclosures are retained verbatim in the archives. PR78 inspires the coordinate search; its published selected permutations are not claimed as the selected permutations here. diff --git a/references/frame-compiler/pr84/research/indexed-cycle/README.md b/references/frame-compiler/pr84/research/indexed-cycle/README.md new file mode 100644 index 0000000000..c6c59c54b6 --- /dev/null +++ b/references/frame-compiler/pr84/research/indexed-cycle/README.md @@ -0,0 +1,32 @@ +# Indexed two-cycles with balanced multi-splits and coordinate flags + +The frozen finite conditional witness has **κ = 261356445457/5000000000000000 = 5.22712890914e-5**, with bit saving **408390793141/7812500000000000**. This is about **0.8494742%** above the reported PR74 value at `3f78d8967c009153f2df5c6a6577b6ab1d37e2ca`, observed 2026-10-08. This is a historical pinned comparison, not a claim about the current community frontier. The complete pinned PR74 and PR79 recursive profiles are strictly excluded at the new accepted bit saving. + +| Quantity | This witness | +|---|---:| +| h23 auxiliary roles | 26,834 | +| h25 auxiliary roles | 35,348 | +| Physical width W | 132,466,108 | +| Total recursive rank | 76,166,165,200 | +| Rank deficit | 1,846,900 | +| Largest child / parent dimension | 529 / 575 | +| Bit wire bits / row coefficient | 27 / 843 | + +Additional reported comparisons observed on 2026-10-08: PR81 at `acae4964aef41c69f3c57e72a45e76afc4d4934d` reports κ=5.1915547765237e-5; PR82 at `3410b940aa26e5876202152dfa7c4f66451ee22c` reports κ=5.203279888519e-5. This frozen witness is about 0.4583459% above the reported PR82 value. These are metadata comparisons only; their foreign producers were not replayed. Exact rational ratios and authors are recorded in `reported-comparisons.json`. + +Both axes use balanced coarse columns when `i+j>i&1) + if j!=i: + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];ops.append((a,z)) + for j in range(n): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];ops.append((j,i)) + check(rr==[1<0 and current==previous-gain,'Fixed integer price does not strictly improve') + previous=current;observed.append([e,other,f,z]) + invariant() + env=dict(blocks=blocks,edges=edges,chosen=chosen,right=right,prices=prices,priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])),basis=basis,independent=independent,stats=Counter(),sys=types.SimpleNamespace(stderr=io.StringIO()),audit_cycle=audit_cycle) + exec(code,env);invariant();check(env['stats']['carry_two_cycles']==len(observed),'Cycle count differs') + if expected is not None:check(len(observed)==expected,'Targeted cycle outcome differs') + cycles+=len(observed);cases+=1 + return observed + +# Each group is full (one outbasis row + one carrier). Neither cross-group +# single addition is independent, but simultaneous replacement is legal. +blocks=[{'outbasis':[3]},{'outbasis':[3]}] +edges=[(1,0,0),(0,1,0),(0,0,1),(1,1,1)] +run(blocks,edges,{0,1},[10,10,9,9],1) +run(blocks,edges,{0,1},[10,10,10,10],0) +# With the receiving group's unit vector already in its output span, reject. +run([{'outbasis':[2]},{'outbasis':[3]}],edges,{0,1},[10,10,9,9],0) +# Missing the complementary future-use edge also rejects. +run(blocks,edges[:3],{0,1},[10,10,9],0) +# Duplicate group/use lookup keys are explicitly rejected before iteration. +try:run(blocks,edges+[(0,0,0)],{0,1},[10,10,9,9,1]) +except AssertionError:duplicate_rejected=True +else:raise ValueError('Ambiguous group/use candidate key accepted') +rng=Random(231025) +for trial in range(1200): + ng=rng.randrange(2,6);nuses=rng.randrange(2,14);blocks=[];edges=[] + for g in range(ng): + width=rng.randrange(2,6);rows=[] + for _ in range(rng.randrange(width)*2): + v=rng.randrange(1,1<150 or choice<.34): + s=rng.choice(list(records));f,g=records.pop(s);idx.remove(s,f,g) + elif records and choice<.66: + s=rng.choice(list(records));f,g=records[s];new=between(f,g);check(contains(f,new) and contains(new,g),'Invalid random promotion') + before_order=dict(idx.order);idx.move(s,f,new);records[s]=(new,g);check(idx.order==before_order,'Frame move changes insertion order') + else: + s=rng.randrange(1200) + if s in records:continue + f=envelope();g=extend(f);idx.insert(s,f,g);records[s]=(f,g) + mutations+=1 + if iteration%4==0: + for target in (envelope(),(1,mask)): + check(idx.eligible(target)==query(records,target),'Random ordered pending query differs');queries+=1 + if iteration%100==0: + check(idx.lower.all==sum(1<>k&1),'Target core bitmap stale') + check(idx.cover[k]==sum(1<>k&1),'Target cover bitmap stale') +idx=Pending(4);idx.insert(1,(1,3),(1,5)) +check(idx.lower.eligible_mask((1,7))==2 and idx.eligible((1,7))==[],'Fixture does not reject missing future containment') +# Audit the actual integrated raise_ function on passive live controls. +compile_node=next(n for n in tree.body if isinstance(n,ast.FunctionDef) and n.name=='compile_');raise_node=next(n for n in compile_node.body if isinstance(n,ast.FunctionDef) and n.name=='raise_') +blocks=[dict(frame=(3,3),rank=1),dict(frame=(1,7),rank=2),dict(frame=(1,15),rank=3)] +idx=Pending(4);idx.insert(0,blocks[0]['frame'],blocks[2]['frame']);idx.insert(1,blocks[0]['frame'],blocks[2]['frame']) +env=dict(frames=[0,0],blocks=blocks,contains=contains,retired=set(),retired_index=Retired(4),pending={0:2,1:2},pending_index=idx,hist=Counter(),events=[]) +exec(compile(ast.Module(body=[raise_node],type_ignores=[]),str(NEW),'exec'),env);env['raise_'](0,1) +check(idx.eligible(blocks[0]['frame'])==[1] and idx.eligible(blocks[1]['frame'])==[0,1],'Actual raise changes pending selection incorrectly') +check(idx.order=={0:0,1:1},'Actual raise changes pending order') +receipt=dict(status='PASS actual ordered two-envelope pending index and frame lifecycle',source_sha256=sha256(SOURCE.read_bytes()).hexdigest(),mutations=mutations,ordered_queries=queries,actual_raise_fixture=True,future_containment_negative_fixture=True) +(ROOT/'certificates/indexed-cycle-pending-index-validation.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n');print(json.dumps(receipt)) diff --git a/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_retired.py b/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_retired.py new file mode 100644 index 0000000000..10fc7fe4b2 --- /dev/null +++ b/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_retired.py @@ -0,0 +1,67 @@ +"""Focused actual-source audit. Chafik Boukhalfa with OpenAI Codex assistance; Apache-2.0.""" +from pathlib import Path +from hashlib import sha256 +from datetime import datetime,timezone +from random import Random +from collections import Counter +from copy import deepcopy +import ast,gzip,json,io,types,sys +if sys.flags.optimize:raise ValueError('Assertions must remain enabled') +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1] +SOURCE=HERE/'indexed_cycle_engine.py';NEW=SOURCE +source=SOURCE.read_text();tree=ast.parse(source) +def check(ok,why): + if not ok:raise ValueError(why) +klass=next(n for n in tree.body if isinstance(n,ast.ClassDef) and n.name=='RetiredIndex') +space={};exec(compile(ast.Module(body=[n for n in tree.body if isinstance(n,ast.ClassDef)],type_ignores=[]),str(SOURCE),'exec'),space);Index=space['RetiredIndex'] +contains=lambda f,g:not(g[0]&~f[0]) and not(f[1]&~g[1]) +def valid_frames(h): + return [(c,d) for d in range(1,1<150 or rng.random()<0.48): + s=rng.choice(list(records));f,r=records.pop(s);idx.remove(s,f,r) + else: + s=rng.randrange(1200) + if s in records:continue + f=frame();r=rng.randrange(h+1);idx.insert(s,f,r);records[s]=(f,r) + mutations+=1 + if iteration%4==0: + for target in (frame(),(1,full)): + check(list(idx.eligible(target))==order(records,target),'Random exact frame/order query differs');queries+=1 + if iteration%100==0: + check(idx.all==sum(1<>k&1),'Core bitmap stale') + check(idx.cover[k]==sum(1<>k&1),'Cover bitmap stale') +# The actual integrated raise function keeps already-retired controls indexed at their new frame. +compile_node=next(n for n in tree.body if isinstance(n,ast.FunctionDef) and n.name=='compile_') +raise_node=next(n for n in compile_node.body if isinstance(n,ast.FunctionDef) and n.name=='raise_') +blocks=[dict(frame=(3,3),rank=1),dict(frame=(1,7),rank=2),dict(frame=(1,15),rank=3)] +idx=Index(4);idx.insert(0,blocks[0]['frame'],1) +env=dict(frames=[0,0],blocks=blocks,contains=contains,retired={0},retired_index=idx,pending={},pending_index=space['PendingIndex'](4),hist=Counter(),events=[]) +exec(compile(ast.Module(body=[raise_node],type_ignores=[]),str(NEW),'exec'),env) +env['raise_'](0,1) +check(list(idx.eligible(blocks[0]['frame']))==[] and list(idx.eligible(blocks[1]['frame']))==[0],'Actual retired control frame promotion not reflected') +env['raise_'](1,1) +check(idx.all==1 and env['frames']==[1,1],'Nonretired raise inserted an indexed role') +env['raise_'](0,2);idx.remove(0,blocks[2]['frame'],3) +check(idx.all==0 and not any(idx.ranks) and not any(idx.core) and not any(idx.cover),'Actual promoted role removal leaves stale bits') +receipt=dict(status='PASS actual ordered retired index and frame lifecycle',source_sha256=sha256(SOURCE.read_bytes()).hexdigest(),mutations=mutations,ordered_queries=queries,actual_raise_fixture=True) +(ROOT/'certificates/indexed-cycle-retired-index-validation.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n');print(json.dumps(receipt)) diff --git a/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compiler.py b/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compiler.py new file mode 100644 index 0000000000..578e9a2fa4 --- /dev/null +++ b/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compiler.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Compile the frozen indexed two-cycle pair and exactly relabel coordinates. + +Chafik Boukhalfa with OpenAI Codex assistance. Uses credited PR65/67/68/69/70 +construction, Thomas DiFiore's PR74 order and relabeling, and Rohan Arun's +PR78 coordinate-flag search idea. Original notices and source bytes are retained. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True +import argparse +import gzip +from hashlib import sha256 +import json +from pathlib import Path +import os +import shlex +import subprocess +import tempfile +_previous_path = sys.path[:] +try: + import indexed_cycle_engine as compiler +finally: + sys.path[:] = _previous_path +from indexed_cycle_nodeops import relabel +import indexed_cycle_graph as producer +ENGINES = {23: compiler, 25: compiler} +ROOT = Path(__file__).resolve().parents[2] + + +def source_record(): + paths = {f'pr{n}':ROOT/f'references/frame-compiler/pr{n}' for n in (65,67,68,69,70,71,74,78,79)} + paths.update(inherited=ROOT/'references/frame-compiler/pr48', indexed_r5=ROOT/'references/frame-compiler/indexed-r5') + return {name:producer.checked_manifest(path) for name,path in paths.items()} + + +def compile_axis(h): + config = producer.configuration(h) + provenance = json.loads((ROOT/'research/indexed-cycle/engine-provenance.json').read_text()) + for record in provenance.values(): + actual = ROOT/'scripts/experiments'/record['portable_engine'] + assert sha256(actual.read_bytes()).hexdigest() == record['portable_engine_sha256'], 'Selected source changed' + assert actual.read_bytes() == (ROOT/record['original']).read_bytes(), 'Portable source differs' + selection = json.loads((ROOT/'research/indexed-cycle/discovery-selection.json').read_text())['axes'][str(h)] + previous_graph, previous_build = compiler.graph, compiler.build + absent = object() + names = ('oracles','ORACLE_EXE','ORACLE_INPUT','PENDING_COST','OUTPUT_MODE') + previous = {name:getattr(compiler,name,absent) for name in names} + try: + compiler.graph = producer.graph + compiler.PENDING_COST = True + compiler.OUTPUT_MODE = config['output_mode'] + with tempfile.TemporaryDirectory(prefix='indexed-cycle-compile-') as directory: + work=Path(directory);oracle=work/'profile-oracle' + subprocess.run([*shlex.split(os.environ.get('CXX','c++')),'-O3','-std=c++17', + '-I',str(ROOT/'references/frame-compiler/pr48/scripts/partial_swap'), + str(ROOT/'references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp'), + '-o',str(oracle)],check=True) + compiler.oracles=[];compiler.ORACLE_EXE=str(oracle);compiler.ORACLE_INPUT=str(work/'oracle-input.bin') + try: + result,word=compiler.compile_(h,matching=True,reclaim=True,dirty=True) + finally: + for process in compiler.oracles: + process.stdin.close() + assert process.wait(timeout=10)==0,'Profile oracle failed' + finally: + compiler.graph,compiler.build=previous_graph,previous_build + for name,value in previous.items(): + if value is absent: + if hasattr(compiler,name):delattr(compiler,name) + else:setattr(compiler,name,value) + result.pop('seconds',None) + parent = json.loads((ROOT/f'research/indexed-cycle/parent-result-{h}.json').read_text()) + parent.pop('seconds',None) + assert json.loads(json.dumps(result)) == parent, 'Frozen parent compiler receipt differs' + raw=lambda value:(json.dumps(value,separators=(',',':'))+'\n').encode() + parent_sha=sha256(raw(word)).hexdigest() + assert parent_sha == selection['parent_word_sha256'], 'Frozen parent physical word differs' + word = relabel(word,config['coordinate_permutation']) + selected_sha=sha256(raw(word)).hexdigest() + assert selected_sha == selection['word_sha256'], 'Selected relabeled physical word differs' + assert result['roles']==selection['roles'] + result.update(scalar=producer.graph(h).verify(),graph_configuration=config, + parent_word_sha256=parent_sha,selected_word_sha256=selected_sha, + coordinate_relabeling='PR74 exact bijection of sources, frames, scatter rows and output targets; ordinary and dirty columns independently replayed after relabeling', + paid_clones=0,index_order='retired descending rank then slot; pending insertion order', + future_unit_completion=True,carry_exchange_passes=3,carry_two_cycle_passes=3, + pending_cost_uses_next_use_frame=True,source_r5_sha256=provenance['engine']['original_R5_source_sha256']) + return result,word + + +if __name__ == '__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--h',type=int,choices=(23,25),required=True) + parser.add_argument('--output',type=Path,required=True) + parser.add_argument('--word',type=Path,required=True) + args=parser.parse_args();result,word=compile_axis(args.h) + raw=(json.dumps(word,separators=(',',':'))+'\n').encode() + args.word.write_bytes(gzip.compress(raw,mtime=0) if args.word.suffix=='.gz' else raw) + args.output.write_text(json.dumps(result,indent=2)+'\n') + print(json.dumps(result),flush=True) diff --git a/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py b/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py new file mode 100644 index 0000000000..beb64af862 --- /dev/null +++ b/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py @@ -0,0 +1,407 @@ +# Bounded carry exchanges adapted from Alejandro Zarzuelo Urdiales PR70. +# Exact integer entropy discovery scores replace floating moment prices. +# Composition of PR67 profile-cost reclamation and PR68 pending live controls. +# Next-use transition scoring added by Chafik Boukhalfa with OpenAI Codex assistance. +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']) + if s in retired: + retired_index.remove(s,blocks[old]['frame'],blocks[old]['rank']);retired_index.insert(s,blocks[g]['frame'],blocks[g]['rank']) + if s in pending:pending_index.move(s,blocks[old]['frame'],blocks[g]['frame']) + hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + # Three deterministic improving exchanges, preserving both matroid constraints. + def carry_price(edge): + g,u,i=edge;producer=owner[blocks[g]['inputs'][i]];target=uses[u][1] + return (-profile_entropy(g+2,target+2)+profile_entropy(g+2,1) + +profile_entropy(0,producer+2)+profile_entropy(producer+2,target+2)) + prices=[carry_price(edge) for edge in edges] + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])) + initial_count=len(chosen);initial_price=sum(prices[e] for e in chosen) + def carry_can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not carry_can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]0 and carry_can(e,z) and carry_can(other,f):options.append((-gain,z,other)) + if not options:continue + _,z,other=min(options) + for old in (f,z): + og,ou,oi=edges[old];chosen.remove(old);blocks[og]['selected'].remove(old);del right[ou] + for new_edge in (e,other): + ng,nu,ni=edges[new_edge];assert nu not in right;chosen.add(new_edge);blocks[ng]['selected'].add(new_edge);right[nu]=new_edge + changes+=1 + stats['carry_two_cycles']+=changes + print('carry two-cycles',phase,changes,flush=True,file=sys.stderr) + if not changes:break + assert len(chosen)==len(right)==initial_count + assert sum(prices[e] for e in chosen)<=initial_price + for b in blocks:assert len(basis(b['outbasis']+[1<>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1];pending_index.insert(s,blocks[frames[s]]['frame'],blocks[pending[s]]['frame']) + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 3 and choice: + first,mid,last = 0,(len(groups)-1)//2,len(groups)-1 + requested = {1:[first],2:[mid],3:[last],4:[first,mid],5:[first,last],6:[mid,last],7:[first,mid,last],8:[first,first+1],9:[last-1,last]}[choice] + chosen=[] + for k in requested: + if k not in chosen and 0<=k>i&1) + word['frames']=[[mask(c),mask(u)] for c,u in word['frames']] + word['sources']={str(mapping[int(i)]):slot for i,slot in word['sources'].items()} + scatter=[] + for a,b in word['scatter']: + assert v<=a<2*v and b>=2*v + scatter.append([v+mapping[a-v],b]) + word['scatter']=scatter + word['outputs']=[[s,g,permutation[common],triple(t)] for s,g,common,t in word['outputs']] + return word + + diff --git a/references/frame-compiler/pr91/LICENSE b/references/frame-compiler/pr91/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/frame-compiler/pr91/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/frame-compiler/pr91/NOTICE b/references/frame-compiler/pr91/NOTICE new file mode 100644 index 0000000000..d5170811d5 --- /dev/null +++ b/references/frame-compiler/pr91/NOTICE @@ -0,0 +1,343 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Aligned split-pair composition (2026-10-08) +------------------------------------------ +Avi Eisenberg: PR62 interval strips and core-aware pair assembly. Dominik +Scholz with OpenAI assistance: PR63 ranked-frame composition and PR68 pending +live-carrier controls. Rohan Arun with OpenAI assistance: PR65 region schedules +and refined exact arithmetic, and PR67 all-rank profile-cost selection and +its profile oracle. Rohan Garg / rohangar1 +with substantial OpenAI Codex assistance: PR59 split-pair operation. Eumemic +with substantial OpenAI Codex assistance: PR57 joint reversible compiler and +independent physical-word/profile checks. Chafik Boukhalfa with OpenAI Codex +assistance: PR60 ranked reclamation and this selected [1,1,2] split vector, +aligned common-point permutation, next-use profile score, composition and +certification package. +The complete PR65 baseline words, profiles and arithmetic, plus 43 original +source/provenance files, are preserved under references/frame-compiler/pr65. +The original PR59 split operation and notices are separately preserved. +PR67's compiler/oracle and baseline profile, and PR68's compiler/driver/proof, +retain their original bytes, licenses and notices in their own archives. +All previous notices and mathematical dependencies remain applicable. + +Balanced coarse split composition (2026-10-08) +--------------------------------------------- +Eumemic / @eumemic supplied PR69's balanced coarse sums, with OpenAI Codex +assistance. Alejandro Zarzuelo Urdiales / @alejandrozu supplied PR70's bounded +carry-exchange strategy with the AI disclosures retained in the source archive. +Chafik Boukhalfa / @chafreaky, with OpenAI Codex assistance, selected the row/ +half-plane coarse rules, future-compatible unit completion, exact integer-price +carry adaptation, composition and this certificate package. The PR71 anchored +split vector, schedules, arithmetic, pending controls and their contributor +chain are retained as credited above. Original PR69/70 sources, licenses and +notices and the complete published PR71 baseline are preserved under +references/frame-compiler. All earlier notices remain applicable. + +Indexed two-cycle composition (2026-10-08): Chafik Boukhalfa with OpenAI Codex assistance. Thomas DiFiore (@tomdif, PR74) supplied exact node ordering and coordinate relabeling, including the selected h25 permutation. Rohan Arun (@rohanarun, PR78) supplied the coordinate-flag search idea. Balanced multi-splits, exact retired/pending indices, bounded two-cycles, late-output routing and selected-coordinate certification compose inherited PR57/59/60/62/63/65/67/68/69/70/71/79 work. All original authorship, Apache-2.0 and AI disclosures remain in unchanged contributor archives. + +Final frame composition: Chafik Boukhalfa with OpenAI Codex assistance. Rank-preserving tie orders extend Thomas DiFiore PR74; coordinate-aware oracle pricing is adapted from Rohan Arun PR82. Three-donor cycles extend the credited bounded carrier exchange strategy. All earlier authors, OpenAI/manuscript, Apache-2.0 and AI-assistance notices remain attached in preserved archives. + +Aligned frame composition: Chafik Boukhalfa with OpenAI Codex assistance. Thomas DiFiore PR74 supplies aligned firstK partitions, multi-pair anchoring, depth-dependent coarse sums and the selected coordinate maps. The previously credited R10 compiler composes these with the selected pricing and three-cycle settings. The additive Lean arithmetic companion was prepared with OpenAI assistance; all previous author, Apache-2.0, OpenAI/manuscript and AI-assistance notices remain attached. diff --git a/references/frame-compiler/pr91/SOURCE.json b/references/frame-compiler/pr91/SOURCE.json new file mode 100644 index 0000000000..aa9a218e61 --- /dev/null +++ b/references/frame-compiler/pr91/SOURCE.json @@ -0,0 +1,227 @@ +{ + "commit": "264f202b52edc04d0c72ca9cb3138282ca68b9ad", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "f0a0aafc64143a58437c2cc68cecf2fc223a72e7922e74733f4b697415441d50", + "references/frame-compiler/aligned-r11/SOURCE.json": "64584e5521f782571fe9415fe6bb83728499f0f4d5fbff79e345328586cc7515", + "references/frame-compiler/aligned-r11/nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "references/frame-compiler/aligned-r11/scripts/experiments/compiler.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr74-aligned/FETCH.json": "92e596b5868b86428523c16675cc25fe4563148012535b167aa48ff7b420cc58", + "references/frame-compiler/pr74-aligned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr74-aligned/NOTICE": "a8224aed09f2ccccf88a943cb14a8db6ba4b6ada545a9b457f1c3649e257bb00", + "references/frame-compiler/pr74-aligned/SOURCE.json": "57a5dfb9212300f7e63ee3de70a0324d6a7b9b5240a699230bcde2c89e83ff93", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/PROOF.md": "1a931b3d2a757f9a55911394da5fa9617775a7fee4da0739189a7a169f62efef", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/README.md": "584c64da8ea46b46dfcc6a8b86f4543bba641f10d36f95bf407b2a459591da50", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/SOURCE.json": "e76eeb5bbc3fabc4e63135d611f7f48b891ce0b85e9c765b51b4c963feb38c4f", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/certificate.json": "6f3a4a0e15ef5527e92b865722a9fd8f15658231e6ebbbc55e96c3a433e12846", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py": "86d4ab1b52c490a350ae84e2805d8a95557dfcf709597ecc365aaef4a0178f31", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md": "0a6df5c08fcfda77349e1f543128502951cee2bea8fb08904360d8bfe0d10b12", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py": "671704f8a5a8276c68aeef0432658e20e8c7dfff6b5fcf5b342f40644d920d30", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/future_completion.py": "bfe7dd61b01abb445c363503bca61b217bf2e82d977de2336de3a48e1b8effd7", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/graph_audit.py": "a5fdeec4789469052c0a60ee894851c412c7b9de4844942c09ccaa048b9da94c", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition-proof.md": "aeeb9fec06d38eb829b9be4de934d63cf65fb0064440306520de12d41f21921d", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition_graph.py": "63e23b1d33094f99e96821f1859fee2612907d0cab928f983cce3d279a331900", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py": "533819362dbf7a211647182c32d9bd6c89a9e71c1d0987baf555dc333a05e9c8", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json": "9ceb5e50591c52ed8c225f248b9f1f99f9a66dac4cecb00b8942aab84417d0da", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json": "76fb46fe77da64e867c86adff6a8fa65a488065d6413c62e9e946d51e75c8f7e", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json": "eebd008b4c93622200659c6b001a440ce3857b5e34d93e50a5219a4c74fb21b5", + "research/aligned-composition/PROOF.md": "feae38a74fd6d3a8f3ace0c4d30ba6361b28fa26616c765b289e4310712a503d", + "research/aligned-composition/README.md": "789691c9816b362ac4b5967586f8ed6248d65d84f4e4b97296b86c9f555d3e18", + "research/aligned-composition/SOURCE.json": "7dcf54d1a136cc45fee258bdff80b191069c368a4a466b5862ad54d4623f2f57", + "research/aligned-composition/config-23.json": "f62c3570f4b88e50f687c696f3338235d0900be607f0399c2b0afc649dce0dbd", + "research/aligned-composition/config-25.json": "28cb1237f4c4a8f839e8f00ce44736366c4cf7d5b98ec49d6ab1f4e39ea23acf", + "research/aligned-composition/discovery-selection.json": "43a762adf17b2338b2d7ec486fd6eb17d00d1d221e7f1e4041711cbce9964ea7", + "research/aligned-composition/engine-provenance.json": "b8b1cce0a95625b350eab836b257e6d526aa867aa19600941bbf4bde79463469", + "research/aligned-composition/parameters.json": "b64ffe9769056f0860996f66616333cf1fba07087dddf3e73d1ecbb459449ae8", + "research/aligned-composition/parent-result-23.json": "cc3c4f66a8291391ce71fe99938610883a2d53e1dde6d80d3434619184e53d99", + "research/aligned-composition/scalar-23.json": "a9188191d0089012d8aaaf6dc3a47ce6b07a59c472b7e33af2e180618a7bc36c", + "research/aligned-composition/word-bindings.json": "2551253954f22c0067244372587c9023d62751b2a10327bed9aed67a921789a6", + "scripts/experiments/aligned_composition_compiler.py": "83f37a338092bb3c46570a9c1188988df91e18622d9446f95f0da7fed2ed20dc", + "scripts/experiments/aligned_composition_compose.py": "3e0d94d38514fe4d4e9383469e15b0f9f399354117dacd26d110941b9056340b", + "scripts/experiments/aligned_composition_engine.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "scripts/experiments/aligned_composition_graph.py": "683b299e8c334413f73b8e26767107aad9dad973c69d3d30690c3040f334fcb9", + "scripts/experiments/aligned_composition_nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc" + }, + "git_blobs": { + "LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "NOTICE": "d5170811d5b1a8eaa19c9f68ce293c589dcbf67c", + "references/frame-compiler/aligned-r11/SOURCE.json": "ce3a62a9540dd86f34afef3afff3daacc9464f17", + "references/frame-compiler/aligned-r11/nodeops.py": "b7e8afd2ede7c71a143567fb1672c2b33740b99d", + "references/frame-compiler/aligned-r11/scripts/experiments/compiler.py": "5c82d20ab0447f668b7cfeafc979424ae1ca4c7f", + "references/frame-compiler/pr48/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "references/frame-compiler/pr48/NOTICE": "a8474f5c31dd4f0b24232ae1d4a274405b5bb677", + "references/frame-compiler/pr48/SOURCE.json": "4e38e34dc8ed5ed54c3e4b60a88c3dc47308001f", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "c7fd42867d741939db6a41529bfdbb136f03191b", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "fa4b29c06df8e317c4074db4b8385622e9e27261", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "24070a7d858217c0e8b30a8102ecf6b84d0e1df9", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "410e50f475623183fab8de8f211e7d528599151a", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "353de0374c868501f441e1c653b2c96b3bbfd2d2", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "aaa99986c4b81c5d4fbe016fd216a4818940bb95", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "9ec72c629aba3f62cecca996d91f09f859d987ba", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "b879293977c4705fdc47905cd6c58906161da3e7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "a2f0190704db83bd8ef48e46e723c49b925804fe", + "references/frame-compiler/pr65/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "references/frame-compiler/pr65/NOTICE": "1a1c498b396e3c3ff99360b76f54554d8729c54a", + "references/frame-compiler/pr65/SOURCE.json": "6a6fd214f625c06ba781beee28d050e74cbd5eca", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "4e38e34dc8ed5ed54c3e4b60a88c3dc47308001f", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "c7fd42867d741939db6a41529bfdbb136f03191b", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "fa4b29c06df8e317c4074db4b8385622e9e27261", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "24070a7d858217c0e8b30a8102ecf6b84d0e1df9", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "410e50f475623183fab8de8f211e7d528599151a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "353de0374c868501f441e1c653b2c96b3bbfd2d2", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "aaa99986c4b81c5d4fbe016fd216a4818940bb95", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "9ec72c629aba3f62cecca996d91f09f859d987ba", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "b879293977c4705fdc47905cd6c58906161da3e7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "a2f0190704db83bd8ef48e46e723c49b925804fe", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "26e1166562eff395a1fbb632751f985586ed078f", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "439c7638878a392473da4c61176180839ccedc23", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "ab8cde595cbc8cdc8cc79d3767681d415ff8c863", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "d47c1cb3df9712296d4388d2ced012543a24b2bb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "eef8e1eba07ad4a6474551328cd2d769d1b470b4", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "7248e4e2b7dabafcb8da1765f5c108926b986dd7", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "fed8b1bc5d3e5ea0b409b3883879101ff4e88470", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "58fd96afe1f69a534521f42dc86d598dfd2ec188", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "7d9949e6764c74f68aac21c9668170e4d774f699", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "346cf87ea3fa332d249b53df5d16731b100a9b6e", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "399299089e26a77a81d11365c829f4cb6cb05e49", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "e23cba24ec967945290fefdd5188694224a0d40a", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "1d539de1305369e772b4ba2de63ef156ff63fe28", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "42958fc74b8eaa806298c583f42a8ce659739b12", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "3b648dbe211bd43f8d8ad218a718f692567148d0", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "19cc34b4cac2f0f8da3ec3dbff2c7f45bc6e43b7", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "2883a5f7c94d20d07b8fc15c9f9be888202ce39d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "3b4bc33ff6e6e02a9374148cfd6b1472bfb21eca", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "3a7c7c41c18dead83c4945c3b5c4e4128667fd82", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "6a239a3e9fe9bc88e9d0760dda7a61e89c09899e", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "dbfad24526e157befc538e1e73878d43027ef18d", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "a219a877195ab0a204f2f3056f93b91586fe2dcc", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "5ac300ecd0e2d24e110f17efb0eee4e314667ad6", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "aaa99986c4b81c5d4fbe016fd216a4818940bb95", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "b87855e808802c6b5dbdfb845f2328370ff8a4f0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "85ad7b77bda86e5eee0fbe165cc6d5c5bfe4427b", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "1b52bd057dab5256d012df34b5514aee17686590", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "ea39119bb9069814c0af9bb725c9a5996f0381bd", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "1eb8dea9fa13033478a5f83b536b7c291c9bc0c8", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "b879293977c4705fdc47905cd6c58906161da3e7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "a2f0190704db83bd8ef48e46e723c49b925804fe", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "bed146cb883dee656746f5cadc5b7993a26992cc", + "references/frame-compiler/pr69/FETCH.json": "3d2dc3f5044f2bf9930e9c940fab2dfa60d42858", + "references/frame-compiler/pr69/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "references/frame-compiler/pr69/NOTICE": "901d0e2c23dd331f75284c0610097648826233ac", + "references/frame-compiler/pr69/SOURCE.json": "c45babbbc710624d6da496e265c0f33532004841", + "references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "961481269dd2511257451b912c1cf0a86b908cba", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "d4534278e59662d1ee31258f0c3d851de327b6af", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "271b44d795cefc7c930218bebeb22db275fdadbd", + "references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "e4787483ef878b59c3521c5b08a6b336bf9dad95", + "references/frame-compiler/pr74-aligned/FETCH.json": "31e4fc60d236f372c414947e43a743000ebd7727", + "references/frame-compiler/pr74-aligned/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "references/frame-compiler/pr74-aligned/NOTICE": "ed4d7c0e48abf8c0ea0978cc281cdc002464600d", + "references/frame-compiler/pr74-aligned/SOURCE.json": "64233dfcf727c4bb4ae5a5e3176523744d6e8d6b", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/PROOF.md": "54cdb61d9321acba5549d51bf8fd9b3c613faa88", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/README.md": "1755a94c4053b60d1e40319fe31c19169ea807b0", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/SOURCE.json": "7b7a434a5d7d0a2bfa38b1925d9a77bfe2423e4f", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/certificate.json": "6ec5b38501066a6a831ba9d62ae1eba443f9b0b0", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py": "74f1f8efa71f84d53a8886afaf6606e0bf41a53b", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md": "09ccd4ed5efdf0d7684a3bda9fcdfbc286de16d5", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py": "674f81f54ea5a65125b8a9cda42b3667ccc6a26a", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/future_completion.py": "bc206eb659158a2bad9c34e44002cd2ab9174484", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/graph_audit.py": "c8d2f2b64552074fbe370b36397bc37f199fdd92", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition-proof.md": "bf08152aa3db3207bd356ea265f63f8d7f1f8848", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition_graph.py": "e1c5c076a525df526e8490590033f406ef2a3f5e", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py": "3f43c4a6ad53167d77901bbe54b00e7c6be95610", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json": "a217fee46beeccae98214a30d8a55232e6d77f8f", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json": "f33aaaa4efecbd0a337aaebc63f16f2a2e1897b3", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json": "ef0b559d02459ca252869013958be55018dd19dd", + "research/aligned-composition/PROOF.md": "9e5158a65c04cdbe5e1fd46883078e96f90aee6a", + "research/aligned-composition/README.md": "b59cc146968fbde271611d59ee62b70a01d10c1e", + "research/aligned-composition/SOURCE.json": "746882001ac0472dbb1fbe5c09a8b27f8b0b4c8a", + "research/aligned-composition/config-23.json": "043d1e788c0f848e7ddc6adf2ae0d1172c04151c", + "research/aligned-composition/config-25.json": "db51026b83cc221eef1ea08cd7247b7d5ed90afb", + "research/aligned-composition/discovery-selection.json": "ff419c5b291eb47eecac79dc45937d303c2b9c9c", + "research/aligned-composition/engine-provenance.json": "e20fa93afdca002e9f30c53029bab7741e53be81", + "research/aligned-composition/parameters.json": "7b0063509ea1a824641560741c3cf413f625483c", + "research/aligned-composition/parent-result-23.json": "37b2728c8ee88e31bdb39980210c28eadc475b69", + "research/aligned-composition/scalar-23.json": "dc90387bea1843630a49e794155d98c2b23481a6", + "research/aligned-composition/word-bindings.json": "408e6e921360588176bcfab082ef1ed173177afd", + "scripts/experiments/aligned_composition_compiler.py": "d21940a6b267333832e1d0436c493d1cb21c9076", + "scripts/experiments/aligned_composition_compose.py": "97382cbdafdb3ddc202559ee82b4f22770fd7ce0", + "scripts/experiments/aligned_composition_engine.py": "5c82d20ab0447f668b7cfeafc979424ae1ca4c7f", + "scripts/experiments/aligned_composition_graph.py": "d9338519d09d026e3b840c499e9db62104c40251", + "scripts/experiments/aligned_composition_nodeops.py": "b7e8afd2ede7c71a143567fb1672c2b33740b99d", + "scripts/experiments/binary_frame_math.py": "b87855e808802c6b5dbdfb845f2328370ff8a4f0", + "scripts/experiments/binary_frame_profile_prepare.py": "85ad7b77bda86e5eee0fbe165cc6d5c5bfe4427b", + "scripts/experiments/binary_frame_profiles.cpp": "1b52bd057dab5256d012df34b5514aee17686590", + "scripts/experiments/binary_frame_replay.py": "ea39119bb9069814c0af9bb725c9a5996f0381bd" + }, + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "scope": "Immutable exact Git blobs used by this package, with inherited notices; selected execution/proof closure, not a full repository checkout." +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/SOURCE.json b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/SOURCE.json new file mode 100644 index 0000000000..ce3a62a954 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/SOURCE.json @@ -0,0 +1,114 @@ +{ + "files": { + "CANDIDATE_PARENT.json": "648439c2c3f5735528842bd388d632e54781dbb118e44ef60e871590c7879e86", + "COORDINATES.json": "7b45884c3a1211d55c0d9bdb1669d11c7da79bf866a527ba1c303c088b042c52", + "EXPERIMENT.txt": "266a673c48e46d038022647527af43669c4c049145eba245a8a4747168de7985", + "FROZEN.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "R10_FROZEN.json": "c05715807ad48d2c292f6e3431c338c39d4e7ae80b9758a8c3f8ace520178e23", + "baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "batch.py": "09a3aae35304d438717371ce7de87b643271c5d79e1e8f298dae82c47c6787ff", + "build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "candidate-parent/h23/profiles.json": "670e625363dbd1978c74626dc2c47f9a5e9eda6653292113bc9e5928f13c86cf", + "candidate-parent/h23/replay.json": "921786b8eb8f51c53a77ee7ac83c497c2c35e5bb7d212c14f3f1c8f0f6d5b244", + "candidate-parent/h23/result.json": "5da863ef7931838dc108707358602745c159895a93ca5a5b578a563d77150fcb", + "candidate-parent/h23/word.json.gz": "fd727e805988ba943d26677f1ac110aa8caf4641caf0691d89e45317bf318e18", + "candidate-parent/h25/profiles.json": "bc27776644370032075544d5b9d4b5c46786d965fa150425cf6f23a259534c87", + "candidate-parent/h25/replay.json": "ee600e994706f2570d74abdeb882221a7492fbd092c086a536a102dbf8ffb08b", + "candidate-parent/h25/result.json": "acb9eb1f9b9a788aad0f8dd8aee3246c93627a12245c3d237749363aab5f6d51", + "candidate-parent/h25/word.json.gz": "e077b4ba936efb82a17f3a0c39e35b94dd9a2003797036219fd4df021e72d511", + "configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "frozen/h23/profiles.json": "45708723716dded9bb2688fc9e576de4550b31ff4762a41d533c486374ac8664", + "frozen/h23/replay.json": "7d64be18c6f32399dfbc64af33a901eba7a9bc26dcd4152863c2b40129d555d6", + "frozen/h23/result.json": "05bd010217fe06dcea4bf5b3e32709d390ce79ee8dbbe17b3282e549bbdf871d", + "frozen/h23/word.json.gz": "2d88e9d3616a6d3d78f93bf42d08dac8fd6e95e81ec8714bd6c63b922139fb3b", + "frozen/h25/profiles.json": "1ca57426564eb285f0d092dac5433531505f08f53ea169c3f12df9a2d47e1659", + "frozen/h25/replay.json": "9a817b63ca1bb19403f19ab88c7d97e4cb507954d52a66b4d76e5daa05e791b6", + "frozen/h25/result.json": "707afe7e44304b4ccf13d34da51e3609e8619adb8b26a15ab29bb47b154b0380", + "frozen/h25/word.json.gz": "6b50c71df1415d867cb44f6da6f000b793b266ea3d995454fb2b9862966b5959", + "graph_batch.py": "1e5e07722f1d3af3df1f4bfb7bf4cd73d5233b1c88d294722bbd57df94566c53", + "keys.json": "da7f509569e1f90a5314f44d541a2d6ce66fc100b5b5565b1290e21ce21cbb1e", + "nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "original/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/pr74-aligned/FETCH.json": "92e596b5868b86428523c16675cc25fe4563148012535b167aa48ff7b420cc58", + "references/pr74-aligned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/pr74-aligned/NOTICE": "a8224aed09f2ccccf88a943cb14a8db6ba4b6ada545a9b457f1c3649e257bb00", + "references/pr74-aligned/research/aligned-exchange-frames/PROOF.md": "1a931b3d2a757f9a55911394da5fa9617775a7fee4da0739189a7a169f62efef", + "references/pr74-aligned/research/aligned-exchange-frames/README.md": "584c64da8ea46b46dfcc6a8b86f4543bba641f10d36f95bf407b2a459591da50", + "references/pr74-aligned/research/aligned-exchange-frames/SOURCE.json": "e76eeb5bbc3fabc4e63135d611f7f48b891ce0b85e9c765b51b4c963feb38c4f", + "references/pr74-aligned/research/aligned-exchange-frames/certificate.json": "6f3a4a0e15ef5527e92b865722a9fd8f15658231e6ebbbc55e96c3a433e12846", + "references/pr74-aligned/research/aligned-exchange-frames/check.py": "86d4ab1b52c490a350ae84e2805d8a95557dfcf709597ecc365aaef4a0178f31", + "references/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md": "0a6df5c08fcfda77349e1f543128502951cee2bea8fb08904360d8bfe0d10b12", + "references/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py": "671704f8a5a8276c68aeef0432658e20e8c7dfff6b5fcf5b342f40644d920d30", + "references/pr74-aligned/research/aligned-exchange-frames/future_completion.py": "bfe7dd61b01abb445c363503bca61b217bf2e82d977de2336de3a48e1b8effd7", + "references/pr74-aligned/research/aligned-exchange-frames/graph_audit.py": "a5fdeec4789469052c0a60ee894851c412c7b9de4844942c09ccaa048b9da94c", + "references/pr74-aligned/research/aligned-exchange-frames/partition-proof.md": "aeeb9fec06d38eb829b9be4de934d63cf65fb0064440306520de12d41f21921d", + "references/pr74-aligned/research/aligned-exchange-frames/partition_graph.py": "63e23b1d33094f99e96821f1859fee2612907d0cab928f983cce3d279a331900", + "references/pr74-aligned/research/aligned-exchange-frames/producer.py": "533819362dbf7a211647182c32d9bd6c89a9e71c1d0987baf555dc333a05e9c8", + "references/pr74-aligned/research/aligned-exchange-frames/profile-23.json": "9ceb5e50591c52ed8c225f248b9f1f99f9a66dac4cecb00b8942aab84417d0da", + "references/pr74-aligned/research/aligned-exchange-frames/profile-25.json": "76fb46fe77da64e867c86adff6a8fa65a488065d6413c62e9e946d51e75c8f7e", + "references/pr74-aligned/research/aligned-exchange-frames/selection.json": "eebd008b4c93622200659c6b001a440ce3857b5e34d93e50a5219a4c74fb21b5", + "references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/compiler.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "test_order.py": "0de6726f195097582e6a482e8c67b9a5569a8d18f2236dadb656069397bb56f9", + "test_three_cycles.py": "8d4c69ac2423600e25b9962d3dd81780a8be3a43895dd698c6ecd963bd96a2c0" + }, + "scope": "complete portable R11 source closure" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/nodeops.py b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/nodeops.py new file mode 100644 index 0000000000..b7e8afd2ed --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/nodeops.py @@ -0,0 +1,93 @@ +# PR74 reorder/relabel derived from Thomas DiFiore, head3f78d8967c009153f2df5c6a6577b6ab1d37e2ca. +# Original extracts retained at original/nodeops.py. Apache-2.0, inherited notices apply. +# Rank-preserving tie keys and dense verifier added by Chafik Boukhalfa with OpenAI Codex assistance. +from hashlib import sha256 + +def order_key(item,mode): + (core,cover),nodes=item + rank=cover.bit_count()-core.bit_count() + masks={ + 'pr74':(-core,cover), + 'core-plus-cover-plus':(core,cover), + 'core-plus-cover-minus':(core,-cover), + 'core-minus-cover-minus':(-core,-cover), + 'cover-plus-core-plus':(cover,core), + 'cover-plus-core-minus':(cover,-core), + 'cover-minus-core-plus':(-cover,core), + 'cover-minus-core-minus':(-cover,-core), + 'small-core-plus':(core.bit_count(),core,cover), + 'small-core-minus':(core.bit_count(),-core,cover), + 'large-core-plus':(-core.bit_count(),core,cover), + 'large-core-minus':(-core.bit_count(),-core,cover), + 'minnode-plus':(min(nodes),-core,cover), + 'minnode-minus':(-min(nodes),-core,cover), + 'maxnode-plus':(max(nodes),-core,cover), + 'maxnode-minus':(-max(nodes),-core,cover), + } + return (rank,)+masks[mode]+(min(nodes),) + +def reorder(c,mode='pr74'): + groups={} + for x in sorted(c.active): + if c.args[x]:groups.setdefault((c.core[x],c.union[x]),[]).append(x) + # Every cross-envelope dependency strictly raises dimension. This permits + # arbitrary ties at fixed rank while retaining original order inside a group. + for x in sorted(c.active): + for y in c.args[x] or (): + assert y>common&1 and not(mask&forbidden)) + assert support[x]==expected + return {'status':'PASS all global supports, exact envelopes, disjoint additions and target outputs','nodes':len(c.active),'outputs':len(c.outputs),'sha256':digest.hexdigest()} + +# Coordinate action preserves the literal physical word under a global input relabel. +def relabel(word,permutation): + from itertools import combinations + h,v=word['h'],word['v'];assert sorted(permutation)==list(range(h)) + triples=list(combinations(range(h),3));assert len(triples)==v + index={triple:i for i,triple in enumerate(triples)} + def triple(t):return sorted(permutation[x] for x in t) + mapping={i:index[tuple(triple(t))] for i,t in enumerate(triples)} + def mask(bits):return sum(1<>i&1) + word['frames']=[[mask(c),mask(u)] for c,u in word['frames']] + word['sources']={str(mapping[int(i)]):slot for i,slot in word['sources'].items()} + scatter=[] + for a,b in word['scatter']: + assert v<=a<2*v and b>=2*v + scatter.append([v+mapping[a-v],b]) + word['scatter']=scatter + word['outputs']=[[s,g,permutation[common],triple(t)] for s,g,common,t in word['outputs']] + return word diff --git a/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/scripts/experiments/compiler.py b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/scripts/experiments/compiler.py new file mode 100644 index 0000000000..5c82d20ab0 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/aligned-r11/scripts/experiments/compiler.py @@ -0,0 +1,462 @@ +# Coordinate-conjugated oracle pricing adapted from Rohan Arun PR82, with OpenAI Codex assistance. +# Bounded carry exchanges adapted from Alejandro Zarzuelo Urdiales PR70. +# Exact integer entropy discovery scores replace floating moment prices. +# Composition of PR67 profile-cost reclamation and PR68 pending live controls. +# Next-use transition scoring added by Chafik Boukhalfa with OpenAI Codex assistance. +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<0 and carry_can(x,f) and carry_can(other,y): + options.append((-gain,z,x,y,other)) + if not options:continue + _,z,x,y,other=min(options) + old=(f,z,y);new=(e,x,other) + assert len(set(old))==len(set(new))==3 and not set(old)&set(new) + assert {edges[t][1] for t in old}=={edges[t][1] for t in new} + assert len({edges[t][0] for t in old})==len({edges[t][0] for t in new})==3 + for t in old: + tg,tu,ti=edges[t];chosen.remove(t);blocks[tg]['selected'].remove(t);del right[tu] + for t in new: + tg,tu,ti=edges[t];assert tu not in right;chosen.add(t);blocks[tg]['selected'].add(t);right[tu]=t + changes+=1 + return changes + + +def compile_(h,matching=True,reclaim=False,dirty=True): + t0=time.time();c,blocks,uses,value_uses,owner,signal,order,contains=build(h);v=len(c.inputs);position={g:i for i,g in enumerate(order)} + print('built',h,len(blocks),'regions',flush=True,file=sys.stderr) + mode=globals().get('OUTPUT_MODE','baseline') + edges,chosen,right,stats=match(blocks,uses,matching) + print('matched',len(chosen),'seconds',time.time()-t0,flush=True,file=sys.stderr) + slots=[];frames=[];ops=[];events=[];hist=Counter();assign={};sources={};retired=set();retired_index=RetiredIndex(h);pending={};pending_index=PendingIndex(h);stats['regions']=len(blocks);stats['matched']=len(chosen);stats['multi_node_regions']=sum(len(b['nodes'])>1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']) + if s in retired: + retired_index.remove(s,blocks[old]['frame'],blocks[old]['rank']);retired_index.insert(s,blocks[g]['frame'],blocks[g]['rank']) + if s in pending:pending_index.move(s,blocks[old]['frame'],blocks[g]['frame']) + hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + oracle_map=globals().get('ORACLE_COORDINATES',list(range(h))) + assert sorted(oracle_map)==list(range(h)), 'Invalid oracle coordinate permutation' + for b in blocks:stream.write(struct.pack('<2QI',*[sum(1<>i&1) for mask in b['frame']],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + # Three deterministic improving exchanges, preserving both matroid constraints. + def carry_price(edge): + g,u,i=edge;producer=owner[blocks[g]['inputs'][i]];target=uses[u][1] + return (-profile_entropy(g+2,target+2)+profile_entropy(g+2,1) + +profile_entropy(0,producer+2)+profile_entropy(producer+2,target+2)) + prices=[carry_price(edge) for edge in edges] + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])) + initial_count=len(chosen);initial_price=sum(prices[e] for e in chosen) + def carry_can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not carry_can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]0 and carry_can(e,z) and carry_can(other,f):options.append((-gain,z,other)) + if not options:continue + _,z,other=min(options) + for old in (f,z): + og,ou,oi=edges[old];chosen.remove(old);blocks[og]['selected'].remove(old);del right[ou] + for new_edge in (e,other): + ng,nu,ni=edges[new_edge];assert nu not in right;chosen.add(new_edge);blocks[ng]['selected'].add(new_edge);right[nu]=new_edge + changes+=1 + stats['carry_two_cycles']+=changes + print('carry two-cycles',phase,changes,flush=True,file=sys.stderr) + if not changes:break + for phase in range(globals().get('THREE_CYCLE_PASSES',0)): + changes=improve_three_cycles(blocks,edges,chosen,right,prices,priority,carry_can) + stats['carry_three_cycles']+=changes + print('carry three-cycles',phase,changes,flush=True,file=sys.stderr) + if not changes:break + assert len(chosen)==len(right)==initial_count + assert sum(prices[e] for e in chosen)<=initial_price + for b in blocks:assert len(basis(b['outbasis']+[1<>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1];pending_index.insert(s,blocks[frames[s]]['frame'],blocks[pending[s]]['frame']) + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 1 and W > 0, 'positive arity and role volume required') + degree, bits = halving_degree(m, child), W.bit_length() + require(integer(data['halving_degree']) == degree, name + ' stale halving degree') + require(integer(data['wire_bits']) == bits, name + ' stale role logarithm') + result[name] = dict(m=m, W=W, maxchild=child, + halving_degree=degree, wire_bits=bits) + phase = finite_bridge['complex'] + s, scalar = (integer(phase[k]) for k in ('s', 'scalar_group_upper')) + m, W, child = (result['complex'][k] for k in ('m', 'W', 'maxchild')) + require(0 < s < m*W and scalar > 0, 'invalid complex rank/scalar bound') + E = 64*(W+m+scalar+1)**3 + B = s+E + literal = 2*scalar*W**2+8*s+4*W+4+32*m + C0 = 32*m*B**2 + semantic = dict(E=E, B=B, C0=C0, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-child)-(s+E)) + require(E > literal and semantic['induction_gap'] >= 0 and C0 > 2*B+18, + 'semantic completed-child bound failed') + for key, value in semantic.items(): + require(rational(finite_bridge['semantic'][key]) == value, + 'stale semantic constant: '+key) + result['complex'].update(s=s, scalar_group_upper=scalar) + result['semantic'] = semantic + rows = finite_bridge['rows'] + coefficient = sum(result[name]['halving_degree']*result[name]['wire_bits'] + for name in ('bit', 'complex')) + degree = integer(rows['degree']) + gap = degree-Q(51,25)*coefficient + require(degree > 0 and gap > 0, 'insufficient product row degree') + expected = dict(coefficient=coefficient, degree=degree, + degree_gap=gap, suffix_slope=4*degree) + for key, value in expected.items(): + require(rational(rows[key]) == value, 'stale product row constant: '+key) + result['rows'] = expected + return result + + +def assembly(finite_bridge, a_bit, kappa, beta=Q(1,20), h=Q(1,10**12), + a_complex=Q(717,10**7), *, original_prefix=False, + old_guard=False, old_exposures=False): + """Return 47 strict slacks and seven margins, or raise InvalidAssembly. + + The three keyword switches are negative controls: they impose the old + prefix, nonlinear guard, or old separate movement charges at these SAME + balanced parameters. They do not silently optimize an alternative family. + """ + f = validate_bridge(finite_bridge) + a, b, kappa, beta, h = map(rational, (a_bit,a_complex,kappa,beta,h)) + require(0 < h < Q(1,2) and kappa > 0, 'positive backoff and saving required') + tau, sigma = 1-a, 1-b + q = a*(1-2*h) + require(1+q != 0, 'undefined balanced epsilon') + lp, c, eps = 1-q, q+h/4, (1-h)/(1+q) + lam = (tau+lp)/2 + G = eps*q + r, delta = (G+1-eps)/2, h/8 + C1 = Q(19991,10000) if old_guard else Q(1) + margins = dict(g1=1-eps, g2=a, g3=G, g4=a, + g5=min(1-eps-delta,r-delta), g6=1-eps-delta, g7=eps) + if original_prefix: + margins['g1'] = 1-eps*(1+c) + if old_exposures: + margins.update(g2=eps*c*a, g4=a*(1-eps)) + internal = tau+(1-beta)*max(sigma-tau,Q(0)) + leaf = sigma+beta*(1-sigma) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=eps, epsilon_below_one=1-eps, guard_width=1-eps*C1, + K_geometry=1-eps*(1+c), K_dominates_log=eps*c, + record_suffix=1-eps, phase_local=1-eps-delta, phase_boundary=r-delta, + gamma_sublinear=1-eps-r, cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=eps-a, + small_field_exposure=1-eps-G, artificial_boundary=8-eps+r-delta-G, + literal_scalar_guard=Q(f['semantic']['strict_literal_gap']), + row_product_gap=f['rows']['degree_gap']) + slacks.update({name+'_above_kappa': value-kappa for name,value in margins.items()}) + require(len(slacks) == 47 and len(margins) == 7, 'constraint list incomplete') + failed = {name:str(value) for name,value in slacks.items() if value <= 0} + require(not failed, str(failed)) + require(min(margins.values()) == G, 'unexpected controlling margin') + require(1-eps-G == h and 1-eps-r == h/2, 'balanced identities failed') + require(1-eps*(1+c) == h-eps*h/4, 'geometric identity failed') + parameters = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta,h=h, + q=q,c=c,epsilon=eps,lambda_=lam,lambda_prime=lp,alpha_squared_power=r, + delta=delta,C0=f['semantic']['C0'],C1=C1,kappa=kappa) + return dict(parameters=parameters,constraints=slacks,margins=margins, + minimum_margin=G,absorption_gap=G-kappa,scoped_limit=a/(1+a), + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c),finite_bridge=f) + + +def cutoffs(finite_bridge, result): + """PR34 sufficient numeric comparisons, retaining its all-interval padding. + + These are eventual arithmetic thresholds, not practical running times or + substitutes for additional native setup / prime / recovery thresholds. + """ + f = validate_bridge(finite_bridge) + p = result['parameters'] + e,c,r,beta = (p[k] for k in ('epsilon','c','alpha_squared_power','beta')) + ka,km,kb,ks = (ceil(1/x) for x in (r,e*c,1-e,e*beta)) + C0 = f['semantic']['C0'] + largest = max(f['bit']['m'],f['complex']['m']) + cuts = dict(guard=ceil(Q((2*C0).bit_length())/(1-e)), + normalization=ceil(7/(1-e-r)), alpha=16*ka*ka+1, compact=64*km*km+1, + geometry=ceil(3/(1-e*(1+c))),phase_cell=ceil(9/(e-(1-r)/2)), + period=128*kb*kb+1,stopped_leaf=ks*(4*largest).bit_length(),log_p=25,reservoir=14) + common = max(cuts.values()) + require(common >= max(2*ka,2*km,2*kb,25), 'cutoff does not cover monotone regime') + checkpoints=[] + for j in range(6): + z=common*2**j + powers=dict(alpha=(z//ka,8*(z+ka)+64),compact=(z//km,32*(z+km)+192), + period=(z//kb,16*(z+kb)+56), + rows=(z//kb,f['rows']['suffix_slope']*(z+kb+8)), + leaf=(z//ks,4*largest)) + require(all(lhs >= rhs.bit_length() for lhs,rhs in powers.values()), + 'compressed-power threshold failed') + checkpoints.append(dict(log2_input=z,powers={name:dict(exponent=lhs,rhs=rhs, + rhs_bits=rhs.bit_length()) for name,(lhs,rhs) in powers.items()})) + return dict(cutoff_log2_input=cuts,common_cutoff=common,power_checkpoints=checkpoints, + all_interval_argument='For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). ' + 'Successive intervals double LHS; the positive affine RHS grows at most ' + 'linearly, so 2^j >= j+1 proves persistence.', + additional_eventual_conditions=['BHP prime threshold and distinct-prime packing', + 'Fixed rational basis, eligible common prime and native table setup', + 'Catalogue/descriptor domination, logarithm absorption, exact recovery'], + practical_runtime_claim=False) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/certificate.json b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/certificate.json new file mode 100644 index 0000000000..fa4b29c06d --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/certificate.json @@ -0,0 +1,17916 @@ +{ + "assembly": { + "absorption_gap": "74937627730682908927817/3333470626501666392080330000000000000", + "constraints": { + "K_dominates_log": "13729316916625478716083360791967/333347062650166639208033000000000000", + "K_geometry": "250013729316916639208033/333347062650166639208033000000000000", + "a_below_b": "61024099/2000000000000", + "a_positive": "82375901/2000000000000", + "alpha_below_one": "666666666666333347062650166639208033/666694125300333278416066000000000000", + "alpha_below_one_fourth": "166646072691083388250600666639208033/666694125300333278416066000000000000", + "alpha_positive": "27458633999931353415833360791967/666694125300333278416066000000000000", + "artificial_boundary": "18667545342947664950502062499917624099/2666776501201333113664264000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "999958812049250082375901/1000000000000000000000000", + "c_positive": "41187950749917624099/1000000000000000000000000", + "cell_above_band": "666666666665666652937349833360791967/1333388250600666556832132000000000000", + "compact_leaf": "26927049500082375901/1000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "13729317166639208033/333347062650166639208033", + "epsilon_positive": "333333333333000000000000/333347062650166639208033", + "g1_above_kappa": "3408408254232349301008147/3333470626501666392080330000000000000", + "g2_above_kappa": "4241/2500000000000", + "g3_above_kappa": "74937627730682908927817/3333470626501666392080330000000000000", + "g4_above_kappa": "4241/2500000000000", + "g5_above_kappa": "5299956450675231223831763/13333882506006665568321320000000000000", + "g6_above_kappa": "11966897703678564007992423/13333882506006665568321320000000000000", + "g7_above_kappa": "3333196040161742016173902349301008147/3333470626501666392080330000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "13729317166639208033/333347062650166639208033", + "lambda_above_internal": "82375901/2000000000000000000000000", + "lambda_above_sigma": "61024099000082375901/2000000000000000000000000", + "lambda_above_tau": "82375901/2000000000000000000000000", + "lambda_prime_above_lambda": "82375901/2000000000000000000000000", + "lambda_prime_below_one": "41187950499917624099/1000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "21966907133275670202633360791967/533355300240266622732852800000000000", + "phase_leaf_above_bit": "53854099/2000000000000", + "phase_local": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "prime_interval_packing": "13729317166639208033/333347062650166639208033", + "q_below_internal": "82375901/1000000000000000000000000", + "q_below_leaf": "26927049500082375901/1000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "41187950499917624099/1000000000000000000000000", + "record_suffix": "13729317166639208033/333347062650166639208033", + "row_product_gap": "6548/25", + "short_record_fallback": "666639206901368489075295096355187267/666694125300333278416066000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "13729317166639208033/333347062650166639208033", + "g2": "82375901/2000000000000", + "g3": "13729316833292145382833360791967/333347062650166639208033000000000000", + "g4": "82375901/2000000000000", + "g5": "21966907133275670202633360791967/533355300240266622732852800000000000", + "g6": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "g7": "333333333333000000000000/333347062650166639208033" + }, + "minimum_margin": "13729316833292145382833360791967/333347062650166639208033000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "82375901/2000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "27458633999931353415833360791967/666694125300333278416066000000000000", + "beta": "1/20", + "c": "41187950749917624099/1000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "333333333333000000000000/333347062650166639208033", + "h": "1/1000000000000", + "kappa": "411862541/10000000000000", + "lambda_": "1999917624099000082375901/2000000000000000000000000", + "lambda_prime": "999958812049500082375901/1000000000000000000000000", + "q": "41187950499917624099/1000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "1999917624099/2000000000000" + }, + "recurrence": { + "internal": "1999917624099/2000000000000", + "leaf": "199986377/200000000", + "reservations": "999958812049250082375901/1000000000000000000000000" + }, + "scoped_limit": "82375901/2000082375901" + }, + "bit": { + "counts": { + "L": 2226400, + "N": 4073300, + "W": 177530859, + "axes": [ + { + "copied_blocks": [ + 0, + 295366, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + "fixed": { + "R": 36432, + "blocks": [ + 0, + 295343, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 23 + ], + "crt_disagreements": 0, + "crt_matrices": 5379, + "distinct_matrices": 68025, + "field_prime": 2305843009213693951, + "frames": 33627, + "h": 23, + "loss": 506, + "rank_sum": 838948, + "v": 1771 + }, + "original": { + "R": 36432, + "baseline_R": 42434, + "c": 37098, + "h": 23, + "histogram": [ + 5244, + 41676, + 30595, + 6012, + 15568, + 7215, + 4691, + 1842, + 4185, + 1306, + 3391, + 976, + 3359, + 939, + 3937, + 1398, + 3343, + 1467, + 8640, + 6346, + 0, + 220, + 23, + 23 + ], + "loss": 506, + "matched": 6002, + "orientation_changes": 717, + "q": 5336, + "rank_sum": 838948, + "v": 1771 + } + }, + { + "copied_blocks": [ + 0, + 394005, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + }, + "fixed": { + "R": 48329, + "blocks": [ + 0, + 393980, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 25 + ], + "crt_disagreements": 0, + "crt_matrices": 7186, + "distinct_matrices": 91415, + "field_prime": 2305843009213693951, + "frames": 44621, + "h": 25, + "loss": 600, + "rank_sum": 1209425, + "v": 2300 + }, + "original": { + "R": 48329, + "baseline_R": 56044, + "c": 49119, + "h": 25, + "histogram": [ + 6800, + 54247, + 39973, + 7714, + 20972, + 9090, + 4755, + 2916, + 5934, + 1457, + 3588, + 1332, + 4566, + 1032, + 3588, + 1281, + 4949, + 1932, + 4238, + 1657, + 11304, + 8160, + 0, + 286, + 25, + 25 + ], + "loss": 600, + "matched": 7715, + "orientation_changes": 3214, + "q": 6925, + "rank_sum": 1209425, + "v": 2300 + } + } + ], + "child_multiplicities": { + "1": 1470810555, + "10": 17713956, + "11": 17077983, + "12": 11614448, + "13": 10148060, + "14": 7290333, + "15": 5881721, + "16": 3695640, + "17": 10837991, + "18": 1620511, + "19": 731423, + "2": 109787050, + "20": 524975, + "21": 16346100, + "22": 116886, + "23": 91984475, + "25": 85590659, + "3": 74203405, + "4": 47288874, + "481": 8146600, + "5": 42136207, + "525": 85590659, + "529": 83793600, + "6": 34427343, + "7": 35567660, + "8": 24924065, + "9": 22825959 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 83793600, + "529": 83793600 + }, + "exterior_25": { + "25": 85590659, + "525": 85590659 + }, + "internal_23": { + "1": 679341800, + "10": 8086800, + "11": 7739500, + "12": 5260100, + "13": 4374600, + "14": 2999200, + "15": 2249400, + "16": 1322500, + "17": 883200, + "18": 485300, + "2": 53203600, + "20": 126500, + "21": 52900, + "3": 38686000, + "4": 24453600, + "5": 20499900, + "6": 16304700, + "7": 17574300, + "8": 12323400, + "9": 10731800 + }, + "internal_25": { + "1": 697782855, + "10": 9627156, + "11": 9338483, + "12": 6354348, + "13": 5773460, + "14": 4291133, + "15": 3632321, + "16": 2373140, + "17": 1808191, + "18": 1135211, + "19": 731423, + "2": 56583450, + "20": 398475, + "22": 116886, + "23": 44275, + "3": 35517405, + "4": 22835274, + "5": 21636307, + "6": 18122643, + "7": 17993360, + "8": 12600665, + "9": 12094159 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 102078397025 + }, + "exponent": "1999917624099/2000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "53259257699997876183736668495459569052785792230580620090082251565468500625309917919185182222272809724224279711231586883132969347622582523/53259257700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "82375901/2000000000000", + "strict_gap": "86357381254751862420191545704798752662973008553534107565392680757691400260904026452418824652737693710240154702379980434099259423216638822857814148601254263753449261128928174148567282159375696049922777800392880416655334347910898177298462563939142973301126073080543562257726240755581747563199696454706185011538581049130537795661088578393521117824130621795646880463274069889057323677109569884775881772801092142271729230590294146536649396307431553962131510800493187347962391626149529196354368034923540602827584261314666865682234666101889906754883827341580055378422372738052380207834708917356370987627010158783063063125894233253844345938226133499179262281464327246428498583476060857838740222705374132954626560591512450850356668750508178861378641462227199236700632011495218187888904536056810333037554362038569390969321460209586420356538594375798712535346414221488555689979502778312890748219238773997515630296103388733080327724435692020757582285245414049886745837906270620637509081126350164913074203246001707064231855337207315125811248151826010206143889771624137487832831018986105280880723364301345037770870540726794365290209985707605672563008298333698438513936108259/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000", + "upper": "2165940252601372784296236000020593083647617867462841476279305086888009256377625415940898150796257728944348499946538153344121051225287760019875091065436588571323213837914854091327650301867139439668907881337729538978936109245127232713850526728262779048520241484236058379648589825858960095635345716281532838210892742470454544563413329512341540575399345230160294764208504164645058090672700282213212249184290484446518682525973056622514659633237643672009277869217096639483865484322488173558485118729435839295151900341521849560561667394825750388800070618416176223140977318728500263303812327512540197098237503555469520961476602423236911363430136975060274545307031332276130295751430329335183539439189658880340788133471383927380215760170412939867434297900395752498035130674231798452741356243608657815950087296037913527105015002919210443826497716744881621478142349329099529642920943387319698979249846386671662169038464160435599552782978926172147697357480056718541348895072631523335416188177976414941135950546362600954687550006808395614924186050708131879487056899055922026517731796737367235908268487455800472679267394707376152418619446993501890014292394327436991701666301561486063891741/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000" + }, + "comparison": { + "PR36": "384569/10000000000", + "PR37": "3850771033/100000000000000", + "PR38": "242889/6250000000", + "PR39": "971668963/25000000000000", + "PR40": "1959367447/50000000000000", + "PR41": "1008542031/25000000000000", + "PR42": "4099494519/100000000000000", + "PR43": "409953/10000000000", + "PR44": "2050314627/50000000000000", + "PR46": "82012589/2000000000000", + "PR47": "4105106623/100000000000000", + "dyadic_corollary": "2^-15", + "next_dyadic_not_reached": "2^-14", + "ratio_PR36": "4627669/4321000", + "ratio_PR37": "4118625410/3850771033", + "ratio_PR38": "411862541/388622400", + "ratio_PR39": "2059312705/1943337926", + "ratio_PR40": "89535335/85189889", + "ratio_PR41": "2059312705/2017084062", + "ratio_PR42": "4118625410/4099494519", + "ratio_PR43": "411862541/409953000", + "ratio_PR44": "23138345/23037243", + "ratio_PR46": "411862541/410062945", + "ratio_PR47": "4118625410/4105106623" + }, + "complex": { + "child_width_multiplicities": [ + [ + 1, + 540572760 + ], + [ + 2, + 336785904 + ], + [ + 3, + 161899920 + ], + [ + 4, + 117097344 + ], + [ + 5, + 93051504 + ], + [ + 6, + 64779624 + ], + [ + 7, + 52822224 + ], + [ + 8, + 70243992 + ], + [ + 9, + 32150664 + ], + [ + 10, + 50699376 + ], + [ + 11, + 22728888 + ], + [ + 12, + 47580624 + ], + [ + 13, + 26208000 + ], + [ + 14, + 44907408 + ], + [ + 15, + 24714144 + ], + [ + 16, + 49192416 + ], + [ + 17, + 20815704 + ], + [ + 18, + 52501176 + ], + [ + 19, + 22624056 + ], + [ + 20, + 46348848 + ], + [ + 21, + 37759176 + ], + [ + 22, + 58961448 + ], + [ + 23, + 40773096 + ], + [ + 24, + 38781288 + ], + [ + 25, + 2208024 + ], + [ + 26, + 3741192 + ], + [ + 27, + 43112160 + ], + [ + 729, + 21464352 + ], + [ + 756, + 516232080 + ] + ], + "counts": { + "B1": 258116040, + "B2": 258116040, + "L": 4953312, + "N": 10732176, + "W": 537696432, + "child_multiplicities": { + "1": 540572760, + "10": 50699376, + "11": 22728888, + "12": 47580624, + "13": 26208000, + "14": 44907408, + "15": 24714144, + "16": 49192416, + "17": 20815704, + "18": 52501176, + "19": 22624056, + "2": 336785904, + "20": 46348848, + "21": 37759176, + "22": 58961448, + "23": 40773096, + "24": 38781288, + "25": 2208024, + "26": 3741192, + "27": 43112160, + "3": 161899920, + "4": 117097344, + "5": 93051504, + "6": 64779624, + "7": 52822224, + "729": 21464352, + "756": 516232080, + "8": 70243992, + "9": 32150664 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + }, + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + } + ], + "deficit": 5778864, + "dimensions": [ + 28, + 28 + ], + "m": 784, + "maxchild": 756, + "total_rank": 421548223824 + }, + "enclosure": "1+u+u^2/(2(1-u/3))", + "exponent": "9999283/10000000", + "logarithm_upper_bounds": { + "1": "6664409020351/1000000000000", + "10": "4361823927357/1000000000000", + "11": "4266513747553/1000000000000", + "12": "4179502370563/1000000000000", + "13": "4099459662889/1000000000000", + "14": "251584480671/62500000000", + "15": "3956358819249/1000000000000", + "16": "3891820298111/1000000000000", + "17": "766239135259/200000000000", + "18": "754807452491/200000000000", + "19": "116249063787/31250000000", + "2": "5971261839791/1000000000000", + "20": "3668676746797/1000000000000", + "21": "3619886582627/1000000000000", + "22": "3573366566993/1000000000000", + "23": "1764457402211/500000000000", + "24": "3486355190003/1000000000000", + "25": "3445533195483/1000000000000", + "26": "3406312482329/1000000000000", + "27": "3368572154347/1000000000000", + "3": "5565796731683/1000000000000", + "4": "5278114659231/1000000000000", + "5": "5054971107917/1000000000000", + "6": "4872649551123/1000000000000", + "7": "2303954527/488281250", + "729": "36367644171/500000000000", + "756": "36367644171/1000000000000", + "8": "4584967478671/1000000000000", + "9": "893436888603/200000000000" + }, + "moment_upper": "93758349669268174319758205865410416369669365194946428036263324886438920093698460010858713501882394775456058947688857504496378147740660153782705622445171968788940999158190850771009870660961702451316489933657453673410640256343163004633261783258126014322372415015196690665271304600343211202483869148840537844645971747977878306709988702092424295624899718047484041316483866997928443286860331217210569026228462754909148637641705274404842932443778349005557711550186032457951943018925944743009981965944635321901441335715694527157550303349516161701526749290641/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000", + "saving": "717/10000000", + "strict_gap": "799473866277846996709566868461626852274119892073214726922559004722049349860610885265197736074614901241077938822464125203618856630115942991121576126038522365700920238764631890201019076228268900099948049068998325124717427528599065415563911051089321775180102241577945383026678416698968257186466124918166171990724170465498339188718920943864567240237109440116392647851672422772615476546648773879307167872400514966177486129179086589485432748351924928772206631719941743038644792509730653397329958725804455602353626204716908969469523838298473250709359/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000" + }, + "controls": { + "PR40_bit_at_new_lower": "225818511431434901143450129613675250367060741840259317558179152603547745091720641143418160534936518333388387416533785674009254042754668107/225818314800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR41_bit_at_new_lower": "71351390501120105382667951093623831543963199017523832465221628611249289862638259523399377589566608499665993308315735243596852498486401143/71351363600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR42_bit_at_new_lower": "35675684798200343049340019110122720910157671615408029067001840793135754771116659125262690868038927797668077298780777541247295863817121613/35675681800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR43_bit_at_new_lower": "39385956009599315979378903721423208346195507187143417888392878949339863777130231502525440065262077654352230783095147155214119706814579573/39385952707200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR44_bit_at_new_lower": "27972979985809926698189510242186111721799641298372934454141074653606330355033987247203097142447598338739628213358928631749381262069447381/27972977775000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR46_bit_at_new_lower": "53513526929327323279826583353483061995125044145882592243457696059568495005255560229136252301198123695755265918459690181269467077912590743/53513522700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR47_bit_at_new_lower": "106900961147318756414776323709299143180165013078166700653729842113479441057835447594482895468854894319066737732648871855706927505431906281/106900954800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "old_bit_at_new_lower": "28227323527781237813430958008983158845436241200945201577976121288826000958450463883474541742600969253008151638715984357964612558619308229/28227289350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 9432294401, + "compact": 37729177601, + "geometry": 3999945085748, + "guard": 5390148, + "log_p": 25, + "normalization": 14000000000000, + "period": 75458355201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 576606260, + "rhs": 112000000194304, + "rhs_bits": 47 + }, + "compact": { + "exponent": 576606260, + "rhs": 448000000777152, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 576606260, + "rhs": 224000000388536, + "rhs_bits": 48 + }, + "rows": { + "exponent": 576606260, + "rhs": 112000000194304000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1153212520, + "rhs": 224000000194304, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1153212520, + "rhs": 896000000777152, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1153212520, + "rhs": 448000000388536, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1153212520, + "rhs": 224000000194304000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2306425041, + "rhs": 448000000194304, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2306425041, + "rhs": 1792000000777152, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2306425041, + "rhs": 896000000388536, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2306425041, + "rhs": 448000000194304000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 4612850082, + "rhs": 896000000194304, + "rhs_bits": 50 + }, + "compact": { + "exponent": 4612850082, + "rhs": 3584000000777152, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 4612850082, + "rhs": 1792000000388536, + "rhs_bits": 51 + }, + "rows": { + "exponent": 4612850082, + "rhs": 896000000194304000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 9225700164, + "rhs": 1792000000194304, + "rhs_bits": 51 + }, + "compact": { + "exponent": 9225700164, + "rhs": 7168000000777152, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 9225700164, + "rhs": 3584000000388536, + "rhs_bits": 52 + }, + "rows": { + "exponent": 9225700164, + "rhs": 1792000000194304000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 18451400329, + "rhs": 3584000000194304, + "rhs_bits": 52 + }, + "compact": { + "exponent": 18451400329, + "rhs": 14336000000777152, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 18451400329, + "rhs": 7168000000388536, + "rhs_bits": 53 + }, + "rows": { + "exponent": 18451400329, + "rhs": 3584000000194304000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "geometry": { + "accepted_profile": { + "blocks": [ + 21, + 17, + 481 + ], + "singletons": 9 + }, + "column_tree": [ + [ + 0, + 26 + ], + [ + 1, + 27 + ], + [ + 2, + 28 + ], + [ + 3, + 29 + ], + [ + 4, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 32 + ], + [ + 7, + 33 + ], + [ + 8, + 34 + ], + [ + 9, + 35 + ], + [ + 10, + 36 + ], + [ + 11, + 37 + ], + [ + 12, + 38 + ], + [ + 13, + 39 + ], + [ + 14, + 40 + ], + [ + 15, + 41 + ], + [ + 16, + 42 + ], + [ + 17, + 43 + ], + [ + 18, + 44 + ], + [ + 19, + 45 + ], + [ + 20, + 46 + ], + [ + 21, + 47 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 0, + 25 + ], + [ + 1, + 26 + ], + [ + 2, + 27 + ], + [ + 3, + 28 + ], + [ + 4, + 29 + ], + [ + 5, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 32 + ], + [ + 8, + 33 + ], + [ + 9, + 34 + ], + [ + 10, + 35 + ], + [ + 11, + 36 + ], + [ + 12, + 37 + ], + [ + 13, + 38 + ], + [ + 14, + 39 + ], + [ + 15, + 40 + ], + [ + 16, + 41 + ], + [ + 17, + 42 + ], + [ + 18, + 43 + ], + [ + 19, + 44 + ], + [ + 20, + 45 + ], + [ + 21, + 46 + ], + [ + 22, + 47 + ] + ], + "dimensions": [ + 23, + 25 + ], + "fallback_profile": { + "blocks": [ + 481 + ], + "singletons": 47 + }, + "inherited": { + "actual_local_and_auxiliary_contractions": true, + "actual_null_corner": true, + "author_witness": { + "nu_denominator": 105625, + "nu_numerators": [ + 1, + 8, + 27, + 64, + 125, + 216, + 343, + 512, + 729, + 1000, + 1331, + 1728, + 2197, + 2744, + 3375, + 4096, + 4913, + 5832, + 6859, + 8000, + 9261, + 10648, + 12167, + 13824, + 15625 + ], + "p": "all ones", + "pivot_values": [ + "-1", + "1081", + "4324/9", + "1081/4", + "4324/25", + "1081/9", + "4324/49", + "1081/16", + "4324/81", + "1081/25", + "4324/121", + "1081/36", + "4324/169", + "1081/49", + "4324/225", + "1081/64", + "4324/289", + "1081/81", + "4324/361", + "1081/100", + "4324/441", + "1081/121", + "142812651751657877942589556478847433551977787425536169375/19268941635246593353904372229207380456680824753881088", + "-3301880224346962861941006006629802656529005188895982595479857959591861547197179585193848574930840744013899375/11019785351154517046629105770544670194180926949645355094282023563638938723955445008552317770143413305344", + "74907043800035918709206033348544416861478577835267509060516462595758002954160059826338653120940771668514812472/60116162482420807682130286875371919099299138623504462366497186337585098720021476289373665451631146909675", + "10940299784531588304345150315393704447900044902431187377875452629639845445581682724600127025820276398750/30226196505888073803577264188652004854088012439298071298271200975120006873557454163131322338706864804567", + "-5831395627680712592570933775404123356087221102691725998080707457029019970438674252017627955200000/622802236364140798653392176212549886737354011381551974831022707159458930937546871107955711994323", + "-14843046800460539712231070321073001452509820092416000/38851899814728176802610554213615671238028162148034359", + "845", + "105625/216", + "105625/343", + "105625/512", + "105625/729", + "845/8", + "105625/1331", + "105625/1728", + "625/13", + "105625/2744", + "845/27", + "105625/4096", + "105625/4913", + "105625/5832", + "105625/6859", + "845/64", + "105625/9261", + "230987404375/5999554", + "-228361250/22253" + ], + "v": "all ones", + "xi_denominator": 4324, + "xi_numerators": [ + 1, + 4, + 9, + 16, + 25, + 36, + 49, + 64, + 81, + 100, + 121, + 144, + 169, + 196, + 225, + 256, + 289, + 324, + 361, + 400, + 441, + 484, + 529 + ] + }, + "both_trees": true, + "columns": [ + [ + 0, + 3 + ], + [ + 1, + 4 + ], + [ + 2, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 14 + ], + [ + 12, + 15 + ], + [ + 13, + 16 + ], + [ + 14, + 17 + ], + [ + 15, + 18 + ], + [ + 16, + 19 + ], + [ + 17, + 20 + ], + [ + 18, + 21 + ], + [ + 19, + 22 + ], + [ + 20, + 23 + ], + [ + 21, + 24 + ], + [ + 22, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 14 + ], + [ + 13, + 15 + ], + [ + 14, + 16 + ], + [ + 15, + 17 + ], + [ + 16, + 18 + ], + [ + 17, + 19 + ], + [ + 18, + 20 + ], + [ + 19, + 21 + ], + [ + 20, + 22 + ], + [ + 21, + 23 + ], + [ + 22, + 24 + ] + ], + "cuts": [ + { + "pivot": 46, + "row": 0, + "trivial_suffix_bound": 0 + }, + { + "left_rank": 1, + "pivot": 25, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 1, + "selected": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 26, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 2, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 27, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 3, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 28, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 4, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 29, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 5, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 30, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 6, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 31, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 7, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 32, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 8, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 33, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 9, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 34, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 10, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 35, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 11, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 36, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 12, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 37, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 13, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 38, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 14, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 39, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 15, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 40, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 16, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 41, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 17, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 42, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 18, + "selected": [ + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 43, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 19, + "selected": [ + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 44, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 20, + "selected": [ + 21, + 22, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 45, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 21, + "selected": [ + 22, + 45, + 46, + 47, + 48 + ] + }, + { + "pivot": 24, + "row": 22, + "trivial_suffix_bound": 22 + }, + { + "pivot": 23, + "row": 23, + "trivial_suffix_bound": 23 + }, + { + "pivot": 22, + "row": 24, + "trivial_suffix_bound": 24 + }, + { + "pivot": 21, + "row": 25, + "trivial_suffix_bound": 25 + }, + { + "pivot": 20, + "row": 26, + "trivial_suffix_bound": 26 + }, + { + "pivot": 19, + "row": 27, + "trivial_suffix_bound": 27 + }, + { + "left_rank": 22, + "pivot": 2, + "preceding_right_pivots": 28, + "right_rank": 6, + "row": 28, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 21, + "pivot": 3, + "preceding_right_pivots": 28, + "right_rank": 7, + "row": 29, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 20, + "pivot": 4, + "preceding_right_pivots": 28, + "right_rank": 8, + "row": 30, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 19, + "pivot": 5, + "preceding_right_pivots": 28, + "right_rank": 9, + "row": 31, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 18, + "pivot": 6, + "preceding_right_pivots": 28, + "right_rank": 10, + "row": 32, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 17, + "pivot": 7, + "preceding_right_pivots": 28, + "right_rank": 11, + "row": 33, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 16, + "pivot": 8, + "preceding_right_pivots": 28, + "right_rank": 12, + "row": 34, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 15, + "pivot": 9, + "preceding_right_pivots": 28, + "right_rank": 13, + "row": 35, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 14, + "pivot": 10, + "preceding_right_pivots": 28, + "right_rank": 14, + "row": 36, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 13, + "pivot": 11, + "preceding_right_pivots": 28, + "right_rank": 15, + "row": 37, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 12, + "pivot": 12, + "preceding_right_pivots": 28, + "right_rank": 16, + "row": 38, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 11, + "pivot": 13, + "preceding_right_pivots": 28, + "right_rank": 17, + "row": 39, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 10, + "pivot": 14, + "preceding_right_pivots": 28, + "right_rank": 18, + "row": 40, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 9, + "pivot": 15, + "preceding_right_pivots": 28, + "right_rank": 19, + "row": 41, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 8, + "pivot": 16, + "preceding_right_pivots": 28, + "right_rank": 20, + "row": 42, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 7, + "pivot": 17, + "preceding_right_pivots": 28, + "right_rank": 21, + "row": 43, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 6, + "pivot": 18, + "preceding_right_pivots": 28, + "right_rank": 22, + "row": 44, + "selected": [ + 19, + 20, + 21, + 22, + 44, + 45, + 46, + 47 + ] + }, + { + "pivot": 1, + "row": 45, + "trivial_suffix_bound": 45 + }, + { + "pivot": 0, + "row": 46, + "trivial_suffix_bound": 46 + } + ], + "d": 47, + "dimensions": [ + 23, + 25 + ], + "m": 575, + "negative_controls": [ + "incorrect_unshifted_auxiliary_formula", + "old_25_23_data_residue_offset" + ], + "permutations": [ + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 2, + 3, + 1, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 3, + 4, + 2, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0, + 1 + ], + [ + 4, + 5, + 0, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 1, + 2 + ], + [ + 5, + 6, + 0, + 1, + 4, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 2, + 3 + ], + [ + 6, + 7, + 0, + 1, + 2, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 3, + 4 + ], + [ + 7, + 8, + 0, + 1, + 2, + 3, + 6, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 4, + 5 + ], + [ + 8, + 9, + 0, + 1, + 2, + 3, + 4, + 7, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 5, + 6 + ], + [ + 9, + 10, + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 6, + 7 + ], + [ + 10, + 11, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 9, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 7, + 8 + ], + [ + 11, + 12, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 8, + 9 + ], + [ + 12, + 13, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 11, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 9, + 10 + ], + [ + 13, + 14, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 12, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 10, + 11 + ], + [ + 14, + 15, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 11, + 12 + ], + [ + 15, + 16, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 12, + 13 + ], + [ + 16, + 17, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 15, + 18, + 19, + 20, + 21, + 22, + 13, + 14 + ], + [ + 17, + 18, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 16, + 19, + 20, + 21, + 22, + 14, + 15 + ], + [ + 18, + 19, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 17, + 20, + 21, + 22, + 15, + 16 + ], + [ + 19, + 20, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 18, + 21, + 22, + 16, + 17 + ], + [ + 20, + 21, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 19, + 22, + 17, + 18 + ], + [ + 21, + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 20, + 18, + 19 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 21, + 19, + 20 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "physical_blocks": [ + { + "columns": [ + 553, + 573 + ], + "rows": [ + 1, + 21 + ] + }, + { + "columns": [ + 530, + 546 + ], + "rows": [ + 28, + 44 + ] + }, + { + "columns": [ + 47, + 527 + ], + "rows": [ + 47, + 527 + ] + } + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "profile": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 21, + 17, + 481 + ], + "rank": 528, + "rational_controls": [ + { + "degree": 1, + "left_weights": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "ordered_prefix_determinants": [ + "-136/22425", + "-136/1681875", + "-1496/1135265625", + "-1496/58946484375", + "-1496/2652591796875", + "-25432/1790499462890625", + "-483208/1208587137451171875", + "-3382456/271932105926513671875", + "-3382456/7980616152191162109375", + "-3382456/215476636109161376953125", + "-3382456/5386915902729034423828125", + "-98091224/3636168234342098236083984375", + "-3040827944/2454413558180916309356689453125", + "-33449107384/552243050590706169605255126953125", + "-234143751688/74552811829745332896709442138671875", + "-8663318812456/50323147985078099705278873443603515625", + "-112623144561928/11322708296642572433687746524810791015625", + "-4617548927039048/7642828100233736392739228904247283935546875", + "-198554603862679064/5158908967657772065098979510366916656494140625", + "-198554603862679064/77383634514866580976484692655503749847412109375", + "-9332066381545916008/52233953297534942159127167542465031147003173828125", + "-457271252695749884392/35257918475836085957410838091163896024227142333984375", + "-774427803494826766413381910805757663636935962869953/934698078008949744645355209409485648384168738776353571529398323036730289459228515625", + "22488141150263136890277253182027357481046933636363407735902104533297154704/30739301928905317568582693128157367185453821539556669670738239185018288815279232907414552755653858184814453125", + "43781442323389343420444995260351594325182959245296311928874937920867383808/340409306546025553815045379456261214387062690382497934501879019122980309472907060715442639775574207305908203125", + "5223914806424997682784519984030088376145366436712067460675070411721763904/256160849407544313071522442734644726545448512829638913922818659875152406793993607561787939630448818206787109375", + "-2611659069095967460510300272690333032678968481792/134561904785955098423573914776839656121083847689766160464250788209028542041778564453125", + "8147026035721446555641344/421291420783618973406213148627626540264827781356871128082275390625", + "2962554922080526020233216/9689702678023236388342902418435410426091038971208035945892333984375", + "2962554922080526020233216/502184990793017597886518156006112537682878246414475142955780029296875", + "100726867350737884687929344/750766561235561308840344643229138243835902978389640338718891143798828125", + "788039609273419921382035456/224479201809432831343263048325512334906934990538502461276948451995849609375", + "2322643058911132399862841344/22373093780340138857211883816442729379057854057004078640602529048919677734375", + "331806151273018914266120192/96950073048140601714584829871251827309250700913684340775944292545318603515625", + "663612302546037828532240384/5333805218816503343929599000196790531245736561467257692129351198673248291015625", + "7299735328006416113854644224/1476673852246420833180509352832259600780069659146953749950625933706760406494140625", + "846769298048744269207138729984/3973729336395118462088750668471610585699167452764452541117134387604892253875732421875", + "905167180672795598117975883776/91395774737087724628041265374847043471080851413582408445694090914912521839141845703125", + "4496636962051952326134460841984/9109112215463076554594779449026421999284391524220380041754177727852948009967803955078125", + "2861496248578515116631020535808/108944982096938395592953562210356007111441322629675745299379965625121258199214935302734375", + "242000825594068707006509165314048/162872748234922901411465575504482230631604777331365239222573048609556281007826328277587890625", + "111189568516193730246233940819968/1248691069801075577487902745534363768175636626207133500706393372673264821060001850128173828125", + "9117544618327885880191183147237376/1617887396105593589898492657297357322299566522022375972415250346526993453153409063816070556640625", + "181683754955460555222346259299827712/483748331435572483379649304531909839367570390084690415752159853611571042492869310081005096435546875", + "16900814414461446997427559004635136/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625", + "7911019513152166679646942512807936/385708669597963126748040378813442778589076124360859824826388789946292644547647796571254730224609375", + "-494438719572010417477933907050496/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625" + ], + "pivot_values": [ + "-136/22425", + "1/75", + "11/675", + "13/675", + "1/45", + "17/675", + "19/675", + "7/225", + "23/675", + "1/27", + "1/25", + "29/675", + "31/675", + "11/225", + "7/135", + "37/675", + "13/225", + "41/675", + "43/675", + "1/15", + "47/675", + "49/675", + "90780708748082000078232473828014673925846401/1421023343629369829514948334235558745343301400", + "-18222683405075170949504376828173428931220504447233253567507707755072724400/20637750563429036160721040917538741498726591150217622165190926435667742044567", + "1507779263688153408612263867384557457627474361764031150611764443703341024/8576472198888619808919513649778290671980909639378391470707562825836542419", + "498070958903403796923651618375317737393961914724779391180435603668624811/3141206799350319601275549723717828036723904920341731563774509257715293800", + "-279771447951617034403030589935947704264107576270394945571233421944416/293962792978597558680101289617539486952958045283167061487567737754451", + "-7203444964173917251700002130749899185/7229663935460457778827016360402446746516", + "4/253", + "75/3887", + "34/1495", + "133/5083", + "168/5681", + "3/91", + "250/6877", + "297/7475", + "116/2691", + "31/667", + "462/9269", + "175/3289", + "592/10465", + "51/851", + "246/3887", + "817/12259", + "900/12857", + "110/141", + "-3/80" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + }, + { + "degree": 2, + "left_weights": [ + 2, + 5, + 10, + 17, + 26, + 37, + 50, + 65, + 82, + 101, + 122, + 145, + 170, + 197, + 226, + 257, + 290, + 325, + 362, + 401, + 442, + 485, + 530 + ], + "ordered_prefix_determinants": [ + "-9434/672175", + "-481134/14031653125", + "-39934122/292910758984375", + "-4911897006/6114512093798828125", + "-839934388026/127640439958050537109375", + "-190665106081902/2664494184124304962158203125", + "-55483545869833482/55621316093594866085052490234375", + "-20140527150749553966/1161094973453792829525470733642578125", + "-8922253527782052406938/24237857570847925316344201564788818359375", + "-4737716623252269828084078/505965276791450440978685207664966583251953125", + "-2970548322779173182208716906/10562025153021527955430053710006177425384521484375", + "-2171470823951575596194572058286/220482275069324396069602371196378953754901885986328125", + "-1830549904591178227592024245135098/4602567492072146767952949498724410659633576869964599609375", + "-1762819558121304633171119348065099374/96078596397006063781017820785872072519850917160511016845703125", + "-1923236137910343354789691208739023417034/2005640699787501581428747008905079513851887895725667476654052734375", + "-2359810741215991296326951113122781732700718/41867749608064095512325093810893534851658159823273308575153350830078125", + "-3235300526207124067264249976091333755532684378/873989273068337993819786333302402540028364086310830316506326198577880859375", + "-4927362701413449954443452713587101309676278307694/18244526075301555620988039707687653023092100301738582857069559395313262939453125", + "-8292751426478836273328330916967091504185176391849002/380854481821919973588125328897979756857047593798792917141327052377164363861083984375", + "-15349882890412325941930740527306086374246761501312502702/7950337308032579448652116240745327424390868520549802145325202218373306095600128173828125", + "-31114212618865784684293611048849437080598185563160442976954/165963291305180095990612926525558709984159380366477119783663596308542764745652675628662109375", + "-68793524100312249936973174029006105385202588280147739422045294/3464483705995634503804044841221038070919327065150209875483977572940830214065499603748321533203125", + "-320939889277029603849885218613819697637636425903389849074463084765835708779339849991808742586501/3072430179236252823264716186856353699802821337240763732623601650174243307843734253380457949016146823595363457570783793926239013671875", + "1245875627001486003524925840693082579900506702795220917872585680790449852841448300695325314605332716089358256276075666345371933435627513884/330392547940061126524090579005410197690598250921499159106894411964503315752339204942691190056398718416654087768414819695413626236548660752671835449945092477719299495220184326171875", + "-191122033997905806909528288458719256707212395642607937861919035317221617214725016921351463139805611093698337401145528199270922701922964576/594706586292110027743363042209738355843076851658698486392409941536105968354210568896844142101517693149977357983146675451744527225787589354809303809901166459894739091396331787109375", + "-33866419223477871432738970551480649008242390490093325529817983170572951863931838751688060529213753137420036470368457792949569488757290928/66078509588012225304818115801082039538119650184299831821378882392900663150467840988538238011279743683330817553682963939082725247309732150534367089989018495543859899044036865234375", + "-2451948467107434017727241549738357444604312885323666172115751274420393797285211501893659384900192544/6057064308553699886924805654804969362527607504292870424430510150921615686976776716332276924490573394820047692377329440205357968807220458984375", + "2201445419163520268278455908505270834917331925591970045434279936/4344364695505523672609278644785573695044342470968858137422975269751647398042138092932873405516147613525390625", + "2174921980378417614443775716836532632087002625283633056935071744/1258996888757500760322168951258859256823850448086775088225178233174027415952611619331946712918579578399658203125", + "17134141455176314377203403818004879028392727999185694570488492032/1824286491809618601706822810374087063137759299277737102838283259869165725715334236411990787019021809101104736328125", + "5322405414128979339697604701782357685556520034273366808159109472256/71371560419067708554576028810265408171138557065642908674342155975861370687161021331146315560545190237462520599365234375", + "84150277670964347357597811782805646402917843185053363323713849761792/103417391047229109695580665746074576439979769188116574669121784009023126125696319908831011247229980654083192348480224609375", + "209941929859519299593182169602463571438207402585390865199368573632512/17982215955292197593867566159927447351383682266429710003466895803488941170736076105747536235668349036131985485553741455078125", + "9992194826950178895513521609426344693492863070159223080026145583054848/46901215654593109764325386058322768181878920087301969631042357634659856361513833699010724009870187956039444543421268463134765625", + "109124692037889312633170242768407800512682779985170025420240389008621568/22653287161168472016169161466169897031847518402166851331793458737540710622611181676622179696767300782767051714472472667694091796875", + "39042595325895008480908316179632546796986793266219560450777192738694791168/295421517868798043562862034680321627192323487482657908217918495396268407229472420244829845425542369508065121408435516059398651123046875", + "16659792996908940891599834705894687983008977019464080574742639247953487396864/3852592014526995286103283794266074340215090600261341781069875098462736298679549832412826014194498040754677248287407564930617809295654296875", + "185719087731615539433169703171458019662845627539825981673840994844833062649856/1116481165809923233912731643578308343794333255955736848154049803534500979357333541433236978913565532210705466553690712316893041133880615234375", + "2404434310205043887750431957785637991222179334483583349926809748204635878719488/323556241851715753187909630308993758031597777575972538595043633064298383817755260307352076489151291234662444207259568429435603320598602294921875", + "4829699560648966987500346629822372117190741474977131949997377932265212855191994368/12658490849964675411970588466578762795470199852104773627453892056374545670102039049004535288485065966973698804720616095664809108711779117584228515625", + "409191979091683423027137525555454761026956001373085439657248058470213276862343544832/18342153241598814671945382688072627290636319585699816986180689589686716675977854582007571633014860586144889568040172722618308398523367941379547119140625", + "117504128978824269807125367332426910092554903191363109541085885621682345120306569674752/79733340141230047378946578545051710832396081239037104438927457646368157390475733867986913888715598967971834952270630825221786608381080441176891326904296875", + "22712493937014142339480551855454264061522417545964702228013743152091221605814355635994624/207960497756356209573768466161203872193055459087656575797610595033257428105838809074483468804548025228264139922512259318343463831979534006677567958831787109375", + "36253494918503860818960749547346891617571239037583841836048200658393801525761456698032128/4017796816652801968965206766234458810769831469573525044409836696042533511004805791319020617303867847410063183302936850030395721233844597009010612964630126953125", + "43301406973409151493893899756139666472465275529414446039832672779972669229865905878782181376/52396088285969190477275261438463577351249372194708340104148680353090679517013672324591347870259740598074633973453599461246390600610567389594507403671741485595703125", + "554988883545755027968047998507518444029367563360357849952925447551814126412537914860601344/5346539621017264334415843003924854831760140019868197969811089831948028522144252278019525292883646999803534078923836679719019449041894631591276265680789947509765625", + "-32310996644787107792660328680232238179791947181938641949314152768427534756894330659692544/87326813809948650795458769064105962252082286991180566840247800588484465861689453874318913117099567663457723289089332435410651001017612315990845672786235809326171875" + ], + "pivot_values": [ + "-9434/672175", + "51/20875", + "83/20875", + "123/20875", + "171/20875", + "227/20875", + "291/20875", + "363/20875", + "443/20875", + "531/20875", + "627/20875", + "731/20875", + "843/20875", + "963/20875", + "1091/20875", + "1227/20875", + "1371/20875", + "1523/20875", + "1683/20875", + "1851/20875", + "2027/20875", + "2211/20875", + "7364264693087061471645133239325113464318947332450318677985803365344435086883928283287/1399899145438201838550668546301643374764987111921828690592232299085948881442256498995830", + "-1210951777731703669691036352292953792524111331980891992800227130351123452472151452796669369975246604029157358069355455022522387772275100/33544712846985983089282237094201319680739975881928986568756767766484387589009805209852654469240424774578668316635040936193829465841865738629", + "-826652396184713697705572181914875677799361572848650250267815896700785541586180869036987297317498317879318068344055052765012641444303480/9699723739630946394225201181866559878118131769166944862329819314112498854301933136901321653501725298273550438135537194730404326055923551", + "1243707045322602512301081865587769476211813321843539571098949894460226246880045655012374097256821579930715578414980577693682368441991/779860751117654431797709605580071394150341106460990802139448959151684473194510253808478582374998413093696290890617974306615699475758", + "12643111167595480352640007527254011647390963772039223157364200341282508663461620715678931690444819848574010438266842033543946234/16007143716264495569984450694206590681902947627881894681891834877282600961170259533989395951668939340395582563226129421904093703", + "-36805546261487763107273876367617172536163293857447402763620390901622045709208640/29402264143559069033185372711699522165505155634755438669527959728477744344281439641", + "410/120267", + "323/59409", + "5902/743337", + "3589/328923", + "6050/421659", + "28795/1577961", + "4838/213969", + "21109/769419", + "89182/2725569", + "40745/1059219", + "18190/407169", + "214927/4186161", + "92434/1580859", + "117449/1777923", + "441670/5959737", + "60775/735609", + "223354/2438667", + "296891/2363680", + "-51/14308" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 11, + 27, + 51, + 83, + 123, + 171, + 227, + 291, + 363, + 443, + 531, + 627, + 731, + 843, + 963, + 1091, + 1227, + 1371, + 1523, + 1683, + 1851, + 2027, + 2211, + 2403 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + } + ], + "rows": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 14 + ], + [ + 15, + 15 + ], + [ + 16, + 16 + ], + [ + 17, + 17 + ], + [ + 18, + 18 + ], + [ + 19, + 19 + ], + [ + 20, + 20 + ], + [ + 21, + 21 + ], + [ + 22, + 22 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 1, + 0 + ], + [ + 2, + 1 + ], + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 14 + ], + [ + 16, + 15 + ], + [ + 17, + 16 + ], + [ + 18, + 17 + ], + [ + 19, + 18 + ], + [ + 20, + 19 + ], + [ + 21, + 20 + ], + [ + 22, + 21 + ] + ], + "source_sha256": { + "certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65" + }, + "status": "PASS EXACT REVERSED23/25 GEOMETRY; PR36 PHYSICAL INTEGRATION SEPARATE" + }, + "line_coordinates": { + "23": { + "dual": [ + "-5/72", + "31/72" + ], + "primal": [ + "3", + "4" + ] + }, + "25": { + "dual": [ + "-5/78", + "17/39" + ], + "primal": [ + "3", + "4" + ] + } + }, + "modular": { + "dimensions": [ + 23, + 25 + ], + "exact_recovery": [ + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 9, + 10, + 14, + 18, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 11, + 12, + 6, + 8, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 15, + 18, + 6, + 13, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 1, + 15, + 17, + 12, + 13, + 18 + ], + "pivots": [ + "-1", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 2, + 11, + 18, + 4, + 7, + 22 + ], + "pivots": [ + "-1", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "39/68", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 7, + 22, + 6, + 11, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 11, + 20, + 2, + 17, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "39/68", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 5, + 7, + 21, + 6, + 11, + 12 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 10, + 11, + 22, + 14, + 16, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 12, + 13, + 22, + 4, + 6, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + } + ], + "fallback": 0, + "fallback_pairs": [ + [ + 0, + 9, + 10, + 14, + 18, + 20, + 26 + ], + [ + 0, + 11, + 12, + 6, + 8, + 10, + 25 + ], + [ + 0, + 15, + 18, + 6, + 13, + 18, + 25 + ], + [ + 1, + 15, + 17, + 12, + 13, + 18, + 24 + ], + [ + 2, + 11, + 18, + 4, + 7, + 22, + 25 + ], + [ + 4, + 7, + 22, + 6, + 11, + 18, + 25 + ], + [ + 4, + 11, + 20, + 2, + 17, + 20, + 25 + ], + [ + 5, + 7, + 21, + 6, + 11, + 12, + 24 + ], + [ + 10, + 11, + 22, + 14, + 16, + 18, + 25 + ], + [ + 12, + 13, + 22, + 4, + 6, + 10, + 26 + ] + ], + "good": 4073300, + "nonzero_pivots": 191444880, + "ordered_zero_checks": 1409360440, + "pairs": 4073300, + "primary_fallback": 10, + "primary_good": 4073290, + "prime": 1000003, + "records": [ + [ + 0, + 1, + 2, + 2300, + 428310 + ], + [ + 0, + 1, + 3, + 2300, + 428310 + ], + [ + 0, + 1, + 4, + 2300, + 428310 + ], + [ + 0, + 1, + 5, + 2300, + 428310 + ], + [ + 0, + 1, + 6, + 2300, + 428310 + ], + [ + 0, + 1, + 7, + 2300, + 428310 + ], + [ + 0, + 1, + 8, + 2300, + 428310 + ], + [ + 0, + 1, + 9, + 2300, + 428310 + ], + [ + 0, + 1, + 10, + 2300, + 428310 + ], + [ + 0, + 1, + 11, + 2300, + 428310 + ], + [ + 0, + 1, + 12, + 2300, + 428310 + ], + [ + 0, + 1, + 13, + 2300, + 428310 + ], + [ + 0, + 1, + 14, + 2300, + 428310 + ], + [ + 0, + 1, + 15, + 2300, + 428310 + ], + [ + 0, + 1, + 16, + 2300, + 428310 + ], + [ + 0, + 1, + 17, + 2300, + 428310 + ], + [ + 0, + 1, + 18, + 2300, + 428310 + ], + [ + 0, + 1, + 19, + 2300, + 428310 + ], + [ + 0, + 1, + 20, + 2300, + 428310 + ], + [ + 0, + 1, + 21, + 2300, + 428310 + ], + [ + 0, + 1, + 22, + 2300, + 428310 + ], + [ + 0, + 2, + 3, + 2300, + 428310 + ], + [ + 0, + 2, + 4, + 2300, + 428310 + ], + [ + 0, + 2, + 5, + 2300, + 428310 + ], + [ + 0, + 2, + 6, + 2300, + 428310 + ], + [ + 0, + 2, + 7, + 2300, + 428310 + ], + [ + 0, + 2, + 8, + 2300, + 428310 + ], + [ + 0, + 2, + 9, + 2300, + 428310 + ], + [ + 0, + 2, + 10, + 2300, + 428310 + ], + [ + 0, + 2, + 11, + 2300, + 428310 + ], + [ + 0, + 2, + 12, + 2300, + 428310 + ], + [ + 0, + 2, + 13, + 2300, + 428310 + ], + [ + 0, + 2, + 14, + 2300, + 428310 + ], + [ + 0, + 2, + 15, + 2300, + 428310 + ], + [ + 0, + 2, + 16, + 2300, + 428310 + ], + [ + 0, + 2, + 17, + 2300, + 428310 + ], + [ + 0, + 2, + 18, + 2300, + 428310 + ], + [ + 0, + 2, + 19, + 2300, + 428310 + ], + [ + 0, + 2, + 20, + 2300, + 428310 + ], + [ + 0, + 2, + 21, + 2300, + 428310 + ], + [ + 0, + 2, + 22, + 2300, + 428310 + ], + [ + 0, + 3, + 4, + 2300, + 428310 + ], + [ + 0, + 3, + 5, + 2300, + 428310 + ], + [ + 0, + 3, + 6, + 2300, + 428310 + ], + [ + 0, + 3, + 7, + 2300, + 428310 + ], + [ + 0, + 3, + 8, + 2300, + 428310 + ], + [ + 0, + 3, + 9, + 2300, + 428310 + ], + [ + 0, + 3, + 10, + 2300, + 428310 + ], + [ + 0, + 3, + 11, + 2300, + 428310 + ], + [ + 0, + 3, + 12, + 2300, + 428310 + ], + [ + 0, + 3, + 13, + 2300, + 428310 + ], + [ + 0, + 3, + 14, + 2300, + 428310 + ], + [ + 0, + 3, + 15, + 2300, + 428310 + ], + [ + 0, + 3, + 16, + 2300, + 428310 + ], + [ + 0, + 3, + 17, + 2300, + 428310 + ], + [ + 0, + 3, + 18, + 2300, + 428310 + ], + [ + 0, + 3, + 19, + 2300, + 428310 + ], + [ + 0, + 3, + 20, + 2300, + 428310 + ], + [ + 0, + 3, + 21, + 2300, + 428310 + ], + [ + 0, + 3, + 22, + 2300, + 428310 + ], + [ + 0, + 4, + 5, + 2300, + 428310 + ], + [ + 0, + 4, + 6, + 2300, + 428310 + ], + [ + 0, + 4, + 7, + 2300, + 428310 + ], + [ + 0, + 4, + 8, + 2300, + 428310 + ], + [ + 0, + 4, + 9, + 2300, + 428310 + ], + [ + 0, + 4, + 10, + 2300, + 428310 + ], + [ + 0, + 4, + 11, + 2300, + 428310 + ], + [ + 0, + 4, + 12, + 2300, + 428310 + ], + [ + 0, + 4, + 13, + 2300, + 428310 + ], + [ + 0, + 4, + 14, + 2300, + 428310 + ], + [ + 0, + 4, + 15, + 2300, + 428310 + ], + [ + 0, + 4, + 16, + 2300, + 428310 + ], + [ + 0, + 4, + 17, + 2300, + 428310 + ], + [ + 0, + 4, + 18, + 2300, + 428310 + ], + [ + 0, + 4, + 19, + 2300, + 428310 + ], + [ + 0, + 4, + 20, + 2300, + 428310 + ], + [ + 0, + 4, + 21, + 2300, + 428310 + ], + [ + 0, + 4, + 22, + 2300, + 428310 + ], + [ + 0, + 5, + 6, + 2300, + 428310 + ], + [ + 0, + 5, + 7, + 2300, + 428310 + ], + [ + 0, + 5, + 8, + 2300, + 428310 + ], + [ + 0, + 5, + 9, + 2300, + 428310 + ], + [ + 0, + 5, + 10, + 2300, + 428310 + ], + [ + 0, + 5, + 11, + 2300, + 428310 + ], + [ + 0, + 5, + 12, + 2300, + 428310 + ], + [ + 0, + 5, + 13, + 2300, + 428310 + ], + [ + 0, + 5, + 14, + 2300, + 428310 + ], + [ + 0, + 5, + 15, + 2300, + 428310 + ], + [ + 0, + 5, + 16, + 2300, + 428310 + ], + [ + 0, + 5, + 17, + 2300, + 428310 + ], + [ + 0, + 5, + 18, + 2300, + 428310 + ], + [ + 0, + 5, + 19, + 2300, + 428310 + ], + [ + 0, + 5, + 20, + 2300, + 428310 + ], + [ + 0, + 5, + 21, + 2300, + 428310 + ], + [ + 0, + 5, + 22, + 2300, + 428310 + ], + [ + 0, + 6, + 7, + 2300, + 428310 + ], + [ + 0, + 6, + 8, + 2300, + 428310 + ], + [ + 0, + 6, + 9, + 2300, + 428310 + ], + [ + 0, + 6, + 10, + 2300, + 428310 + ], + [ + 0, + 6, + 11, + 2300, + 428310 + ], + [ + 0, + 6, + 12, + 2300, + 428310 + ], + [ + 0, + 6, + 13, + 2300, + 428310 + ], + [ + 0, + 6, + 14, + 2300, + 428310 + ], + [ + 0, + 6, + 15, + 2300, + 428310 + ], + [ + 0, + 6, + 16, + 2300, + 428310 + ], + [ + 0, + 6, + 17, + 2300, + 428310 + ], + [ + 0, + 6, + 18, + 2300, + 428310 + ], + [ + 0, + 6, + 19, + 2300, + 428310 + ], + [ + 0, + 6, + 20, + 2300, + 428310 + ], + [ + 0, + 6, + 21, + 2300, + 428310 + ], + [ + 0, + 6, + 22, + 2300, + 428310 + ], + [ + 0, + 7, + 8, + 2300, + 428310 + ], + [ + 0, + 7, + 9, + 2300, + 428310 + ], + [ + 0, + 7, + 10, + 2300, + 428310 + ], + [ + 0, + 7, + 11, + 2300, + 428310 + ], + [ + 0, + 7, + 12, + 2300, + 428310 + ], + [ + 0, + 7, + 13, + 2300, + 428310 + ], + [ + 0, + 7, + 14, + 2300, + 428310 + ], + [ + 0, + 7, + 15, + 2300, + 428310 + ], + [ + 0, + 7, + 16, + 2300, + 428310 + ], + [ + 0, + 7, + 17, + 2300, + 428310 + ], + [ + 0, + 7, + 18, + 2300, + 428310 + ], + [ + 0, + 7, + 19, + 2300, + 428310 + ], + [ + 0, + 7, + 20, + 2300, + 428310 + ], + [ + 0, + 7, + 21, + 2300, + 428310 + ], + [ + 0, + 7, + 22, + 2300, + 428310 + ], + [ + 0, + 8, + 9, + 2300, + 428310 + ], + [ + 0, + 8, + 10, + 2300, + 428310 + ], + [ + 0, + 8, + 11, + 2300, + 428310 + ], + [ + 0, + 8, + 12, + 2300, + 428310 + ], + [ + 0, + 8, + 13, + 2300, + 428310 + ], + [ + 0, + 8, + 14, + 2300, + 428310 + ], + [ + 0, + 8, + 15, + 2300, + 428310 + ], + [ + 0, + 8, + 16, + 2300, + 428310 + ], + [ + 0, + 8, + 17, + 2300, + 428310 + ], + [ + 0, + 8, + 18, + 2300, + 428310 + ], + [ + 0, + 8, + 19, + 2300, + 428310 + ], + [ + 0, + 8, + 20, + 2300, + 428310 + ], + [ + 0, + 8, + 21, + 2300, + 428310 + ], + [ + 0, + 8, + 22, + 2300, + 428310 + ], + [ + 0, + 9, + 10, + 2299, + 189775 + ], + [ + 0, + 9, + 11, + 2300, + 428310 + ], + [ + 0, + 9, + 12, + 2300, + 428310 + ], + [ + 0, + 9, + 13, + 2300, + 428310 + ], + [ + 0, + 9, + 14, + 2300, + 428310 + ], + [ + 0, + 9, + 15, + 2300, + 428310 + ], + [ + 0, + 9, + 16, + 2300, + 428310 + ], + [ + 0, + 9, + 17, + 2300, + 428310 + ], + [ + 0, + 9, + 18, + 2300, + 428310 + ], + [ + 0, + 9, + 19, + 2300, + 428310 + ], + [ + 0, + 9, + 20, + 2300, + 428310 + ], + [ + 0, + 9, + 21, + 2300, + 428310 + ], + [ + 0, + 9, + 22, + 2300, + 428310 + ], + [ + 0, + 10, + 11, + 2300, + 428310 + ], + [ + 0, + 10, + 12, + 2300, + 428310 + ], + [ + 0, + 10, + 13, + 2300, + 428310 + ], + [ + 0, + 10, + 14, + 2300, + 428310 + ], + [ + 0, + 10, + 15, + 2300, + 428310 + ], + [ + 0, + 10, + 16, + 2300, + 428310 + ], + [ + 0, + 10, + 17, + 2300, + 428310 + ], + [ + 0, + 10, + 18, + 2300, + 428310 + ], + [ + 0, + 10, + 19, + 2300, + 428310 + ], + [ + 0, + 10, + 20, + 2300, + 428310 + ], + [ + 0, + 10, + 21, + 2300, + 428310 + ], + [ + 0, + 10, + 22, + 2300, + 428310 + ], + [ + 0, + 11, + 12, + 2299, + 189775 + ], + [ + 0, + 11, + 13, + 2300, + 428310 + ], + [ + 0, + 11, + 14, + 2300, + 428310 + ], + [ + 0, + 11, + 15, + 2300, + 428310 + ], + [ + 0, + 11, + 16, + 2300, + 428310 + ], + [ + 0, + 11, + 17, + 2300, + 428310 + ], + [ + 0, + 11, + 18, + 2300, + 428310 + ], + [ + 0, + 11, + 19, + 2300, + 428310 + ], + [ + 0, + 11, + 20, + 2300, + 428310 + ], + [ + 0, + 11, + 21, + 2300, + 428310 + ], + [ + 0, + 11, + 22, + 2300, + 428310 + ], + [ + 0, + 12, + 13, + 2300, + 428310 + ], + [ + 0, + 12, + 14, + 2300, + 428310 + ], + [ + 0, + 12, + 15, + 2300, + 428310 + ], + [ + 0, + 12, + 16, + 2300, + 428310 + ], + [ + 0, + 12, + 17, + 2300, + 428310 + ], + [ + 0, + 12, + 18, + 2300, + 428310 + ], + [ + 0, + 12, + 19, + 2300, + 428310 + ], + [ + 0, + 12, + 20, + 2300, + 428310 + ], + [ + 0, + 12, + 21, + 2300, + 428310 + ], + [ + 0, + 12, + 22, + 2300, + 428310 + ], + [ + 0, + 13, + 14, + 2300, + 428310 + ], + [ + 0, + 13, + 15, + 2300, + 428310 + ], + [ + 0, + 13, + 16, + 2300, + 428310 + ], + [ + 0, + 13, + 17, + 2300, + 428310 + ], + [ + 0, + 13, + 18, + 2300, + 428310 + ], + [ + 0, + 13, + 19, + 2300, + 428310 + ], + [ + 0, + 13, + 20, + 2300, + 428310 + ], + [ + 0, + 13, + 21, + 2300, + 428310 + ], + [ + 0, + 13, + 22, + 2300, + 428310 + ], + [ + 0, + 14, + 15, + 2300, + 428310 + ], + [ + 0, + 14, + 16, + 2300, + 428310 + ], + [ + 0, + 14, + 17, + 2300, + 428310 + ], + [ + 0, + 14, + 18, + 2300, + 428310 + ], + [ + 0, + 14, + 19, + 2300, + 428310 + ], + [ + 0, + 14, + 20, + 2300, + 428310 + ], + [ + 0, + 14, + 21, + 2300, + 428310 + ], + [ + 0, + 14, + 22, + 2300, + 428310 + ], + [ + 0, + 15, + 16, + 2300, + 428310 + ], + [ + 0, + 15, + 17, + 2300, + 428310 + ], + [ + 0, + 15, + 18, + 2299, + 189775 + ], + [ + 0, + 15, + 19, + 2300, + 428310 + ], + [ + 0, + 15, + 20, + 2300, + 428310 + ], + [ + 0, + 15, + 21, + 2300, + 428310 + ], + [ + 0, + 15, + 22, + 2300, + 428310 + ], + [ + 0, + 16, + 17, + 2300, + 428310 + ], + [ + 0, + 16, + 18, + 2300, + 428310 + ], + [ + 0, + 16, + 19, + 2300, + 428310 + ], + [ + 0, + 16, + 20, + 2300, + 428310 + ], + [ + 0, + 16, + 21, + 2300, + 428310 + ], + [ + 0, + 16, + 22, + 2300, + 428310 + ], + [ + 0, + 17, + 18, + 2300, + 428310 + ], + [ + 0, + 17, + 19, + 2300, + 428310 + ], + [ + 0, + 17, + 20, + 2300, + 428310 + ], + [ + 0, + 17, + 21, + 2300, + 428310 + ], + [ + 0, + 17, + 22, + 2300, + 428310 + ], + [ + 0, + 18, + 19, + 2300, + 428310 + ], + [ + 0, + 18, + 20, + 2300, + 428310 + ], + [ + 0, + 18, + 21, + 2300, + 428310 + ], + [ + 0, + 18, + 22, + 2300, + 428310 + ], + [ + 0, + 19, + 20, + 2300, + 428310 + ], + [ + 0, + 19, + 21, + 2300, + 428310 + ], + [ + 0, + 19, + 22, + 2300, + 428310 + ], + [ + 0, + 20, + 21, + 2300, + 428310 + ], + [ + 0, + 20, + 22, + 2300, + 428310 + ], + [ + 0, + 21, + 22, + 2300, + 428310 + ], + [ + 1, + 2, + 3, + 2300, + 428310 + ], + [ + 1, + 2, + 4, + 2300, + 428310 + ], + [ + 1, + 2, + 5, + 2300, + 428310 + ], + [ + 1, + 2, + 6, + 2300, + 428310 + ], + [ + 1, + 2, + 7, + 2300, + 428310 + ], + [ + 1, + 2, + 8, + 2300, + 428310 + ], + [ + 1, + 2, + 9, + 2300, + 428310 + ], + [ + 1, + 2, + 10, + 2300, + 428310 + ], + [ + 1, + 2, + 11, + 2300, + 428310 + ], + [ + 1, + 2, + 12, + 2300, + 428310 + ], + [ + 1, + 2, + 13, + 2300, + 428310 + ], + [ + 1, + 2, + 14, + 2300, + 428310 + ], + [ + 1, + 2, + 15, + 2300, + 428310 + ], + [ + 1, + 2, + 16, + 2300, + 428310 + ], + [ + 1, + 2, + 17, + 2300, + 428310 + ], + [ + 1, + 2, + 18, + 2300, + 428310 + ], + [ + 1, + 2, + 19, + 2300, + 428310 + ], + [ + 1, + 2, + 20, + 2300, + 428310 + ], + [ + 1, + 2, + 21, + 2300, + 428310 + ], + [ + 1, + 2, + 22, + 2300, + 428310 + ], + [ + 1, + 3, + 4, + 2300, + 428310 + ], + [ + 1, + 3, + 5, + 2300, + 428310 + ], + [ + 1, + 3, + 6, + 2300, + 428310 + ], + [ + 1, + 3, + 7, + 2300, + 428310 + ], + [ + 1, + 3, + 8, + 2300, + 428310 + ], + [ + 1, + 3, + 9, + 2300, + 428310 + ], + [ + 1, + 3, + 10, + 2300, + 428310 + ], + [ + 1, + 3, + 11, + 2300, + 428310 + ], + [ + 1, + 3, + 12, + 2300, + 428310 + ], + [ + 1, + 3, + 13, + 2300, + 428310 + ], + [ + 1, + 3, + 14, + 2300, + 428310 + ], + [ + 1, + 3, + 15, + 2300, + 428310 + ], + [ + 1, + 3, + 16, + 2300, + 428310 + ], + [ + 1, + 3, + 17, + 2300, + 428310 + ], + [ + 1, + 3, + 18, + 2300, + 428310 + ], + [ + 1, + 3, + 19, + 2300, + 428310 + ], + [ + 1, + 3, + 20, + 2300, + 428310 + ], + [ + 1, + 3, + 21, + 2300, + 428310 + ], + [ + 1, + 3, + 22, + 2300, + 428310 + ], + [ + 1, + 4, + 5, + 2300, + 428310 + ], + [ + 1, + 4, + 6, + 2300, + 428310 + ], + [ + 1, + 4, + 7, + 2300, + 428310 + ], + [ + 1, + 4, + 8, + 2300, + 428310 + ], + [ + 1, + 4, + 9, + 2300, + 428310 + ], + [ + 1, + 4, + 10, + 2300, + 428310 + ], + [ + 1, + 4, + 11, + 2300, + 428310 + ], + [ + 1, + 4, + 12, + 2300, + 428310 + ], + [ + 1, + 4, + 13, + 2300, + 428310 + ], + [ + 1, + 4, + 14, + 2300, + 428310 + ], + [ + 1, + 4, + 15, + 2300, + 428310 + ], + [ + 1, + 4, + 16, + 2300, + 428310 + ], + [ + 1, + 4, + 17, + 2300, + 428310 + ], + [ + 1, + 4, + 18, + 2300, + 428310 + ], + [ + 1, + 4, + 19, + 2300, + 428310 + ], + [ + 1, + 4, + 20, + 2300, + 428310 + ], + [ + 1, + 4, + 21, + 2300, + 428310 + ], + [ + 1, + 4, + 22, + 2300, + 428310 + ], + [ + 1, + 5, + 6, + 2300, + 428310 + ], + [ + 1, + 5, + 7, + 2300, + 428310 + ], + [ + 1, + 5, + 8, + 2300, + 428310 + ], + [ + 1, + 5, + 9, + 2300, + 428310 + ], + [ + 1, + 5, + 10, + 2300, + 428310 + ], + [ + 1, + 5, + 11, + 2300, + 428310 + ], + [ + 1, + 5, + 12, + 2300, + 428310 + ], + [ + 1, + 5, + 13, + 2300, + 428310 + ], + [ + 1, + 5, + 14, + 2300, + 428310 + ], + [ + 1, + 5, + 15, + 2300, + 428310 + ], + [ + 1, + 5, + 16, + 2300, + 428310 + ], + [ + 1, + 5, + 17, + 2300, + 428310 + ], + [ + 1, + 5, + 18, + 2300, + 428310 + ], + [ + 1, + 5, + 19, + 2300, + 428310 + ], + [ + 1, + 5, + 20, + 2300, + 428310 + ], + [ + 1, + 5, + 21, + 2300, + 428310 + ], + [ + 1, + 5, + 22, + 2300, + 428310 + ], + [ + 1, + 6, + 7, + 2300, + 428310 + ], + [ + 1, + 6, + 8, + 2300, + 428310 + ], + [ + 1, + 6, + 9, + 2300, + 428310 + ], + [ + 1, + 6, + 10, + 2300, + 428310 + ], + [ + 1, + 6, + 11, + 2300, + 428310 + ], + [ + 1, + 6, + 12, + 2300, + 428310 + ], + [ + 1, + 6, + 13, + 2300, + 428310 + ], + [ + 1, + 6, + 14, + 2300, + 428310 + ], + [ + 1, + 6, + 15, + 2300, + 428310 + ], + [ + 1, + 6, + 16, + 2300, + 428310 + ], + [ + 1, + 6, + 17, + 2300, + 428310 + ], + [ + 1, + 6, + 18, + 2300, + 428310 + ], + [ + 1, + 6, + 19, + 2300, + 428310 + ], + [ + 1, + 6, + 20, + 2300, + 428310 + ], + [ + 1, + 6, + 21, + 2300, + 428310 + ], + [ + 1, + 6, + 22, + 2300, + 428310 + ], + [ + 1, + 7, + 8, + 2300, + 428310 + ], + [ + 1, + 7, + 9, + 2300, + 428310 + ], + [ + 1, + 7, + 10, + 2300, + 428310 + ], + [ + 1, + 7, + 11, + 2300, + 428310 + ], + [ + 1, + 7, + 12, + 2300, + 428310 + ], + [ + 1, + 7, + 13, + 2300, + 428310 + ], + [ + 1, + 7, + 14, + 2300, + 428310 + ], + [ + 1, + 7, + 15, + 2300, + 428310 + ], + [ + 1, + 7, + 16, + 2300, + 428310 + ], + [ + 1, + 7, + 17, + 2300, + 428310 + ], + [ + 1, + 7, + 18, + 2300, + 428310 + ], + [ + 1, + 7, + 19, + 2300, + 428310 + ], + [ + 1, + 7, + 20, + 2300, + 428310 + ], + [ + 1, + 7, + 21, + 2300, + 428310 + ], + [ + 1, + 7, + 22, + 2300, + 428310 + ], + [ + 1, + 8, + 9, + 2300, + 428310 + ], + [ + 1, + 8, + 10, + 2300, + 428310 + ], + [ + 1, + 8, + 11, + 2300, + 428310 + ], + [ + 1, + 8, + 12, + 2300, + 428310 + ], + [ + 1, + 8, + 13, + 2300, + 428310 + ], + [ + 1, + 8, + 14, + 2300, + 428310 + ], + [ + 1, + 8, + 15, + 2300, + 428310 + ], + [ + 1, + 8, + 16, + 2300, + 428310 + ], + [ + 1, + 8, + 17, + 2300, + 428310 + ], + [ + 1, + 8, + 18, + 2300, + 428310 + ], + [ + 1, + 8, + 19, + 2300, + 428310 + ], + [ + 1, + 8, + 20, + 2300, + 428310 + ], + [ + 1, + 8, + 21, + 2300, + 428310 + ], + [ + 1, + 8, + 22, + 2300, + 428310 + ], + [ + 1, + 9, + 10, + 2300, + 428310 + ], + [ + 1, + 9, + 11, + 2300, + 428310 + ], + [ + 1, + 9, + 12, + 2300, + 428310 + ], + [ + 1, + 9, + 13, + 2300, + 428310 + ], + [ + 1, + 9, + 14, + 2300, + 428310 + ], + [ + 1, + 9, + 15, + 2300, + 428310 + ], + [ + 1, + 9, + 16, + 2300, + 428310 + ], + [ + 1, + 9, + 17, + 2300, + 428310 + ], + [ + 1, + 9, + 18, + 2300, + 428310 + ], + [ + 1, + 9, + 19, + 2300, + 428310 + ], + [ + 1, + 9, + 20, + 2300, + 428310 + ], + [ + 1, + 9, + 21, + 2300, + 428310 + ], + [ + 1, + 9, + 22, + 2300, + 428310 + ], + [ + 1, + 10, + 11, + 2300, + 428310 + ], + [ + 1, + 10, + 12, + 2300, + 428310 + ], + [ + 1, + 10, + 13, + 2300, + 428310 + ], + [ + 1, + 10, + 14, + 2300, + 428310 + ], + [ + 1, + 10, + 15, + 2300, + 428310 + ], + [ + 1, + 10, + 16, + 2300, + 428310 + ], + [ + 1, + 10, + 17, + 2300, + 428310 + ], + [ + 1, + 10, + 18, + 2300, + 428310 + ], + [ + 1, + 10, + 19, + 2300, + 428310 + ], + [ + 1, + 10, + 20, + 2300, + 428310 + ], + [ + 1, + 10, + 21, + 2300, + 428310 + ], + [ + 1, + 10, + 22, + 2300, + 428310 + ], + [ + 1, + 11, + 12, + 2300, + 428310 + ], + [ + 1, + 11, + 13, + 2300, + 428310 + ], + [ + 1, + 11, + 14, + 2300, + 428310 + ], + [ + 1, + 11, + 15, + 2300, + 428310 + ], + [ + 1, + 11, + 16, + 2300, + 428310 + ], + [ + 1, + 11, + 17, + 2300, + 428310 + ], + [ + 1, + 11, + 18, + 2300, + 428310 + ], + [ + 1, + 11, + 19, + 2300, + 428310 + ], + [ + 1, + 11, + 20, + 2300, + 428310 + ], + [ + 1, + 11, + 21, + 2300, + 428310 + ], + [ + 1, + 11, + 22, + 2300, + 428310 + ], + [ + 1, + 12, + 13, + 2300, + 428310 + ], + [ + 1, + 12, + 14, + 2300, + 428310 + ], + [ + 1, + 12, + 15, + 2300, + 428310 + ], + [ + 1, + 12, + 16, + 2300, + 428310 + ], + [ + 1, + 12, + 17, + 2300, + 428310 + ], + [ + 1, + 12, + 18, + 2300, + 428310 + ], + [ + 1, + 12, + 19, + 2300, + 428310 + ], + [ + 1, + 12, + 20, + 2300, + 428310 + ], + [ + 1, + 12, + 21, + 2300, + 428310 + ], + [ + 1, + 12, + 22, + 2300, + 428310 + ], + [ + 1, + 13, + 14, + 2300, + 428310 + ], + [ + 1, + 13, + 15, + 2300, + 428310 + ], + [ + 1, + 13, + 16, + 2300, + 428310 + ], + [ + 1, + 13, + 17, + 2300, + 428310 + ], + [ + 1, + 13, + 18, + 2300, + 428310 + ], + [ + 1, + 13, + 19, + 2300, + 428310 + ], + [ + 1, + 13, + 20, + 2300, + 428310 + ], + [ + 1, + 13, + 21, + 2300, + 428310 + ], + [ + 1, + 13, + 22, + 2300, + 428310 + ], + [ + 1, + 14, + 15, + 2300, + 428310 + ], + [ + 1, + 14, + 16, + 2300, + 428310 + ], + [ + 1, + 14, + 17, + 2300, + 428310 + ], + [ + 1, + 14, + 18, + 2300, + 428310 + ], + [ + 1, + 14, + 19, + 2300, + 428310 + ], + [ + 1, + 14, + 20, + 2300, + 428310 + ], + [ + 1, + 14, + 21, + 2300, + 428310 + ], + [ + 1, + 14, + 22, + 2300, + 428310 + ], + [ + 1, + 15, + 16, + 2300, + 428310 + ], + [ + 1, + 15, + 17, + 2299, + 189775 + ], + [ + 1, + 15, + 18, + 2300, + 428310 + ], + [ + 1, + 15, + 19, + 2300, + 428310 + ], + [ + 1, + 15, + 20, + 2300, + 428310 + ], + [ + 1, + 15, + 21, + 2300, + 428310 + ], + [ + 1, + 15, + 22, + 2300, + 428310 + ], + [ + 1, + 16, + 17, + 2300, + 428310 + ], + [ + 1, + 16, + 18, + 2300, + 428310 + ], + [ + 1, + 16, + 19, + 2300, + 428310 + ], + [ + 1, + 16, + 20, + 2300, + 428310 + ], + [ + 1, + 16, + 21, + 2300, + 428310 + ], + [ + 1, + 16, + 22, + 2300, + 428310 + ], + [ + 1, + 17, + 18, + 2300, + 428310 + ], + [ + 1, + 17, + 19, + 2300, + 428310 + ], + [ + 1, + 17, + 20, + 2300, + 428310 + ], + [ + 1, + 17, + 21, + 2300, + 428310 + ], + [ + 1, + 17, + 22, + 2300, + 428310 + ], + [ + 1, + 18, + 19, + 2300, + 428310 + ], + [ + 1, + 18, + 20, + 2300, + 428310 + ], + [ + 1, + 18, + 21, + 2300, + 428310 + ], + [ + 1, + 18, + 22, + 2300, + 428310 + ], + [ + 1, + 19, + 20, + 2300, + 428310 + ], + [ + 1, + 19, + 21, + 2300, + 428310 + ], + [ + 1, + 19, + 22, + 2300, + 428310 + ], + [ + 1, + 20, + 21, + 2300, + 428310 + ], + [ + 1, + 20, + 22, + 2300, + 428310 + ], + [ + 1, + 21, + 22, + 2300, + 428310 + ], + [ + 2, + 3, + 4, + 2300, + 428310 + ], + [ + 2, + 3, + 5, + 2300, + 428310 + ], + [ + 2, + 3, + 6, + 2300, + 428310 + ], + [ + 2, + 3, + 7, + 2300, + 428310 + ], + [ + 2, + 3, + 8, + 2300, + 428310 + ], + [ + 2, + 3, + 9, + 2300, + 428310 + ], + [ + 2, + 3, + 10, + 2300, + 428310 + ], + [ + 2, + 3, + 11, + 2300, + 428310 + ], + [ + 2, + 3, + 12, + 2300, + 428310 + ], + [ + 2, + 3, + 13, + 2300, + 428310 + ], + [ + 2, + 3, + 14, + 2300, + 428310 + ], + [ + 2, + 3, + 15, + 2300, + 428310 + ], + [ + 2, + 3, + 16, + 2300, + 428310 + ], + [ + 2, + 3, + 17, + 2300, + 428310 + ], + [ + 2, + 3, + 18, + 2300, + 428310 + ], + [ + 2, + 3, + 19, + 2300, + 428310 + ], + [ + 2, + 3, + 20, + 2300, + 428310 + ], + [ + 2, + 3, + 21, + 2300, + 428310 + ], + [ + 2, + 3, + 22, + 2300, + 428310 + ], + [ + 2, + 4, + 5, + 2300, + 428310 + ], + [ + 2, + 4, + 6, + 2300, + 428310 + ], + [ + 2, + 4, + 7, + 2300, + 428310 + ], + [ + 2, + 4, + 8, + 2300, + 428310 + ], + [ + 2, + 4, + 9, + 2300, + 428310 + ], + [ + 2, + 4, + 10, + 2300, + 428310 + ], + [ + 2, + 4, + 11, + 2300, + 428310 + ], + [ + 2, + 4, + 12, + 2300, + 428310 + ], + [ + 2, + 4, + 13, + 2300, + 428310 + ], + [ + 2, + 4, + 14, + 2300, + 428310 + ], + [ + 2, + 4, + 15, + 2300, + 428310 + ], + [ + 2, + 4, + 16, + 2300, + 428310 + ], + [ + 2, + 4, + 17, + 2300, + 428310 + ], + [ + 2, + 4, + 18, + 2300, + 428310 + ], + [ + 2, + 4, + 19, + 2300, + 428310 + ], + [ + 2, + 4, + 20, + 2300, + 428310 + ], + [ + 2, + 4, + 21, + 2300, + 428310 + ], + [ + 2, + 4, + 22, + 2300, + 428310 + ], + [ + 2, + 5, + 6, + 2300, + 428310 + ], + [ + 2, + 5, + 7, + 2300, + 428310 + ], + [ + 2, + 5, + 8, + 2300, + 428310 + ], + [ + 2, + 5, + 9, + 2300, + 428310 + ], + [ + 2, + 5, + 10, + 2300, + 428310 + ], + [ + 2, + 5, + 11, + 2300, + 428310 + ], + [ + 2, + 5, + 12, + 2300, + 428310 + ], + [ + 2, + 5, + 13, + 2300, + 428310 + ], + [ + 2, + 5, + 14, + 2300, + 428310 + ], + [ + 2, + 5, + 15, + 2300, + 428310 + ], + [ + 2, + 5, + 16, + 2300, + 428310 + ], + [ + 2, + 5, + 17, + 2300, + 428310 + ], + [ + 2, + 5, + 18, + 2300, + 428310 + ], + [ + 2, + 5, + 19, + 2300, + 428310 + ], + [ + 2, + 5, + 20, + 2300, + 428310 + ], + [ + 2, + 5, + 21, + 2300, + 428310 + ], + [ + 2, + 5, + 22, + 2300, + 428310 + ], + [ + 2, + 6, + 7, + 2300, + 428310 + ], + [ + 2, + 6, + 8, + 2300, + 428310 + ], + [ + 2, + 6, + 9, + 2300, + 428310 + ], + [ + 2, + 6, + 10, + 2300, + 428310 + ], + [ + 2, + 6, + 11, + 2300, + 428310 + ], + [ + 2, + 6, + 12, + 2300, + 428310 + ], + [ + 2, + 6, + 13, + 2300, + 428310 + ], + [ + 2, + 6, + 14, + 2300, + 428310 + ], + [ + 2, + 6, + 15, + 2300, + 428310 + ], + [ + 2, + 6, + 16, + 2300, + 428310 + ], + [ + 2, + 6, + 17, + 2300, + 428310 + ], + [ + 2, + 6, + 18, + 2300, + 428310 + ], + [ + 2, + 6, + 19, + 2300, + 428310 + ], + [ + 2, + 6, + 20, + 2300, + 428310 + ], + [ + 2, + 6, + 21, + 2300, + 428310 + ], + [ + 2, + 6, + 22, + 2300, + 428310 + ], + [ + 2, + 7, + 8, + 2300, + 428310 + ], + [ + 2, + 7, + 9, + 2300, + 428310 + ], + [ + 2, + 7, + 10, + 2300, + 428310 + ], + [ + 2, + 7, + 11, + 2300, + 428310 + ], + [ + 2, + 7, + 12, + 2300, + 428310 + ], + [ + 2, + 7, + 13, + 2300, + 428310 + ], + [ + 2, + 7, + 14, + 2300, + 428310 + ], + [ + 2, + 7, + 15, + 2300, + 428310 + ], + [ + 2, + 7, + 16, + 2300, + 428310 + ], + [ + 2, + 7, + 17, + 2300, + 428310 + ], + [ + 2, + 7, + 18, + 2300, + 428310 + ], + [ + 2, + 7, + 19, + 2300, + 428310 + ], + [ + 2, + 7, + 20, + 2300, + 428310 + ], + [ + 2, + 7, + 21, + 2300, + 428310 + ], + [ + 2, + 7, + 22, + 2300, + 428310 + ], + [ + 2, + 8, + 9, + 2300, + 428310 + ], + [ + 2, + 8, + 10, + 2300, + 428310 + ], + [ + 2, + 8, + 11, + 2300, + 428310 + ], + [ + 2, + 8, + 12, + 2300, + 428310 + ], + [ + 2, + 8, + 13, + 2300, + 428310 + ], + [ + 2, + 8, + 14, + 2300, + 428310 + ], + [ + 2, + 8, + 15, + 2300, + 428310 + ], + [ + 2, + 8, + 16, + 2300, + 428310 + ], + [ + 2, + 8, + 17, + 2300, + 428310 + ], + [ + 2, + 8, + 18, + 2300, + 428310 + ], + [ + 2, + 8, + 19, + 2300, + 428310 + ], + [ + 2, + 8, + 20, + 2300, + 428310 + ], + [ + 2, + 8, + 21, + 2300, + 428310 + ], + [ + 2, + 8, + 22, + 2300, + 428310 + ], + [ + 2, + 9, + 10, + 2300, + 428310 + ], + [ + 2, + 9, + 11, + 2300, + 428310 + ], + [ + 2, + 9, + 12, + 2300, + 428310 + ], + [ + 2, + 9, + 13, + 2300, + 428310 + ], + [ + 2, + 9, + 14, + 2300, + 428310 + ], + [ + 2, + 9, + 15, + 2300, + 428310 + ], + [ + 2, + 9, + 16, + 2300, + 428310 + ], + [ + 2, + 9, + 17, + 2300, + 428310 + ], + [ + 2, + 9, + 18, + 2300, + 428310 + ], + [ + 2, + 9, + 19, + 2300, + 428310 + ], + [ + 2, + 9, + 20, + 2300, + 428310 + ], + [ + 2, + 9, + 21, + 2300, + 428310 + ], + [ + 2, + 9, + 22, + 2300, + 428310 + ], + [ + 2, + 10, + 11, + 2300, + 428310 + ], + [ + 2, + 10, + 12, + 2300, + 428310 + ], + [ + 2, + 10, + 13, + 2300, + 428310 + ], + [ + 2, + 10, + 14, + 2300, + 428310 + ], + [ + 2, + 10, + 15, + 2300, + 428310 + ], + [ + 2, + 10, + 16, + 2300, + 428310 + ], + [ + 2, + 10, + 17, + 2300, + 428310 + ], + [ + 2, + 10, + 18, + 2300, + 428310 + ], + [ + 2, + 10, + 19, + 2300, + 428310 + ], + [ + 2, + 10, + 20, + 2300, + 428310 + ], + [ + 2, + 10, + 21, + 2300, + 428310 + ], + [ + 2, + 10, + 22, + 2300, + 428310 + ], + [ + 2, + 11, + 12, + 2300, + 428310 + ], + [ + 2, + 11, + 13, + 2300, + 428310 + ], + [ + 2, + 11, + 14, + 2300, + 428310 + ], + [ + 2, + 11, + 15, + 2300, + 428310 + ], + [ + 2, + 11, + 16, + 2300, + 428310 + ], + [ + 2, + 11, + 17, + 2300, + 428310 + ], + [ + 2, + 11, + 18, + 2299, + 189775 + ], + [ + 2, + 11, + 19, + 2300, + 428310 + ], + [ + 2, + 11, + 20, + 2300, + 428310 + ], + [ + 2, + 11, + 21, + 2300, + 428310 + ], + [ + 2, + 11, + 22, + 2300, + 428310 + ], + [ + 2, + 12, + 13, + 2300, + 428310 + ], + [ + 2, + 12, + 14, + 2300, + 428310 + ], + [ + 2, + 12, + 15, + 2300, + 428310 + ], + [ + 2, + 12, + 16, + 2300, + 428310 + ], + [ + 2, + 12, + 17, + 2300, + 428310 + ], + [ + 2, + 12, + 18, + 2300, + 428310 + ], + [ + 2, + 12, + 19, + 2300, + 428310 + ], + [ + 2, + 12, + 20, + 2300, + 428310 + ], + [ + 2, + 12, + 21, + 2300, + 428310 + ], + [ + 2, + 12, + 22, + 2300, + 428310 + ], + [ + 2, + 13, + 14, + 2300, + 428310 + ], + [ + 2, + 13, + 15, + 2300, + 428310 + ], + [ + 2, + 13, + 16, + 2300, + 428310 + ], + [ + 2, + 13, + 17, + 2300, + 428310 + ], + [ + 2, + 13, + 18, + 2300, + 428310 + ], + [ + 2, + 13, + 19, + 2300, + 428310 + ], + [ + 2, + 13, + 20, + 2300, + 428310 + ], + [ + 2, + 13, + 21, + 2300, + 428310 + ], + [ + 2, + 13, + 22, + 2300, + 428310 + ], + [ + 2, + 14, + 15, + 2300, + 428310 + ], + [ + 2, + 14, + 16, + 2300, + 428310 + ], + [ + 2, + 14, + 17, + 2300, + 428310 + ], + [ + 2, + 14, + 18, + 2300, + 428310 + ], + [ + 2, + 14, + 19, + 2300, + 428310 + ], + [ + 2, + 14, + 20, + 2300, + 428310 + ], + [ + 2, + 14, + 21, + 2300, + 428310 + ], + [ + 2, + 14, + 22, + 2300, + 428310 + ], + [ + 2, + 15, + 16, + 2300, + 428310 + ], + [ + 2, + 15, + 17, + 2300, + 428310 + ], + [ + 2, + 15, + 18, + 2300, + 428310 + ], + [ + 2, + 15, + 19, + 2300, + 428310 + ], + [ + 2, + 15, + 20, + 2300, + 428310 + ], + [ + 2, + 15, + 21, + 2300, + 428310 + ], + [ + 2, + 15, + 22, + 2300, + 428310 + ], + [ + 2, + 16, + 17, + 2300, + 428310 + ], + [ + 2, + 16, + 18, + 2300, + 428310 + ], + [ + 2, + 16, + 19, + 2300, + 428310 + ], + [ + 2, + 16, + 20, + 2300, + 428310 + ], + [ + 2, + 16, + 21, + 2300, + 428310 + ], + [ + 2, + 16, + 22, + 2300, + 428310 + ], + [ + 2, + 17, + 18, + 2300, + 428310 + ], + [ + 2, + 17, + 19, + 2300, + 428310 + ], + [ + 2, + 17, + 20, + 2300, + 428310 + ], + [ + 2, + 17, + 21, + 2300, + 428310 + ], + [ + 2, + 17, + 22, + 2300, + 428310 + ], + [ + 2, + 18, + 19, + 2300, + 428310 + ], + [ + 2, + 18, + 20, + 2300, + 428310 + ], + [ + 2, + 18, + 21, + 2300, + 428310 + ], + [ + 2, + 18, + 22, + 2300, + 428310 + ], + [ + 2, + 19, + 20, + 2300, + 428310 + ], + [ + 2, + 19, + 21, + 2300, + 428310 + ], + [ + 2, + 19, + 22, + 2300, + 428310 + ], + [ + 2, + 20, + 21, + 2300, + 428310 + ], + [ + 2, + 20, + 22, + 2300, + 428310 + ], + [ + 2, + 21, + 22, + 2300, + 428310 + ], + [ + 3, + 4, + 5, + 2300, + 428310 + ], + [ + 3, + 4, + 6, + 2300, + 428310 + ], + [ + 3, + 4, + 7, + 2300, + 428310 + ], + [ + 3, + 4, + 8, + 2300, + 428310 + ], + [ + 3, + 4, + 9, + 2300, + 428310 + ], + [ + 3, + 4, + 10, + 2300, + 428310 + ], + [ + 3, + 4, + 11, + 2300, + 428310 + ], + [ + 3, + 4, + 12, + 2300, + 428310 + ], + [ + 3, + 4, + 13, + 2300, + 428310 + ], + [ + 3, + 4, + 14, + 2300, + 428310 + ], + [ + 3, + 4, + 15, + 2300, + 428310 + ], + [ + 3, + 4, + 16, + 2300, + 428310 + ], + [ + 3, + 4, + 17, + 2300, + 428310 + ], + [ + 3, + 4, + 18, + 2300, + 428310 + ], + [ + 3, + 4, + 19, + 2300, + 428310 + ], + [ + 3, + 4, + 20, + 2300, + 428310 + ], + [ + 3, + 4, + 21, + 2300, + 428310 + ], + [ + 3, + 4, + 22, + 2300, + 428310 + ], + [ + 3, + 5, + 6, + 2300, + 428310 + ], + [ + 3, + 5, + 7, + 2300, + 428310 + ], + [ + 3, + 5, + 8, + 2300, + 428310 + ], + [ + 3, + 5, + 9, + 2300, + 428310 + ], + [ + 3, + 5, + 10, + 2300, + 428310 + ], + [ + 3, + 5, + 11, + 2300, + 428310 + ], + [ + 3, + 5, + 12, + 2300, + 428310 + ], + [ + 3, + 5, + 13, + 2300, + 428310 + ], + [ + 3, + 5, + 14, + 2300, + 428310 + ], + [ + 3, + 5, + 15, + 2300, + 428310 + ], + [ + 3, + 5, + 16, + 2300, + 428310 + ], + [ + 3, + 5, + 17, + 2300, + 428310 + ], + [ + 3, + 5, + 18, + 2300, + 428310 + ], + [ + 3, + 5, + 19, + 2300, + 428310 + ], + [ + 3, + 5, + 20, + 2300, + 428310 + ], + [ + 3, + 5, + 21, + 2300, + 428310 + ], + [ + 3, + 5, + 22, + 2300, + 428310 + ], + [ + 3, + 6, + 7, + 2300, + 428310 + ], + [ + 3, + 6, + 8, + 2300, + 428310 + ], + [ + 3, + 6, + 9, + 2300, + 428310 + ], + [ + 3, + 6, + 10, + 2300, + 428310 + ], + [ + 3, + 6, + 11, + 2300, + 428310 + ], + [ + 3, + 6, + 12, + 2300, + 428310 + ], + [ + 3, + 6, + 13, + 2300, + 428310 + ], + [ + 3, + 6, + 14, + 2300, + 428310 + ], + [ + 3, + 6, + 15, + 2300, + 428310 + ], + [ + 3, + 6, + 16, + 2300, + 428310 + ], + [ + 3, + 6, + 17, + 2300, + 428310 + ], + [ + 3, + 6, + 18, + 2300, + 428310 + ], + [ + 3, + 6, + 19, + 2300, + 428310 + ], + [ + 3, + 6, + 20, + 2300, + 428310 + ], + [ + 3, + 6, + 21, + 2300, + 428310 + ], + [ + 3, + 6, + 22, + 2300, + 428310 + ], + [ + 3, + 7, + 8, + 2300, + 428310 + ], + [ + 3, + 7, + 9, + 2300, + 428310 + ], + [ + 3, + 7, + 10, + 2300, + 428310 + ], + [ + 3, + 7, + 11, + 2300, + 428310 + ], + [ + 3, + 7, + 12, + 2300, + 428310 + ], + [ + 3, + 7, + 13, + 2300, + 428310 + ], + [ + 3, + 7, + 14, + 2300, + 428310 + ], + [ + 3, + 7, + 15, + 2300, + 428310 + ], + [ + 3, + 7, + 16, + 2300, + 428310 + ], + [ + 3, + 7, + 17, + 2300, + 428310 + ], + [ + 3, + 7, + 18, + 2300, + 428310 + ], + [ + 3, + 7, + 19, + 2300, + 428310 + ], + [ + 3, + 7, + 20, + 2300, + 428310 + ], + [ + 3, + 7, + 21, + 2300, + 428310 + ], + [ + 3, + 7, + 22, + 2300, + 428310 + ], + [ + 3, + 8, + 9, + 2300, + 428310 + ], + [ + 3, + 8, + 10, + 2300, + 428310 + ], + [ + 3, + 8, + 11, + 2300, + 428310 + ], + [ + 3, + 8, + 12, + 2300, + 428310 + ], + [ + 3, + 8, + 13, + 2300, + 428310 + ], + [ + 3, + 8, + 14, + 2300, + 428310 + ], + [ + 3, + 8, + 15, + 2300, + 428310 + ], + [ + 3, + 8, + 16, + 2300, + 428310 + ], + [ + 3, + 8, + 17, + 2300, + 428310 + ], + [ + 3, + 8, + 18, + 2300, + 428310 + ], + [ + 3, + 8, + 19, + 2300, + 428310 + ], + [ + 3, + 8, + 20, + 2300, + 428310 + ], + [ + 3, + 8, + 21, + 2300, + 428310 + ], + [ + 3, + 8, + 22, + 2300, + 428310 + ], + [ + 3, + 9, + 10, + 2300, + 428310 + ], + [ + 3, + 9, + 11, + 2300, + 428310 + ], + [ + 3, + 9, + 12, + 2300, + 428310 + ], + [ + 3, + 9, + 13, + 2300, + 428310 + ], + [ + 3, + 9, + 14, + 2300, + 428310 + ], + [ + 3, + 9, + 15, + 2300, + 428310 + ], + [ + 3, + 9, + 16, + 2300, + 428310 + ], + [ + 3, + 9, + 17, + 2300, + 428310 + ], + [ + 3, + 9, + 18, + 2300, + 428310 + ], + [ + 3, + 9, + 19, + 2300, + 428310 + ], + [ + 3, + 9, + 20, + 2300, + 428310 + ], + [ + 3, + 9, + 21, + 2300, + 428310 + ], + [ + 3, + 9, + 22, + 2300, + 428310 + ], + [ + 3, + 10, + 11, + 2300, + 428310 + ], + [ + 3, + 10, + 12, + 2300, + 428310 + ], + [ + 3, + 10, + 13, + 2300, + 428310 + ], + [ + 3, + 10, + 14, + 2300, + 428310 + ], + [ + 3, + 10, + 15, + 2300, + 428310 + ], + [ + 3, + 10, + 16, + 2300, + 428310 + ], + [ + 3, + 10, + 17, + 2300, + 428310 + ], + [ + 3, + 10, + 18, + 2300, + 428310 + ], + [ + 3, + 10, + 19, + 2300, + 428310 + ], + [ + 3, + 10, + 20, + 2300, + 428310 + ], + [ + 3, + 10, + 21, + 2300, + 428310 + ], + [ + 3, + 10, + 22, + 2300, + 428310 + ], + [ + 3, + 11, + 12, + 2300, + 428310 + ], + [ + 3, + 11, + 13, + 2300, + 428310 + ], + [ + 3, + 11, + 14, + 2300, + 428310 + ], + [ + 3, + 11, + 15, + 2300, + 428310 + ], + [ + 3, + 11, + 16, + 2300, + 428310 + ], + [ + 3, + 11, + 17, + 2300, + 428310 + ], + [ + 3, + 11, + 18, + 2300, + 428310 + ], + [ + 3, + 11, + 19, + 2300, + 428310 + ], + [ + 3, + 11, + 20, + 2300, + 428310 + ], + [ + 3, + 11, + 21, + 2300, + 428310 + ], + [ + 3, + 11, + 22, + 2300, + 428310 + ], + [ + 3, + 12, + 13, + 2300, + 428310 + ], + [ + 3, + 12, + 14, + 2300, + 428310 + ], + [ + 3, + 12, + 15, + 2300, + 428310 + ], + [ + 3, + 12, + 16, + 2300, + 428310 + ], + [ + 3, + 12, + 17, + 2300, + 428310 + ], + [ + 3, + 12, + 18, + 2300, + 428310 + ], + [ + 3, + 12, + 19, + 2300, + 428310 + ], + [ + 3, + 12, + 20, + 2300, + 428310 + ], + [ + 3, + 12, + 21, + 2300, + 428310 + ], + [ + 3, + 12, + 22, + 2300, + 428310 + ], + [ + 3, + 13, + 14, + 2300, + 428310 + ], + [ + 3, + 13, + 15, + 2300, + 428310 + ], + [ + 3, + 13, + 16, + 2300, + 428310 + ], + [ + 3, + 13, + 17, + 2300, + 428310 + ], + [ + 3, + 13, + 18, + 2300, + 428310 + ], + [ + 3, + 13, + 19, + 2300, + 428310 + ], + [ + 3, + 13, + 20, + 2300, + 428310 + ], + [ + 3, + 13, + 21, + 2300, + 428310 + ], + [ + 3, + 13, + 22, + 2300, + 428310 + ], + [ + 3, + 14, + 15, + 2300, + 428310 + ], + [ + 3, + 14, + 16, + 2300, + 428310 + ], + [ + 3, + 14, + 17, + 2300, + 428310 + ], + [ + 3, + 14, + 18, + 2300, + 428310 + ], + [ + 3, + 14, + 19, + 2300, + 428310 + ], + [ + 3, + 14, + 20, + 2300, + 428310 + ], + [ + 3, + 14, + 21, + 2300, + 428310 + ], + [ + 3, + 14, + 22, + 2300, + 428310 + ], + [ + 3, + 15, + 16, + 2300, + 428310 + ], + [ + 3, + 15, + 17, + 2300, + 428310 + ], + [ + 3, + 15, + 18, + 2300, + 428310 + ], + [ + 3, + 15, + 19, + 2300, + 428310 + ], + [ + 3, + 15, + 20, + 2300, + 428310 + ], + [ + 3, + 15, + 21, + 2300, + 428310 + ], + [ + 3, + 15, + 22, + 2300, + 428310 + ], + [ + 3, + 16, + 17, + 2300, + 428310 + ], + [ + 3, + 16, + 18, + 2300, + 428310 + ], + [ + 3, + 16, + 19, + 2300, + 428310 + ], + [ + 3, + 16, + 20, + 2300, + 428310 + ], + [ + 3, + 16, + 21, + 2300, + 428310 + ], + [ + 3, + 16, + 22, + 2300, + 428310 + ], + [ + 3, + 17, + 18, + 2300, + 428310 + ], + [ + 3, + 17, + 19, + 2300, + 428310 + ], + [ + 3, + 17, + 20, + 2300, + 428310 + ], + [ + 3, + 17, + 21, + 2300, + 428310 + ], + [ + 3, + 17, + 22, + 2300, + 428310 + ], + [ + 3, + 18, + 19, + 2300, + 428310 + ], + [ + 3, + 18, + 20, + 2300, + 428310 + ], + [ + 3, + 18, + 21, + 2300, + 428310 + ], + [ + 3, + 18, + 22, + 2300, + 428310 + ], + [ + 3, + 19, + 20, + 2300, + 428310 + ], + [ + 3, + 19, + 21, + 2300, + 428310 + ], + [ + 3, + 19, + 22, + 2300, + 428310 + ], + [ + 3, + 20, + 21, + 2300, + 428310 + ], + [ + 3, + 20, + 22, + 2300, + 428310 + ], + [ + 3, + 21, + 22, + 2300, + 428310 + ], + [ + 4, + 5, + 6, + 2300, + 428310 + ], + [ + 4, + 5, + 7, + 2300, + 428310 + ], + [ + 4, + 5, + 8, + 2300, + 428310 + ], + [ + 4, + 5, + 9, + 2300, + 428310 + ], + [ + 4, + 5, + 10, + 2300, + 428310 + ], + [ + 4, + 5, + 11, + 2300, + 428310 + ], + [ + 4, + 5, + 12, + 2300, + 428310 + ], + [ + 4, + 5, + 13, + 2300, + 428310 + ], + [ + 4, + 5, + 14, + 2300, + 428310 + ], + [ + 4, + 5, + 15, + 2300, + 428310 + ], + [ + 4, + 5, + 16, + 2300, + 428310 + ], + [ + 4, + 5, + 17, + 2300, + 428310 + ], + [ + 4, + 5, + 18, + 2300, + 428310 + ], + [ + 4, + 5, + 19, + 2300, + 428310 + ], + [ + 4, + 5, + 20, + 2300, + 428310 + ], + [ + 4, + 5, + 21, + 2300, + 428310 + ], + [ + 4, + 5, + 22, + 2300, + 428310 + ], + [ + 4, + 6, + 7, + 2300, + 428310 + ], + [ + 4, + 6, + 8, + 2300, + 428310 + ], + [ + 4, + 6, + 9, + 2300, + 428310 + ], + [ + 4, + 6, + 10, + 2300, + 428310 + ], + [ + 4, + 6, + 11, + 2300, + 428310 + ], + [ + 4, + 6, + 12, + 2300, + 428310 + ], + [ + 4, + 6, + 13, + 2300, + 428310 + ], + [ + 4, + 6, + 14, + 2300, + 428310 + ], + [ + 4, + 6, + 15, + 2300, + 428310 + ], + [ + 4, + 6, + 16, + 2300, + 428310 + ], + [ + 4, + 6, + 17, + 2300, + 428310 + ], + [ + 4, + 6, + 18, + 2300, + 428310 + ], + [ + 4, + 6, + 19, + 2300, + 428310 + ], + [ + 4, + 6, + 20, + 2300, + 428310 + ], + [ + 4, + 6, + 21, + 2300, + 428310 + ], + [ + 4, + 6, + 22, + 2300, + 428310 + ], + [ + 4, + 7, + 8, + 2300, + 428310 + ], + [ + 4, + 7, + 9, + 2300, + 428310 + ], + [ + 4, + 7, + 10, + 2300, + 428310 + ], + [ + 4, + 7, + 11, + 2300, + 428310 + ], + [ + 4, + 7, + 12, + 2300, + 428310 + ], + [ + 4, + 7, + 13, + 2300, + 428310 + ], + [ + 4, + 7, + 14, + 2300, + 428310 + ], + [ + 4, + 7, + 15, + 2300, + 428310 + ], + [ + 4, + 7, + 16, + 2300, + 428310 + ], + [ + 4, + 7, + 17, + 2300, + 428310 + ], + [ + 4, + 7, + 18, + 2300, + 428310 + ], + [ + 4, + 7, + 19, + 2300, + 428310 + ], + [ + 4, + 7, + 20, + 2300, + 428310 + ], + [ + 4, + 7, + 21, + 2300, + 428310 + ], + [ + 4, + 7, + 22, + 2299, + 189775 + ], + [ + 4, + 8, + 9, + 2300, + 428310 + ], + [ + 4, + 8, + 10, + 2300, + 428310 + ], + [ + 4, + 8, + 11, + 2300, + 428310 + ], + [ + 4, + 8, + 12, + 2300, + 428310 + ], + [ + 4, + 8, + 13, + 2300, + 428310 + ], + [ + 4, + 8, + 14, + 2300, + 428310 + ], + [ + 4, + 8, + 15, + 2300, + 428310 + ], + [ + 4, + 8, + 16, + 2300, + 428310 + ], + [ + 4, + 8, + 17, + 2300, + 428310 + ], + [ + 4, + 8, + 18, + 2300, + 428310 + ], + [ + 4, + 8, + 19, + 2300, + 428310 + ], + [ + 4, + 8, + 20, + 2300, + 428310 + ], + [ + 4, + 8, + 21, + 2300, + 428310 + ], + [ + 4, + 8, + 22, + 2300, + 428310 + ], + [ + 4, + 9, + 10, + 2300, + 428310 + ], + [ + 4, + 9, + 11, + 2300, + 428310 + ], + [ + 4, + 9, + 12, + 2300, + 428310 + ], + [ + 4, + 9, + 13, + 2300, + 428310 + ], + [ + 4, + 9, + 14, + 2300, + 428310 + ], + [ + 4, + 9, + 15, + 2300, + 428310 + ], + [ + 4, + 9, + 16, + 2300, + 428310 + ], + [ + 4, + 9, + 17, + 2300, + 428310 + ], + [ + 4, + 9, + 18, + 2300, + 428310 + ], + [ + 4, + 9, + 19, + 2300, + 428310 + ], + [ + 4, + 9, + 20, + 2300, + 428310 + ], + [ + 4, + 9, + 21, + 2300, + 428310 + ], + [ + 4, + 9, + 22, + 2300, + 428310 + ], + [ + 4, + 10, + 11, + 2300, + 428310 + ], + [ + 4, + 10, + 12, + 2300, + 428310 + ], + [ + 4, + 10, + 13, + 2300, + 428310 + ], + [ + 4, + 10, + 14, + 2300, + 428310 + ], + [ + 4, + 10, + 15, + 2300, + 428310 + ], + [ + 4, + 10, + 16, + 2300, + 428310 + ], + [ + 4, + 10, + 17, + 2300, + 428310 + ], + [ + 4, + 10, + 18, + 2300, + 428310 + ], + [ + 4, + 10, + 19, + 2300, + 428310 + ], + [ + 4, + 10, + 20, + 2300, + 428310 + ], + [ + 4, + 10, + 21, + 2300, + 428310 + ], + [ + 4, + 10, + 22, + 2300, + 428310 + ], + [ + 4, + 11, + 12, + 2300, + 428310 + ], + [ + 4, + 11, + 13, + 2300, + 428310 + ], + [ + 4, + 11, + 14, + 2300, + 428310 + ], + [ + 4, + 11, + 15, + 2300, + 428310 + ], + [ + 4, + 11, + 16, + 2300, + 428310 + ], + [ + 4, + 11, + 17, + 2300, + 428310 + ], + [ + 4, + 11, + 18, + 2300, + 428310 + ], + [ + 4, + 11, + 19, + 2300, + 428310 + ], + [ + 4, + 11, + 20, + 2299, + 189775 + ], + [ + 4, + 11, + 21, + 2300, + 428310 + ], + [ + 4, + 11, + 22, + 2300, + 428310 + ], + [ + 4, + 12, + 13, + 2300, + 428310 + ], + [ + 4, + 12, + 14, + 2300, + 428310 + ], + [ + 4, + 12, + 15, + 2300, + 428310 + ], + [ + 4, + 12, + 16, + 2300, + 428310 + ], + [ + 4, + 12, + 17, + 2300, + 428310 + ], + [ + 4, + 12, + 18, + 2300, + 428310 + ], + [ + 4, + 12, + 19, + 2300, + 428310 + ], + [ + 4, + 12, + 20, + 2300, + 428310 + ], + [ + 4, + 12, + 21, + 2300, + 428310 + ], + [ + 4, + 12, + 22, + 2300, + 428310 + ], + [ + 4, + 13, + 14, + 2300, + 428310 + ], + [ + 4, + 13, + 15, + 2300, + 428310 + ], + [ + 4, + 13, + 16, + 2300, + 428310 + ], + [ + 4, + 13, + 17, + 2300, + 428310 + ], + [ + 4, + 13, + 18, + 2300, + 428310 + ], + [ + 4, + 13, + 19, + 2300, + 428310 + ], + [ + 4, + 13, + 20, + 2300, + 428310 + ], + [ + 4, + 13, + 21, + 2300, + 428310 + ], + [ + 4, + 13, + 22, + 2300, + 428310 + ], + [ + 4, + 14, + 15, + 2300, + 428310 + ], + [ + 4, + 14, + 16, + 2300, + 428310 + ], + [ + 4, + 14, + 17, + 2300, + 428310 + ], + [ + 4, + 14, + 18, + 2300, + 428310 + ], + [ + 4, + 14, + 19, + 2300, + 428310 + ], + [ + 4, + 14, + 20, + 2300, + 428310 + ], + [ + 4, + 14, + 21, + 2300, + 428310 + ], + [ + 4, + 14, + 22, + 2300, + 428310 + ], + [ + 4, + 15, + 16, + 2300, + 428310 + ], + [ + 4, + 15, + 17, + 2300, + 428310 + ], + [ + 4, + 15, + 18, + 2300, + 428310 + ], + [ + 4, + 15, + 19, + 2300, + 428310 + ], + [ + 4, + 15, + 20, + 2300, + 428310 + ], + [ + 4, + 15, + 21, + 2300, + 428310 + ], + [ + 4, + 15, + 22, + 2300, + 428310 + ], + [ + 4, + 16, + 17, + 2300, + 428310 + ], + [ + 4, + 16, + 18, + 2300, + 428310 + ], + [ + 4, + 16, + 19, + 2300, + 428310 + ], + [ + 4, + 16, + 20, + 2300, + 428310 + ], + [ + 4, + 16, + 21, + 2300, + 428310 + ], + [ + 4, + 16, + 22, + 2300, + 428310 + ], + [ + 4, + 17, + 18, + 2300, + 428310 + ], + [ + 4, + 17, + 19, + 2300, + 428310 + ], + [ + 4, + 17, + 20, + 2300, + 428310 + ], + [ + 4, + 17, + 21, + 2300, + 428310 + ], + [ + 4, + 17, + 22, + 2300, + 428310 + ], + [ + 4, + 18, + 19, + 2300, + 428310 + ], + [ + 4, + 18, + 20, + 2300, + 428310 + ], + [ + 4, + 18, + 21, + 2300, + 428310 + ], + [ + 4, + 18, + 22, + 2300, + 428310 + ], + [ + 4, + 19, + 20, + 2300, + 428310 + ], + [ + 4, + 19, + 21, + 2300, + 428310 + ], + [ + 4, + 19, + 22, + 2300, + 428310 + ], + [ + 4, + 20, + 21, + 2300, + 428310 + ], + [ + 4, + 20, + 22, + 2300, + 428310 + ], + [ + 4, + 21, + 22, + 2300, + 428310 + ], + [ + 5, + 6, + 7, + 2300, + 428310 + ], + [ + 5, + 6, + 8, + 2300, + 428310 + ], + [ + 5, + 6, + 9, + 2300, + 428310 + ], + [ + 5, + 6, + 10, + 2300, + 428310 + ], + [ + 5, + 6, + 11, + 2300, + 428310 + ], + [ + 5, + 6, + 12, + 2300, + 428310 + ], + [ + 5, + 6, + 13, + 2300, + 428310 + ], + [ + 5, + 6, + 14, + 2300, + 428310 + ], + [ + 5, + 6, + 15, + 2300, + 428310 + ], + [ + 5, + 6, + 16, + 2300, + 428310 + ], + [ + 5, + 6, + 17, + 2300, + 428310 + ], + [ + 5, + 6, + 18, + 2300, + 428310 + ], + [ + 5, + 6, + 19, + 2300, + 428310 + ], + [ + 5, + 6, + 20, + 2300, + 428310 + ], + [ + 5, + 6, + 21, + 2300, + 428310 + ], + [ + 5, + 6, + 22, + 2300, + 428310 + ], + [ + 5, + 7, + 8, + 2300, + 428310 + ], + [ + 5, + 7, + 9, + 2300, + 428310 + ], + [ + 5, + 7, + 10, + 2300, + 428310 + ], + [ + 5, + 7, + 11, + 2300, + 428310 + ], + [ + 5, + 7, + 12, + 2300, + 428310 + ], + [ + 5, + 7, + 13, + 2300, + 428310 + ], + [ + 5, + 7, + 14, + 2300, + 428310 + ], + [ + 5, + 7, + 15, + 2300, + 428310 + ], + [ + 5, + 7, + 16, + 2300, + 428310 + ], + [ + 5, + 7, + 17, + 2300, + 428310 + ], + [ + 5, + 7, + 18, + 2300, + 428310 + ], + [ + 5, + 7, + 19, + 2300, + 428310 + ], + [ + 5, + 7, + 20, + 2300, + 428310 + ], + [ + 5, + 7, + 21, + 2299, + 189775 + ], + [ + 5, + 7, + 22, + 2300, + 428310 + ], + [ + 5, + 8, + 9, + 2300, + 428310 + ], + [ + 5, + 8, + 10, + 2300, + 428310 + ], + [ + 5, + 8, + 11, + 2300, + 428310 + ], + [ + 5, + 8, + 12, + 2300, + 428310 + ], + [ + 5, + 8, + 13, + 2300, + 428310 + ], + [ + 5, + 8, + 14, + 2300, + 428310 + ], + [ + 5, + 8, + 15, + 2300, + 428310 + ], + [ + 5, + 8, + 16, + 2300, + 428310 + ], + [ + 5, + 8, + 17, + 2300, + 428310 + ], + [ + 5, + 8, + 18, + 2300, + 428310 + ], + [ + 5, + 8, + 19, + 2300, + 428310 + ], + [ + 5, + 8, + 20, + 2300, + 428310 + ], + [ + 5, + 8, + 21, + 2300, + 428310 + ], + [ + 5, + 8, + 22, + 2300, + 428310 + ], + [ + 5, + 9, + 10, + 2300, + 428310 + ], + [ + 5, + 9, + 11, + 2300, + 428310 + ], + [ + 5, + 9, + 12, + 2300, + 428310 + ], + [ + 5, + 9, + 13, + 2300, + 428310 + ], + [ + 5, + 9, + 14, + 2300, + 428310 + ], + [ + 5, + 9, + 15, + 2300, + 428310 + ], + [ + 5, + 9, + 16, + 2300, + 428310 + ], + [ + 5, + 9, + 17, + 2300, + 428310 + ], + [ + 5, + 9, + 18, + 2300, + 428310 + ], + [ + 5, + 9, + 19, + 2300, + 428310 + ], + [ + 5, + 9, + 20, + 2300, + 428310 + ], + [ + 5, + 9, + 21, + 2300, + 428310 + ], + [ + 5, + 9, + 22, + 2300, + 428310 + ], + [ + 5, + 10, + 11, + 2300, + 428310 + ], + [ + 5, + 10, + 12, + 2300, + 428310 + ], + [ + 5, + 10, + 13, + 2300, + 428310 + ], + [ + 5, + 10, + 14, + 2300, + 428310 + ], + [ + 5, + 10, + 15, + 2300, + 428310 + ], + [ + 5, + 10, + 16, + 2300, + 428310 + ], + [ + 5, + 10, + 17, + 2300, + 428310 + ], + [ + 5, + 10, + 18, + 2300, + 428310 + ], + [ + 5, + 10, + 19, + 2300, + 428310 + ], + [ + 5, + 10, + 20, + 2300, + 428310 + ], + [ + 5, + 10, + 21, + 2300, + 428310 + ], + [ + 5, + 10, + 22, + 2300, + 428310 + ], + [ + 5, + 11, + 12, + 2300, + 428310 + ], + [ + 5, + 11, + 13, + 2300, + 428310 + ], + [ + 5, + 11, + 14, + 2300, + 428310 + ], + [ + 5, + 11, + 15, + 2300, + 428310 + ], + [ + 5, + 11, + 16, + 2300, + 428310 + ], + [ + 5, + 11, + 17, + 2300, + 428310 + ], + [ + 5, + 11, + 18, + 2300, + 428310 + ], + [ + 5, + 11, + 19, + 2300, + 428310 + ], + [ + 5, + 11, + 20, + 2300, + 428310 + ], + [ + 5, + 11, + 21, + 2300, + 428310 + ], + [ + 5, + 11, + 22, + 2300, + 428310 + ], + [ + 5, + 12, + 13, + 2300, + 428310 + ], + [ + 5, + 12, + 14, + 2300, + 428310 + ], + [ + 5, + 12, + 15, + 2300, + 428310 + ], + [ + 5, + 12, + 16, + 2300, + 428310 + ], + [ + 5, + 12, + 17, + 2300, + 428310 + ], + [ + 5, + 12, + 18, + 2300, + 428310 + ], + [ + 5, + 12, + 19, + 2300, + 428310 + ], + [ + 5, + 12, + 20, + 2300, + 428310 + ], + [ + 5, + 12, + 21, + 2300, + 428310 + ], + [ + 5, + 12, + 22, + 2300, + 428310 + ], + [ + 5, + 13, + 14, + 2300, + 428310 + ], + [ + 5, + 13, + 15, + 2300, + 428310 + ], + [ + 5, + 13, + 16, + 2300, + 428310 + ], + [ + 5, + 13, + 17, + 2300, + 428310 + ], + [ + 5, + 13, + 18, + 2300, + 428310 + ], + [ + 5, + 13, + 19, + 2300, + 428310 + ], + [ + 5, + 13, + 20, + 2300, + 428310 + ], + [ + 5, + 13, + 21, + 2300, + 428310 + ], + [ + 5, + 13, + 22, + 2300, + 428310 + ], + [ + 5, + 14, + 15, + 2300, + 428310 + ], + [ + 5, + 14, + 16, + 2300, + 428310 + ], + [ + 5, + 14, + 17, + 2300, + 428310 + ], + [ + 5, + 14, + 18, + 2300, + 428310 + ], + [ + 5, + 14, + 19, + 2300, + 428310 + ], + [ + 5, + 14, + 20, + 2300, + 428310 + ], + [ + 5, + 14, + 21, + 2300, + 428310 + ], + [ + 5, + 14, + 22, + 2300, + 428310 + ], + [ + 5, + 15, + 16, + 2300, + 428310 + ], + [ + 5, + 15, + 17, + 2300, + 428310 + ], + [ + 5, + 15, + 18, + 2300, + 428310 + ], + [ + 5, + 15, + 19, + 2300, + 428310 + ], + [ + 5, + 15, + 20, + 2300, + 428310 + ], + [ + 5, + 15, + 21, + 2300, + 428310 + ], + [ + 5, + 15, + 22, + 2300, + 428310 + ], + [ + 5, + 16, + 17, + 2300, + 428310 + ], + [ + 5, + 16, + 18, + 2300, + 428310 + ], + [ + 5, + 16, + 19, + 2300, + 428310 + ], + [ + 5, + 16, + 20, + 2300, + 428310 + ], + [ + 5, + 16, + 21, + 2300, + 428310 + ], + [ + 5, + 16, + 22, + 2300, + 428310 + ], + [ + 5, + 17, + 18, + 2300, + 428310 + ], + [ + 5, + 17, + 19, + 2300, + 428310 + ], + [ + 5, + 17, + 20, + 2300, + 428310 + ], + [ + 5, + 17, + 21, + 2300, + 428310 + ], + [ + 5, + 17, + 22, + 2300, + 428310 + ], + [ + 5, + 18, + 19, + 2300, + 428310 + ], + [ + 5, + 18, + 20, + 2300, + 428310 + ], + [ + 5, + 18, + 21, + 2300, + 428310 + ], + [ + 5, + 18, + 22, + 2300, + 428310 + ], + [ + 5, + 19, + 20, + 2300, + 428310 + ], + [ + 5, + 19, + 21, + 2300, + 428310 + ], + [ + 5, + 19, + 22, + 2300, + 428310 + ], + [ + 5, + 20, + 21, + 2300, + 428310 + ], + [ + 5, + 20, + 22, + 2300, + 428310 + ], + [ + 5, + 21, + 22, + 2300, + 428310 + ], + [ + 6, + 7, + 8, + 2300, + 428310 + ], + [ + 6, + 7, + 9, + 2300, + 428310 + ], + [ + 6, + 7, + 10, + 2300, + 428310 + ], + [ + 6, + 7, + 11, + 2300, + 428310 + ], + [ + 6, + 7, + 12, + 2300, + 428310 + ], + [ + 6, + 7, + 13, + 2300, + 428310 + ], + [ + 6, + 7, + 14, + 2300, + 428310 + ], + [ + 6, + 7, + 15, + 2300, + 428310 + ], + [ + 6, + 7, + 16, + 2300, + 428310 + ], + [ + 6, + 7, + 17, + 2300, + 428310 + ], + [ + 6, + 7, + 18, + 2300, + 428310 + ], + [ + 6, + 7, + 19, + 2300, + 428310 + ], + [ + 6, + 7, + 20, + 2300, + 428310 + ], + [ + 6, + 7, + 21, + 2300, + 428310 + ], + [ + 6, + 7, + 22, + 2300, + 428310 + ], + [ + 6, + 8, + 9, + 2300, + 428310 + ], + [ + 6, + 8, + 10, + 2300, + 428310 + ], + [ + 6, + 8, + 11, + 2300, + 428310 + ], + [ + 6, + 8, + 12, + 2300, + 428310 + ], + [ + 6, + 8, + 13, + 2300, + 428310 + ], + [ + 6, + 8, + 14, + 2300, + 428310 + ], + [ + 6, + 8, + 15, + 2300, + 428310 + ], + [ + 6, + 8, + 16, + 2300, + 428310 + ], + [ + 6, + 8, + 17, + 2300, + 428310 + ], + [ + 6, + 8, + 18, + 2300, + 428310 + ], + [ + 6, + 8, + 19, + 2300, + 428310 + ], + [ + 6, + 8, + 20, + 2300, + 428310 + ], + [ + 6, + 8, + 21, + 2300, + 428310 + ], + [ + 6, + 8, + 22, + 2300, + 428310 + ], + [ + 6, + 9, + 10, + 2300, + 428310 + ], + [ + 6, + 9, + 11, + 2300, + 428310 + ], + [ + 6, + 9, + 12, + 2300, + 428310 + ], + [ + 6, + 9, + 13, + 2300, + 428310 + ], + [ + 6, + 9, + 14, + 2300, + 428310 + ], + [ + 6, + 9, + 15, + 2300, + 428310 + ], + [ + 6, + 9, + 16, + 2300, + 428310 + ], + [ + 6, + 9, + 17, + 2300, + 428310 + ], + [ + 6, + 9, + 18, + 2300, + 428310 + ], + [ + 6, + 9, + 19, + 2300, + 428310 + ], + [ + 6, + 9, + 20, + 2300, + 428310 + ], + [ + 6, + 9, + 21, + 2300, + 428310 + ], + [ + 6, + 9, + 22, + 2300, + 428310 + ], + [ + 6, + 10, + 11, + 2300, + 428310 + ], + [ + 6, + 10, + 12, + 2300, + 428310 + ], + [ + 6, + 10, + 13, + 2300, + 428310 + ], + [ + 6, + 10, + 14, + 2300, + 428310 + ], + [ + 6, + 10, + 15, + 2300, + 428310 + ], + [ + 6, + 10, + 16, + 2300, + 428310 + ], + [ + 6, + 10, + 17, + 2300, + 428310 + ], + [ + 6, + 10, + 18, + 2300, + 428310 + ], + [ + 6, + 10, + 19, + 2300, + 428310 + ], + [ + 6, + 10, + 20, + 2300, + 428310 + ], + [ + 6, + 10, + 21, + 2300, + 428310 + ], + [ + 6, + 10, + 22, + 2300, + 428310 + ], + [ + 6, + 11, + 12, + 2300, + 428310 + ], + [ + 6, + 11, + 13, + 2300, + 428310 + ], + [ + 6, + 11, + 14, + 2300, + 428310 + ], + [ + 6, + 11, + 15, + 2300, + 428310 + ], + [ + 6, + 11, + 16, + 2300, + 428310 + ], + [ + 6, + 11, + 17, + 2300, + 428310 + ], + [ + 6, + 11, + 18, + 2300, + 428310 + ], + [ + 6, + 11, + 19, + 2300, + 428310 + ], + [ + 6, + 11, + 20, + 2300, + 428310 + ], + [ + 6, + 11, + 21, + 2300, + 428310 + ], + [ + 6, + 11, + 22, + 2300, + 428310 + ], + [ + 6, + 12, + 13, + 2300, + 428310 + ], + [ + 6, + 12, + 14, + 2300, + 428310 + ], + [ + 6, + 12, + 15, + 2300, + 428310 + ], + [ + 6, + 12, + 16, + 2300, + 428310 + ], + [ + 6, + 12, + 17, + 2300, + 428310 + ], + [ + 6, + 12, + 18, + 2300, + 428310 + ], + [ + 6, + 12, + 19, + 2300, + 428310 + ], + [ + 6, + 12, + 20, + 2300, + 428310 + ], + [ + 6, + 12, + 21, + 2300, + 428310 + ], + [ + 6, + 12, + 22, + 2300, + 428310 + ], + [ + 6, + 13, + 14, + 2300, + 428310 + ], + [ + 6, + 13, + 15, + 2300, + 428310 + ], + [ + 6, + 13, + 16, + 2300, + 428310 + ], + [ + 6, + 13, + 17, + 2300, + 428310 + ], + [ + 6, + 13, + 18, + 2300, + 428310 + ], + [ + 6, + 13, + 19, + 2300, + 428310 + ], + [ + 6, + 13, + 20, + 2300, + 428310 + ], + [ + 6, + 13, + 21, + 2300, + 428310 + ], + [ + 6, + 13, + 22, + 2300, + 428310 + ], + [ + 6, + 14, + 15, + 2300, + 428310 + ], + [ + 6, + 14, + 16, + 2300, + 428310 + ], + [ + 6, + 14, + 17, + 2300, + 428310 + ], + [ + 6, + 14, + 18, + 2300, + 428310 + ], + [ + 6, + 14, + 19, + 2300, + 428310 + ], + [ + 6, + 14, + 20, + 2300, + 428310 + ], + [ + 6, + 14, + 21, + 2300, + 428310 + ], + [ + 6, + 14, + 22, + 2300, + 428310 + ], + [ + 6, + 15, + 16, + 2300, + 428310 + ], + [ + 6, + 15, + 17, + 2300, + 428310 + ], + [ + 6, + 15, + 18, + 2300, + 428310 + ], + [ + 6, + 15, + 19, + 2300, + 428310 + ], + [ + 6, + 15, + 20, + 2300, + 428310 + ], + [ + 6, + 15, + 21, + 2300, + 428310 + ], + [ + 6, + 15, + 22, + 2300, + 428310 + ], + [ + 6, + 16, + 17, + 2300, + 428310 + ], + [ + 6, + 16, + 18, + 2300, + 428310 + ], + [ + 6, + 16, + 19, + 2300, + 428310 + ], + [ + 6, + 16, + 20, + 2300, + 428310 + ], + [ + 6, + 16, + 21, + 2300, + 428310 + ], + [ + 6, + 16, + 22, + 2300, + 428310 + ], + [ + 6, + 17, + 18, + 2300, + 428310 + ], + [ + 6, + 17, + 19, + 2300, + 428310 + ], + [ + 6, + 17, + 20, + 2300, + 428310 + ], + [ + 6, + 17, + 21, + 2300, + 428310 + ], + [ + 6, + 17, + 22, + 2300, + 428310 + ], + [ + 6, + 18, + 19, + 2300, + 428310 + ], + [ + 6, + 18, + 20, + 2300, + 428310 + ], + [ + 6, + 18, + 21, + 2300, + 428310 + ], + [ + 6, + 18, + 22, + 2300, + 428310 + ], + [ + 6, + 19, + 20, + 2300, + 428310 + ], + [ + 6, + 19, + 21, + 2300, + 428310 + ], + [ + 6, + 19, + 22, + 2300, + 428310 + ], + [ + 6, + 20, + 21, + 2300, + 428310 + ], + [ + 6, + 20, + 22, + 2300, + 428310 + ], + [ + 6, + 21, + 22, + 2300, + 428310 + ], + [ + 7, + 8, + 9, + 2300, + 428310 + ], + [ + 7, + 8, + 10, + 2300, + 428310 + ], + [ + 7, + 8, + 11, + 2300, + 428310 + ], + [ + 7, + 8, + 12, + 2300, + 428310 + ], + [ + 7, + 8, + 13, + 2300, + 428310 + ], + [ + 7, + 8, + 14, + 2300, + 428310 + ], + [ + 7, + 8, + 15, + 2300, + 428310 + ], + [ + 7, + 8, + 16, + 2300, + 428310 + ], + [ + 7, + 8, + 17, + 2300, + 428310 + ], + [ + 7, + 8, + 18, + 2300, + 428310 + ], + [ + 7, + 8, + 19, + 2300, + 428310 + ], + [ + 7, + 8, + 20, + 2300, + 428310 + ], + [ + 7, + 8, + 21, + 2300, + 428310 + ], + [ + 7, + 8, + 22, + 2300, + 428310 + ], + [ + 7, + 9, + 10, + 2300, + 428310 + ], + [ + 7, + 9, + 11, + 2300, + 428310 + ], + [ + 7, + 9, + 12, + 2300, + 428310 + ], + [ + 7, + 9, + 13, + 2300, + 428310 + ], + [ + 7, + 9, + 14, + 2300, + 428310 + ], + [ + 7, + 9, + 15, + 2300, + 428310 + ], + [ + 7, + 9, + 16, + 2300, + 428310 + ], + [ + 7, + 9, + 17, + 2300, + 428310 + ], + [ + 7, + 9, + 18, + 2300, + 428310 + ], + [ + 7, + 9, + 19, + 2300, + 428310 + ], + [ + 7, + 9, + 20, + 2300, + 428310 + ], + [ + 7, + 9, + 21, + 2300, + 428310 + ], + [ + 7, + 9, + 22, + 2300, + 428310 + ], + [ + 7, + 10, + 11, + 2300, + 428310 + ], + [ + 7, + 10, + 12, + 2300, + 428310 + ], + [ + 7, + 10, + 13, + 2300, + 428310 + ], + [ + 7, + 10, + 14, + 2300, + 428310 + ], + [ + 7, + 10, + 15, + 2300, + 428310 + ], + [ + 7, + 10, + 16, + 2300, + 428310 + ], + [ + 7, + 10, + 17, + 2300, + 428310 + ], + [ + 7, + 10, + 18, + 2300, + 428310 + ], + [ + 7, + 10, + 19, + 2300, + 428310 + ], + [ + 7, + 10, + 20, + 2300, + 428310 + ], + [ + 7, + 10, + 21, + 2300, + 428310 + ], + [ + 7, + 10, + 22, + 2300, + 428310 + ], + [ + 7, + 11, + 12, + 2300, + 428310 + ], + [ + 7, + 11, + 13, + 2300, + 428310 + ], + [ + 7, + 11, + 14, + 2300, + 428310 + ], + [ + 7, + 11, + 15, + 2300, + 428310 + ], + [ + 7, + 11, + 16, + 2300, + 428310 + ], + [ + 7, + 11, + 17, + 2300, + 428310 + ], + [ + 7, + 11, + 18, + 2300, + 428310 + ], + [ + 7, + 11, + 19, + 2300, + 428310 + ], + [ + 7, + 11, + 20, + 2300, + 428310 + ], + [ + 7, + 11, + 21, + 2300, + 428310 + ], + [ + 7, + 11, + 22, + 2300, + 428310 + ], + [ + 7, + 12, + 13, + 2300, + 428310 + ], + [ + 7, + 12, + 14, + 2300, + 428310 + ], + [ + 7, + 12, + 15, + 2300, + 428310 + ], + [ + 7, + 12, + 16, + 2300, + 428310 + ], + [ + 7, + 12, + 17, + 2300, + 428310 + ], + [ + 7, + 12, + 18, + 2300, + 428310 + ], + [ + 7, + 12, + 19, + 2300, + 428310 + ], + [ + 7, + 12, + 20, + 2300, + 428310 + ], + [ + 7, + 12, + 21, + 2300, + 428310 + ], + [ + 7, + 12, + 22, + 2300, + 428310 + ], + [ + 7, + 13, + 14, + 2300, + 428310 + ], + [ + 7, + 13, + 15, + 2300, + 428310 + ], + [ + 7, + 13, + 16, + 2300, + 428310 + ], + [ + 7, + 13, + 17, + 2300, + 428310 + ], + [ + 7, + 13, + 18, + 2300, + 428310 + ], + [ + 7, + 13, + 19, + 2300, + 428310 + ], + [ + 7, + 13, + 20, + 2300, + 428310 + ], + [ + 7, + 13, + 21, + 2300, + 428310 + ], + [ + 7, + 13, + 22, + 2300, + 428310 + ], + [ + 7, + 14, + 15, + 2300, + 428310 + ], + [ + 7, + 14, + 16, + 2300, + 428310 + ], + [ + 7, + 14, + 17, + 2300, + 428310 + ], + [ + 7, + 14, + 18, + 2300, + 428310 + ], + [ + 7, + 14, + 19, + 2300, + 428310 + ], + [ + 7, + 14, + 20, + 2300, + 428310 + ], + [ + 7, + 14, + 21, + 2300, + 428310 + ], + [ + 7, + 14, + 22, + 2300, + 428310 + ], + [ + 7, + 15, + 16, + 2300, + 428310 + ], + [ + 7, + 15, + 17, + 2300, + 428310 + ], + [ + 7, + 15, + 18, + 2300, + 428310 + ], + [ + 7, + 15, + 19, + 2300, + 428310 + ], + [ + 7, + 15, + 20, + 2300, + 428310 + ], + [ + 7, + 15, + 21, + 2300, + 428310 + ], + [ + 7, + 15, + 22, + 2300, + 428310 + ], + [ + 7, + 16, + 17, + 2300, + 428310 + ], + [ + 7, + 16, + 18, + 2300, + 428310 + ], + [ + 7, + 16, + 19, + 2300, + 428310 + ], + [ + 7, + 16, + 20, + 2300, + 428310 + ], + [ + 7, + 16, + 21, + 2300, + 428310 + ], + [ + 7, + 16, + 22, + 2300, + 428310 + ], + [ + 7, + 17, + 18, + 2300, + 428310 + ], + [ + 7, + 17, + 19, + 2300, + 428310 + ], + [ + 7, + 17, + 20, + 2300, + 428310 + ], + [ + 7, + 17, + 21, + 2300, + 428310 + ], + [ + 7, + 17, + 22, + 2300, + 428310 + ], + [ + 7, + 18, + 19, + 2300, + 428310 + ], + [ + 7, + 18, + 20, + 2300, + 428310 + ], + [ + 7, + 18, + 21, + 2300, + 428310 + ], + [ + 7, + 18, + 22, + 2300, + 428310 + ], + [ + 7, + 19, + 20, + 2300, + 428310 + ], + [ + 7, + 19, + 21, + 2300, + 428310 + ], + [ + 7, + 19, + 22, + 2300, + 428310 + ], + [ + 7, + 20, + 21, + 2300, + 428310 + ], + [ + 7, + 20, + 22, + 2300, + 428310 + ], + [ + 7, + 21, + 22, + 2300, + 428310 + ], + [ + 8, + 9, + 10, + 2300, + 428310 + ], + [ + 8, + 9, + 11, + 2300, + 428310 + ], + [ + 8, + 9, + 12, + 2300, + 428310 + ], + [ + 8, + 9, + 13, + 2300, + 428310 + ], + [ + 8, + 9, + 14, + 2300, + 428310 + ], + [ + 8, + 9, + 15, + 2300, + 428310 + ], + [ + 8, + 9, + 16, + 2300, + 428310 + ], + [ + 8, + 9, + 17, + 2300, + 428310 + ], + [ + 8, + 9, + 18, + 2300, + 428310 + ], + [ + 8, + 9, + 19, + 2300, + 428310 + ], + [ + 8, + 9, + 20, + 2300, + 428310 + ], + [ + 8, + 9, + 21, + 2300, + 428310 + ], + [ + 8, + 9, + 22, + 2300, + 428310 + ], + [ + 8, + 10, + 11, + 2300, + 428310 + ], + [ + 8, + 10, + 12, + 2300, + 428310 + ], + [ + 8, + 10, + 13, + 2300, + 428310 + ], + [ + 8, + 10, + 14, + 2300, + 428310 + ], + [ + 8, + 10, + 15, + 2300, + 428310 + ], + [ + 8, + 10, + 16, + 2300, + 428310 + ], + [ + 8, + 10, + 17, + 2300, + 428310 + ], + [ + 8, + 10, + 18, + 2300, + 428310 + ], + [ + 8, + 10, + 19, + 2300, + 428310 + ], + [ + 8, + 10, + 20, + 2300, + 428310 + ], + [ + 8, + 10, + 21, + 2300, + 428310 + ], + [ + 8, + 10, + 22, + 2300, + 428310 + ], + [ + 8, + 11, + 12, + 2300, + 428310 + ], + [ + 8, + 11, + 13, + 2300, + 428310 + ], + [ + 8, + 11, + 14, + 2300, + 428310 + ], + [ + 8, + 11, + 15, + 2300, + 428310 + ], + [ + 8, + 11, + 16, + 2300, + 428310 + ], + [ + 8, + 11, + 17, + 2300, + 428310 + ], + [ + 8, + 11, + 18, + 2300, + 428310 + ], + [ + 8, + 11, + 19, + 2300, + 428310 + ], + [ + 8, + 11, + 20, + 2300, + 428310 + ], + [ + 8, + 11, + 21, + 2300, + 428310 + ], + [ + 8, + 11, + 22, + 2300, + 428310 + ], + [ + 8, + 12, + 13, + 2300, + 428310 + ], + [ + 8, + 12, + 14, + 2300, + 428310 + ], + [ + 8, + 12, + 15, + 2300, + 428310 + ], + [ + 8, + 12, + 16, + 2300, + 428310 + ], + [ + 8, + 12, + 17, + 2300, + 428310 + ], + [ + 8, + 12, + 18, + 2300, + 428310 + ], + [ + 8, + 12, + 19, + 2300, + 428310 + ], + [ + 8, + 12, + 20, + 2300, + 428310 + ], + [ + 8, + 12, + 21, + 2300, + 428310 + ], + [ + 8, + 12, + 22, + 2300, + 428310 + ], + [ + 8, + 13, + 14, + 2300, + 428310 + ], + [ + 8, + 13, + 15, + 2300, + 428310 + ], + [ + 8, + 13, + 16, + 2300, + 428310 + ], + [ + 8, + 13, + 17, + 2300, + 428310 + ], + [ + 8, + 13, + 18, + 2300, + 428310 + ], + [ + 8, + 13, + 19, + 2300, + 428310 + ], + [ + 8, + 13, + 20, + 2300, + 428310 + ], + [ + 8, + 13, + 21, + 2300, + 428310 + ], + [ + 8, + 13, + 22, + 2300, + 428310 + ], + [ + 8, + 14, + 15, + 2300, + 428310 + ], + [ + 8, + 14, + 16, + 2300, + 428310 + ], + [ + 8, + 14, + 17, + 2300, + 428310 + ], + [ + 8, + 14, + 18, + 2300, + 428310 + ], + [ + 8, + 14, + 19, + 2300, + 428310 + ], + [ + 8, + 14, + 20, + 2300, + 428310 + ], + [ + 8, + 14, + 21, + 2300, + 428310 + ], + [ + 8, + 14, + 22, + 2300, + 428310 + ], + [ + 8, + 15, + 16, + 2300, + 428310 + ], + [ + 8, + 15, + 17, + 2300, + 428310 + ], + [ + 8, + 15, + 18, + 2300, + 428310 + ], + [ + 8, + 15, + 19, + 2300, + 428310 + ], + [ + 8, + 15, + 20, + 2300, + 428310 + ], + [ + 8, + 15, + 21, + 2300, + 428310 + ], + [ + 8, + 15, + 22, + 2300, + 428310 + ], + [ + 8, + 16, + 17, + 2300, + 428310 + ], + [ + 8, + 16, + 18, + 2300, + 428310 + ], + [ + 8, + 16, + 19, + 2300, + 428310 + ], + [ + 8, + 16, + 20, + 2300, + 428310 + ], + [ + 8, + 16, + 21, + 2300, + 428310 + ], + [ + 8, + 16, + 22, + 2300, + 428310 + ], + [ + 8, + 17, + 18, + 2300, + 428310 + ], + [ + 8, + 17, + 19, + 2300, + 428310 + ], + [ + 8, + 17, + 20, + 2300, + 428310 + ], + [ + 8, + 17, + 21, + 2300, + 428310 + ], + [ + 8, + 17, + 22, + 2300, + 428310 + ], + [ + 8, + 18, + 19, + 2300, + 428310 + ], + [ + 8, + 18, + 20, + 2300, + 428310 + ], + [ + 8, + 18, + 21, + 2300, + 428310 + ], + [ + 8, + 18, + 22, + 2300, + 428310 + ], + [ + 8, + 19, + 20, + 2300, + 428310 + ], + [ + 8, + 19, + 21, + 2300, + 428310 + ], + [ + 8, + 19, + 22, + 2300, + 428310 + ], + [ + 8, + 20, + 21, + 2300, + 428310 + ], + [ + 8, + 20, + 22, + 2300, + 428310 + ], + [ + 8, + 21, + 22, + 2300, + 428310 + ], + [ + 9, + 10, + 11, + 2300, + 428310 + ], + [ + 9, + 10, + 12, + 2300, + 428310 + ], + [ + 9, + 10, + 13, + 2300, + 428310 + ], + [ + 9, + 10, + 14, + 2300, + 428310 + ], + [ + 9, + 10, + 15, + 2300, + 428310 + ], + [ + 9, + 10, + 16, + 2300, + 428310 + ], + [ + 9, + 10, + 17, + 2300, + 428310 + ], + [ + 9, + 10, + 18, + 2300, + 428310 + ], + [ + 9, + 10, + 19, + 2300, + 428310 + ], + [ + 9, + 10, + 20, + 2300, + 428310 + ], + [ + 9, + 10, + 21, + 2300, + 428310 + ], + [ + 9, + 10, + 22, + 2300, + 428310 + ], + [ + 9, + 11, + 12, + 2300, + 428310 + ], + [ + 9, + 11, + 13, + 2300, + 428310 + ], + [ + 9, + 11, + 14, + 2300, + 428310 + ], + [ + 9, + 11, + 15, + 2300, + 428310 + ], + [ + 9, + 11, + 16, + 2300, + 428310 + ], + [ + 9, + 11, + 17, + 2300, + 428310 + ], + [ + 9, + 11, + 18, + 2300, + 428310 + ], + [ + 9, + 11, + 19, + 2300, + 428310 + ], + [ + 9, + 11, + 20, + 2300, + 428310 + ], + [ + 9, + 11, + 21, + 2300, + 428310 + ], + [ + 9, + 11, + 22, + 2300, + 428310 + ], + [ + 9, + 12, + 13, + 2300, + 428310 + ], + [ + 9, + 12, + 14, + 2300, + 428310 + ], + [ + 9, + 12, + 15, + 2300, + 428310 + ], + [ + 9, + 12, + 16, + 2300, + 428310 + ], + [ + 9, + 12, + 17, + 2300, + 428310 + ], + [ + 9, + 12, + 18, + 2300, + 428310 + ], + [ + 9, + 12, + 19, + 2300, + 428310 + ], + [ + 9, + 12, + 20, + 2300, + 428310 + ], + [ + 9, + 12, + 21, + 2300, + 428310 + ], + [ + 9, + 12, + 22, + 2300, + 428310 + ], + [ + 9, + 13, + 14, + 2300, + 428310 + ], + [ + 9, + 13, + 15, + 2300, + 428310 + ], + [ + 9, + 13, + 16, + 2300, + 428310 + ], + [ + 9, + 13, + 17, + 2300, + 428310 + ], + [ + 9, + 13, + 18, + 2300, + 428310 + ], + [ + 9, + 13, + 19, + 2300, + 428310 + ], + [ + 9, + 13, + 20, + 2300, + 428310 + ], + [ + 9, + 13, + 21, + 2300, + 428310 + ], + [ + 9, + 13, + 22, + 2300, + 428310 + ], + [ + 9, + 14, + 15, + 2300, + 428310 + ], + [ + 9, + 14, + 16, + 2300, + 428310 + ], + [ + 9, + 14, + 17, + 2300, + 428310 + ], + [ + 9, + 14, + 18, + 2300, + 428310 + ], + [ + 9, + 14, + 19, + 2300, + 428310 + ], + [ + 9, + 14, + 20, + 2300, + 428310 + ], + [ + 9, + 14, + 21, + 2300, + 428310 + ], + [ + 9, + 14, + 22, + 2300, + 428310 + ], + [ + 9, + 15, + 16, + 2300, + 428310 + ], + [ + 9, + 15, + 17, + 2300, + 428310 + ], + [ + 9, + 15, + 18, + 2300, + 428310 + ], + [ + 9, + 15, + 19, + 2300, + 428310 + ], + [ + 9, + 15, + 20, + 2300, + 428310 + ], + [ + 9, + 15, + 21, + 2300, + 428310 + ], + [ + 9, + 15, + 22, + 2300, + 428310 + ], + [ + 9, + 16, + 17, + 2300, + 428310 + ], + [ + 9, + 16, + 18, + 2300, + 428310 + ], + [ + 9, + 16, + 19, + 2300, + 428310 + ], + [ + 9, + 16, + 20, + 2300, + 428310 + ], + [ + 9, + 16, + 21, + 2300, + 428310 + ], + [ + 9, + 16, + 22, + 2300, + 428310 + ], + [ + 9, + 17, + 18, + 2300, + 428310 + ], + [ + 9, + 17, + 19, + 2300, + 428310 + ], + [ + 9, + 17, + 20, + 2300, + 428310 + ], + [ + 9, + 17, + 21, + 2300, + 428310 + ], + [ + 9, + 17, + 22, + 2300, + 428310 + ], + [ + 9, + 18, + 19, + 2300, + 428310 + ], + [ + 9, + 18, + 20, + 2300, + 428310 + ], + [ + 9, + 18, + 21, + 2300, + 428310 + ], + [ + 9, + 18, + 22, + 2300, + 428310 + ], + [ + 9, + 19, + 20, + 2300, + 428310 + ], + [ + 9, + 19, + 21, + 2300, + 428310 + ], + [ + 9, + 19, + 22, + 2300, + 428310 + ], + [ + 9, + 20, + 21, + 2300, + 428310 + ], + [ + 9, + 20, + 22, + 2300, + 428310 + ], + [ + 9, + 21, + 22, + 2300, + 428310 + ], + [ + 10, + 11, + 12, + 2300, + 428310 + ], + [ + 10, + 11, + 13, + 2300, + 428310 + ], + [ + 10, + 11, + 14, + 2300, + 428310 + ], + [ + 10, + 11, + 15, + 2300, + 428310 + ], + [ + 10, + 11, + 16, + 2300, + 428310 + ], + [ + 10, + 11, + 17, + 2300, + 428310 + ], + [ + 10, + 11, + 18, + 2300, + 428310 + ], + [ + 10, + 11, + 19, + 2300, + 428310 + ], + [ + 10, + 11, + 20, + 2300, + 428310 + ], + [ + 10, + 11, + 21, + 2300, + 428310 + ], + [ + 10, + 11, + 22, + 2299, + 189775 + ], + [ + 10, + 12, + 13, + 2300, + 428310 + ], + [ + 10, + 12, + 14, + 2300, + 428310 + ], + [ + 10, + 12, + 15, + 2300, + 428310 + ], + [ + 10, + 12, + 16, + 2300, + 428310 + ], + [ + 10, + 12, + 17, + 2300, + 428310 + ], + [ + 10, + 12, + 18, + 2300, + 428310 + ], + [ + 10, + 12, + 19, + 2300, + 428310 + ], + [ + 10, + 12, + 20, + 2300, + 428310 + ], + [ + 10, + 12, + 21, + 2300, + 428310 + ], + [ + 10, + 12, + 22, + 2300, + 428310 + ], + [ + 10, + 13, + 14, + 2300, + 428310 + ], + [ + 10, + 13, + 15, + 2300, + 428310 + ], + [ + 10, + 13, + 16, + 2300, + 428310 + ], + [ + 10, + 13, + 17, + 2300, + 428310 + ], + [ + 10, + 13, + 18, + 2300, + 428310 + ], + [ + 10, + 13, + 19, + 2300, + 428310 + ], + [ + 10, + 13, + 20, + 2300, + 428310 + ], + [ + 10, + 13, + 21, + 2300, + 428310 + ], + [ + 10, + 13, + 22, + 2300, + 428310 + ], + [ + 10, + 14, + 15, + 2300, + 428310 + ], + [ + 10, + 14, + 16, + 2300, + 428310 + ], + [ + 10, + 14, + 17, + 2300, + 428310 + ], + [ + 10, + 14, + 18, + 2300, + 428310 + ], + [ + 10, + 14, + 19, + 2300, + 428310 + ], + [ + 10, + 14, + 20, + 2300, + 428310 + ], + [ + 10, + 14, + 21, + 2300, + 428310 + ], + [ + 10, + 14, + 22, + 2300, + 428310 + ], + [ + 10, + 15, + 16, + 2300, + 428310 + ], + [ + 10, + 15, + 17, + 2300, + 428310 + ], + [ + 10, + 15, + 18, + 2300, + 428310 + ], + [ + 10, + 15, + 19, + 2300, + 428310 + ], + [ + 10, + 15, + 20, + 2300, + 428310 + ], + [ + 10, + 15, + 21, + 2300, + 428310 + ], + [ + 10, + 15, + 22, + 2300, + 428310 + ], + [ + 10, + 16, + 17, + 2300, + 428310 + ], + [ + 10, + 16, + 18, + 2300, + 428310 + ], + [ + 10, + 16, + 19, + 2300, + 428310 + ], + [ + 10, + 16, + 20, + 2300, + 428310 + ], + [ + 10, + 16, + 21, + 2300, + 428310 + ], + [ + 10, + 16, + 22, + 2300, + 428310 + ], + [ + 10, + 17, + 18, + 2300, + 428310 + ], + [ + 10, + 17, + 19, + 2300, + 428310 + ], + [ + 10, + 17, + 20, + 2300, + 428310 + ], + [ + 10, + 17, + 21, + 2300, + 428310 + ], + [ + 10, + 17, + 22, + 2300, + 428310 + ], + [ + 10, + 18, + 19, + 2300, + 428310 + ], + [ + 10, + 18, + 20, + 2300, + 428310 + ], + [ + 10, + 18, + 21, + 2300, + 428310 + ], + [ + 10, + 18, + 22, + 2300, + 428310 + ], + [ + 10, + 19, + 20, + 2300, + 428310 + ], + [ + 10, + 19, + 21, + 2300, + 428310 + ], + [ + 10, + 19, + 22, + 2300, + 428310 + ], + [ + 10, + 20, + 21, + 2300, + 428310 + ], + [ + 10, + 20, + 22, + 2300, + 428310 + ], + [ + 10, + 21, + 22, + 2300, + 428310 + ], + [ + 11, + 12, + 13, + 2300, + 428310 + ], + [ + 11, + 12, + 14, + 2300, + 428310 + ], + [ + 11, + 12, + 15, + 2300, + 428310 + ], + [ + 11, + 12, + 16, + 2300, + 428310 + ], + [ + 11, + 12, + 17, + 2300, + 428310 + ], + [ + 11, + 12, + 18, + 2300, + 428310 + ], + [ + 11, + 12, + 19, + 2300, + 428310 + ], + [ + 11, + 12, + 20, + 2300, + 428310 + ], + [ + 11, + 12, + 21, + 2300, + 428310 + ], + [ + 11, + 12, + 22, + 2300, + 428310 + ], + [ + 11, + 13, + 14, + 2300, + 428310 + ], + [ + 11, + 13, + 15, + 2300, + 428310 + ], + [ + 11, + 13, + 16, + 2300, + 428310 + ], + [ + 11, + 13, + 17, + 2300, + 428310 + ], + [ + 11, + 13, + 18, + 2300, + 428310 + ], + [ + 11, + 13, + 19, + 2300, + 428310 + ], + [ + 11, + 13, + 20, + 2300, + 428310 + ], + [ + 11, + 13, + 21, + 2300, + 428310 + ], + [ + 11, + 13, + 22, + 2300, + 428310 + ], + [ + 11, + 14, + 15, + 2300, + 428310 + ], + [ + 11, + 14, + 16, + 2300, + 428310 + ], + [ + 11, + 14, + 17, + 2300, + 428310 + ], + [ + 11, + 14, + 18, + 2300, + 428310 + ], + [ + 11, + 14, + 19, + 2300, + 428310 + ], + [ + 11, + 14, + 20, + 2300, + 428310 + ], + [ + 11, + 14, + 21, + 2300, + 428310 + ], + [ + 11, + 14, + 22, + 2300, + 428310 + ], + [ + 11, + 15, + 16, + 2300, + 428310 + ], + [ + 11, + 15, + 17, + 2300, + 428310 + ], + [ + 11, + 15, + 18, + 2300, + 428310 + ], + [ + 11, + 15, + 19, + 2300, + 428310 + ], + [ + 11, + 15, + 20, + 2300, + 428310 + ], + [ + 11, + 15, + 21, + 2300, + 428310 + ], + [ + 11, + 15, + 22, + 2300, + 428310 + ], + [ + 11, + 16, + 17, + 2300, + 428310 + ], + [ + 11, + 16, + 18, + 2300, + 428310 + ], + [ + 11, + 16, + 19, + 2300, + 428310 + ], + [ + 11, + 16, + 20, + 2300, + 428310 + ], + [ + 11, + 16, + 21, + 2300, + 428310 + ], + [ + 11, + 16, + 22, + 2300, + 428310 + ], + [ + 11, + 17, + 18, + 2300, + 428310 + ], + [ + 11, + 17, + 19, + 2300, + 428310 + ], + [ + 11, + 17, + 20, + 2300, + 428310 + ], + [ + 11, + 17, + 21, + 2300, + 428310 + ], + [ + 11, + 17, + 22, + 2300, + 428310 + ], + [ + 11, + 18, + 19, + 2300, + 428310 + ], + [ + 11, + 18, + 20, + 2300, + 428310 + ], + [ + 11, + 18, + 21, + 2300, + 428310 + ], + [ + 11, + 18, + 22, + 2300, + 428310 + ], + [ + 11, + 19, + 20, + 2300, + 428310 + ], + [ + 11, + 19, + 21, + 2300, + 428310 + ], + [ + 11, + 19, + 22, + 2300, + 428310 + ], + [ + 11, + 20, + 21, + 2300, + 428310 + ], + [ + 11, + 20, + 22, + 2300, + 428310 + ], + [ + 11, + 21, + 22, + 2300, + 428310 + ], + [ + 12, + 13, + 14, + 2300, + 428310 + ], + [ + 12, + 13, + 15, + 2300, + 428310 + ], + [ + 12, + 13, + 16, + 2300, + 428310 + ], + [ + 12, + 13, + 17, + 2300, + 428310 + ], + [ + 12, + 13, + 18, + 2300, + 428310 + ], + [ + 12, + 13, + 19, + 2300, + 428310 + ], + [ + 12, + 13, + 20, + 2300, + 428310 + ], + [ + 12, + 13, + 21, + 2300, + 428310 + ], + [ + 12, + 13, + 22, + 2299, + 189775 + ], + [ + 12, + 14, + 15, + 2300, + 428310 + ], + [ + 12, + 14, + 16, + 2300, + 428310 + ], + [ + 12, + 14, + 17, + 2300, + 428310 + ], + [ + 12, + 14, + 18, + 2300, + 428310 + ], + [ + 12, + 14, + 19, + 2300, + 428310 + ], + [ + 12, + 14, + 20, + 2300, + 428310 + ], + [ + 12, + 14, + 21, + 2300, + 428310 + ], + [ + 12, + 14, + 22, + 2300, + 428310 + ], + [ + 12, + 15, + 16, + 2300, + 428310 + ], + [ + 12, + 15, + 17, + 2300, + 428310 + ], + [ + 12, + 15, + 18, + 2300, + 428310 + ], + [ + 12, + 15, + 19, + 2300, + 428310 + ], + [ + 12, + 15, + 20, + 2300, + 428310 + ], + [ + 12, + 15, + 21, + 2300, + 428310 + ], + [ + 12, + 15, + 22, + 2300, + 428310 + ], + [ + 12, + 16, + 17, + 2300, + 428310 + ], + [ + 12, + 16, + 18, + 2300, + 428310 + ], + [ + 12, + 16, + 19, + 2300, + 428310 + ], + [ + 12, + 16, + 20, + 2300, + 428310 + ], + [ + 12, + 16, + 21, + 2300, + 428310 + ], + [ + 12, + 16, + 22, + 2300, + 428310 + ], + [ + 12, + 17, + 18, + 2300, + 428310 + ], + [ + 12, + 17, + 19, + 2300, + 428310 + ], + [ + 12, + 17, + 20, + 2300, + 428310 + ], + [ + 12, + 17, + 21, + 2300, + 428310 + ], + [ + 12, + 17, + 22, + 2300, + 428310 + ], + [ + 12, + 18, + 19, + 2300, + 428310 + ], + [ + 12, + 18, + 20, + 2300, + 428310 + ], + [ + 12, + 18, + 21, + 2300, + 428310 + ], + [ + 12, + 18, + 22, + 2300, + 428310 + ], + [ + 12, + 19, + 20, + 2300, + 428310 + ], + [ + 12, + 19, + 21, + 2300, + 428310 + ], + [ + 12, + 19, + 22, + 2300, + 428310 + ], + [ + 12, + 20, + 21, + 2300, + 428310 + ], + [ + 12, + 20, + 22, + 2300, + 428310 + ], + [ + 12, + 21, + 22, + 2300, + 428310 + ], + [ + 13, + 14, + 15, + 2300, + 428310 + ], + [ + 13, + 14, + 16, + 2300, + 428310 + ], + [ + 13, + 14, + 17, + 2300, + 428310 + ], + [ + 13, + 14, + 18, + 2300, + 428310 + ], + [ + 13, + 14, + 19, + 2300, + 428310 + ], + [ + 13, + 14, + 20, + 2300, + 428310 + ], + [ + 13, + 14, + 21, + 2300, + 428310 + ], + [ + 13, + 14, + 22, + 2300, + 428310 + ], + [ + 13, + 15, + 16, + 2300, + 428310 + ], + [ + 13, + 15, + 17, + 2300, + 428310 + ], + [ + 13, + 15, + 18, + 2300, + 428310 + ], + [ + 13, + 15, + 19, + 2300, + 428310 + ], + [ + 13, + 15, + 20, + 2300, + 428310 + ], + [ + 13, + 15, + 21, + 2300, + 428310 + ], + [ + 13, + 15, + 22, + 2300, + 428310 + ], + [ + 13, + 16, + 17, + 2300, + 428310 + ], + [ + 13, + 16, + 18, + 2300, + 428310 + ], + [ + 13, + 16, + 19, + 2300, + 428310 + ], + [ + 13, + 16, + 20, + 2300, + 428310 + ], + [ + 13, + 16, + 21, + 2300, + 428310 + ], + [ + 13, + 16, + 22, + 2300, + 428310 + ], + [ + 13, + 17, + 18, + 2300, + 428310 + ], + [ + 13, + 17, + 19, + 2300, + 428310 + ], + [ + 13, + 17, + 20, + 2300, + 428310 + ], + [ + 13, + 17, + 21, + 2300, + 428310 + ], + [ + 13, + 17, + 22, + 2300, + 428310 + ], + [ + 13, + 18, + 19, + 2300, + 428310 + ], + [ + 13, + 18, + 20, + 2300, + 428310 + ], + [ + 13, + 18, + 21, + 2300, + 428310 + ], + [ + 13, + 18, + 22, + 2300, + 428310 + ], + [ + 13, + 19, + 20, + 2300, + 428310 + ], + [ + 13, + 19, + 21, + 2300, + 428310 + ], + [ + 13, + 19, + 22, + 2300, + 428310 + ], + [ + 13, + 20, + 21, + 2300, + 428310 + ], + [ + 13, + 20, + 22, + 2300, + 428310 + ], + [ + 13, + 21, + 22, + 2300, + 428310 + ], + [ + 14, + 15, + 16, + 2300, + 428310 + ], + [ + 14, + 15, + 17, + 2300, + 428310 + ], + [ + 14, + 15, + 18, + 2300, + 428310 + ], + [ + 14, + 15, + 19, + 2300, + 428310 + ], + [ + 14, + 15, + 20, + 2300, + 428310 + ], + [ + 14, + 15, + 21, + 2300, + 428310 + ], + [ + 14, + 15, + 22, + 2300, + 428310 + ], + [ + 14, + 16, + 17, + 2300, + 428310 + ], + [ + 14, + 16, + 18, + 2300, + 428310 + ], + [ + 14, + 16, + 19, + 2300, + 428310 + ], + [ + 14, + 16, + 20, + 2300, + 428310 + ], + [ + 14, + 16, + 21, + 2300, + 428310 + ], + [ + 14, + 16, + 22, + 2300, + 428310 + ], + [ + 14, + 17, + 18, + 2300, + 428310 + ], + [ + 14, + 17, + 19, + 2300, + 428310 + ], + [ + 14, + 17, + 20, + 2300, + 428310 + ], + [ + 14, + 17, + 21, + 2300, + 428310 + ], + [ + 14, + 17, + 22, + 2300, + 428310 + ], + [ + 14, + 18, + 19, + 2300, + 428310 + ], + [ + 14, + 18, + 20, + 2300, + 428310 + ], + [ + 14, + 18, + 21, + 2300, + 428310 + ], + [ + 14, + 18, + 22, + 2300, + 428310 + ], + [ + 14, + 19, + 20, + 2300, + 428310 + ], + [ + 14, + 19, + 21, + 2300, + 428310 + ], + [ + 14, + 19, + 22, + 2300, + 428310 + ], + [ + 14, + 20, + 21, + 2300, + 428310 + ], + [ + 14, + 20, + 22, + 2300, + 428310 + ], + [ + 14, + 21, + 22, + 2300, + 428310 + ], + [ + 15, + 16, + 17, + 2300, + 428310 + ], + [ + 15, + 16, + 18, + 2300, + 428310 + ], + [ + 15, + 16, + 19, + 2300, + 428310 + ], + [ + 15, + 16, + 20, + 2300, + 428310 + ], + [ + 15, + 16, + 21, + 2300, + 428310 + ], + [ + 15, + 16, + 22, + 2300, + 428310 + ], + [ + 15, + 17, + 18, + 2300, + 428310 + ], + [ + 15, + 17, + 19, + 2300, + 428310 + ], + [ + 15, + 17, + 20, + 2300, + 428310 + ], + [ + 15, + 17, + 21, + 2300, + 428310 + ], + [ + 15, + 17, + 22, + 2300, + 428310 + ], + [ + 15, + 18, + 19, + 2300, + 428310 + ], + [ + 15, + 18, + 20, + 2300, + 428310 + ], + [ + 15, + 18, + 21, + 2300, + 428310 + ], + [ + 15, + 18, + 22, + 2300, + 428310 + ], + [ + 15, + 19, + 20, + 2300, + 428310 + ], + [ + 15, + 19, + 21, + 2300, + 428310 + ], + [ + 15, + 19, + 22, + 2300, + 428310 + ], + [ + 15, + 20, + 21, + 2300, + 428310 + ], + [ + 15, + 20, + 22, + 2300, + 428310 + ], + [ + 15, + 21, + 22, + 2300, + 428310 + ], + [ + 16, + 17, + 18, + 2300, + 428310 + ], + [ + 16, + 17, + 19, + 2300, + 428310 + ], + [ + 16, + 17, + 20, + 2300, + 428310 + ], + [ + 16, + 17, + 21, + 2300, + 428310 + ], + [ + 16, + 17, + 22, + 2300, + 428310 + ], + [ + 16, + 18, + 19, + 2300, + 428310 + ], + [ + 16, + 18, + 20, + 2300, + 428310 + ], + [ + 16, + 18, + 21, + 2300, + 428310 + ], + [ + 16, + 18, + 22, + 2300, + 428310 + ], + [ + 16, + 19, + 20, + 2300, + 428310 + ], + [ + 16, + 19, + 21, + 2300, + 428310 + ], + [ + 16, + 19, + 22, + 2300, + 428310 + ], + [ + 16, + 20, + 21, + 2300, + 428310 + ], + [ + 16, + 20, + 22, + 2300, + 428310 + ], + [ + 16, + 21, + 22, + 2300, + 428310 + ], + [ + 17, + 18, + 19, + 2300, + 428310 + ], + [ + 17, + 18, + 20, + 2300, + 428310 + ], + [ + 17, + 18, + 21, + 2300, + 428310 + ], + [ + 17, + 18, + 22, + 2300, + 428310 + ], + [ + 17, + 19, + 20, + 2300, + 428310 + ], + [ + 17, + 19, + 21, + 2300, + 428310 + ], + [ + 17, + 19, + 22, + 2300, + 428310 + ], + [ + 17, + 20, + 21, + 2300, + 428310 + ], + [ + 17, + 20, + 22, + 2300, + 428310 + ], + [ + 17, + 21, + 22, + 2300, + 428310 + ], + [ + 18, + 19, + 20, + 2300, + 428310 + ], + [ + 18, + 19, + 21, + 2300, + 428310 + ], + [ + 18, + 19, + 22, + 2300, + 428310 + ], + [ + 18, + 20, + 21, + 2300, + 428310 + ], + [ + 18, + 20, + 22, + 2300, + 428310 + ], + [ + 18, + 21, + 22, + 2300, + 428310 + ], + [ + 19, + 20, + 21, + 2300, + 428310 + ], + [ + 19, + 20, + 22, + 2300, + 428310 + ], + [ + 19, + 21, + 22, + 2300, + 428310 + ], + [ + 20, + 21, + 22, + 2300, + 428310 + ] + ] + }, + "row_tree": [ + [ + 0, + 23 + ], + [ + 1, + 24 + ], + [ + 2, + 25 + ], + [ + 3, + 26 + ], + [ + 4, + 27 + ], + [ + 5, + 28 + ], + [ + 6, + 29 + ], + [ + 7, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 32 + ], + [ + 10, + 33 + ], + [ + 11, + 34 + ], + [ + 12, + 35 + ], + [ + 13, + 36 + ], + [ + 14, + 37 + ], + [ + 15, + 38 + ], + [ + 16, + 39 + ], + [ + 17, + 40 + ], + [ + 18, + 41 + ], + [ + 19, + 42 + ], + [ + 20, + 43 + ], + [ + 21, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 0, + 47 + ], + [ + 1, + 23 + ], + [ + 2, + 24 + ], + [ + 3, + 25 + ], + [ + 4, + 26 + ], + [ + 5, + 27 + ], + [ + 6, + 28 + ], + [ + 7, + 29 + ], + [ + 8, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 32 + ], + [ + 11, + 33 + ], + [ + 12, + 34 + ], + [ + 13, + 35 + ], + [ + 14, + 36 + ], + [ + 15, + 37 + ], + [ + 16, + 38 + ], + [ + 17, + 39 + ], + [ + 18, + 40 + ], + [ + 19, + 41 + ], + [ + 20, + 42 + ], + [ + 21, + 43 + ], + [ + 22, + 44 + ] + ], + "scope": "Nonzero modular pivots certify rational nonvanishing at the actual two fixed bases; zeros follow separate exact rank cuts. Ten primary-prime failures are replayed with exact rational elimination, yielding the same profile for every pair." + }, + "kappa": "411862541/10000000000000", + "local_sha256": { + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/SOURCE.json": "bd5a765474ed52155f3393951b96babc4ca3fe7522397140c51594289b401e32", + "research/copied-fixed/audit.py": "dd369a7a6e0be4354c05560d0e1d9750c14839928459f43beeb55970f86e0631", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/data_corners.cpp": "d134f43d31b896daf504511991be8608c6ba9d20a6606c57e2e12d4b203b7d44", + "research/copied-fixed/data_recovery.py": "0de7e0fc4f38b066ec319e4dde43bce8f20edd207be9f9736610babf95030253", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/original_timeline.py": "cf152459e080f556931122bc0afa3417835ea4a6d14e541be12c67f317e25f60", + "research/copied-fixed/producer.py": "281b7ebcbad71d2cebca80b1aca4af1d63417e3995576be41f040b776a51e43e", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a" + }, + "scope": "Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); all actual data pairs checked for 9 singletons +21+17+481; ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/matching/profile reconstruction is producer.py. OpenAI base theorem, written residual compiler, fixed-tape recursion, analytic/semantic/routing/recovery and eventual-threshold interfaces remain assumed.", + "sources": { + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + } + }, + "status": "Conditional exact arithmetic witness; general transfer proofs are dependencies" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py new file mode 100644 index 0000000000..24070a7d85 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py @@ -0,0 +1,60 @@ +"""Changed exclusion graphs with more admissible retained carriers. + +Underlying cancellation-free generators: icekylinx PR18/36. Alternating +point order: RaD/hipotures PR41, checkpoint 7e488e6b25dc1713c1f41baaf1cefbf677507cf3. +Compared with PR46, reorder the vector leave-one-out construction by source +support size, breaking ties by ascending support at h23 and descending at +h25; restore the original output indexing. The h23 total folds in reverse +input order, while h25 retains descending (support size, support) order. +Prepared with OpenAI Codex assistance. Apache-2.0. +""" +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h,common): + pairs=[(a,a+1) for a in range(0,h-1,2) if common not in (a,a+1)] + if common%2: + pairs.reverse() + head=[x for pair in pairs for x in pair] + return head+[x for x in range(h) if x!=common and x not in head] + + +def graph(h): + assert h in (23,25) + class Changed(PairedExclusionCircuit): + base_threshold=2 + def total(self,values): + values=[x for x in values if x] + if h==23: + values.reverse() + else: + values.sort(key=lambda node:(self.support[node].bit_count(),self.support[node]),reverse=True) + result=0 + for node in values: + result=self.add(result,node) + return result + def vector(self,values,two=True): + if two: + return super().vector(values,two) + sign=1 if h==23 else -1 + order=sorted(range(len(values)),key=lambda i: + (self.support[values[i]].bit_count(),sign*self.support[values[i]])) + total,one,_=super().vector([values[i] for i in order],False) + restored=[0]*len(values) + for position,original in enumerate(order): + restored[original]=one[position] + return total,restored,{} + local=Changed(h-1) + total=local.pair(list(range(h-1)))[0] + local.outputs[()]=total + stack=[total] + while stack: + node=stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions=sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h,local,point_order=alternating_points) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp new file mode 100644 index 0000000000..410e50f475 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp @@ -0,0 +1,107 @@ +#include +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){assert(argc==2||argc==3);std::ifstream f(argv[1],std::ios::binary);U hdr[4];read_array(f,hdr);U h=hdr[0],v=hdr[1],n=hdr[2],q=hdr[3];assert(h==23||h==25); +std::vector>args(n);std::vectorcore(n),cover(n);std::vectorroots(q),kind(q);std::vectoractive(n);readv(f,args);readv(f,core);readv(f,cover);readv(f,roots);readv(f,kind);readv(f,active); +std::vectorranks(n),degree(n),begin(n+1);V c=0,inputs=0,loss=0; +for(U x=1;xuses(begin.back()),cursor(begin.begin(),begin.end()-1);for(U x=1;xU{return e>>31?roots[e&0x7fffffff]:e/2;}; +auto before=[&](U a,U b){U x=nd(a),y=nd(b);if(ranks[x]!=ranks[y])return ranks[x]>31?V(n)+(a&0x7fffffff):x,oy=b>>31?V(n)+(b&0x7fffffff):y;return oxdonors;for(U x=1;xleftmatch(n),rightmatch(uses.size()),distance(n,UINT32_MAX),queue;V matches=0;U phase=0,inf=UINT32_MAX,shortest=inf; +const char* lin=getenv("LINKS_IN"); +assert(lin && "A pinned carrier matching is required"); +if(lin){std::ifstream lf(lin,std::ios::binary);U hd[2];read_array(lf,hd);assert(hd[0]==n);std::vectorisdonor(n);for(U x:donors)isdonor[x]=1;for(U i=0;i=shortest)continue;adjacency(x,[&](U j){U y=rightmatch[j];if(!y)shortest=distance[x]+1;else if(distance[y]==inf){distance[y]=distance[x]+1;queue.push_back(y);}return false;});}if(shortest==inf)break; +auto aug=[&](auto&&self,U x)->bool{bool ok=adjacency(x,[&](U j){U y=rightmatch[j];if((!y&&distance[x]+1==shortest)||(y&&distance[y]==distance[x]+1&&self(self,y))){leftmatch[x]=j+1;rightmatch[j]=x;return true;}return false;});if(!ok)distance[x]=inf;return ok;};V gained=0;for(U x:donors)if(!leftmatch[x]&&aug(aug,x)){matches++;gained++;}std::cerr<<"h="<hist(h+1);for(U x=1;x=ranks[y]);hist[r-ranks[y]]++;}}else hist[1]+=degree[x];} +for(U j=0;j>31?target:args[target][e&1];assert(value==args[donor][0]||value==args[donor][1]);if(value==args[donor][0])changed++;U ru=ranks[donor],rv=ranks[value],rt=ranks[target];assert(rt>=ru&&ru>=rv);hist[h-ru]--;hist[rv]--;hist[rt-rv]--;hist[rt-ru]++;} +V R=c+q-matches,sum=0;for(U r=0;r<=h;r++){assert(hist[r]>=0);sum+=r*hist[r];}assert(sum==h*R+2*loss); +if(argc==3){std::ofstream out(argv[2],std::ios::binary);U header[2]={n,U(matches)};write_array(out,header);for(U donor:donors)if(leftmatch[donor]){U edge[2]={donor,uses[leftmatch[donor]-1]};write_array(out,edge);}assert(out);} +std::cout<<"{\"h\":"<frames{{0,0,0},{0,0,h}};std::map,U>frame_lookup;std::vectorfi(n); +for(U x=1;xsecond;} +std::map,int64_t>transitions;int64_t singles=0; +auto edge=[&](U a,U b,int64_t count){if(a==b)return;transitions[{a,b}]+=count;}; +for(U x=1;x>31?target:args[target][e&1];edge(fi[donor],1,-1);edge(0,fi[value],-1);edge(fi[value],fi[target],-1);edge(fi[donor],fi[target],1);} +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".round3_rankone_certified_profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +def tree(edges, n): + require(len(edges) == n-1 and len(set(edges)) == n-1, 'Wrong tree edge count') + seen = {0} + while True: + new = seen | {v for u,v in edges if u in seen} | {u for u,v in edges if v in seen} + if new == seen: + break + seen = new + require(len(seen) == n, 'Disconnected restriction graph') + + +def data_corners(): + c = read(HERE/'data-corners.json') + prime = c['prime'] + require(prime == 1000003 and all(prime % j for j in range(2,isqrt(prime)+1)), + 'Data witness prime not proved') + require(c['dimensions'] == [23,25], 'Data dimensions') + require([tuple(r[:3]) for r in c['records']] == list(combinations(range(23),3)), + 'Incomplete first triple coverage') + require(all(0 <= r[3] <= 2300 and 0 < r[4] < prime for r in c['records']), + 'Invalid modular product record') + failures = c['fallback_pairs'] + require(len({tuple(r[:6]) for r in failures}) == len(failures), 'Duplicate fallback') + counts = Counter() + for aa,bb,cc,u,v,w,row in failures: + require(0<=aa= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + + +def profile(): + a,b = 23,25 + m = a*b + rows = [read(HERE / f'original-{h}.json') for h in (a,b)] + N = comb(a,3)*comb(b,3) + W = 2*N+sum(N//r['v']*r['R'] for r in rows) + L = sum(N//r['v']*r['loss'] for r in rows) + data = data_corners() + good,bad = data['good'],data['fallback'] + parts = {'data':Counter({1:2*(9*good+47*bad),21:2*good,17:2*good,481:2*N}), + 'paid_endpoint_copy':Counter({1:N})} + axes = [] + for row in rows: + h = row['h'] + require(row['v'] == comb(h,3), 'Triple count') + require(row['R'] == row['c']+row['q']-row['matched'], 'Role allocation') + require(row['loss'] == h*(h-1), 'Retained center loss') + require(sum(r*n for r,n in enumerate(row['histogram'])) == h*row['R']+2*row['loss'], + 'Original frame rank mass') + f = read(HERE / f'profiles-{h}.json') + for key in ('h','v','R','loss','rank_sum'): + require(f[key] == row[key], 'Fixed/original mismatch: '+key) + require(f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1, + 'Invalid CRT profile') + blocks = f['blocks'][:] + require(len(blocks) == h+1 and all(type(n) is int and n>=0 for n in blocks), + 'Invalid fixed blocks') + require(sum(t*n for t,n in enumerate(blocks)) == f['rank_sum'], 'Fixed profile mass') + require(blocks[h] == h, 'Exactly h full center cleanup calls expected') + # Preserve every transformed copy. Replace only its original's full cleanup. + blocks[h] -= h + blocks[1] += h + require(sum(t*n for t,n in enumerate(blocks)) == h*row['R']+row['loss'], + 'Copied fixed profile mass') + rep = N//row['v'] + bank = rep*row['R'] + parts[f'internal_{h}'] = Counter({t:n*rep for t,n in enumerate(blocks) if t and n}) + parts[f'exterior_{h}'] = Counter({h:bank,m-2*h:bank}) + parts[f'data_growth_{h}'] = Counter({1:2*N,h-2:2*N}) + axes.append(dict(original=row,fixed=f,copied_blocks=blocks,exactness=exactness(h))) + hist = sum(parts.values(),Counter()) + s = sum(t*n for t,n in hist.items()) + require(s == W*m-N+L == 102078397025, 'Complete rank mass') + require((m,N,W,L) == (575,4073300,177530859,2226400), 'Physical constants') + require(max(hist) == 529 and all(00 for t,n in hist.items()), 'Proper children') + return dict(m=m,N=N,W=W,L=L,total_rank=s,deficit=W*m-s,maxchild=max(hist), + child_multiplicities=dict(sorted(hist.items())),parts=parts,axes=axes) + + +def run(): + require(not sys.flags.optimize, 'Assertions must remain enabled') + sources = check_sources() + prior = baseline.certificate() + geo,p = geometry(),profile() + exact = moment(p['m'],p['W'],p['child_multiplicities'],AB) + require(exact['upper'] < 1, 'Bit characteristic failed') + old = prior['bit']['counts'] + old_at_new = moment(old['m'],old['W'],old['child_multiplicities'],AB) + require(old_at_new['lower'] > 1, 'Old construction not excluded at new saving') + forward=read(HERE/'comparison-pr40.json') + forward_rows={int(t):n for t,n in forward['child_multiplicities'].items()} + require(sum(t*n for t,n in forward_rows.items())==108202762275, 'PR40 rank mismatch') + forward_at_new=moment(forward['m'],forward['W'],forward_rows,AB) + require(forward_at_new['lower']>1,'PR40 network not excluded at new saving') + rad=read(HERE/'comparison-pr41.json') + rad_rows={int(t):n for t,n in rad['child_multiplicities'].items()} + require(sum(t*n for t,n in rad_rows.items())==rad['total_rank']==102565738275,'PR41 rank mismatch') + rad_at_new=moment(rad['m'],rad['W'],rad_rows,AB) + require(rad_at_new['lower']>1,'PR41 alternating network not excluded at new saving') + newest=read(HERE/'comparison-pr42.json') + newest_rows={int(t):n for t,n in newest['child_multiplicities'].items()} + require(sum(t*n for t,n in newest_rows.items())==newest['total_rank']==102565738275,'PR42 rank mismatch') + newest_at_new=moment(newest['m'],newest['W'],newest_rows,AB) + require(newest_at_new['lower']>1,'PR42 network not excluded at new saving') + previous=read(HERE/'comparison-pr43.json') + previous_rows={int(t):n for t,n in previous['child_multiplicities'].items()} + require(sum(t*n for t,n in previous_rows.items())==previous['total_rank']==102565738275,'PR43 rank mismatch') + previous_at_new=moment(previous['m'],previous['W'],previous_rows,AB) + require(previous_at_new['lower']>1,'PR43 network not excluded at new saving') + frontier=read(HERE/'comparison-pr44.json') + frontier_rows={int(t):n for t,n in frontier['child_multiplicities'].items()} + require(sum(t*n for t,n in frontier_rows.items())==frontier['total_rank']==102565738275,'PR44 rank mismatch') + frontier_at_new=moment(frontier['m'],frontier['W'],frontier_rows,AB) + require(frontier_at_new['lower']>1,'PR44 network not excluded at new saving') + parent=read(HERE/'comparison-pr46.json') + parent_rows={int(t):n for t,n in parent['child_multiplicities'].items()} + require(sum(t*n for t,n in parent_rows.items())==parent['total_rank']==102565738275,'PR46 rank mismatch') + parent_at_new=moment(parent['m'],parent['W'],parent_rows,AB) + require(parent_at_new['lower']>1,'PR46 network not excluded at new saving') + latest=read(HERE/'comparison-pr47.json') + latest_rows={int(t):n for t,n in latest['child_multiplicities'].items()} + require(sum(t*n for t,n in latest_rows.items())==latest['total_rank']==latest['W']*latest['m']-1846900,'PR47 rank mismatch') + latest_at_new=moment(latest['m'],latest['W'],latest_rows,AB) + require(latest_at_new['lower']>1,'PR47 network not excluded at new saving') + phase = prior['complex']['counts'] + phase_row = read(ROOT / 'certificates/copied-centers-complex-input.json') + bridge = baseline.finite_bridge(p,phase,[phase_row,phase_row]) + require(all(js(bridge[k])==js(prior['finite_bridge'][k]) for k in ('complex','semantic','rows')), 'Unexpected phase or stock change') + final = assembly(bridge,AB,KAPPA,a_complex=AC) + eventual = cutoffs(bridge,final) + require(KAPPA > PR47_KAPPA > PR46_KAPPA > PR44_KAPPA > PR43_KAPPA > PR42_KAPPA > PR41_KAPPA > PR40_KAPPA > PR39_KAPPA > PR38_KAPPA > PR37_KAPPA > prior['kappa'] > Q(1,2**15), 'Comparison failed') + require(KAPPA < Q(1,2**14), 'Unexpected power-of-two bracket') + own_files = sorted(HERE.glob('*.py'))+sorted(HERE.glob('*.cpp'))+[HERE/'PROOF.md',HERE/'SOURCE.json'] + own_files += [HERE/f'{kind}-{h}.json' for h in (23,25) for kind in ('profiles','original','scalar')] + own_files += [HERE/'data-corners.json',HERE/'comparison-pr40.json',HERE/'comparison-pr41.json',HERE/'comparison-pr42.json',HERE/'comparison-pr43.json',HERE/'comparison-pr44.json',HERE/'comparison-pr46.json',HERE/'comparison-pr47.json',HERE/'search-record.json',HERE/'links-23.uses',HERE/'links-25.uses'] + return dict(status='Conditional exact arithmetic witness; general transfer proofs are dependencies', + kappa=KAPPA,bit=dict(counts=p,**exact),complex=prior['complex'], + geometry=geo,finite_bridge=bridge,assembly=final,eventual_bounds=eventual,sources=sources, + comparison=dict(PR47=PR47_KAPPA,ratio_PR47=KAPPA/PR47_KAPPA,PR46=PR46_KAPPA,ratio_PR46=KAPPA/PR46_KAPPA,PR44=PR44_KAPPA,ratio_PR44=KAPPA/PR44_KAPPA,PR36=prior['kappa'],PR37=PR37_KAPPA,PR38=PR38_KAPPA,PR39=PR39_KAPPA,PR40=PR40_KAPPA,PR41=PR41_KAPPA,PR42=PR42_KAPPA,PR43=PR43_KAPPA, + ratio_PR36=KAPPA/prior['kappa'],ratio_PR37=KAPPA/PR37_KAPPA, + ratio_PR38=KAPPA/PR38_KAPPA,ratio_PR39=KAPPA/PR39_KAPPA,ratio_PR40=KAPPA/PR40_KAPPA,ratio_PR41=KAPPA/PR41_KAPPA,ratio_PR42=KAPPA/PR42_KAPPA,ratio_PR43=KAPPA/PR43_KAPPA, + dyadic_corollary='2^-15',next_dyadic_not_reached='2^-14'), + controls=dict(PR47_bit_at_new_lower=latest_at_new['lower'],PR46_bit_at_new_lower=parent_at_new['lower'],PR44_bit_at_new_lower=frontier_at_new['lower'],old_bit_at_new_lower=old_at_new['lower'],PR40_bit_at_new_lower=forward_at_new['lower'],PR41_bit_at_new_lower=rad_at_new['lower'],PR42_bit_at_new_lower=newest_at_new['lower'],PR43_bit_at_new_lower=previous_at_new['lower']), + local_sha256={str(p.relative_to(ROOT)):sha256(p.read_bytes()).hexdigest() for p in own_files}, + scope='Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); ' + 'all actual data pairs checked for 9 singletons +21+17+481; ' + 'ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/' + 'matching/profile reconstruction is producer.py. OpenAI base theorem, ' + 'written residual compiler, fixed-tape recursion, analytic/semantic/' + 'routing/recovery and eventual-threshold interfaces remain assumed.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--output',type=Path) + args = parser.parse_args() + result = run() + if args.output: + args.output.write_text(json.dumps(js(result),indent=2,sort_keys=True)+'\n') + print('PASS conditional kappa='+str(KAPPA)+'; bit saving='+str(AB)) + print('47 strict inequalities; seven margins; all-exact enclosures; inherited balanced assembly') diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/exclusion_circuit.py b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/exclusion_circuit.py new file mode 100644 index 0000000000..aaa99986c4 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/exclusion_circuit.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +"""Cancellation-free circuit for all pair sums avoiding two specified points. + +Every addition has disjoint input supports. Node interning shares equal sums; +support tracking verifies the full linear map, not sampled input values. +""" +from itertools import combinations +from hashlib import sha256 +import json + + +class ExclusionCircuit: + def __init__(self,n): + assert n>=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1< +#include + +inline unsigned popcount64(uint64_t value) { + unsigned count = 0; + while (value) { value &= value-1; ++count; } + return count; +} + +inline bool little_endian() { + const uint16_t one = 1; + return *reinterpret_cast(&one) == 1; +} +template void normalize_le(T& value) { + static_assert(std::is_integral::value, "integer array required"); + if (!little_endian()) { + auto p = reinterpret_cast(&value); + std::reverse(p, p + sizeof(T)); + } +} +template void normalize_le(std::array& row) { + for (auto& value : row) normalize_le(value); +} +template void readv(std::ifstream& f, std::vector& values) { + f.read(reinterpret_cast(values.data()), values.size()*sizeof(T)); + if (!f) throw std::runtime_error("Truncated producer array"); + if (!little_endian()) for (auto& value : values) normalize_le(value); +} +template void read_array(std::ifstream& f, T (&values)[N]) { + f.read(reinterpret_cast(values), sizeof(values)); + if (!f) throw std::runtime_error("Truncated producer header"); + for (auto& value : values) normalize_le(value); +} +template void write_array(std::ofstream& f, const T (&values)[N]) { + for (auto value : values) { + normalize_le(value); + f.write(reinterpret_cast(&value), sizeof(T)); + } + if (!f) throw std::runtime_error("Cannot write producer array"); +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/paired.py b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/paired.py new file mode 100644 index 0000000000..b879293977 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/paired.py @@ -0,0 +1,46 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Cancellation-free pair exclusion with recursively aggregated vertex weights. + +At each level group vertices in pairs. Internal edges become vertex weights +in the smaller graph. Keeping those weights in the recursion avoids a separate +leave-two-out circuit for each level. All coefficients are checked exactly. +""" +from exclusion_circuit import ExclusionCircuit +from itertools import combinations +class PairedExclusionCircuit(ExclusionCircuit): + base_threshold = 2 + def pair(self,points):return self.block(points,{(a,b):self.variables[a,b] for a,b in combinations(points,2)},{a:0 for a in points}) + def grouping(self,points):return [points[i:i+2] for i in range(0,len(points),2)] + def block(self,points,edges,weights): + if len(points)<=self.base_threshold: + total=lambda omit:self.total([x for p,x in edges.items() if not set(p)&set(omit)]+[x for p,x in weights.items() if p not in omit]) + return total(()),{a:total((a,)) for a in points},{(a,b):total((a,b)) for a,b in combinations(points,2)} + groups=self.grouping(points);ng=len(groups);e=lambda a,b:edges[tuple(sorted((a,b)))] + coarse={(i,j):self.total([e(a,b) for a in groups[i] for b in groups[j]]) for i,j in combinations(range(ng),2)} + wt={i:self.total([weights[a] for a in g]+[e(a,b) for a,b in combinations(g,2)]) for i,g in enumerate(groups)} + total,outside,far=self.block(list(range(ng)),coarse,wt) + strips={};sums={} + for i,g in enumerate(groups): + other=[j for j in range(ng) if j!=i] + for a in g: + carry=self.total([weights[u] for u in g if u!=a]) + vals=[self.total([e(u,v) for u in g if u!=a for v in groups[j]]) for j in other] + st,one,_=self.vector([carry]+vals,False) + strips[a]={j:z for j,z in zip(other,one[1:])};sums[a]=st + out={};single={a:self.add(outside[i],sums[a]) for i,g in enumerate(groups) for a in g} + for i,g in enumerate(groups): + for a,b in combinations(g,2):out[a,b]=outside[i] + for i,j in combinations(range(ng),2): + for a in groups[i]: + left=self.add(far[i,j],strips[a][j]) + for b in groups[j]: + cross=self.total([e(u,v) for u in groups[i] if u!=a for v in groups[j] if v!=b]) + out[a,b]=self.add(left,self.add(strips[b][i],cross)) + return total,single,out +if __name__=='__main__': + for n in (15,25,45,49): + c=PairedExclusionCircuit(n);print(n,c.verify(),flush=True) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/shared.py b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/shared.py new file mode 100644 index 0000000000..a2f0190704 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr48/scripts/partial_swap/shared.py @@ -0,0 +1,163 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Merge equal sums across the common-point circuits, with exact certificates. + +Supports are represented by their provenance in the small pair circuit, not +by half a million dense global bit vectors. A sum that occurs in two distinct +common-point groups must be a pair-star; its fixed pair and union of vertices +identify its support exactly. +""" +from functools import lru_cache +from hashlib import sha256 +from itertools import combinations +import json + +from exclusion_circuit import ExclusionCircuit + + +class SharedPointCircuit: + def __init__(self,h,circuit=None,point_order=None): + assert h>=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1< 1 and W > 0, 'positive arity and role volume required') + degree, bits = halving_degree(m, child), W.bit_length() + require(integer(data['halving_degree']) == degree, name + ' stale halving degree') + require(integer(data['wire_bits']) == bits, name + ' stale role logarithm') + result[name] = dict(m=m, W=W, maxchild=child, + halving_degree=degree, wire_bits=bits) + phase = finite_bridge['complex'] + s, scalar = (integer(phase[k]) for k in ('s', 'scalar_group_upper')) + m, W, child = (result['complex'][k] for k in ('m', 'W', 'maxchild')) + require(0 < s < m*W and scalar > 0, 'invalid complex rank/scalar bound') + E = 64*(W+m+scalar+1)**3 + B = s+E + literal = 2*scalar*W**2+8*s+4*W+4+32*m + C0 = 32*m*B**2 + semantic = dict(E=E, B=B, C0=C0, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-child)-(s+E)) + require(E > literal and semantic['induction_gap'] >= 0 and C0 > 2*B+18, + 'semantic completed-child bound failed') + for key, value in semantic.items(): + require(rational(finite_bridge['semantic'][key]) == value, + 'stale semantic constant: '+key) + result['complex'].update(s=s, scalar_group_upper=scalar) + result['semantic'] = semantic + rows = finite_bridge['rows'] + coefficient = sum(result[name]['halving_degree']*result[name]['wire_bits'] + for name in ('bit', 'complex')) + degree = integer(rows['degree']) + gap = degree-Q(51,25)*coefficient + require(degree > 0 and gap > 0, 'insufficient product row degree') + expected = dict(coefficient=coefficient, degree=degree, + degree_gap=gap, suffix_slope=4*degree) + for key, value in expected.items(): + require(rational(rows[key]) == value, 'stale product row constant: '+key) + result['rows'] = expected + return result + + +def assembly(finite_bridge, a_bit, kappa, beta=Q(1,20), h=Q(1,10**12), + a_complex=Q(717,10**7), *, original_prefix=False, + old_guard=False, old_exposures=False): + """Return 47 strict slacks and seven margins, or raise InvalidAssembly. + + The three keyword switches are negative controls: they impose the old + prefix, nonlinear guard, or old separate movement charges at these SAME + balanced parameters. They do not silently optimize an alternative family. + """ + f = validate_bridge(finite_bridge) + a, b, kappa, beta, h = map(rational, (a_bit,a_complex,kappa,beta,h)) + require(0 < h < Q(1,2) and kappa > 0, 'positive backoff and saving required') + tau, sigma = 1-a, 1-b + q = a*(1-2*h) + require(1+q != 0, 'undefined balanced epsilon') + lp, c, eps = 1-q, q+h/4, (1-h)/(1+q) + lam = (tau+lp)/2 + G = eps*q + r, delta = (G+1-eps)/2, h/8 + C1 = Q(19991,10000) if old_guard else Q(1) + margins = dict(g1=1-eps, g2=a, g3=G, g4=a, + g5=min(1-eps-delta,r-delta), g6=1-eps-delta, g7=eps) + if original_prefix: + margins['g1'] = 1-eps*(1+c) + if old_exposures: + margins.update(g2=eps*c*a, g4=a*(1-eps)) + internal = tau+(1-beta)*max(sigma-tau,Q(0)) + leaf = sigma+beta*(1-sigma) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=eps, epsilon_below_one=1-eps, guard_width=1-eps*C1, + K_geometry=1-eps*(1+c), K_dominates_log=eps*c, + record_suffix=1-eps, phase_local=1-eps-delta, phase_boundary=r-delta, + gamma_sublinear=1-eps-r, cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=eps-a, + small_field_exposure=1-eps-G, artificial_boundary=8-eps+r-delta-G, + literal_scalar_guard=Q(f['semantic']['strict_literal_gap']), + row_product_gap=f['rows']['degree_gap']) + slacks.update({name+'_above_kappa': value-kappa for name,value in margins.items()}) + require(len(slacks) == 47 and len(margins) == 7, 'constraint list incomplete') + failed = {name:str(value) for name,value in slacks.items() if value <= 0} + require(not failed, str(failed)) + require(min(margins.values()) == G, 'unexpected controlling margin') + require(1-eps-G == h and 1-eps-r == h/2, 'balanced identities failed') + require(1-eps*(1+c) == h-eps*h/4, 'geometric identity failed') + parameters = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta,h=h, + q=q,c=c,epsilon=eps,lambda_=lam,lambda_prime=lp,alpha_squared_power=r, + delta=delta,C0=f['semantic']['C0'],C1=C1,kappa=kappa) + return dict(parameters=parameters,constraints=slacks,margins=margins, + minimum_margin=G,absorption_gap=G-kappa,scoped_limit=a/(1+a), + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c),finite_bridge=f) + + +def cutoffs(finite_bridge, result): + """PR34 sufficient numeric comparisons, retaining its all-interval padding. + + These are eventual arithmetic thresholds, not practical running times or + substitutes for additional native setup / prime / recovery thresholds. + """ + f = validate_bridge(finite_bridge) + p = result['parameters'] + e,c,r,beta = (p[k] for k in ('epsilon','c','alpha_squared_power','beta')) + ka,km,kb,ks = (ceil(1/x) for x in (r,e*c,1-e,e*beta)) + C0 = f['semantic']['C0'] + largest = max(f['bit']['m'],f['complex']['m']) + cuts = dict(guard=ceil(Q((2*C0).bit_length())/(1-e)), + normalization=ceil(7/(1-e-r)), alpha=16*ka*ka+1, compact=64*km*km+1, + geometry=ceil(3/(1-e*(1+c))),phase_cell=ceil(9/(e-(1-r)/2)), + period=128*kb*kb+1,stopped_leaf=ks*(4*largest).bit_length(),log_p=25,reservoir=14) + common = max(cuts.values()) + require(common >= max(2*ka,2*km,2*kb,25), 'cutoff does not cover monotone regime') + checkpoints=[] + for j in range(6): + z=common*2**j + powers=dict(alpha=(z//ka,8*(z+ka)+64),compact=(z//km,32*(z+km)+192), + period=(z//kb,16*(z+kb)+56), + rows=(z//kb,f['rows']['suffix_slope']*(z+kb+8)), + leaf=(z//ks,4*largest)) + require(all(lhs >= rhs.bit_length() for lhs,rhs in powers.values()), + 'compressed-power threshold failed') + checkpoints.append(dict(log2_input=z,powers={name:dict(exponent=lhs,rhs=rhs, + rhs_bits=rhs.bit_length()) for name,(lhs,rhs) in powers.items()})) + return dict(cutoff_log2_input=cuts,common_cutoff=common,power_checkpoints=checkpoints, + all_interval_argument='For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). ' + 'Successive intervals double LHS; the positive affine RHS grows at most ' + 'linearly, so 2^j >= j+1 proves persistence.', + additional_eventual_conditions=['BHP prime threshold and distinct-prime packing', + 'Fixed rational basis, eligible common prime and native table setup', + 'Catalogue/descriptor domination, logarithm absorption, exact recovery'], + practical_runtime_claim=False) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json new file mode 100644 index 0000000000..fa4b29c06d --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json @@ -0,0 +1,17916 @@ +{ + "assembly": { + "absorption_gap": "74937627730682908927817/3333470626501666392080330000000000000", + "constraints": { + "K_dominates_log": "13729316916625478716083360791967/333347062650166639208033000000000000", + "K_geometry": "250013729316916639208033/333347062650166639208033000000000000", + "a_below_b": "61024099/2000000000000", + "a_positive": "82375901/2000000000000", + "alpha_below_one": "666666666666333347062650166639208033/666694125300333278416066000000000000", + "alpha_below_one_fourth": "166646072691083388250600666639208033/666694125300333278416066000000000000", + "alpha_positive": "27458633999931353415833360791967/666694125300333278416066000000000000", + "artificial_boundary": "18667545342947664950502062499917624099/2666776501201333113664264000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "999958812049250082375901/1000000000000000000000000", + "c_positive": "41187950749917624099/1000000000000000000000000", + "cell_above_band": "666666666665666652937349833360791967/1333388250600666556832132000000000000", + "compact_leaf": "26927049500082375901/1000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "13729317166639208033/333347062650166639208033", + "epsilon_positive": "333333333333000000000000/333347062650166639208033", + "g1_above_kappa": "3408408254232349301008147/3333470626501666392080330000000000000", + "g2_above_kappa": "4241/2500000000000", + "g3_above_kappa": "74937627730682908927817/3333470626501666392080330000000000000", + "g4_above_kappa": "4241/2500000000000", + "g5_above_kappa": "5299956450675231223831763/13333882506006665568321320000000000000", + "g6_above_kappa": "11966897703678564007992423/13333882506006665568321320000000000000", + "g7_above_kappa": "3333196040161742016173902349301008147/3333470626501666392080330000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "13729317166639208033/333347062650166639208033", + "lambda_above_internal": "82375901/2000000000000000000000000", + "lambda_above_sigma": "61024099000082375901/2000000000000000000000000", + "lambda_above_tau": "82375901/2000000000000000000000000", + "lambda_prime_above_lambda": "82375901/2000000000000000000000000", + "lambda_prime_below_one": "41187950499917624099/1000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "21966907133275670202633360791967/533355300240266622732852800000000000", + "phase_leaf_above_bit": "53854099/2000000000000", + "phase_local": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "prime_interval_packing": "13729317166639208033/333347062650166639208033", + "q_below_internal": "82375901/1000000000000000000000000", + "q_below_leaf": "26927049500082375901/1000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "41187950499917624099/1000000000000000000000000", + "record_suffix": "13729317166639208033/333347062650166639208033", + "row_product_gap": "6548/25", + "short_record_fallback": "666639206901368489075295096355187267/666694125300333278416066000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "13729317166639208033/333347062650166639208033", + "g2": "82375901/2000000000000", + "g3": "13729316833292145382833360791967/333347062650166639208033000000000000", + "g4": "82375901/2000000000000", + "g5": "21966907133275670202633360791967/533355300240266622732852800000000000", + "g6": "109834536999766601613833360791967/2666776501201333113664264000000000000", + "g7": "333333333333000000000000/333347062650166639208033" + }, + "minimum_margin": "13729316833292145382833360791967/333347062650166639208033000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "82375901/2000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "27458633999931353415833360791967/666694125300333278416066000000000000", + "beta": "1/20", + "c": "41187950749917624099/1000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "333333333333000000000000/333347062650166639208033", + "h": "1/1000000000000", + "kappa": "411862541/10000000000000", + "lambda_": "1999917624099000082375901/2000000000000000000000000", + "lambda_prime": "999958812049500082375901/1000000000000000000000000", + "q": "41187950499917624099/1000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "1999917624099/2000000000000" + }, + "recurrence": { + "internal": "1999917624099/2000000000000", + "leaf": "199986377/200000000", + "reservations": "999958812049250082375901/1000000000000000000000000" + }, + "scoped_limit": "82375901/2000082375901" + }, + "bit": { + "counts": { + "L": 2226400, + "N": 4073300, + "W": 177530859, + "axes": [ + { + "copied_blocks": [ + 0, + 295366, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + "fixed": { + "R": 36432, + "blocks": [ + 0, + 295343, + 23132, + 16820, + 10632, + 8913, + 7089, + 7641, + 5358, + 4666, + 3516, + 3365, + 2287, + 1902, + 1304, + 978, + 575, + 384, + 211, + 0, + 55, + 23, + 0, + 23 + ], + "crt_disagreements": 0, + "crt_matrices": 5379, + "distinct_matrices": 68025, + "field_prime": 2305843009213693951, + "frames": 33627, + "h": 23, + "loss": 506, + "rank_sum": 838948, + "v": 1771 + }, + "original": { + "R": 36432, + "baseline_R": 42434, + "c": 37098, + "h": 23, + "histogram": [ + 5244, + 41676, + 30595, + 6012, + 15568, + 7215, + 4691, + 1842, + 4185, + 1306, + 3391, + 976, + 3359, + 939, + 3937, + 1398, + 3343, + 1467, + 8640, + 6346, + 0, + 220, + 23, + 23 + ], + "loss": 506, + "matched": 6002, + "orientation_changes": 717, + "q": 5336, + "rank_sum": 838948, + "v": 1771 + } + }, + { + "copied_blocks": [ + 0, + 394005, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 0 + ], + "exactness": { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + }, + "fixed": { + "R": 48329, + "blocks": [ + 0, + 393980, + 31950, + 20055, + 12894, + 12217, + 10233, + 10160, + 7115, + 6829, + 5436, + 5273, + 3588, + 3260, + 2423, + 2051, + 1340, + 1021, + 641, + 413, + 225, + 0, + 66, + 25, + 0, + 25 + ], + "crt_disagreements": 0, + "crt_matrices": 7186, + "distinct_matrices": 91415, + "field_prime": 2305843009213693951, + "frames": 44621, + "h": 25, + "loss": 600, + "rank_sum": 1209425, + "v": 2300 + }, + "original": { + "R": 48329, + "baseline_R": 56044, + "c": 49119, + "h": 25, + "histogram": [ + 6800, + 54247, + 39973, + 7714, + 20972, + 9090, + 4755, + 2916, + 5934, + 1457, + 3588, + 1332, + 4566, + 1032, + 3588, + 1281, + 4949, + 1932, + 4238, + 1657, + 11304, + 8160, + 0, + 286, + 25, + 25 + ], + "loss": 600, + "matched": 7715, + "orientation_changes": 3214, + "q": 6925, + "rank_sum": 1209425, + "v": 2300 + } + } + ], + "child_multiplicities": { + "1": 1470810555, + "10": 17713956, + "11": 17077983, + "12": 11614448, + "13": 10148060, + "14": 7290333, + "15": 5881721, + "16": 3695640, + "17": 10837991, + "18": 1620511, + "19": 731423, + "2": 109787050, + "20": 524975, + "21": 16346100, + "22": 116886, + "23": 91984475, + "25": 85590659, + "3": 74203405, + "4": 47288874, + "481": 8146600, + "5": 42136207, + "525": 85590659, + "529": 83793600, + "6": 34427343, + "7": 35567660, + "8": 24924065, + "9": 22825959 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 83793600, + "529": 83793600 + }, + "exterior_25": { + "25": 85590659, + "525": 85590659 + }, + "internal_23": { + "1": 679341800, + "10": 8086800, + "11": 7739500, + "12": 5260100, + "13": 4374600, + "14": 2999200, + "15": 2249400, + "16": 1322500, + "17": 883200, + "18": 485300, + "2": 53203600, + "20": 126500, + "21": 52900, + "3": 38686000, + "4": 24453600, + "5": 20499900, + "6": 16304700, + "7": 17574300, + "8": 12323400, + "9": 10731800 + }, + "internal_25": { + "1": 697782855, + "10": 9627156, + "11": 9338483, + "12": 6354348, + "13": 5773460, + "14": 4291133, + "15": 3632321, + "16": 2373140, + "17": 1808191, + "18": 1135211, + "19": 731423, + "2": 56583450, + "20": 398475, + "22": 116886, + "23": 44275, + "3": 35517405, + "4": 22835274, + "5": 21636307, + "6": 18122643, + "7": 17993360, + "8": 12600665, + "9": 12094159 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 102078397025 + }, + "exponent": "1999917624099/2000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "53259257699997876183736668495459569052785792230580620090082251565468500625309917919185182222272809724224279711231586883132969347622582523/53259257700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "82375901/2000000000000", + "strict_gap": "86357381254751862420191545704798752662973008553534107565392680757691400260904026452418824652737693710240154702379980434099259423216638822857814148601254263753449261128928174148567282159375696049922777800392880416655334347910898177298462563939142973301126073080543562257726240755581747563199696454706185011538581049130537795661088578393521117824130621795646880463274069889057323677109569884775881772801092142271729230590294146536649396307431553962131510800493187347962391626149529196354368034923540602827584261314666865682234666101889906754883827341580055378422372738052380207834708917356370987627010158783063063125894233253844345938226133499179262281464327246428498583476060857838740222705374132954626560591512450850356668750508178861378641462227199236700632011495218187888904536056810333037554362038569390969321460209586420356538594375798712535346414221488555689979502778312890748219238773997515630296103388733080327724435692020757582285245414049886745837906270620637509081126350164913074203246001707064231855337207315125811248151826010206143889771624137487832831018986105280880723364301345037770870540726794365290209985707605672563008298333698438513936108259/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000", + "upper": "2165940252601372784296236000020593083647617867462841476279305086888009256377625415940898150796257728944348499946538153344121051225287760019875091065436588571323213837914854091327650301867139439668907881337729538978936109245127232713850526728262779048520241484236058379648589825858960095635345716281532838210892742470454544563413329512341540575399345230160294764208504164645058090672700282213212249184290484446518682525973056622514659633237643672009277869217096639483865484322488173558485118729435839295151900341521849560561667394825750388800070618416176223140977318728500263303812327512540197098237503555469520961476602423236911363430136975060274545307031332276130295751430329335183539439189658880340788133471383927380215760170412939867434297900395752498035130674231798452741356243608657815950087296037913527105015002919210443826497716744881621478142349329099529642920943387319698979249846386671662169038464160435599552782978926172147697357480056718541348895072631523335416188177976414941135950546362600954687550006808395614924186050708131879487056899055922026517731796737367235908268487455800472679267394707376152418619446993501890014292394327436991701666301561486063891741/2165940252601459141677490751883013275193322666215504449287858620995574649058383107341159054822710147769001237640248393498823431205721859279298307704259446385471815092178607540588779230041288006951067257033779461756736502125543888048198437626440077511084180627209359505721670369421217821876101298029096037907347448655466083144462460050137201663977738751278118894830299811525521364742589339536889358754175260328291483618115328351745249927384180321405585300771058770994665977509836135950111268258632193663186823882124677144822982061691432623466172508322931106968318898783878685676550379892748031807154859926457147971635385486300037257663390819406212771440530511538411760078676757833767015500047497620563493507604338553940807272621263296536184806079257131139497357873468499084752851461796546720486144106370951081467053572310179765286707303165238160072518148041634876057142431943009678482028159277419881407812461676065895656171712006499872133049500814300826594309122518269173322458798613924022262300711275675157933551713872627470261393365833943127638882909262065916289355934225200066927254592736681196043568739745147022959346241358792100000000000000000000000000000000000000000000" + }, + "comparison": { + "PR36": "384569/10000000000", + "PR37": "3850771033/100000000000000", + "PR38": "242889/6250000000", + "PR39": "971668963/25000000000000", + "PR40": "1959367447/50000000000000", + "PR41": "1008542031/25000000000000", + "PR42": "4099494519/100000000000000", + "PR43": "409953/10000000000", + "PR44": "2050314627/50000000000000", + "PR46": "82012589/2000000000000", + "PR47": "4105106623/100000000000000", + "dyadic_corollary": "2^-15", + "next_dyadic_not_reached": "2^-14", + "ratio_PR36": "4627669/4321000", + "ratio_PR37": "4118625410/3850771033", + "ratio_PR38": "411862541/388622400", + "ratio_PR39": "2059312705/1943337926", + "ratio_PR40": "89535335/85189889", + "ratio_PR41": "2059312705/2017084062", + "ratio_PR42": "4118625410/4099494519", + "ratio_PR43": "411862541/409953000", + "ratio_PR44": "23138345/23037243", + "ratio_PR46": "411862541/410062945", + "ratio_PR47": "4118625410/4105106623" + }, + "complex": { + "child_width_multiplicities": [ + [ + 1, + 540572760 + ], + [ + 2, + 336785904 + ], + [ + 3, + 161899920 + ], + [ + 4, + 117097344 + ], + [ + 5, + 93051504 + ], + [ + 6, + 64779624 + ], + [ + 7, + 52822224 + ], + [ + 8, + 70243992 + ], + [ + 9, + 32150664 + ], + [ + 10, + 50699376 + ], + [ + 11, + 22728888 + ], + [ + 12, + 47580624 + ], + [ + 13, + 26208000 + ], + [ + 14, + 44907408 + ], + [ + 15, + 24714144 + ], + [ + 16, + 49192416 + ], + [ + 17, + 20815704 + ], + [ + 18, + 52501176 + ], + [ + 19, + 22624056 + ], + [ + 20, + 46348848 + ], + [ + 21, + 37759176 + ], + [ + 22, + 58961448 + ], + [ + 23, + 40773096 + ], + [ + 24, + 38781288 + ], + [ + 25, + 2208024 + ], + [ + 26, + 3741192 + ], + [ + 27, + 43112160 + ], + [ + 729, + 21464352 + ], + [ + 756, + 516232080 + ] + ], + "counts": { + "B1": 258116040, + "B2": 258116040, + "L": 4953312, + "N": 10732176, + "W": 537696432, + "child_multiplicities": { + "1": 540572760, + "10": 50699376, + "11": 22728888, + "12": 47580624, + "13": 26208000, + "14": 44907408, + "15": 24714144, + "16": 49192416, + "17": 20815704, + "18": 52501176, + "19": 22624056, + "2": 336785904, + "20": 46348848, + "21": 37759176, + "22": 58961448, + "23": 40773096, + "24": 38781288, + "25": 2208024, + "26": 3741192, + "27": 43112160, + "3": 161899920, + "4": 117097344, + "5": 93051504, + "6": 64779624, + "7": 52822224, + "729": 21464352, + "756": 516232080, + "8": 70243992, + "9": 32150664 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + }, + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + } + ], + "deficit": 5778864, + "dimensions": [ + 28, + 28 + ], + "m": 784, + "maxchild": 756, + "total_rank": 421548223824 + }, + "enclosure": "1+u+u^2/(2(1-u/3))", + "exponent": "9999283/10000000", + "logarithm_upper_bounds": { + "1": "6664409020351/1000000000000", + "10": "4361823927357/1000000000000", + "11": "4266513747553/1000000000000", + "12": "4179502370563/1000000000000", + "13": "4099459662889/1000000000000", + "14": "251584480671/62500000000", + "15": "3956358819249/1000000000000", + "16": "3891820298111/1000000000000", + "17": "766239135259/200000000000", + "18": "754807452491/200000000000", + "19": "116249063787/31250000000", + "2": "5971261839791/1000000000000", + "20": "3668676746797/1000000000000", + "21": "3619886582627/1000000000000", + "22": "3573366566993/1000000000000", + "23": "1764457402211/500000000000", + "24": "3486355190003/1000000000000", + "25": "3445533195483/1000000000000", + "26": "3406312482329/1000000000000", + "27": "3368572154347/1000000000000", + "3": "5565796731683/1000000000000", + "4": "5278114659231/1000000000000", + "5": "5054971107917/1000000000000", + "6": "4872649551123/1000000000000", + "7": "2303954527/488281250", + "729": "36367644171/500000000000", + "756": "36367644171/1000000000000", + "8": "4584967478671/1000000000000", + "9": "893436888603/200000000000" + }, + "moment_upper": "93758349669268174319758205865410416369669365194946428036263324886438920093698460010858713501882394775456058947688857504496378147740660153782705622445171968788940999158190850771009870660961702451316489933657453673410640256343163004633261783258126014322372415015196690665271304600343211202483869148840537844645971747977878306709988702092424295624899718047484041316483866997928443286860331217210569026228462754909148637641705274404842932443778349005557711550186032457951943018925944743009981965944635321901441335715694527157550303349516161701526749290641/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000", + "saving": "717/10000000", + "strict_gap": "799473866277846996709566868461626852274119892073214726922559004722049349860610885265197736074614901241077938822464125203618856630115942991121576126038522365700920238764631890201019076228268900099948049068998325124717427528599065415563911051089321775180102241577945383026678416698968257186466124918166171990724170465498339188718920943864567240237109440116392647851672422772615476546648773879307167872400514966177486129179086589485432748351924928772206631719941743038644792509730653397329958725804455602353626204716908969469523838298473250709359/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000" + }, + "controls": { + "PR40_bit_at_new_lower": "225818511431434901143450129613675250367060741840259317558179152603547745091720641143418160534936518333388387416533785674009254042754668107/225818314800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR41_bit_at_new_lower": "71351390501120105382667951093623831543963199017523832465221628611249289862638259523399377589566608499665993308315735243596852498486401143/71351363600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR42_bit_at_new_lower": "35675684798200343049340019110122720910157671615408029067001840793135754771116659125262690868038927797668077298780777541247295863817121613/35675681800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR43_bit_at_new_lower": "39385956009599315979378903721423208346195507187143417888392878949339863777130231502525440065262077654352230783095147155214119706814579573/39385952707200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR44_bit_at_new_lower": "27972979985809926698189510242186111721799641298372934454141074653606330355033987247203097142447598338739628213358928631749381262069447381/27972977775000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR46_bit_at_new_lower": "53513526929327323279826583353483061995125044145882592243457696059568495005255560229136252301198123695755265918459690181269467077912590743/53513522700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "PR47_bit_at_new_lower": "106900961147318756414776323709299143180165013078166700653729842113479441057835447594482895468854894319066737732648871855706927505431906281/106900954800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "old_bit_at_new_lower": "28227323527781237813430958008983158845436241200945201577976121288826000958450463883474541742600969253008151638715984357964612558619308229/28227289350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 9432294401, + "compact": 37729177601, + "geometry": 3999945085748, + "guard": 5390148, + "log_p": 25, + "normalization": 14000000000000, + "period": 75458355201, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 576606260, + "rhs": 112000000194304, + "rhs_bits": 47 + }, + "compact": { + "exponent": 576606260, + "rhs": 448000000777152, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 576606260, + "rhs": 224000000388536, + "rhs_bits": 48 + }, + "rows": { + "exponent": 576606260, + "rhs": 112000000194304000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1153212520, + "rhs": 224000000194304, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1153212520, + "rhs": 896000000777152, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1153212520, + "rhs": 448000000388536, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1153212520, + "rhs": 224000000194304000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2306425041, + "rhs": 448000000194304, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2306425041, + "rhs": 1792000000777152, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2306425041, + "rhs": 896000000388536, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2306425041, + "rhs": 448000000194304000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 4612850082, + "rhs": 896000000194304, + "rhs_bits": 50 + }, + "compact": { + "exponent": 4612850082, + "rhs": 3584000000777152, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 4612850082, + "rhs": 1792000000388536, + "rhs_bits": 51 + }, + "rows": { + "exponent": 4612850082, + "rhs": 896000000194304000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 9225700164, + "rhs": 1792000000194304, + "rhs_bits": 51 + }, + "compact": { + "exponent": 9225700164, + "rhs": 7168000000777152, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 9225700164, + "rhs": 3584000000388536, + "rhs_bits": 52 + }, + "rows": { + "exponent": 9225700164, + "rhs": 1792000000194304000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 18451400329, + "rhs": 3584000000194304, + "rhs_bits": 52 + }, + "compact": { + "exponent": 18451400329, + "rhs": 14336000000777152, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 18451400329, + "rhs": 7168000000388536, + "rhs_bits": 53 + }, + "rows": { + "exponent": 18451400329, + "rhs": 3584000000194304000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 177530859, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "geometry": { + "accepted_profile": { + "blocks": [ + 21, + 17, + 481 + ], + "singletons": 9 + }, + "column_tree": [ + [ + 0, + 26 + ], + [ + 1, + 27 + ], + [ + 2, + 28 + ], + [ + 3, + 29 + ], + [ + 4, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 32 + ], + [ + 7, + 33 + ], + [ + 8, + 34 + ], + [ + 9, + 35 + ], + [ + 10, + 36 + ], + [ + 11, + 37 + ], + [ + 12, + 38 + ], + [ + 13, + 39 + ], + [ + 14, + 40 + ], + [ + 15, + 41 + ], + [ + 16, + 42 + ], + [ + 17, + 43 + ], + [ + 18, + 44 + ], + [ + 19, + 45 + ], + [ + 20, + 46 + ], + [ + 21, + 47 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 0, + 25 + ], + [ + 1, + 26 + ], + [ + 2, + 27 + ], + [ + 3, + 28 + ], + [ + 4, + 29 + ], + [ + 5, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 32 + ], + [ + 8, + 33 + ], + [ + 9, + 34 + ], + [ + 10, + 35 + ], + [ + 11, + 36 + ], + [ + 12, + 37 + ], + [ + 13, + 38 + ], + [ + 14, + 39 + ], + [ + 15, + 40 + ], + [ + 16, + 41 + ], + [ + 17, + 42 + ], + [ + 18, + 43 + ], + [ + 19, + 44 + ], + [ + 20, + 45 + ], + [ + 21, + 46 + ], + [ + 22, + 47 + ] + ], + "dimensions": [ + 23, + 25 + ], + "fallback_profile": { + "blocks": [ + 481 + ], + "singletons": 47 + }, + "inherited": { + "actual_local_and_auxiliary_contractions": true, + "actual_null_corner": true, + "author_witness": { + "nu_denominator": 105625, + "nu_numerators": [ + 1, + 8, + 27, + 64, + 125, + 216, + 343, + 512, + 729, + 1000, + 1331, + 1728, + 2197, + 2744, + 3375, + 4096, + 4913, + 5832, + 6859, + 8000, + 9261, + 10648, + 12167, + 13824, + 15625 + ], + "p": "all ones", + "pivot_values": [ + "-1", + "1081", + "4324/9", + "1081/4", + "4324/25", + "1081/9", + "4324/49", + "1081/16", + "4324/81", + "1081/25", + "4324/121", + "1081/36", + "4324/169", + "1081/49", + "4324/225", + "1081/64", + "4324/289", + "1081/81", + "4324/361", + "1081/100", + "4324/441", + "1081/121", + "142812651751657877942589556478847433551977787425536169375/19268941635246593353904372229207380456680824753881088", + "-3301880224346962861941006006629802656529005188895982595479857959591861547197179585193848574930840744013899375/11019785351154517046629105770544670194180926949645355094282023563638938723955445008552317770143413305344", + "74907043800035918709206033348544416861478577835267509060516462595758002954160059826338653120940771668514812472/60116162482420807682130286875371919099299138623504462366497186337585098720021476289373665451631146909675", + "10940299784531588304345150315393704447900044902431187377875452629639845445581682724600127025820276398750/30226196505888073803577264188652004854088012439298071298271200975120006873557454163131322338706864804567", + "-5831395627680712592570933775404123356087221102691725998080707457029019970438674252017627955200000/622802236364140798653392176212549886737354011381551974831022707159458930937546871107955711994323", + "-14843046800460539712231070321073001452509820092416000/38851899814728176802610554213615671238028162148034359", + "845", + "105625/216", + "105625/343", + "105625/512", + "105625/729", + "845/8", + "105625/1331", + "105625/1728", + "625/13", + "105625/2744", + "845/27", + "105625/4096", + "105625/4913", + "105625/5832", + "105625/6859", + "845/64", + "105625/9261", + "230987404375/5999554", + "-228361250/22253" + ], + "v": "all ones", + "xi_denominator": 4324, + "xi_numerators": [ + 1, + 4, + 9, + 16, + 25, + 36, + 49, + 64, + 81, + 100, + 121, + 144, + 169, + 196, + 225, + 256, + 289, + 324, + 361, + 400, + 441, + 484, + 529 + ] + }, + "both_trees": true, + "columns": [ + [ + 0, + 3 + ], + [ + 1, + 4 + ], + [ + 2, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 14 + ], + [ + 12, + 15 + ], + [ + 13, + 16 + ], + [ + 14, + 17 + ], + [ + 15, + 18 + ], + [ + 16, + 19 + ], + [ + 17, + 20 + ], + [ + 18, + 21 + ], + [ + 19, + 22 + ], + [ + 20, + 23 + ], + [ + 21, + 24 + ], + [ + 22, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 14 + ], + [ + 13, + 15 + ], + [ + 14, + 16 + ], + [ + 15, + 17 + ], + [ + 16, + 18 + ], + [ + 17, + 19 + ], + [ + 18, + 20 + ], + [ + 19, + 21 + ], + [ + 20, + 22 + ], + [ + 21, + 23 + ], + [ + 22, + 24 + ] + ], + "cuts": [ + { + "pivot": 46, + "row": 0, + "trivial_suffix_bound": 0 + }, + { + "left_rank": 1, + "pivot": 25, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 1, + "selected": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 26, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 2, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 27, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 3, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 28, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 4, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 29, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 5, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 30, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 6, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 31, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 7, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 32, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 8, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 33, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 9, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 34, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 10, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 35, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 11, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 36, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 12, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 37, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 13, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 38, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 14, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 39, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 15, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 40, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 16, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 41, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 17, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 42, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 18, + "selected": [ + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 43, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 19, + "selected": [ + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 44, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 20, + "selected": [ + 21, + 22, + 44, + 45, + 46, + 47, + 48 + ] + }, + { + "left_rank": 1, + "pivot": 45, + "preceding_right_pivots": 1, + "right_rank": 0, + "row": 21, + "selected": [ + 22, + 45, + 46, + 47, + 48 + ] + }, + { + "pivot": 24, + "row": 22, + "trivial_suffix_bound": 22 + }, + { + "pivot": 23, + "row": 23, + "trivial_suffix_bound": 23 + }, + { + "pivot": 22, + "row": 24, + "trivial_suffix_bound": 24 + }, + { + "pivot": 21, + "row": 25, + "trivial_suffix_bound": 25 + }, + { + "pivot": 20, + "row": 26, + "trivial_suffix_bound": 26 + }, + { + "pivot": 19, + "row": 27, + "trivial_suffix_bound": 27 + }, + { + "left_rank": 22, + "pivot": 2, + "preceding_right_pivots": 28, + "right_rank": 6, + "row": 28, + "selected": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 21, + "pivot": 3, + "preceding_right_pivots": 28, + "right_rank": 7, + "row": 29, + "selected": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 20, + "pivot": 4, + "preceding_right_pivots": 28, + "right_rank": 8, + "row": 30, + "selected": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 19, + "pivot": 5, + "preceding_right_pivots": 28, + "right_rank": 9, + "row": 31, + "selected": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 18, + "pivot": 6, + "preceding_right_pivots": 28, + "right_rank": 10, + "row": 32, + "selected": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 17, + "pivot": 7, + "preceding_right_pivots": 28, + "right_rank": 11, + "row": 33, + "selected": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 16, + "pivot": 8, + "preceding_right_pivots": 28, + "right_rank": 12, + "row": 34, + "selected": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 15, + "pivot": 9, + "preceding_right_pivots": 28, + "right_rank": 13, + "row": 35, + "selected": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 14, + "pivot": 10, + "preceding_right_pivots": 28, + "right_rank": 14, + "row": 36, + "selected": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 13, + "pivot": 11, + "preceding_right_pivots": 28, + "right_rank": 15, + "row": 37, + "selected": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 12, + "pivot": 12, + "preceding_right_pivots": 28, + "right_rank": 16, + "row": 38, + "selected": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 11, + "pivot": 13, + "preceding_right_pivots": 28, + "right_rank": 17, + "row": 39, + "selected": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 10, + "pivot": 14, + "preceding_right_pivots": 28, + "right_rank": 18, + "row": 40, + "selected": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 9, + "pivot": 15, + "preceding_right_pivots": 28, + "right_rank": 19, + "row": 41, + "selected": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 8, + "pivot": 16, + "preceding_right_pivots": 28, + "right_rank": 20, + "row": 42, + "selected": [ + 17, + 18, + 19, + 20, + 21, + 22, + 42, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 7, + "pivot": 17, + "preceding_right_pivots": 28, + "right_rank": 21, + "row": 43, + "selected": [ + 18, + 19, + 20, + 21, + 22, + 43, + 44, + 45, + 46, + 47 + ] + }, + { + "left_rank": 6, + "pivot": 18, + "preceding_right_pivots": 28, + "right_rank": 22, + "row": 44, + "selected": [ + 19, + 20, + 21, + 22, + 44, + 45, + 46, + 47 + ] + }, + { + "pivot": 1, + "row": 45, + "trivial_suffix_bound": 45 + }, + { + "pivot": 0, + "row": 46, + "trivial_suffix_bound": 46 + } + ], + "d": 47, + "dimensions": [ + 23, + 25 + ], + "m": 575, + "negative_controls": [ + "incorrect_unshifted_auxiliary_formula", + "old_25_23_data_residue_offset" + ], + "permutations": [ + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 2, + 3, + 1, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0 + ], + [ + 3, + 4, + 2, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 0, + 1 + ], + [ + 4, + 5, + 0, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 1, + 2 + ], + [ + 5, + 6, + 0, + 1, + 4, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 2, + 3 + ], + [ + 6, + 7, + 0, + 1, + 2, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 3, + 4 + ], + [ + 7, + 8, + 0, + 1, + 2, + 3, + 6, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 4, + 5 + ], + [ + 8, + 9, + 0, + 1, + 2, + 3, + 4, + 7, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 5, + 6 + ], + [ + 9, + 10, + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 6, + 7 + ], + [ + 10, + 11, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 9, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 7, + 8 + ], + [ + 11, + 12, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 8, + 9 + ], + [ + 12, + 13, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 11, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 9, + 10 + ], + [ + 13, + 14, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 12, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 10, + 11 + ], + [ + 14, + 15, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 11, + 12 + ], + [ + 15, + 16, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 12, + 13 + ], + [ + 16, + 17, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 15, + 18, + 19, + 20, + 21, + 22, + 13, + 14 + ], + [ + 17, + 18, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 16, + 19, + 20, + 21, + 22, + 14, + 15 + ], + [ + 18, + 19, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 17, + 20, + 21, + 22, + 15, + 16 + ], + [ + 19, + 20, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 18, + 21, + 22, + 16, + 17 + ], + [ + 20, + 21, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 19, + 22, + 17, + 18 + ], + [ + 21, + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 20, + 18, + 19 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 21, + 19, + 20 + ], + [ + 22, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "physical_blocks": [ + { + "columns": [ + 553, + 573 + ], + "rows": [ + 1, + 21 + ] + }, + { + "columns": [ + 530, + 546 + ], + "rows": [ + 28, + 44 + ] + }, + { + "columns": [ + 47, + 527 + ], + "rows": [ + 47, + 527 + ] + } + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "profile": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 21, + 17, + 481 + ], + "rank": 528, + "rational_controls": [ + { + "degree": 1, + "left_weights": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "ordered_prefix_determinants": [ + "-136/22425", + "-136/1681875", + "-1496/1135265625", + "-1496/58946484375", + "-1496/2652591796875", + "-25432/1790499462890625", + "-483208/1208587137451171875", + "-3382456/271932105926513671875", + "-3382456/7980616152191162109375", + "-3382456/215476636109161376953125", + "-3382456/5386915902729034423828125", + "-98091224/3636168234342098236083984375", + "-3040827944/2454413558180916309356689453125", + "-33449107384/552243050590706169605255126953125", + "-234143751688/74552811829745332896709442138671875", + "-8663318812456/50323147985078099705278873443603515625", + "-112623144561928/11322708296642572433687746524810791015625", + "-4617548927039048/7642828100233736392739228904247283935546875", + "-198554603862679064/5158908967657772065098979510366916656494140625", + "-198554603862679064/77383634514866580976484692655503749847412109375", + "-9332066381545916008/52233953297534942159127167542465031147003173828125", + "-457271252695749884392/35257918475836085957410838091163896024227142333984375", + "-774427803494826766413381910805757663636935962869953/934698078008949744645355209409485648384168738776353571529398323036730289459228515625", + "22488141150263136890277253182027357481046933636363407735902104533297154704/30739301928905317568582693128157367185453821539556669670738239185018288815279232907414552755653858184814453125", + "43781442323389343420444995260351594325182959245296311928874937920867383808/340409306546025553815045379456261214387062690382497934501879019122980309472907060715442639775574207305908203125", + "5223914806424997682784519984030088376145366436712067460675070411721763904/256160849407544313071522442734644726545448512829638913922818659875152406793993607561787939630448818206787109375", + "-2611659069095967460510300272690333032678968481792/134561904785955098423573914776839656121083847689766160464250788209028542041778564453125", + "8147026035721446555641344/421291420783618973406213148627626540264827781356871128082275390625", + "2962554922080526020233216/9689702678023236388342902418435410426091038971208035945892333984375", + "2962554922080526020233216/502184990793017597886518156006112537682878246414475142955780029296875", + "100726867350737884687929344/750766561235561308840344643229138243835902978389640338718891143798828125", + "788039609273419921382035456/224479201809432831343263048325512334906934990538502461276948451995849609375", + "2322643058911132399862841344/22373093780340138857211883816442729379057854057004078640602529048919677734375", + "331806151273018914266120192/96950073048140601714584829871251827309250700913684340775944292545318603515625", + "663612302546037828532240384/5333805218816503343929599000196790531245736561467257692129351198673248291015625", + "7299735328006416113854644224/1476673852246420833180509352832259600780069659146953749950625933706760406494140625", + "846769298048744269207138729984/3973729336395118462088750668471610585699167452764452541117134387604892253875732421875", + "905167180672795598117975883776/91395774737087724628041265374847043471080851413582408445694090914912521839141845703125", + "4496636962051952326134460841984/9109112215463076554594779449026421999284391524220380041754177727852948009967803955078125", + "2861496248578515116631020535808/108944982096938395592953562210356007111441322629675745299379965625121258199214935302734375", + "242000825594068707006509165314048/162872748234922901411465575504482230631604777331365239222573048609556281007826328277587890625", + "111189568516193730246233940819968/1248691069801075577487902745534363768175636626207133500706393372673264821060001850128173828125", + "9117544618327885880191183147237376/1617887396105593589898492657297357322299566522022375972415250346526993453153409063816070556640625", + "181683754955460555222346259299827712/483748331435572483379649304531909839367570390084690415752159853611571042492869310081005096435546875", + "16900814414461446997427559004635136/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625", + "7911019513152166679646942512807936/385708669597963126748040378813442778589076124360859824826388789946292644547647796571254730224609375", + "-494438719572010417477933907050496/642847782663271877913400631355737964315126873934766374710647983243821074246079660952091217041015625" + ], + "pivot_values": [ + "-136/22425", + "1/75", + "11/675", + "13/675", + "1/45", + "17/675", + "19/675", + "7/225", + "23/675", + "1/27", + "1/25", + "29/675", + "31/675", + "11/225", + "7/135", + "37/675", + "13/225", + "41/675", + "43/675", + "1/15", + "47/675", + "49/675", + "90780708748082000078232473828014673925846401/1421023343629369829514948334235558745343301400", + "-18222683405075170949504376828173428931220504447233253567507707755072724400/20637750563429036160721040917538741498726591150217622165190926435667742044567", + "1507779263688153408612263867384557457627474361764031150611764443703341024/8576472198888619808919513649778290671980909639378391470707562825836542419", + "498070958903403796923651618375317737393961914724779391180435603668624811/3141206799350319601275549723717828036723904920341731563774509257715293800", + "-279771447951617034403030589935947704264107576270394945571233421944416/293962792978597558680101289617539486952958045283167061487567737754451", + "-7203444964173917251700002130749899185/7229663935460457778827016360402446746516", + "4/253", + "75/3887", + "34/1495", + "133/5083", + "168/5681", + "3/91", + "250/6877", + "297/7475", + "116/2691", + "31/667", + "462/9269", + "175/3289", + "592/10465", + "51/851", + "246/3887", + "817/12259", + "900/12857", + "110/141", + "-3/80" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + }, + { + "degree": 2, + "left_weights": [ + 2, + 5, + 10, + 17, + 26, + 37, + 50, + 65, + 82, + 101, + 122, + 145, + 170, + 197, + 226, + 257, + 290, + 325, + 362, + 401, + 442, + 485, + 530 + ], + "ordered_prefix_determinants": [ + "-9434/672175", + "-481134/14031653125", + "-39934122/292910758984375", + "-4911897006/6114512093798828125", + "-839934388026/127640439958050537109375", + "-190665106081902/2664494184124304962158203125", + "-55483545869833482/55621316093594866085052490234375", + "-20140527150749553966/1161094973453792829525470733642578125", + "-8922253527782052406938/24237857570847925316344201564788818359375", + "-4737716623252269828084078/505965276791450440978685207664966583251953125", + "-2970548322779173182208716906/10562025153021527955430053710006177425384521484375", + "-2171470823951575596194572058286/220482275069324396069602371196378953754901885986328125", + "-1830549904591178227592024245135098/4602567492072146767952949498724410659633576869964599609375", + "-1762819558121304633171119348065099374/96078596397006063781017820785872072519850917160511016845703125", + "-1923236137910343354789691208739023417034/2005640699787501581428747008905079513851887895725667476654052734375", + "-2359810741215991296326951113122781732700718/41867749608064095512325093810893534851658159823273308575153350830078125", + "-3235300526207124067264249976091333755532684378/873989273068337993819786333302402540028364086310830316506326198577880859375", + "-4927362701413449954443452713587101309676278307694/18244526075301555620988039707687653023092100301738582857069559395313262939453125", + "-8292751426478836273328330916967091504185176391849002/380854481821919973588125328897979756857047593798792917141327052377164363861083984375", + "-15349882890412325941930740527306086374246761501312502702/7950337308032579448652116240745327424390868520549802145325202218373306095600128173828125", + "-31114212618865784684293611048849437080598185563160442976954/165963291305180095990612926525558709984159380366477119783663596308542764745652675628662109375", + "-68793524100312249936973174029006105385202588280147739422045294/3464483705995634503804044841221038070919327065150209875483977572940830214065499603748321533203125", + "-320939889277029603849885218613819697637636425903389849074463084765835708779339849991808742586501/3072430179236252823264716186856353699802821337240763732623601650174243307843734253380457949016146823595363457570783793926239013671875", + "1245875627001486003524925840693082579900506702795220917872585680790449852841448300695325314605332716089358256276075666345371933435627513884/330392547940061126524090579005410197690598250921499159106894411964503315752339204942691190056398718416654087768414819695413626236548660752671835449945092477719299495220184326171875", + "-191122033997905806909528288458719256707212395642607937861919035317221617214725016921351463139805611093698337401145528199270922701922964576/594706586292110027743363042209738355843076851658698486392409941536105968354210568896844142101517693149977357983146675451744527225787589354809303809901166459894739091396331787109375", + "-33866419223477871432738970551480649008242390490093325529817983170572951863931838751688060529213753137420036470368457792949569488757290928/66078509588012225304818115801082039538119650184299831821378882392900663150467840988538238011279743683330817553682963939082725247309732150534367089989018495543859899044036865234375", + "-2451948467107434017727241549738357444604312885323666172115751274420393797285211501893659384900192544/6057064308553699886924805654804969362527607504292870424430510150921615686976776716332276924490573394820047692377329440205357968807220458984375", + "2201445419163520268278455908505270834917331925591970045434279936/4344364695505523672609278644785573695044342470968858137422975269751647398042138092932873405516147613525390625", + "2174921980378417614443775716836532632087002625283633056935071744/1258996888757500760322168951258859256823850448086775088225178233174027415952611619331946712918579578399658203125", + "17134141455176314377203403818004879028392727999185694570488492032/1824286491809618601706822810374087063137759299277737102838283259869165725715334236411990787019021809101104736328125", + "5322405414128979339697604701782357685556520034273366808159109472256/71371560419067708554576028810265408171138557065642908674342155975861370687161021331146315560545190237462520599365234375", + "84150277670964347357597811782805646402917843185053363323713849761792/103417391047229109695580665746074576439979769188116574669121784009023126125696319908831011247229980654083192348480224609375", + "209941929859519299593182169602463571438207402585390865199368573632512/17982215955292197593867566159927447351383682266429710003466895803488941170736076105747536235668349036131985485553741455078125", + "9992194826950178895513521609426344693492863070159223080026145583054848/46901215654593109764325386058322768181878920087301969631042357634659856361513833699010724009870187956039444543421268463134765625", + "109124692037889312633170242768407800512682779985170025420240389008621568/22653287161168472016169161466169897031847518402166851331793458737540710622611181676622179696767300782767051714472472667694091796875", + "39042595325895008480908316179632546796986793266219560450777192738694791168/295421517868798043562862034680321627192323487482657908217918495396268407229472420244829845425542369508065121408435516059398651123046875", + "16659792996908940891599834705894687983008977019464080574742639247953487396864/3852592014526995286103283794266074340215090600261341781069875098462736298679549832412826014194498040754677248287407564930617809295654296875", + "185719087731615539433169703171458019662845627539825981673840994844833062649856/1116481165809923233912731643578308343794333255955736848154049803534500979357333541433236978913565532210705466553690712316893041133880615234375", + "2404434310205043887750431957785637991222179334483583349926809748204635878719488/323556241851715753187909630308993758031597777575972538595043633064298383817755260307352076489151291234662444207259568429435603320598602294921875", + "4829699560648966987500346629822372117190741474977131949997377932265212855191994368/12658490849964675411970588466578762795470199852104773627453892056374545670102039049004535288485065966973698804720616095664809108711779117584228515625", + "409191979091683423027137525555454761026956001373085439657248058470213276862343544832/18342153241598814671945382688072627290636319585699816986180689589686716675977854582007571633014860586144889568040172722618308398523367941379547119140625", + "117504128978824269807125367332426910092554903191363109541085885621682345120306569674752/79733340141230047378946578545051710832396081239037104438927457646368157390475733867986913888715598967971834952270630825221786608381080441176891326904296875", + "22712493937014142339480551855454264061522417545964702228013743152091221605814355635994624/207960497756356209573768466161203872193055459087656575797610595033257428105838809074483468804548025228264139922512259318343463831979534006677567958831787109375", + "36253494918503860818960749547346891617571239037583841836048200658393801525761456698032128/4017796816652801968965206766234458810769831469573525044409836696042533511004805791319020617303867847410063183302936850030395721233844597009010612964630126953125", + "43301406973409151493893899756139666472465275529414446039832672779972669229865905878782181376/52396088285969190477275261438463577351249372194708340104148680353090679517013672324591347870259740598074633973453599461246390600610567389594507403671741485595703125", + "554988883545755027968047998507518444029367563360357849952925447551814126412537914860601344/5346539621017264334415843003924854831760140019868197969811089831948028522144252278019525292883646999803534078923836679719019449041894631591276265680789947509765625", + "-32310996644787107792660328680232238179791947181938641949314152768427534756894330659692544/87326813809948650795458769064105962252082286991180566840247800588484465861689453874318913117099567663457723289089332435410651001017612315990845672786235809326171875" + ], + "pivot_values": [ + "-9434/672175", + "51/20875", + "83/20875", + "123/20875", + "171/20875", + "227/20875", + "291/20875", + "363/20875", + "443/20875", + "531/20875", + "627/20875", + "731/20875", + "843/20875", + "963/20875", + "1091/20875", + "1227/20875", + "1371/20875", + "1523/20875", + "1683/20875", + "1851/20875", + "2027/20875", + "2211/20875", + "7364264693087061471645133239325113464318947332450318677985803365344435086883928283287/1399899145438201838550668546301643374764987111921828690592232299085948881442256498995830", + "-1210951777731703669691036352292953792524111331980891992800227130351123452472151452796669369975246604029157358069355455022522387772275100/33544712846985983089282237094201319680739975881928986568756767766484387589009805209852654469240424774578668316635040936193829465841865738629", + "-826652396184713697705572181914875677799361572848650250267815896700785541586180869036987297317498317879318068344055052765012641444303480/9699723739630946394225201181866559878118131769166944862329819314112498854301933136901321653501725298273550438135537194730404326055923551", + "1243707045322602512301081865587769476211813321843539571098949894460226246880045655012374097256821579930715578414980577693682368441991/779860751117654431797709605580071394150341106460990802139448959151684473194510253808478582374998413093696290890617974306615699475758", + "12643111167595480352640007527254011647390963772039223157364200341282508663461620715678931690444819848574010438266842033543946234/16007143716264495569984450694206590681902947627881894681891834877282600961170259533989395951668939340395582563226129421904093703", + "-36805546261487763107273876367617172536163293857447402763620390901622045709208640/29402264143559069033185372711699522165505155634755438669527959728477744344281439641", + "410/120267", + "323/59409", + "5902/743337", + "3589/328923", + "6050/421659", + "28795/1577961", + "4838/213969", + "21109/769419", + "89182/2725569", + "40745/1059219", + "18190/407169", + "214927/4186161", + "92434/1580859", + "117449/1777923", + "441670/5959737", + "60775/735609", + "223354/2438667", + "296891/2363680", + "-51/14308" + ], + "pivots": [ + 46, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 24, + 23, + 22, + 21, + 20, + 19, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 1, + 0 + ], + "right_weights": [ + 3, + 11, + 27, + 51, + 83, + 123, + 171, + 227, + 291, + 363, + 443, + 531, + 627, + 731, + 843, + 963, + 1091, + 1227, + 1371, + 1523, + 1683, + 1851, + 2027, + 2211, + 2403 + ], + "widths": [ + 1, + 21, + 1, + 1, + 1, + 1, + 1, + 1, + 17, + 1, + 1 + ] + } + ], + "rows": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 14 + ], + [ + 15, + 15 + ], + [ + 16, + 16 + ], + [ + 17, + 17 + ], + [ + 18, + 18 + ], + [ + 19, + 19 + ], + [ + 20, + 20 + ], + [ + 21, + 21 + ], + [ + 22, + 22 + ], + [ + 22, + 23 + ], + [ + 0, + 24 + ], + [ + 1, + 0 + ], + [ + 2, + 1 + ], + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 14 + ], + [ + 16, + 15 + ], + [ + 17, + 16 + ], + [ + 18, + 17 + ], + [ + 19, + 18 + ], + [ + 20, + 19 + ], + [ + 21, + 20 + ], + [ + 22, + 21 + ] + ], + "source_sha256": { + "certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65" + }, + "status": "PASS EXACT REVERSED23/25 GEOMETRY; PR36 PHYSICAL INTEGRATION SEPARATE" + }, + "line_coordinates": { + "23": { + "dual": [ + "-5/72", + "31/72" + ], + "primal": [ + "3", + "4" + ] + }, + "25": { + "dual": [ + "-5/78", + "17/39" + ], + "primal": [ + "3", + "4" + ] + } + }, + "modular": { + "dimensions": [ + 23, + 25 + ], + "exact_recovery": [ + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 9, + 10, + 14, + 18, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 11, + 12, + 6, + 8, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 0, + 15, + 18, + 6, + 13, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 1, + 15, + 17, + 12, + 13, + 18 + ], + "pivots": [ + "-1", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 2, + 11, + 18, + 4, + 7, + 22 + ], + "pivots": [ + "-1", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "39/68", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 7, + 22, + 6, + 11, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 4, + 11, + 20, + 2, + 17, + 20 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "39/68", + "7098/425", + "144/35" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 5, + 7, + 21, + 6, + 11, + 12 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "primary_failed_row": 24 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 10, + 11, + 22, + 14, + 16, + 18 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 25 + }, + { + "ordered_zero_checks": 346, + "pair": [ + 12, + 13, + 22, + 4, + 6, + 10 + ], + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "primary_failed_row": 26 + } + ], + "fallback": 0, + "fallback_pairs": [ + [ + 0, + 9, + 10, + 14, + 18, + 20, + 26 + ], + [ + 0, + 11, + 12, + 6, + 8, + 10, + 25 + ], + [ + 0, + 15, + 18, + 6, + 13, + 18, + 25 + ], + [ + 1, + 15, + 17, + 12, + 13, + 18, + 24 + ], + [ + 2, + 11, + 18, + 4, + 7, + 22, + 25 + ], + [ + 4, + 7, + 22, + 6, + 11, + 18, + 25 + ], + [ + 4, + 11, + 20, + 2, + 17, + 20, + 25 + ], + [ + 5, + 7, + 21, + 6, + 11, + 12, + 24 + ], + [ + 10, + 11, + 22, + 14, + 16, + 18, + 25 + ], + [ + 12, + 13, + 22, + 4, + 6, + 10, + 26 + ] + ], + "good": 4073300, + "nonzero_pivots": 191444880, + "ordered_zero_checks": 1409360440, + "pairs": 4073300, + "primary_fallback": 10, + "primary_good": 4073290, + "prime": 1000003, + "records": [ + [ + 0, + 1, + 2, + 2300, + 428310 + ], + [ + 0, + 1, + 3, + 2300, + 428310 + ], + [ + 0, + 1, + 4, + 2300, + 428310 + ], + [ + 0, + 1, + 5, + 2300, + 428310 + ], + [ + 0, + 1, + 6, + 2300, + 428310 + ], + [ + 0, + 1, + 7, + 2300, + 428310 + ], + [ + 0, + 1, + 8, + 2300, + 428310 + ], + [ + 0, + 1, + 9, + 2300, + 428310 + ], + [ + 0, + 1, + 10, + 2300, + 428310 + ], + [ + 0, + 1, + 11, + 2300, + 428310 + ], + [ + 0, + 1, + 12, + 2300, + 428310 + ], + [ + 0, + 1, + 13, + 2300, + 428310 + ], + [ + 0, + 1, + 14, + 2300, + 428310 + ], + [ + 0, + 1, + 15, + 2300, + 428310 + ], + [ + 0, + 1, + 16, + 2300, + 428310 + ], + [ + 0, + 1, + 17, + 2300, + 428310 + ], + [ + 0, + 1, + 18, + 2300, + 428310 + ], + [ + 0, + 1, + 19, + 2300, + 428310 + ], + [ + 0, + 1, + 20, + 2300, + 428310 + ], + [ + 0, + 1, + 21, + 2300, + 428310 + ], + [ + 0, + 1, + 22, + 2300, + 428310 + ], + [ + 0, + 2, + 3, + 2300, + 428310 + ], + [ + 0, + 2, + 4, + 2300, + 428310 + ], + [ + 0, + 2, + 5, + 2300, + 428310 + ], + [ + 0, + 2, + 6, + 2300, + 428310 + ], + [ + 0, + 2, + 7, + 2300, + 428310 + ], + [ + 0, + 2, + 8, + 2300, + 428310 + ], + [ + 0, + 2, + 9, + 2300, + 428310 + ], + [ + 0, + 2, + 10, + 2300, + 428310 + ], + [ + 0, + 2, + 11, + 2300, + 428310 + ], + [ + 0, + 2, + 12, + 2300, + 428310 + ], + [ + 0, + 2, + 13, + 2300, + 428310 + ], + [ + 0, + 2, + 14, + 2300, + 428310 + ], + [ + 0, + 2, + 15, + 2300, + 428310 + ], + [ + 0, + 2, + 16, + 2300, + 428310 + ], + [ + 0, + 2, + 17, + 2300, + 428310 + ], + [ + 0, + 2, + 18, + 2300, + 428310 + ], + [ + 0, + 2, + 19, + 2300, + 428310 + ], + [ + 0, + 2, + 20, + 2300, + 428310 + ], + [ + 0, + 2, + 21, + 2300, + 428310 + ], + [ + 0, + 2, + 22, + 2300, + 428310 + ], + [ + 0, + 3, + 4, + 2300, + 428310 + ], + [ + 0, + 3, + 5, + 2300, + 428310 + ], + [ + 0, + 3, + 6, + 2300, + 428310 + ], + [ + 0, + 3, + 7, + 2300, + 428310 + ], + [ + 0, + 3, + 8, + 2300, + 428310 + ], + [ + 0, + 3, + 9, + 2300, + 428310 + ], + [ + 0, + 3, + 10, + 2300, + 428310 + ], + [ + 0, + 3, + 11, + 2300, + 428310 + ], + [ + 0, + 3, + 12, + 2300, + 428310 + ], + [ + 0, + 3, + 13, + 2300, + 428310 + ], + [ + 0, + 3, + 14, + 2300, + 428310 + ], + [ + 0, + 3, + 15, + 2300, + 428310 + ], + [ + 0, + 3, + 16, + 2300, + 428310 + ], + [ + 0, + 3, + 17, + 2300, + 428310 + ], + [ + 0, + 3, + 18, + 2300, + 428310 + ], + [ + 0, + 3, + 19, + 2300, + 428310 + ], + [ + 0, + 3, + 20, + 2300, + 428310 + ], + [ + 0, + 3, + 21, + 2300, + 428310 + ], + [ + 0, + 3, + 22, + 2300, + 428310 + ], + [ + 0, + 4, + 5, + 2300, + 428310 + ], + [ + 0, + 4, + 6, + 2300, + 428310 + ], + [ + 0, + 4, + 7, + 2300, + 428310 + ], + [ + 0, + 4, + 8, + 2300, + 428310 + ], + [ + 0, + 4, + 9, + 2300, + 428310 + ], + [ + 0, + 4, + 10, + 2300, + 428310 + ], + [ + 0, + 4, + 11, + 2300, + 428310 + ], + [ + 0, + 4, + 12, + 2300, + 428310 + ], + [ + 0, + 4, + 13, + 2300, + 428310 + ], + [ + 0, + 4, + 14, + 2300, + 428310 + ], + [ + 0, + 4, + 15, + 2300, + 428310 + ], + [ + 0, + 4, + 16, + 2300, + 428310 + ], + [ + 0, + 4, + 17, + 2300, + 428310 + ], + [ + 0, + 4, + 18, + 2300, + 428310 + ], + [ + 0, + 4, + 19, + 2300, + 428310 + ], + [ + 0, + 4, + 20, + 2300, + 428310 + ], + [ + 0, + 4, + 21, + 2300, + 428310 + ], + [ + 0, + 4, + 22, + 2300, + 428310 + ], + [ + 0, + 5, + 6, + 2300, + 428310 + ], + [ + 0, + 5, + 7, + 2300, + 428310 + ], + [ + 0, + 5, + 8, + 2300, + 428310 + ], + [ + 0, + 5, + 9, + 2300, + 428310 + ], + [ + 0, + 5, + 10, + 2300, + 428310 + ], + [ + 0, + 5, + 11, + 2300, + 428310 + ], + [ + 0, + 5, + 12, + 2300, + 428310 + ], + [ + 0, + 5, + 13, + 2300, + 428310 + ], + [ + 0, + 5, + 14, + 2300, + 428310 + ], + [ + 0, + 5, + 15, + 2300, + 428310 + ], + [ + 0, + 5, + 16, + 2300, + 428310 + ], + [ + 0, + 5, + 17, + 2300, + 428310 + ], + [ + 0, + 5, + 18, + 2300, + 428310 + ], + [ + 0, + 5, + 19, + 2300, + 428310 + ], + [ + 0, + 5, + 20, + 2300, + 428310 + ], + [ + 0, + 5, + 21, + 2300, + 428310 + ], + [ + 0, + 5, + 22, + 2300, + 428310 + ], + [ + 0, + 6, + 7, + 2300, + 428310 + ], + [ + 0, + 6, + 8, + 2300, + 428310 + ], + [ + 0, + 6, + 9, + 2300, + 428310 + ], + [ + 0, + 6, + 10, + 2300, + 428310 + ], + [ + 0, + 6, + 11, + 2300, + 428310 + ], + [ + 0, + 6, + 12, + 2300, + 428310 + ], + [ + 0, + 6, + 13, + 2300, + 428310 + ], + [ + 0, + 6, + 14, + 2300, + 428310 + ], + [ + 0, + 6, + 15, + 2300, + 428310 + ], + [ + 0, + 6, + 16, + 2300, + 428310 + ], + [ + 0, + 6, + 17, + 2300, + 428310 + ], + [ + 0, + 6, + 18, + 2300, + 428310 + ], + [ + 0, + 6, + 19, + 2300, + 428310 + ], + [ + 0, + 6, + 20, + 2300, + 428310 + ], + [ + 0, + 6, + 21, + 2300, + 428310 + ], + [ + 0, + 6, + 22, + 2300, + 428310 + ], + [ + 0, + 7, + 8, + 2300, + 428310 + ], + [ + 0, + 7, + 9, + 2300, + 428310 + ], + [ + 0, + 7, + 10, + 2300, + 428310 + ], + [ + 0, + 7, + 11, + 2300, + 428310 + ], + [ + 0, + 7, + 12, + 2300, + 428310 + ], + [ + 0, + 7, + 13, + 2300, + 428310 + ], + [ + 0, + 7, + 14, + 2300, + 428310 + ], + [ + 0, + 7, + 15, + 2300, + 428310 + ], + [ + 0, + 7, + 16, + 2300, + 428310 + ], + [ + 0, + 7, + 17, + 2300, + 428310 + ], + [ + 0, + 7, + 18, + 2300, + 428310 + ], + [ + 0, + 7, + 19, + 2300, + 428310 + ], + [ + 0, + 7, + 20, + 2300, + 428310 + ], + [ + 0, + 7, + 21, + 2300, + 428310 + ], + [ + 0, + 7, + 22, + 2300, + 428310 + ], + [ + 0, + 8, + 9, + 2300, + 428310 + ], + [ + 0, + 8, + 10, + 2300, + 428310 + ], + [ + 0, + 8, + 11, + 2300, + 428310 + ], + [ + 0, + 8, + 12, + 2300, + 428310 + ], + [ + 0, + 8, + 13, + 2300, + 428310 + ], + [ + 0, + 8, + 14, + 2300, + 428310 + ], + [ + 0, + 8, + 15, + 2300, + 428310 + ], + [ + 0, + 8, + 16, + 2300, + 428310 + ], + [ + 0, + 8, + 17, + 2300, + 428310 + ], + [ + 0, + 8, + 18, + 2300, + 428310 + ], + [ + 0, + 8, + 19, + 2300, + 428310 + ], + [ + 0, + 8, + 20, + 2300, + 428310 + ], + [ + 0, + 8, + 21, + 2300, + 428310 + ], + [ + 0, + 8, + 22, + 2300, + 428310 + ], + [ + 0, + 9, + 10, + 2299, + 189775 + ], + [ + 0, + 9, + 11, + 2300, + 428310 + ], + [ + 0, + 9, + 12, + 2300, + 428310 + ], + [ + 0, + 9, + 13, + 2300, + 428310 + ], + [ + 0, + 9, + 14, + 2300, + 428310 + ], + [ + 0, + 9, + 15, + 2300, + 428310 + ], + [ + 0, + 9, + 16, + 2300, + 428310 + ], + [ + 0, + 9, + 17, + 2300, + 428310 + ], + [ + 0, + 9, + 18, + 2300, + 428310 + ], + [ + 0, + 9, + 19, + 2300, + 428310 + ], + [ + 0, + 9, + 20, + 2300, + 428310 + ], + [ + 0, + 9, + 21, + 2300, + 428310 + ], + [ + 0, + 9, + 22, + 2300, + 428310 + ], + [ + 0, + 10, + 11, + 2300, + 428310 + ], + [ + 0, + 10, + 12, + 2300, + 428310 + ], + [ + 0, + 10, + 13, + 2300, + 428310 + ], + [ + 0, + 10, + 14, + 2300, + 428310 + ], + [ + 0, + 10, + 15, + 2300, + 428310 + ], + [ + 0, + 10, + 16, + 2300, + 428310 + ], + [ + 0, + 10, + 17, + 2300, + 428310 + ], + [ + 0, + 10, + 18, + 2300, + 428310 + ], + [ + 0, + 10, + 19, + 2300, + 428310 + ], + [ + 0, + 10, + 20, + 2300, + 428310 + ], + [ + 0, + 10, + 21, + 2300, + 428310 + ], + [ + 0, + 10, + 22, + 2300, + 428310 + ], + [ + 0, + 11, + 12, + 2299, + 189775 + ], + [ + 0, + 11, + 13, + 2300, + 428310 + ], + [ + 0, + 11, + 14, + 2300, + 428310 + ], + [ + 0, + 11, + 15, + 2300, + 428310 + ], + [ + 0, + 11, + 16, + 2300, + 428310 + ], + [ + 0, + 11, + 17, + 2300, + 428310 + ], + [ + 0, + 11, + 18, + 2300, + 428310 + ], + [ + 0, + 11, + 19, + 2300, + 428310 + ], + [ + 0, + 11, + 20, + 2300, + 428310 + ], + [ + 0, + 11, + 21, + 2300, + 428310 + ], + [ + 0, + 11, + 22, + 2300, + 428310 + ], + [ + 0, + 12, + 13, + 2300, + 428310 + ], + [ + 0, + 12, + 14, + 2300, + 428310 + ], + [ + 0, + 12, + 15, + 2300, + 428310 + ], + [ + 0, + 12, + 16, + 2300, + 428310 + ], + [ + 0, + 12, + 17, + 2300, + 428310 + ], + [ + 0, + 12, + 18, + 2300, + 428310 + ], + [ + 0, + 12, + 19, + 2300, + 428310 + ], + [ + 0, + 12, + 20, + 2300, + 428310 + ], + [ + 0, + 12, + 21, + 2300, + 428310 + ], + [ + 0, + 12, + 22, + 2300, + 428310 + ], + [ + 0, + 13, + 14, + 2300, + 428310 + ], + [ + 0, + 13, + 15, + 2300, + 428310 + ], + [ + 0, + 13, + 16, + 2300, + 428310 + ], + [ + 0, + 13, + 17, + 2300, + 428310 + ], + [ + 0, + 13, + 18, + 2300, + 428310 + ], + [ + 0, + 13, + 19, + 2300, + 428310 + ], + [ + 0, + 13, + 20, + 2300, + 428310 + ], + [ + 0, + 13, + 21, + 2300, + 428310 + ], + [ + 0, + 13, + 22, + 2300, + 428310 + ], + [ + 0, + 14, + 15, + 2300, + 428310 + ], + [ + 0, + 14, + 16, + 2300, + 428310 + ], + [ + 0, + 14, + 17, + 2300, + 428310 + ], + [ + 0, + 14, + 18, + 2300, + 428310 + ], + [ + 0, + 14, + 19, + 2300, + 428310 + ], + [ + 0, + 14, + 20, + 2300, + 428310 + ], + [ + 0, + 14, + 21, + 2300, + 428310 + ], + [ + 0, + 14, + 22, + 2300, + 428310 + ], + [ + 0, + 15, + 16, + 2300, + 428310 + ], + [ + 0, + 15, + 17, + 2300, + 428310 + ], + [ + 0, + 15, + 18, + 2299, + 189775 + ], + [ + 0, + 15, + 19, + 2300, + 428310 + ], + [ + 0, + 15, + 20, + 2300, + 428310 + ], + [ + 0, + 15, + 21, + 2300, + 428310 + ], + [ + 0, + 15, + 22, + 2300, + 428310 + ], + [ + 0, + 16, + 17, + 2300, + 428310 + ], + [ + 0, + 16, + 18, + 2300, + 428310 + ], + [ + 0, + 16, + 19, + 2300, + 428310 + ], + [ + 0, + 16, + 20, + 2300, + 428310 + ], + [ + 0, + 16, + 21, + 2300, + 428310 + ], + [ + 0, + 16, + 22, + 2300, + 428310 + ], + [ + 0, + 17, + 18, + 2300, + 428310 + ], + [ + 0, + 17, + 19, + 2300, + 428310 + ], + [ + 0, + 17, + 20, + 2300, + 428310 + ], + [ + 0, + 17, + 21, + 2300, + 428310 + ], + [ + 0, + 17, + 22, + 2300, + 428310 + ], + [ + 0, + 18, + 19, + 2300, + 428310 + ], + [ + 0, + 18, + 20, + 2300, + 428310 + ], + [ + 0, + 18, + 21, + 2300, + 428310 + ], + [ + 0, + 18, + 22, + 2300, + 428310 + ], + [ + 0, + 19, + 20, + 2300, + 428310 + ], + [ + 0, + 19, + 21, + 2300, + 428310 + ], + [ + 0, + 19, + 22, + 2300, + 428310 + ], + [ + 0, + 20, + 21, + 2300, + 428310 + ], + [ + 0, + 20, + 22, + 2300, + 428310 + ], + [ + 0, + 21, + 22, + 2300, + 428310 + ], + [ + 1, + 2, + 3, + 2300, + 428310 + ], + [ + 1, + 2, + 4, + 2300, + 428310 + ], + [ + 1, + 2, + 5, + 2300, + 428310 + ], + [ + 1, + 2, + 6, + 2300, + 428310 + ], + [ + 1, + 2, + 7, + 2300, + 428310 + ], + [ + 1, + 2, + 8, + 2300, + 428310 + ], + [ + 1, + 2, + 9, + 2300, + 428310 + ], + [ + 1, + 2, + 10, + 2300, + 428310 + ], + [ + 1, + 2, + 11, + 2300, + 428310 + ], + [ + 1, + 2, + 12, + 2300, + 428310 + ], + [ + 1, + 2, + 13, + 2300, + 428310 + ], + [ + 1, + 2, + 14, + 2300, + 428310 + ], + [ + 1, + 2, + 15, + 2300, + 428310 + ], + [ + 1, + 2, + 16, + 2300, + 428310 + ], + [ + 1, + 2, + 17, + 2300, + 428310 + ], + [ + 1, + 2, + 18, + 2300, + 428310 + ], + [ + 1, + 2, + 19, + 2300, + 428310 + ], + [ + 1, + 2, + 20, + 2300, + 428310 + ], + [ + 1, + 2, + 21, + 2300, + 428310 + ], + [ + 1, + 2, + 22, + 2300, + 428310 + ], + [ + 1, + 3, + 4, + 2300, + 428310 + ], + [ + 1, + 3, + 5, + 2300, + 428310 + ], + [ + 1, + 3, + 6, + 2300, + 428310 + ], + [ + 1, + 3, + 7, + 2300, + 428310 + ], + [ + 1, + 3, + 8, + 2300, + 428310 + ], + [ + 1, + 3, + 9, + 2300, + 428310 + ], + [ + 1, + 3, + 10, + 2300, + 428310 + ], + [ + 1, + 3, + 11, + 2300, + 428310 + ], + [ + 1, + 3, + 12, + 2300, + 428310 + ], + [ + 1, + 3, + 13, + 2300, + 428310 + ], + [ + 1, + 3, + 14, + 2300, + 428310 + ], + [ + 1, + 3, + 15, + 2300, + 428310 + ], + [ + 1, + 3, + 16, + 2300, + 428310 + ], + [ + 1, + 3, + 17, + 2300, + 428310 + ], + [ + 1, + 3, + 18, + 2300, + 428310 + ], + [ + 1, + 3, + 19, + 2300, + 428310 + ], + [ + 1, + 3, + 20, + 2300, + 428310 + ], + [ + 1, + 3, + 21, + 2300, + 428310 + ], + [ + 1, + 3, + 22, + 2300, + 428310 + ], + [ + 1, + 4, + 5, + 2300, + 428310 + ], + [ + 1, + 4, + 6, + 2300, + 428310 + ], + [ + 1, + 4, + 7, + 2300, + 428310 + ], + [ + 1, + 4, + 8, + 2300, + 428310 + ], + [ + 1, + 4, + 9, + 2300, + 428310 + ], + [ + 1, + 4, + 10, + 2300, + 428310 + ], + [ + 1, + 4, + 11, + 2300, + 428310 + ], + [ + 1, + 4, + 12, + 2300, + 428310 + ], + [ + 1, + 4, + 13, + 2300, + 428310 + ], + [ + 1, + 4, + 14, + 2300, + 428310 + ], + [ + 1, + 4, + 15, + 2300, + 428310 + ], + [ + 1, + 4, + 16, + 2300, + 428310 + ], + [ + 1, + 4, + 17, + 2300, + 428310 + ], + [ + 1, + 4, + 18, + 2300, + 428310 + ], + [ + 1, + 4, + 19, + 2300, + 428310 + ], + [ + 1, + 4, + 20, + 2300, + 428310 + ], + [ + 1, + 4, + 21, + 2300, + 428310 + ], + [ + 1, + 4, + 22, + 2300, + 428310 + ], + [ + 1, + 5, + 6, + 2300, + 428310 + ], + [ + 1, + 5, + 7, + 2300, + 428310 + ], + [ + 1, + 5, + 8, + 2300, + 428310 + ], + [ + 1, + 5, + 9, + 2300, + 428310 + ], + [ + 1, + 5, + 10, + 2300, + 428310 + ], + [ + 1, + 5, + 11, + 2300, + 428310 + ], + [ + 1, + 5, + 12, + 2300, + 428310 + ], + [ + 1, + 5, + 13, + 2300, + 428310 + ], + [ + 1, + 5, + 14, + 2300, + 428310 + ], + [ + 1, + 5, + 15, + 2300, + 428310 + ], + [ + 1, + 5, + 16, + 2300, + 428310 + ], + [ + 1, + 5, + 17, + 2300, + 428310 + ], + [ + 1, + 5, + 18, + 2300, + 428310 + ], + [ + 1, + 5, + 19, + 2300, + 428310 + ], + [ + 1, + 5, + 20, + 2300, + 428310 + ], + [ + 1, + 5, + 21, + 2300, + 428310 + ], + [ + 1, + 5, + 22, + 2300, + 428310 + ], + [ + 1, + 6, + 7, + 2300, + 428310 + ], + [ + 1, + 6, + 8, + 2300, + 428310 + ], + [ + 1, + 6, + 9, + 2300, + 428310 + ], + [ + 1, + 6, + 10, + 2300, + 428310 + ], + [ + 1, + 6, + 11, + 2300, + 428310 + ], + [ + 1, + 6, + 12, + 2300, + 428310 + ], + [ + 1, + 6, + 13, + 2300, + 428310 + ], + [ + 1, + 6, + 14, + 2300, + 428310 + ], + [ + 1, + 6, + 15, + 2300, + 428310 + ], + [ + 1, + 6, + 16, + 2300, + 428310 + ], + [ + 1, + 6, + 17, + 2300, + 428310 + ], + [ + 1, + 6, + 18, + 2300, + 428310 + ], + [ + 1, + 6, + 19, + 2300, + 428310 + ], + [ + 1, + 6, + 20, + 2300, + 428310 + ], + [ + 1, + 6, + 21, + 2300, + 428310 + ], + [ + 1, + 6, + 22, + 2300, + 428310 + ], + [ + 1, + 7, + 8, + 2300, + 428310 + ], + [ + 1, + 7, + 9, + 2300, + 428310 + ], + [ + 1, + 7, + 10, + 2300, + 428310 + ], + [ + 1, + 7, + 11, + 2300, + 428310 + ], + [ + 1, + 7, + 12, + 2300, + 428310 + ], + [ + 1, + 7, + 13, + 2300, + 428310 + ], + [ + 1, + 7, + 14, + 2300, + 428310 + ], + [ + 1, + 7, + 15, + 2300, + 428310 + ], + [ + 1, + 7, + 16, + 2300, + 428310 + ], + [ + 1, + 7, + 17, + 2300, + 428310 + ], + [ + 1, + 7, + 18, + 2300, + 428310 + ], + [ + 1, + 7, + 19, + 2300, + 428310 + ], + [ + 1, + 7, + 20, + 2300, + 428310 + ], + [ + 1, + 7, + 21, + 2300, + 428310 + ], + [ + 1, + 7, + 22, + 2300, + 428310 + ], + [ + 1, + 8, + 9, + 2300, + 428310 + ], + [ + 1, + 8, + 10, + 2300, + 428310 + ], + [ + 1, + 8, + 11, + 2300, + 428310 + ], + [ + 1, + 8, + 12, + 2300, + 428310 + ], + [ + 1, + 8, + 13, + 2300, + 428310 + ], + [ + 1, + 8, + 14, + 2300, + 428310 + ], + [ + 1, + 8, + 15, + 2300, + 428310 + ], + [ + 1, + 8, + 16, + 2300, + 428310 + ], + [ + 1, + 8, + 17, + 2300, + 428310 + ], + [ + 1, + 8, + 18, + 2300, + 428310 + ], + [ + 1, + 8, + 19, + 2300, + 428310 + ], + [ + 1, + 8, + 20, + 2300, + 428310 + ], + [ + 1, + 8, + 21, + 2300, + 428310 + ], + [ + 1, + 8, + 22, + 2300, + 428310 + ], + [ + 1, + 9, + 10, + 2300, + 428310 + ], + [ + 1, + 9, + 11, + 2300, + 428310 + ], + [ + 1, + 9, + 12, + 2300, + 428310 + ], + [ + 1, + 9, + 13, + 2300, + 428310 + ], + [ + 1, + 9, + 14, + 2300, + 428310 + ], + [ + 1, + 9, + 15, + 2300, + 428310 + ], + [ + 1, + 9, + 16, + 2300, + 428310 + ], + [ + 1, + 9, + 17, + 2300, + 428310 + ], + [ + 1, + 9, + 18, + 2300, + 428310 + ], + [ + 1, + 9, + 19, + 2300, + 428310 + ], + [ + 1, + 9, + 20, + 2300, + 428310 + ], + [ + 1, + 9, + 21, + 2300, + 428310 + ], + [ + 1, + 9, + 22, + 2300, + 428310 + ], + [ + 1, + 10, + 11, + 2300, + 428310 + ], + [ + 1, + 10, + 12, + 2300, + 428310 + ], + [ + 1, + 10, + 13, + 2300, + 428310 + ], + [ + 1, + 10, + 14, + 2300, + 428310 + ], + [ + 1, + 10, + 15, + 2300, + 428310 + ], + [ + 1, + 10, + 16, + 2300, + 428310 + ], + [ + 1, + 10, + 17, + 2300, + 428310 + ], + [ + 1, + 10, + 18, + 2300, + 428310 + ], + [ + 1, + 10, + 19, + 2300, + 428310 + ], + [ + 1, + 10, + 20, + 2300, + 428310 + ], + [ + 1, + 10, + 21, + 2300, + 428310 + ], + [ + 1, + 10, + 22, + 2300, + 428310 + ], + [ + 1, + 11, + 12, + 2300, + 428310 + ], + [ + 1, + 11, + 13, + 2300, + 428310 + ], + [ + 1, + 11, + 14, + 2300, + 428310 + ], + [ + 1, + 11, + 15, + 2300, + 428310 + ], + [ + 1, + 11, + 16, + 2300, + 428310 + ], + [ + 1, + 11, + 17, + 2300, + 428310 + ], + [ + 1, + 11, + 18, + 2300, + 428310 + ], + [ + 1, + 11, + 19, + 2300, + 428310 + ], + [ + 1, + 11, + 20, + 2300, + 428310 + ], + [ + 1, + 11, + 21, + 2300, + 428310 + ], + [ + 1, + 11, + 22, + 2300, + 428310 + ], + [ + 1, + 12, + 13, + 2300, + 428310 + ], + [ + 1, + 12, + 14, + 2300, + 428310 + ], + [ + 1, + 12, + 15, + 2300, + 428310 + ], + [ + 1, + 12, + 16, + 2300, + 428310 + ], + [ + 1, + 12, + 17, + 2300, + 428310 + ], + [ + 1, + 12, + 18, + 2300, + 428310 + ], + [ + 1, + 12, + 19, + 2300, + 428310 + ], + [ + 1, + 12, + 20, + 2300, + 428310 + ], + [ + 1, + 12, + 21, + 2300, + 428310 + ], + [ + 1, + 12, + 22, + 2300, + 428310 + ], + [ + 1, + 13, + 14, + 2300, + 428310 + ], + [ + 1, + 13, + 15, + 2300, + 428310 + ], + [ + 1, + 13, + 16, + 2300, + 428310 + ], + [ + 1, + 13, + 17, + 2300, + 428310 + ], + [ + 1, + 13, + 18, + 2300, + 428310 + ], + [ + 1, + 13, + 19, + 2300, + 428310 + ], + [ + 1, + 13, + 20, + 2300, + 428310 + ], + [ + 1, + 13, + 21, + 2300, + 428310 + ], + [ + 1, + 13, + 22, + 2300, + 428310 + ], + [ + 1, + 14, + 15, + 2300, + 428310 + ], + [ + 1, + 14, + 16, + 2300, + 428310 + ], + [ + 1, + 14, + 17, + 2300, + 428310 + ], + [ + 1, + 14, + 18, + 2300, + 428310 + ], + [ + 1, + 14, + 19, + 2300, + 428310 + ], + [ + 1, + 14, + 20, + 2300, + 428310 + ], + [ + 1, + 14, + 21, + 2300, + 428310 + ], + [ + 1, + 14, + 22, + 2300, + 428310 + ], + [ + 1, + 15, + 16, + 2300, + 428310 + ], + [ + 1, + 15, + 17, + 2299, + 189775 + ], + [ + 1, + 15, + 18, + 2300, + 428310 + ], + [ + 1, + 15, + 19, + 2300, + 428310 + ], + [ + 1, + 15, + 20, + 2300, + 428310 + ], + [ + 1, + 15, + 21, + 2300, + 428310 + ], + [ + 1, + 15, + 22, + 2300, + 428310 + ], + [ + 1, + 16, + 17, + 2300, + 428310 + ], + [ + 1, + 16, + 18, + 2300, + 428310 + ], + [ + 1, + 16, + 19, + 2300, + 428310 + ], + [ + 1, + 16, + 20, + 2300, + 428310 + ], + [ + 1, + 16, + 21, + 2300, + 428310 + ], + [ + 1, + 16, + 22, + 2300, + 428310 + ], + [ + 1, + 17, + 18, + 2300, + 428310 + ], + [ + 1, + 17, + 19, + 2300, + 428310 + ], + [ + 1, + 17, + 20, + 2300, + 428310 + ], + [ + 1, + 17, + 21, + 2300, + 428310 + ], + [ + 1, + 17, + 22, + 2300, + 428310 + ], + [ + 1, + 18, + 19, + 2300, + 428310 + ], + [ + 1, + 18, + 20, + 2300, + 428310 + ], + [ + 1, + 18, + 21, + 2300, + 428310 + ], + [ + 1, + 18, + 22, + 2300, + 428310 + ], + [ + 1, + 19, + 20, + 2300, + 428310 + ], + [ + 1, + 19, + 21, + 2300, + 428310 + ], + [ + 1, + 19, + 22, + 2300, + 428310 + ], + [ + 1, + 20, + 21, + 2300, + 428310 + ], + [ + 1, + 20, + 22, + 2300, + 428310 + ], + [ + 1, + 21, + 22, + 2300, + 428310 + ], + [ + 2, + 3, + 4, + 2300, + 428310 + ], + [ + 2, + 3, + 5, + 2300, + 428310 + ], + [ + 2, + 3, + 6, + 2300, + 428310 + ], + [ + 2, + 3, + 7, + 2300, + 428310 + ], + [ + 2, + 3, + 8, + 2300, + 428310 + ], + [ + 2, + 3, + 9, + 2300, + 428310 + ], + [ + 2, + 3, + 10, + 2300, + 428310 + ], + [ + 2, + 3, + 11, + 2300, + 428310 + ], + [ + 2, + 3, + 12, + 2300, + 428310 + ], + [ + 2, + 3, + 13, + 2300, + 428310 + ], + [ + 2, + 3, + 14, + 2300, + 428310 + ], + [ + 2, + 3, + 15, + 2300, + 428310 + ], + [ + 2, + 3, + 16, + 2300, + 428310 + ], + [ + 2, + 3, + 17, + 2300, + 428310 + ], + [ + 2, + 3, + 18, + 2300, + 428310 + ], + [ + 2, + 3, + 19, + 2300, + 428310 + ], + [ + 2, + 3, + 20, + 2300, + 428310 + ], + [ + 2, + 3, + 21, + 2300, + 428310 + ], + [ + 2, + 3, + 22, + 2300, + 428310 + ], + [ + 2, + 4, + 5, + 2300, + 428310 + ], + [ + 2, + 4, + 6, + 2300, + 428310 + ], + [ + 2, + 4, + 7, + 2300, + 428310 + ], + [ + 2, + 4, + 8, + 2300, + 428310 + ], + [ + 2, + 4, + 9, + 2300, + 428310 + ], + [ + 2, + 4, + 10, + 2300, + 428310 + ], + [ + 2, + 4, + 11, + 2300, + 428310 + ], + [ + 2, + 4, + 12, + 2300, + 428310 + ], + [ + 2, + 4, + 13, + 2300, + 428310 + ], + [ + 2, + 4, + 14, + 2300, + 428310 + ], + [ + 2, + 4, + 15, + 2300, + 428310 + ], + [ + 2, + 4, + 16, + 2300, + 428310 + ], + [ + 2, + 4, + 17, + 2300, + 428310 + ], + [ + 2, + 4, + 18, + 2300, + 428310 + ], + [ + 2, + 4, + 19, + 2300, + 428310 + ], + [ + 2, + 4, + 20, + 2300, + 428310 + ], + [ + 2, + 4, + 21, + 2300, + 428310 + ], + [ + 2, + 4, + 22, + 2300, + 428310 + ], + [ + 2, + 5, + 6, + 2300, + 428310 + ], + [ + 2, + 5, + 7, + 2300, + 428310 + ], + [ + 2, + 5, + 8, + 2300, + 428310 + ], + [ + 2, + 5, + 9, + 2300, + 428310 + ], + [ + 2, + 5, + 10, + 2300, + 428310 + ], + [ + 2, + 5, + 11, + 2300, + 428310 + ], + [ + 2, + 5, + 12, + 2300, + 428310 + ], + [ + 2, + 5, + 13, + 2300, + 428310 + ], + [ + 2, + 5, + 14, + 2300, + 428310 + ], + [ + 2, + 5, + 15, + 2300, + 428310 + ], + [ + 2, + 5, + 16, + 2300, + 428310 + ], + [ + 2, + 5, + 17, + 2300, + 428310 + ], + [ + 2, + 5, + 18, + 2300, + 428310 + ], + [ + 2, + 5, + 19, + 2300, + 428310 + ], + [ + 2, + 5, + 20, + 2300, + 428310 + ], + [ + 2, + 5, + 21, + 2300, + 428310 + ], + [ + 2, + 5, + 22, + 2300, + 428310 + ], + [ + 2, + 6, + 7, + 2300, + 428310 + ], + [ + 2, + 6, + 8, + 2300, + 428310 + ], + [ + 2, + 6, + 9, + 2300, + 428310 + ], + [ + 2, + 6, + 10, + 2300, + 428310 + ], + [ + 2, + 6, + 11, + 2300, + 428310 + ], + [ + 2, + 6, + 12, + 2300, + 428310 + ], + [ + 2, + 6, + 13, + 2300, + 428310 + ], + [ + 2, + 6, + 14, + 2300, + 428310 + ], + [ + 2, + 6, + 15, + 2300, + 428310 + ], + [ + 2, + 6, + 16, + 2300, + 428310 + ], + [ + 2, + 6, + 17, + 2300, + 428310 + ], + [ + 2, + 6, + 18, + 2300, + 428310 + ], + [ + 2, + 6, + 19, + 2300, + 428310 + ], + [ + 2, + 6, + 20, + 2300, + 428310 + ], + [ + 2, + 6, + 21, + 2300, + 428310 + ], + [ + 2, + 6, + 22, + 2300, + 428310 + ], + [ + 2, + 7, + 8, + 2300, + 428310 + ], + [ + 2, + 7, + 9, + 2300, + 428310 + ], + [ + 2, + 7, + 10, + 2300, + 428310 + ], + [ + 2, + 7, + 11, + 2300, + 428310 + ], + [ + 2, + 7, + 12, + 2300, + 428310 + ], + [ + 2, + 7, + 13, + 2300, + 428310 + ], + [ + 2, + 7, + 14, + 2300, + 428310 + ], + [ + 2, + 7, + 15, + 2300, + 428310 + ], + [ + 2, + 7, + 16, + 2300, + 428310 + ], + [ + 2, + 7, + 17, + 2300, + 428310 + ], + [ + 2, + 7, + 18, + 2300, + 428310 + ], + [ + 2, + 7, + 19, + 2300, + 428310 + ], + [ + 2, + 7, + 20, + 2300, + 428310 + ], + [ + 2, + 7, + 21, + 2300, + 428310 + ], + [ + 2, + 7, + 22, + 2300, + 428310 + ], + [ + 2, + 8, + 9, + 2300, + 428310 + ], + [ + 2, + 8, + 10, + 2300, + 428310 + ], + [ + 2, + 8, + 11, + 2300, + 428310 + ], + [ + 2, + 8, + 12, + 2300, + 428310 + ], + [ + 2, + 8, + 13, + 2300, + 428310 + ], + [ + 2, + 8, + 14, + 2300, + 428310 + ], + [ + 2, + 8, + 15, + 2300, + 428310 + ], + [ + 2, + 8, + 16, + 2300, + 428310 + ], + [ + 2, + 8, + 17, + 2300, + 428310 + ], + [ + 2, + 8, + 18, + 2300, + 428310 + ], + [ + 2, + 8, + 19, + 2300, + 428310 + ], + [ + 2, + 8, + 20, + 2300, + 428310 + ], + [ + 2, + 8, + 21, + 2300, + 428310 + ], + [ + 2, + 8, + 22, + 2300, + 428310 + ], + [ + 2, + 9, + 10, + 2300, + 428310 + ], + [ + 2, + 9, + 11, + 2300, + 428310 + ], + [ + 2, + 9, + 12, + 2300, + 428310 + ], + [ + 2, + 9, + 13, + 2300, + 428310 + ], + [ + 2, + 9, + 14, + 2300, + 428310 + ], + [ + 2, + 9, + 15, + 2300, + 428310 + ], + [ + 2, + 9, + 16, + 2300, + 428310 + ], + [ + 2, + 9, + 17, + 2300, + 428310 + ], + [ + 2, + 9, + 18, + 2300, + 428310 + ], + [ + 2, + 9, + 19, + 2300, + 428310 + ], + [ + 2, + 9, + 20, + 2300, + 428310 + ], + [ + 2, + 9, + 21, + 2300, + 428310 + ], + [ + 2, + 9, + 22, + 2300, + 428310 + ], + [ + 2, + 10, + 11, + 2300, + 428310 + ], + [ + 2, + 10, + 12, + 2300, + 428310 + ], + [ + 2, + 10, + 13, + 2300, + 428310 + ], + [ + 2, + 10, + 14, + 2300, + 428310 + ], + [ + 2, + 10, + 15, + 2300, + 428310 + ], + [ + 2, + 10, + 16, + 2300, + 428310 + ], + [ + 2, + 10, + 17, + 2300, + 428310 + ], + [ + 2, + 10, + 18, + 2300, + 428310 + ], + [ + 2, + 10, + 19, + 2300, + 428310 + ], + [ + 2, + 10, + 20, + 2300, + 428310 + ], + [ + 2, + 10, + 21, + 2300, + 428310 + ], + [ + 2, + 10, + 22, + 2300, + 428310 + ], + [ + 2, + 11, + 12, + 2300, + 428310 + ], + [ + 2, + 11, + 13, + 2300, + 428310 + ], + [ + 2, + 11, + 14, + 2300, + 428310 + ], + [ + 2, + 11, + 15, + 2300, + 428310 + ], + [ + 2, + 11, + 16, + 2300, + 428310 + ], + [ + 2, + 11, + 17, + 2300, + 428310 + ], + [ + 2, + 11, + 18, + 2299, + 189775 + ], + [ + 2, + 11, + 19, + 2300, + 428310 + ], + [ + 2, + 11, + 20, + 2300, + 428310 + ], + [ + 2, + 11, + 21, + 2300, + 428310 + ], + [ + 2, + 11, + 22, + 2300, + 428310 + ], + [ + 2, + 12, + 13, + 2300, + 428310 + ], + [ + 2, + 12, + 14, + 2300, + 428310 + ], + [ + 2, + 12, + 15, + 2300, + 428310 + ], + [ + 2, + 12, + 16, + 2300, + 428310 + ], + [ + 2, + 12, + 17, + 2300, + 428310 + ], + [ + 2, + 12, + 18, + 2300, + 428310 + ], + [ + 2, + 12, + 19, + 2300, + 428310 + ], + [ + 2, + 12, + 20, + 2300, + 428310 + ], + [ + 2, + 12, + 21, + 2300, + 428310 + ], + [ + 2, + 12, + 22, + 2300, + 428310 + ], + [ + 2, + 13, + 14, + 2300, + 428310 + ], + [ + 2, + 13, + 15, + 2300, + 428310 + ], + [ + 2, + 13, + 16, + 2300, + 428310 + ], + [ + 2, + 13, + 17, + 2300, + 428310 + ], + [ + 2, + 13, + 18, + 2300, + 428310 + ], + [ + 2, + 13, + 19, + 2300, + 428310 + ], + [ + 2, + 13, + 20, + 2300, + 428310 + ], + [ + 2, + 13, + 21, + 2300, + 428310 + ], + [ + 2, + 13, + 22, + 2300, + 428310 + ], + [ + 2, + 14, + 15, + 2300, + 428310 + ], + [ + 2, + 14, + 16, + 2300, + 428310 + ], + [ + 2, + 14, + 17, + 2300, + 428310 + ], + [ + 2, + 14, + 18, + 2300, + 428310 + ], + [ + 2, + 14, + 19, + 2300, + 428310 + ], + [ + 2, + 14, + 20, + 2300, + 428310 + ], + [ + 2, + 14, + 21, + 2300, + 428310 + ], + [ + 2, + 14, + 22, + 2300, + 428310 + ], + [ + 2, + 15, + 16, + 2300, + 428310 + ], + [ + 2, + 15, + 17, + 2300, + 428310 + ], + [ + 2, + 15, + 18, + 2300, + 428310 + ], + [ + 2, + 15, + 19, + 2300, + 428310 + ], + [ + 2, + 15, + 20, + 2300, + 428310 + ], + [ + 2, + 15, + 21, + 2300, + 428310 + ], + [ + 2, + 15, + 22, + 2300, + 428310 + ], + [ + 2, + 16, + 17, + 2300, + 428310 + ], + [ + 2, + 16, + 18, + 2300, + 428310 + ], + [ + 2, + 16, + 19, + 2300, + 428310 + ], + [ + 2, + 16, + 20, + 2300, + 428310 + ], + [ + 2, + 16, + 21, + 2300, + 428310 + ], + [ + 2, + 16, + 22, + 2300, + 428310 + ], + [ + 2, + 17, + 18, + 2300, + 428310 + ], + [ + 2, + 17, + 19, + 2300, + 428310 + ], + [ + 2, + 17, + 20, + 2300, + 428310 + ], + [ + 2, + 17, + 21, + 2300, + 428310 + ], + [ + 2, + 17, + 22, + 2300, + 428310 + ], + [ + 2, + 18, + 19, + 2300, + 428310 + ], + [ + 2, + 18, + 20, + 2300, + 428310 + ], + [ + 2, + 18, + 21, + 2300, + 428310 + ], + [ + 2, + 18, + 22, + 2300, + 428310 + ], + [ + 2, + 19, + 20, + 2300, + 428310 + ], + [ + 2, + 19, + 21, + 2300, + 428310 + ], + [ + 2, + 19, + 22, + 2300, + 428310 + ], + [ + 2, + 20, + 21, + 2300, + 428310 + ], + [ + 2, + 20, + 22, + 2300, + 428310 + ], + [ + 2, + 21, + 22, + 2300, + 428310 + ], + [ + 3, + 4, + 5, + 2300, + 428310 + ], + [ + 3, + 4, + 6, + 2300, + 428310 + ], + [ + 3, + 4, + 7, + 2300, + 428310 + ], + [ + 3, + 4, + 8, + 2300, + 428310 + ], + [ + 3, + 4, + 9, + 2300, + 428310 + ], + [ + 3, + 4, + 10, + 2300, + 428310 + ], + [ + 3, + 4, + 11, + 2300, + 428310 + ], + [ + 3, + 4, + 12, + 2300, + 428310 + ], + [ + 3, + 4, + 13, + 2300, + 428310 + ], + [ + 3, + 4, + 14, + 2300, + 428310 + ], + [ + 3, + 4, + 15, + 2300, + 428310 + ], + [ + 3, + 4, + 16, + 2300, + 428310 + ], + [ + 3, + 4, + 17, + 2300, + 428310 + ], + [ + 3, + 4, + 18, + 2300, + 428310 + ], + [ + 3, + 4, + 19, + 2300, + 428310 + ], + [ + 3, + 4, + 20, + 2300, + 428310 + ], + [ + 3, + 4, + 21, + 2300, + 428310 + ], + [ + 3, + 4, + 22, + 2300, + 428310 + ], + [ + 3, + 5, + 6, + 2300, + 428310 + ], + [ + 3, + 5, + 7, + 2300, + 428310 + ], + [ + 3, + 5, + 8, + 2300, + 428310 + ], + [ + 3, + 5, + 9, + 2300, + 428310 + ], + [ + 3, + 5, + 10, + 2300, + 428310 + ], + [ + 3, + 5, + 11, + 2300, + 428310 + ], + [ + 3, + 5, + 12, + 2300, + 428310 + ], + [ + 3, + 5, + 13, + 2300, + 428310 + ], + [ + 3, + 5, + 14, + 2300, + 428310 + ], + [ + 3, + 5, + 15, + 2300, + 428310 + ], + [ + 3, + 5, + 16, + 2300, + 428310 + ], + [ + 3, + 5, + 17, + 2300, + 428310 + ], + [ + 3, + 5, + 18, + 2300, + 428310 + ], + [ + 3, + 5, + 19, + 2300, + 428310 + ], + [ + 3, + 5, + 20, + 2300, + 428310 + ], + [ + 3, + 5, + 21, + 2300, + 428310 + ], + [ + 3, + 5, + 22, + 2300, + 428310 + ], + [ + 3, + 6, + 7, + 2300, + 428310 + ], + [ + 3, + 6, + 8, + 2300, + 428310 + ], + [ + 3, + 6, + 9, + 2300, + 428310 + ], + [ + 3, + 6, + 10, + 2300, + 428310 + ], + [ + 3, + 6, + 11, + 2300, + 428310 + ], + [ + 3, + 6, + 12, + 2300, + 428310 + ], + [ + 3, + 6, + 13, + 2300, + 428310 + ], + [ + 3, + 6, + 14, + 2300, + 428310 + ], + [ + 3, + 6, + 15, + 2300, + 428310 + ], + [ + 3, + 6, + 16, + 2300, + 428310 + ], + [ + 3, + 6, + 17, + 2300, + 428310 + ], + [ + 3, + 6, + 18, + 2300, + 428310 + ], + [ + 3, + 6, + 19, + 2300, + 428310 + ], + [ + 3, + 6, + 20, + 2300, + 428310 + ], + [ + 3, + 6, + 21, + 2300, + 428310 + ], + [ + 3, + 6, + 22, + 2300, + 428310 + ], + [ + 3, + 7, + 8, + 2300, + 428310 + ], + [ + 3, + 7, + 9, + 2300, + 428310 + ], + [ + 3, + 7, + 10, + 2300, + 428310 + ], + [ + 3, + 7, + 11, + 2300, + 428310 + ], + [ + 3, + 7, + 12, + 2300, + 428310 + ], + [ + 3, + 7, + 13, + 2300, + 428310 + ], + [ + 3, + 7, + 14, + 2300, + 428310 + ], + [ + 3, + 7, + 15, + 2300, + 428310 + ], + [ + 3, + 7, + 16, + 2300, + 428310 + ], + [ + 3, + 7, + 17, + 2300, + 428310 + ], + [ + 3, + 7, + 18, + 2300, + 428310 + ], + [ + 3, + 7, + 19, + 2300, + 428310 + ], + [ + 3, + 7, + 20, + 2300, + 428310 + ], + [ + 3, + 7, + 21, + 2300, + 428310 + ], + [ + 3, + 7, + 22, + 2300, + 428310 + ], + [ + 3, + 8, + 9, + 2300, + 428310 + ], + [ + 3, + 8, + 10, + 2300, + 428310 + ], + [ + 3, + 8, + 11, + 2300, + 428310 + ], + [ + 3, + 8, + 12, + 2300, + 428310 + ], + [ + 3, + 8, + 13, + 2300, + 428310 + ], + [ + 3, + 8, + 14, + 2300, + 428310 + ], + [ + 3, + 8, + 15, + 2300, + 428310 + ], + [ + 3, + 8, + 16, + 2300, + 428310 + ], + [ + 3, + 8, + 17, + 2300, + 428310 + ], + [ + 3, + 8, + 18, + 2300, + 428310 + ], + [ + 3, + 8, + 19, + 2300, + 428310 + ], + [ + 3, + 8, + 20, + 2300, + 428310 + ], + [ + 3, + 8, + 21, + 2300, + 428310 + ], + [ + 3, + 8, + 22, + 2300, + 428310 + ], + [ + 3, + 9, + 10, + 2300, + 428310 + ], + [ + 3, + 9, + 11, + 2300, + 428310 + ], + [ + 3, + 9, + 12, + 2300, + 428310 + ], + [ + 3, + 9, + 13, + 2300, + 428310 + ], + [ + 3, + 9, + 14, + 2300, + 428310 + ], + [ + 3, + 9, + 15, + 2300, + 428310 + ], + [ + 3, + 9, + 16, + 2300, + 428310 + ], + [ + 3, + 9, + 17, + 2300, + 428310 + ], + [ + 3, + 9, + 18, + 2300, + 428310 + ], + [ + 3, + 9, + 19, + 2300, + 428310 + ], + [ + 3, + 9, + 20, + 2300, + 428310 + ], + [ + 3, + 9, + 21, + 2300, + 428310 + ], + [ + 3, + 9, + 22, + 2300, + 428310 + ], + [ + 3, + 10, + 11, + 2300, + 428310 + ], + [ + 3, + 10, + 12, + 2300, + 428310 + ], + [ + 3, + 10, + 13, + 2300, + 428310 + ], + [ + 3, + 10, + 14, + 2300, + 428310 + ], + [ + 3, + 10, + 15, + 2300, + 428310 + ], + [ + 3, + 10, + 16, + 2300, + 428310 + ], + [ + 3, + 10, + 17, + 2300, + 428310 + ], + [ + 3, + 10, + 18, + 2300, + 428310 + ], + [ + 3, + 10, + 19, + 2300, + 428310 + ], + [ + 3, + 10, + 20, + 2300, + 428310 + ], + [ + 3, + 10, + 21, + 2300, + 428310 + ], + [ + 3, + 10, + 22, + 2300, + 428310 + ], + [ + 3, + 11, + 12, + 2300, + 428310 + ], + [ + 3, + 11, + 13, + 2300, + 428310 + ], + [ + 3, + 11, + 14, + 2300, + 428310 + ], + [ + 3, + 11, + 15, + 2300, + 428310 + ], + [ + 3, + 11, + 16, + 2300, + 428310 + ], + [ + 3, + 11, + 17, + 2300, + 428310 + ], + [ + 3, + 11, + 18, + 2300, + 428310 + ], + [ + 3, + 11, + 19, + 2300, + 428310 + ], + [ + 3, + 11, + 20, + 2300, + 428310 + ], + [ + 3, + 11, + 21, + 2300, + 428310 + ], + [ + 3, + 11, + 22, + 2300, + 428310 + ], + [ + 3, + 12, + 13, + 2300, + 428310 + ], + [ + 3, + 12, + 14, + 2300, + 428310 + ], + [ + 3, + 12, + 15, + 2300, + 428310 + ], + [ + 3, + 12, + 16, + 2300, + 428310 + ], + [ + 3, + 12, + 17, + 2300, + 428310 + ], + [ + 3, + 12, + 18, + 2300, + 428310 + ], + [ + 3, + 12, + 19, + 2300, + 428310 + ], + [ + 3, + 12, + 20, + 2300, + 428310 + ], + [ + 3, + 12, + 21, + 2300, + 428310 + ], + [ + 3, + 12, + 22, + 2300, + 428310 + ], + [ + 3, + 13, + 14, + 2300, + 428310 + ], + [ + 3, + 13, + 15, + 2300, + 428310 + ], + [ + 3, + 13, + 16, + 2300, + 428310 + ], + [ + 3, + 13, + 17, + 2300, + 428310 + ], + [ + 3, + 13, + 18, + 2300, + 428310 + ], + [ + 3, + 13, + 19, + 2300, + 428310 + ], + [ + 3, + 13, + 20, + 2300, + 428310 + ], + [ + 3, + 13, + 21, + 2300, + 428310 + ], + [ + 3, + 13, + 22, + 2300, + 428310 + ], + [ + 3, + 14, + 15, + 2300, + 428310 + ], + [ + 3, + 14, + 16, + 2300, + 428310 + ], + [ + 3, + 14, + 17, + 2300, + 428310 + ], + [ + 3, + 14, + 18, + 2300, + 428310 + ], + [ + 3, + 14, + 19, + 2300, + 428310 + ], + [ + 3, + 14, + 20, + 2300, + 428310 + ], + [ + 3, + 14, + 21, + 2300, + 428310 + ], + [ + 3, + 14, + 22, + 2300, + 428310 + ], + [ + 3, + 15, + 16, + 2300, + 428310 + ], + [ + 3, + 15, + 17, + 2300, + 428310 + ], + [ + 3, + 15, + 18, + 2300, + 428310 + ], + [ + 3, + 15, + 19, + 2300, + 428310 + ], + [ + 3, + 15, + 20, + 2300, + 428310 + ], + [ + 3, + 15, + 21, + 2300, + 428310 + ], + [ + 3, + 15, + 22, + 2300, + 428310 + ], + [ + 3, + 16, + 17, + 2300, + 428310 + ], + [ + 3, + 16, + 18, + 2300, + 428310 + ], + [ + 3, + 16, + 19, + 2300, + 428310 + ], + [ + 3, + 16, + 20, + 2300, + 428310 + ], + [ + 3, + 16, + 21, + 2300, + 428310 + ], + [ + 3, + 16, + 22, + 2300, + 428310 + ], + [ + 3, + 17, + 18, + 2300, + 428310 + ], + [ + 3, + 17, + 19, + 2300, + 428310 + ], + [ + 3, + 17, + 20, + 2300, + 428310 + ], + [ + 3, + 17, + 21, + 2300, + 428310 + ], + [ + 3, + 17, + 22, + 2300, + 428310 + ], + [ + 3, + 18, + 19, + 2300, + 428310 + ], + [ + 3, + 18, + 20, + 2300, + 428310 + ], + [ + 3, + 18, + 21, + 2300, + 428310 + ], + [ + 3, + 18, + 22, + 2300, + 428310 + ], + [ + 3, + 19, + 20, + 2300, + 428310 + ], + [ + 3, + 19, + 21, + 2300, + 428310 + ], + [ + 3, + 19, + 22, + 2300, + 428310 + ], + [ + 3, + 20, + 21, + 2300, + 428310 + ], + [ + 3, + 20, + 22, + 2300, + 428310 + ], + [ + 3, + 21, + 22, + 2300, + 428310 + ], + [ + 4, + 5, + 6, + 2300, + 428310 + ], + [ + 4, + 5, + 7, + 2300, + 428310 + ], + [ + 4, + 5, + 8, + 2300, + 428310 + ], + [ + 4, + 5, + 9, + 2300, + 428310 + ], + [ + 4, + 5, + 10, + 2300, + 428310 + ], + [ + 4, + 5, + 11, + 2300, + 428310 + ], + [ + 4, + 5, + 12, + 2300, + 428310 + ], + [ + 4, + 5, + 13, + 2300, + 428310 + ], + [ + 4, + 5, + 14, + 2300, + 428310 + ], + [ + 4, + 5, + 15, + 2300, + 428310 + ], + [ + 4, + 5, + 16, + 2300, + 428310 + ], + [ + 4, + 5, + 17, + 2300, + 428310 + ], + [ + 4, + 5, + 18, + 2300, + 428310 + ], + [ + 4, + 5, + 19, + 2300, + 428310 + ], + [ + 4, + 5, + 20, + 2300, + 428310 + ], + [ + 4, + 5, + 21, + 2300, + 428310 + ], + [ + 4, + 5, + 22, + 2300, + 428310 + ], + [ + 4, + 6, + 7, + 2300, + 428310 + ], + [ + 4, + 6, + 8, + 2300, + 428310 + ], + [ + 4, + 6, + 9, + 2300, + 428310 + ], + [ + 4, + 6, + 10, + 2300, + 428310 + ], + [ + 4, + 6, + 11, + 2300, + 428310 + ], + [ + 4, + 6, + 12, + 2300, + 428310 + ], + [ + 4, + 6, + 13, + 2300, + 428310 + ], + [ + 4, + 6, + 14, + 2300, + 428310 + ], + [ + 4, + 6, + 15, + 2300, + 428310 + ], + [ + 4, + 6, + 16, + 2300, + 428310 + ], + [ + 4, + 6, + 17, + 2300, + 428310 + ], + [ + 4, + 6, + 18, + 2300, + 428310 + ], + [ + 4, + 6, + 19, + 2300, + 428310 + ], + [ + 4, + 6, + 20, + 2300, + 428310 + ], + [ + 4, + 6, + 21, + 2300, + 428310 + ], + [ + 4, + 6, + 22, + 2300, + 428310 + ], + [ + 4, + 7, + 8, + 2300, + 428310 + ], + [ + 4, + 7, + 9, + 2300, + 428310 + ], + [ + 4, + 7, + 10, + 2300, + 428310 + ], + [ + 4, + 7, + 11, + 2300, + 428310 + ], + [ + 4, + 7, + 12, + 2300, + 428310 + ], + [ + 4, + 7, + 13, + 2300, + 428310 + ], + [ + 4, + 7, + 14, + 2300, + 428310 + ], + [ + 4, + 7, + 15, + 2300, + 428310 + ], + [ + 4, + 7, + 16, + 2300, + 428310 + ], + [ + 4, + 7, + 17, + 2300, + 428310 + ], + [ + 4, + 7, + 18, + 2300, + 428310 + ], + [ + 4, + 7, + 19, + 2300, + 428310 + ], + [ + 4, + 7, + 20, + 2300, + 428310 + ], + [ + 4, + 7, + 21, + 2300, + 428310 + ], + [ + 4, + 7, + 22, + 2299, + 189775 + ], + [ + 4, + 8, + 9, + 2300, + 428310 + ], + [ + 4, + 8, + 10, + 2300, + 428310 + ], + [ + 4, + 8, + 11, + 2300, + 428310 + ], + [ + 4, + 8, + 12, + 2300, + 428310 + ], + [ + 4, + 8, + 13, + 2300, + 428310 + ], + [ + 4, + 8, + 14, + 2300, + 428310 + ], + [ + 4, + 8, + 15, + 2300, + 428310 + ], + [ + 4, + 8, + 16, + 2300, + 428310 + ], + [ + 4, + 8, + 17, + 2300, + 428310 + ], + [ + 4, + 8, + 18, + 2300, + 428310 + ], + [ + 4, + 8, + 19, + 2300, + 428310 + ], + [ + 4, + 8, + 20, + 2300, + 428310 + ], + [ + 4, + 8, + 21, + 2300, + 428310 + ], + [ + 4, + 8, + 22, + 2300, + 428310 + ], + [ + 4, + 9, + 10, + 2300, + 428310 + ], + [ + 4, + 9, + 11, + 2300, + 428310 + ], + [ + 4, + 9, + 12, + 2300, + 428310 + ], + [ + 4, + 9, + 13, + 2300, + 428310 + ], + [ + 4, + 9, + 14, + 2300, + 428310 + ], + [ + 4, + 9, + 15, + 2300, + 428310 + ], + [ + 4, + 9, + 16, + 2300, + 428310 + ], + [ + 4, + 9, + 17, + 2300, + 428310 + ], + [ + 4, + 9, + 18, + 2300, + 428310 + ], + [ + 4, + 9, + 19, + 2300, + 428310 + ], + [ + 4, + 9, + 20, + 2300, + 428310 + ], + [ + 4, + 9, + 21, + 2300, + 428310 + ], + [ + 4, + 9, + 22, + 2300, + 428310 + ], + [ + 4, + 10, + 11, + 2300, + 428310 + ], + [ + 4, + 10, + 12, + 2300, + 428310 + ], + [ + 4, + 10, + 13, + 2300, + 428310 + ], + [ + 4, + 10, + 14, + 2300, + 428310 + ], + [ + 4, + 10, + 15, + 2300, + 428310 + ], + [ + 4, + 10, + 16, + 2300, + 428310 + ], + [ + 4, + 10, + 17, + 2300, + 428310 + ], + [ + 4, + 10, + 18, + 2300, + 428310 + ], + [ + 4, + 10, + 19, + 2300, + 428310 + ], + [ + 4, + 10, + 20, + 2300, + 428310 + ], + [ + 4, + 10, + 21, + 2300, + 428310 + ], + [ + 4, + 10, + 22, + 2300, + 428310 + ], + [ + 4, + 11, + 12, + 2300, + 428310 + ], + [ + 4, + 11, + 13, + 2300, + 428310 + ], + [ + 4, + 11, + 14, + 2300, + 428310 + ], + [ + 4, + 11, + 15, + 2300, + 428310 + ], + [ + 4, + 11, + 16, + 2300, + 428310 + ], + [ + 4, + 11, + 17, + 2300, + 428310 + ], + [ + 4, + 11, + 18, + 2300, + 428310 + ], + [ + 4, + 11, + 19, + 2300, + 428310 + ], + [ + 4, + 11, + 20, + 2299, + 189775 + ], + [ + 4, + 11, + 21, + 2300, + 428310 + ], + [ + 4, + 11, + 22, + 2300, + 428310 + ], + [ + 4, + 12, + 13, + 2300, + 428310 + ], + [ + 4, + 12, + 14, + 2300, + 428310 + ], + [ + 4, + 12, + 15, + 2300, + 428310 + ], + [ + 4, + 12, + 16, + 2300, + 428310 + ], + [ + 4, + 12, + 17, + 2300, + 428310 + ], + [ + 4, + 12, + 18, + 2300, + 428310 + ], + [ + 4, + 12, + 19, + 2300, + 428310 + ], + [ + 4, + 12, + 20, + 2300, + 428310 + ], + [ + 4, + 12, + 21, + 2300, + 428310 + ], + [ + 4, + 12, + 22, + 2300, + 428310 + ], + [ + 4, + 13, + 14, + 2300, + 428310 + ], + [ + 4, + 13, + 15, + 2300, + 428310 + ], + [ + 4, + 13, + 16, + 2300, + 428310 + ], + [ + 4, + 13, + 17, + 2300, + 428310 + ], + [ + 4, + 13, + 18, + 2300, + 428310 + ], + [ + 4, + 13, + 19, + 2300, + 428310 + ], + [ + 4, + 13, + 20, + 2300, + 428310 + ], + [ + 4, + 13, + 21, + 2300, + 428310 + ], + [ + 4, + 13, + 22, + 2300, + 428310 + ], + [ + 4, + 14, + 15, + 2300, + 428310 + ], + [ + 4, + 14, + 16, + 2300, + 428310 + ], + [ + 4, + 14, + 17, + 2300, + 428310 + ], + [ + 4, + 14, + 18, + 2300, + 428310 + ], + [ + 4, + 14, + 19, + 2300, + 428310 + ], + [ + 4, + 14, + 20, + 2300, + 428310 + ], + [ + 4, + 14, + 21, + 2300, + 428310 + ], + [ + 4, + 14, + 22, + 2300, + 428310 + ], + [ + 4, + 15, + 16, + 2300, + 428310 + ], + [ + 4, + 15, + 17, + 2300, + 428310 + ], + [ + 4, + 15, + 18, + 2300, + 428310 + ], + [ + 4, + 15, + 19, + 2300, + 428310 + ], + [ + 4, + 15, + 20, + 2300, + 428310 + ], + [ + 4, + 15, + 21, + 2300, + 428310 + ], + [ + 4, + 15, + 22, + 2300, + 428310 + ], + [ + 4, + 16, + 17, + 2300, + 428310 + ], + [ + 4, + 16, + 18, + 2300, + 428310 + ], + [ + 4, + 16, + 19, + 2300, + 428310 + ], + [ + 4, + 16, + 20, + 2300, + 428310 + ], + [ + 4, + 16, + 21, + 2300, + 428310 + ], + [ + 4, + 16, + 22, + 2300, + 428310 + ], + [ + 4, + 17, + 18, + 2300, + 428310 + ], + [ + 4, + 17, + 19, + 2300, + 428310 + ], + [ + 4, + 17, + 20, + 2300, + 428310 + ], + [ + 4, + 17, + 21, + 2300, + 428310 + ], + [ + 4, + 17, + 22, + 2300, + 428310 + ], + [ + 4, + 18, + 19, + 2300, + 428310 + ], + [ + 4, + 18, + 20, + 2300, + 428310 + ], + [ + 4, + 18, + 21, + 2300, + 428310 + ], + [ + 4, + 18, + 22, + 2300, + 428310 + ], + [ + 4, + 19, + 20, + 2300, + 428310 + ], + [ + 4, + 19, + 21, + 2300, + 428310 + ], + [ + 4, + 19, + 22, + 2300, + 428310 + ], + [ + 4, + 20, + 21, + 2300, + 428310 + ], + [ + 4, + 20, + 22, + 2300, + 428310 + ], + [ + 4, + 21, + 22, + 2300, + 428310 + ], + [ + 5, + 6, + 7, + 2300, + 428310 + ], + [ + 5, + 6, + 8, + 2300, + 428310 + ], + [ + 5, + 6, + 9, + 2300, + 428310 + ], + [ + 5, + 6, + 10, + 2300, + 428310 + ], + [ + 5, + 6, + 11, + 2300, + 428310 + ], + [ + 5, + 6, + 12, + 2300, + 428310 + ], + [ + 5, + 6, + 13, + 2300, + 428310 + ], + [ + 5, + 6, + 14, + 2300, + 428310 + ], + [ + 5, + 6, + 15, + 2300, + 428310 + ], + [ + 5, + 6, + 16, + 2300, + 428310 + ], + [ + 5, + 6, + 17, + 2300, + 428310 + ], + [ + 5, + 6, + 18, + 2300, + 428310 + ], + [ + 5, + 6, + 19, + 2300, + 428310 + ], + [ + 5, + 6, + 20, + 2300, + 428310 + ], + [ + 5, + 6, + 21, + 2300, + 428310 + ], + [ + 5, + 6, + 22, + 2300, + 428310 + ], + [ + 5, + 7, + 8, + 2300, + 428310 + ], + [ + 5, + 7, + 9, + 2300, + 428310 + ], + [ + 5, + 7, + 10, + 2300, + 428310 + ], + [ + 5, + 7, + 11, + 2300, + 428310 + ], + [ + 5, + 7, + 12, + 2300, + 428310 + ], + [ + 5, + 7, + 13, + 2300, + 428310 + ], + [ + 5, + 7, + 14, + 2300, + 428310 + ], + [ + 5, + 7, + 15, + 2300, + 428310 + ], + [ + 5, + 7, + 16, + 2300, + 428310 + ], + [ + 5, + 7, + 17, + 2300, + 428310 + ], + [ + 5, + 7, + 18, + 2300, + 428310 + ], + [ + 5, + 7, + 19, + 2300, + 428310 + ], + [ + 5, + 7, + 20, + 2300, + 428310 + ], + [ + 5, + 7, + 21, + 2299, + 189775 + ], + [ + 5, + 7, + 22, + 2300, + 428310 + ], + [ + 5, + 8, + 9, + 2300, + 428310 + ], + [ + 5, + 8, + 10, + 2300, + 428310 + ], + [ + 5, + 8, + 11, + 2300, + 428310 + ], + [ + 5, + 8, + 12, + 2300, + 428310 + ], + [ + 5, + 8, + 13, + 2300, + 428310 + ], + [ + 5, + 8, + 14, + 2300, + 428310 + ], + [ + 5, + 8, + 15, + 2300, + 428310 + ], + [ + 5, + 8, + 16, + 2300, + 428310 + ], + [ + 5, + 8, + 17, + 2300, + 428310 + ], + [ + 5, + 8, + 18, + 2300, + 428310 + ], + [ + 5, + 8, + 19, + 2300, + 428310 + ], + [ + 5, + 8, + 20, + 2300, + 428310 + ], + [ + 5, + 8, + 21, + 2300, + 428310 + ], + [ + 5, + 8, + 22, + 2300, + 428310 + ], + [ + 5, + 9, + 10, + 2300, + 428310 + ], + [ + 5, + 9, + 11, + 2300, + 428310 + ], + [ + 5, + 9, + 12, + 2300, + 428310 + ], + [ + 5, + 9, + 13, + 2300, + 428310 + ], + [ + 5, + 9, + 14, + 2300, + 428310 + ], + [ + 5, + 9, + 15, + 2300, + 428310 + ], + [ + 5, + 9, + 16, + 2300, + 428310 + ], + [ + 5, + 9, + 17, + 2300, + 428310 + ], + [ + 5, + 9, + 18, + 2300, + 428310 + ], + [ + 5, + 9, + 19, + 2300, + 428310 + ], + [ + 5, + 9, + 20, + 2300, + 428310 + ], + [ + 5, + 9, + 21, + 2300, + 428310 + ], + [ + 5, + 9, + 22, + 2300, + 428310 + ], + [ + 5, + 10, + 11, + 2300, + 428310 + ], + [ + 5, + 10, + 12, + 2300, + 428310 + ], + [ + 5, + 10, + 13, + 2300, + 428310 + ], + [ + 5, + 10, + 14, + 2300, + 428310 + ], + [ + 5, + 10, + 15, + 2300, + 428310 + ], + [ + 5, + 10, + 16, + 2300, + 428310 + ], + [ + 5, + 10, + 17, + 2300, + 428310 + ], + [ + 5, + 10, + 18, + 2300, + 428310 + ], + [ + 5, + 10, + 19, + 2300, + 428310 + ], + [ + 5, + 10, + 20, + 2300, + 428310 + ], + [ + 5, + 10, + 21, + 2300, + 428310 + ], + [ + 5, + 10, + 22, + 2300, + 428310 + ], + [ + 5, + 11, + 12, + 2300, + 428310 + ], + [ + 5, + 11, + 13, + 2300, + 428310 + ], + [ + 5, + 11, + 14, + 2300, + 428310 + ], + [ + 5, + 11, + 15, + 2300, + 428310 + ], + [ + 5, + 11, + 16, + 2300, + 428310 + ], + [ + 5, + 11, + 17, + 2300, + 428310 + ], + [ + 5, + 11, + 18, + 2300, + 428310 + ], + [ + 5, + 11, + 19, + 2300, + 428310 + ], + [ + 5, + 11, + 20, + 2300, + 428310 + ], + [ + 5, + 11, + 21, + 2300, + 428310 + ], + [ + 5, + 11, + 22, + 2300, + 428310 + ], + [ + 5, + 12, + 13, + 2300, + 428310 + ], + [ + 5, + 12, + 14, + 2300, + 428310 + ], + [ + 5, + 12, + 15, + 2300, + 428310 + ], + [ + 5, + 12, + 16, + 2300, + 428310 + ], + [ + 5, + 12, + 17, + 2300, + 428310 + ], + [ + 5, + 12, + 18, + 2300, + 428310 + ], + [ + 5, + 12, + 19, + 2300, + 428310 + ], + [ + 5, + 12, + 20, + 2300, + 428310 + ], + [ + 5, + 12, + 21, + 2300, + 428310 + ], + [ + 5, + 12, + 22, + 2300, + 428310 + ], + [ + 5, + 13, + 14, + 2300, + 428310 + ], + [ + 5, + 13, + 15, + 2300, + 428310 + ], + [ + 5, + 13, + 16, + 2300, + 428310 + ], + [ + 5, + 13, + 17, + 2300, + 428310 + ], + [ + 5, + 13, + 18, + 2300, + 428310 + ], + [ + 5, + 13, + 19, + 2300, + 428310 + ], + [ + 5, + 13, + 20, + 2300, + 428310 + ], + [ + 5, + 13, + 21, + 2300, + 428310 + ], + [ + 5, + 13, + 22, + 2300, + 428310 + ], + [ + 5, + 14, + 15, + 2300, + 428310 + ], + [ + 5, + 14, + 16, + 2300, + 428310 + ], + [ + 5, + 14, + 17, + 2300, + 428310 + ], + [ + 5, + 14, + 18, + 2300, + 428310 + ], + [ + 5, + 14, + 19, + 2300, + 428310 + ], + [ + 5, + 14, + 20, + 2300, + 428310 + ], + [ + 5, + 14, + 21, + 2300, + 428310 + ], + [ + 5, + 14, + 22, + 2300, + 428310 + ], + [ + 5, + 15, + 16, + 2300, + 428310 + ], + [ + 5, + 15, + 17, + 2300, + 428310 + ], + [ + 5, + 15, + 18, + 2300, + 428310 + ], + [ + 5, + 15, + 19, + 2300, + 428310 + ], + [ + 5, + 15, + 20, + 2300, + 428310 + ], + [ + 5, + 15, + 21, + 2300, + 428310 + ], + [ + 5, + 15, + 22, + 2300, + 428310 + ], + [ + 5, + 16, + 17, + 2300, + 428310 + ], + [ + 5, + 16, + 18, + 2300, + 428310 + ], + [ + 5, + 16, + 19, + 2300, + 428310 + ], + [ + 5, + 16, + 20, + 2300, + 428310 + ], + [ + 5, + 16, + 21, + 2300, + 428310 + ], + [ + 5, + 16, + 22, + 2300, + 428310 + ], + [ + 5, + 17, + 18, + 2300, + 428310 + ], + [ + 5, + 17, + 19, + 2300, + 428310 + ], + [ + 5, + 17, + 20, + 2300, + 428310 + ], + [ + 5, + 17, + 21, + 2300, + 428310 + ], + [ + 5, + 17, + 22, + 2300, + 428310 + ], + [ + 5, + 18, + 19, + 2300, + 428310 + ], + [ + 5, + 18, + 20, + 2300, + 428310 + ], + [ + 5, + 18, + 21, + 2300, + 428310 + ], + [ + 5, + 18, + 22, + 2300, + 428310 + ], + [ + 5, + 19, + 20, + 2300, + 428310 + ], + [ + 5, + 19, + 21, + 2300, + 428310 + ], + [ + 5, + 19, + 22, + 2300, + 428310 + ], + [ + 5, + 20, + 21, + 2300, + 428310 + ], + [ + 5, + 20, + 22, + 2300, + 428310 + ], + [ + 5, + 21, + 22, + 2300, + 428310 + ], + [ + 6, + 7, + 8, + 2300, + 428310 + ], + [ + 6, + 7, + 9, + 2300, + 428310 + ], + [ + 6, + 7, + 10, + 2300, + 428310 + ], + [ + 6, + 7, + 11, + 2300, + 428310 + ], + [ + 6, + 7, + 12, + 2300, + 428310 + ], + [ + 6, + 7, + 13, + 2300, + 428310 + ], + [ + 6, + 7, + 14, + 2300, + 428310 + ], + [ + 6, + 7, + 15, + 2300, + 428310 + ], + [ + 6, + 7, + 16, + 2300, + 428310 + ], + [ + 6, + 7, + 17, + 2300, + 428310 + ], + [ + 6, + 7, + 18, + 2300, + 428310 + ], + [ + 6, + 7, + 19, + 2300, + 428310 + ], + [ + 6, + 7, + 20, + 2300, + 428310 + ], + [ + 6, + 7, + 21, + 2300, + 428310 + ], + [ + 6, + 7, + 22, + 2300, + 428310 + ], + [ + 6, + 8, + 9, + 2300, + 428310 + ], + [ + 6, + 8, + 10, + 2300, + 428310 + ], + [ + 6, + 8, + 11, + 2300, + 428310 + ], + [ + 6, + 8, + 12, + 2300, + 428310 + ], + [ + 6, + 8, + 13, + 2300, + 428310 + ], + [ + 6, + 8, + 14, + 2300, + 428310 + ], + [ + 6, + 8, + 15, + 2300, + 428310 + ], + [ + 6, + 8, + 16, + 2300, + 428310 + ], + [ + 6, + 8, + 17, + 2300, + 428310 + ], + [ + 6, + 8, + 18, + 2300, + 428310 + ], + [ + 6, + 8, + 19, + 2300, + 428310 + ], + [ + 6, + 8, + 20, + 2300, + 428310 + ], + [ + 6, + 8, + 21, + 2300, + 428310 + ], + [ + 6, + 8, + 22, + 2300, + 428310 + ], + [ + 6, + 9, + 10, + 2300, + 428310 + ], + [ + 6, + 9, + 11, + 2300, + 428310 + ], + [ + 6, + 9, + 12, + 2300, + 428310 + ], + [ + 6, + 9, + 13, + 2300, + 428310 + ], + [ + 6, + 9, + 14, + 2300, + 428310 + ], + [ + 6, + 9, + 15, + 2300, + 428310 + ], + [ + 6, + 9, + 16, + 2300, + 428310 + ], + [ + 6, + 9, + 17, + 2300, + 428310 + ], + [ + 6, + 9, + 18, + 2300, + 428310 + ], + [ + 6, + 9, + 19, + 2300, + 428310 + ], + [ + 6, + 9, + 20, + 2300, + 428310 + ], + [ + 6, + 9, + 21, + 2300, + 428310 + ], + [ + 6, + 9, + 22, + 2300, + 428310 + ], + [ + 6, + 10, + 11, + 2300, + 428310 + ], + [ + 6, + 10, + 12, + 2300, + 428310 + ], + [ + 6, + 10, + 13, + 2300, + 428310 + ], + [ + 6, + 10, + 14, + 2300, + 428310 + ], + [ + 6, + 10, + 15, + 2300, + 428310 + ], + [ + 6, + 10, + 16, + 2300, + 428310 + ], + [ + 6, + 10, + 17, + 2300, + 428310 + ], + [ + 6, + 10, + 18, + 2300, + 428310 + ], + [ + 6, + 10, + 19, + 2300, + 428310 + ], + [ + 6, + 10, + 20, + 2300, + 428310 + ], + [ + 6, + 10, + 21, + 2300, + 428310 + ], + [ + 6, + 10, + 22, + 2300, + 428310 + ], + [ + 6, + 11, + 12, + 2300, + 428310 + ], + [ + 6, + 11, + 13, + 2300, + 428310 + ], + [ + 6, + 11, + 14, + 2300, + 428310 + ], + [ + 6, + 11, + 15, + 2300, + 428310 + ], + [ + 6, + 11, + 16, + 2300, + 428310 + ], + [ + 6, + 11, + 17, + 2300, + 428310 + ], + [ + 6, + 11, + 18, + 2300, + 428310 + ], + [ + 6, + 11, + 19, + 2300, + 428310 + ], + [ + 6, + 11, + 20, + 2300, + 428310 + ], + [ + 6, + 11, + 21, + 2300, + 428310 + ], + [ + 6, + 11, + 22, + 2300, + 428310 + ], + [ + 6, + 12, + 13, + 2300, + 428310 + ], + [ + 6, + 12, + 14, + 2300, + 428310 + ], + [ + 6, + 12, + 15, + 2300, + 428310 + ], + [ + 6, + 12, + 16, + 2300, + 428310 + ], + [ + 6, + 12, + 17, + 2300, + 428310 + ], + [ + 6, + 12, + 18, + 2300, + 428310 + ], + [ + 6, + 12, + 19, + 2300, + 428310 + ], + [ + 6, + 12, + 20, + 2300, + 428310 + ], + [ + 6, + 12, + 21, + 2300, + 428310 + ], + [ + 6, + 12, + 22, + 2300, + 428310 + ], + [ + 6, + 13, + 14, + 2300, + 428310 + ], + [ + 6, + 13, + 15, + 2300, + 428310 + ], + [ + 6, + 13, + 16, + 2300, + 428310 + ], + [ + 6, + 13, + 17, + 2300, + 428310 + ], + [ + 6, + 13, + 18, + 2300, + 428310 + ], + [ + 6, + 13, + 19, + 2300, + 428310 + ], + [ + 6, + 13, + 20, + 2300, + 428310 + ], + [ + 6, + 13, + 21, + 2300, + 428310 + ], + [ + 6, + 13, + 22, + 2300, + 428310 + ], + [ + 6, + 14, + 15, + 2300, + 428310 + ], + [ + 6, + 14, + 16, + 2300, + 428310 + ], + [ + 6, + 14, + 17, + 2300, + 428310 + ], + [ + 6, + 14, + 18, + 2300, + 428310 + ], + [ + 6, + 14, + 19, + 2300, + 428310 + ], + [ + 6, + 14, + 20, + 2300, + 428310 + ], + [ + 6, + 14, + 21, + 2300, + 428310 + ], + [ + 6, + 14, + 22, + 2300, + 428310 + ], + [ + 6, + 15, + 16, + 2300, + 428310 + ], + [ + 6, + 15, + 17, + 2300, + 428310 + ], + [ + 6, + 15, + 18, + 2300, + 428310 + ], + [ + 6, + 15, + 19, + 2300, + 428310 + ], + [ + 6, + 15, + 20, + 2300, + 428310 + ], + [ + 6, + 15, + 21, + 2300, + 428310 + ], + [ + 6, + 15, + 22, + 2300, + 428310 + ], + [ + 6, + 16, + 17, + 2300, + 428310 + ], + [ + 6, + 16, + 18, + 2300, + 428310 + ], + [ + 6, + 16, + 19, + 2300, + 428310 + ], + [ + 6, + 16, + 20, + 2300, + 428310 + ], + [ + 6, + 16, + 21, + 2300, + 428310 + ], + [ + 6, + 16, + 22, + 2300, + 428310 + ], + [ + 6, + 17, + 18, + 2300, + 428310 + ], + [ + 6, + 17, + 19, + 2300, + 428310 + ], + [ + 6, + 17, + 20, + 2300, + 428310 + ], + [ + 6, + 17, + 21, + 2300, + 428310 + ], + [ + 6, + 17, + 22, + 2300, + 428310 + ], + [ + 6, + 18, + 19, + 2300, + 428310 + ], + [ + 6, + 18, + 20, + 2300, + 428310 + ], + [ + 6, + 18, + 21, + 2300, + 428310 + ], + [ + 6, + 18, + 22, + 2300, + 428310 + ], + [ + 6, + 19, + 20, + 2300, + 428310 + ], + [ + 6, + 19, + 21, + 2300, + 428310 + ], + [ + 6, + 19, + 22, + 2300, + 428310 + ], + [ + 6, + 20, + 21, + 2300, + 428310 + ], + [ + 6, + 20, + 22, + 2300, + 428310 + ], + [ + 6, + 21, + 22, + 2300, + 428310 + ], + [ + 7, + 8, + 9, + 2300, + 428310 + ], + [ + 7, + 8, + 10, + 2300, + 428310 + ], + [ + 7, + 8, + 11, + 2300, + 428310 + ], + [ + 7, + 8, + 12, + 2300, + 428310 + ], + [ + 7, + 8, + 13, + 2300, + 428310 + ], + [ + 7, + 8, + 14, + 2300, + 428310 + ], + [ + 7, + 8, + 15, + 2300, + 428310 + ], + [ + 7, + 8, + 16, + 2300, + 428310 + ], + [ + 7, + 8, + 17, + 2300, + 428310 + ], + [ + 7, + 8, + 18, + 2300, + 428310 + ], + [ + 7, + 8, + 19, + 2300, + 428310 + ], + [ + 7, + 8, + 20, + 2300, + 428310 + ], + [ + 7, + 8, + 21, + 2300, + 428310 + ], + [ + 7, + 8, + 22, + 2300, + 428310 + ], + [ + 7, + 9, + 10, + 2300, + 428310 + ], + [ + 7, + 9, + 11, + 2300, + 428310 + ], + [ + 7, + 9, + 12, + 2300, + 428310 + ], + [ + 7, + 9, + 13, + 2300, + 428310 + ], + [ + 7, + 9, + 14, + 2300, + 428310 + ], + [ + 7, + 9, + 15, + 2300, + 428310 + ], + [ + 7, + 9, + 16, + 2300, + 428310 + ], + [ + 7, + 9, + 17, + 2300, + 428310 + ], + [ + 7, + 9, + 18, + 2300, + 428310 + ], + [ + 7, + 9, + 19, + 2300, + 428310 + ], + [ + 7, + 9, + 20, + 2300, + 428310 + ], + [ + 7, + 9, + 21, + 2300, + 428310 + ], + [ + 7, + 9, + 22, + 2300, + 428310 + ], + [ + 7, + 10, + 11, + 2300, + 428310 + ], + [ + 7, + 10, + 12, + 2300, + 428310 + ], + [ + 7, + 10, + 13, + 2300, + 428310 + ], + [ + 7, + 10, + 14, + 2300, + 428310 + ], + [ + 7, + 10, + 15, + 2300, + 428310 + ], + [ + 7, + 10, + 16, + 2300, + 428310 + ], + [ + 7, + 10, + 17, + 2300, + 428310 + ], + [ + 7, + 10, + 18, + 2300, + 428310 + ], + [ + 7, + 10, + 19, + 2300, + 428310 + ], + [ + 7, + 10, + 20, + 2300, + 428310 + ], + [ + 7, + 10, + 21, + 2300, + 428310 + ], + [ + 7, + 10, + 22, + 2300, + 428310 + ], + [ + 7, + 11, + 12, + 2300, + 428310 + ], + [ + 7, + 11, + 13, + 2300, + 428310 + ], + [ + 7, + 11, + 14, + 2300, + 428310 + ], + [ + 7, + 11, + 15, + 2300, + 428310 + ], + [ + 7, + 11, + 16, + 2300, + 428310 + ], + [ + 7, + 11, + 17, + 2300, + 428310 + ], + [ + 7, + 11, + 18, + 2300, + 428310 + ], + [ + 7, + 11, + 19, + 2300, + 428310 + ], + [ + 7, + 11, + 20, + 2300, + 428310 + ], + [ + 7, + 11, + 21, + 2300, + 428310 + ], + [ + 7, + 11, + 22, + 2300, + 428310 + ], + [ + 7, + 12, + 13, + 2300, + 428310 + ], + [ + 7, + 12, + 14, + 2300, + 428310 + ], + [ + 7, + 12, + 15, + 2300, + 428310 + ], + [ + 7, + 12, + 16, + 2300, + 428310 + ], + [ + 7, + 12, + 17, + 2300, + 428310 + ], + [ + 7, + 12, + 18, + 2300, + 428310 + ], + [ + 7, + 12, + 19, + 2300, + 428310 + ], + [ + 7, + 12, + 20, + 2300, + 428310 + ], + [ + 7, + 12, + 21, + 2300, + 428310 + ], + [ + 7, + 12, + 22, + 2300, + 428310 + ], + [ + 7, + 13, + 14, + 2300, + 428310 + ], + [ + 7, + 13, + 15, + 2300, + 428310 + ], + [ + 7, + 13, + 16, + 2300, + 428310 + ], + [ + 7, + 13, + 17, + 2300, + 428310 + ], + [ + 7, + 13, + 18, + 2300, + 428310 + ], + [ + 7, + 13, + 19, + 2300, + 428310 + ], + [ + 7, + 13, + 20, + 2300, + 428310 + ], + [ + 7, + 13, + 21, + 2300, + 428310 + ], + [ + 7, + 13, + 22, + 2300, + 428310 + ], + [ + 7, + 14, + 15, + 2300, + 428310 + ], + [ + 7, + 14, + 16, + 2300, + 428310 + ], + [ + 7, + 14, + 17, + 2300, + 428310 + ], + [ + 7, + 14, + 18, + 2300, + 428310 + ], + [ + 7, + 14, + 19, + 2300, + 428310 + ], + [ + 7, + 14, + 20, + 2300, + 428310 + ], + [ + 7, + 14, + 21, + 2300, + 428310 + ], + [ + 7, + 14, + 22, + 2300, + 428310 + ], + [ + 7, + 15, + 16, + 2300, + 428310 + ], + [ + 7, + 15, + 17, + 2300, + 428310 + ], + [ + 7, + 15, + 18, + 2300, + 428310 + ], + [ + 7, + 15, + 19, + 2300, + 428310 + ], + [ + 7, + 15, + 20, + 2300, + 428310 + ], + [ + 7, + 15, + 21, + 2300, + 428310 + ], + [ + 7, + 15, + 22, + 2300, + 428310 + ], + [ + 7, + 16, + 17, + 2300, + 428310 + ], + [ + 7, + 16, + 18, + 2300, + 428310 + ], + [ + 7, + 16, + 19, + 2300, + 428310 + ], + [ + 7, + 16, + 20, + 2300, + 428310 + ], + [ + 7, + 16, + 21, + 2300, + 428310 + ], + [ + 7, + 16, + 22, + 2300, + 428310 + ], + [ + 7, + 17, + 18, + 2300, + 428310 + ], + [ + 7, + 17, + 19, + 2300, + 428310 + ], + [ + 7, + 17, + 20, + 2300, + 428310 + ], + [ + 7, + 17, + 21, + 2300, + 428310 + ], + [ + 7, + 17, + 22, + 2300, + 428310 + ], + [ + 7, + 18, + 19, + 2300, + 428310 + ], + [ + 7, + 18, + 20, + 2300, + 428310 + ], + [ + 7, + 18, + 21, + 2300, + 428310 + ], + [ + 7, + 18, + 22, + 2300, + 428310 + ], + [ + 7, + 19, + 20, + 2300, + 428310 + ], + [ + 7, + 19, + 21, + 2300, + 428310 + ], + [ + 7, + 19, + 22, + 2300, + 428310 + ], + [ + 7, + 20, + 21, + 2300, + 428310 + ], + [ + 7, + 20, + 22, + 2300, + 428310 + ], + [ + 7, + 21, + 22, + 2300, + 428310 + ], + [ + 8, + 9, + 10, + 2300, + 428310 + ], + [ + 8, + 9, + 11, + 2300, + 428310 + ], + [ + 8, + 9, + 12, + 2300, + 428310 + ], + [ + 8, + 9, + 13, + 2300, + 428310 + ], + [ + 8, + 9, + 14, + 2300, + 428310 + ], + [ + 8, + 9, + 15, + 2300, + 428310 + ], + [ + 8, + 9, + 16, + 2300, + 428310 + ], + [ + 8, + 9, + 17, + 2300, + 428310 + ], + [ + 8, + 9, + 18, + 2300, + 428310 + ], + [ + 8, + 9, + 19, + 2300, + 428310 + ], + [ + 8, + 9, + 20, + 2300, + 428310 + ], + [ + 8, + 9, + 21, + 2300, + 428310 + ], + [ + 8, + 9, + 22, + 2300, + 428310 + ], + [ + 8, + 10, + 11, + 2300, + 428310 + ], + [ + 8, + 10, + 12, + 2300, + 428310 + ], + [ + 8, + 10, + 13, + 2300, + 428310 + ], + [ + 8, + 10, + 14, + 2300, + 428310 + ], + [ + 8, + 10, + 15, + 2300, + 428310 + ], + [ + 8, + 10, + 16, + 2300, + 428310 + ], + [ + 8, + 10, + 17, + 2300, + 428310 + ], + [ + 8, + 10, + 18, + 2300, + 428310 + ], + [ + 8, + 10, + 19, + 2300, + 428310 + ], + [ + 8, + 10, + 20, + 2300, + 428310 + ], + [ + 8, + 10, + 21, + 2300, + 428310 + ], + [ + 8, + 10, + 22, + 2300, + 428310 + ], + [ + 8, + 11, + 12, + 2300, + 428310 + ], + [ + 8, + 11, + 13, + 2300, + 428310 + ], + [ + 8, + 11, + 14, + 2300, + 428310 + ], + [ + 8, + 11, + 15, + 2300, + 428310 + ], + [ + 8, + 11, + 16, + 2300, + 428310 + ], + [ + 8, + 11, + 17, + 2300, + 428310 + ], + [ + 8, + 11, + 18, + 2300, + 428310 + ], + [ + 8, + 11, + 19, + 2300, + 428310 + ], + [ + 8, + 11, + 20, + 2300, + 428310 + ], + [ + 8, + 11, + 21, + 2300, + 428310 + ], + [ + 8, + 11, + 22, + 2300, + 428310 + ], + [ + 8, + 12, + 13, + 2300, + 428310 + ], + [ + 8, + 12, + 14, + 2300, + 428310 + ], + [ + 8, + 12, + 15, + 2300, + 428310 + ], + [ + 8, + 12, + 16, + 2300, + 428310 + ], + [ + 8, + 12, + 17, + 2300, + 428310 + ], + [ + 8, + 12, + 18, + 2300, + 428310 + ], + [ + 8, + 12, + 19, + 2300, + 428310 + ], + [ + 8, + 12, + 20, + 2300, + 428310 + ], + [ + 8, + 12, + 21, + 2300, + 428310 + ], + [ + 8, + 12, + 22, + 2300, + 428310 + ], + [ + 8, + 13, + 14, + 2300, + 428310 + ], + [ + 8, + 13, + 15, + 2300, + 428310 + ], + [ + 8, + 13, + 16, + 2300, + 428310 + ], + [ + 8, + 13, + 17, + 2300, + 428310 + ], + [ + 8, + 13, + 18, + 2300, + 428310 + ], + [ + 8, + 13, + 19, + 2300, + 428310 + ], + [ + 8, + 13, + 20, + 2300, + 428310 + ], + [ + 8, + 13, + 21, + 2300, + 428310 + ], + [ + 8, + 13, + 22, + 2300, + 428310 + ], + [ + 8, + 14, + 15, + 2300, + 428310 + ], + [ + 8, + 14, + 16, + 2300, + 428310 + ], + [ + 8, + 14, + 17, + 2300, + 428310 + ], + [ + 8, + 14, + 18, + 2300, + 428310 + ], + [ + 8, + 14, + 19, + 2300, + 428310 + ], + [ + 8, + 14, + 20, + 2300, + 428310 + ], + [ + 8, + 14, + 21, + 2300, + 428310 + ], + [ + 8, + 14, + 22, + 2300, + 428310 + ], + [ + 8, + 15, + 16, + 2300, + 428310 + ], + [ + 8, + 15, + 17, + 2300, + 428310 + ], + [ + 8, + 15, + 18, + 2300, + 428310 + ], + [ + 8, + 15, + 19, + 2300, + 428310 + ], + [ + 8, + 15, + 20, + 2300, + 428310 + ], + [ + 8, + 15, + 21, + 2300, + 428310 + ], + [ + 8, + 15, + 22, + 2300, + 428310 + ], + [ + 8, + 16, + 17, + 2300, + 428310 + ], + [ + 8, + 16, + 18, + 2300, + 428310 + ], + [ + 8, + 16, + 19, + 2300, + 428310 + ], + [ + 8, + 16, + 20, + 2300, + 428310 + ], + [ + 8, + 16, + 21, + 2300, + 428310 + ], + [ + 8, + 16, + 22, + 2300, + 428310 + ], + [ + 8, + 17, + 18, + 2300, + 428310 + ], + [ + 8, + 17, + 19, + 2300, + 428310 + ], + [ + 8, + 17, + 20, + 2300, + 428310 + ], + [ + 8, + 17, + 21, + 2300, + 428310 + ], + [ + 8, + 17, + 22, + 2300, + 428310 + ], + [ + 8, + 18, + 19, + 2300, + 428310 + ], + [ + 8, + 18, + 20, + 2300, + 428310 + ], + [ + 8, + 18, + 21, + 2300, + 428310 + ], + [ + 8, + 18, + 22, + 2300, + 428310 + ], + [ + 8, + 19, + 20, + 2300, + 428310 + ], + [ + 8, + 19, + 21, + 2300, + 428310 + ], + [ + 8, + 19, + 22, + 2300, + 428310 + ], + [ + 8, + 20, + 21, + 2300, + 428310 + ], + [ + 8, + 20, + 22, + 2300, + 428310 + ], + [ + 8, + 21, + 22, + 2300, + 428310 + ], + [ + 9, + 10, + 11, + 2300, + 428310 + ], + [ + 9, + 10, + 12, + 2300, + 428310 + ], + [ + 9, + 10, + 13, + 2300, + 428310 + ], + [ + 9, + 10, + 14, + 2300, + 428310 + ], + [ + 9, + 10, + 15, + 2300, + 428310 + ], + [ + 9, + 10, + 16, + 2300, + 428310 + ], + [ + 9, + 10, + 17, + 2300, + 428310 + ], + [ + 9, + 10, + 18, + 2300, + 428310 + ], + [ + 9, + 10, + 19, + 2300, + 428310 + ], + [ + 9, + 10, + 20, + 2300, + 428310 + ], + [ + 9, + 10, + 21, + 2300, + 428310 + ], + [ + 9, + 10, + 22, + 2300, + 428310 + ], + [ + 9, + 11, + 12, + 2300, + 428310 + ], + [ + 9, + 11, + 13, + 2300, + 428310 + ], + [ + 9, + 11, + 14, + 2300, + 428310 + ], + [ + 9, + 11, + 15, + 2300, + 428310 + ], + [ + 9, + 11, + 16, + 2300, + 428310 + ], + [ + 9, + 11, + 17, + 2300, + 428310 + ], + [ + 9, + 11, + 18, + 2300, + 428310 + ], + [ + 9, + 11, + 19, + 2300, + 428310 + ], + [ + 9, + 11, + 20, + 2300, + 428310 + ], + [ + 9, + 11, + 21, + 2300, + 428310 + ], + [ + 9, + 11, + 22, + 2300, + 428310 + ], + [ + 9, + 12, + 13, + 2300, + 428310 + ], + [ + 9, + 12, + 14, + 2300, + 428310 + ], + [ + 9, + 12, + 15, + 2300, + 428310 + ], + [ + 9, + 12, + 16, + 2300, + 428310 + ], + [ + 9, + 12, + 17, + 2300, + 428310 + ], + [ + 9, + 12, + 18, + 2300, + 428310 + ], + [ + 9, + 12, + 19, + 2300, + 428310 + ], + [ + 9, + 12, + 20, + 2300, + 428310 + ], + [ + 9, + 12, + 21, + 2300, + 428310 + ], + [ + 9, + 12, + 22, + 2300, + 428310 + ], + [ + 9, + 13, + 14, + 2300, + 428310 + ], + [ + 9, + 13, + 15, + 2300, + 428310 + ], + [ + 9, + 13, + 16, + 2300, + 428310 + ], + [ + 9, + 13, + 17, + 2300, + 428310 + ], + [ + 9, + 13, + 18, + 2300, + 428310 + ], + [ + 9, + 13, + 19, + 2300, + 428310 + ], + [ + 9, + 13, + 20, + 2300, + 428310 + ], + [ + 9, + 13, + 21, + 2300, + 428310 + ], + [ + 9, + 13, + 22, + 2300, + 428310 + ], + [ + 9, + 14, + 15, + 2300, + 428310 + ], + [ + 9, + 14, + 16, + 2300, + 428310 + ], + [ + 9, + 14, + 17, + 2300, + 428310 + ], + [ + 9, + 14, + 18, + 2300, + 428310 + ], + [ + 9, + 14, + 19, + 2300, + 428310 + ], + [ + 9, + 14, + 20, + 2300, + 428310 + ], + [ + 9, + 14, + 21, + 2300, + 428310 + ], + [ + 9, + 14, + 22, + 2300, + 428310 + ], + [ + 9, + 15, + 16, + 2300, + 428310 + ], + [ + 9, + 15, + 17, + 2300, + 428310 + ], + [ + 9, + 15, + 18, + 2300, + 428310 + ], + [ + 9, + 15, + 19, + 2300, + 428310 + ], + [ + 9, + 15, + 20, + 2300, + 428310 + ], + [ + 9, + 15, + 21, + 2300, + 428310 + ], + [ + 9, + 15, + 22, + 2300, + 428310 + ], + [ + 9, + 16, + 17, + 2300, + 428310 + ], + [ + 9, + 16, + 18, + 2300, + 428310 + ], + [ + 9, + 16, + 19, + 2300, + 428310 + ], + [ + 9, + 16, + 20, + 2300, + 428310 + ], + [ + 9, + 16, + 21, + 2300, + 428310 + ], + [ + 9, + 16, + 22, + 2300, + 428310 + ], + [ + 9, + 17, + 18, + 2300, + 428310 + ], + [ + 9, + 17, + 19, + 2300, + 428310 + ], + [ + 9, + 17, + 20, + 2300, + 428310 + ], + [ + 9, + 17, + 21, + 2300, + 428310 + ], + [ + 9, + 17, + 22, + 2300, + 428310 + ], + [ + 9, + 18, + 19, + 2300, + 428310 + ], + [ + 9, + 18, + 20, + 2300, + 428310 + ], + [ + 9, + 18, + 21, + 2300, + 428310 + ], + [ + 9, + 18, + 22, + 2300, + 428310 + ], + [ + 9, + 19, + 20, + 2300, + 428310 + ], + [ + 9, + 19, + 21, + 2300, + 428310 + ], + [ + 9, + 19, + 22, + 2300, + 428310 + ], + [ + 9, + 20, + 21, + 2300, + 428310 + ], + [ + 9, + 20, + 22, + 2300, + 428310 + ], + [ + 9, + 21, + 22, + 2300, + 428310 + ], + [ + 10, + 11, + 12, + 2300, + 428310 + ], + [ + 10, + 11, + 13, + 2300, + 428310 + ], + [ + 10, + 11, + 14, + 2300, + 428310 + ], + [ + 10, + 11, + 15, + 2300, + 428310 + ], + [ + 10, + 11, + 16, + 2300, + 428310 + ], + [ + 10, + 11, + 17, + 2300, + 428310 + ], + [ + 10, + 11, + 18, + 2300, + 428310 + ], + [ + 10, + 11, + 19, + 2300, + 428310 + ], + [ + 10, + 11, + 20, + 2300, + 428310 + ], + [ + 10, + 11, + 21, + 2300, + 428310 + ], + [ + 10, + 11, + 22, + 2299, + 189775 + ], + [ + 10, + 12, + 13, + 2300, + 428310 + ], + [ + 10, + 12, + 14, + 2300, + 428310 + ], + [ + 10, + 12, + 15, + 2300, + 428310 + ], + [ + 10, + 12, + 16, + 2300, + 428310 + ], + [ + 10, + 12, + 17, + 2300, + 428310 + ], + [ + 10, + 12, + 18, + 2300, + 428310 + ], + [ + 10, + 12, + 19, + 2300, + 428310 + ], + [ + 10, + 12, + 20, + 2300, + 428310 + ], + [ + 10, + 12, + 21, + 2300, + 428310 + ], + [ + 10, + 12, + 22, + 2300, + 428310 + ], + [ + 10, + 13, + 14, + 2300, + 428310 + ], + [ + 10, + 13, + 15, + 2300, + 428310 + ], + [ + 10, + 13, + 16, + 2300, + 428310 + ], + [ + 10, + 13, + 17, + 2300, + 428310 + ], + [ + 10, + 13, + 18, + 2300, + 428310 + ], + [ + 10, + 13, + 19, + 2300, + 428310 + ], + [ + 10, + 13, + 20, + 2300, + 428310 + ], + [ + 10, + 13, + 21, + 2300, + 428310 + ], + [ + 10, + 13, + 22, + 2300, + 428310 + ], + [ + 10, + 14, + 15, + 2300, + 428310 + ], + [ + 10, + 14, + 16, + 2300, + 428310 + ], + [ + 10, + 14, + 17, + 2300, + 428310 + ], + [ + 10, + 14, + 18, + 2300, + 428310 + ], + [ + 10, + 14, + 19, + 2300, + 428310 + ], + [ + 10, + 14, + 20, + 2300, + 428310 + ], + [ + 10, + 14, + 21, + 2300, + 428310 + ], + [ + 10, + 14, + 22, + 2300, + 428310 + ], + [ + 10, + 15, + 16, + 2300, + 428310 + ], + [ + 10, + 15, + 17, + 2300, + 428310 + ], + [ + 10, + 15, + 18, + 2300, + 428310 + ], + [ + 10, + 15, + 19, + 2300, + 428310 + ], + [ + 10, + 15, + 20, + 2300, + 428310 + ], + [ + 10, + 15, + 21, + 2300, + 428310 + ], + [ + 10, + 15, + 22, + 2300, + 428310 + ], + [ + 10, + 16, + 17, + 2300, + 428310 + ], + [ + 10, + 16, + 18, + 2300, + 428310 + ], + [ + 10, + 16, + 19, + 2300, + 428310 + ], + [ + 10, + 16, + 20, + 2300, + 428310 + ], + [ + 10, + 16, + 21, + 2300, + 428310 + ], + [ + 10, + 16, + 22, + 2300, + 428310 + ], + [ + 10, + 17, + 18, + 2300, + 428310 + ], + [ + 10, + 17, + 19, + 2300, + 428310 + ], + [ + 10, + 17, + 20, + 2300, + 428310 + ], + [ + 10, + 17, + 21, + 2300, + 428310 + ], + [ + 10, + 17, + 22, + 2300, + 428310 + ], + [ + 10, + 18, + 19, + 2300, + 428310 + ], + [ + 10, + 18, + 20, + 2300, + 428310 + ], + [ + 10, + 18, + 21, + 2300, + 428310 + ], + [ + 10, + 18, + 22, + 2300, + 428310 + ], + [ + 10, + 19, + 20, + 2300, + 428310 + ], + [ + 10, + 19, + 21, + 2300, + 428310 + ], + [ + 10, + 19, + 22, + 2300, + 428310 + ], + [ + 10, + 20, + 21, + 2300, + 428310 + ], + [ + 10, + 20, + 22, + 2300, + 428310 + ], + [ + 10, + 21, + 22, + 2300, + 428310 + ], + [ + 11, + 12, + 13, + 2300, + 428310 + ], + [ + 11, + 12, + 14, + 2300, + 428310 + ], + [ + 11, + 12, + 15, + 2300, + 428310 + ], + [ + 11, + 12, + 16, + 2300, + 428310 + ], + [ + 11, + 12, + 17, + 2300, + 428310 + ], + [ + 11, + 12, + 18, + 2300, + 428310 + ], + [ + 11, + 12, + 19, + 2300, + 428310 + ], + [ + 11, + 12, + 20, + 2300, + 428310 + ], + [ + 11, + 12, + 21, + 2300, + 428310 + ], + [ + 11, + 12, + 22, + 2300, + 428310 + ], + [ + 11, + 13, + 14, + 2300, + 428310 + ], + [ + 11, + 13, + 15, + 2300, + 428310 + ], + [ + 11, + 13, + 16, + 2300, + 428310 + ], + [ + 11, + 13, + 17, + 2300, + 428310 + ], + [ + 11, + 13, + 18, + 2300, + 428310 + ], + [ + 11, + 13, + 19, + 2300, + 428310 + ], + [ + 11, + 13, + 20, + 2300, + 428310 + ], + [ + 11, + 13, + 21, + 2300, + 428310 + ], + [ + 11, + 13, + 22, + 2300, + 428310 + ], + [ + 11, + 14, + 15, + 2300, + 428310 + ], + [ + 11, + 14, + 16, + 2300, + 428310 + ], + [ + 11, + 14, + 17, + 2300, + 428310 + ], + [ + 11, + 14, + 18, + 2300, + 428310 + ], + [ + 11, + 14, + 19, + 2300, + 428310 + ], + [ + 11, + 14, + 20, + 2300, + 428310 + ], + [ + 11, + 14, + 21, + 2300, + 428310 + ], + [ + 11, + 14, + 22, + 2300, + 428310 + ], + [ + 11, + 15, + 16, + 2300, + 428310 + ], + [ + 11, + 15, + 17, + 2300, + 428310 + ], + [ + 11, + 15, + 18, + 2300, + 428310 + ], + [ + 11, + 15, + 19, + 2300, + 428310 + ], + [ + 11, + 15, + 20, + 2300, + 428310 + ], + [ + 11, + 15, + 21, + 2300, + 428310 + ], + [ + 11, + 15, + 22, + 2300, + 428310 + ], + [ + 11, + 16, + 17, + 2300, + 428310 + ], + [ + 11, + 16, + 18, + 2300, + 428310 + ], + [ + 11, + 16, + 19, + 2300, + 428310 + ], + [ + 11, + 16, + 20, + 2300, + 428310 + ], + [ + 11, + 16, + 21, + 2300, + 428310 + ], + [ + 11, + 16, + 22, + 2300, + 428310 + ], + [ + 11, + 17, + 18, + 2300, + 428310 + ], + [ + 11, + 17, + 19, + 2300, + 428310 + ], + [ + 11, + 17, + 20, + 2300, + 428310 + ], + [ + 11, + 17, + 21, + 2300, + 428310 + ], + [ + 11, + 17, + 22, + 2300, + 428310 + ], + [ + 11, + 18, + 19, + 2300, + 428310 + ], + [ + 11, + 18, + 20, + 2300, + 428310 + ], + [ + 11, + 18, + 21, + 2300, + 428310 + ], + [ + 11, + 18, + 22, + 2300, + 428310 + ], + [ + 11, + 19, + 20, + 2300, + 428310 + ], + [ + 11, + 19, + 21, + 2300, + 428310 + ], + [ + 11, + 19, + 22, + 2300, + 428310 + ], + [ + 11, + 20, + 21, + 2300, + 428310 + ], + [ + 11, + 20, + 22, + 2300, + 428310 + ], + [ + 11, + 21, + 22, + 2300, + 428310 + ], + [ + 12, + 13, + 14, + 2300, + 428310 + ], + [ + 12, + 13, + 15, + 2300, + 428310 + ], + [ + 12, + 13, + 16, + 2300, + 428310 + ], + [ + 12, + 13, + 17, + 2300, + 428310 + ], + [ + 12, + 13, + 18, + 2300, + 428310 + ], + [ + 12, + 13, + 19, + 2300, + 428310 + ], + [ + 12, + 13, + 20, + 2300, + 428310 + ], + [ + 12, + 13, + 21, + 2300, + 428310 + ], + [ + 12, + 13, + 22, + 2299, + 189775 + ], + [ + 12, + 14, + 15, + 2300, + 428310 + ], + [ + 12, + 14, + 16, + 2300, + 428310 + ], + [ + 12, + 14, + 17, + 2300, + 428310 + ], + [ + 12, + 14, + 18, + 2300, + 428310 + ], + [ + 12, + 14, + 19, + 2300, + 428310 + ], + [ + 12, + 14, + 20, + 2300, + 428310 + ], + [ + 12, + 14, + 21, + 2300, + 428310 + ], + [ + 12, + 14, + 22, + 2300, + 428310 + ], + [ + 12, + 15, + 16, + 2300, + 428310 + ], + [ + 12, + 15, + 17, + 2300, + 428310 + ], + [ + 12, + 15, + 18, + 2300, + 428310 + ], + [ + 12, + 15, + 19, + 2300, + 428310 + ], + [ + 12, + 15, + 20, + 2300, + 428310 + ], + [ + 12, + 15, + 21, + 2300, + 428310 + ], + [ + 12, + 15, + 22, + 2300, + 428310 + ], + [ + 12, + 16, + 17, + 2300, + 428310 + ], + [ + 12, + 16, + 18, + 2300, + 428310 + ], + [ + 12, + 16, + 19, + 2300, + 428310 + ], + [ + 12, + 16, + 20, + 2300, + 428310 + ], + [ + 12, + 16, + 21, + 2300, + 428310 + ], + [ + 12, + 16, + 22, + 2300, + 428310 + ], + [ + 12, + 17, + 18, + 2300, + 428310 + ], + [ + 12, + 17, + 19, + 2300, + 428310 + ], + [ + 12, + 17, + 20, + 2300, + 428310 + ], + [ + 12, + 17, + 21, + 2300, + 428310 + ], + [ + 12, + 17, + 22, + 2300, + 428310 + ], + [ + 12, + 18, + 19, + 2300, + 428310 + ], + [ + 12, + 18, + 20, + 2300, + 428310 + ], + [ + 12, + 18, + 21, + 2300, + 428310 + ], + [ + 12, + 18, + 22, + 2300, + 428310 + ], + [ + 12, + 19, + 20, + 2300, + 428310 + ], + [ + 12, + 19, + 21, + 2300, + 428310 + ], + [ + 12, + 19, + 22, + 2300, + 428310 + ], + [ + 12, + 20, + 21, + 2300, + 428310 + ], + [ + 12, + 20, + 22, + 2300, + 428310 + ], + [ + 12, + 21, + 22, + 2300, + 428310 + ], + [ + 13, + 14, + 15, + 2300, + 428310 + ], + [ + 13, + 14, + 16, + 2300, + 428310 + ], + [ + 13, + 14, + 17, + 2300, + 428310 + ], + [ + 13, + 14, + 18, + 2300, + 428310 + ], + [ + 13, + 14, + 19, + 2300, + 428310 + ], + [ + 13, + 14, + 20, + 2300, + 428310 + ], + [ + 13, + 14, + 21, + 2300, + 428310 + ], + [ + 13, + 14, + 22, + 2300, + 428310 + ], + [ + 13, + 15, + 16, + 2300, + 428310 + ], + [ + 13, + 15, + 17, + 2300, + 428310 + ], + [ + 13, + 15, + 18, + 2300, + 428310 + ], + [ + 13, + 15, + 19, + 2300, + 428310 + ], + [ + 13, + 15, + 20, + 2300, + 428310 + ], + [ + 13, + 15, + 21, + 2300, + 428310 + ], + [ + 13, + 15, + 22, + 2300, + 428310 + ], + [ + 13, + 16, + 17, + 2300, + 428310 + ], + [ + 13, + 16, + 18, + 2300, + 428310 + ], + [ + 13, + 16, + 19, + 2300, + 428310 + ], + [ + 13, + 16, + 20, + 2300, + 428310 + ], + [ + 13, + 16, + 21, + 2300, + 428310 + ], + [ + 13, + 16, + 22, + 2300, + 428310 + ], + [ + 13, + 17, + 18, + 2300, + 428310 + ], + [ + 13, + 17, + 19, + 2300, + 428310 + ], + [ + 13, + 17, + 20, + 2300, + 428310 + ], + [ + 13, + 17, + 21, + 2300, + 428310 + ], + [ + 13, + 17, + 22, + 2300, + 428310 + ], + [ + 13, + 18, + 19, + 2300, + 428310 + ], + [ + 13, + 18, + 20, + 2300, + 428310 + ], + [ + 13, + 18, + 21, + 2300, + 428310 + ], + [ + 13, + 18, + 22, + 2300, + 428310 + ], + [ + 13, + 19, + 20, + 2300, + 428310 + ], + [ + 13, + 19, + 21, + 2300, + 428310 + ], + [ + 13, + 19, + 22, + 2300, + 428310 + ], + [ + 13, + 20, + 21, + 2300, + 428310 + ], + [ + 13, + 20, + 22, + 2300, + 428310 + ], + [ + 13, + 21, + 22, + 2300, + 428310 + ], + [ + 14, + 15, + 16, + 2300, + 428310 + ], + [ + 14, + 15, + 17, + 2300, + 428310 + ], + [ + 14, + 15, + 18, + 2300, + 428310 + ], + [ + 14, + 15, + 19, + 2300, + 428310 + ], + [ + 14, + 15, + 20, + 2300, + 428310 + ], + [ + 14, + 15, + 21, + 2300, + 428310 + ], + [ + 14, + 15, + 22, + 2300, + 428310 + ], + [ + 14, + 16, + 17, + 2300, + 428310 + ], + [ + 14, + 16, + 18, + 2300, + 428310 + ], + [ + 14, + 16, + 19, + 2300, + 428310 + ], + [ + 14, + 16, + 20, + 2300, + 428310 + ], + [ + 14, + 16, + 21, + 2300, + 428310 + ], + [ + 14, + 16, + 22, + 2300, + 428310 + ], + [ + 14, + 17, + 18, + 2300, + 428310 + ], + [ + 14, + 17, + 19, + 2300, + 428310 + ], + [ + 14, + 17, + 20, + 2300, + 428310 + ], + [ + 14, + 17, + 21, + 2300, + 428310 + ], + [ + 14, + 17, + 22, + 2300, + 428310 + ], + [ + 14, + 18, + 19, + 2300, + 428310 + ], + [ + 14, + 18, + 20, + 2300, + 428310 + ], + [ + 14, + 18, + 21, + 2300, + 428310 + ], + [ + 14, + 18, + 22, + 2300, + 428310 + ], + [ + 14, + 19, + 20, + 2300, + 428310 + ], + [ + 14, + 19, + 21, + 2300, + 428310 + ], + [ + 14, + 19, + 22, + 2300, + 428310 + ], + [ + 14, + 20, + 21, + 2300, + 428310 + ], + [ + 14, + 20, + 22, + 2300, + 428310 + ], + [ + 14, + 21, + 22, + 2300, + 428310 + ], + [ + 15, + 16, + 17, + 2300, + 428310 + ], + [ + 15, + 16, + 18, + 2300, + 428310 + ], + [ + 15, + 16, + 19, + 2300, + 428310 + ], + [ + 15, + 16, + 20, + 2300, + 428310 + ], + [ + 15, + 16, + 21, + 2300, + 428310 + ], + [ + 15, + 16, + 22, + 2300, + 428310 + ], + [ + 15, + 17, + 18, + 2300, + 428310 + ], + [ + 15, + 17, + 19, + 2300, + 428310 + ], + [ + 15, + 17, + 20, + 2300, + 428310 + ], + [ + 15, + 17, + 21, + 2300, + 428310 + ], + [ + 15, + 17, + 22, + 2300, + 428310 + ], + [ + 15, + 18, + 19, + 2300, + 428310 + ], + [ + 15, + 18, + 20, + 2300, + 428310 + ], + [ + 15, + 18, + 21, + 2300, + 428310 + ], + [ + 15, + 18, + 22, + 2300, + 428310 + ], + [ + 15, + 19, + 20, + 2300, + 428310 + ], + [ + 15, + 19, + 21, + 2300, + 428310 + ], + [ + 15, + 19, + 22, + 2300, + 428310 + ], + [ + 15, + 20, + 21, + 2300, + 428310 + ], + [ + 15, + 20, + 22, + 2300, + 428310 + ], + [ + 15, + 21, + 22, + 2300, + 428310 + ], + [ + 16, + 17, + 18, + 2300, + 428310 + ], + [ + 16, + 17, + 19, + 2300, + 428310 + ], + [ + 16, + 17, + 20, + 2300, + 428310 + ], + [ + 16, + 17, + 21, + 2300, + 428310 + ], + [ + 16, + 17, + 22, + 2300, + 428310 + ], + [ + 16, + 18, + 19, + 2300, + 428310 + ], + [ + 16, + 18, + 20, + 2300, + 428310 + ], + [ + 16, + 18, + 21, + 2300, + 428310 + ], + [ + 16, + 18, + 22, + 2300, + 428310 + ], + [ + 16, + 19, + 20, + 2300, + 428310 + ], + [ + 16, + 19, + 21, + 2300, + 428310 + ], + [ + 16, + 19, + 22, + 2300, + 428310 + ], + [ + 16, + 20, + 21, + 2300, + 428310 + ], + [ + 16, + 20, + 22, + 2300, + 428310 + ], + [ + 16, + 21, + 22, + 2300, + 428310 + ], + [ + 17, + 18, + 19, + 2300, + 428310 + ], + [ + 17, + 18, + 20, + 2300, + 428310 + ], + [ + 17, + 18, + 21, + 2300, + 428310 + ], + [ + 17, + 18, + 22, + 2300, + 428310 + ], + [ + 17, + 19, + 20, + 2300, + 428310 + ], + [ + 17, + 19, + 21, + 2300, + 428310 + ], + [ + 17, + 19, + 22, + 2300, + 428310 + ], + [ + 17, + 20, + 21, + 2300, + 428310 + ], + [ + 17, + 20, + 22, + 2300, + 428310 + ], + [ + 17, + 21, + 22, + 2300, + 428310 + ], + [ + 18, + 19, + 20, + 2300, + 428310 + ], + [ + 18, + 19, + 21, + 2300, + 428310 + ], + [ + 18, + 19, + 22, + 2300, + 428310 + ], + [ + 18, + 20, + 21, + 2300, + 428310 + ], + [ + 18, + 20, + 22, + 2300, + 428310 + ], + [ + 18, + 21, + 22, + 2300, + 428310 + ], + [ + 19, + 20, + 21, + 2300, + 428310 + ], + [ + 19, + 20, + 22, + 2300, + 428310 + ], + [ + 19, + 21, + 22, + 2300, + 428310 + ], + [ + 20, + 21, + 22, + 2300, + 428310 + ] + ] + }, + "row_tree": [ + [ + 0, + 23 + ], + [ + 1, + 24 + ], + [ + 2, + 25 + ], + [ + 3, + 26 + ], + [ + 4, + 27 + ], + [ + 5, + 28 + ], + [ + 6, + 29 + ], + [ + 7, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 32 + ], + [ + 10, + 33 + ], + [ + 11, + 34 + ], + [ + 12, + 35 + ], + [ + 13, + 36 + ], + [ + 14, + 37 + ], + [ + 15, + 38 + ], + [ + 16, + 39 + ], + [ + 17, + 40 + ], + [ + 18, + 41 + ], + [ + 19, + 42 + ], + [ + 20, + 43 + ], + [ + 21, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 0, + 47 + ], + [ + 1, + 23 + ], + [ + 2, + 24 + ], + [ + 3, + 25 + ], + [ + 4, + 26 + ], + [ + 5, + 27 + ], + [ + 6, + 28 + ], + [ + 7, + 29 + ], + [ + 8, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 32 + ], + [ + 11, + 33 + ], + [ + 12, + 34 + ], + [ + 13, + 35 + ], + [ + 14, + 36 + ], + [ + 15, + 37 + ], + [ + 16, + 38 + ], + [ + 17, + 39 + ], + [ + 18, + 40 + ], + [ + 19, + 41 + ], + [ + 20, + 42 + ], + [ + 21, + 43 + ], + [ + 22, + 44 + ] + ], + "scope": "Nonzero modular pivots certify rational nonvanishing at the actual two fixed bases; zeros follow separate exact rank cuts. Ten primary-prime failures are replayed with exact rational elimination, yielding the same profile for every pair." + }, + "kappa": "411862541/10000000000000", + "local_sha256": { + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/SOURCE.json": "bd5a765474ed52155f3393951b96babc4ca3fe7522397140c51594289b401e32", + "research/copied-fixed/audit.py": "dd369a7a6e0be4354c05560d0e1d9750c14839928459f43beeb55970f86e0631", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/data_corners.cpp": "d134f43d31b896daf504511991be8608c6ba9d20a6606c57e2e12d4b203b7d44", + "research/copied-fixed/data_recovery.py": "0de7e0fc4f38b066ec319e4dde43bce8f20edd207be9f9736610babf95030253", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/original_timeline.py": "cf152459e080f556931122bc0afa3417835ea4a6d14e541be12c67f317e25f60", + "research/copied-fixed/producer.py": "281b7ebcbad71d2cebca80b1aca4af1d63417e3995576be41f040b776a51e43e", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a" + }, + "scope": "Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); all actual data pairs checked for 9 singletons +21+17+481; ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/matching/profile reconstruction is producer.py. OpenAI base theorem, written residual compiler, fixed-tape recursion, analytic/semantic/routing/recovery and eventual-threshold interfaces remain assumed.", + "sources": { + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + } + }, + "status": "Conditional exact arithmetic witness; general transfer proofs are dependencies" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py new file mode 100644 index 0000000000..24070a7d85 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py @@ -0,0 +1,60 @@ +"""Changed exclusion graphs with more admissible retained carriers. + +Underlying cancellation-free generators: icekylinx PR18/36. Alternating +point order: RaD/hipotures PR41, checkpoint 7e488e6b25dc1713c1f41baaf1cefbf677507cf3. +Compared with PR46, reorder the vector leave-one-out construction by source +support size, breaking ties by ascending support at h23 and descending at +h25; restore the original output indexing. The h23 total folds in reverse +input order, while h25 retains descending (support size, support) order. +Prepared with OpenAI Codex assistance. Apache-2.0. +""" +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h,common): + pairs=[(a,a+1) for a in range(0,h-1,2) if common not in (a,a+1)] + if common%2: + pairs.reverse() + head=[x for pair in pairs for x in pair] + return head+[x for x in range(h) if x!=common and x not in head] + + +def graph(h): + assert h in (23,25) + class Changed(PairedExclusionCircuit): + base_threshold=2 + def total(self,values): + values=[x for x in values if x] + if h==23: + values.reverse() + else: + values.sort(key=lambda node:(self.support[node].bit_count(),self.support[node]),reverse=True) + result=0 + for node in values: + result=self.add(result,node) + return result + def vector(self,values,two=True): + if two: + return super().vector(values,two) + sign=1 if h==23 else -1 + order=sorted(range(len(values)),key=lambda i: + (self.support[values[i]].bit_count(),sign*self.support[values[i]])) + total,one,_=super().vector([values[i] for i in order],False) + restored=[0]*len(values) + for position,original in enumerate(order): + restored[original]=one[position] + return total,restored,{} + local=Changed(h-1) + total=local.pair(list(range(h-1)))[0] + local.outputs[()]=total + stack=[total] + while stack: + node=stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions=sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h,local,point_order=alternating_points) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp new file mode 100644 index 0000000000..410e50f475 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp @@ -0,0 +1,107 @@ +#include +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){assert(argc==2||argc==3);std::ifstream f(argv[1],std::ios::binary);U hdr[4];read_array(f,hdr);U h=hdr[0],v=hdr[1],n=hdr[2],q=hdr[3];assert(h==23||h==25); +std::vector>args(n);std::vectorcore(n),cover(n);std::vectorroots(q),kind(q);std::vectoractive(n);readv(f,args);readv(f,core);readv(f,cover);readv(f,roots);readv(f,kind);readv(f,active); +std::vectorranks(n),degree(n),begin(n+1);V c=0,inputs=0,loss=0; +for(U x=1;xuses(begin.back()),cursor(begin.begin(),begin.end()-1);for(U x=1;xU{return e>>31?roots[e&0x7fffffff]:e/2;}; +auto before=[&](U a,U b){U x=nd(a),y=nd(b);if(ranks[x]!=ranks[y])return ranks[x]>31?V(n)+(a&0x7fffffff):x,oy=b>>31?V(n)+(b&0x7fffffff):y;return oxdonors;for(U x=1;xleftmatch(n),rightmatch(uses.size()),distance(n,UINT32_MAX),queue;V matches=0;U phase=0,inf=UINT32_MAX,shortest=inf; +const char* lin=getenv("LINKS_IN"); +assert(lin && "A pinned carrier matching is required"); +if(lin){std::ifstream lf(lin,std::ios::binary);U hd[2];read_array(lf,hd);assert(hd[0]==n);std::vectorisdonor(n);for(U x:donors)isdonor[x]=1;for(U i=0;i=shortest)continue;adjacency(x,[&](U j){U y=rightmatch[j];if(!y)shortest=distance[x]+1;else if(distance[y]==inf){distance[y]=distance[x]+1;queue.push_back(y);}return false;});}if(shortest==inf)break; +auto aug=[&](auto&&self,U x)->bool{bool ok=adjacency(x,[&](U j){U y=rightmatch[j];if((!y&&distance[x]+1==shortest)||(y&&distance[y]==distance[x]+1&&self(self,y))){leftmatch[x]=j+1;rightmatch[j]=x;return true;}return false;});if(!ok)distance[x]=inf;return ok;};V gained=0;for(U x:donors)if(!leftmatch[x]&&aug(aug,x)){matches++;gained++;}std::cerr<<"h="<hist(h+1);for(U x=1;x=ranks[y]);hist[r-ranks[y]]++;}}else hist[1]+=degree[x];} +for(U j=0;j>31?target:args[target][e&1];assert(value==args[donor][0]||value==args[donor][1]);if(value==args[donor][0])changed++;U ru=ranks[donor],rv=ranks[value],rt=ranks[target];assert(rt>=ru&&ru>=rv);hist[h-ru]--;hist[rv]--;hist[rt-rv]--;hist[rt-ru]++;} +V R=c+q-matches,sum=0;for(U r=0;r<=h;r++){assert(hist[r]>=0);sum+=r*hist[r];}assert(sum==h*R+2*loss); +if(argc==3){std::ofstream out(argv[2],std::ios::binary);U header[2]={n,U(matches)};write_array(out,header);for(U donor:donors)if(leftmatch[donor]){U edge[2]={donor,uses[leftmatch[donor]-1]};write_array(out,edge);}assert(out);} +std::cout<<"{\"h\":"<frames{{0,0,0},{0,0,h}};std::map,U>frame_lookup;std::vectorfi(n); +for(U x=1;xsecond;} +std::map,int64_t>transitions;int64_t singles=0; +auto edge=[&](U a,U b,int64_t count){if(a==b)return;transitions[{a,b}]+=count;}; +for(U x=1;x>31?target:args[target][e&1];edge(fi[donor],1,-1);edge(0,fi[value],-1);edge(fi[value],fi[target],-1);edge(fi[donor],fi[target],1);} +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".round3_rankone_certified_profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +def tree(edges, n): + require(len(edges) == n-1 and len(set(edges)) == n-1, 'Wrong tree edge count') + seen = {0} + while True: + new = seen | {v for u,v in edges if u in seen} | {u for u,v in edges if v in seen} + if new == seen: + break + seen = new + require(len(seen) == n, 'Disconnected restriction graph') + + +def data_corners(): + c = read(HERE/'data-corners.json') + prime = c['prime'] + require(prime == 1000003 and all(prime % j for j in range(2,isqrt(prime)+1)), + 'Data witness prime not proved') + require(c['dimensions'] == [23,25], 'Data dimensions') + require([tuple(r[:3]) for r in c['records']] == list(combinations(range(23),3)), + 'Incomplete first triple coverage') + require(all(0 <= r[3] <= 2300 and 0 < r[4] < prime for r in c['records']), + 'Invalid modular product record') + failures = c['fallback_pairs'] + require(len({tuple(r[:6]) for r in failures}) == len(failures), 'Duplicate fallback') + counts = Counter() + for aa,bb,cc,u,v,w,row in failures: + require(0<=aa= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + + +def profile(): + a,b = 23,25 + m = a*b + rows = [read(HERE / f'original-{h}.json') for h in (a,b)] + N = comb(a,3)*comb(b,3) + W = 2*N+sum(N//r['v']*r['R'] for r in rows) + L = sum(N//r['v']*r['loss'] for r in rows) + data = data_corners() + good,bad = data['good'],data['fallback'] + parts = {'data':Counter({1:2*(9*good+47*bad),21:2*good,17:2*good,481:2*N}), + 'paid_endpoint_copy':Counter({1:N})} + axes = [] + for row in rows: + h = row['h'] + require(row['v'] == comb(h,3), 'Triple count') + require(row['R'] == row['c']+row['q']-row['matched'], 'Role allocation') + require(row['loss'] == h*(h-1), 'Retained center loss') + require(sum(r*n for r,n in enumerate(row['histogram'])) == h*row['R']+2*row['loss'], + 'Original frame rank mass') + f = read(HERE / f'profiles-{h}.json') + for key in ('h','v','R','loss','rank_sum'): + require(f[key] == row[key], 'Fixed/original mismatch: '+key) + require(f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1, + 'Invalid CRT profile') + blocks = f['blocks'][:] + require(len(blocks) == h+1 and all(type(n) is int and n>=0 for n in blocks), + 'Invalid fixed blocks') + require(sum(t*n for t,n in enumerate(blocks)) == f['rank_sum'], 'Fixed profile mass') + require(blocks[h] == h, 'Exactly h full center cleanup calls expected') + # Preserve every transformed copy. Replace only its original's full cleanup. + blocks[h] -= h + blocks[1] += h + require(sum(t*n for t,n in enumerate(blocks)) == h*row['R']+row['loss'], + 'Copied fixed profile mass') + rep = N//row['v'] + bank = rep*row['R'] + parts[f'internal_{h}'] = Counter({t:n*rep for t,n in enumerate(blocks) if t and n}) + parts[f'exterior_{h}'] = Counter({h:bank,m-2*h:bank}) + parts[f'data_growth_{h}'] = Counter({1:2*N,h-2:2*N}) + axes.append(dict(original=row,fixed=f,copied_blocks=blocks,exactness=exactness(h))) + hist = sum(parts.values(),Counter()) + s = sum(t*n for t,n in hist.items()) + require(s == W*m-N+L == 102078397025, 'Complete rank mass') + require((m,N,W,L) == (575,4073300,177530859,2226400), 'Physical constants') + require(max(hist) == 529 and all(00 for t,n in hist.items()), 'Proper children') + return dict(m=m,N=N,W=W,L=L,total_rank=s,deficit=W*m-s,maxchild=max(hist), + child_multiplicities=dict(sorted(hist.items())),parts=parts,axes=axes) + + +def run(): + require(not sys.flags.optimize, 'Assertions must remain enabled') + sources = check_sources() + prior = baseline.certificate() + geo,p = geometry(),profile() + exact = moment(p['m'],p['W'],p['child_multiplicities'],AB) + require(exact['upper'] < 1, 'Bit characteristic failed') + old = prior['bit']['counts'] + old_at_new = moment(old['m'],old['W'],old['child_multiplicities'],AB) + require(old_at_new['lower'] > 1, 'Old construction not excluded at new saving') + forward=read(HERE/'comparison-pr40.json') + forward_rows={int(t):n for t,n in forward['child_multiplicities'].items()} + require(sum(t*n for t,n in forward_rows.items())==108202762275, 'PR40 rank mismatch') + forward_at_new=moment(forward['m'],forward['W'],forward_rows,AB) + require(forward_at_new['lower']>1,'PR40 network not excluded at new saving') + rad=read(HERE/'comparison-pr41.json') + rad_rows={int(t):n for t,n in rad['child_multiplicities'].items()} + require(sum(t*n for t,n in rad_rows.items())==rad['total_rank']==102565738275,'PR41 rank mismatch') + rad_at_new=moment(rad['m'],rad['W'],rad_rows,AB) + require(rad_at_new['lower']>1,'PR41 alternating network not excluded at new saving') + newest=read(HERE/'comparison-pr42.json') + newest_rows={int(t):n for t,n in newest['child_multiplicities'].items()} + require(sum(t*n for t,n in newest_rows.items())==newest['total_rank']==102565738275,'PR42 rank mismatch') + newest_at_new=moment(newest['m'],newest['W'],newest_rows,AB) + require(newest_at_new['lower']>1,'PR42 network not excluded at new saving') + previous=read(HERE/'comparison-pr43.json') + previous_rows={int(t):n for t,n in previous['child_multiplicities'].items()} + require(sum(t*n for t,n in previous_rows.items())==previous['total_rank']==102565738275,'PR43 rank mismatch') + previous_at_new=moment(previous['m'],previous['W'],previous_rows,AB) + require(previous_at_new['lower']>1,'PR43 network not excluded at new saving') + frontier=read(HERE/'comparison-pr44.json') + frontier_rows={int(t):n for t,n in frontier['child_multiplicities'].items()} + require(sum(t*n for t,n in frontier_rows.items())==frontier['total_rank']==102565738275,'PR44 rank mismatch') + frontier_at_new=moment(frontier['m'],frontier['W'],frontier_rows,AB) + require(frontier_at_new['lower']>1,'PR44 network not excluded at new saving') + parent=read(HERE/'comparison-pr46.json') + parent_rows={int(t):n for t,n in parent['child_multiplicities'].items()} + require(sum(t*n for t,n in parent_rows.items())==parent['total_rank']==102565738275,'PR46 rank mismatch') + parent_at_new=moment(parent['m'],parent['W'],parent_rows,AB) + require(parent_at_new['lower']>1,'PR46 network not excluded at new saving') + latest=read(HERE/'comparison-pr47.json') + latest_rows={int(t):n for t,n in latest['child_multiplicities'].items()} + require(sum(t*n for t,n in latest_rows.items())==latest['total_rank']==latest['W']*latest['m']-1846900,'PR47 rank mismatch') + latest_at_new=moment(latest['m'],latest['W'],latest_rows,AB) + require(latest_at_new['lower']>1,'PR47 network not excluded at new saving') + phase = prior['complex']['counts'] + phase_row = read(ROOT / 'certificates/copied-centers-complex-input.json') + bridge = baseline.finite_bridge(p,phase,[phase_row,phase_row]) + require(all(js(bridge[k])==js(prior['finite_bridge'][k]) for k in ('complex','semantic','rows')), 'Unexpected phase or stock change') + final = assembly(bridge,AB,KAPPA,a_complex=AC) + eventual = cutoffs(bridge,final) + require(KAPPA > PR47_KAPPA > PR46_KAPPA > PR44_KAPPA > PR43_KAPPA > PR42_KAPPA > PR41_KAPPA > PR40_KAPPA > PR39_KAPPA > PR38_KAPPA > PR37_KAPPA > prior['kappa'] > Q(1,2**15), 'Comparison failed') + require(KAPPA < Q(1,2**14), 'Unexpected power-of-two bracket') + own_files = sorted(HERE.glob('*.py'))+sorted(HERE.glob('*.cpp'))+[HERE/'PROOF.md',HERE/'SOURCE.json'] + own_files += [HERE/f'{kind}-{h}.json' for h in (23,25) for kind in ('profiles','original','scalar')] + own_files += [HERE/'data-corners.json',HERE/'comparison-pr40.json',HERE/'comparison-pr41.json',HERE/'comparison-pr42.json',HERE/'comparison-pr43.json',HERE/'comparison-pr44.json',HERE/'comparison-pr46.json',HERE/'comparison-pr47.json',HERE/'search-record.json',HERE/'links-23.uses',HERE/'links-25.uses'] + return dict(status='Conditional exact arithmetic witness; general transfer proofs are dependencies', + kappa=KAPPA,bit=dict(counts=p,**exact),complex=prior['complex'], + geometry=geo,finite_bridge=bridge,assembly=final,eventual_bounds=eventual,sources=sources, + comparison=dict(PR47=PR47_KAPPA,ratio_PR47=KAPPA/PR47_KAPPA,PR46=PR46_KAPPA,ratio_PR46=KAPPA/PR46_KAPPA,PR44=PR44_KAPPA,ratio_PR44=KAPPA/PR44_KAPPA,PR36=prior['kappa'],PR37=PR37_KAPPA,PR38=PR38_KAPPA,PR39=PR39_KAPPA,PR40=PR40_KAPPA,PR41=PR41_KAPPA,PR42=PR42_KAPPA,PR43=PR43_KAPPA, + ratio_PR36=KAPPA/prior['kappa'],ratio_PR37=KAPPA/PR37_KAPPA, + ratio_PR38=KAPPA/PR38_KAPPA,ratio_PR39=KAPPA/PR39_KAPPA,ratio_PR40=KAPPA/PR40_KAPPA,ratio_PR41=KAPPA/PR41_KAPPA,ratio_PR42=KAPPA/PR42_KAPPA,ratio_PR43=KAPPA/PR43_KAPPA, + dyadic_corollary='2^-15',next_dyadic_not_reached='2^-14'), + controls=dict(PR47_bit_at_new_lower=latest_at_new['lower'],PR46_bit_at_new_lower=parent_at_new['lower'],PR44_bit_at_new_lower=frontier_at_new['lower'],old_bit_at_new_lower=old_at_new['lower'],PR40_bit_at_new_lower=forward_at_new['lower'],PR41_bit_at_new_lower=rad_at_new['lower'],PR42_bit_at_new_lower=newest_at_new['lower'],PR43_bit_at_new_lower=previous_at_new['lower']), + local_sha256={str(p.relative_to(ROOT)):sha256(p.read_bytes()).hexdigest() for p in own_files}, + scope='Changed leave-one-out graphs with RaD alternating point order, newly pinned weighted carrier matching and fixed-basis internal blocks at (23,25); ' + 'all actual data pairs checked for 9 singletons +21+17+481; ' + 'ten failed modular tests are recovered by exact rational elimination. Exact scalar/label/' + 'matching/profile reconstruction is producer.py. OpenAI base theorem, ' + 'written residual compiler, fixed-tape recursion, analytic/semantic/' + 'routing/recovery and eventual-threshold interfaces remain assumed.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--output',type=Path) + args = parser.parse_args() + result = run() + if args.output: + args.output.write_text(json.dumps(js(result),indent=2,sort_keys=True)+'\n') + print('PASS conditional kappa='+str(KAPPA)+'; bit saving='+str(AB)) + print('47 strict inequalities; seven margins; all-exact enclosures; inherited balanced assembly') diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py new file mode 100644 index 0000000000..aaa99986c4 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +"""Cancellation-free circuit for all pair sums avoiding two specified points. + +Every addition has disjoint input supports. Node interning shares equal sums; +support tracking verifies the full linear map, not sampled input values. +""" +from itertools import combinations +from hashlib import sha256 +import json + + +class ExclusionCircuit: + def __init__(self,n): + assert n>=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1< +#include + +inline unsigned popcount64(uint64_t value) { + unsigned count = 0; + while (value) { value &= value-1; ++count; } + return count; +} + +inline bool little_endian() { + const uint16_t one = 1; + return *reinterpret_cast(&one) == 1; +} +template void normalize_le(T& value) { + static_assert(std::is_integral::value, "integer array required"); + if (!little_endian()) { + auto p = reinterpret_cast(&value); + std::reverse(p, p + sizeof(T)); + } +} +template void normalize_le(std::array& row) { + for (auto& value : row) normalize_le(value); +} +template void readv(std::ifstream& f, std::vector& values) { + f.read(reinterpret_cast(values.data()), values.size()*sizeof(T)); + if (!f) throw std::runtime_error("Truncated producer array"); + if (!little_endian()) for (auto& value : values) normalize_le(value); +} +template void read_array(std::ifstream& f, T (&values)[N]) { + f.read(reinterpret_cast(values), sizeof(values)); + if (!f) throw std::runtime_error("Truncated producer header"); + for (auto& value : values) normalize_le(value); +} +template void write_array(std::ofstream& f, const T (&values)[N]) { + for (auto value : values) { + normalize_le(value); + f.write(reinterpret_cast(&value), sizeof(T)); + } + if (!f) throw std::runtime_error("Cannot write producer array"); +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py new file mode 100644 index 0000000000..b879293977 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py @@ -0,0 +1,46 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Cancellation-free pair exclusion with recursively aggregated vertex weights. + +At each level group vertices in pairs. Internal edges become vertex weights +in the smaller graph. Keeping those weights in the recursion avoids a separate +leave-two-out circuit for each level. All coefficients are checked exactly. +""" +from exclusion_circuit import ExclusionCircuit +from itertools import combinations +class PairedExclusionCircuit(ExclusionCircuit): + base_threshold = 2 + def pair(self,points):return self.block(points,{(a,b):self.variables[a,b] for a,b in combinations(points,2)},{a:0 for a in points}) + def grouping(self,points):return [points[i:i+2] for i in range(0,len(points),2)] + def block(self,points,edges,weights): + if len(points)<=self.base_threshold: + total=lambda omit:self.total([x for p,x in edges.items() if not set(p)&set(omit)]+[x for p,x in weights.items() if p not in omit]) + return total(()),{a:total((a,)) for a in points},{(a,b):total((a,b)) for a,b in combinations(points,2)} + groups=self.grouping(points);ng=len(groups);e=lambda a,b:edges[tuple(sorted((a,b)))] + coarse={(i,j):self.total([e(a,b) for a in groups[i] for b in groups[j]]) for i,j in combinations(range(ng),2)} + wt={i:self.total([weights[a] for a in g]+[e(a,b) for a,b in combinations(g,2)]) for i,g in enumerate(groups)} + total,outside,far=self.block(list(range(ng)),coarse,wt) + strips={};sums={} + for i,g in enumerate(groups): + other=[j for j in range(ng) if j!=i] + for a in g: + carry=self.total([weights[u] for u in g if u!=a]) + vals=[self.total([e(u,v) for u in g if u!=a for v in groups[j]]) for j in other] + st,one,_=self.vector([carry]+vals,False) + strips[a]={j:z for j,z in zip(other,one[1:])};sums[a]=st + out={};single={a:self.add(outside[i],sums[a]) for i,g in enumerate(groups) for a in g} + for i,g in enumerate(groups): + for a,b in combinations(g,2):out[a,b]=outside[i] + for i,j in combinations(range(ng),2): + for a in groups[i]: + left=self.add(far[i,j],strips[a][j]) + for b in groups[j]: + cross=self.total([e(u,v) for u in groups[i] if u!=a for v in groups[j] if v!=b]) + out[a,b]=self.add(left,self.add(strips[b][i],cross)) + return total,single,out +if __name__=='__main__': + for n in (15,25,45,49): + c=PairedExclusionCircuit(n);print(n,c.verify(),flush=True) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py new file mode 100644 index 0000000000..a2f0190704 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py @@ -0,0 +1,163 @@ +# Copyright 2026 icekylinx. Licensed under Apache-2.0. +# Adapted with AI assistance from the archived partial-swap research producer. +# Underlying circuit modules: jacklightChen/integer-mult-bounds, PR7 +# commit 6725c6a17b17871a35353fd29157f4ed851bc114; original credits retained. +#!/usr/bin/env python3 +"""Merge equal sums across the common-point circuits, with exact certificates. + +Supports are represented by their provenance in the small pair circuit, not +by half a million dense global bit vectors. A sum that occurs in two distinct +common-point groups must be a pair-star; its fixed pair and union of vertices +identify its support exactly. +""" +from functools import lru_cache +from hashlib import sha256 +from itertools import combinations +import json + +from exclusion_circuit import ExclusionCircuit + + +class SharedPointCircuit: + def __init__(self,h,circuit=None,point_order=None): + assert h>=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1<2^{-15}.} +\] + +The exact bit saving is 4986382/10^11. The next grid value of the bit saving +fails the exact moment test, and the next κ grid value fails the assembly. + +This is **6.782% above PR #57** (4669442391/10^14), **10.092% above PR #54** +(141532521/3125000000000) and **10.849% above PR #53** (4498144/10^11). It +does not use PR #57's compiler or PR #54's clones. These compare asymptotic +exponent savings, not running times. They are conditional research claims +without independent mathematical review or formal verification. + +Section "Stacking with PR #57's frame compiler" below gives a second, larger +witness, κ = 5101691/10^11, that also uses PR #57's compiler. + +## What changes + +Only the scalar producer DAG changes, in `pair_graph.py`, together with its +pinned carrier matching, `links-{23,25}.uses`. Everything else is PR #53's +`research/skip-strips` pipeline, which is PR #48's `research/copied-fixed` +pipeline, with constants recomputed for the new DAG. + +A role is a physical scratch wire. With c additions, q designated outputs and +μ retained carrier links, the role count is R = c + q − μ. A link lets a +donor addition x = u + w continue its carrier into a later consumer t of u, +when the original envelope of x lies inside the envelope of t: the common core +of t lies inside the core of x, and the cover of x lies inside the cover of t. +So R counts the additions that cannot continue a carrier, plus q. + +### 1. Interval strips + +The paired-exclusion recursion (icekylinx PR #18/#36) needs, for each vertex, +every leave-one-out sum of its k strip values v_1, …, v_k. PR #53 used the +skip-prefix layout s_j = A_(j−2) + (v_(j−1) + B_(j+1)). We build every cyclic +interval of the values instead, each from an interval one item shorter: + + I(a, m) = I(a, m−1) + v_(a+m−1), 2 ≤ m ≤ k−1, + +and output s_j = I(j+1, k−1), with the total I(0, k−1) + v_(k−1). The interval +I(a, m) with m < k−1 has the later consumer I(a−1, m+1) of its last item +v_(a+m−1), and its cover lies inside that consumer's cover, so it can continue +a carrier. Only the k outputs and the total stay unmatched. + +This costs k(k−2)+1 additions instead of about 4k. The role count still falls, +because R counts unmatched additions. In a model of one strip, an exact integer +program over every leave-one-out circuit shows that k−1 unmatched additions is +the minimum for k ≤ 8. Skip-prefix leaves 2k−3 unmatched; intervals leave k−1 +or k. Intervals are used for every strip with k ≥ 3 nonzero values; smaller +strips keep PR #53's layout. Value orders are PR #53's: reversed at the top +level, sorted by (support size, ±support) below it. + +### 2. Core-aware pair assembly + +For groups i < j with members (a, a2) and (b, b2), let F = far[i,j] and let +Sa, Sa2, Sb, Sb2 be the strip outputs that omit the other group. Each of the +four outputs is a sum of four pieces, for example +out[a,b] = F + Sa + Sb + e(a2,b2). PR #53 computes left(a,j) = F + Sa, +then out[a,b] = left(a,j) + (Sb + e(a2,b2)). None of those ten additions can +continue a carrier. We compute + + F+Sa, F+Sa2, F+Sb, F+Sb2, + Y1 = (F+Sb) + Sa, Y2 = (F+Sa) + Sb2, + Y3 = (F+Sa2) + e(a,b2), Y4 = (F+Sb2) + e(a,b), + out[a,b] = e(a2,b2) + Y1, out[a,b2] = e(a2,b) + Y2, + out[a2,b] = Y3 + Sb, out[a2,b2] = Y4 + Sa2. + +Each F+S node then has a later consumer of its strip operand whose envelope +contains its own: the same common core and a larger cover. An exact integer +program over every assembly of these nine pieces, with their actual cores and +covers, shows that 8 unmatched additions per group pair is optimal. The cores +matter: a node such as Sa + e(a2,b2) has the two-point core {c, a2}, so a +one-point-core donor cannot continue into it. Each output needs its own +addition and at least one more addition that serves only that output, and +neither can continue a carrier, so 8 is also a lower bound for this +decomposition. + +### Counts + +| h | v | additions c | outputs q | matched μ | roles R | loss | +|---|---|---|---|---|---|---| +| 23 | 1771 | 62294 | 5336 | 38911 | 28719 | 506 | +| 25 | 2300 | 86595 | 6925 | 55844 | 37676 | 600 | + +PR #53 had R23 = 32946 and R25 = 43409. The physical constants are +m = 575, N = 4,073,300, W = 140,924,496 (PR #53: 160,799,739) and +L = 2,226,400. The complete rank is Wm − N + L = 81,029,738,300. The deficit +N − L is unchanged. + +The weighted matching is pinned in `links-{h}.uses`. `optimize_matching.py` +regenerates it from Rohan Arun's PR #44 optimizer with only the graph import +changed. Its output is not trusted: `profiles.cpp` replays every pinned link, +and `producer.py` recounts every link independently. + +## Why the inherited proofs apply + +The new DAG enters the inherited proofs only through properties and +quantities that `producer.py` recomputes, as for PR #41, #43, #47, #48 and #53: + +- **Scalar outputs.** Every addition joins disjoint supports, every node has a + common point, and every output is the exact leave-two-out sum or retained + total, checked on dense global supports. +- **Carrier links.** Every pinned link lies in the admissible adjacency + (causal order and envelope inclusion), with distinct donors and uses. +- **Physical timeline.** The full physical timeline and every dirty basis + vector are checked in both orientations at h = 23 and 25. +- **Fixed-basis profiles.** These are recomputed from the new DAGs and pinned + matchings: 37,728 and 51,927 distinct transition matrices; 6,026 and 7,981 + of them CRT-checked; zero modular disagreements. Exactly h full center + cleanups appear, so the copied-center replacement applies unchanged. +- **Data corners.** These do not depend on the producer. All 4,073,300 pairs + are replayed, and the ten primary-prime failures are recovered by exact + rational elimination. + +The integer programs explain why the links exist; correctness does not depend +on them. + +## Exact arithmetic + +`verify.py` uses PR #43/#48's exact logarithm and exponential enclosures: + +- The moment at a_b = 4986382/10^11 is below 1; at 4986383/10^11 its exact + lower bound exceeds 1. +- Each of the following is excluded at the new bit saving by an exact lower + bound: the complete child lists of PR #57, #54, #53, #48, #47, #46, #44, + #43, #42, #41 and #40, and the PR #36 baseline. +- The inherited balanced assembly passes all 47 strict conditions and seven + margins at κ = 4986133/10^11 and fails at the next grid value. Its + parameters are β = 1/20, h = 10^-12, a_c = 717/10^7, C1 = 1 and row stock + p^2000. + +## Stacking with PR #57's frame compiler + +PR #57 (eumemic, with OpenAI Codex assistance) compiles each set of nodes that +share one original envelope as a single invertible binary map, matches +retained signals to later uses, and reclaims retired roles with paid XOR +clearing. Its compiler, `scripts/experiments/binary_frame_compiler.py`, is +included unchanged through PR #57's own commit on this branch. +`frame/frame_compile.py` feeds it the hash-pinned `pair_graph.py` instead of +PR #53's graph, exactly as PR #57's driver feeds it PR #53's graph. + +The compiled words give the following role counts: + +| h | roles R, this graph | roles R, compiled | shared-frame regions | retained signals | reclaimed roles | +|---|---|---|---|---|---| +| 23 | 28719 | 27918 | 52473 | 37025 | 801 | +| 25 | 37676 | 36586 | 73695 | 53194 | 1090 | + +With W = 137,151,806 the stacked witness gives + +\[ +\kappa=\frac{5101691}{10^{11}}=5.101691\times10^{-5}, +\] + +with exact bit saving 5101952/10^11. This is **9.257% above PR #57** and +2.318% above the plain witness above. PR #57's own result on PR #53's graph +is 4669442391/10^14. + +`frame/frame_verify.py` checks, as PR #57's verifier does: + +- both serialized XOR words, replayed independently on every input and dirty + basis vector in both orientations; +- every frame transition, reconstructed from the actual XOR word; +- all fixed-basis profiles, with bounded-minor and CRT checks; +- the exact moment, the rejection of the next bit-saving grid value, the + exclusion of PR #53's and PR #57's networks at the new saving, all 47 + strict assembly inequalities, seven margins, and the rejection of the next + κ grid value. + +This stacked witness also depends on PR #57's compiler argument, which has +the same review status as PR #57. + +## Reproduce + +```sh +python3 research/pair-assembly/producer.py --work-dir /tmp/pair-assembly +python3 research/pair-assembly/verify.py +python3 research/pair-assembly/frame/frame_verify.py +python3 research/pair-assembly/optimize_matching.py --work-dir /tmp/pair-opt # optional, needs scipy +python3 research/pair-assembly/frame/frame_compile.py # optional, rewrites the words +``` + +`producer.py --record` rewrites the JSON records. Without `--record` it checks +them against fresh regeneration. `make pair-assembly-verify` runs the first +three commands and the tests. + +## Scope and attribution + +This is a conditional finite certificate. It covers the same written proof +obligations as PR #43–#53: the base theorem, the residual compiler, fixed-tape +recursion, the physical meaning of carrier continuations and copied centers, +the analytic/semantic/routing/recovery interfaces and eventual thresholds. +None of these are re-proved here. There is no formal verification or claim of +global optimality. The stacked witness additionally depends on PR #57's +compiler mechanism and its written argument. + +The interval strips and core-aware pair assembly are new here, by Avi +Eisenberg with assistance from Claude (Anthropic). Everything else is +inherited, with all original notices: + +- Avi Eisenberg PR #53: skip-prefix strips and this pipeline's adaptation. +- eumemic PR #57: the joint frame compiler, used unchanged for the stacked + witness. +- Chafik Boukhalfa PR #43/#46/#48: pipeline, recovery, the sorting idea and + verification code. +- Rohan Arun PR #44: weighted matching; also PR #37/#39/#40/#42/#47. +- RaD / hipotures PR #41: alternating order and changed DAGs. +- Dominik Scholz PR #35/#38. +- James Chang PR #34. +- icekylinx PR #18/#24/#32/#36. +- Zhihao Chen PR #21/#23/#29. +- Paureel / Aurel Prosz, Swapnil Jain, Douglas Colkitt, OpenAI, and + Harvey–van der Hoeven. + +Apache-2.0. diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json new file mode 100644 index 0000000000..439c763887 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json @@ -0,0 +1,147 @@ +{ + "PR34": { + "author": "James Chang (jamesyc)", + "commit": "7fecbe3651e095fb0f450756afdeefd2a9ee80a2", + "contribution": "reversed geometry and all-weight rank-cut identities" + }, + "PR35": { + "author": "Dominik Scholz", + "commit": "9c345a2a11e5f4f3649f7c68214bf9a2a0a3fe9c" + }, + "PR36": { + "author": "icekylinx", + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + }, + "PR37": { + "author": "Rohan Arun", + "commit": "2f7578affce416ad4b6c41f3438ebb734f66a899", + "contribution": "dimension-23 reversed geometry checker" + }, + "PR38": { + "author": "Dominik Scholz", + "commit": "605323bab4ba330de3d1785dc5b3ecb14e8ab747", + "contribution": "contemporaneous independent fixed-both composition, comparison and credit" + }, + "PR39": { + "author": "Rohan Arun", + "commit": "70ae24129649f6d6d4ec6360962a80c3c42a38f1", + "contribution": "fixed-middle modular nonvanishing method adapted to exhaustive two-fixed pair check" + }, + "PR40": { + "author": "Rohan Arun", + "commit": "43f59ff533598762cbc43a5e14af2bbbc76fabbd", + "contribution": "contemporaneous both-fixed baseline; matching order improvement is new here" + }, + "PR41": { + "PR": 41, + "author": "RaD / hipotures", + "commit": "d9c96297d455053b795ee58ba108d5cf892e1c04", + "point_order_blob": "a47df953d275f86bf3fcb100cc425ca8854875ca", + "rad_checkpoint": "7e488e6b25dc1713c1f41baaf1cefbf677507cf3", + "subsequent_inspected_head": "03bde70c0c2a453f1ceae20c619b602841405467" + }, + "PR42": { + "author": "Rohan Arun", + "commit": "c6fc08951c1776a9685802b1810a2f15dbbd4f64", + "contribution": "contemporaneous fixed/alternating composition and exact comparison; different carrier matching" + }, + "PR43": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "c0fbfd3cc4fd6e95cef54ab307dfb50c69dd96f6", + "contribution": "prior fully checked original-envelope/fixed-basis alternating composition and independent replay checks" + }, + "PR44": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "061414a529f1123668872db44d737e362fbe066f", + "contribution": "weighted matching discovery, pinned carrier links and replay profiler; no optimality claim is required" + }, + "PR46": { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "71b6c960c89295e952522dd44111df9cfc51ae90", + "contribution": "prior verified composition and exact rational recovery of all data pairs; this increment changes both scalar graphs and pinned matchings" + }, + "PR47": { + "author": "Rohan Arun with Anthropic Claude assistance", + "commit": "117caf164e3b235ef20188aa2dc1b49617e9255c", + "contribution": "contemporaneous hill-climbed graph benchmark; no construction component reused in this increment" + }, + "PR48": { + "author": "Chafik Boukhalfa", + "commit": "b7194b8586844956904b33e9fe18f0c75606c11b", + "contribution": "research/copied-fixed pipeline (weighted-matching replay, exact data recovery, verification) reused here", + "pull_request": 48 + }, + "files": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/copied-fixed/pr35/README.md": "7b136ff0f9a1520296e24195dbf981f55dc63e103e1c105735b1540aa640df3c", + "references/copied-fixed/pr35/fixed-basis-two-stage.tex": "cfd97834f3f67378492fd14fddb1f6774f6261164c33f57389b2f729720b7e1f", + "references/copied-fixed/pr35/producer.py": "afa4a68a415d2281f7ef7924bd58952e33a4ae7f84c6437a5e13786d7eb966a8", + "references/copied-fixed/pr35/rankone_profiles.cpp": "a644821881e6cf4a426a3d6908519889b2f0edeb0032ca384e5026bcf16877a6", + "references/copied-fixed/pr41/SOURCE.json": "836d3d588dc4abb24c375c3a4c65a3dc6fc6ccb186a070ee35241886baf48ccd", + "references/copied-fixed/pr41/check_compiled_witness.py": "f358ea1109537993e48d7e9fb1215d793d4d89424f9e6b14359f4bc522173e7b", + "references/copied-fixed/pr41/point_order_search.py": "3021113367ed8fda0b10e7f25a3bc751b7cb39bee05db9c0c912d3b4b1256ac6", + "references/copied-fixed/pr41/producer_search.py": "1fc67fef1401190156f75aaca785537c3b5fb9533fcaadd030d6e922af9f5292", + "references/copied-fixed/pr44/SOURCE.json": "eeb610bdc954586233b9667b49f11ecda211c120e3557621d08b769c5a010459", + "references/copied-fixed/pr44/optimal_graph.py": "8c7dab322e5143d4e760ef9086213a0a9a4e65cb5ead1f7b8a2c68d886e99fdb", + "references/copied-fixed/pr44/optimize_matching.py": "0c3ec1f9c6e3dcee5f5809a9ba5d248c99e26e0b7c3df89f0a5571815a05f22b", + "references/copied-fixed/pr44/profiles.cpp": "2c8c32fdfa0719247e24da41a66da18bd3eef4a8a78e13b5581df86a7be225da", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/comparison-pr40.json": "3cf55a63468df230b57089f66c4a97dbee25ca5a0771f53ef23c972774718060", + "research/copied-fixed/comparison-pr41.json": "58beeb816847707c6c866c72ce078b751f70ab65c5baa7c498f863005602e7a2", + "research/copied-fixed/comparison-pr42.json": "22d8c3347405a1df3bf970c199b5c58062c8fc34d5916c86c1353b97254c4461", + "research/copied-fixed/comparison-pr43.json": "3595db8b0eb1f139c00e6e5984522ba91ac693d26bc32bed07211846024757c6", + "research/copied-fixed/comparison-pr44.json": "d2681a5c0c0020410fe0a23fd4bae51bf31171d55572ba6a79f6c9928a7543de", + "research/copied-fixed/comparison-pr46.json": "f7a34054403075c51289e58b583c05ff42c43e72d286b9c3ff4fc5ae7f4bca44", + "research/copied-fixed/comparison-pr47.json": "d15ecc820d540a2bfea10bc7d72688240aea89245ff27de263b1de0e74e4273a", + "research/copied-fixed/data-corners.json": "82dc2d3e116fc003348d6e9ff0cce90fd70d3d6c156580b769ff3d38b3399e17", + "research/copied-fixed/links-23.uses": "b215350929d15711b502cdcf5878aeedb2cc7dc81dc764977a28d37ece17f86f", + "research/copied-fixed/links-25.uses": "80dd63ea393931211bece7a44329a9da4e2936575cdc3f48c27690bedc2ad0ae", + "research/copied-fixed/original-23.json": "a7976c03e9fb788d79e72efc9afeda0f2cb977f790a532dac28c8d15762613c1", + "research/copied-fixed/original-25.json": "eecd3bc090d9547f5e85244b74403713838005e94561f80f7b2774b36d672b0f", + "research/copied-fixed/profiles-23.json": "f44077350b6759199dd95bf17d4d5e27c2d5c5295c8dcae85234d478827f0ff7", + "research/copied-fixed/profiles-25.json": "746402326f54c01cf32eadb2bf1ce277fc8058dfd34f14182918f1f0e58a3fb7", + "research/copied-fixed/reversed/geometry-source.json": "de0f18e22e2fba877cb5beb4a4b0f3e181938c00b98e2f276708a63ae681ea17", + "research/copied-fixed/reversed/geometry.py": "6f8990c17781d5dd42176762a3f9c95de012248a1470f34654388e5adad3b93f", + "research/copied-fixed/reversed/pr34/certify_reversed.py": "77311474169f64a154c2435bcde9303fbc472cbd9ac4d2b39c76e7560fa9e3a3", + "research/copied-fixed/reversed/pr34/independent_controls.py": "f0450c9a8127b538df6cc36ed744ad707b9e72756af9ce5290023272999c5c65", + "research/copied-fixed/review/pr34-balanced-assembly-audit.txt": "3b3b6bb410f53d874fff51c535b72ed6e1636041a079579df6c7cca2b0ca4ca2", + "research/copied-fixed/scalar-23.json": "b5defb6a89253340440c398e2b1482b3ca71d9f9655bcfe855231de9a4e248c6", + "research/copied-fixed/scalar-25.json": "759366ff6b4293de865248a246c55d0dca538551194f0ac8a85867c64f8473dd", + "research/copied-fixed/search-record.json": "1e5298f543ff2bf07fb81c612da89358517eafbf4e33d337452390471ff427a9", + "research/copied-fixed/timeline-23.json": "540b91c324a0394a2e22d7f448a02ee7a3aa0aa8c2d9e75cded909033ebeacd3", + "research/copied-fixed/timeline-25.json": "3cf71771577b7cc05a2cb0574cd9e3fe7e905734a775ad082f16276f62373b7d", + "research/skip-strips/PROOF.md": "0fad3bfbd7062e1607fc95430170d12f9613cc6d850a18871f1cbc8c27434934", + "research/skip-strips/comparison-pr48.json": "36de96fd3aea4e0b335d3693434f004f05220bc33a4a165596288e038052734b", + "research/skip-strips/links-23.uses": "63e47bdaebb8a5c718a4d65e2d6f6bcb8d7548a32030e3b312157b4fa665b7bf", + "research/skip-strips/links-25.uses": "a8a3b0dd47d5d5a46aa4eaf844f7fbd9279e21547b5c01950a31706e700210d3", + "research/skip-strips/optimize_matching.py": "b8146942253fd34fafb92f6eaca4d145609e4c277704492635135095a03ddacf", + "research/skip-strips/original-23.json": "35caafcaf98170fe5260765248ed8bf43edc33d01e81138e8fa540067192fbb3", + "research/skip-strips/original-25.json": "8ecd5028fcfa9972ee9e1d241a0bc296ac4e1888c42e8f0c05f95e11de326109", + "research/skip-strips/profiles-23.json": "baac5249694959d063a4b0bae156610679682f0782d4254cd509dbf3bd26850f", + "research/skip-strips/profiles-25.json": "214bdd7a5a5c0618d0d5507bc2973b4bb06f88327ee33697823ed1924bcffdf0", + "research/skip-strips/scalar-23.json": "08fd09b33c22f609e241753aa38495fd4bef0bfbc4222d5f7e0301cb0aa9c2bc", + "research/skip-strips/scalar-25.json": "c54a47e688ba8d69fbe095f6775cd540505a80e5977ea53afe8f0051e115633a", + "research/skip-strips/skip_graph.py": "03ee019cdaf73391455aaf4f5dcb4873f4fdcb278179b296c02ea39eafd047e4", + "research/skip-strips/timeline-23.json": "1f7e9ca7efc96855ef64164d8c2ec1026b9e5f1ce95f0858ef6528aee81c150c", + "research/skip-strips/timeline-25.json": "1e7a692e2e73465ecd0138cfe3429dec5a91f8c87998a6318d689ff600213441", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/partial_swap/binary_io.hpp": "d0be783f61ac4b7981e7e48a8c1139b52572302ba76c191c0e9a1b16a1a05e0e", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + }, + "integration_note": "Against main d55bcd62, binary_io.hpp adds only six standard-library includes. Its functions and binary format are unchanged. Retain the current main header and pin its actual bytes; regenerate inherited certificates on integration." +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json new file mode 100644 index 0000000000..ab8cde595c --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json @@ -0,0 +1,176 @@ +{ + "status": "Joint frame compilation of the pair-assembly graph; complete dirty basis both orientations", + "axes": { + "23": { + "compiled": { + "h": 23, + "mode": { + "matching": true, + "reclaim": true + }, + "roles": 27918, + "baseline_pr48_roles": 36432, + "histogram": { + "1": 42694, + "0": 301874, + "2": 82328, + "3": 11086, + "4": 10646, + "6": 2005, + "5": 7548, + "8": 1361, + "9": 562, + "10": 597, + "12": 558, + "14": 2005, + "16": 547, + "18": 4220, + "19": 7820, + "22": 23, + "17": 274, + "7": 688, + "15": 396, + "21": 165, + "13": 23 + }, + "rank_mass": 642620, + "elementary_xors": 148958, + "stats": { + "augmentations": 220, + "regions": 52473, + "matched": 37025, + "multi_node_regions": 10350, + "reclaimed": 801, + "clearing_xors": 1398 + }, + "dirty_basis_vectors": 31460, + "complete_dirty_basis_both_orientations": true, + "all_physical_frame_inclusions": true, + "seconds": 26.58313250541687 + }, + "replay": { + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "h": 23, + "roles": 27918, + "output_roles": 5336, + "elementary_xors": 148958, + "word_length": 620626, + "full_basis_vectors": 31460, + "rank_mass": 642620, + "histogram": { + "1": 42694, + "0": 162731, + "2": 82328, + "3": 11086, + "4": 10646, + "6": 2005, + "5": 7548, + "8": 1361, + "9": 562, + "10": 597, + "12": 558, + "14": 2005, + "16": 547, + "18": 4220, + "19": 7820, + "22": 23, + "17": 274, + "7": 688, + "15": 396, + "21": 165, + "13": 23 + } + }, + "gzip_sha256": "4629d45d5074f87706db46be3aa3cd369071cd215bc6560d641115aadcce54a0", + "word_sha256": "bd0cbf73756f2e4f8d3879ec6c7a194990eb9ec40aaf3580bdded6994798d920" + }, + "25": { + "compiled": { + "h": 25, + "mode": { + "matching": true, + "reclaim": true + }, + "roles": 36586, + "baseline_pr48_roles": 48329, + "histogram": { + "1": 55478, + "0": 416276, + "2": 115441, + "3": 14362, + "4": 16687, + "5": 10074, + "6": 1767, + "8": 2140, + "9": 790, + "10": 529, + "12": 781, + "14": 625, + "16": 3200, + "18": 519, + "20": 5436, + "21": 10094, + "24": 25, + "17": 687, + "19": 300, + "7": 881, + "23": 220 + }, + "rank_mass": 915250, + "elementary_xors": 205650, + "stats": { + "augmentations": 286, + "regions": 73695, + "matched": 53194, + "multi_node_regions": 13975, + "reclaimed": 1090, + "clearing_xors": 1827 + }, + "dirty_basis_vectors": 41186, + "complete_dirty_basis_both_orientations": true, + "all_physical_frame_inclusions": true, + "seconds": 51.009533166885376 + }, + "replay": { + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "h": 25, + "roles": 36586, + "output_roles": 6925, + "elementary_xors": 205650, + "word_length": 854800, + "full_basis_vectors": 41186, + "rank_mass": 915250, + "histogram": { + "1": 55478, + "0": 224000, + "2": 115441, + "3": 14362, + "4": 16687, + "5": 10074, + "6": 1767, + "8": 2140, + "9": 790, + "10": 529, + "12": 781, + "14": 625, + "16": 3200, + "18": 519, + "20": 5436, + "21": 10094, + "24": 25, + "17": 687, + "19": 300, + "7": 881, + "23": 220 + } + }, + "gzip_sha256": "1094276c9ee901e4e5c23062775aad2f50bb5a85a67e64e685d79babcf5b8ecb", + "word_sha256": "634d3cc0fa8e4f592b1924c141bc953524ea08bf683059e18d8ad0c2f26785ec" + } + }, + "source": { + "graph": "research/pair-assembly/pair_graph.py", + "graph_sha256": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "compiler": "scripts/experiments/binary_frame_compiler.py (PR #57, unchanged)" + } +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py new file mode 100644 index 0000000000..d47c1cb3df --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +"""Replay the pair-assembly frame words, actual fixed profiles and assembly. + +Adapted from PR #57's verify_skip_frame.py and skip_frame_compose.py (eumemic, +with OpenAI Codex assistance), with the PR #57 compiler words replaced by the +pair-assembly words. Every XOR word, dirty basis column, frame incidence and +fixed-basis profile is checked; the unchanged data geometry and general +transfer proofs remain inherited dependencies, exactly as in PR #57. +Adapted with assistance from Claude (Anthropic). +Usage: python frame_verify.py [--record] +""" +import sys +sys.dont_write_bytecode = True +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from math import comb +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import os +import shlex +import subprocess +import tempfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +EXP = ROOT/'scripts/experiments' +sys.path.insert(0, str(EXP)) +import binary_frame_math as arithmetic +from binary_frame_profile_prepare import prepare +from binary_frame_replay import replay + +AB_S = 5101952 +KAPPA_S = 5101691 +WIRES_S = 137151806 +MASS_S = 78860441550 +INHERITED = ROOT/'references/frame-compiler/pr48' +OLD = INHERITED/'research/copied-fixed' +AB = Q(AB_S, 10**11) +KAPPA = Q(KAPPA_S, 10**11) +EXCLUDED_ABOVE = Q(AB_S+1, 10**11) +PLAIN_KAPPA = Q(4986133, 10**11) +PR57_KAPPA = Q(4669442391, 10**14) +PR53_KAPPA = Q(4498144, 10**11) + +spec = importlib.util.spec_from_file_location('pair_frame_balanced_assembly', OLD/'balanced_assembly.py') +balanced = importlib.util.module_from_spec(spec) +spec.loader.exec_module(balanced) + + +def check_sources(): + document = json.loads((INHERITED/'SOURCE.json').read_text()) + for name, digest in document['files'].items(): + assert sha256((INHERITED/name).read_bytes()).hexdigest() == digest, name + record = json.loads((HERE/'frame-compiler.json').read_text()) + graph = ROOT/record['source']['graph'] + assert sha256(graph.read_bytes()).hexdigest() == record['source']['graph_sha256'], 'pair_graph.py changed' + return document, record + + +def profile(profiles, words): + a, b = 23, 25 + m, N = a*b, comb(a, 3)*comb(b, 3) + W = 2*N + sum(N//f['v']*f['R'] for f in profiles) + L = sum(N//f['v']*f['loss'] for f in profiles) + parts = {'data': Counter({1: 18*N, 21: 2*N, 17: 2*N, 481: 2*N}), + 'paid_endpoint_copy': Counter({1: N})} + for f in profiles: + h = f['h'] + rep, bank = N//f['v'], N//f['v']*f['R'] + replayed = words['axes'][str(h)]['replay'] + assert f['R'] == replayed['roles'] + assert f['v'] == comb(h, 3) and f['loss'] == h*(h-1) + assert f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1 + assert sum(t*n for t, n in enumerate(f['blocks'])) == h*f['R']+f['loss'] == f['rank_sum'] == replayed['rank_mass'] + assert f['blocks'][h] == 0 # Copied centers already included. + arithmetic.exactness(h) + parts[f'internal_{h}'] = Counter({t: n*rep for t, n in enumerate(f['blocks']) if t and n}) + parts[f'exterior_{h}'] = Counter({h: bank, m-2*h: bank}) + parts[f'data_growth_{h}'] = Counter({1: 2*N, h-2: 2*N}) + rows = sum(parts.values(), Counter()) + mass = sum(t*n for t, n in rows.items()) + assert mass == m*W-N+L and max(rows) == 529 and all(0 < t < m for t in rows) + assert (W, mass, m*W-mass) == (WIRES_S, MASS_S, 1846900) + return dict(m=m, N=N, W=W, L=L, total_rank=mass, deficit=m*W-mass, maxchild=max(rows), + child_multiplicities=dict(sorted(rows.items())), parts=parts, axes=profiles) + + +def compose(p, sources): + exact = arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], AB) + excluded = arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], EXCLUDED_ABOVE) + assert exact['strict_gap'] > 0 and excluded['lower'] > 1 + controls = {} + for name in ('pr53', 'pr57'): + row = json.loads((HERE.parent/f'comparison-{name}.json').read_text()) + rows = {int(t): n for t, n in row['child_multiplicities'].items()} + controls[name] = arithmetic.moment(row['m'], row['W'], rows, AB)['lower'] + assert controls[name] > 1, name+' network not excluded at stacked saving' + prior = json.loads((OLD/'certificate.json').read_text()) + bridge = prior['finite_bridge'] + bridge['bit']['W'] = p['W'] + assert p['W'].bit_length() == bridge['bit']['wire_bits'] + assembled = balanced.assembly(bridge, AB, KAPPA, a_complex=Q(717, 10**7)) + assert len(assembled['constraints']) == 47 and len(assembled['margins']) == 7 + try: + balanced.assembly(bridge, AB, KAPPA+Q(1, 10**11), a_complex=Q(717, 10**7)) + next_grid_fails = False + except AssertionError: + next_grid_fails = True + assert next_grid_fails + assert KAPPA > PLAIN_KAPPA > PR57_KAPPA > PR53_KAPPA > Q(1, 2**15) and KAPPA < Q(1, 2**14) + local = [HERE/name for name in ('frame_compile.py', 'frame_verify.py')]+[ + EXP/name for name in ('binary_frame_compiler.py', 'binary_frame_math.py', 'binary_frame_replay.py', + 'binary_frame_profile_prepare.py', 'binary_frame_profiles.cpp')] + return dict( + status='Conditional exact fixed-basis moment and balanced assembly; inherited transfer hypotheses remain assumed', + kappa=KAPPA, bit_saving=AB, bit_saving_excluded_above=EXCLUDED_ABOVE, + bit=dict(p, moment=exact, excluded_above_lower=excluded['lower']), + controls=dict(PR53_bit_at_stacked_lower=controls['pr53'], PR57_bit_at_stacked_lower=controls['pr57']), + assembly=assembled, eventual_bounds=balanced.cutoffs(bridge, assembled), finite_bridge=bridge, + comparison=dict(plain_pair_assembly_kappa=PLAIN_KAPPA, ratio_plain=KAPPA/PLAIN_KAPPA, + pr57_kappa=PR57_KAPPA, ratio_pr57=KAPPA/PR57_KAPPA, + pr53_kappa=PR53_KAPPA, ratio_pr53=KAPPA/PR53_KAPPA, next_kappa_grid_fails=next_grid_fails), + exactness=[arithmetic.exactness(h) for h in (23, 25)], sources=sources, + local_source_sha256={str(x.relative_to(ROOT)): sha256(x.read_bytes()).hexdigest() for x in local}, + scope='Pair-assembly graph compiled by PR #57\'s unchanged joint frame compiler. Ordered affine residual ' + 'compiler, fixed-tape recursion, finite scalar overhead, balanced transfer, analytic/routing/recovery ' + 'interfaces and PR #57\'s compiler argument remain inherited.') + + +def verify(record_mode=False): + inherited, words = check_sources() + profiles = [] + with tempfile.TemporaryDirectory(prefix='pair-frame-verify-') as directory: + work = Path(directory) + profiler = work/'profiles' + subprocess.run([*shlex.split(os.environ.get('CXX', 'c++')), '-O3', '-std=c++17', + '-I', str(INHERITED/'scripts/partial_swap'), + str(EXP/'binary_frame_profiles.cpp'), '-o', str(profiler)], check=True) + for h in (23, 25): + word = HERE/f'frame-word-{h}.json.gz' + axis = words['axes'][str(h)] + packed = word.read_bytes() + assert sha256(packed).hexdigest() == axis['gzip_sha256'] + assert sha256(gzip.decompress(packed)).hexdigest() == axis['word_sha256'] + receipt = replay(word) + assert json.loads(json.dumps(receipt)) == axis['replay'] + transitions = work/f'word{h}.bin' + prepared = json.loads(json.dumps(prepare(word, transitions))) + path = HERE/f'frame-transitions-{h}.json' + if record_mode: + path.write_text(json.dumps(prepared, indent=2)+'\n') + assert prepared == json.loads(path.read_text()) + subprocess.run([str(profiler), str(transitions)], check=True, capture_output=True, text=True) + prof = json.loads(Path(str(transitions)+'.profiles.json').read_text()) + path = HERE/f'frame-profiles-{h}.json' + if record_mode: + path.write_text(json.dumps(prof, indent=2)+'\n') + assert prof == json.loads(path.read_text()) + profiles.append(prof) + print(f'PASS h={h}: full dirty basis, exact frame path, every fixed-basis profile', flush=True) + p = profile(profiles, words) + result = compose(p, dict(inherited=inherited, compiler_record=words['source'])) + (HERE/'frame-certificate.json').write_text(json.dumps(arithmetic.js(result), indent=2, sort_keys=True)+'\n') + print('PASS conditional stacked kappa='+str(KAPPA)+'; bit saving='+str(AB), flush=True) + print('47 strict inequalities, seven margins, next grid values rejected, PR #53 and #57 excluded', flush=True) + return result + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--record', action='store_true') + verify(parser.parse_args().record) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py new file mode 100644 index 0000000000..eef8e1eba0 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py @@ -0,0 +1,248 @@ +"""Interval strips and core-aware pair assembly, stacked on PR #53. + +Only the scalar addition DAG changes. Everything else is inherited from +Avi Eisenberg's PR #53 research/skip-strips pipeline, which builds on Chafik +Boukhalfa's PR #48 research/copied-fixed pipeline, Rohan Arun's PR #44 +weighted carrier matching, exact data-corner recovery (PR #46), RaD / +hipotures PR #41 alternating pair order and PR #43's original-envelope / +fixed I+J framework. Those build in turn on icekylinx PR #18/#32/#36 and +earlier credited work. + +New here, two changes to how the paired-exclusion recursion places its sums: + +1. Interval strips. A strip of k values needs every leave-one-out sum. We + build every cyclic interval of the values, each one item longer than an + interval already built: + I(a, m) = I(a, m-1) + v_(a+m-1), + and output s_j = I(j+1, k-1). Each interval I(a, m) with m < k-1 has the + later consumer I(a-1, m+1) of its last item, with a containing cover, so + it can continue a retained carrier. Only the k outputs and the total stay + unmatched. This costs k(k-2)+1 additions instead of about 4k, but the role + count R = additions + outputs - links falls. In a model of one strip, an + exact integer program shows k-1 unmatched additions is the minimum for + k <= 8; intervals reach k-1 or k. They are used for every strip with + k >= 3 nonzero values; smaller strips keep PR #53's layout. + +2. Core-aware pair assembly. For groups i < j with members (a, a2) and + (b, b2), let F = far[i,j] and let Sa, Sa2, Sb, Sb2 be the strip outputs. + Each of the four outputs is F + Sa + Sb + e(a2, b2) and its analogues. We + compute + F+Sa, F+Sa2, F+Sb, F+Sb2, + Y1 = (F+Sb)+Sa, Y2 = (F+Sa)+Sb2, + Y3 = (F+Sa2)+e(a,b2), Y4 = (F+Sb2)+e(a,b), + out[a,b] = e(a2,b2)+Y1, out[a,b2] = e(a2,b)+Y2, + out[a2,b] = Y3+Sb, out[a2,b2] = Y4+Sa2. + Each F+S node then has a later consumer of its strip operand with a + containing envelope (equal common core, larger cover). An exact integer + program over all assemblies of these nine pieces, with the actual cores + and covers, shows 8 unmatched additions per group pair is optimal; the + inherited assembly has 10. + +All supports, envelopes, links and profiles are checked by the inherited +pipeline; nothing here is trusted. + +Apache-2.0, like the inherited files. Prepared with assistance from Claude +(Anthropic). +""" +from itertools import combinations +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +sys.path.insert(0, str(ROOT / 'scripts')) +from partial_swap.paired import PairedExclusionCircuit +from partial_swap.shared import SharedPointCircuit + + +def alternating_points(h, common): + """RaD PR #41 alternating global pair order (as specialized in PR #43/#48).""" + pairs = [(a, a+1) for a in range(0, h-1, 2) if common not in (a, a+1)] + if common % 2: + pairs.reverse() + head = [x for pair in pairs for x in pair] + return head + [x for x in range(h) if x != common and x not in head] + + +def prefix_suffix(c, vals): + """Ordinary leave-one-out: total and s_j = A_{j-1} + B_{j+1}.""" + n = len(vals) + prefix = [0] + for x in vals: + prefix.append(c.add(prefix[-1], x)) + suffix = [0]*(n+1) + for i in range(n-1, -1, -1): + suffix[i] = c.add(vals[i], suffix[i+1]) + return prefix[-1], [c.add(prefix[i], suffix[i+1]) for i in range(n)] + + +def skip_prefix(c, vals): + """PR #53: s_j = A_{j-2} + (v_{j-1} + B_{j+1}) (1-indexed).""" + k = len(vals) + if k <= 2: + return prefix_suffix(c, vals) + v = [0] + list(vals) + A = [0]*(k+1) + for i in range(1, k): + A[i] = c.add(A[i-1], v[i]) + B = [0]*(k+2) + for i in range(k, 1, -1): + B[i] = c.add(v[i], B[i+1]) + out = [0]*(k+1) + out[1] = B[2] + for j in range(2, k+1): + out[j] = c.add(A[j-2], c.add(v[j-1], B[j+1])) + return c.add(A[k-1], v[k]), out[1:] + + +def interval_splits(k): + """Every cyclic interval I(a, m), 2 <= m <= k-1, as I(a, m-1) + v_(a+m-1); total last.""" + full = (1 << k)-1 + interval = lambda a, m: sum(1 << ((a+t) % k) for t in range(m)) + splits = [(interval(a, m), interval(a, m-1), 1 << ((a+m-1) % k)) + for m in range(2, k) for a in range(k)] + return splits + [(full, interval(0, k-1), 1 << (k-1))] + + +def interval_layout(fallback): + """Interval strips for k >= 3 values; the fallback handles k <= 2.""" + def apply(c, vals): + k = len(vals) + if k < 3: + return fallback(c, vals) + splits = interval_splits(k) + node = {1 << i: x for i, x in enumerate(vals)} + for S, L, R in splits: + node[S] = c.add(node[L], node[R]) + full = (1 << k)-1 + return node[full], [node[full ^ (1 << j)] for j in range(k)] + return apply + + +def reversed_layout(layout): + def apply(c, vals): + total, out = layout(c, list(vals)[::-1]) + return total, out[::-1] + return apply + + +def sorted_layout(layout, sign): + """Apply a layout to values sorted by (support size, sign*support); restore order.""" + def apply(c, vals): + order = sorted(range(len(vals)), key=lambda i: (c.support[vals[i]].bit_count(), sign*c.support[vals[i]])) + total, out = layout(c, [vals[i] for i in order]) + restored = [0]*len(vals) + for position, original in enumerate(order): + restored[original] = out[position] + return total, restored + return apply + + +def leave_one_out(c, values, layout): + """Zero entries are omitted; their leave-one-out value is the total.""" + values = list(values) + nonzero = [i for i, x in enumerate(values) if x] + if not nonzero: + return 0, [0]*len(values) + if len(nonzero) == 1: + x = values[nonzero[0]] + return x, [0 if i in nonzero else x for i in range(len(values))] + total, out = layout(c, [values[i] for i in nonzero]) + result = [total]*len(values) + for i, x in zip(nonzero, out): + result[i] = x + return total, result + + +def circuit_class(h): + deep_sign = 1 if h == 23 else -1 + top = reversed_layout(interval_layout(skip_prefix)) + deep = sorted_layout(interval_layout(skip_prefix), deep_sign) + + class PairAssemblyCircuit(PairedExclusionCircuit): + base_threshold = 2 + + def total(self, values): + values = [x for x in values if x] + if h == 23: + values.reverse() + else: + values.sort(key=lambda node: (self.support[node].bit_count(), self.support[node]), reverse=True) + result = 0 + for node in values: + result = self.add(result, node) + return result + + def block(self, points, edges, weights): + level = getattr(self, '_level', -1) + 1 + self._level = level + try: + return self._block(points, edges, weights, level) + finally: + self._level = level - 1 + + def _block(self, points, edges, weights, level): + if len(points) <= self.base_threshold: + return PairedExclusionCircuit.block(self, points, edges, weights) + layout = top if level == 0 else deep + groups = self.grouping(points) + ng = len(groups) + e = lambda a, b: edges[tuple(sorted((a, b)))] + coarse = {(i, j): self.total([e(a, b) for a in groups[i] for b in groups[j]]) + for i, j in combinations(range(ng), 2)} + wt = {i: self.total([weights[a] for a in g] + [e(a, b) for a, b in combinations(g, 2)]) + for i, g in enumerate(groups)} + total, outside, far = self.block(list(range(ng)), coarse, wt) + strips, sums = {}, {} + for i, g in enumerate(groups): + other = [j for j in range(ng) if j != i] + for a in g: + carry = self.total([weights[u] for u in g if u != a]) + vals = [self.total([e(u, v) for u in g if u != a for v in groups[j]]) for j in other] + st, one = leave_one_out(self, [carry] + vals, layout) + strips[a] = {j: z for j, z in zip(other, one[1:])} + sums[a] = st + out = {} + single = {a: self.add(outside[i], sums[a]) for i, g in enumerate(groups) for a in g} + for i, g in enumerate(groups): + for a, b in combinations(g, 2): + out[a, b] = outside[i] + for i, j in combinations(range(ng), 2): + if len(groups[i]) == 2 and len(groups[j]) == 2: + (a, a2), (b, b2) = groups[i], groups[j] + F = far[i, j] + Sa, Sa2, Sb, Sb2 = strips[a][j], strips[a2][j], strips[b][i], strips[b2][i] + FSa, FSa2 = self.add(F, Sa), self.add(F, Sa2) + FSb, FSb2 = self.add(F, Sb), self.add(F, Sb2) + Y1 = self.add(FSb, Sa) + Y2 = self.add(FSa, Sb2) + Y3 = self.add(FSa2, e(a, b2)) + Y4 = self.add(FSb2, e(a, b)) + out[a, b] = self.add(e(a2, b2), Y1) + out[a, b2] = self.add(e(a2, b), Y2) + out[a2, b] = self.add(Y3, Sb) + out[a2, b2] = self.add(Y4, Sa2) + continue + for a in groups[i]: + left = self.add(far[i, j], strips[a][j]) + for b in groups[j]: + cross = self.total([e(u, v) for u in groups[i] if u != a for v in groups[j] if v != b]) + out[a, b] = self.add(left, self.add(strips[b][i], cross)) + return total, single, out + return PairAssemblyCircuit + + +def graph(h): + assert h in (23, 25) + local = circuit_class(h)(h-1) + total = local.pair(list(range(h-1)))[0] + local.outputs[()] = total + stack = [total] + while stack: + node = stack.pop() + if not node or node in local.active: + continue + local.active.add(node) + if local.args[node]: + stack.extend(local.args[node]) + local.additions = sum(local.args[node] is not None for node in local.active) + return SharedPointCircuit(h, local, point_order=alternating_points) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/README.md b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/README.md new file mode 100644 index 0000000000..7248e4e2b7 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/README.md @@ -0,0 +1,74 @@ +# Reordering the rank-pair physical compilation + +This experiment changes the schedule of equal-rank regions in PR #63's +composition of the PR #62 scalar graph and PR #60 rank-first compiler. The +23-axis uses increasing `(rank, cover, core)`; the 25-axis uses increasing rank +and decreasing minimum node number. The scalar identities, matched carrier +candidates, synthesis, and descending-rank retirement policy are unchanged. + +Reordering changes which retired physical roles are available when a region +is compiled. The resulting words have the same 27,918 and 36,586 physical +roles, but different paid fixed-I+J profiles. The selected schedules came +from a bounded comparison of reverse-node, core-cover, cover-core, and +reverse-core-cover orders. Core-cover was screened only; the other three +23-axis words and the reverse-node 25-axis word were independently replayed +and physically profiled before selection. Reversing both axes was weaker +than the selected mixed schedule. These finite tests do not prove optimality. + +## Why the schedule remains valid + +Every region retains its exact original envelope and its original linear +map. The wrapper checks every incoming inter-region dependency and every +selected-candidate direction against the new order. Thus all required inputs +are available, and retained carriers still travel forward. The admissibility argument uses these explicit dependency inequalities; +rank ties alone do not certify topological order, especially for source +frames. The complete serialized physical word is replayed on every input +and dirty basis vector in both orientations, and all frame inclusions and +actual fixed-basis profiles are independently regenerated. + +The literal rank identity and all paid endpoint/data/exterior terms use the +unchanged inherited profile constructor. No histogram estimate substitutes +for the physical word. The general transfer, routing, analytic, recovery, +and fixed-tape hypotheses remain inherited conditions; this is a finite +conditional certificate rather than a new formal proof of those hypotheses. + +## Reproduce + +From the repository root, with assertions enabled: + +```sh +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/verify.py +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/verify.py --rebuild +PYTHONDONTWRITEBYTECODE=1 python3 research/reordered-rank-pair/test_negative.py +``` + +The first command checks source/artifact hashes, independently replays both +committed words, rebuilds their fixed-I+J profiles, and recomposes the paid +global profile. `--rebuild` also recompiles both words and requires exact +byte equality with the committed decompressed witnesses. Disposable output +goes under `build/reordered-rank-pair` (or `--work-dir`). The tests reject a +missing physical XOR, understated physical role count, changed word/profile +digests, a backward region dependency, and execution with Python assertions +disabled. Arithmetic witnesses and their +independent controls are in `arithmetic/`. + +## Attribution + +The graph is Avi Eisenberg's PR #62 interval-strip/core-aware pair assembly, +prepared with Claude assistance, with its retained credits to PR #53, #48, +#44, #46, #41, #43, and earlier icekylinx work. Chafik Boukhalfa's PR #60 +rank-first compiler derives from eumemic's PR #57 joint frame compiler, +both with OpenAI Codex assistance. Dominik Scholz's PR #63 combines those +sources, with OpenAI GPT-6 Astra assistance. Alejandro Zarzuelo Urdiales's +PR #61 supplies precedent for rational parameter refinement. This bounded +region-order experiment and its packaging are by Rohan Arun with OpenAI +Codex assistance. Original Apache-2.0 notices remain applicable. + +## Live comparison at publication + +PR #64 (`790a14e28e935398072b9a9a68694ce7fba8940f`, @rfu08) reports +`20411033624901463/400000000000000000000` for the unchanged #63 profiles, +with additional independent verification and scoped Lean formalization. +The present changed-schedule bound exceeds that reported value; exact +arithmetic and the source pin are in `current-comparison.json`. This is only +a bound comparison, not a comparison of formal proof coverage. diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md new file mode 100644 index 0000000000..fed8b1bc5d --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md @@ -0,0 +1,174 @@ +# Exact arithmetic for the reordered rank-pair witness + +The selected complete paid profile admits + +- bit saving `a = 5103158916233/100000000000000000`; +- backoff `h = 1/1000000000000`, unchanged from PR63; +- `kappa = 2041159402879/40000000000000000 = 0.000051028985071975`. + +All 47 strict assembly inequalities and all seven margins pass. The next bit +saving on the 1e-18 grid has moment strictly above one; the next kappa on that +grid fails the unchanged balanced assembly. The finite sufficient arithmetic +cutoff remains `log2(input) >= 14000000000000`. This is an eventual arithmetic +threshold, not a practical runtime claim or the complete all-size threshold. + +The exact gain above PR63's `5102757/10^11` is +`56602879/40000000000000000`, approximately 0.0027731518 percent relative. +The construction gain is separated from parameter precision: + +| Check | Bit saving | Kappa | Gain versus PR63 | +|---|---:|---:|---:| +| Same 1e-11 grid and same h as PR63 | 0.00005103158 | 0.00005102897 | 0.0000000014 | +| Refined 1e-18 grid; same h | 0.000051031589162330 | 0.000051028985071975 | 0.000000001415071975 | + +The first row passes even with PR63's original low-order exponential bounds, +and its next bit grid point fails with those bounds. Thus its 1.4e-9 gain does +not depend on tightening the numerical enclosure. Precision adds a further +`602879/40000000000000000 = 1.5071975e-11`. + +## Reproduction and source linkage + +Run from any checkout location using Python 3.11 or later: + +```sh +python3 -B research/reordered-rank-pair/arithmetic/refine.py +python3 -B research/reordered-rank-pair/arithmetic/audit.py +python3 -B -m unittest discover -s research/reordered-rank-pair/arithmetic -p test_arithmetic.py -v +``` + +The default commands recompute and compare without writing outputs. An +intentional certificate update uses `--record` on the first two commands. +`refine.py` accepts `--profile PATH` and `--certificate PATH`; `audit.py` +accepts `--certificate PATH` and `--receipt PATH`. + +`certificate.json` pins `../paired-candidate.json`, both arithmetic scripts, +the inherited logarithm implementation and the inherited balanced assembly +by SHA256. All paths are repository relative. It includes the complete exact +per-child logarithm and exponential intervals, weighted moment bounds, +assembly slacks, all seven margins, next-grid failures, comparisons and +sufficient arithmetic cutoffs. `audit-receipt.json` records an independently +computed enclosure and ten deliberate assembly failures. + +This package checks the supplied complete paid profile. The parent +`../verify.py` checks the words, physical replay, actual profile/CRT results, +paid profile assembly and its correspondence to `../paired-candidate.json`. +An arithmetic pass alone does not prove that physical linkage. + +## Rational logarithm enclosure + +For `y >= 1`, put `z = (y-1)/(y+1)`. With `0 <= z < 1`, + +`log(y) = 2 * sum(j>=0, z^(2j+1)/(2j+1))`. + +Every term is nonnegative. Truncation after indices `0,...,J-1` is therefore a +lower bound. For the tail, `2j+1 >= 2J+1` and the powers form a geometric series, +so the upper remainder is + +`2*z^(2J+1)/((2J+1)*(1-z^2))`. + +The inherited helper reduces by powers of 2 to `1 <= y <= 2`, uses `J=32`, +adds the corresponding multiple of `log(2)`, then rounds downward/upward to +the 1e-30 rational grid. These operations preserve the enclosure. + +The independent audit instead reduces by powers of 3/2 to +`1 <= y <= 3/2`, uses `J=60`, and adds the corresponding multiple of +`log(3/2)`. Its exact logarithm enclosure is checked to lie inside the recorded +inherited interval for every child. The two implementations share the +mathematical atanh-series identity but use different range reduction, term +counts and evaluation code; neither relies on machine floating-point logs. + +## Rational exponential and complete moment enclosure + +For a child of dimension `t`, multiplicity `n`, arity `m` and width `W`, the +weight is `w=t*n/(m*W) > 0`. With bit saving `a>0`, its contribution to the +characteristic moment is `w*exp(a*log(m/t))`. The complete histogram includes +all paid parts; neither rare children nor physical transitions are omitted. + +Write `u=a*log_lower` and `v=a*log_upper`. The checker verifies +`0 <= u <= v < 1`. For `S_d(x)=sum(j=0..d, x^j/j!)`, positivity gives + +`S_d(u) <= exp(a*log(m/t))`. + +At `v`, the first omitted term is `v^(d+1)/(d+1)!`; each later term divided by +its predecessor is at most `v/(d+2) < 1`. A geometric majorant therefore gives + +`exp(a*log(m/t)) <= S_d(v) + v^(d+1)/((d+1)!*(1-v/(d+2)))`. + +The primary checker uses `d=8`. It rounds the lower expression downward and +the upper expression upward to the 1e-40 rational grid, multiplies by each +positive exact weight, and sums. Directed rounding can only widen the +interval. Every arithmetic operation uses integers and exact Fractions. + +The independent audit evaluates the exponential by a recurrence through +degree 12. It checks `v<1/1000`, rounds input bounds outward, and bounds the +remaining tail by twice the first omitted term. This is valid because all +successive tail ratios are below 1/2. It independently confirms that the +accepted upper moment is below one and the successor lower moment is above +one. No empirical epsilon, decimal-log assumption or float tolerance enters +the acceptance decision. + +All weights and `log(m/t)` are strictly positive, since `0= 1 + k = 0 + while x > Q(3, 2): + x /= Q(3, 2) + k += 1 + def small(y): + z = (y-1)/(y+1) + power, total = z, Q() + for j in range(60): + total += power/Q(2*j+1) + power *= z*z + return 2*total, 2*total+2*power/(121*(1-z*z)) + lo, hi = small(x) + blo, bhi = small(Q(3, 2)) + return lo+k*blo, hi+k*bhi + + +def independent_moment(profile, saving, recorded_terms): + low, high = Q(), Q() + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + for t, n in sorted(rows.items()): + lo, hi = log_interval(Q(profile['m'], t)) + recorded = recorded_terms[str(t)] + assert Q(recorded['log_lower']) <= lo <= hi <= Q(recorded['log_upper']) + u, v = lo*saving, hi*saving + assert 0 < u <= v < Q(1, 1000) + # Directed rounding of input logs bounds rational denominator sizes. + u = Q(refine.floor_scaled(u, 10**40), 10**40) + v = Q(refine.ceiling_scaled(v, 10**40), 10**40) + tlo, thi = Q(1), Q(1) + elo, ehi = Q(1), Q(1) + for j in range(1, 13): + tlo, thi = tlo*u/j, thi*v/j + elo, ehi = elo+tlo, ehi+thi + # First omitted term is degree13; subsequent ratios <1/2. + ehi += 2*thi*v/13 + weight = Q(t*n, profile['m']*profile['W']) + low += weight*Q(refine.floor_scaled(elo, 10**40), 10**40) + high += weight*Q(refine.ceiling_scaled(ehi, 10**40), 10**40) + return low, high + + +def audit(certificate): + profile_path = ROOT/certificate['profile_path'] + assert sha256(profile_path.read_bytes()).hexdigest() == certificate['profile_sha256'] + for name, digest in certificate['source_sha256'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest() == digest, name + source = json.loads(profile_path.read_text()) + p = source['bit'] + assert sum(int(t)*n for t, n in p['child_multiplicities'].items()) == p['total_rank'] + accepted = independent_moment(p, Q(certificate['bit_saving']), certificate['accepted_moment']['terms']) + rejected = independent_moment(p, Q(certificate['next_bit_saving']), certificate['accepted_moment']['terms']) + assert accepted[1] < 1 < rejected[0] + controls = {} + for name, variant in [('preferred', certificate['preferred']), ('coarse_grid_control', certificate['coarse_grid_control'])]: + params = variant['assembly']['parameters'] + result = refine.balanced.assembly(source['finite_bridge'], Q(params['a_bit']), Q(params['kappa']), h=Q(params['h'])) + assert refine.arithmetic.js(result) == variant['assembly'] + assert len(result['constraints']) == 47 and len(result['margins']) == 7 + assert all(v > 0 for v in result['constraints'].values()) + for label, kwargs in [('next_grid', dict(kappa=Q(variant['next_kappa']))), + ('zero_backoff', dict(h=Q())), + ('original_prefix', dict(original_prefix=True)), + ('old_guard', dict(old_guard=True)), + ('old_exposures', dict(old_exposures=True))]: + call = dict(a_bit=Q(params['a_bit']), kappa=Q(params['kappa']), h=Q(params['h'])) + call.update(kwargs) + try: + refine.balanced.assembly(source['finite_bridge'], **call) + except refine.balanced.InvalidAssembly as error: + controls[name+'/'+label] = str(error) + else: + raise AssertionError('Negative control accepted: '+name+'/'+label) + next_a = Q(certificate['next_bit_saving']) + best = Q(certificate['preferred']['kappa']) + cap = next_a/(1+next_a) + assert cap > best + return dict(status='PASS', independent_log_base='3/2', independent_log_terms=60, + independent_exp_degree=12, independent_tail='twice first omitted term', + independent_accepted_gap=1-accepted[1], independent_rejected_gap=rejected[0]-1, + variants_reassembled=2, constraints_each=47, margins_each=7, controls=controls, + fixed_profile_balanced_family_kappa_strict_upper=cap, + remaining_possible_parameter_gain_upper=cap-best) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--certificate', type=Path, default=HERE/'certificate.json') + parser.add_argument('--receipt', type=Path, default=HERE/'audit-receipt.json') + parser.add_argument('--record', action='store_true') + args = parser.parse_args() + result = refine.arithmetic.js(audit(json.loads(args.certificate.read_text()))) + if args.record: + args.receipt.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.receipt.read_text()), 'Independent receipt changed' + print('PASS independent logarithm/exponential enclosures; 47 strict constraints; seven margins; ten assembly negative controls') + + +if __name__ == '__main__': + main() diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json new file mode 100644 index 0000000000..346cf87ea3 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json @@ -0,0 +1,1087 @@ +{ + "accepted_moment": { + "degree": 8, + "lower": "34287951499999999998997315662315085394575263036671/34287951500000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "5103158916233/100000000000000000", + "strict_gap": "2278828040192983762647964739/77927162500000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "5001621630918375893019301295747281962987/5000000000000000000000000000000000000000", + "exp_upper": "10003243261836751786038602591494564437549/10000000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "61988/2833715" + }, + "10": { + "exp_lower": "1000206790403018649267184041288978248657/1000000000000000000000000000000000000000", + "exp_upper": "2500516976007546623167960103222445749253/2500000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "7053/6234173" + }, + "11": { + "exp_lower": "10002019255791173815676540174477997136241/10000000000000000000000000000000000000000", + "exp_upper": "2500504813947793453919135043619499411669/2500000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "34143/28337150" + }, + "12": { + "exp_lower": "244188838955937173152799000772966753/244140625000000000000000000000000000", + "exp_upper": "1000197484363518661233864707166071871331/1000000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "1637772/1714397575" + }, + "13": { + "exp_lower": "10001933988586235970593248414082864793191/10000000000000000000000000000000000000000", + "exp_upper": "10001933988586235970593248414082865303617/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "3064763/3428795150" + }, + "14": { + "exp_lower": "625118510179239092134146727144581987029/625000000000000000000000000000000000000", + "exp_upper": "5000948081433912737073173817156656151443/5000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "1222116/1714397575" + }, + "15": { + "exp_lower": "10001860948095049038065447122495285494181/10000000000000000000000000000000000000000", + "exp_upper": "50009304740475245190327235612476430023/50000000000000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "437037/685759030" + }, + "16": { + "exp_lower": "10001828006987297838063812648469929988329/10000000000000000000000000000000000000000", + "exp_upper": "2000365601397459567612762529693986099749/2000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "65416/155854325" + }, + "17": { + "exp_lower": "2500449265917948104603244530335785484971/2500000000000000000000000000000000000000", + "exp_upper": "5000898531835896209206489060671571225149/5000000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1423053/685759030" + }, + "18": { + "exp_lower": "5000883944812795540643983155649296384137/5000000000000000000000000000000000000000", + "exp_upper": "5000883944812795540643983155649296639343/5000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "73188/342879515" + }, + "19": { + "exp_lower": "2500435073355895874949004807973392212539/2500000000000000000000000000000000000000", + "exp_upper": "2000348058684716699959203846378713872113/2000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "24073/311708650" + }, + "2": { + "exp_lower": "10002889429351305579391066844438599404943/10000000000000000000000000000000000000000", + "exp_upper": "10002889429351305579391066844438599915793/10000000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "3622866/1714397575" + }, + "20": { + "exp_lower": "5000857056559616993851882270551970640809/5000000000000000000000000000000000000000", + "exp_upper": "400068564524769359508150581644157671681/400000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "26402/342879515" + }, + "21": { + "exp_lower": "5000844605243119232606473780943636091543/5000000000000000000000000000000000000000", + "exp_upper": "2500422302621559616303236890471818173373/2500000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "12978/2981561" + }, + "22": { + "exp_lower": "10001665466600995950680178785864990598847/10000000000000000000000000000000000000000", + "exp_upper": "2500416366650248987670044696466247777313/2500000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "77/2833715" + }, + "23": { + "exp_lower": "10001642778407860986976249508714803404087/10000000000000000000000000000000000000000", + "exp_upper": "1000164277840786098697624950871480391449/1000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "11447/542102" + }, + "25": { + "exp_lower": "5000800110274057186642873980504034355159/5000000000000000000000000000000000000000", + "exp_upper": "5000800110274057186642873980504034610359/5000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "11641/566743" + }, + "3": { + "exp_lower": "5001341228208864565852456321215617302809/5000000000000000000000000000000000000000", + "exp_upper": "1000268245641772913170491264243123511627/1000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "5956407/3428795150" + }, + "4": { + "exp_lower": "10002535609381542984545633250181207029999/10000000000000000000000000000000000000000", + "exp_upper": "2500633902345385746136408312545301885141/2500000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "95648/74539025" + }, + "481": { + "exp_lower": "5000045546607739441768548232115119086657/5000000000000000000000000000000000000000", + "exp_upper": "2000018218643095776707419292846047736727/2000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "13468/271051" + }, + "5": { + "exp_lower": "5001210853727897355673045114388323699841/5000000000000000000000000000000000000000", + "exp_upper": "5001210853727897355673045114388323955101/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "171439/137151806" + }, + "525": { + "exp_lower": "2500011606112967191389431902824088768163/2500000000000000000000000000000000000000", + "exp_upper": "10000046424451868765557727611296355582971/10000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "244461/566743" + }, + "529": { + "exp_lower": "10000042551050640055883233578467532894109/10000000000000000000000000000000000000000", + "exp_upper": "2500010637762660013970808394616883351107/2500000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "116748/271051" + }, + "6": { + "exp_lower": "10002328643768966895497189574260748515347/10000000000000000000000000000000000000000", + "exp_upper": "5001164321884483447748594787130374512919/5000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "97752/68575903" + }, + "7": { + "exp_lower": "5001124980109214394703176231536499760141/5000000000000000000000000000000000000000", + "exp_upper": "5001124980109214394703176231536500015377/5000000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "8995/5963122" + }, + "8": { + "exp_lower": "1250272725240877662442274762818427730447/1250000000000000000000000000000000000000", + "exp_upper": "2000436360385404259907639620509484470807/2000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "2308672/1714397575" + }, + "9": { + "exp_lower": "10002121682438781438362153684387409255829/10000000000000000000000000000000000000000", + "exp_upper": "5001060841219390719181076842193704883139/5000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4279437/3428795150" + } + }, + "upper": "77927162499999999997721171959807016237352035261/77927162500000000000000000000000000000000000000" + }, + "binary_search_steps": 46, + "bit_saving": "5103158916233/100000000000000000", + "coarse_grid_control": { + "assembly": { + "absorption_gap": "147772050946704450795209/25001275789499997448421000000000000", + "constraints": { + "K_dominates_log": "1275789506246172631493752551579/25001275789499997448421000000000000", + "K_geometry": "18751275789506247448421/25001275789499997448421000000000000", + "a_below_b": "1033421/50000000000", + "a_positive": "2551579/50000000000", + "alpha_below_one": "49999999999975001275789499997448421/50002551578999994896842000000000000", + "alpha_below_one_fourth": "12498086315725005103157999997448421/50002551578999994896842000000000000", + "alpha_positive": "2551579024993621052500002551579/50002551578999994896842000000000000", + "artificial_boundary": "1400081650528274840526312499992345263/200010206315999979587368000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "24998724210493752551579/25000000000000000000000", + "c_positive": "1275789506247448421/25000000000000000000000", + "cell_above_band": "49999999999924998724210500002551579/100005103157999989793684000000000000", + "compact_leaf": "427085500002551579/25000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "1275789524997448421/25001275789499997448421", + "epsilon_positive": "24999999999975000000000/25001275789499997448421", + "g1_above_kappa": "17277332673620444824363/2500127578949999744842100000000000", + "g2_above_kappa": "261/100000000000", + "g3_above_kappa": "147772050946704450795209/25001275789499997448421000000000000", + "g4_above_kappa": "261/100000000000", + "g5_above_kappa": "251436046988427119741387/40002041263199995917473600000000000", + "g6_above_kappa": "1357185338100135588500619/200010206315999979587368000000000000", + "g7_above_kappa": "2499872421062277587831520444824363/2500127578949999744842100000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "1275789524997448421/25001275789499997448421", + "lambda_above_internal": "2551579/50000000000000000000000", + "lambda_above_sigma": "1033421000002551579/50000000000000000000000", + "lambda_above_tau": "2551579/50000000000000000000000", + "lambda_prime_above_lambda": "2551579/50000000000000000000000", + "lambda_prime_below_one": "1275789499997448421/25000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "2041263214994641684100002551579/40002041263199995917473600000000000", + "phase_leaf_above_bit": "854171/50000000000", + "phase_local": "10206316174978311578500002551579/200010206315999979587368000000000000", + "prime_interval_packing": "1275789524997448421/25001275789499997448421", + "q_below_internal": "2551579/25000000000000000000000", + "q_below_leaf": "427085500002551579/25000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "1275789499997448421/25000000000000000000000", + "record_suffix": "1275789524997448421/25001275789499997448421", + "row_product_gap": "6548/25", + "short_record_fallback": "1249936207268472303386010555393241/1250063789474999872421050000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "1275789524997448421/25001275789499997448421", + "g2": "2551579/50000000000", + "g3": "1275789499996172631500002551579/25001275789499997448421000000000000", + "g4": "2551579/50000000000", + "g5": "2041263214994641684100002551579/40002041263199995917473600000000000", + "g6": "10206316174978311578500002551579/200010206315999979587368000000000000", + "g7": "24999999999975000000000/25001275789499997448421" + }, + "minimum_margin": "1275789499996172631500002551579/25001275789499997448421000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "2551579/50000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "2551579024993621052500002551579/50002551578999994896842000000000000", + "beta": "1/20", + "c": "1275789506247448421/25000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "24999999999975000000000/25001275789499997448421", + "h": "1/1000000000000", + "kappa": "5102897/100000000000", + "lambda_": "49997448421000002551579/50000000000000000000000", + "lambda_prime": "24998724210500002551579/25000000000000000000000", + "q": "1275789499997448421/25000000000000000000000", + "sigma": "9999283/10000000", + "tau": "49997448421/50000000000" + }, + "recurrence": { + "internal": "49997448421/50000000000", + "leaf": "199986377/200000000", + "reservations": "24998724210493752551579/25000000000000000000000" + }, + "scoped_limit": "2551579/50002551579" + }, + "bit_saving": "2551579/50000000000", + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6144678545, + "compact": 24578714177, + "geometry": 3999931962522, + "guard": 4350470, + "log_p": 25, + "normalization": 14000000000000, + "period": 49157428353, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714395060, + "rhs": 112000000156840, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714395060, + "rhs": 448000000627296, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714395060, + "rhs": 224000000313608, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714395060, + "rhs": 112000000156840000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428790120, + "rhs": 224000000156840, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428790120, + "rhs": 896000000627296, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428790120, + "rhs": 448000000313608, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428790120, + "rhs": 224000000156840000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857580241, + "rhs": 448000000156840, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857580241, + "rhs": 1792000000627296, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857580241, + "rhs": 896000000313608, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857580241, + "rhs": 448000000156840000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715160483, + "rhs": 896000000156840, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715160483, + "rhs": 3584000000627296, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715160483, + "rhs": 1792000000313608, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715160483, + "rhs": 896000000156840000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11430320967, + "rhs": 1792000000156840, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11430320967, + "rhs": 7168000000627296, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11430320967, + "rhs": 3584000000313608, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11430320967, + "rhs": 1792000000156840000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22860641934, + "rhs": 3584000000156840, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22860641934, + "rhs": 14336000000627296, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22860641934, + "rhs": 7168000000313608, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22860641934, + "rhs": 3584000000156840000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "5102897/100000000000", + "next_kappa": "2551449/50000000000", + "next_kappa_rejection": "{'g1_above_kappa': '-3861971557939776312029/1250063789474999872421050000000000', 'g3_above_kappa': '-102240706948295523689001/25001275789499997448421000000000000', 'g5_above_kappa': '-148584365643572839433349/40002041263199995917473600000000000', 'g6_above_kappa': '-642916725059864207373061/200010206315999979587368000000000000'}", + "original_enclosure_control": { + "accepted_upper": "31414992474181823539041702638067726953223056746772774820280620883954624480305519031745809764132994753882959208071327673451891977500917359580739448204316627613266780596935363578879651608348551002554602192748716268528516725933970431888266732694392744516294938417364990394615459496174135452875261376547601026472470226550667164245213471672673356552873415990292886450680769855783208863391794669086641914987931788023468477730670510596084024075441538328713023339916398705498355221133970083432695259402733395827765524378869634877859432717500503762008141825929233798931167008254709475368374051508388865497584191790219342658185334902048023058803459831350043847989335813486544496037300755940307394107652855486456896566575748317602547494848406247443162533947105245390168398328016459797877468285152634495601980504971432647153838327703599916923129770537527763252079817632121422808367288976061726138191284657279243722541218532065785928083475110872929968618380998934997039362092148018713422246239745551881230117940054196601787013559986011292764417361901016082566421251251012796046354407091934611225772748232290671622065318731567021326655644433/31414992474313928708180677874523621352103556206396664915326573931249860477582831911222317820380827856642039713344072149134147290838751531190936044695701314916811987072594709057045214808187944535470830707987621606984629316990440314337928054373375239756786622747536638358910194874324537834871658829915196615134159915111843176058062858398672677319063507082132196557150809134463687646912815011944937916567827230684945134911902541741913908828373190059709863602873297351619699439315502609902441966270292307166646440080416271209577604712655987561111810454673336732766552145593680695393728809448293097946140834850551963984106408521113636519343699470563400737447659076590127108692675420700718486850662726460389191754854035249509438356371913439956070892922708754251914760229957817430459967799146328317903978512043261923216018417388785375175312052564481508758456363897794780826879543255296865094989354227737926374713389566671431655092360096234539036355176207671348640178309523607871939963595335502695552839476616785591517423577290524646680111733605065635354851433706404171727955918218555419921577500000000000000000000000000000000000000000", + "next_bit_lower": "83629150000032150841840339335260391704594576990920669747612543458292027591267047206938392674041113125970424391021640961919112939837/83629150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "comparison": { + "additional_precision_gain": "602879/40000000000000000", + "difference": "56602879/40000000000000000", + "kappa": "2041159402879/40000000000000000", + "pr63_kappa": "5102757/100000000000", + "structural_gain_on_original_grid": "7/5000000000" + }, + "grid_denominator": 1000000000000000000, + "next_bit_saving": "51031589162331/1000000000000000000", + "preferred": { + "assembly": { + "absorption_gap": "693483857012977651709354807/2000102063178324455873643350680000000000000000", + "constraints": { + "K_dominates_log": "150092910035814427153715035479936249/2941326563497535964520063751000000000000", + "K_geometry": "37502551579470611396841083767/50002551579458111396841083767000000000000", + "a_below_b": "2066841083767/100000000000000000", + "a_positive": "5103158916233/100000000000000000", + "alpha_below_one": "99999999999950002551579458111396841083767/100005103158916222793682167534000000000000", + "alpha_below_one_fourth": "24996172630762835456317832460896841083767/100005103158916222793682167534000000000000", + "alpha_positive": "5103158966220242102709422603158916233/100005103158916222793682167534000000000000", + "artificial_boundary": "2800163301085869137052567735422190523251301/400020412635664891174728670136000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "49997448420529388603158916233/50000000000000000000000000000", + "c_positive": "2551579470611396841083767/50000000000000000000000000000", + "cell_above_band": "99999999999849997448420541888603158916233/200010206317832445587364335068000000000000", + "compact_leaf": "854170541888603158916233/50000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "2551579508111396841083767/50002551579458111396841083767", + "epsilon_positive": "49999999999950000000000000000/50002551579458111396841083767", + "g1_above_kappa": "2000102756662181468851295060034807/2000102063178324455873643350680000000000000000", + "g2_above_kappa": "520818071/200000000000000000", + "g3_above_kappa": "693483857012977651709354807/2000102063178324455873643350680000000000000000", + "g4_above_kappa": "520818071/200000000000000000", + "g5_above_kappa": "750038967175728683930267965859807/2000102063178324455873643350680000000000000000", + "g6_above_kappa": "1750089998764890911867089641199807/2000102063178324455873643350680000000000000000", + "g7_above_kappa": "1999897936819675646883018830788851295060034807/2000102063178324455873643350680000000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "2551579508111396841083767/50002551579458111396841083767", + "lambda_above_internal": "5103158916233/100000000000000000000000000000", + "lambda_above_sigma": "2066841083772103158916233/100000000000000000000000000000", + "lambda_above_tau": "5103158916233/100000000000000000000000000000", + "lambda_prime_above_lambda": "5103158916233/100000000000000000000000000000", + "lambda_prime_below_one": "2551579458111396841083767/50000000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "4082527162975683366275915803158916233/80004082527132978234945734027200000000000", + "phase_leaf_above_bit": "1708341083767/100000000000000000", + "phase_local": "20412636014888623149212024603158916233/400020412635664891174728670136000000000000", + "prime_interval_packing": "2551579508111396841083767/50002551579458111396841083767", + "q_below_internal": "5103158916233/50000000000000000000000000000", + "q_below_leaf": "854170541888603158916233/50000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "2551579458111396841083767/50000000000000000000000000000", + "record_suffix": "2551579508111396841083767/50002551579458111396841083767", + "row_product_gap": "6548/25", + "short_record_fallback": "4999744829028072887861858675469183867110910289/5000255157945811139684108376700000000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "2551579508111396841083767/50002551579458111396841083767", + "g2": "5103158916233/100000000000000000", + "g3": "2551579458108845261625655603158916233/50002551579458111396841083767000000000000", + "g4": "5103158916233/100000000000000000", + "g5": "4082527162975683366275915803158916233/80004082527132978234945734027200000000000", + "g6": "20412636014888623149212024603158916233/400020412635664891174728670136000000000000", + "g7": "49999999999950000000000000000/50002551579458111396841083767" + }, + "minimum_margin": "2551579458108845261625655603158916233/50002551579458111396841083767000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "5103158916233/100000000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "5103158966220242102709422603158916233/100005103158916222793682167534000000000000", + "beta": "1/20", + "c": "2551579470611396841083767/50000000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "49999999999950000000000000000/50002551579458111396841083767", + "h": "1/1000000000000", + "kappa": "2041159402879/40000000000000000", + "lambda_": "99994896841083772103158916233/100000000000000000000000000000", + "lambda_prime": "49997448420541888603158916233/50000000000000000000000000000", + "q": "2551579458111396841083767/50000000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "99994896841083767/100000000000000000" + }, + "recurrence": { + "internal": "99994896841083767/100000000000000000", + "leaf": "199986377/200000000", + "reservations": "49997448420529388603158916233/50000000000000000000000000000" + }, + "scoped_limit": "5103158916233/100005103158916233" + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 6144678545, + "compact": 24578714177, + "geometry": 3999931962510, + "guard": 4350469, + "log_p": 25, + "normalization": 14000000000000, + "period": 49157428353, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 714395060, + "rhs": 112000000156840, + "rhs_bits": 47 + }, + "compact": { + "exponent": 714395060, + "rhs": 448000000627296, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 714395060, + "rhs": 224000000313608, + "rhs_bits": 48 + }, + "rows": { + "exponent": 714395060, + "rhs": 112000000156840000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1428790120, + "rhs": 224000000156840, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1428790120, + "rhs": 896000000627296, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1428790120, + "rhs": 448000000313608, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1428790120, + "rhs": 224000000156840000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2857580241, + "rhs": 448000000156840, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2857580241, + "rhs": 1792000000627296, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2857580241, + "rhs": 896000000313608, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2857580241, + "rhs": 448000000156840000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5715160483, + "rhs": 896000000156840, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5715160483, + "rhs": 3584000000627296, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5715160483, + "rhs": 1792000000313608, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5715160483, + "rhs": 896000000156840000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 11430320967, + "rhs": 1792000000156840, + "rhs_bits": 51 + }, + "compact": { + "exponent": 11430320967, + "rhs": 7168000000627296, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11430320967, + "rhs": 3584000000313608, + "rhs_bits": 52 + }, + "rows": { + "exponent": 11430320967, + "rhs": 1792000000156840000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 22860641934, + "rhs": 3584000000156840, + "rhs_bits": 52 + }, + "compact": { + "exponent": 22860641934, + "rhs": 14336000000627296, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 22860641934, + "rhs": 7168000000313608, + "rhs_bits": 53 + }, + "rows": { + "exponent": 22860641934, + "rhs": 3584000000156840000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "kappa": "2041159402879/40000000000000000", + "next_kappa": "6378623133997/125000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-4083181894266708763013401699/6250318947432263924605135470875000000000000000'}" + }, + "profile_path": "research/reordered-rank-pair/paired-candidate.json", + "profile_sha256": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "proof_limits": [ + "The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.", + "The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.", + "All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.", + "Neither global optimality nor measured practical speedup is claimed." + ], + "rejected_moment": { + "degree": 8, + "lower": "8571987875000000003683551653063012975552828889113/8571987875000000000000000000000000000000000000000", + "rounding_denominator": 10000000000000000000000000000000000000000, + "saving": "51031589162331/1000000000000000000", + "strict_gap": "-920887913265753353254538048853/2142996968750000000000000000000000000000000000000", + "terms": { + "1": { + "exp_lower": "2000648652367350369920582377063597092877/2000000000000000000000000000000000000000", + "exp_upper": "250081081545918796240072797132949649399/250000000000000000000000000000000000000", + "log_lower": "3177185020398675220004135749131/500000000000000000000000000000", + "log_upper": "6354370040797350440008271498263/1000000000000000000000000000000", + "weight": "61988/2833715" + }, + "10": { + "exp_lower": "1250258488003773316649758574168230193791/1250000000000000000000000000000000000000", + "exp_upper": "10002067904030186533198068593345842060769/10000000000000000000000000000000000000000", + "log_lower": "2025892473901652377995140021789/500000000000000000000000000000", + "log_upper": "4051784947803304755990280043579/1000000000000000000000000000000", + "weight": "7053/6234173" + }, + "11": { + "exp_lower": "2500504813947793463812319247263927798241/2500000000000000000000000000000000000000", + "exp_upper": "10002019255791173855249276989055711703399/10000000000000000000000000000000000000000", + "log_lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "log_upper": "1978237383999489947973163960149/500000000000000000000000000000", + "weight": "34143/28337150" + }, + "12": { + "exp_lower": "5000987421817593325520461283451770998243/5000000000000000000000000000000000000000", + "exp_upper": "2500493710908796662760230641725885626729/2500000000000000000000000000000000000000", + "log_lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "log_upper": "483682923876168766222320252303/125000000000000000000000000000", + "weight": "1637772/1714397575" + }, + "13": { + "exp_lower": "10001933988586236008494783943791019880507/10000000000000000000000000000000000000000", + "exp_upper": "10001933988586236008494783943791020390933/10000000000000000000000000000000000000000", + "log_lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "log_upper": "1894710341667906851977392028349/500000000000000000000000000000", + "weight": "3064763/3428795150" + }, + "14": { + "exp_lower": "2000379232573565102261303916827906717827/2000000000000000000000000000000000000000", + "exp_upper": "5000948081433912755653259792069767049779/5000000000000000000000000000000000000000", + "log_lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "log_upper": "1857656355591045912742843316681/500000000000000000000000000000", + "weight": "1222116/1714397575" + }, + "15": { + "exp_lower": "80014887584760392596283449051250475889/80000000000000000000000000000000000000", + "exp_upper": "4883721166062035680925503482131987303/4882812500000000000000000000000000000", + "log_lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "log_upper": "1823159919847570187006133464057/500000000000000000000000000000", + "weight": "437037/685759030" + }, + "16": { + "exp_lower": "2500457001746824468472043338830729543989/2500000000000000000000000000000000000000", + "exp_upper": "10001828006987297873888173355322918686373/10000000000000000000000000000000000000000", + "log_lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "log_upper": "358178131855756920233934301243/100000000000000000000000000000", + "weight": "65416/155854325" + }, + "17": { + "exp_lower": "5000898531835896226815436415768443842763/5000000000000000000000000000000000000000", + "exp_upper": "500089853183589622681543641576844409797/500000000000000000000000000000000000000", + "log_lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "log_upper": "352115669674113435975873688039/100000000000000000000000000000", + "weight": "1423053/685759030" + }, + "18": { + "exp_lower": "10001767889625591115934073106937856632037/10000000000000000000000000000000000000000", + "exp_upper": "10001767889625591115934073106937857142449/10000000000000000000000000000000000000000", + "log_lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "log_upper": "43299978536264821847506861287/12500000000000000000000000000", + "weight": "73188/342879515" + }, + "19": { + "exp_lower": "10001740293423583533901264128804098082667/10000000000000000000000000000000000000000", + "exp_upper": "10001740293423583533901264128804098593077/10000000000000000000000000000000000000000", + "log_lower": "1704965530815454989999622033187/500000000000000000000000000000", + "log_upper": "27279448493047279839993952531/8000000000000000000000000000", + "weight": "24073/311708650" + }, + "2": { + "exp_lower": "10002889429351305636019653150309302953393/10000000000000000000000000000000000000000", + "exp_upper": "2500722357337826409004913287577325866061/2500000000000000000000000000000000000000", + "log_lower": "1415305715059351282647759844201/250000000000000000000000000000", + "log_upper": "1132244572047481026118207875361/200000000000000000000000000000", + "weight": "3622866/1714397575" + }, + "20": { + "exp_lower": "312553566034976063165496853081160074831/312500000000000000000000000000000000000", + "exp_upper": "2000342822623846804259179859719424581/2000000000000000000000000000000000000", + "log_lower": "83965944181083986164326198053/25000000000000000000000000000", + "log_upper": "3358637767243359446573047922121/1000000000000000000000000000000", + "weight": "26402/342879515" + }, + "21": { + "exp_lower": "2500422302621559624579253655476377600133/2500000000000000000000000000000000000000", + "exp_upper": "5000844605243119249158507310952755455469/5000000000000000000000000000000000000000", + "log_lower": "413730950384240930438459189737/125000000000000000000000000000", + "log_upper": "3309847603073927443507673517897/1000000000000000000000000000000", + "weight": "12978/2981561" + }, + "22": { + "exp_lower": "2500416366650248995829722405840081230591/2500000000000000000000000000000000000000", + "exp_upper": "10001665466600995983318889623360325432769/10000000000000000000000000000000000000000", + "log_lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "log_upper": "81583189685975864663227394971/25000000000000000000000000000", + "weight": "77/2833715" + }, + "23": { + "exp_lower": "2500410694601965254792573914274872537973/2500000000000000000000000000000000000000", + "exp_upper": "2000328555681572203834059131419898132459/2000000000000000000000000000000000000000", + "log_lower": "804718956217050187300379666613/250000000000000000000000000000", + "log_upper": "3218875824868200749201518666453/1000000000000000000000000000000", + "weight": "11447/542102" + }, + "25": { + "exp_lower": "10001600220548114404645707602572389258573/10000000000000000000000000000000000000000", + "exp_upper": "10001600220548114404645707602572389768973/10000000000000000000000000000000000000000", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "weight": "11641/566743" + }, + "3": { + "exp_lower": "10002682456417729184276588504835870946771/10000000000000000000000000000000000000000", + "exp_upper": "5001341228208864592138294252417935728711/5000000000000000000000000000000000000000", + "log_lower": "262787887606462037430651313067/50000000000000000000000000000", + "log_upper": "5255757752129240748613026261341/1000000000000000000000000000000", + "weight": "5956407/3428795150" + }, + "4": { + "exp_lower": "10002535609381543034238987146257411071669/10000000000000000000000000000000000000000", + "exp_upper": "2000507121876308606847797429251482316447/2000000000000000000000000000000000000000", + "log_lower": "2484037839838729910586903627673/500000000000000000000000000000", + "log_upper": "4968075679677459821173807255347/1000000000000000000000000000000", + "weight": "95648/74539025" + }, + "481": { + "exp_lower": "10000091093215478885322140431537484956017/10000000000000000000000000000000000000000", + "exp_upper": "10000091093215478885322140431537485466339/10000000000000000000000000000000000000000", + "log_lower": "35700554138317851917337677133/200000000000000000000000000000", + "log_upper": "89251385345794629793344192833/500000000000000000000000000000", + "weight": "13468/271051" + }, + "5": { + "exp_lower": "10002421707455794758806902349921645317387/10000000000000000000000000000000000000000", + "exp_upper": "5001210853727897379403451174960822913953/5000000000000000000000000000000000000000", + "log_lower": "1186233032090812516351878041259/250000000000000000000000000000", + "log_upper": "4744932128363250065407512165037/1000000000000000000000000000000", + "weight": "171439/137151806" + }, + "525": { + "exp_lower": "10000046424451868766467449616668560743529/10000000000000000000000000000000000000000", + "exp_upper": "10000046424451868766467449616668561253849/10000000000000000000000000000000000000000", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "weight": "244461/566743" + }, + "529": { + "exp_lower": "10000042551050640056717053215833107892989/10000000000000000000000000000000000000000", + "exp_upper": "2500010637762660014179263303958277100827/2500000000000000000000000000000000000000", + "log_lower": "41690804469525529197382917321/500000000000000000000000000000", + "log_upper": "83381608939051058394765834643/1000000000000000000000000000000", + "weight": "116748/271051" + }, + "6": { + "exp_lower": "5001164321884483470566959992315705168419/5000000000000000000000000000000000000000", + "exp_upper": "10002328643768966941133919984631410847329/10000000000000000000000000000000000000000", + "log_lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "log_upper": "2281305285784647719597897069941/500000000000000000000000000000", + "weight": "97752/68575903" + }, + "7": { + "exp_lower": "10002249960218428833500870239874329437677/10000000000000000000000000000000000000000", + "exp_upper": "200044999204368576670017404797486598963/200000000000000000000000000000000000000", + "log_lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "log_upper": "220422994587101856745145937741/50000000000000000000000000000", + "weight": "8995/5963122" + }, + "8": { + "exp_lower": "4000872720770808536918724056383927967/4000000000000000000000000000000000000", + "exp_upper": "10002181801927021342296810140959820427959/10000000000000000000000000000000000000000", + "log_lower": "66795757798711164246196486467/15625000000000000000000000000", + "log_upper": "4274928499117514511756575133889/1000000000000000000000000000000", + "weight": "2308672/1714397575" + }, + "9": { + "exp_lower": "2500530420609695369985607115381001329959/2500000000000000000000000000000000000000", + "exp_upper": "5001060841219390739971214230762002915143/5000000000000000000000000000000000000000", + "log_lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "log_upper": "2078572731730565528608890512209/500000000000000000000000000000", + "weight": "4279437/3428795150" + } + }, + "upper": "2142996968750000000920887913265753353254538048853/2142996968750000000000000000000000000000000000000" + }, + "source_sha256": { + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0" + }, + "status": "Exact finite conditional screen; physical linkage checked by parent verifier" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py new file mode 100644 index 0000000000..399299089e --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3 +"""Exact arithmetic screen of the reordered rank-pair complete physical profile. + +Uses PR63's paid profile, inherited PR48 logarithm enclosures and balanced +assembly (PR34 and successors). New directed Taylor bounds are documented in +this file. Prepared with OpenAI assistance. Inherited licenses apply. +Physical linkage is checked by the parent verifier; no full theorem or practical speedup claim is implied. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import importlib.util +import json +from math import factorial +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(ROOT/'scripts/experiments')) +import binary_frame_math as arithmetic +spec = importlib.util.spec_from_file_location('inherited_assembly', ROOT/'references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py') +balanced = importlib.util.module_from_spec(spec) +spec.loader.exec_module(balanced) + + +def floor_scaled(x, denominator): + return (x * denominator).numerator // (x * denominator).denominator + + +def ceiling_scaled(x, denominator): + return -floor_scaled(-x, denominator) + + +def exact_moment(m, width, rows, saving, degree=8, rounding=10**40): + """Bound sum n*t/(mW)*exp(saving*log(m/t)) entirely in Q. + + At 0 <= u <= v < 1, S_d(u) is a lower bound for exp(u). + The tail at v has first term v^(d+1)/(d+1)!; successive ratios + are at most v/(d+2). Thus S_d(v)+first/(1-v/(d+2)) is upper. + Directed rounding per exp bound preserves both inequalities. + The inherited logarithm helper encloses log(m/t) rationally. + """ + assert type(saving) is Q and 0 < saving < 1 and degree >= 1 + lo, hi = Q(), Q() + terms = {} + for t, count in sorted(rows.items()): + assert type(t) is int and type(count) is int and 0 < t < m and count > 0 + loglo, loghi = arithmetic.logs(Q(m, t)) + u, v = saving*loglo, saving*loghi + assert 0 <= u <= v < 1 + lower = sum((u**j / factorial(j) for j in range(degree+1)), Q()) + upper = sum((v**j / factorial(j) for j in range(degree+1)), Q()) + upper += v**(degree+1)/factorial(degree+1)/(1-v/Q(degree+2)) + lower = Q(floor_scaled(lower, rounding), rounding) + upper = Q(ceiling_scaled(upper, rounding), rounding) + weight = Q(t*count, m*width) + lo += weight*lower + hi += weight*upper + terms[t] = dict(weight=weight, log_lower=loglo, log_upper=loghi, + exp_lower=lower, exp_upper=upper) + return dict(saving=saving, lower=lo, upper=hi, strict_gap=1-hi, + degree=degree, rounding_denominator=rounding, terms=terms) + + +def assemble(bridge, saving, h, denominator): + preliminary = balanced.assembly(bridge, saving, Q(1, denominator), h=h) + kappa = Q(ceiling_scaled(preliminary['minimum_margin'], denominator)-1, denominator) + accepted = balanced.assembly(bridge, saving, kappa, h=h) + assert len(accepted['constraints']) == 47 and len(accepted['margins']) == 7 + assert all(v > 0 for v in accepted['constraints'].values()) + assert all(v > kappa for v in accepted['margins'].values()) + try: + balanced.assembly(bridge, saving, kappa+Q(1, denominator), h=h) + except balanced.InvalidAssembly as error: + rejected = str(error) + else: + raise AssertionError('Next kappa grid unexpectedly passes') + return dict(kappa=kappa, assembly=accepted, + next_kappa=kappa+Q(1, denominator), next_kappa_rejection=rejected, + eventual_bounds=balanced.cutoffs(bridge, accepted)) + + +def build_certificate(profile_path, denominator=10**18, h=Q(1, 10**12)): + profile_path = profile_path.resolve() + source = json.loads(profile_path.read_text()) + profile = source['bit'] + bridge = source['finite_bridge'] + m, width = profile['m'], profile['W'] + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + assert sum(t*n for t, n in rows.items()) == profile['total_rank'] + assert bridge['bit']['W'] == width + low, high = 1, floor_scaled(Q(717, 10**7), denominator) + assert exact_moment(m, width, rows, Q(low, denominator))['upper'] < 1 + assert exact_moment(m, width, rows, Q(high, denominator))['lower'] > 1 + steps = 0 + while low+1 < high: + mid = (low+high)//2 + test = exact_moment(m, width, rows, Q(mid, denominator)) + if test['upper'] < 1: + low = mid + elif test['lower'] > 1: + high = mid + else: + raise ArithmeticError('Rational bounds inconclusive: increase enclosure precision') + steps += 1 + saving = Q(low, denominator) + accepted = exact_moment(m, width, rows, saving) + rejected = exact_moment(m, width, rows, Q(high, denominator)) + assert accepted['upper'] < 1 < rejected['lower'] + preferred = assemble(bridge, saving, h, denominator) + coarse_denom = 10**11 + coarse_bit = Q(floor_scaled(saving, coarse_denom), coarse_denom) + assert exact_moment(m, width, rows, coarse_bit)['upper'] < 1 + coarse = assemble(bridge, coarse_bit, h, coarse_denom) + inherited_coarse = arithmetic.moment(m, width, rows, coarse_bit) + inherited_next = arithmetic.moment(m, width, rows, coarse_bit+Q(1, coarse_denom)) + assert inherited_coarse['upper'] < 1 < inherited_next['lower'] + coarse['original_enclosure_control'] = dict(accepted_upper=inherited_coarse['upper'], + next_bit_lower=inherited_next['lower']) + # Same coarse grid/backoff as PR63 separates the structural gain from + # the additional precision refinement suggested by the PR61 precedent. + prior = Q(source['kappa']) + paths = (Path(__file__), Path(__file__).with_name('audit.py'), + ROOT/'scripts/experiments/binary_frame_math.py', Path(balanced.__file__)) + return dict(status='Exact finite conditional screen; physical linkage checked by parent verifier', + profile_path=str(profile_path.relative_to(ROOT)), + profile_sha256=sha256(profile_path.read_bytes()).hexdigest(), + source_sha256={str(path.relative_to(ROOT)):sha256(path.read_bytes()).hexdigest() for path in paths}, + grid_denominator=denominator, binary_search_steps=steps, bit_saving=saving, + next_bit_saving=Q(high, denominator), accepted_moment=accepted, rejected_moment=rejected, + preferred=preferred, coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr63_kappa=prior, kappa=preferred['kappa'], + difference=preferred['kappa']-prior, + structural_gain_on_original_grid=coarse['kappa']-prior, + additional_precision_gain=preferred['kappa']-coarse['kappa']), + proof_limits=['The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.', + 'The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.', + 'All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.', + 'Neither global optimality nor measured practical speedup is claimed.']) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--profile', type=Path, default=Path(__file__).resolve().parent.parent/'paired-candidate.json') + parser.add_argument('--certificate', type=Path, default=Path(__file__).with_name('certificate.json')) + parser.add_argument('--record', action='store_true', help='Regenerate certificate instead of comparing with recorded result') + args = parser.parse_args() + result = arithmetic.js(build_certificate(args.profile)) + if args.record: + args.certificate.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.certificate.read_text()), 'Arithmetic certificate changed' + print(json.dumps(dict(status='PASS exact arithmetic', bit_saving=result['bit_saving'], + kappa=result['preferred']['kappa'], constraints=47, margins=7, + next_grid_controls='PASS', comparison=result['comparison']), indent=2)) + + +if __name__ == '__main__': + main() diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py new file mode 100644 index 0000000000..e23cba24ec --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py @@ -0,0 +1,68 @@ +"""Meaningful certificate verification and deliberate-failure controls.""" +import sys +sys.dont_write_bytecode = True +from copy import deepcopy +from fractions import Fraction as Q +import json +from pathlib import Path +import subprocess +import unittest + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import refine +import audit + + +class ExactArithmeticTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.certificate = json.loads((HERE/'certificate.json').read_text()) + cls.profile = json.loads((refine.ROOT/cls.certificate['profile_path']).read_text())['bit'] + + def test_complete_reproduction(self): + actual = refine.arithmetic.js(refine.build_certificate(refine.ROOT/self.certificate['profile_path'])) + self.assertEqual(actual, self.certificate) + + def test_independent_enclosures_and_controls(self): + actual = refine.arithmetic.js(audit.audit(self.certificate)) + self.assertEqual(actual, json.loads((HERE/'audit-receipt.json').read_text())) + self.assertEqual(len(actual['controls']), 10) + + def test_next_bit_grid_is_rejected(self): + p = self.profile + result = refine.exact_moment(p['m'], p['W'], {int(t):n for t,n in p['child_multiplicities'].items()}, Q(self.certificate['next_bit_saving'])) + self.assertGreater(result['lower'], 1) + + def test_forged_accepted_bit_is_rejected(self): + forged = deepcopy(self.certificate) + forged['bit_saving'] = forged['next_bit_saving'] + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_forged_source_digest_is_rejected(self): + forged = deepcopy(self.certificate) + forged['profile_sha256'] = '0'*64 + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_omitted_constraint_is_rejected(self): + forged = deepcopy(self.certificate) + del forged['preferred']['assembly']['constraints']['K_geometry'] + with self.assertRaises(AssertionError): + audit.audit(forged) + + def test_float_saving_refused(self): + with self.assertRaises(AssertionError): + refine.exact_moment(2, 1, {1:1}, 0.01) + + def test_python_optimization_is_rejected(self): + for script in ('refine.py', 'audit.py'): + result = subprocess.run([sys.executable, '-B', '-O', str(HERE/script)], + cwd=refine.ROOT, capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn('Assertions must remain enabled', result.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json new file mode 100644 index 0000000000..1d539de130 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json @@ -0,0 +1,9 @@ +{ + "source_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/64", + "head": "790a14e28e935398072b9a9a68694ce7fba8940f", + "source": "PR body reported bound, checked 2026-10-08; not an independent audit of PR64", + "kappa": "2041159402879/40000000000000000", + "pr64_kappa": "20411033624901463/400000000000000000000", + "difference": "560403888537/400000000000000000000", + "relative_gain": "560403888537/20411033624901463" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json new file mode 100644 index 0000000000..42958fc74b --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json @@ -0,0 +1,195 @@ +{ + "artifact_sha256": { + "frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940" + }, + "axes": { + "23": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 36432, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 31460, + "elementary_xors": 149137, + "h": 23, + "histogram": { + "0": 302057, + "1": 42694, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "2": 82722, + "21": 165, + "22": 23, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "rank_mass": 642620, + "roles": 27918, + "stats": { + "augmentations": 220, + "clearing_xors": 1577, + "matched": 37025, + "multi_node_regions": 10350, + "reclaimed": 801, + "regions": 52473 + } + }, + "gzip_sha256": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "replay": { + "elementary_xors": 149137, + "full_basis_vectors": 31460, + "h": 23, + "histogram": { + "0": 162914, + "1": 42694, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "2": 82722, + "21": 165, + "22": 23, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525 + }, + "output_roles": 5336, + "rank_mass": 642620, + "roles": 27918, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 621342 + }, + "schedule": "cover-core", + "word_sha256": "09c20f4e46207b7c91092cefb2b851c88694b6c12d3bf5091333cd8a78a197a4" + }, + "25": { + "compiled": { + "all_physical_frame_inclusions": true, + "baseline_pr48_roles": 48329, + "complete_dirty_basis_both_orientations": true, + "dirty_basis_vectors": 41186, + "elementary_xors": 205977, + "h": 25, + "histogram": { + "0": 416741, + "1": 55478, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "2": 115781, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569 + }, + "mode": { + "matching": true, + "reclaim": true + }, + "rank_mass": 915250, + "roles": 36586, + "stats": { + "augmentations": 286, + "clearing_xors": 2154, + "matched": 53194, + "multi_node_regions": 13975, + "reclaimed": 1090, + "regions": 73695 + } + }, + "gzip_sha256": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "replay": { + "elementary_xors": 205977, + "full_basis_vectors": 41186, + "h": 25, + "histogram": { + "0": 224465, + "1": 55478, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "2": 115781, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569 + }, + "output_roles": 6925, + "rank_mass": 915250, + "roles": 36586, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 856108 + }, + "schedule": "reverse-node", + "word_sha256": "a54443429f47c486016771ce0436effda098e142afc52861c20957e9ff8e086b" + } + }, + "source_sha256": { + "research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd" + }, + "status": "Exact topological scheduling of unchanged PR63 graph/compiler; both physical orientations and fixed profiles checked" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json new file mode 100644 index 0000000000..3b648dbe21 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json @@ -0,0 +1,38 @@ +{ + "h": 23, + "v": 1771, + "R": 27918, + "loss": 506, + "rank_sum": 642620, + "field_prime": 2305843009213693951, + "frames": 52475, + "distinct_matrices": 36399, + "crt_matrices": 6049, + "crt_disagreements": 0, + "blocks": [ + 0, + 343849, + 16857, + 10540, + 5782, + 4156, + 3911, + 3635, + 2858, + 2284, + 1804, + 1716, + 1262, + 1077, + 711, + 589, + 352, + 193, + 114, + 0, + 45, + 23, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json new file mode 100644 index 0000000000..19cc34b4ca --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json @@ -0,0 +1,40 @@ +{ + "h": 25, + "v": 2300, + "R": 36586, + "loss": 600, + "rank_sum": 915250, + "field_prime": 2305843009213693951, + "frames": 73697, + "distinct_matrices": 50394, + "crt_matrices": 8127, + "crt_disagreements": 0, + "blocks": [ + 0, + 474640, + 25158, + 12097, + 6776, + 5735, + 5500, + 4875, + 3784, + 3209, + 2695, + 2649, + 1906, + 1663, + 1344, + 1127, + 711, + 585, + 380, + 181, + 113, + 0, + 55, + 25, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json new file mode 100644 index 0000000000..2883a5f7c9 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json @@ -0,0 +1,35 @@ +{ + "h": 23, + "v": 1771, + "R": 27918, + "frames": 52475, + "distinct_transitions": 138016, + "singles": 15939, + "rank_mass": 642620, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 53320, + "2": 77409, + "3": 11086, + "4": 10683, + "5": 7723, + "6": 1994, + "7": 294, + "8": 1362, + "9": 525, + "10": 442, + "11": 11, + "12": 467, + "13": 22, + "14": 2005, + "15": 551, + "16": 547, + "17": 365, + "18": 4220, + "19": 7820, + "21": 165, + "22": 23 + }, + "word_sha256": "09c20f4e46207b7c91092cefb2b851c88694b6c12d3bf5091333cd8a78a197a4", + "copied_centers": 23, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json new file mode 100644 index 0000000000..3b4bc33ff6 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json @@ -0,0 +1,35 @@ +{ + "h": 25, + "v": 2300, + "R": 36586, + "frames": 73697, + "distinct_transitions": 190838, + "singles": 20700, + "rank_mass": 915250, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 69278, + "2": 108881, + "3": 14362, + "4": 16908, + "5": 10263, + "6": 1767, + "7": 541, + "8": 2115, + "9": 569, + "10": 529, + "12": 599, + "13": 25, + "14": 530, + "16": 3130, + "17": 869, + "18": 519, + "19": 395, + "20": 5436, + "21": 10164, + "23": 220, + "24": 25 + }, + "word_sha256": "a54443429f47c486016771ce0436effda098e142afc52861c20957e9ff8e086b", + "copied_centers": 25, + "transition_events_equal_independent_xor_word_reconstruction": true +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz new file mode 100644 index 0000000000..3a7c7c41c1 Binary files /dev/null and b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz differ diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz new file mode 100644 index 0000000000..6a239a3e9f Binary files /dev/null and b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz differ diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json new file mode 100644 index 0000000000..dbfad24526 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json @@ -0,0 +1,252 @@ +{ + "bit": { + "L": 2226400, + "N": 4073300, + "W": 137151806, + "axes": [ + { + "R": 27918, + "blocks": [ + 0, + 343849, + 16857, + 10540, + 5782, + 4156, + 3911, + 3635, + 2858, + 2284, + 1804, + 1716, + 1262, + 1077, + 711, + 589, + 352, + 193, + 114, + 0, + 45, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6049, + "distinct_matrices": 36399, + "field_prime": 2305843009213693951, + "frames": 52475, + "h": 23, + "loss": 506, + "rank_sum": 642620, + "v": 1771 + }, + { + "R": 36586, + "blocks": [ + 0, + 474640, + 25158, + 12097, + 6776, + 5735, + 5500, + 4875, + 3784, + 3209, + 2695, + 2649, + 1906, + 1663, + 1344, + 1127, + 711, + 585, + 380, + 181, + 113, + 0, + 55, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8127, + "distinct_matrices": 50394, + "field_prime": 2305843009213693951, + "frames": 73697, + "h": 25, + "loss": 600, + "rank_sum": 915250, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1725126040, + "10": 8922045, + "11": 8638179, + "12": 6278126, + "13": 5422273, + "14": 4015524, + "15": 3350617, + "16": 2068781, + "17": 9626535, + "18": 935180, + "19": 320551, + "2": 83325918, + "20": 303623, + "21": 16346100, + "22": 97405, + "23": 72402275, + "25": 64793806, + "3": 45665787, + "4": 25298896, + "481": 8146600, + "5": 19715485, + "525": 64793806, + "529": 64211400, + "6": 18735800, + "7": 16994125, + "8": 13274864, + "9": 10936339 + }, + "deficit": 1846900, + "m": 575, + "maxchild": 529, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 64211400, + "529": 64211400 + }, + "exterior_25": { + "25": 64793806, + "525": 64793806 + }, + "internal_23": { + "1": 790852700, + "10": 4149200, + "11": 3946800, + "12": 2902600, + "13": 2477100, + "14": 1635300, + "15": 1354700, + "16": 809600, + "17": 443900, + "18": 262200, + "2": 38771100, + "20": 103500, + "21": 52900, + "3": 24242000, + "4": 13298600, + "5": 9558800, + "6": 8995300, + "7": 8360500, + "8": 6573400, + "9": 5253200 + }, + "internal_25": { + "1": 840587440, + "10": 4772845, + "11": 4691379, + "12": 3375526, + "13": 2945173, + "14": 2380224, + "15": 1995917, + "16": 1259181, + "17": 1036035, + "18": 672980, + "19": 320551, + "2": 44554818, + "20": 200123, + "22": 97405, + "23": 44275, + "3": 21423787, + "4": 12000296, + "5": 10156685, + "6": 9740500, + "7": 8633625, + "8": 6701464, + "9": 5683139 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 78860441550 + }, + "bit_saving": "2551509/50000000000", + "finite_bridge": { + "bit": { + "W": 137151806, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "kappa": "5102757/100000000000", + "source": { + "axis23": "research/reordered-rank-pair/frame-profiles-23.json", + "axis25": "research/reordered-rank-pair/frame-profiles-25.json", + "profile_constructor": "research/pair-assembly/frame/frame_verify.py" + } +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py new file mode 100644 index 0000000000..a219a87719 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +"""Adversarial controls for the reordered serialized words and scheduling.""" +import sys +sys.dont_write_bytecode=True +import gzip,json,tempfile,subprocess +from pathlib import Path +import verify + +def rejected(label,call): + try:call() + except (AssertionError,IndexError,ValueError): + print('PASS rejected '+label,flush=True) + else:raise AssertionError('Invalid control accepted: '+label) + +def main(): + optimized=subprocess.run([sys.executable,'-B','-O',str(verify.HERE/'verify.py')],capture_output=True,text=True) + assert optimized.returncode!=0 and 'Assertions must remain enabled' in optimized.stderr + print('PASS rejected optimized Python invocation',flush=True) + work=verify.ROOT/'build/reordered-rank-pair';work.mkdir(parents=True,exist_ok=True) + original=json.loads(gzip.decompress((verify.HERE/'frame-word-23.json.gz').read_bytes())) + with tempfile.TemporaryDirectory(prefix='negative-',dir=work) as temporary: + path=Path(temporary)/'mutated.json' + bad=dict(original);bad['ops']=original['ops'][1:] + path.write_text(json.dumps(bad,separators=(',',':'))) + rejected('omitted physical XOR',lambda:verify.replay(path)) + bad=dict(original);bad['R']=original['R']-1 + path.write_text(json.dumps(bad,separators=(',',':'))) + rejected('understated physical role count',lambda:verify.replay(path)) + records=json.loads((verify.HERE/'frame-compiler.json').read_text()) + for name in ('frame-word-23.json.gz','frame-profiles-23.json'): + path.write_bytes((verify.HERE/name).read_bytes()+b' ') + rejected('changed digest '+name,lambda name=name:require_digest(path,records['artifact_sha256'][name])) + # Two equal-rank regions with an actual dependency must not be reversed. + blocks=[{'rank':1,'nodes':[1],'inputs':[],'candidates':[]}, + {'rank':1,'nodes':[2],'inputs':[1],'candidates':[]}] + invalid=lambda h:(None,blocks,[],{}, {1:0,2:1},{},[0,1],None) + rejected('backward region dependency',lambda:verify.reordered_build(invalid,'reverse-node')(23)) + print('PASS all six reordered-word negative controls',flush=True) + +def require_digest(path,expected):assert verify.sha(path)==expected + +if __name__=='__main__':main() diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py new file mode 100644 index 0000000000..5ac300ecd0 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Replay, profile, or deterministically rebuild a reordered PR63 circuit. + +PR62 graph: Avi Eisenberg, assisted by Claude; PR60 compiler: Chafik +Boukhalfa, derived from eumemic PR57, with OpenAI Codex assistance. +Region scheduling experiment: Rohan Arun with OpenAI Codex assistance. +Apache-2.0; inherited notices and mathematical dependencies remain applicable. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse, gzip, importlib.util, json, os, shlex, subprocess, tempfile +from hashlib import sha256 +from pathlib import Path + +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +EXP=ROOT/'scripts/experiments' +sys.path[:0]=[str(EXP),str(ROOT/'scripts')] +from binary_frame_replay import replay +from binary_frame_profile_prepare import prepare +import binary_frame_math as arithmetic + +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path) + module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module) + return module + +def sha(path):return sha256(path.read_bytes()).hexdigest() + +def reordered_build(original,mode): + def build(h): + parts=list(original(h)) + c,blocks,uses,value_uses,owner,signal,order,contains=parts + if mode=='reverse-node': + key=lambda g:(blocks[g]['rank'],-min(blocks[g]['nodes'])) + elif mode=='cover-core': + key=lambda g:(blocks[g]['rank'],blocks[g]['frame'][1],blocks[g]['frame'][0]) + else:raise ValueError(mode) + parts[6]=sorted(range(len(blocks)),key=key) + position={g:i for i,g in enumerate(parts[6])} + for g,b in enumerate(blocks): + for x in b['inputs']: + assert position[owner[x]]=4 + self.n=n + self.inputs=list(combinations(range(n),2)) + self.support=[0]+[1<= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +@lru_cache(None) +def logs(x): + x = Q(x) + require(x >= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py b/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py new file mode 100644 index 0000000000..85ad7b77bd --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py @@ -0,0 +1,88 @@ +"""Extract positive-rank transitions from independently replayed block words.""" +from collections import Counter +from hashlib import sha256 +from itertools import combinations +from pathlib import Path +import json,struct,sys,gzip,argparse + + +def prepare(path,destination): + raw=Path(path).read_bytes();raw=gzip.decompress(raw) if str(path).endswith('.gz') else raw;d=json.loads(raw) + h,v,R=d['h'],d['v'],d['R'] + frames=[(0,0,0),(0,0,h)]+[(c,u,1 if c==u else u.bit_count()-c.bit_count()) for c,u in d['frames']] + physical=[None]*R;transitions=Counter() + for s,a,b in d['events']: + assert 0<=s0 + histogram[r]+=count + with Path(destination).open('wb') as f: + f.write(struct.pack('<6I2Q',h,v,R,len(frames),len(transitions),singles,mass,h*(h-1))) + for c,u,r in frames:f.write(struct.pack('<2QI',c,u,r)) + for (a,b),count in sorted(transitions.items()):f.write(struct.pack('<2Iq',a,b,count)) + receipt=dict(h=h,v=v,R=R,frames=len(frames),distinct_transitions=len(transitions),singles=singles,rank_mass=mass, + rank_histogram_with_side_growth_split_into_singletons=dict(sorted(histogram.items())),word_sha256=sha256(raw).hexdigest(),copied_centers=centers, + transition_events_equal_independent_xor_word_reconstruction=True) + Path(str(destination)+'.json').write_text(json.dumps(receipt,indent=2)+'\n') + return receipt + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('word',type=Path);parser.add_argument('destination',type=Path) + args=parser.parse_args();print(json.dumps(prepare(args.word,args.destination),indent=2)) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp b/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp new file mode 100644 index 0000000000..1b52bd057d --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp @@ -0,0 +1,85 @@ +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']);hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + def acquire(g,anchors): + if reclaim: + bb={} + def ins(s): + row=slots[s];expr=1<>s&1;e^=1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1<=6 and h!=9, 'The ambient form I-J/9 must be nondegenerate' + self.h=h + self.local=circuit or ExclusionCircuit(h-1) + assert self.local.n==h-1, 'Pair circuit has the wrong ground size' + self.inputs=list(combinations(range(h),3)) + self.variables={t:i+1 for i,t in enumerate(self.inputs)} + self.args=[None]*(len(self.inputs)+1) + self.core=[0]+[sum(1<=2 and key in lookup: + mapping[node]=lookup[key];self.merged+=1 + continue + new=len(self.args);mapping[node]=new + self.args.append((a,b));self.core.append(core);self.union.append(union) + self.provenance.append((common,node)) + if core.bit_count()>=2:lookup[key]=new + for pair,node in sorted(self.local.outputs.items()): + t=tuple(sorted((common,*(self.points[common][x] for x in pair)))) + self.outputs[common,t]=mapping[node] + self.active=set();stack=list(self.outputs.values()) + while stack: + n=stack.pop() + if n in self.active:continue + self.active.add(n) + if self.args[n]:stack.extend(self.args[n]) + self.additions=sum(self.args[n] is not None for n in self.active) + + @lru_cache(maxsize=16384) + def support_in(self,node,common): + """Exact pair-input support in coordinates with this common point.""" + assert self.core[node]&(1<, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +U aa,bb; +while(std::cin>>aa>>bb){ + assert(aa=frames[aa].rank); + if(rr<=2){blocks[1]=rr; for(U t=0;t<=h;t++)std::cout<1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i= j+1 proves persistence.", + "common_cutoff": 14000000000000000000, + "cutoff_log2_input": { + "alpha": 5743214657, + "compact": 22972858625, + "geometry": 3999929625045871804, + "guard": 4205968, + "log_p": 25, + "normalization": 14000000000000000000, + "period": 45945717249, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000000000, + "powers": { + "alpha": { + "exponent": 738942256940779, + "rhs": 112000000000000151632, + "rhs_bits": 67 + }, + "compact": { + "exponent": 738942256940779, + "rhs": 448000000000000606464, + "rhs_bits": 69 + }, + "leaf": { + "exponent": 666666666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 738942256940779, + "rhs": 224000000000000303192, + "rhs_bits": 68 + }, + "rows": { + "exponent": 738942256940779, + "rhs": 112000000000000151632000, + "rhs_bits": 77 + } + } + }, + { + "log2_input": 28000000000000000000, + "powers": { + "alpha": { + "exponent": 1477884513881558, + "rhs": 224000000000000151632, + "rhs_bits": 68 + }, + "compact": { + "exponent": 1477884513881558, + "rhs": 896000000000000606464, + "rhs_bits": 70 + }, + "leaf": { + "exponent": 1333333333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1477884513881558, + "rhs": 448000000000000303192, + "rhs_bits": 69 + }, + "rows": { + "exponent": 1477884513881558, + "rhs": 224000000000000151632000, + "rhs_bits": 78 + } + } + }, + { + "log2_input": 56000000000000000000, + "powers": { + "alpha": { + "exponent": 2955769027763116, + "rhs": 448000000000000151632, + "rhs_bits": 69 + }, + "compact": { + "exponent": 2955769027763116, + "rhs": 1792000000000000606464, + "rhs_bits": 71 + }, + "leaf": { + "exponent": 2666666666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2955769027763116, + "rhs": 896000000000000303192, + "rhs_bits": 70 + }, + "rows": { + "exponent": 2955769027763116, + "rhs": 448000000000000151632000, + "rhs_bits": 79 + } + } + }, + { + "log2_input": 112000000000000000000, + "powers": { + "alpha": { + "exponent": 5911538055526232, + "rhs": 896000000000000151632, + "rhs_bits": 70 + }, + "compact": { + "exponent": 5911538055526232, + "rhs": 3584000000000000606464, + "rhs_bits": 72 + }, + "leaf": { + "exponent": 5333333333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5911538055526232, + "rhs": 1792000000000000303192, + "rhs_bits": 71 + }, + "rows": { + "exponent": 5911538055526232, + "rhs": 896000000000000151632000, + "rhs_bits": 80 + } + } + }, + { + "log2_input": 224000000000000000000, + "powers": { + "alpha": { + "exponent": 11823076111052464, + "rhs": 1792000000000000151632, + "rhs_bits": 71 + }, + "compact": { + "exponent": 11823076111052464, + "rhs": 7168000000000000606464, + "rhs_bits": 73 + }, + "leaf": { + "exponent": 10666666666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 11823076111052464, + "rhs": 3584000000000000303192, + "rhs_bits": 72 + }, + "rows": { + "exponent": 11823076111052464, + "rhs": 1792000000000000151632000, + "rhs_bits": 81 + } + } + }, + { + "log2_input": 448000000000000000000, + "powers": { + "alpha": { + "exponent": 23646152222104929, + "rhs": 3584000000000000151632, + "rhs_bits": 72 + }, + "compact": { + "exponent": 23646152222104929, + "rhs": 14336000000000000606464, + "rhs_bits": 74 + }, + "leaf": { + "exponent": 21333333333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 23646152222104929, + "rhs": 7168000000000000303192, + "rhs_bits": 73 + }, + "rows": { + "exponent": 23646152222104929, + "rhs": 3584000000000000151632000, + "rhs_bits": 82 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 130468512, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 843, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "7007/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "kappa": "5278214423139/100000000000000000", + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "endpoint_copy": { + "1": 4073300 + }, + "exterior_23": { + "23": 60740700, + "529": 60740700 + }, + "exterior_25": { + "25": 61581212, + "525": 61581212 + }, + "growth_23": { + "1": 8146600, + "21": 8146600 + }, + "growth_25": { + "1": 8146600, + "23": 8146600 + }, + "internal_23": { + "1": 852147700, + "10": 2711700, + "11": 2001000, + "12": 1925100, + "13": 1145400, + "14": 936100, + "15": 678500, + "16": 614100, + "17": 170200, + "18": 745200, + "2": 27273400, + "20": 393300, + "21": 52900, + "3": 36643600, + "4": 11313700, + "5": 9252900, + "6": 7389900, + "7": 4922000, + "8": 4505700, + "9": 3300500 + }, + "internal_25": { + "1": 893990174, + "10": 3995376, + "11": 2741508, + "12": 2644103, + "13": 1611610, + "14": 1609839, + "15": 830599, + "16": 1028951, + "17": 465773, + "18": 371910, + "19": 104489, + "2": 32313666, + "20": 685377, + "21": 178871, + "22": 299299, + "23": 44275, + "3": 33700359, + "4": 13716395, + "5": 7790629, + "6": 7951790, + "7": 6262256, + "8": 5552085, + "9": 3908597 + } + }, + "profiles": [ + "profile-23.json", + "profile-25.json" + ], + "rejected": { + "lower": "50000000000000000017106637695788650771911260814681/50000000000000000000000000000000000000000000000000", + "strict_gap": "-34213275391577306822702447847387/100000000000000000000000000000000000000000000000000", + "terms": { + "1": { + "lower": "2453286908910069975067517636985761484541971014751/100000000000000000000000000000000000000000000000000", + "upper": "2453286908910069975067517636985761614401708160073/100000000000000000000000000000000000000000000000000" + }, + "10": { + "lower": "89423683979002771596044586318607492316759066633/100000000000000000000000000000000000000000000000000", + "upper": "89423683979002771596044586318607497037212677219/100000000000000000000000000000000000000000000000000" + }, + "11": { + "lower": "69553325978221818601455113128246421536997951207/100000000000000000000000000000000000000000000000000", + "upper": "69553325978221818601455113128246425208510240703/100000000000000000000000000000000000000000000000000" + }, + "12": { + "lower": "73103277710538786315291669743296890764477102207/100000000000000000000000000000000000000000000000000", + "upper": "14620655542107757263058333948659378924670625931/20000000000000000000000000000000000000000000000000" + }, + "13": { + "lower": "47785376169641364315745140819103214476758836869/100000000000000000000000000000000000000000000000000", + "upper": "4778537616964136431574514081910321699917407261/10000000000000000000000000000000000000000000000000" + }, + "14": { + "lower": "5940153382646649889838916025218440611746160513/12500000000000000000000000000000000000000000000000", + "upper": "47521227061173199118711328201747527402430125709/100000000000000000000000000000000000000000000000000" + }, + "15": { + "lower": "30179985404282062933504431074485176586905131119/100000000000000000000000000000000000000000000000000", + "upper": "1207199416171282517340177242979407127199347981/4000000000000000000000000000000000000000000000000" + }, + "16": { + "lower": "17524659423684708183944373442120442573920711699/50000000000000000000000000000000000000000000000000", + "upper": "7009863769473883273577749376848177399589416873/20000000000000000000000000000000000000000000000000" + }, + "17": { + "lower": "199057183766321988347996242850091495938911199117/100000000000000000000000000000000000000000000000000", + "upper": "24882147970790248543499530356261438305784494281/12500000000000000000000000000000000000000000000000" + }, + "18": { + "lower": "2680861019870526710742790436152713839717907271/10000000000000000000000000000000000000000000000000", + "upper": "26808610198705267107427904361527139812286568781/100000000000000000000000000000000000000000000000000" + }, + "19": { + "lower": "132342335370248179227408759232631846817720581/5000000000000000000000000000000000000000000000000", + "upper": "529369341480992716909635036930527415213895353/20000000000000000000000000000000000000000000000000" + }, + "2": { + "lower": "79452620721346578132763391131173757938461847079/50000000000000000000000000000000000000000000000000", + "upper": "158905241442693156265526782262347524273044201493/100000000000000000000000000000000000000000000000000" + }, + "20": { + "lower": "14381191148368189776654964350551345672788228011/50000000000000000000000000000000000000000000000000", + "upper": "7190595574184094888327482175275673215952628047/25000000000000000000000000000000000000000000000000" + }, + "21": { + "lower": "115665098248898530353796773826999847123178674509/25000000000000000000000000000000000000000000000000", + "upper": "462660392995594121415187095307999412914404637259/100000000000000000000000000000000000000000000000000" + }, + "22": { + "lower": "4389339832508509761266762823075025075216493749/50000000000000000000000000000000000000000000000000", + "upper": "1097334958127127440316690705768756326727276441/12500000000000000000000000000000000000000000000000" + }, + "23": { + "lower": "26421428041761029497312326069397996329295924017/1250000000000000000000000000000000000000000000000", + "upper": "2113714243340882359784986085551839817916620297341/100000000000000000000000000000000000000000000000000" + }, + "25": { + "lower": "256564508451926125852760048284953970482315672179/12500000000000000000000000000000000000000000000000", + "upper": "256564508451926125852760048284953984025121250547/12500000000000000000000000000000000000000000000000" + }, + "3": { + "lower": "11255245782119463494587576976037997783833086333/4000000000000000000000000000000000000000000000000", + "upper": "281381144552986587364689424400949959456057520021/100000000000000000000000000000000000000000000000000" + }, + "4": { + "lower": "133494331386094674131435149953735551459675192663/100000000000000000000000000000000000000000000000000", + "upper": "66747165693047337065717574976867779254160663239/50000000000000000000000000000000000000000000000000" + }, + "481": { + "lower": "2611692318208634783039258477961474231184176777201/50000000000000000000000000000000000000000000000000", + "upper": "1044676927283453913215703391184589747616869538237/20000000000000000000000000000000000000000000000000" + }, + "5": { + "lower": "56811303292908148982354541096382579314951944679/50000000000000000000000000000000000000000000000000", + "upper": "113622606585816297964709082192765164628679387361/100000000000000000000000000000000000000000000000000" + }, + "525": { + "lower": "8619182227819825419380584771431045617833092752877/20000000000000000000000000000000000000000000000000", + "upper": "1723836445563965083876116954286209214559205235497/4000000000000000000000000000000000000000000000000" + }, + "529": { + "lower": "342652424524422177049942553381199272317198938489/800000000000000000000000000000000000000000000000", + "upper": "42831553065552772131242819172649911300510411939003/100000000000000000000000000000000000000000000000000" + }, + "6": { + "lower": "61365672499231210158951851687108811577891501531/50000000000000000000000000000000000000000000000000", + "upper": "30682836249615605079475925843554407408767559673/25000000000000000000000000000000000000000000000000" + }, + "7": { + "lower": "52191845055651420977315712417255790203166515341/50000000000000000000000000000000000000000000000000", + "upper": "10438369011130284195463142483451158591679421519/10000000000000000000000000000000000000000000000000" + }, + "8": { + "lower": "53639754859997121159232627493865358796015298943/50000000000000000000000000000000000000000000000000", + "upper": "53639754859997121159232627493865361627610196103/50000000000000000000000000000000000000000000000000" + }, + "9": { + "lower": "86505779487110519217426586804473899193312499233/100000000000000000000000000000000000000000000000000", + "upper": "21626444871777629804356646701118475939948798997/25000000000000000000000000000000000000000000000000" + } + }, + "upper": "100000000000000000034213275391577306822702447847387/100000000000000000000000000000000000000000000000000" + }, + "roles": [ + 26409, + 34772 + ], + "source_manifest_sha256": "e76eeb5bbc3fabc4e63135d611f7f48b891ce0b85e9c765b51b4c963feb38c4f", + "status": "Verified finite conditional witness; inherited all-size transfer remains assumed" +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py new file mode 100644 index 0000000000..74f1f8efa7 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +"""Screen complete paid profiles from independently replayed axis constructions.""" +import sys +if sys.flags.optimize:raise ValueError('Assertions required') +from pathlib import Path +from collections import Counter +from fractions import Fraction as Q +import importlib.util,argparse,json,subprocess,tempfile,hashlib,os,shlex +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +DEP=ROOT/'references/frame-compiler/pr71' +sys.path.insert(0,str(DEP/'scripts/experiments')) +from producer import check_sources +from binary_frame_replay import replay +from binary_frame_profile_prepare import prepare +import binary_frame_math as arithmetic + +def load(name,path): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m +exact=load('candidate_exact',ROOT/'research/rank-pair-refinement/refine.py') +balanced=load('candidate_assembly',DEP/'references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py') + +def profile(path): + v=json.loads(Path(path).read_text()) + return v['profile'] if 'profile' in v else v + +def calculate(first,second): + profiles=[profile(first),profile(second)] + N=4073300;m=575 + assert [p['h'] for p in profiles]==[23,25] + W=2*N+sum(N//p['v']*p['R'] for p in profiles) + parts={'data':Counter({1:18*N,21:2*N,17:2*N,481:2*N}),'endpoint_copy':Counter({1:N})} + for p in profiles: + h=p['h'];rep=N//p['v'];bank=rep*p['R'] + assert p['crt_disagreements']==0 + assert p['rank_sum']==h*p['R']+p['loss']==sum(t*n for t,n in enumerate(p['blocks'])) + assert p['loss']==h*(h-1) + parts[f'internal_{h}']=Counter({t:n*rep for t,n in enumerate(p['blocks']) if t and n}) + parts[f'exterior_{h}']=Counter({h:bank,m-2*h:bank}) + parts[f'growth_{h}']=Counter({1:2*N,h-2:2*N}) + rows=sum(parts.values(),Counter());assert sum(t*n for t,n in rows.items())==m*W-1846900 + lo,hi,grid=1,71700000000000,10**18 + while lo+11 + result.update(status='Verified finite conditional witness; inherited all-size transfer remains assumed', + source_manifest_sha256=hashlib.sha256((HERE/'SOURCE.json').read_bytes()).hexdigest(), + axes=axes,eventual_bounds=balanced.cutoffs(result['finite_bridge'],result['assembly']), + comparison=dict(pr71_commit='1bef94fd40a746452548c84a4a8f8834670a3113',pr71_kappa=Q(previous['kappa']), + relative_gain_pr71=result['kappa']/Q(previous['kappa'])-1, + pr71_complete_profile_exclusion_lower=old_lower)) + comparisons={} + for name,relative in ( + ('previous_pr74','research/balanced-split-frames/certificate.json'), + ('pr82','references/frame-compiler/pr82/research/envelope-balanced/certificate.json'), + ('pr84','references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json')): + prior=json.loads((ROOT/relative).read_text());physical=prior.get('bit',prior) + counts={int(t):n for t,n in physical['child_multiplicities'].items()} + assert sum(t*n for t,n in counts.items())==575*physical['W']-1846900 + lower=exact.moment(arithmetic,575,physical['W'],counts,result['bit_saving'])['lower'] + assert lower>1 and result['kappa']>Q(prior['kappa']) + comparisons[name]=dict(source_certificate=relative,kappa=Q(prior['kappa']),relative_gain=result['kappa']/Q(prior['kappa'])-1,complete_profile_exclusion_lower=lower) + result['additional_comparisons']=comparisons + result=arithmetic.js(result) + path=HERE/'certificate.json' + if record:path.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + else:assert result==json.loads(path.read_text()) + print('PASS exact moment, next-grid exclusions, 47 inequalities and seven margins',flush=True) + return result + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('--record',action='store_true');args=parser.parse_args();generate(args.record) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md new file mode 100644 index 0000000000..09ccd4ed5e --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md @@ -0,0 +1,137 @@ +# Paid carried-signal exchanges + +## Scope and provenance + +The selected producer uses Chafik Boukhalfa's pinned PR #84 indexed engine, +with up to three single-edge and three two-edge exchange passes. The local +invariant proof below applies at every accepted exchange and hence through +all passes. Our independently developed one-pass reference implementation +is retained as `exchange_policy.py`; it is not the selected runtime engine. +PR #70, by Alejandro Zarzuelo Urdiales, supplied the carried-signal exchange +method, and Dominik Scholz's PR #76 supplied integer profile-entropy pricing. +This composition and its independent reference work were prepared for +Thomas DiFiore with substantial OpenAI Codex assistance. All inherited +contributors, source notices and licenses remain credited. + +This is a finite construction argument. The inherited all-size compiler, +analytic, fixed-tape, precision, routing, prime-selection and recovery +hypotheses remain assumptions. The search is bounded and makes no claim of +minimum cost or global optimality. + +## Matching invariant + +Each eligible edge has the form `(g,u,i)`: region `g` carries its input +coordinate `i` to use `u`. The inherited graph builder supplies the entire +eligible edge list. Each edge already satisfies the required signal identity, +chronology and frame containment. The exchange policy selects edges from +that list and does not add an eligibility rule. + +For region `g`, let `O_g` be the span over F2 of its independent desired +output rows. Let `C_g` contain the selected input unit rows carried out of +that region. The matching invariants are: + +1. The rows consisting of a basis of `O_g` followed by `C_g` are independent. +2. Every use `u` is assigned to at most one selected edge. +3. The total number of selected edges equals the initial matching cardinality. + +The function `can(e,drop)` recomputes the local binary basis after excluding +`drop`, when present, and checks independence of the new edge's unit row. +Removing a selected row from another region also preserves independence. + +## One-edge exchanges + +Consider an unselected edge `e=(g,u,i)`. + +If `u` is assigned to edge `f`, the policy checks that adding `e` is locally +independent after removing `f` when both edges belong to `g`. When `f` belongs +to another region, it checks independence against the unchanged selected +rows at `g`. Replacing `f` by `e` preserves the assigned use and cardinality. +The donor region either has a checked replacement or loses a row. + +If `u` is unassigned, the policy finds a selected edge `f` in the same region +such that the replacement passes the same independence check. Removing `f` +frees its use, and adding `e` assigns the previously free use `u`. Cardinality +and use uniqueness are again preserved. + +Each accepted replacement strictly lowers the fixed integer discovery cost. +The selected implementation makes three deterministic passes. + +## Two-edge cycles + +Suppose the matching contains + +- `z=(g,u_z,i_z)`, and +- `f=(g',u_f,i_f)`, with `g != g'`. + +The policy considers eligible unselected edges + +- `e=(g,u_f,i_e)`, and +- `w=(g',u_z,i_w)`. + +It checks `can(e,z)` and `can(w,f)`, and requires +`price(e)+price(w) < price(z)+price(f)`. +The two local checks concern different regions. Replacing `{z,f}` with +`{e,w}` therefore preserves local independence in both regions. Every other +region is unchanged. The set of assigned uses is exactly the same, and two +selected edges replace two selected edges. Thus all three invariants hold. + +The implementation removes both old edges before inserting either new edge. +It asserts use uniqueness during insertion, then checks total cardinality +and every region's complete output-plus-carried-row independence at the end. +Each pass is deterministic, with explicit integer and edge-ID tie breaking. +The selected engine stops after at most three passes, or an unchanged pass. +Three-edge cycles are outside the selected policy. + +## Discovery pricing and final coordinates + +The discovery oracle receives each region's core and cover after applying +the selected pricing permutation in `selection.json`. A separately recorded +final permutation can subsequently relabel the compiled word; its complete +profiles are recomputed. The oracle's integer weights are retained +from PR #76: bounded rational logarithms define reproducible approximations +to `t log(t)`. The fixed oracle profile of each eligible transition supplies +its score. Prices remain fixed during the bounded matching passes. + +These prices choose among eligible matchings. Acceptance of the construction +uses the complete physical word and its independently reconstructed paid +profile. An improvement of a discovery score alone is insufficient evidence +for an exponent improvement. + +## Literal implementation and paid cost + +After matching, the inherited compiler constructs independent output rows, +selected carried unit rows, and an independent completion to a full basis. +Its binary elimination synthesizes that invertible basis change as literal +XORs at the common frame. All selected carrying, frame growth, copied +outputs, clearing controls and cleanup are represented in the resulting +word. Changing the matching does not remove any of these charges. + +The complete word is checked on all ordinary-input and arbitrary-dirty +basis vectors in both orientations. Its literal frame transitions determine +the exact fixed-basis recursive child multiset. Copied centers, endpoint +copies, data growth, data blocks and the inherited complex costs are included +by the complete recurrence checker. The exponent is accepted only after +exact moment bounds and the full assembly checks pass. + +## A strict profile-dominance criterion + +A useful sufficient condition can be stated without a discovery score. +At fixed physical width, replace `q` size-1 children by `n_t` size-`t` +children, where every `t>1`, `n_t>=0`, and `sum(t*n_t)=q`. The rank is +unchanged. For any positive saving `a`, the replaced contribution to the +characteristic changes from a factor proportional to `q` to +`sum(t*n_t/t^a)`, which is strictly smaller when at least one child is added. +All unchanged paid terms cancel in this comparison. + +As a checked example on the fixed PR #82 graphs at commit +`3410b940aa26e5876202152dfa7c4f66451ee22c`, the additional two-edge pass produced: + +| Axis | Size-1 children removed | Larger children added | +| --- | ---: | --- | +| h23 | 147 | 63 of size 2; 7 of size 3 | +| h25 | 216 | 56 of size 2; 12 of size 3; 2 of size 7; 6 of size 9 | + +Both ranks and role counts were unchanged, and both complete words passed +independent dirty replay and exact profiles. This establishes strict moment +improvement for every positive saving for that experiment. The selected +aligned graphs have their own separately checked complete costs. diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py new file mode 100644 index 0000000000..674f81f54e --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py @@ -0,0 +1,132 @@ +"""Composable carried-signal exchanges for an inherited frame compiler. + +PR70 exchange methodology: Alejandro Zarzuelo Urdiales. +PR76 integer profile-entropy pricing and one-edge passes: Dominik Scholz, +commit 2333abcea79793fe301b479a7c971cc2be45596c, with OpenAI assistance. +The selected two-edge cycles and factory packaging are prepared for +Thomas DiFiore with substantial OpenAI Codex assistance. Apache-2.0. +Every candidate still needs complete dirty replay and actual paid profiles. +""" +from pathlib import Path +from types import SimpleNamespace +import json,struct,subprocess,importlib.util,sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +MATH_PATH=ROOT/'references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py' +_math_spec=importlib.util.spec_from_file_location('aligned_exchange_pinned_math',MATH_PATH) +_math=importlib.util.module_from_spec(_math_spec) +_math_spec.loader.exec_module(_math) +logs=_math.logs + + +def install(compiler, oracle_executable, h, work_dir, passes=3, + two_passes=1, permutation=None, record_matching=False): + """Mutate this private compiler's matching callback; leave synthesis intact.""" + a=SimpleNamespace(h=h,work_dir=Path(work_dir),passes=passes, + two_passes=two_passes,price_coordinates=permutation is not None) + assert h in (23,25) and passes==3 and two_passes==1, 'Changed selected exchange configuration' + assert permutation is not None, 'Selected policy requires explicit coordinate pricing' + a.work_dir.mkdir(parents=True,exist_ok=True) + executable=Path(oracle_executable) + if permutation is not None:assert sorted(permutation)==list(range(h)) + def permute_mask(bits):return sum(1<>i&1) + original_match=compiler.match + def exchange_match(blocks,uses,enabled): + result=original_match(blocks,uses,enabled) + edges,chosen,right,stats=result + initial_cardinality=len(chosen) + if not a.passes:return result + owner={x:g for g,b in enumerate(blocks) for x in b['nodes']} + path=a.work_dir/'matching-oracle.bin' + with path.open('wb')as stream: + h=a.h;v=h*(h-1)*(h-2)//6 + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + for b in blocks: + frame=tuple(permute_mask(v) for v in b['frame']) if a.price_coordinates else b['frame'] + stream.write(struct.pack('<2QI',*frame,b['rank'])) + oracle=subprocess.Popen([str(executable),str(path)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + weights=[0]+[int(t*sum(logs(t))*10**30//2)for t in range(1,h+1)];cache={} + def entropy(x,y): + if (x,y)not in cache: + oracle.stdin.write(f'{x} {y}\n');oracle.stdin.flush();line=oracle.stdout.readline();assert line + values=list(map(int,line.split()));assert len(values)==h+1 + cache[x,y]=sum(n*w for n,w in zip(values,weights)) + return cache[x,y] + def cost(edge): + g,u,i=edge;p=owner[blocks[g]['inputs'][i]];t=uses[u][1] + return -entropy(g+2,t+2)+entropy(g+2,1)+entropy(0,p+2)+entropy(p+2,t+2) + try: + prices=[] + for j,e in enumerate(edges): + prices.append(cost(e)) + if j%20000==0:print('edge prices',j,len(edges),'pairs',len(cache),flush=True) + finally: + oracle.stdin.close();assert oracle.wait(timeout=10)==0 + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e]));initial=sum(prices[e]for e in chosen) + def can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]=0:continue + if not can(e,z) or not can(w,f):continue + key=(delta,z,w) + if best is None or keystep and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1< 3: + if choice in (1,2,3): + indices=[{1:0,2:(len(groups)-1)//2,3:len(groups)-1}[choice]] + elif isinstance(choice,str): + indices=list(range(min(int(choice[5:]),len(groups)))) + selected = [i for i in sorted(set(indices)) if len(groups[i]) == 2] + # Each split adds one group. This cap leaves at least one pair. + selected = selected[:max(0, n-len(groups)-1)] + result = [] + for i, group in enumerate(groups): + result.extend([[point] for point in group] if i in selected else [group]) + assert all(len(group) in (1, 2) for group in result) + assert len(result) < n + assert [point for group in result for point in group] == list(points) + return result + return Partition + + module.circuit_class = selected_class + original_points = module.alternating_points + def anchored_points(dimension, common): + order = original_points(dimension, common) + pairs = [(a,a+1) for a in range(0, dimension-1, 2) if common not in (a,a+1)] + head = [point for pair in pairs[:count] for point in pair] + result = head + [point for point in order if point not in head] + assert sorted(result) == [point for point in range(dimension) if point != common] + return result + module.alternating_points = anchored_points + circuit = module.graph(h) + if ordered: + circuit = reorder(circuit) + assert circuit.verify()['circuit_sha256'] == config['expected_scalar_sha256'] + else: + circuit.verify() + return circuit diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py new file mode 100644 index 0000000000..3f43c4a6ad --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +"""Aligned recursive partitions, future bases, and coordinated carry exchanges. + +Composition for Thomas DiFiore with OpenAI Codex assistance. Apache-2.0. +The pinned PR71 engine and PR69 graph are retained unchanged. Future-unit +completion follows PR79; weighted carry exchanges follow PR70/76. PR84 contributes exact candidate indexes, additional exchange passes and +future-use output routing. Our multi-pair aligned partitions and pricing +composition are checked as literal +finite words, including all physical frames and arbitrary dirty inputs. +""" +import sys +if sys.flags.optimize:raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +from hashlib import sha256 +import argparse,gzip,importlib.util,json,os,shlex,subprocess,tempfile,types +from concurrent.futures import ProcessPoolExecutor +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +DEP=ROOT/'references/frame-compiler/pr71' +sys.path.insert(0,str(DEP/'scripts/experiments')) +from binary_frame_replay import replay +from partition_graph import graph + +def load(name,path): + spec=importlib.util.spec_from_file_location(name,path);module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module);return module +def relabel(word,permutation): + from itertools import combinations + h,v=word['h'],word['v'];assert sorted(permutation)==list(range(h)) + triples=list(combinations(range(h),3));assert len(triples)==v + index={triple:i for i,triple in enumerate(triples)} + def triple(t):return sorted(permutation[x] for x in t) + mapping={i:index[tuple(triple(t))] for i,t in enumerate(triples)} + def mask(bits):return sum(1<>i&1) + word['frames']=[[mask(c),mask(u)] for c,u in word['frames']] + word['sources']={str(mapping[int(i)]):slot for i,slot in word['sources'].items()} + scatter=[] + for a,b in word['scatter']: + assert v<=a<2*v and b>=2*v + scatter.append([v+mapping[a-v],b]) + word['scatter']=scatter + word['outputs']=[[s,g,permutation[common],triple(t)] for s,g,common,t in word['outputs']] + return word + + + +def check_sources(): + for folder in (DEP,ROOT/'references/frame-compiler/pr69',ROOT/'references/frame-compiler/pr82',ROOT/'references/frame-compiler/pr84'): + manifest=json.loads((folder/'SOURCE.json').read_text()) + for name,digest in manifest['files'].items():assert sha256((folder/name).read_bytes()).hexdigest()==digest,name + manifest=json.loads((HERE/'SOURCE.json').read_text()) + required={str((HERE/name).relative_to(ROOT)) for name in ('producer.py','partition_graph.py','exchange_policy.py','future_completion.py','check.py','graph_audit.py','independent_check.py','selection.json')} + assert required<=set(manifest['files']), 'Incomplete selected source closure' + for name,digest in manifest['files'].items():assert sha256((ROOT/name).read_bytes()).hexdigest()==digest,name + + +def compile_axis(h): + check_sources() + config=json.loads((HERE/'selection.json').read_text())['axes'][str(h)] + assert config['engine']=='indexed-pr84' and config['single_exchange_passes']==3 + assert config['two_exchange_passes']==3 + assert config['output_mode'] in ('baseline','route-late') + price=config['pricing_permutation'];assert sorted(price)==list(range(h)) + source_path=ROOT/'references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py' + source=source_path.read_text() + old="for b in blocks:stream.write(struct.pack('<2QI',*b['frame'],b['rank']))" + new="for b in blocks:stream.write(struct.pack('<2QI',*(permute_mask(mask) for mask in b['frame']),b['rank']))" + assert source.count(old)==1;source=source.replace(old,new) + marker=' # Bounded two-donor exchanges after single-edge local optimization.' + assert source.count(marker)==1 + prefix,suffix=source.split(marker);assert suffix.count('for phase in range(3):')==1 + source=prefix+marker+suffix.replace('for phase in range(3):','for phase in range(TWO_PASSES):') + engine=types.ModuleType('aligned_private_engine') + engine.__file__=str(DEP/'scripts/experiments/split_pair_engine.py') + exec(compile(source,str(source_path)+':aligned-indexed','exec'),engine.__dict__) + engine.permute_mask=lambda bits:sum(1<>i&1) + engine.graph=graph;engine.PENDING_COST=True;engine.oracles=[] + engine.OUTPUT_MODE=config['output_mode'];engine.TWO_PASSES=config['two_exchange_passes'] + with tempfile.TemporaryDirectory(prefix='aligned-exchange-compile-') as directory: + work=Path(directory);oracle=work/'oracle' + subprocess.run([*shlex.split(os.environ.get('CXX','c++')),'-O3','-std=c++17','-I',str(DEP/'references/frame-compiler/pr48/scripts/partial_swap'),str(DEP/'references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp'),'-o',str(oracle)],check=True) + engine.ORACLE_EXE=str(oracle);engine.ORACLE_INPUT=str(work/'oracle.bin') + try:compiled,word=engine.compile_(h,matching=True,reclaim=True,dirty=True) + finally: + for process in engine.oracles:process.stdin.close();assert process.wait(timeout=10)==0 + compiled.pop('seconds',None) + compiled['scalar']=graph(h).verify() + compiled['graph_configuration']=config + compiled['private_engine_sha256']=sha256(source.encode()).hexdigest() + word=relabel(word,config['coordinate_permutation']) + raw=(json.dumps(word,separators=(',',':'))+'\n').encode() + assert sha256(raw).hexdigest()==config['expected_word_sha256'],'Selected word differs' + path=HERE/f'word-{h}.json.gz' + with path.open('wb') as stream: + with gzip.GzipFile(filename='',fileobj=stream,mode='wb',mtime=0) as archive:archive.write(raw) + receipt=replay(path) + axis=dict(configuration=config,compiled=compiled,replay=receipt,word_sha256=sha256(raw).hexdigest(),gzip_sha256=sha256(path.read_bytes()).hexdigest()) + (HERE/f'axis-{h}.json').write_text(json.dumps(axis,indent=2)+'\n') + print(f'PASS fresh aligned/exchange word h={h}, roles={receipt["roles"]}',flush=True) + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('--h',type=int,choices=(23,25));args=parser.parse_args() + if args.h:compile_axis(args.h) + else: + with ProcessPoolExecutor(max_workers=2) as pool:list(pool.map(compile_axis,(23,25))) diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json new file mode 100644 index 0000000000..a217fee46b --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json @@ -0,0 +1,38 @@ +{ + "h": 23, + "v": 1771, + "R": 26409, + "loss": 506, + "rank_sum": 607913, + "field_prime": 2305843009213693951, + "frames": 78515, + "distinct_matrices": 40708, + "crt_matrices": 5083, + "crt_disagreements": 0, + "blocks": [ + 0, + 370499, + 11858, + 15932, + 4919, + 4023, + 3213, + 2140, + 1959, + 1435, + 1179, + 870, + 837, + 498, + 407, + 295, + 267, + 74, + 324, + 0, + 171, + 23, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json new file mode 100644 index 0000000000..f33aaaa4ef --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json @@ -0,0 +1,40 @@ +{ + "h": 25, + "v": 2300, + "R": 34772, + "loss": 600, + "rank_sum": 869900, + "field_prime": 2305843009213693951, + "frames": 108758, + "distinct_matrices": 54701, + "crt_matrices": 5955, + "crt_disagreements": 0, + "blocks": [ + 0, + 504794, + 18246, + 19029, + 7745, + 4399, + 4490, + 3536, + 3135, + 2207, + 2256, + 1548, + 1493, + 910, + 909, + 469, + 581, + 263, + 210, + 59, + 387, + 101, + 169, + 25, + 0, + 0 + ] +} diff --git a/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json new file mode 100644 index 0000000000..ef0b559d02 --- /dev/null +++ b/references/frame-compiler/pr91/references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json @@ -0,0 +1,159 @@ +{ + "axes": { + "23": { + "groups": [ + "first6", + 1, + 1 + ], + "anchor_pairs": 6, + "coarse_word": "hhh", + "node_order": "rank, descending original core, ascending cover, first original node", + "execution_order": "natural after node renumbering", + "engine": "indexed-pr84", + "future_unit_completion": true, + "single_exchange_passes": 3, + "two_exchange_passes": 3, + "output_mode": "baseline", + "pending_live_controls": true, + "pending_cost_uses_next_use_frame": true, + "pricing_permutation": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 17, + 19, + 20, + 21, + 22, + 0, + 1, + 3, + 2, + 4 + ], + "coordinate_permutation": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 17, + 19, + 20, + 21, + 22, + 0, + 1, + 3, + 2, + 4 + ], + "expected_scalar_sha256": "dd88562359e47b54fee18e58c9f5a6007f2f6f46ef8e73d64b4a9213d854e2ad", + "expected_word_sha256": "5e387869128c22e49b98113d276c229764bcc7554ba88d69c74efa84cdb248e2" + }, + "25": { + "groups": [ + "first9", + 1, + 1, + 2 + ], + "anchor_pairs": 9, + "coarse_word": "hhh", + "node_order": "rank, descending original core, ascending cover, first original node", + "execution_order": "natural after node renumbering", + "engine": "indexed-pr84", + "future_unit_completion": true, + "single_exchange_passes": 3, + "two_exchange_passes": 3, + "output_mode": "route-late", + "pending_live_controls": true, + "pending_cost_uses_next_use_frame": true, + "pricing_permutation": [ + 6, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 23, + 22, + 24, + 1, + 0, + 2, + 3, + 4 + ], + "coordinate_permutation": [ + 6, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 23, + 22, + 24, + 1, + 0, + 2, + 3, + 4 + ], + "expected_scalar_sha256": "4720efefb683d3a8458968c2240c50337694940bf3cc0383e4aa71fcfeec1a48", + "expected_word_sha256": "3844b5a2cc48842cbd0c5bc1ae7c336fd760dabcf163093f92f0042bc5dd2757" + } + }, + "expected": { + "kappa": "5278214423139/100000000000000000", + "bit_saving": "52784930333197/1000000000000000000", + "W": 130468512, + "roles": [ + 26409, + 34772 + ] + }, + "scope": "Frozen multi-level aligned partitions, half-plane coarse factoring, indexed PR84 engine, explicit discovery and final flags; complete finite verification." +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/PROOF.md b/references/frame-compiler/pr91/research/aligned-composition/PROOF.md new file mode 100644 index 0000000000..9e5158a65c --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/PROOF.md @@ -0,0 +1,85 @@ +# Finite aligned-composition certificate and inherited scope + +## 1. Frozen construction and general weighted recursion + +At level d, start with the inherited ordered groups of size one or two. The selected vectors are h23 `['first6',1,1]` and h25 `['first9',1,1,2]`. The `firstK` choice requests the first K original group indices, while 1 requests the first group and 2 requests the middle group. Requested indices are deduplicated, valid, and must contain two points. Before admitting the kth split require `number_of_groups + admitted_splits + 1 < number_of_points`. This is the cap `admitted_splits ≤ number_of_points − number_of_groups − 1`. Apply admitted splits in decreasing index order so earlier indices keep their meaning. Each split replaces one pair by its two ordered singletons; the point partition and order are unchanged. Omitted depths request no split. + +The admission guard proves that the final number of groups is strictly less than the number of points, even for multiple requested splits and overlapping first/middle indices. Splits are disabled for n≤3; n=3 has two coarse groups and n≤2 uses the direct base case. Thus every recursive call strictly contracts, for every input size allowed by the grouping interface. + +Coarse vertex weights contain the original vertex weights in that group and its internal edges. Each coarse edge contains exactly the Cartesian-product edges between its two groups. These sets partition the original weighted total. Recursive total and single/pair exclusions therefore have the required support by induction on size. Row and column coarse parenthesizations partition the same Cartesian product into disjoint sets, so changing between them preserves every identity. The original attributed PR74 coarse fragment uses `COARSE="hhh"`: at depths 0,1,2 choose columns when i+j1. The exponential tail bound is `(v^9/9!)/(1-v/10)` for upper argument v<1. An independent atanh log expansion at base 3/2 with 60 terms and a degree-12 exponential bound confirms both signs. Complete pinned PR88 and reported PR74 child lists separately have lower moment greater than one at s. These are complete-profile historical comparisons; the foreign PR74 claim is an accepted working input, not an independent audit of its entire construction. + +The reconstructed bridge has bit wire bits 27, row coefficient 843, row degree 2000, gap `2000-(51/25)*843=7007/25`, and suffix slope 8000. Tests reject stale values. The complex saving stays 717/10^7 and the backoff stays 10^-12. All 47 strict assembly constraints and seven margins hold for κ=52789616935221/1000000000000000000. The next 10^-18 κ point violates a controlling strict margin; coarser-grid reassembly and original-prefix/old-guard/old-exposure negative controls also execute. Eventual arithmetic cutoffs are recomputed by the unchanged inherited routine. + +## 7. Provenance and proof boundary + +This proves the stated finite scalar, arbitrary-dirty physical, actual-frame/profile, complete-child and exact-inequality claims. The ordered affine residual compiler, all-size construction and recursion, finite scalar alphabet/overhead, routing, prime selection, exact recovery, fixed-tape simulation and analytic transfer remain inherited assumptions. Arithmetic cutoffs cover the recorded inequalities and do not establish every operational threshold. The additive Lean companion proves 197 rational arithmetic theorems for this exact finite witness; the limits below remain explicit. + +The portable engine and node helper are byte-identical to the independently audited 109-pin R11 discovery runtime and unchanged from R10. The graph provider composes only the independently proved firstK/anchoring/depth-coarse hooks with the existing order, physical compiler and final relabeling. The complete 1,290-file PR88 construction archive preserves all original source/finite inputs and construction certificates. The 17 updated PR74 files, fetch provenance, Apache license and notices are separately retained byte-for-byte; older PR74/78/82 archives remain unchanged. The source closure binds selected configurations, wrappers, engine, tests, proof, physical words, transition profiles, Lean module/input/generator and additive integration files. Derived arithmetic and validation receipts are excluded to avoid circular pins. + +## 8. Lean arithmetic companion and review boundary + +`formal/lean/KappaCheck/AlignedFrameComposition.lean` is unchanged from the independently reviewed module compiled with Lean/mathlib 4.21.0. It proves the complete 27-rank positive child counts, total width/rank/deficit, 54 Taylor domains and 54 rational Taylor bounds across accepted/rejected moments, the moment inequalities computed from the supplied counts, 47 strict assembly slacks, seven strict margins, and neighboring grid rejection. All 197 theorem dependencies are audited against `propext`, `Classical.choice`, and `Quot.sound`; there are no added axioms, `sorry`, or `native_decide`. + +The generator regenerates the exact module from the pinned `lean/input.json` without workspace dependencies. The Python companion checks that the input profiles, counts, moment bounds, parameters and slacks match the freshly recomposed certificate. The historical PR26 source table and axiom audit are extended additively; existing entries and checks remain. + +This formalizes rational arithmetic, not the validity of real logarithm/exponential enclosures, the physical derivation of the supplied arrays, or the all-size multiplication theorem. Expert review should concentrate on: + +- The inherited all-size framed/residual compiler and fixed-tape implementation. +- Analytic transfer, prime/precision selection and exact recovery. +- Interpretation of the finite-profile interface and Lean's external real-log/exp hypotheses. + +The exact saving is κ=52789616935221/10^18. Its approximate display is 2^(-14.2093862772), a 37.2695587404% increase over the original PR36 κ=384569/10^10. The increase over reported PR74 at `428b5c167686b42a83f1abf7003c6d17aec561ea` is about 0.01415763596%; reported comparison and complete paid-profile arithmetic do not assert an independent replay of its foreign producer. The frozen 59,045-pair portfolio has two equivalent best pairs (differing only in an inactive h23 cycle setting), with every other paid pair excluded at the selected saving. This is not a global optimum claim. + +Source credits: @eumemic [#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57) and [#69](https://github.com/CrocSwap/integer-mult-bounds/pull/69), reversible compilation and balanced coarse sums; @rohangar1 [#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59), split recursion; @ikeboy [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62), interval strips and core-aware assembly; @DominikScholz [#63](https://github.com/CrocSwap/integer-mult-bounds/pull/63) and [#68](https://github.com/CrocSwap/integer-mult-bounds/pull/68), ranked composition and pending live controls; @rohanarun [#65](https://github.com/CrocSwap/integer-mult-bounds/pull/65), [#67](https://github.com/CrocSwap/integer-mult-bounds/pull/67) [#78](https://github.com/CrocSwap/integer-mult-bounds/pull/78) and [#82](https://github.com/CrocSwap/integer-mult-bounds/pull/82), exact refined assembly, profile-cost reclamation, coordinate-flag search and coordinate-aware pricing; @alejandrozu [#70](https://github.com/CrocSwap/integer-mult-bounds/pull/70), carry exchanges; Thomas DiFiore (@tomdif) [#74](https://github.com/CrocSwap/integer-mult-bounds/pull/74), aligned firstK partition, multi-pair anchoring, depth-dependent coarse sums, original rank-first order and coordinate relabeling; @chafreaky [#60](https://github.com/CrocSwap/integer-mult-bounds/pull/60), [#71](https://github.com/CrocSwap/integer-mult-bounds/pull/71), [#79](https://github.com/CrocSwap/integer-mult-bounds/pull/79) [#84](https://github.com/CrocSwap/integer-mult-bounds/pull/84), [#88](https://github.com/CrocSwap/integer-mult-bounds/pull/88) and this composition, rank-preserving tie orders, three-donor cycles, ranked reclamation, anchored splits, future completion, integer scoring, exact indexes, two-cycles, output routing, search and certification. + +Chafik Boukhalfa prepared this package with OpenAI Codex assistance. Original contributor, OpenAI/manuscript, Apache-2.0, and AI-assistance notices remain attached. In particular Avi Eisenberg's Claude assistance and the original contributors' OpenAI disclosures are retained verbatim in the archives. PR78 inspires coordinate-flag search; the selected maps here come from the pinned updated PR74 source. diff --git a/references/frame-compiler/pr91/research/aligned-composition/README.md b/references/frame-compiler/pr91/research/aligned-composition/README.md new file mode 100644 index 0000000000..b59cc14696 --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/README.md @@ -0,0 +1,30 @@ +# Aligned frame composition + +The frozen conditional finite witness certifies **κ = 52789616935221/1000000000000000000 = 5.2789616935221e-5**, with bit saving **10558480765231/200000000000000000**. This is about **2^(-14.2093862772)** and **37.2695587404% above the original PR36 κ=384569/10^10**. Exact fractions are authoritative; decimals and percentages are displays. It is approximately **0.01415763596% above reported PR74** at `428b5c167686b42a83f1abf7003c6d17aec561ea`. The reported external construction is a working baseline, not independently producer-replayed here. + +| Quantity | This witness | +|---|---:| +| h23 / h25 auxiliary roles | 26,387 / 34,772 | +| Physical width W | 130,417,912 | +| Total recursive rank | 74,988,452,500 | +| Rank deficit | 1,846,900 | +| Largest child / parent dimension | 529 / 575 | +| Bit wire bits / row coefficient | 27 / 843 | + +The selected vectors `['first6',1,1]` and `['first9',1,1,2]` use six/nine anchored pairs, depth-coarse word `hhh`, PR74 node order and its updated coordinate maps. h23 uses baseline output order, identity oracle pricing and zero three-cycle passes. h25 uses late output order, coordinate-aware prices and three passes (60 accepted three-cycles). Future-compatible completion, exact retired/pending indexes and next-use prices remain enabled; bounded single/two-cycle exchange passes remain three. + +```sh +make aligned-composition-verify +make verify +make formal-historical-verify +``` + +The focused gate regenerates both pre-permutation and final words byte-for-byte, reconstructs dense scalar supports, replays all ordinary and arbitrary-dirty basis columns in both orientations, computes fresh actual-frame CRT profiles and checks the complete paid child list. Two independent rational moment enclosures, 47 strict inequalities, seven margins, next-grid rejection and adverse controls are retained. The additive Lean module proves 197 rational arithmetic theorems and exposes its external physical/analytic/all-size hypotheses. + +The [proof](PROOF.md) supplies general compatibility arguments, finite evidence and exact scope. Expert review should focus on the inherited all-size framed/residual compiler and fixed-tape implementation; analytic/prime/precision/recovery transfer; and the finite-profile interface plus Lean's external real-log/exp hypotheses. Arithmetic cutoffs are not full operational thresholds and no practical speedup is asserted. + +The complete immutable PR88 construction and original contributor archives are retained. The 59,045-pair finite search has two equivalent winners and does not prove global optimality. Discovery paths are provenance only; executable verification uses repository-relative inputs. + +Source credits: @eumemic [#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57) and [#69](https://github.com/CrocSwap/integer-mult-bounds/pull/69), reversible compilation and balanced coarse sums; @rohangar1 [#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59), split recursion; @ikeboy [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62), interval strips and core-aware assembly; @DominikScholz [#63](https://github.com/CrocSwap/integer-mult-bounds/pull/63) and [#68](https://github.com/CrocSwap/integer-mult-bounds/pull/68), ranked composition and pending live controls; @rohanarun [#65](https://github.com/CrocSwap/integer-mult-bounds/pull/65), [#67](https://github.com/CrocSwap/integer-mult-bounds/pull/67) [#78](https://github.com/CrocSwap/integer-mult-bounds/pull/78) and [#82](https://github.com/CrocSwap/integer-mult-bounds/pull/82), exact refined assembly, profile-cost reclamation, coordinate-flag search and coordinate-aware pricing; @alejandrozu [#70](https://github.com/CrocSwap/integer-mult-bounds/pull/70), carry exchanges; Thomas DiFiore (@tomdif) [#74](https://github.com/CrocSwap/integer-mult-bounds/pull/74), aligned firstK partition, multi-pair anchoring, depth-dependent coarse sums, original rank-first order and coordinate relabeling; @chafreaky [#60](https://github.com/CrocSwap/integer-mult-bounds/pull/60), [#71](https://github.com/CrocSwap/integer-mult-bounds/pull/71), [#79](https://github.com/CrocSwap/integer-mult-bounds/pull/79) [#84](https://github.com/CrocSwap/integer-mult-bounds/pull/84), [#88](https://github.com/CrocSwap/integer-mult-bounds/pull/88) and this composition, rank-preserving tie orders, three-donor cycles, ranked reclamation, anchored splits, future completion, integer scoring, exact indexes, two-cycles, output routing, search and certification. + +Chafik Boukhalfa prepared this package with OpenAI Codex assistance. Original contributor, OpenAI/manuscript, Apache-2.0, and AI-assistance notices remain attached. In particular Avi Eisenberg's Claude assistance and the original contributors' OpenAI disclosures are retained verbatim in the archives. PR78 inspires coordinate-flag search; the selected maps here come from the pinned updated PR74 source. diff --git a/references/frame-compiler/pr91/research/aligned-composition/SOURCE.json b/references/frame-compiler/pr91/research/aligned-composition/SOURCE.json new file mode 100644 index 0000000000..746882001a --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/SOURCE.json @@ -0,0 +1,2730 @@ +{ + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "discovery_selection_sha256": "43a762adf17b2338b2d7ec486fd6eb17d00d1d221e7f1e4041711cbce9964ea7", + "files": { + ".gitattributes": "9bb1446c2a2e2730b1e2ade3bd14b0d5c8ecc7462e3e5cbab2935abbaf6698dd", + ".github/workflows/verify.yml": "1758bda8676cb8478dcafbf46dc342ab163df97fe4e37c6b1391758b63c114cd", + "Makefile": "3c4f612cc4f7ed2c146f11e1059501ce8d476ea9e754d457355bf0e81674d88a", + "NOTICE": "f0a0aafc64143a58437c2cc68cecf2fc223a72e7922e74733f4b697415441d50", + "README.md": "3000ad3651b6f27a920c180a3c50eb3550d0004ff9d0d7c296fae4e61318c45d", + "certificates/aligned-composition-compiler.json": "1841d7d197e02ac43ddeea68b2a89c0f0bdfa1da0f59ca54409e2d25093c813f", + "certificates/aligned-composition-profiles-23.json": "b7fcb59e80ec2e882a0bc5a9fee8f52733089694999069d019e47c00b6fada1d", + "certificates/aligned-composition-profiles-25.json": "a0e3e711e0c1a6fad082554799f9799f5499f1775a0c0cbb49f1ec61ff5a15d8", + "certificates/aligned-composition-transitions-23.json": "1f981af15378d5eedb2439f6337f7dfc064489b8e4eca0fbee7d62a34e99cb16", + "certificates/aligned-composition-transitions-25.json": "0df31ccc6ca3e01b97a7f09c558f910eb0ebff685241efe688211d6a8386978c", + "certificates/aligned-composition-word-23.json.gz": "0fea17764e960cf49f4b21f121ad569a1df09fc45d8f38e280369bc56f883ac3", + "certificates/aligned-composition-word-25.json.gz": "71fac881c9fa777984db921943b934a6cbe17ef0bdce79afee9a8832470c4b87", + "formal/lean/AuditAll.lean": "0ad804bdcc7bf5db26497d0c04de8bf9c5ef3d44a65ac4ff4105947584c8c14b", + "formal/lean/KappaCheck.lean": "3d2b11f5151ca0416b61c900efd558efcf624620e36c66de3af11dec8bfd987c", + "formal/lean/KappaCheck/AlignedFrameComposition.lean": "282b1500f96c4ac8ac5dad5da844296ad41be109edcaca0310730304b50ca357", + "formal/lean/SOURCES.md": "b44cb68af271cce4fae88fa40012408cbc1023838963c2e25505315c73cafb07", + "formal/lean/sources.py": "f7085fe81131002a3741cde05237effa46f60d62825eb4fd9658ad7e33f2b014", + "references/frame-compiler/aligned-r11/CANDIDATE_PARENT.json": "648439c2c3f5735528842bd388d632e54781dbb118e44ef60e871590c7879e86", + "references/frame-compiler/aligned-r11/COORDINATES.json": "7b45884c3a1211d55c0d9bdb1669d11c7da79bf866a527ba1c303c088b042c52", + "references/frame-compiler/aligned-r11/EXPERIMENT.txt": "266a673c48e46d038022647527af43669c4c049145eba245a8a4747168de7985", + "references/frame-compiler/aligned-r11/FROZEN.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "references/frame-compiler/aligned-r11/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/aligned-r11/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/aligned-r11/R10_FROZEN.json": "c05715807ad48d2c292f6e3431c338c39d4e7ae80b9758a8c3f8ace520178e23", + "references/frame-compiler/aligned-r11/SOURCE.json": "64584e5521f782571fe9415fe6bb83728499f0f4d5fbff79e345328586cc7515", + "references/frame-compiler/aligned-r11/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/aligned-r11/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/aligned-r11/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/aligned-r11/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/aligned-r11/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/aligned-r11/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/aligned-r11/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/aligned-r11/batch.py": "09a3aae35304d438717371ce7de87b643271c5d79e1e8f298dae82c47c6787ff", + "references/frame-compiler/aligned-r11/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/aligned-r11/candidate-parent/h23/profiles.json": "670e625363dbd1978c74626dc2c47f9a5e9eda6653292113bc9e5928f13c86cf", + "references/frame-compiler/aligned-r11/candidate-parent/h23/replay.json": "921786b8eb8f51c53a77ee7ac83c497c2c35e5bb7d212c14f3f1c8f0f6d5b244", + "references/frame-compiler/aligned-r11/candidate-parent/h23/result.json": "5da863ef7931838dc108707358602745c159895a93ca5a5b578a563d77150fcb", + "references/frame-compiler/aligned-r11/candidate-parent/h23/word.json.gz": "fd727e805988ba943d26677f1ac110aa8caf4641caf0691d89e45317bf318e18", + "references/frame-compiler/aligned-r11/candidate-parent/h25/profiles.json": "bc27776644370032075544d5b9d4b5c46786d965fa150425cf6f23a259534c87", + "references/frame-compiler/aligned-r11/candidate-parent/h25/replay.json": "ee600e994706f2570d74abdeb882221a7492fbd092c086a536a102dbf8ffb08b", + "references/frame-compiler/aligned-r11/candidate-parent/h25/result.json": "acb9eb1f9b9a788aad0f8dd8aee3246c93627a12245c3d237749363aab5f6d51", + "references/frame-compiler/aligned-r11/candidate-parent/h25/word.json.gz": "e077b4ba936efb82a17f3a0c39e35b94dd9a2003797036219fd4df021e72d511", + "references/frame-compiler/aligned-r11/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/aligned-r11/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/aligned-r11/frozen/h23/profiles.json": "45708723716dded9bb2688fc9e576de4550b31ff4762a41d533c486374ac8664", + "references/frame-compiler/aligned-r11/frozen/h23/replay.json": "7d64be18c6f32399dfbc64af33a901eba7a9bc26dcd4152863c2b40129d555d6", + "references/frame-compiler/aligned-r11/frozen/h23/result.json": "05bd010217fe06dcea4bf5b3e32709d390ce79ee8dbbe17b3282e549bbdf871d", + "references/frame-compiler/aligned-r11/frozen/h23/word.json.gz": "2d88e9d3616a6d3d78f93bf42d08dac8fd6e95e81ec8714bd6c63b922139fb3b", + "references/frame-compiler/aligned-r11/frozen/h25/profiles.json": "1ca57426564eb285f0d092dac5433531505f08f53ea169c3f12df9a2d47e1659", + "references/frame-compiler/aligned-r11/frozen/h25/replay.json": "9a817b63ca1bb19403f19ab88c7d97e4cb507954d52a66b4d76e5daa05e791b6", + "references/frame-compiler/aligned-r11/frozen/h25/result.json": "707afe7e44304b4ccf13d34da51e3609e8619adb8b26a15ab29bb47b154b0380", + "references/frame-compiler/aligned-r11/frozen/h25/word.json.gz": "6b50c71df1415d867cb44f6da6f000b793b266ea3d995454fb2b9862966b5959", + "references/frame-compiler/aligned-r11/graph_batch.py": "1e5e07722f1d3af3df1f4bfb7bf4cd73d5233b1c88d294722bbd57df94566c53", + "references/frame-compiler/aligned-r11/keys.json": "da7f509569e1f90a5314f44d541a2d6ce66fc100b5b5565b1290e21ce21cbb1e", + "references/frame-compiler/aligned-r11/nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "references/frame-compiler/aligned-r11/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/aligned-r11/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/aligned-r11/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/aligned-r11/original/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/aligned-r11/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/aligned-r11/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/aligned-r11/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/aligned-r11/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/aligned-r11/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/aligned-r11/references/pr74-aligned/FETCH.json": "92e596b5868b86428523c16675cc25fe4563148012535b167aa48ff7b420cc58", + "references/frame-compiler/aligned-r11/references/pr74-aligned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/aligned-r11/references/pr74-aligned/NOTICE": "a8224aed09f2ccccf88a943cb14a8db6ba4b6ada545a9b457f1c3649e257bb00", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/PROOF.md": "1a931b3d2a757f9a55911394da5fa9617775a7fee4da0739189a7a169f62efef", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/README.md": "584c64da8ea46b46dfcc6a8b86f4543bba641f10d36f95bf407b2a459591da50", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/SOURCE.json": "e76eeb5bbc3fabc4e63135d611f7f48b891ce0b85e9c765b51b4c963feb38c4f", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/certificate.json": "6f3a4a0e15ef5527e92b865722a9fd8f15658231e6ebbbc55e96c3a433e12846", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/check.py": "86d4ab1b52c490a350ae84e2805d8a95557dfcf709597ecc365aaef4a0178f31", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md": "0a6df5c08fcfda77349e1f543128502951cee2bea8fb08904360d8bfe0d10b12", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py": "671704f8a5a8276c68aeef0432658e20e8c7dfff6b5fcf5b342f40644d920d30", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/future_completion.py": "bfe7dd61b01abb445c363503bca61b217bf2e82d977de2336de3a48e1b8effd7", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/graph_audit.py": "a5fdeec4789469052c0a60ee894851c412c7b9de4844942c09ccaa048b9da94c", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/partition-proof.md": "aeeb9fec06d38eb829b9be4de934d63cf65fb0064440306520de12d41f21921d", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/partition_graph.py": "63e23b1d33094f99e96821f1859fee2612907d0cab928f983cce3d279a331900", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/producer.py": "533819362dbf7a211647182c32d9bd6c89a9e71c1d0987baf555dc333a05e9c8", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/profile-23.json": "9ceb5e50591c52ed8c225f248b9f1f99f9a66dac4cecb00b8942aab84417d0da", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/profile-25.json": "76fb46fe77da64e867c86adff6a8fa65a488065d6413c62e9e946d51e75c8f7e", + "references/frame-compiler/aligned-r11/references/pr74-aligned/research/aligned-exchange-frames/selection.json": "eebd008b4c93622200659c6b001a440ce3857b5e34d93e50a5219a4c74fb21b5", + "references/frame-compiler/aligned-r11/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/aligned-r11/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/aligned-r11/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/aligned-r11/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/aligned-r11/references/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/frame-compiler/aligned-r11/references/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/aligned-r11/references/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/frame-compiler/aligned-r11/references/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "references/frame-compiler/aligned-r11/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/aligned-r11/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/aligned-r11/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/aligned-r11/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/aligned-r11/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/aligned-r11/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/aligned-r11/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/aligned-r11/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/aligned-r11/scripts/experiments/compiler.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "references/frame-compiler/aligned-r11/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/aligned-r11/test_order.py": "0de6726f195097582e6a482e8c67b9a5569a8d18f2236dadb656069397bb56f9", + "references/frame-compiler/aligned-r11/test_three_cycles.py": "8d4c69ac2423600e25b9962d3dd81780a8be3a43895dd698c6ecd963bd96a2c0", + "references/frame-compiler/final-r10/CANDIDATE_PARENT.json": "648439c2c3f5735528842bd388d632e54781dbb118e44ef60e871590c7879e86", + "references/frame-compiler/final-r10/COORDINATES.json": "7b45884c3a1211d55c0d9bdb1669d11c7da79bf866a527ba1c303c088b042c52", + "references/frame-compiler/final-r10/EXPERIMENT.txt": "e29f48d8e1f097ddc5f2adbceb3118093473ec1173d2b14669f581807648dca9", + "references/frame-compiler/final-r10/FROZEN.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "references/frame-compiler/final-r10/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/final-r10/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/final-r10/SOURCE.json": "45c1f1e6da14472859d89b3247ad6591a596f0729eff369e21c7581d3794859e", + "references/frame-compiler/final-r10/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/final-r10/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/final-r10/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/final-r10/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/final-r10/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/final-r10/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/final-r10/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/final-r10/batch.py": "bb96775fe0b2facf1d5e9f2d921998959480e4c895434ea974042aba971cbb74", + "references/frame-compiler/final-r10/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/final-r10/candidate-parent/h23/profiles.json": "670e625363dbd1978c74626dc2c47f9a5e9eda6653292113bc9e5928f13c86cf", + "references/frame-compiler/final-r10/candidate-parent/h23/replay.json": "921786b8eb8f51c53a77ee7ac83c497c2c35e5bb7d212c14f3f1c8f0f6d5b244", + "references/frame-compiler/final-r10/candidate-parent/h23/result.json": "5da863ef7931838dc108707358602745c159895a93ca5a5b578a563d77150fcb", + "references/frame-compiler/final-r10/candidate-parent/h23/word.json.gz": "fd727e805988ba943d26677f1ac110aa8caf4641caf0691d89e45317bf318e18", + "references/frame-compiler/final-r10/candidate-parent/h25/profiles.json": "bc27776644370032075544d5b9d4b5c46786d965fa150425cf6f23a259534c87", + "references/frame-compiler/final-r10/candidate-parent/h25/replay.json": "ee600e994706f2570d74abdeb882221a7492fbd092c086a536a102dbf8ffb08b", + "references/frame-compiler/final-r10/candidate-parent/h25/result.json": "acb9eb1f9b9a788aad0f8dd8aee3246c93627a12245c3d237749363aab5f6d51", + "references/frame-compiler/final-r10/candidate-parent/h25/word.json.gz": "e077b4ba936efb82a17f3a0c39e35b94dd9a2003797036219fd4df021e72d511", + "references/frame-compiler/final-r10/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/final-r10/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/final-r10/frozen/h23/profiles.json": "263c516190c53723bf103dd603309efbbceac1e30193ed1781f92df19e0e08bc", + "references/frame-compiler/final-r10/frozen/h23/replay.json": "abf123d2de9dbb67737d878e8a5b51a840504d1e6889ef7adc8fca1cc8b20da2", + "references/frame-compiler/final-r10/frozen/h23/result.json": "9f6a171da422c3f927bff50b3870ea9cbeeddfd8136a11a0daafd86e82dbf394", + "references/frame-compiler/final-r10/frozen/h23/word.json.gz": "6a43dd2ea918a26ca5e3f64a4f95be130ddb0a8bc9be47a0f9b90ba749ef6eb3", + "references/frame-compiler/final-r10/frozen/h25/profiles.json": "a74d3c0bccfbfb96b8e416536d3c52a2e9c0d99faa5f1c35b90d4d5647153ddb", + "references/frame-compiler/final-r10/frozen/h25/replay.json": "5d83bc09267a0d93315eefee268149bd8e757fdd467ddd73747f5c71c8cd0ac4", + "references/frame-compiler/final-r10/frozen/h25/result.json": "fea68c0a336e277e11747d89b7d9c842590f288376727dcb30f3a76369f56fcc", + "references/frame-compiler/final-r10/frozen/h25/word.json.gz": "7ff8557640fe90eb44895dd74b081ac992476fc75792a03c880ad6a445c39382", + "references/frame-compiler/final-r10/graph_batch.py": "fdd58de71596d1eaa85026ded59dfcff453be76165aaee1575decf924ae23159", + "references/frame-compiler/final-r10/keys.json": "da7f509569e1f90a5314f44d541a2d6ce66fc100b5b5565b1290e21ce21cbb1e", + "references/frame-compiler/final-r10/nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "references/frame-compiler/final-r10/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/final-r10/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/final-r10/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/final-r10/original/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/final-r10/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/final-r10/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/final-r10/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/final-r10/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/final-r10/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/final-r10/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/final-r10/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/final-r10/references/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/frame-compiler/final-r10/references/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/final-r10/references/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "references/frame-compiler/final-r10/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/final-r10/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/final-r10/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/final-r10/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/final-r10/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/final-r10/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/final-r10/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/final-r10/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/final-r10/scripts/experiments/compiler.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "references/frame-compiler/final-r10/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/final-r10/test_order.py": "0de6726f195097582e6a482e8c67b9a5569a8d18f2236dadb656069397bb56f9", + "references/frame-compiler/final-r10/test_three_cycles.py": "8d4c69ac2423600e25b9962d3dd81780a8be3a43895dd698c6ecd963bd96a2c0", + "references/frame-compiler/indexed-r5/EXPERIMENT.txt": "7547e7255fc629a6887398c6b68d5432fdf8f6c8325db1b73e0616a02ee54eaa", + "references/frame-compiler/indexed-r5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/indexed-r5/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/indexed-r5/SOURCE.json": "57d9a8742b3870e8899f46b43f62654b2fbd1daab62d6c7f4fff4496e64af900", + "references/frame-compiler/indexed-r5/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/indexed-r5/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/indexed-r5/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/indexed-r5/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/indexed-r5/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/indexed-r5/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/indexed-r5/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/indexed-r5/batch.py": "a11cbe7d7e6476ea20debe4ede5d1a2faa837ce0fa08466719d157c4a729b945", + "references/frame-compiler/indexed-r5/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/indexed-r5/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/indexed-r5/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/indexed-r5/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/indexed-r5/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/indexed-r5/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/indexed-r5/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/indexed-r5/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/indexed-r5/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/indexed-r5/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/indexed-r5/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/indexed-r5/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/indexed-r5/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/indexed-r5/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/indexed-r5/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/indexed-r5/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/indexed-r5/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/indexed-r5/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/indexed-r5/scripts/experiments/compiler.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/indexed-r5/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr74-aligned/FETCH.json": "92e596b5868b86428523c16675cc25fe4563148012535b167aa48ff7b420cc58", + "references/frame-compiler/pr74-aligned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr74-aligned/NOTICE": "a8224aed09f2ccccf88a943cb14a8db6ba4b6ada545a9b457f1c3649e257bb00", + "references/frame-compiler/pr74-aligned/SOURCE.json": "57a5dfb9212300f7e63ee3de70a0324d6a7b9b5240a699230bcde2c89e83ff93", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/PROOF.md": "1a931b3d2a757f9a55911394da5fa9617775a7fee4da0739189a7a169f62efef", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/README.md": "584c64da8ea46b46dfcc6a8b86f4543bba641f10d36f95bf407b2a459591da50", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/SOURCE.json": "e76eeb5bbc3fabc4e63135d611f7f48b891ce0b85e9c765b51b4c963feb38c4f", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/certificate.json": "6f3a4a0e15ef5527e92b865722a9fd8f15658231e6ebbbc55e96c3a433e12846", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/check.py": "86d4ab1b52c490a350ae84e2805d8a95557dfcf709597ecc365aaef4a0178f31", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange-proof.md": "0a6df5c08fcfda77349e1f543128502951cee2bea8fb08904360d8bfe0d10b12", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/exchange_policy.py": "671704f8a5a8276c68aeef0432658e20e8c7dfff6b5fcf5b342f40644d920d30", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/future_completion.py": "bfe7dd61b01abb445c363503bca61b217bf2e82d977de2336de3a48e1b8effd7", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/graph_audit.py": "a5fdeec4789469052c0a60ee894851c412c7b9de4844942c09ccaa048b9da94c", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition-proof.md": "aeeb9fec06d38eb829b9be4de934d63cf65fb0064440306520de12d41f21921d", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/partition_graph.py": "63e23b1d33094f99e96821f1859fee2612907d0cab928f983cce3d279a331900", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/producer.py": "533819362dbf7a211647182c32d9bd6c89a9e71c1d0987baf555dc333a05e9c8", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-23.json": "9ceb5e50591c52ed8c225f248b9f1f99f9a66dac4cecb00b8942aab84417d0da", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/profile-25.json": "76fb46fe77da64e867c86adff6a8fa65a488065d6413c62e9e946d51e75c8f7e", + "references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/selection.json": "eebd008b4c93622200659c6b001a440ce3857b5e34d93e50a5219a4c74fb21b5", + "references/frame-compiler/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr74/SOURCE.json": "d5afffc59d4fd192f435a6875e47e4a357d6fb4f53623c2eb64c77a13e695d97", + "references/frame-compiler/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr78/FETCH.json": "79d6b40af23f03d6737be9a072ebca4f96aa6a663895cffdee4052432b5d13b8", + "references/frame-compiler/pr78/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr78/NOTICE": "0a0e0314b9d1e23a193e92aa633fc50c432b6e3ea326f40d5cbb1ea538823149", + "references/frame-compiler/pr78/SOURCE.json": "3211fa83076e58ddf3a3203b368ca0a599186ae174822f58551b26c150e673cf", + "references/frame-compiler/pr78/research/coordinate-flags/README.md": "cbc4f20613e1dfafcce7c5f82c274fdd48898cc968d14fbea7bf9b1a47607e85", + "references/frame-compiler/pr78/research/coordinate-flags/SOURCE.json": "c0ec88783c06431d95e1e8efabbb2928857f1d4ca8d0ada10206e99322ae78e2", + "references/frame-compiler/pr78/research/coordinate-flags/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr78/research/coordinate-flags/order-25.json": "209dee5fac04fa91a5bf63ed0307a56e849cc6800fa543254590045e0c95d6a5", + "references/frame-compiler/pr78/research/coordinate-flags/verify.py": "b59a5345c8684bb67a5ea666d5de11422c45cdf19f2c13de1520623a71bae7e1", + "references/frame-compiler/pr79/.gitattributes": "5f257f4e9e574ad5767f902242f519dad19cc455d6858f49234d0ccc345cabf1", + "references/frame-compiler/pr79/.github/workflows/verify.yml": "1a9cccd742ba2a5aa5a5ac38c1b7559bc0dec46b23d3ce3ff3e26c3137e6c3a2", + "references/frame-compiler/pr79/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/Makefile": "1bf5b63d413280a68fc2b91a7e83a6172632e50c8177ca097d9622af669ee8d6", + "references/frame-compiler/pr79/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr79/README.md": "6ae40d1b2e5f4d8e23bcc3a1cb0f7246ecae489184384cca0ec60fd3080d6306", + "references/frame-compiler/pr79/SOURCE.json": "0a4028b9a38024a8a9e78ef4351cadaf089dbcdce6d5244b6bbdc149fd122c64", + "references/frame-compiler/pr79/certificates/balanced-split-compiler.json": "41ec941f124456b65ccb558a921c0f3a1c624948fc91cec59c61689184f41f38", + "references/frame-compiler/pr79/certificates/balanced-split-kappa.json": "0c9ddf817a7198d597b65cd178873a36910188cfe9bdd2b22a3477ee84df5e88", + "references/frame-compiler/pr79/certificates/balanced-split-profiles-23.json": "9da8b8d868aeb0b7bd5441aac12fcf5db045d4708a507cde3fe4087e2f75060f", + "references/frame-compiler/pr79/certificates/balanced-split-profiles-25.json": "c954ec6749c867d0699e1c66257ac04c78799fe9501acc406f917787b2a9d93a", + "references/frame-compiler/pr79/certificates/balanced-split-repository-validation.json": "1e6a0f55ca73e1b304e9f396dedad5d4f9ee920bfb009c2154913d8589fa111c", + "references/frame-compiler/pr79/certificates/balanced-split-transitions-23.json": "5c8b4221d59c103df8966c6aa4572ac09e2c3be2f0b6ae0775c22950bb40c029", + "references/frame-compiler/pr79/certificates/balanced-split-transitions-25.json": "22f6e4add77e8fa4c4bb1d61b34bab48631b752e9b0ccb62913cc59cccc70ddb", + "references/frame-compiler/pr79/certificates/balanced-split-validation.json": "97aaf596b02b2d5cf22ea292bf2d4c20f76f91a9231fa21fb496b3c6bffe060c", + "references/frame-compiler/pr79/certificates/balanced-split-word-23.json.gz": "c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab", + "references/frame-compiler/pr79/certificates/balanced-split-word-25.json.gz": "210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726", + "references/frame-compiler/pr79/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr79/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr79/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr79/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr79/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr79/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr79/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr79/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr79/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr79/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr79/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr79/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr79/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr79/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr79/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr79/research/balanced-split/PROOF.md": "2c04e3479d4b1ba3ce745a89c68d5757d854661bfd6f1b3f7e37287ae02fafa3", + "references/frame-compiler/pr79/research/balanced-split/README.md": "c6a4505901658dfa9445024c5a1a76001b93ca81082debf370a6173832e2484d", + "references/frame-compiler/pr79/research/balanced-split/SOURCE.json": "68a96f879c1501b62da0366ea1003ccf4d4468a2240a70cf020cc9fff9d38471", + "references/frame-compiler/pr79/research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "references/frame-compiler/pr79/research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "references/frame-compiler/pr79/research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "references/frame-compiler/pr79/research/balanced-split/engine-relocation-23.patch": "f6df06b5bcedf246f62243b1b6a590e6888c6e20ae5b8781eb10434a4358b139", + "references/frame-compiler/pr79/research/balanced-split/engine-relocation-25.patch": "001c9ee58555d7790ff05f488293f197f443723020820fd6d401bb088841a868", + "references/frame-compiler/pr79/research/balanced-split/parameters.json": "d1c35d01616ba26caa39af785e8625a344304dbf60c4e358139000e9e7a79f09", + "references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_completion.py": "3ec5d8a56ab5638f08da7583b923969b9470ba201a4bd1b69c4d814bd60b2621", + "references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_exchange.py": "7c0b6942d51bf2a9227135af3d0dd680ddec2603e2fc800d84bb3c5ed62a884e", + "references/frame-compiler/pr79/scripts/experiments/balanced_split_compiler.py": "5660a168c82e661042070219f0a71aa6145437a4ee8a21d4bfc6330c5715dc19", + "references/frame-compiler/pr79/scripts/experiments/balanced_split_compose.py": "0a00ba79cefb535eb5295aa7e9819805f4f606a53af5b7d658937836ad30ad3c", + "references/frame-compiler/pr79/scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "references/frame-compiler/pr79/scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "references/frame-compiler/pr79/scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b", + "references/frame-compiler/pr79/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr79/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr79/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr79/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr79/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr79/scripts/experiments/pin_balanced_split_sources.py": "1ad34c438f3900379b0c3679d1bc9307a520896153247b3949c0a625036545f1", + "references/frame-compiler/pr79/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr79/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr79/scripts/experiments/verify_balanced_split.py": "954795a732a39e716e6a35e0aaba7f9c95a5bc8d7fb91abfff7c4d7346c60dc5", + "references/frame-compiler/pr79/tests/test_balanced_split.py": "9664bd572123cd525f1d2b0e60f928d000fd3093d4d1f322cf946791b5b4969e", + "references/frame-compiler/pr79/tests/test_balanced_split_pending.py": "29139af10f899ae1738183b22439a888d89d1941f75573e5013fbfb579934524", + "references/frame-compiler/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/frame-compiler/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr82/SOURCE.json": "be7614cb9e17e30fc598c7adbee9b871b2830df7944688e0cd3f2330a89ee06c", + "references/frame-compiler/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/frame-compiler/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/frame-compiler/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/frame-compiler/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/frame-compiler/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/frame-compiler/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "references/frame-compiler/pr84/.gitattributes": "2d77b30caac667f81591f6afa49898e4ada61fe6d0cff83341bae986b5ebfa45", + "references/frame-compiler/pr84/.github/workflows/verify.yml": "e3adcf09259520d3460ad41496ef4b2efd3046b6ece2c91e5aa35a2b9b2a38ae", + "references/frame-compiler/pr84/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/Makefile": "11d9bd93941ff079c0d63c715253392c30a503b2975ccb2c3ab6df39a305a3a1", + "references/frame-compiler/pr84/NOTICE": "7d59d255960091cbd1c62ec1e7439023599687cdfdb7059904fe56578dac2333", + "references/frame-compiler/pr84/README.md": "1bf17c27f5a2142812a1002a0f50833a105d0b6cefbaa3438fb024b2bbf4262b", + "references/frame-compiler/pr84/SOURCE.json": "ad82b0c52c2da1e1da4b2c59f9a44c9adf4e9e2a6566521e54539dfe3d60e432", + "references/frame-compiler/pr84/certificates/indexed-cycle-compiler.json": "0281a40390f880f733cfdc1591a7e19148d014dbe5ac333bc09baaad07e74966", + "references/frame-compiler/pr84/certificates/indexed-cycle-completion-validation.json": "99b8508bd45e41624b778dff0f05aa1f848177d5a40e9f4d2d9e852da8f9f07b", + "references/frame-compiler/pr84/certificates/indexed-cycle-exchange-validation.json": "b58c59cd8c9f72f890b241d897f5af1bb033c33fc2c3ffaf28a09ad6a0984d55", + "references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json": "c2ca8f70fd7bfc962b675d4784941a93d4d756530d7b4ec26a116bdb2c6f8315", + "references/frame-compiler/pr84/certificates/indexed-cycle-pending-index-validation.json": "cc0206be5da94d7b459ffaac86d39813a9335e1937983e4c5b1b60cb5b2c0fd2", + "references/frame-compiler/pr84/certificates/indexed-cycle-profiles-23.json": "263c516190c53723bf103dd603309efbbceac1e30193ed1781f92df19e0e08bc", + "references/frame-compiler/pr84/certificates/indexed-cycle-profiles-25.json": "a74d3c0bccfbfb96b8e416536d3c52a2e9c0d99faa5f1c35b90d4d5647153ddb", + "references/frame-compiler/pr84/certificates/indexed-cycle-repository-validation.json": "6d5808be8b7b85d8dca54f89d80ee17d939482ccfb6ff9b2aaa8e025b75441d1", + "references/frame-compiler/pr84/certificates/indexed-cycle-retired-index-validation.json": "fab9153dacc8cd45563b34cafa31991b80f822add68383a2a52684251c70cd42", + "references/frame-compiler/pr84/certificates/indexed-cycle-transitions-23.json": "ea04c90d2775716e0e2c200da300bad54cd6bca16d1e9636bea22b6021fe334d", + "references/frame-compiler/pr84/certificates/indexed-cycle-transitions-25.json": "55b898c5c82af705395d855f7507fea1e0b33abaa66137a406ff92ed7e9a3f34", + "references/frame-compiler/pr84/certificates/indexed-cycle-two-cycle-validation.json": "094bf8486abe99422983ad4112d24a9c417e643e00836420bc24f736f6264563", + "references/frame-compiler/pr84/certificates/indexed-cycle-validation.json": "642c5b990ebbfdf077555272b484ea8e5b66e935464b9171b78bc8a05ccecb90", + "references/frame-compiler/pr84/certificates/indexed-cycle-word-23.json.gz": "6a43dd2ea918a26ca5e3f64a4f95be130ddb0a8bc9be47a0f9b90ba749ef6eb3", + "references/frame-compiler/pr84/certificates/indexed-cycle-word-25.json.gz": "7ff8557640fe90eb44895dd74b081ac992476fc75792a03c880ad6a445c39382", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/EXPERIMENT.txt": "7547e7255fc629a6887398c6b68d5432fdf8f6c8325db1b73e0616a02ee54eaa", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/SOURCE.json": "57d9a8742b3870e8899f46b43f62654b2fbd1daab62d6c7f4fff4496e64af900", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/batch.py": "a11cbe7d7e6476ea20debe4ede5d1a2faa837ce0fa08466719d157c4a729b945", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/compiler.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr84/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr84/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr84/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr84/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr84/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr84/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr84/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr84/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr84/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr84/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr84/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr84/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr84/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr84/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr84/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr84/references/frame-compiler/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr84/references/frame-compiler/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr84/references/frame-compiler/pr74/SOURCE.json": "d5afffc59d4fd192f435a6875e47e4a357d6fb4f53623c2eb64c77a13e695d97", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr84/references/frame-compiler/pr78/FETCH.json": "79d6b40af23f03d6737be9a072ebca4f96aa6a663895cffdee4052432b5d13b8", + "references/frame-compiler/pr84/references/frame-compiler/pr78/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr78/NOTICE": "0a0e0314b9d1e23a193e92aa633fc50c432b6e3ea326f40d5cbb1ea538823149", + "references/frame-compiler/pr84/references/frame-compiler/pr78/SOURCE.json": "3211fa83076e58ddf3a3203b368ca0a599186ae174822f58551b26c150e673cf", + "references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/README.md": "cbc4f20613e1dfafcce7c5f82c274fdd48898cc968d14fbea7bf9b1a47607e85", + "references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/SOURCE.json": "c0ec88783c06431d95e1e8efabbb2928857f1d4ca8d0ada10206e99322ae78e2", + "references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/order-25.json": "209dee5fac04fa91a5bf63ed0307a56e849cc6800fa543254590045e0c95d6a5", + "references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/verify.py": "b59a5345c8684bb67a5ea666d5de11422c45cdf19f2c13de1520623a71bae7e1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/.gitattributes": "5f257f4e9e574ad5767f902242f519dad19cc455d6858f49234d0ccc345cabf1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/.github/workflows/verify.yml": "1a9cccd742ba2a5aa5a5ac38c1b7559bc0dec46b23d3ce3ff3e26c3137e6c3a2", + "references/frame-compiler/pr84/references/frame-compiler/pr79/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/Makefile": "1bf5b63d413280a68fc2b91a7e83a6172632e50c8177ca097d9622af669ee8d6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr84/references/frame-compiler/pr79/README.md": "6ae40d1b2e5f4d8e23bcc3a1cb0f7246ecae489184384cca0ec60fd3080d6306", + "references/frame-compiler/pr84/references/frame-compiler/pr79/SOURCE.json": "0a4028b9a38024a8a9e78ef4351cadaf089dbcdce6d5244b6bbdc149fd122c64", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-compiler.json": "41ec941f124456b65ccb558a921c0f3a1c624948fc91cec59c61689184f41f38", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-kappa.json": "0c9ddf817a7198d597b65cd178873a36910188cfe9bdd2b22a3477ee84df5e88", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-profiles-23.json": "9da8b8d868aeb0b7bd5441aac12fcf5db045d4708a507cde3fe4087e2f75060f", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-profiles-25.json": "c954ec6749c867d0699e1c66257ac04c78799fe9501acc406f917787b2a9d93a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-repository-validation.json": "1e6a0f55ca73e1b304e9f396dedad5d4f9ee920bfb009c2154913d8589fa111c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-transitions-23.json": "5c8b4221d59c103df8966c6aa4572ac09e2c3be2f0b6ae0775c22950bb40c029", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-transitions-25.json": "22f6e4add77e8fa4c4bb1d61b34bab48631b752e9b0ccb62913cc59cccc70ddb", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-validation.json": "97aaf596b02b2d5cf22ea292bf2d4c20f76f91a9231fa21fb496b3c6bffe060c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-word-23.json.gz": "c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab", + "references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-word-25.json.gz": "210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/PROOF.md": "2c04e3479d4b1ba3ce745a89c68d5757d854661bfd6f1b3f7e37287ae02fafa3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/README.md": "c6a4505901658dfa9445024c5a1a76001b93ca81082debf370a6173832e2484d", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/SOURCE.json": "68a96f879c1501b62da0366ea1003ccf4d4468a2240a70cf020cc9fff9d38471", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-relocation-23.patch": "f6df06b5bcedf246f62243b1b6a590e6888c6e20ae5b8781eb10434a4358b139", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-relocation-25.patch": "001c9ee58555d7790ff05f488293f197f443723020820fd6d401bb088841a868", + "references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/parameters.json": "d1c35d01616ba26caa39af785e8625a344304dbf60c4e358139000e9e7a79f09", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_completion.py": "3ec5d8a56ab5638f08da7583b923969b9470ba201a4bd1b69c4d814bd60b2621", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_exchange.py": "7c0b6942d51bf2a9227135af3d0dd680ddec2603e2fc800d84bb3c5ed62a884e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_compiler.py": "5660a168c82e661042070219f0a71aa6145437a4ee8a21d4bfc6330c5715dc19", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_compose.py": "0a00ba79cefb535eb5295aa7e9819805f4f606a53af5b7d658937836ad30ad3c", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/pin_balanced_split_sources.py": "1ad34c438f3900379b0c3679d1bc9307a520896153247b3949c0a625036545f1", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/verify_balanced_split.py": "954795a732a39e716e6a35e0aaba7f9c95a5bc8d7fb91abfff7c4d7346c60dc5", + "references/frame-compiler/pr84/references/frame-compiler/pr79/tests/test_balanced_split.py": "9664bd572123cd525f1d2b0e60f928d000fd3093d4d1f322cf946791b5b4969e", + "references/frame-compiler/pr84/references/frame-compiler/pr79/tests/test_balanced_split_pending.py": "29139af10f899ae1738183b22439a888d89d1941f75573e5013fbfb579934524", + "references/frame-compiler/pr84/research/indexed-cycle/PROOF.md": "bddb8f880bb13dbf481b05672ee46c529d4880e9df51c745679bf6954e0fb4d9", + "references/frame-compiler/pr84/research/indexed-cycle/README.md": "3df371f98c6b1904b402297e7c0c2672b3a1fa4c0ae03238e2328a2948294a13", + "references/frame-compiler/pr84/research/indexed-cycle/SOURCE.json": "c5b314b4acff73f8fcd31802db2609f848ef6fcc2b63740fd985c353d994a612", + "references/frame-compiler/pr84/research/indexed-cycle/config-23.json": "ee7d447f14c6d4a46b04dbdc0468b00c3e8e49100352a202794800315ae8eaeb", + "references/frame-compiler/pr84/research/indexed-cycle/config-25.json": "7c2ae35096692b97bbdad3efdd43331113ddadb38af0c44d9c5eaeb00613ff40", + "references/frame-compiler/pr84/research/indexed-cycle/coordinate-search.py": "acd52c55a9c4e43833d0d81ff952d2882336ed188f5857bc1dbb2866fdbfb082", + "references/frame-compiler/pr84/research/indexed-cycle/discovery-selection.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "references/frame-compiler/pr84/research/indexed-cycle/engine-provenance.json": "b7455d1eed0dfe6a4160388f21628e2071d511f78769f17bf76bb892136b6055", + "references/frame-compiler/pr84/research/indexed-cycle/parameters.json": "71a365e0d1031b998a2862ac0220e318fb9c7a04c1ac57aaca446ed017efc119", + "references/frame-compiler/pr84/research/indexed-cycle/parent-result-23.json": "59dad7c4676711b3f333103d82c5343414a714707cfad096d4eddc5155a24dd1", + "references/frame-compiler/pr84/research/indexed-cycle/parent-result-25.json": "e3d8ad1df932f1d916890583639b78fe99844dce9dc59a42785ae69c5d42bdca", + "references/frame-compiler/pr84/research/indexed-cycle/reported-comparisons.json": "c32387929fadde48b5c9f730dd014b8dedb20a2d4bd1bd644428fabd50ccf14a", + "references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_completion.py": "49ba72874c5866f254d213ebcb44d42d62e98b94324f370a126abfde66caf04d", + "references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_cycles.py": "9b12947cebf91f0b26e7c40431a783921e8e1eed2b27f9f26533a2377c9b749b", + "references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_exchange.py": "93e65ff84fddc290d210669798bc5e420b04072d491ed05e0e75418cb1ee4288", + "references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_pending.py": "6843173cd4ced62ae8022adde3171a2e94eb6264527df37b67b629047130053d", + "references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_retired.py": "5866018a6db4e03d6b563a13a369e78d59c340b16956b626a0d94108e593650d", + "references/frame-compiler/pr84/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr84/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr84/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr84/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compiler.py": "f5084ee68d7a880db8fd8add54d9c0ab08af0cf93e0d7f65beb3bdbb8c533dd7", + "references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compose.py": "75d4853004dd9e127d06b36b2fad5c260e0db152b283a3407df4c0ae98c15828", + "references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/pr84/scripts/experiments/indexed_cycle_graph.py": "d6b08e8806c3d774c16c8714dce2afd7fe72c7b087fcf2b123eb5971e862b48f", + "references/frame-compiler/pr84/scripts/experiments/indexed_cycle_nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr84/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr84/scripts/experiments/pin_indexed_cycle_sources.py": "0e3359dd54b83cb60aa906e49360c477b93c5ab9ac397376b0d98b25092bf79d", + "references/frame-compiler/pr84/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr84/scripts/experiments/verify_indexed_cycle.py": "67c18e50274313375084fdead652eef386fbb984ec764bcae1bc73e7fe75e56a", + "references/frame-compiler/pr84/tests/test_indexed_cycle.py": "9f5c25fac4631323e985035d1d75e75a8a476fcf6f0b879f38bf3b40beb6d584", + "references/frame-compiler/pr84/tests/test_indexed_cycle_coordinates.py": "4cd5b7161f0e56c4ac1d8e75d5644aaa5c5cbe371220798b6d374ea733f624e0", + "references/frame-compiler/pr88/.gitattributes": "9191dac542743889aff00edc462a98594a0031810a47a4c50e1d61be215caa63", + "references/frame-compiler/pr88/.github/workflows/verify.yml": "d1542da33f3bd33e12f1324dfb7bc893bf342440d11255115d2bc958dfdcc782", + "references/frame-compiler/pr88/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/Makefile": "3e4ea43fb954264c263c1c0ac8386af114dac3d93406bc66761b0cc69b17523c", + "references/frame-compiler/pr88/NOTICE": "fb34a8168859dcf313fa5ec49db700261522a7124f9d616937d8342cc5fc1b64", + "references/frame-compiler/pr88/README.md": "586c53bc19e298645f2f42a1c2878543c61398e0d415526c64d294948ecddd35", + "references/frame-compiler/pr88/SOURCE.json": "77cbc77831dea4079c32c25650a0a68ace8f44bc6f37600af2d67e65bb749824", + "references/frame-compiler/pr88/certificates/final-frame-compiler.json": "e18aa372520c7b3bcc31fad180946e1828961f083d8fc236ff4705eccdef7266", + "references/frame-compiler/pr88/certificates/final-frame-completion-validation.json": "b3b2b2b8f5d1b432e7d8ad0b6f5a2a2d74b3e6c9e97bf623a33a3a24af354447", + "references/frame-compiler/pr88/certificates/final-frame-exchange-validation.json": "909c02aebf27e9759e820269e1522eb364d77269ceed867831d07e472b7b9cb0", + "references/frame-compiler/pr88/certificates/final-frame-kappa.json": "31a4e903d7c987d632750dc17cd7775dd574d7343d683a1208d1b964689ace03", + "references/frame-compiler/pr88/certificates/final-frame-pending-index-validation.json": "2fdd1192f9e0022635af0496b9354a2f564b4c84322b267563a9b81f9cb13a6a", + "references/frame-compiler/pr88/certificates/final-frame-pricing-validation.json": "7814c206147648b4a572bd917440f304e6f56415e96e0d4ff2fc7a300fdb1791", + "references/frame-compiler/pr88/certificates/final-frame-profiles-23.json": "45708723716dded9bb2688fc9e576de4550b31ff4762a41d533c486374ac8664", + "references/frame-compiler/pr88/certificates/final-frame-profiles-25.json": "1ca57426564eb285f0d092dac5433531505f08f53ea169c3f12df9a2d47e1659", + "references/frame-compiler/pr88/certificates/final-frame-retired-index-validation.json": "d9d4120765bda47ba0db1d97b9ae7ee9656d3286045e2fadb6287e048c263d26", + "references/frame-compiler/pr88/certificates/final-frame-transitions-23.json": "e2eeaabf7fd570644aa0bc4cd321fbda2c155f31028a9b95c595b19dc8a72b45", + "references/frame-compiler/pr88/certificates/final-frame-transitions-25.json": "2e8f6e141698cfee84cabfa22800d06f1f3d937185b44a97493f1a1247cf16bb", + "references/frame-compiler/pr88/certificates/final-frame-two-cycle-validation.json": "98ebaa0a5f6cf624520a8ab31bbef902bf15b5f7db2746e7434dd58b6def86f7", + "references/frame-compiler/pr88/certificates/final-frame-validation.json": "7c555674a844160d04814b26082dd871705aaeeeafc53d0643574444bdbf056b", + "references/frame-compiler/pr88/certificates/final-frame-word-23.json.gz": "2d88e9d3616a6d3d78f93bf42d08dac8fd6e95e81ec8714bd6c63b922139fb3b", + "references/frame-compiler/pr88/certificates/final-frame-word-25.json.gz": "6b50c71df1415d867cb44f6da6f000b793b266ea3d995454fb2b9862966b5959", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/CANDIDATE_PARENT.json": "648439c2c3f5735528842bd388d632e54781dbb118e44ef60e871590c7879e86", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/COORDINATES.json": "7b45884c3a1211d55c0d9bdb1669d11c7da79bf866a527ba1c303c088b042c52", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/EXPERIMENT.txt": "e29f48d8e1f097ddc5f2adbceb3118093473ec1173d2b14669f581807648dca9", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/FROZEN.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/SOURCE.json": "45c1f1e6da14472859d89b3247ad6591a596f0729eff369e21c7581d3794859e", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/batch.py": "bb96775fe0b2facf1d5e9f2d921998959480e4c895434ea974042aba971cbb74", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h23/profiles.json": "670e625363dbd1978c74626dc2c47f9a5e9eda6653292113bc9e5928f13c86cf", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h23/replay.json": "921786b8eb8f51c53a77ee7ac83c497c2c35e5bb7d212c14f3f1c8f0f6d5b244", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h23/result.json": "5da863ef7931838dc108707358602745c159895a93ca5a5b578a563d77150fcb", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h23/word.json.gz": "fd727e805988ba943d26677f1ac110aa8caf4641caf0691d89e45317bf318e18", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h25/profiles.json": "bc27776644370032075544d5b9d4b5c46786d965fa150425cf6f23a259534c87", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h25/replay.json": "ee600e994706f2570d74abdeb882221a7492fbd092c086a536a102dbf8ffb08b", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h25/result.json": "acb9eb1f9b9a788aad0f8dd8aee3246c93627a12245c3d237749363aab5f6d51", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/candidate-parent/h25/word.json.gz": "e077b4ba936efb82a17f3a0c39e35b94dd9a2003797036219fd4df021e72d511", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h23/profiles.json": "263c516190c53723bf103dd603309efbbceac1e30193ed1781f92df19e0e08bc", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h23/replay.json": "abf123d2de9dbb67737d878e8a5b51a840504d1e6889ef7adc8fca1cc8b20da2", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h23/result.json": "9f6a171da422c3f927bff50b3870ea9cbeeddfd8136a11a0daafd86e82dbf394", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h23/word.json.gz": "6a43dd2ea918a26ca5e3f64a4f95be130ddb0a8bc9be47a0f9b90ba749ef6eb3", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h25/profiles.json": "a74d3c0bccfbfb96b8e416536d3c52a2e9c0d99faa5f1c35b90d4d5647153ddb", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h25/replay.json": "5d83bc09267a0d93315eefee268149bd8e757fdd467ddd73747f5c71c8cd0ac4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h25/result.json": "fea68c0a336e277e11747d89b7d9c842590f288376727dcb30f3a76369f56fcc", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/frozen/h25/word.json.gz": "7ff8557640fe90eb44895dd74b081ac992476fc75792a03c880ad6a445c39382", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/graph_batch.py": "fdd58de71596d1eaa85026ded59dfcff453be76165aaee1575decf924ae23159", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/keys.json": "da7f509569e1f90a5314f44d541a2d6ce66fc100b5b5565b1290e21ce21cbb1e", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/original/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/references/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/compiler.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/test_order.py": "0de6726f195097582e6a482e8c67b9a5569a8d18f2236dadb656069397bb56f9", + "references/frame-compiler/pr88/references/frame-compiler/final-r10/test_three_cycles.py": "8d4c69ac2423600e25b9962d3dd81780a8be3a43895dd698c6ecd963bd96a2c0", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/EXPERIMENT.txt": "7547e7255fc629a6887398c6b68d5432fdf8f6c8325db1b73e0616a02ee54eaa", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/SOURCE.json": "57d9a8742b3870e8899f46b43f62654b2fbd1daab62d6c7f4fff4496e64af900", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/batch.py": "a11cbe7d7e6476ea20debe4ede5d1a2faa837ce0fa08466719d157c4a729b945", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/compiler.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/pr88/references/frame-compiler/indexed-r5/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr88/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr88/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr88/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr88/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr88/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr88/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr88/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr88/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr88/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr88/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr88/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr88/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr88/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr88/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr88/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr88/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr88/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr88/references/frame-compiler/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr88/references/frame-compiler/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr88/references/frame-compiler/pr74/SOURCE.json": "d5afffc59d4fd192f435a6875e47e4a357d6fb4f53623c2eb64c77a13e695d97", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr88/references/frame-compiler/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr88/references/frame-compiler/pr78/FETCH.json": "79d6b40af23f03d6737be9a072ebca4f96aa6a663895cffdee4052432b5d13b8", + "references/frame-compiler/pr88/references/frame-compiler/pr78/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr78/NOTICE": "0a0e0314b9d1e23a193e92aa633fc50c432b6e3ea326f40d5cbb1ea538823149", + "references/frame-compiler/pr88/references/frame-compiler/pr78/SOURCE.json": "3211fa83076e58ddf3a3203b368ca0a599186ae174822f58551b26c150e673cf", + "references/frame-compiler/pr88/references/frame-compiler/pr78/research/coordinate-flags/README.md": "cbc4f20613e1dfafcce7c5f82c274fdd48898cc968d14fbea7bf9b1a47607e85", + "references/frame-compiler/pr88/references/frame-compiler/pr78/research/coordinate-flags/SOURCE.json": "c0ec88783c06431d95e1e8efabbb2928857f1d4ca8d0ada10206e99322ae78e2", + "references/frame-compiler/pr88/references/frame-compiler/pr78/research/coordinate-flags/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr88/references/frame-compiler/pr78/research/coordinate-flags/order-25.json": "209dee5fac04fa91a5bf63ed0307a56e849cc6800fa543254590045e0c95d6a5", + "references/frame-compiler/pr88/references/frame-compiler/pr78/research/coordinate-flags/verify.py": "b59a5345c8684bb67a5ea666d5de11422c45cdf19f2c13de1520623a71bae7e1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/.gitattributes": "5f257f4e9e574ad5767f902242f519dad19cc455d6858f49234d0ccc345cabf1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/.github/workflows/verify.yml": "1a9cccd742ba2a5aa5a5ac38c1b7559bc0dec46b23d3ce3ff3e26c3137e6c3a2", + "references/frame-compiler/pr88/references/frame-compiler/pr79/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/Makefile": "1bf5b63d413280a68fc2b91a7e83a6172632e50c8177ca097d9622af669ee8d6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr88/references/frame-compiler/pr79/README.md": "6ae40d1b2e5f4d8e23bcc3a1cb0f7246ecae489184384cca0ec60fd3080d6306", + "references/frame-compiler/pr88/references/frame-compiler/pr79/SOURCE.json": "0a4028b9a38024a8a9e78ef4351cadaf089dbcdce6d5244b6bbdc149fd122c64", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-compiler.json": "41ec941f124456b65ccb558a921c0f3a1c624948fc91cec59c61689184f41f38", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-kappa.json": "0c9ddf817a7198d597b65cd178873a36910188cfe9bdd2b22a3477ee84df5e88", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-profiles-23.json": "9da8b8d868aeb0b7bd5441aac12fcf5db045d4708a507cde3fe4087e2f75060f", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-profiles-25.json": "c954ec6749c867d0699e1c66257ac04c78799fe9501acc406f917787b2a9d93a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-repository-validation.json": "1e6a0f55ca73e1b304e9f396dedad5d4f9ee920bfb009c2154913d8589fa111c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-transitions-23.json": "5c8b4221d59c103df8966c6aa4572ac09e2c3be2f0b6ae0775c22950bb40c029", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-transitions-25.json": "22f6e4add77e8fa4c4bb1d61b34bab48631b752e9b0ccb62913cc59cccc70ddb", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-validation.json": "97aaf596b02b2d5cf22ea292bf2d4c20f76f91a9231fa21fb496b3c6bffe060c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-word-23.json.gz": "c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab", + "references/frame-compiler/pr88/references/frame-compiler/pr79/certificates/balanced-split-word-25.json.gz": "210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/PROOF.md": "2c04e3479d4b1ba3ce745a89c68d5757d854661bfd6f1b3f7e37287ae02fafa3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/README.md": "c6a4505901658dfa9445024c5a1a76001b93ca81082debf370a6173832e2484d", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/SOURCE.json": "68a96f879c1501b62da0366ea1003ccf4d4468a2240a70cf020cc9fff9d38471", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/engine-relocation-23.patch": "f6df06b5bcedf246f62243b1b6a590e6888c6e20ae5b8781eb10434a4358b139", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/engine-relocation-25.patch": "001c9ee58555d7790ff05f488293f197f443723020820fd6d401bb088841a868", + "references/frame-compiler/pr88/references/frame-compiler/pr79/research/balanced-split/parameters.json": "d1c35d01616ba26caa39af785e8625a344304dbf60c4e358139000e9e7a79f09", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_completion.py": "3ec5d8a56ab5638f08da7583b923969b9470ba201a4bd1b69c4d814bd60b2621", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_exchange.py": "7c0b6942d51bf2a9227135af3d0dd680ddec2603e2fc800d84bb3c5ed62a884e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/balanced_split_compiler.py": "5660a168c82e661042070219f0a71aa6145437a4ee8a21d4bfc6330c5715dc19", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/balanced_split_compose.py": "0a00ba79cefb535eb5295aa7e9819805f4f606a53af5b7d658937836ad30ad3c", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/pin_balanced_split_sources.py": "1ad34c438f3900379b0c3679d1bc9307a520896153247b3949c0a625036545f1", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr79/scripts/experiments/verify_balanced_split.py": "954795a732a39e716e6a35e0aaba7f9c95a5bc8d7fb91abfff7c4d7346c60dc5", + "references/frame-compiler/pr88/references/frame-compiler/pr79/tests/test_balanced_split.py": "9664bd572123cd525f1d2b0e60f928d000fd3093d4d1f322cf946791b5b4969e", + "references/frame-compiler/pr88/references/frame-compiler/pr79/tests/test_balanced_split_pending.py": "29139af10f899ae1738183b22439a888d89d1941f75573e5013fbfb579934524", + "references/frame-compiler/pr88/references/frame-compiler/pr82/FETCH.json": "e3c49a0759e5539c0c6d665278dae83cd9f0c4f614f322b76df5abc4e2404d0b", + "references/frame-compiler/pr88/references/frame-compiler/pr82/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr82/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr88/references/frame-compiler/pr82/SOURCE.json": "be7614cb9e17e30fc598c7adbee9b871b2830df7944688e0cd3f2330a89ee06c", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/README.md": "ed0a825837ca352dda60fc6d0bf977881466d2edeb2c906983d9b2678a34bd12", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/SOURCE.json": "ede836ef555e700601810f4beea31057af88ce7ff4dae21fceba44918be26551", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/compiler.py": "1716168a06fa5385c41232b40f343a98b322dec3718cb641f0042aa8f5610738", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/flag_engine.py": "e42a43947c8d575b764683d88ddc26a290618ac79028337b3b50daedc8475183", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/order-25.json": "47632a745319452f4237754ccb1793e7d0ae455654b68c6a31eb2a79a0f98b9f", + "references/frame-compiler/pr88/references/frame-compiler/pr82/research/envelope-balanced/verify.py": "bd767d460a85414ca320a449705860a376bee42cb8ce0734233a8e9706ad4fc5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/.gitattributes": "2d77b30caac667f81591f6afa49898e4ada61fe6d0cff83341bae986b5ebfa45", + "references/frame-compiler/pr88/references/frame-compiler/pr84/.github/workflows/verify.yml": "e3adcf09259520d3460ad41496ef4b2efd3046b6ece2c91e5aa35a2b9b2a38ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/Makefile": "11d9bd93941ff079c0d63c715253392c30a503b2975ccb2c3ab6df39a305a3a1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/NOTICE": "7d59d255960091cbd1c62ec1e7439023599687cdfdb7059904fe56578dac2333", + "references/frame-compiler/pr88/references/frame-compiler/pr84/README.md": "1bf17c27f5a2142812a1002a0f50833a105d0b6cefbaa3438fb024b2bbf4262b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/SOURCE.json": "ad82b0c52c2da1e1da4b2c59f9a44c9adf4e9e2a6566521e54539dfe3d60e432", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-compiler.json": "0281a40390f880f733cfdc1591a7e19148d014dbe5ac333bc09baaad07e74966", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-completion-validation.json": "99b8508bd45e41624b778dff0f05aa1f848177d5a40e9f4d2d9e852da8f9f07b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-exchange-validation.json": "b58c59cd8c9f72f890b241d897f5af1bb033c33fc2c3ffaf28a09ad6a0984d55", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-kappa.json": "c2ca8f70fd7bfc962b675d4784941a93d4d756530d7b4ec26a116bdb2c6f8315", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-pending-index-validation.json": "cc0206be5da94d7b459ffaac86d39813a9335e1937983e4c5b1b60cb5b2c0fd2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-23.json": "263c516190c53723bf103dd603309efbbceac1e30193ed1781f92df19e0e08bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-profiles-25.json": "a74d3c0bccfbfb96b8e416536d3c52a2e9c0d99faa5f1c35b90d4d5647153ddb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-repository-validation.json": "6d5808be8b7b85d8dca54f89d80ee17d939482ccfb6ff9b2aaa8e025b75441d1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-retired-index-validation.json": "fab9153dacc8cd45563b34cafa31991b80f822add68383a2a52684251c70cd42", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-transitions-23.json": "ea04c90d2775716e0e2c200da300bad54cd6bca16d1e9636bea22b6021fe334d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-transitions-25.json": "55b898c5c82af705395d855f7507fea1e0b33abaa66137a406ff92ed7e9a3f34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-two-cycle-validation.json": "094bf8486abe99422983ad4112d24a9c417e643e00836420bc24f736f6264563", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-validation.json": "642c5b990ebbfdf077555272b484ea8e5b66e935464b9171b78bc8a05ccecb90", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-word-23.json.gz": "6a43dd2ea918a26ca5e3f64a4f95be130ddb0a8bc9be47a0f9b90ba749ef6eb3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/certificates/indexed-cycle-word-25.json.gz": "7ff8557640fe90eb44895dd74b081ac992476fc75792a03c880ad6a445c39382", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/EXPERIMENT.txt": "7547e7255fc629a6887398c6b68d5432fdf8f6c8325db1b73e0616a02ee54eaa", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/SOURCE.json": "57d9a8742b3870e8899f46b43f62654b2fbd1daab62d6c7f4fff4496e64af900", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/exact-results.json": "3e7e34ff9a3b61540de9c834bc393e6430972f5adfb549c9fafa15bd52ad3bbd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/profiles.json": "1764c61542871447ed5604d8b4a93f8d9bf542d5a3ffee8ee30cf4b2ed5a1feb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/replay.json": "209ba40e8ad00526cbd4e83097d14d8fbe85d3d0f30435dee50fcf3fde0142b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h23/result.json": "1834de91c71df4554512902408c11cdd15eff08b8b30b31adf3a92b060590faa", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/profiles.json": "233e25fd9e0ae7260a9fa5c6bacb875d55fa8fc01ead28217108ee3ca31436e9", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/replay.json": "f5d5358ca32e878cae8584bcd053f16c088dc9be107bf3ccb58e9154771ec0a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/baseline/h25/result.json": "e8c2c2625a8f1e8d8f95c4d371d8ef05b9dabf22fa8765e56c9a7f1c3d9954ed", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/batch.py": "a11cbe7d7e6476ea20debe4ede5d1a2faa837ce0fa08466719d157c4a729b945", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/build.sh": "ab8c19de7793d37693e78e456ce62cf6c3f3ced62b6d728a00704dc9bc23c7f2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/configs.json": "085acbd650b12954c5b11555da028f51476a20df81983f0261a73cdfe8f79cc9", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/evaluate.py": "a07be3dba9643559cfd6561d9bffed760b4b42766683d3803e18cbbb5a9439f1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/carry_cycle_compiler.py": "b882423e31d590e0e545aa99bcf0e73b47405a4e3ad8def19b903480cd5b8ea1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/index-check.json": "896beb62f51791a1e586970fae2f053d3aac9bbfa37c204c927ce49e5cfffb1b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/indexed-canary-receipt.json": "1cac085f5f12fe97d1eb219753cd4eb48940828d4b65b8bdd41f656351142caa", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/original/output_basis_compiler.py": "53de1da764e71578bf3ad1fa560dad76c06de994a11df847b2448336fc0d1098", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/NOTICE": "dfc4c460aad4eb08d7b980792bd78d6258b24fa166272d50e2e7cdf58507de4e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr69/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/references/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/compiler.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/indexed-r5/scripts/experiments/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/FETCH.json": "4aee950c461d4b46ca42d323d7a7041118ba2b1002d7a867616f3c7ea4d66c1c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/NOTICE": "c087c747998243c96db63203920affd28cec880b702c36017c40a3eb29947fa9", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/SOURCE.json": "d5afffc59d4fd192f435a6875e47e4a357d6fb4f53623c2eb64c77a13e695d97", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/PROOF.md": "f7a908eea56fdab2f2e8f4ce694a0132c37844ae1cb657962b6549f585bfcdfb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/README.md": "f620b1a18df2b6c0f5d179ebf50f90e630270bba90e14c0d4bff189e3056ee49", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/SOURCE.json": "c933a96c636f1e22e02be6fb775a9da2cd14c11fa2d07ba75af17c7e99f00049", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/certificate.json": "cec62c4ca612e458b638982056c80be8741ed634904077a5c220427e23cc3edd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/check.py": "45fb95cb2a6b0573efbe37938c149936f4aa4fff1a88425380af7bc59239b4ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/producer.py": "ec94e4b7af370f7e921fffa3679e80d081a672dbd3ff198043edfb0dc7a9cc9d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/profile-23.json": "7f61525499f56ccc3a183a2741ef823cce30423475fa586ba7d36610b5b66844", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/profile-25.json": "9b4d0647e3667af963c164c048c6ea750d90397b046336ede5a5b6902a9f6473", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr74/research/balanced-split-frames/selection.json": "cbc616540af0ff5b63a90a920c70acd660fbb67052e4dc19889fe0443f2129f4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/FETCH.json": "79d6b40af23f03d6737be9a072ebca4f96aa6a663895cffdee4052432b5d13b8", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/NOTICE": "0a0e0314b9d1e23a193e92aa633fc50c432b6e3ea326f40d5cbb1ea538823149", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/SOURCE.json": "3211fa83076e58ddf3a3203b368ca0a599186ae174822f58551b26c150e673cf", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/README.md": "cbc4f20613e1dfafcce7c5f82c274fdd48898cc968d14fbea7bf9b1a47607e85", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/SOURCE.json": "c0ec88783c06431d95e1e8efabbb2928857f1d4ca8d0ada10206e99322ae78e2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/order-23.json": "def92cd69f3fba2986c7a230ece45f9eb63fd38fef512d055bf0adffe9edfa82", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/order-25.json": "209dee5fac04fa91a5bf63ed0307a56e849cc6800fa543254590045e0c95d6a5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr78/research/coordinate-flags/verify.py": "b59a5345c8684bb67a5ea666d5de11422c45cdf19f2c13de1520623a71bae7e1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/.gitattributes": "5f257f4e9e574ad5767f902242f519dad19cc455d6858f49234d0ccc345cabf1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/.github/workflows/verify.yml": "1a9cccd742ba2a5aa5a5ac38c1b7559bc0dec46b23d3ce3ff3e26c3137e6c3a2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/Makefile": "1bf5b63d413280a68fc2b91a7e83a6172632e50c8177ca097d9622af669ee8d6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/NOTICE": "ef6c74f5103d624f1a9910668d4124b213775e9b7e24edde089d9f4d1377abbb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/README.md": "6ae40d1b2e5f4d8e23bcc3a1cb0f7246ecae489184384cca0ec60fd3080d6306", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/SOURCE.json": "0a4028b9a38024a8a9e78ef4351cadaf089dbcdce6d5244b6bbdc149fd122c64", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-compiler.json": "41ec941f124456b65ccb558a921c0f3a1c624948fc91cec59c61689184f41f38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-kappa.json": "0c9ddf817a7198d597b65cd178873a36910188cfe9bdd2b22a3477ee84df5e88", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-profiles-23.json": "9da8b8d868aeb0b7bd5441aac12fcf5db045d4708a507cde3fe4087e2f75060f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-profiles-25.json": "c954ec6749c867d0699e1c66257ac04c78799fe9501acc406f917787b2a9d93a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-repository-validation.json": "1e6a0f55ca73e1b304e9f396dedad5d4f9ee920bfb009c2154913d8589fa111c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-transitions-23.json": "5c8b4221d59c103df8966c6aa4572ac09e2c3be2f0b6ae0775c22950bb40c029", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-transitions-25.json": "22f6e4add77e8fa4c4bb1d61b34bab48631b752e9b0ccb62913cc59cccc70ddb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-validation.json": "97aaf596b02b2d5cf22ea292bf2d4c20f76f91a9231fa21fb496b3c6bffe060c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-word-23.json.gz": "c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/certificates/balanced-split-word-25.json.gz": "210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/FETCH.json": "880cca0176778c6feb9bcf94e23272119bb623faa3f7be4a1ae8af050dfe4c31", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/NOTICE": "6362b95b44b119d045a4780f4a8398707c224e9971f32dc78ae55b17f7961942", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/SOURCE.json": "56a2ebf0a9691cd3bb65de5144a060942223b72d86c7375f8045d5eb4f5b39cf", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/references/frame-compiler/balanced-coarse/SOURCE.json": "6a6529574755d9d7ae8df5ba24537d73d55c4569255e92052bd74a7edde39dbe", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_README.txt": "57a2c27164cdcbe3b7289bf5a3dedf71921766dca66a4e4f40f4ff197d1fb2e4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/balanced_coarse_compiler.py": "bd8169bf9f5df185a8aa4aec22234b4fd483000a1cecc78b71bf32e479af1499", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr69/scripts/experiments/pr62_exploration/audit_balanced_coarse.py": "7293c86b75b995b7d23ae81df28c9c2b99fcbc63a8587cdad4f795c665ccd902", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/FETCH.json": "61d6869bc5d4ad03745438baa4b390c09012ca6bdecb0bc8dfa71a379a90c08f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/NOTICE": "62d9c3390f8c61fcc5efcdbeb4cd60ceb7b31aaf75c4ac214288fd72c86a5890", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/SOURCE.json": "e3b52374da4b8b78b36dfd3163a26ddba1fc73435c353e64744ff5095eb797ea", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/README.md": "0b3a002646badaf8138ec65befca8936e3a23e290fa853b79db7413b9b682948", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/SEARCH.md": "118cfa08c875a41ae79c9c0fdb7c5cc8e3af52b278ddbad978a13649f268cc82", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/compiler_profile_cost4_exchange_3d3d6f5c9a0b.py": "74821eda3bc47083fa9e6cd05120a04417f4c9523e0f64a7da3cb684baaa1c28", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/discovery/runner-2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5.py": "2d545544e429a83aea08c1d6b344dff149b1bfc75fcd9685c148bb01934f61f5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr70/research/profile-aware-frame-search/math/RankFlowPrice.lean": "d9255a2065f740686317efb9d39a234b05456dd688363a5ba4e3f4f0be08be97", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/Makefile": "6e9e48a677b2f66643226840f574a6535e3564ffb0c72284b60302684a5dfbe4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/NOTICE": "1e0702aa665673508fa91169163c5785d680637fff636fda01f36e3b127c3ee0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/README.md": "24817241fcad7f0a294ec6ad9666ee552ed9057e8d89e3c1d27e8fa2c7fe4229", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/SOURCE.json": "7d5590630762186a94763c8c76e027f0c6c3c6749fc09af65476c25ad160c165", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-compiler.json": "6561fab8609e8aa3a291a8197cd8b834b0881ee0b9a5b991926c2c93c4d5f884", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-kappa.json": "0fcb53fa374273efab6370953c966e8fa065dbfdba43691843a4788cb2cda42e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-23.json": "867302152b62abf28a6e1b119580b99eaffa237082b1d295000a3ee2637d5db4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-profiles-25.json": "1ecc63972ae4df2ed7af7278d5f65790dd4aca3032cc17304f39ac063cd2c067", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-23.json": "6ca709c1e101f7c9a828d9ceb8a7f2991a2d954b84c9ae8c616deabfc1e321c8", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-transitions-25.json": "4364441b6a7c444bb2c84ab5b973c81e4069d753be7f1cf5a3c836096a739f1e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-validation.json": "9b64dd6382fc592e2cda6bb54be27ba8f705ede24c50fd2f9b4336ce2e402c7e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-23.json.gz": "ca504cb3912358a9560d4916eaeea2e415c24991db0bc7d397e50ea53d9cb24b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/certificates/split-pair-word-25.json.gz": "54f612f688d6ba3b1fffdd83aa6053035006fee90cb4b3899fc7880f35c38b4f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/NOTICE": "f85437ee441f2a028660dd5e8dbdc0ec7b52bb55c04ea34fa4829c154bfd0ac1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/SOURCE.json": "bd0c5dd41b7fc797c8c28b7c738f6c4d709103908e1394c3dee18ecaf39ba38d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/SOURCE.json": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr59-split-operation/research/split-skip/split_graph.py": "9b16ba907cbd58611fb64bfb9211be7809d54822d44c78fc6167cf4ba79eb905", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/SOURCE.json": "6ad67c1dbbc9f10fd4cf3d396405e3d02364ead5fb56961f01da7f8200d55c8a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/PROOF.md": "30685624bf922bb9d9f7ed4b0d367a660fe373cc9ee28fec33585bd8c7023e75", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/SOURCE.json": "8f8c0fb7ca012ec5092136744eb52a0222697a8275d14aa8f667339c86baf9d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame-compiler.json": "86eeb10989a61e571938178b91dfe1b81ba39ec97cc93124c00cecd91dc6ef13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/frame/frame_verify.py": "fafe25d57166a747eeb847444a2e02dd7eed19038b93a2c495014d147d04a8fb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/pair-assembly/pair_graph.py": "3d47e89d2649c90800a276bdd0480131def50e0bdf92c122a19494b55bf17420", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/README.md": "13fbcfe41a4cb22ea6f1d59c98305add85a86a4db4677ab3450fd34b139cf39c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/README.md": "93a1e4eb52ff3b3f3b24464ce1e7b5498fac2da2789cab5deb76e7342fe36775", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit-receipt.json": "f481198b192790b65dde2f93a837fb5e2e7508322f25bbf26f73530febd1f659", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/certificate.json": "6474f4c638b5a16de5a7ed6054f3ad28404eac17eaa4570aab2ef378d6e7e1a3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/arithmetic/test_arithmetic.py": "d4824c8c1cc6c726daf9104c820aefe1e57ce6a8625871954a54a538b5af0524", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/current-comparison.json": "be8713b049b34b41d82ef3e03380f6b45d7b33bf8611af9942dea7597406dc07", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-compiler.json": "48f86ffe2c2a16d3817ed3ab814cd1442442ec15f827d43a7383a0a953ff4337", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-23.json": "fec377bcf1512a427674983256b900229d4133026445b6e680c6e1e6dde5af7d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-profiles-25.json": "28b4b911e26fbc02dde0d2e1458ed16227f756126ab8144d6d45e164d1165262", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-23.json": "86646f1110595294cccc15603c552f0a153574a690b69c3b144d84a449891103", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-transitions-25.json": "c333c348665d12b95e168ca4fac48bfdca335104edd0f29c81fe94bec292e774", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-23.json.gz": "a44e038e1c548ea8ac31dd04acc2bba7951b22e17df7b7ad3464ea2b504a8da4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/frame-word-25.json.gz": "ad8b299697f90b185b6b791313b505586be97965519052100d097df6199e00c5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/paired-candidate.json": "34a500d739537235dfc5d24325c22856ca4567b9eac998a3bce9b13db5501940", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/test_negative.py": "88832242e6f74e3fe08d109d4f21ff188a9ca0ae50c3e8f31da0243fe9501510", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/research/reordered-rank-pair/verify.py": "e84ed21dad24f9b8c429441caae49c13ccae883be2f04e696993cfe665b57352", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/experiments/rank_pair_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr65/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/NOTICE": "5931cb7d43e09380594b113018cac70258fb66e0673b91f706b01ea482c1be1a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/SOURCE.json": "6c103bd7e29cb737003d0bfa42c541a4eea2f3618bfff980992eeab1b8c16e70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/README.md": "e0fcd8e732c8b8becb3d860eb83dc979ed5e6b33ba16caf9dca1e44f7929c340", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/arithmetic/certificate.json": "e66f955f1b76ce3db7ecb84294993a072f42f972b8f3040015c12e6dc953d698", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/compiler.py": "29296211e0532aaf19101a6b2f2ceaebe374af95ae3acd63e63656db0afef7ae", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/frame-compiler.json": "eb5c0b401e677d3958ecfcd6d8de3bc825c4fb66d1cf79c3fcbcf23938ca6e69", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/paired-candidate.json": "be0322ad60f73923953f242eaffaf114ff12438e8617dae38888b77fa03184cc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp": "d1f6b650de9fb5842b412595369271d9eeb6f54045c76c0fb5cad29854955c35", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr67/research/slot-cost-rank-pair/verify.py": "3c1d2eac9d3d2f13b60503deaa84e11ab2975aa84af71c8ad74584c5902b2d77", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/NOTICE": "d9db68e85db965bf7037d535ddc354b096b7c3b8f4cb0eb4887dc61eba5eae23", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/SOURCE.json": "6473ccc29182212770ae4fd747b50a607c2a9b302e21c5c4355ec1b25bafe2e2", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/PROOF.md": "3023c8c039acb3afc2a1e0c2ee55dcffaa4a1a2961076222ae20b03d0f3c6a38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/SOURCE.json": "f6249b8f91c7721a59ecc6d43a3f2ec65162578203bd430ef76732a3937399f3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/compiler-frozen.py": "12d646fa9ad69e4f3c532fe69080d8fe1509cde0968a6ab52a9d60273803adc0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected-manifest.json": "97bd86fc20fb3aee2d1adacd6a485b12e918b7340d2d3ca70e1318889e13e3a0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/references/frame-compiler/pr68/research/global-anchor-screen/selected_compile.py": "86bdfcf599c6b131e376773fe177bca57a9f63c9b60bad5de8aa00982d779b22", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/PROOF.md": "467d4819e9f2db61f8ea7f270b8b6696d99f7980d762aad0d19beced5e24a82a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/README.md": "6efd6ed7d3ee72167bea586f3186bcc5973493d6560152c4bb66d15fbaeb5c2d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/SOURCE.json": "9d5a4a7c4cf459f4c5731809de93cfb4b873cb8c9ea95a1be9239733a9a93c72", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-23.json": "9a2cbaf8de500722844bc8dff09fb994a00d47b0319b3aad4e612435c32308b6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/config-25.json": "706c5998f8414d495e4da8cdcf4fe7c718762649967f16b36513826df6df5b13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-changes.patch": "47c612dad40164b04fa7ade38012c904d81785688dad2640daa0c9ccaaeeb48f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/engine-provenance.json": "a56ea22dafee35523fcff9d0e046cc437b91ee4410f00300a887319d58a1ffaf", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/research/split-pair/parameters.json": "d1385be76dd427d621d73760161c9e87b9d4a0a927a94df0b3fe450f3cd67e24", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/pin_split_pair_sources.py": "511618d0095435ced888c2d2dd78fb92e59f10866160c787acb354da6cfe4b44", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compiler.py": "3de0ececd6ab108d8780834c3f1a1a84ce7cae49dca4019882bea7f63b588661", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_compose.py": "9c6337096d5517344cc5029bd80a1379fa407047662ab54c469db7b11e9daa34", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/split_pair_graph.py": "9d4ee7179f880f9576e81c7ad3a5290fe61380a7531d559ef3cf0939bb30089c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/scripts/experiments/verify_split_pair.py": "5cc7031569b17b560f68d4238191a32e5d7f66e7fdcbaabd0ca87020c89f89c8", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair.py": "07c8c24306a6ca8ffe55934cbeb40069cbc198b01921232aff66cc50fd50aee5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/references/frame-compiler/pr71/tests/test_split_pair_pending.py": "b111a8d09e978944b3468a96f7fd486c7a1283d133a7a6ffe625c6d5cad550a1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/PROOF.md": "2c04e3479d4b1ba3ce745a89c68d5757d854661bfd6f1b3f7e37287ae02fafa3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/README.md": "c6a4505901658dfa9445024c5a1a76001b93ca81082debf370a6173832e2484d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/SOURCE.json": "68a96f879c1501b62da0366ea1003ccf4d4468a2240a70cf020cc9fff9d38471", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/config-23.json": "bf6073484981903091c4ee9c59b45b772bd27bd7fe0617c3801f42bc5d263a4e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/config-25.json": "594627265f5a1274d2fb9acc82c6791dd307763fbc9c28442379113ecf4991b5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-provenance.json": "e1572a20ecc5be1c07e8b6ced4cac2c9ec5b723adc51764bcfdafb30feaea0e6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-relocation-23.patch": "f6df06b5bcedf246f62243b1b6a590e6888c6e20ae5b8781eb10434a4358b139", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/engine-relocation-25.patch": "001c9ee58555d7790ff05f488293f197f443723020820fd6d401bb088841a868", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/research/balanced-split/parameters.json": "d1c35d01616ba26caa39af785e8625a344304dbf60c4e358139000e9e7a79f09", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_completion.py": "3ec5d8a56ab5638f08da7583b923969b9470ba201a4bd1b69c4d814bd60b2621", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/audit_balanced_split_exchange.py": "7c0b6942d51bf2a9227135af3d0dd680ddec2603e2fc800d84bb3c5ed62a884e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_compiler.py": "5660a168c82e661042070219f0a71aa6145437a4ee8a21d4bfc6330c5715dc19", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_compose.py": "0a00ba79cefb535eb5295aa7e9819805f4f606a53af5b7d658937836ad30ad3c", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_engine.py": "a6a423c49737a1f59495a6ba012ed2edcf971e56fa7f0a422b8c9e21212668e6", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_exchange_engine.py": "b80879652ffd52abfc09efe91151cd8613c0cc75bc8c32f46e7edc1ac0ca8bd3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/balanced_split_graph.py": "b882680b7449cb23e1bf45c1db085c07750172ec3da121717a8d1993e03ed33b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/pin_balanced_split_sources.py": "1ad34c438f3900379b0c3679d1bc9307a520896153247b3949c0a625036545f1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/split_pair_engine.py": "58f13f82ce1bb7f2b5549e17628bc6034e5e05cb24db2acb9a91c24820872f70", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/scripts/experiments/verify_balanced_split.py": "954795a732a39e716e6a35e0aaba7f9c95a5bc8d7fb91abfff7c4d7346c60dc5", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/tests/test_balanced_split.py": "9664bd572123cd525f1d2b0e60f928d000fd3093d4d1f322cf946791b5b4969e", + "references/frame-compiler/pr88/references/frame-compiler/pr84/references/frame-compiler/pr79/tests/test_balanced_split_pending.py": "29139af10f899ae1738183b22439a888d89d1941f75573e5013fbfb579934524", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/PROOF.md": "bddb8f880bb13dbf481b05672ee46c529d4880e9df51c745679bf6954e0fb4d9", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/README.md": "3df371f98c6b1904b402297e7c0c2672b3a1fa4c0ae03238e2328a2948294a13", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/SOURCE.json": "c5b314b4acff73f8fcd31802db2609f848ef6fcc2b63740fd985c353d994a612", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/config-23.json": "ee7d447f14c6d4a46b04dbdc0468b00c3e8e49100352a202794800315ae8eaeb", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/config-25.json": "7c2ae35096692b97bbdad3efdd43331113ddadb38af0c44d9c5eaeb00613ff40", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/coordinate-search.py": "acd52c55a9c4e43833d0d81ff952d2882336ed188f5857bc1dbb2866fdbfb082", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/discovery-selection.json": "7bfb5b01851f3f80cb1946bb691383d0861f9801043ceb866ed43c86b45bac8a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/engine-provenance.json": "b7455d1eed0dfe6a4160388f21628e2071d511f78769f17bf76bb892136b6055", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/parameters.json": "71a365e0d1031b998a2862ac0220e318fb9c7a04c1ac57aaca446ed017efc119", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/parent-result-23.json": "59dad7c4676711b3f333103d82c5343414a714707cfad096d4eddc5155a24dd1", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/parent-result-25.json": "e3d8ad1df932f1d916890583639b78fe99844dce9dc59a42785ae69c5d42bdca", + "references/frame-compiler/pr88/references/frame-compiler/pr84/research/indexed-cycle/reported-comparisons.json": "c32387929fadde48b5c9f730dd014b8dedb20a2d4bd1bd644428fabd50ccf14a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_completion.py": "49ba72874c5866f254d213ebcb44d42d62e98b94324f370a126abfde66caf04d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_cycles.py": "9b12947cebf91f0b26e7c40431a783921e8e1eed2b27f9f26533a2377c9b749b", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_exchange.py": "93e65ff84fddc290d210669798bc5e420b04072d491ed05e0e75418cb1ee4288", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_pending.py": "6843173cd4ced62ae8022adde3171a2e94eb6264527df37b67b629047130053d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/audit_indexed_cycle_retired.py": "5866018a6db4e03d6b563a13a369e78d59c340b16956b626a0d94108e593650d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compiler.py": "f5084ee68d7a880db8fd8add54d9c0ab08af0cf93e0d7f65beb3bdbb8c533dd7", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_compose.py": "75d4853004dd9e127d06b36b2fad5c260e0db152b283a3407df4c0ae98c15828", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_engine.py": "a4a582339430662e13c905d5a4701f4e488ff1830a72dc1c71da57066ad2ea38", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_graph.py": "d6b08e8806c3d774c16c8714dce2afd7fe72c7b087fcf2b123eb5971e862b48f", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/indexed_cycle_nodeops.py": "9476e799b86aca3f6941acdd4d57779ba5bb5f4f29ed89247569daa9e88c1600", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/pin_indexed_cycle_sources.py": "0e3359dd54b83cb60aa906e49360c477b93c5ab9ac397376b0d98b25092bf79d", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/scripts/experiments/verify_indexed_cycle.py": "67c18e50274313375084fdead652eef386fbb984ec764bcae1bc73e7fe75e56a", + "references/frame-compiler/pr88/references/frame-compiler/pr84/tests/test_indexed_cycle.py": "9f5c25fac4631323e985035d1d75e75a8a476fcf6f0b879f38bf3b40beb6d584", + "references/frame-compiler/pr88/references/frame-compiler/pr84/tests/test_indexed_cycle_coordinates.py": "4cd5b7161f0e56c4ac1d8e75d5644aaa5c5cbe371220798b6d374ea733f624e0", + "references/frame-compiler/pr88/research/final-frame/PROOF.md": "a795e4badf9085a0eb933dd12481826aa75397f2e6fa3a4d35a3b5e89daf3509", + "references/frame-compiler/pr88/research/final-frame/README.md": "e3d352038a6af82b5481ab93763cb357576356c6d7193513414a8e3c8d6fd3e5", + "references/frame-compiler/pr88/research/final-frame/SOURCE.json": "e3dd5854c685f7dab09e3f652cdc4c075c8d13d1b05e4d2cdcf25e9690cfc246", + "references/frame-compiler/pr88/research/final-frame/config-23.json": "00242a982363c90851f2198e10cb698c528b7f068b7d477e8bf9f1a01839a8ec", + "references/frame-compiler/pr88/research/final-frame/config-25.json": "514b18ad0626ac0d703b0ecc8344098dea1f5bc398ce92ca5fd1a672f558506c", + "references/frame-compiler/pr88/research/final-frame/discovery-selection.json": "c05715807ad48d2c292f6e3431c338c39d4e7ae80b9758a8c3f8ace520178e23", + "references/frame-compiler/pr88/research/final-frame/discovery-source-audit.json": "086532c924990407cf730dc5b2ea8f65e94539587eea52d1026644096ed62168", + "references/frame-compiler/pr88/research/final-frame/engine-provenance.json": "5e498a8c443c95860f95bbe61fedcd3f626292ebb4eaad06da2c98e371d0eadb", + "references/frame-compiler/pr88/research/final-frame/parameters.json": "1aa54356902b407c214e8152c2638d9babb0a978cd50652f25657c10672132d7", + "references/frame-compiler/pr88/research/final-frame/parent-result-23.json": "7943956321b71ff22ef2beabd13370f66e38c447d6b374ee8dda050dff78f9fc", + "references/frame-compiler/pr88/research/final-frame/parent-result-25.json": "44049b5e72720cdf8cfbb0c39c92bf0b704a46ff93cc61ba47d1000ba0e57d4b", + "references/frame-compiler/pr88/research/final-frame/reported-comparisons.json": "63bfa0b6881156f14bad99a51e6450ec5ed1f945ff23a9d6e67f9c8bb6bd9907", + "references/frame-compiler/pr88/research/final-frame/scalar-23.json": "4fa7a50e017e8160f884d8950dd6a5ef0edced9628bb2d5f35c01878a383ba99", + "references/frame-compiler/pr88/research/final-frame/scalar-25.json": "460495b9e63a4f7f2c4e911a6c7f4d9b0225e55a14e3ea0134102a1907c29f60", + "references/frame-compiler/pr88/research/final-frame/selected-discovery-clearance.json": "6907a1a9cbea45144840579e0d4e3bac2d82fd6fb047f1553527e9b5f1d3db4e", + "references/frame-compiler/pr88/research/final-frame/word-bindings.json": "c1f99639561792e0be3b42a387536a20f4059365cd7d9292bd02d460852a6c67", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_completion.py": "8cb010398b51546eccc4abad2265ee4eae638c54f12a37879a925dccdfb48771", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_cycles.py": "c0c2459c55158cd6537e809365c1c9d794bf5fc3081686b5a49fac50bbdf89f2", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_exchange.py": "a1164cac02b1a44638a43e6620e8d124e2212a5af1d730276084b7c086cc3264", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_pending.py": "4c180132e0e1647403f7a8812db3cc7ddebf05aadd0c94e700de2c04d1c08061", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_pricing.py": "8da6f4d718628be91215d9f3a83d2609abea73f59ec6446dcc2958c8882d20ad", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_retired.py": "a114b303faaca92bdd0f420975efab51e3b2868564dd0498d830650fd900e352", + "references/frame-compiler/pr88/scripts/experiments/audit_final_frame_three_cycles.py": "11377b67e4884c1b562fc5aed7c3536edcba2923c3aa7f2a45a237f7cbc52233", + "references/frame-compiler/pr88/scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "references/frame-compiler/pr88/scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "references/frame-compiler/pr88/scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "references/frame-compiler/pr88/scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "references/frame-compiler/pr88/scripts/experiments/final_frame_compiler.py": "1a42375e725b8f29e5044d5aef3a6aecf30d67f6e79bc1aac73b131357486f4b", + "references/frame-compiler/pr88/scripts/experiments/final_frame_compose.py": "a318b900d76f2ee6cfd26427a293402bc7a5f8d88d8a4db173b08011b4d63370", + "references/frame-compiler/pr88/scripts/experiments/final_frame_engine.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "references/frame-compiler/pr88/scripts/experiments/final_frame_graph.py": "9be07ea1740194945dadc4750bf584264c9527e359133adc99d3617ed6a635df", + "references/frame-compiler/pr88/scripts/experiments/final_frame_nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "references/frame-compiler/pr88/scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "references/frame-compiler/pr88/scripts/experiments/pin_final_frame_sources.py": "0049600f0232e5d2ec4a7df03268dd6f8ed2fed86c025b94c0a5abe584d491e6", + "references/frame-compiler/pr88/scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "references/frame-compiler/pr88/scripts/experiments/verify_final_frame.py": "7a76bb1796135047cbf6f2044b7c0687176ba04bd7da0e597031ebfe0c3dae29", + "references/frame-compiler/pr88/tests/test_final_frame.py": "02c6cce10159666dda33868b4de002983ad404f939f0261166cca2786ef414e2", + "references/frame-compiler/pr88/tests/test_final_frame_coordinates.py": "c8208981782bda9cee66447a63f9bfd6124d6d382efd91cfa09d002853e8c1c3", + "references/frame-compiler/pr88/tests/test_final_frame_order.py": "080105b619c06315252199a75f014330a0d448b1bd5cd10a2e5443ca188d077f", + "research/aligned-composition/PROOF.md": "feae38a74fd6d3a8f3ace0c4d30ba6361b28fa26616c765b289e4310712a503d", + "research/aligned-composition/README.md": "789691c9816b362ac4b5967586f8ed6248d65d84f4e4b97296b86c9f555d3e18", + "research/aligned-composition/config-23.json": "f62c3570f4b88e50f687c696f3338235d0900be607f0399c2b0afc649dce0dbd", + "research/aligned-composition/config-25.json": "28cb1237f4c4a8f839e8f00ce44736366c4cf7d5b98ec49d6ab1f4e39ea23acf", + "research/aligned-composition/discovery-selection.json": "43a762adf17b2338b2d7ec486fd6eb17d00d1d221e7f1e4041711cbce9964ea7", + "research/aligned-composition/discovery-source-audit.json": "e2140c89a16e04dfd4d9fb6688b243b5bdc556695c1a882e7c8d85843c55699b", + "research/aligned-composition/engine-provenance.json": "b8b1cce0a95625b350eab836b257e6d526aa867aa19600941bbf4bde79463469", + "research/aligned-composition/lean/README.md": "9cc2a8c178c97d1c1c7efa69e85bcd972c9059adcdac41c76f4cf172b123502a", + "research/aligned-composition/lean/generate.py": "52435e20b06a65717910781101b372aaca7faf071b7bd8231d7ed1770b55b9aa", + "research/aligned-composition/lean/independent-audit.json": "5f26b4f42dc4fdea6598aa39f0fb16596cca6da11934d2b55c402eceea354ea5", + "research/aligned-composition/lean/input.json": "c8c19d762d5f302a5b15a5103e88592b359e4c1f11add1776fd7c97725d8bdb9", + "research/aligned-composition/lean/receipts/compile/command.txt": "af59dd7b5e6c34a688b56926422919d4db08e5d54ea08d5e450c7a8b35eec88e", + "research/aligned-composition/lean/receipts/compile/cwd.txt": "242fa456d9a4de42222da1163b40484b1c27e92be6abdfdba560024beaebcc54", + "research/aligned-composition/lean/receipts/compile/exit-code": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa", + "research/aligned-composition/lean/receipts/compile/finished-at": "af0164d68d01fe1ba673a0a3d39741875473bd2069923dd497f49e2a0e8e5b3d", + "research/aligned-composition/lean/receipts/compile/output.log": "620a70bc45bb6eb6846365548e7ac9292ea811f020d27b9bf54d7eeb118f2d33", + "research/aligned-composition/lean/receipts/compile/started-at": "efebb180ab28e6459ad32de891f917f822bc0ab8b1fb61d35cc0abd04452678d", + "research/aligned-composition/lean/verification.json": "37c7223ef540471147b58b7080ef888085ef12d7e7d3a922d2bdd19f5f61e958", + "research/aligned-composition/parameters.json": "b64ffe9769056f0860996f66616333cf1fba07087dddf3e73d1ecbb459449ae8", + "research/aligned-composition/parent-result-23.json": "cc3c4f66a8291391ce71fe99938610883a2d53e1dde6d80d3434619184e53d99", + "research/aligned-composition/parent-result-25.json": "8dfd1e117a4873d93fcc88f93fc5eba0013fe36002c23ac08ecbec029aba96bc", + "research/aligned-composition/reported-comparisons.json": "6e7a94103862453f75b7e4c81a2d32cc48bd43aa95d122e3cd05edf6f9a7fc0f", + "research/aligned-composition/scalar-23.json": "a9188191d0089012d8aaaf6dc3a47ce6b07a59c472b7e33af2e180618a7bc36c", + "research/aligned-composition/scalar-25.json": "4367bea7d419ec7286f68d30c2ad14b9474c183897a4c0b0feaed93f1273d925", + "research/aligned-composition/selected-discovery-clearance.json": "0df6afce75ffff2ffd33ada9ca158e1cc566952091e344606c2553f1b42f6e04", + "research/aligned-composition/word-bindings.json": "2551253954f22c0067244372587c9023d62751b2a10327bed9aed67a921789a6", + "scripts/check_lean_axioms.py": "6c1f5ae8dbe6927bcad2933d97ba6d72ab9cc3a28a56dd88ac54edab6065e164", + "scripts/experiments/aligned_composition_compiler.py": "83f37a338092bb3c46570a9c1188988df91e18622d9446f95f0da7fed2ed20dc", + "scripts/experiments/aligned_composition_compose.py": "3e0d94d38514fe4d4e9383469e15b0f9f399354117dacd26d110941b9056340b", + "scripts/experiments/aligned_composition_engine.py": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "scripts/experiments/aligned_composition_graph.py": "683b299e8c334413f73b8e26767107aad9dad973c69d3d30690c3040f334fcb9", + "scripts/experiments/aligned_composition_nodeops.py": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "scripts/experiments/audit_aligned_composition_completion.py": "65c75c6386f31efc5b961e224f72e59fddea6f80fa89a7c2271911e46c328d13", + "scripts/experiments/audit_aligned_composition_cycles.py": "f2f449e668b3fb5df1fa1478b5e4a4a6f700dd06aa29d3a0f449843c148ea918", + "scripts/experiments/audit_aligned_composition_exchange.py": "f3dc3fbacf857162814b34467b02499fc2cc56b114448d8cea38cffdf64aa485", + "scripts/experiments/audit_aligned_composition_lean.py": "8051a3f14abe136062698a2c2b3534788348e3d3b4e61f044ff4e9232267a0ae", + "scripts/experiments/audit_aligned_composition_pending.py": "f68b24b5104375fa30e7f82b91c13a6f4374a7c9b3f19cbad60f29ee0baf2757", + "scripts/experiments/audit_aligned_composition_pricing.py": "5a13a4de2d79b912f1b474f98d6cbb1113e6b9309ad7ec39305df95e2c8336ed", + "scripts/experiments/audit_aligned_composition_retired.py": "0f3301f3bacb0b86ca6edb32516079931a9cf896c47ffd176796be3b8fddbd44", + "scripts/experiments/audit_aligned_composition_three_cycles.py": "492edb9082eca3bc35346546f971d71b906abfef9cd9fac63fc140721372ef75", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_aligned_composition_sources.py": "a223d367360947721b94fbb1703caae79d8e9f9e4608b56f695830f52445e890", + "scripts/experiments/split_pair_arithmetic.py": "fb982a0ac8758b2e308dc8bd145f21548c28f4f2ee97d28e77fa849b9560de4a", + "scripts/experiments/verify_aligned_composition.py": "c8333ac070d679878daefc3642127e35a349388265a1ac3520f2f0816bae2c93", + "tests/test_aligned_composition.py": "a6c3578c224eabf8076a74fad53ec069618a4b7ac26edfd320b68dde2bcf91ea", + "tests/test_aligned_composition_coordinates.py": "8b0e9b28178b3d9572fdd5c49792e5c0b9316de100eee1e2ee5ba8f0629974de", + "tests/test_aligned_composition_order.py": "a4f55fa51bbf4df98d27ace8bd3fd3a5a33e4818773cd4a82c643015d6cebf4e", + "tests/test_aligned_composition_partitions.py": "d55034cc5bc184dc0e4f81e51243c4ce5eb0be03a4c1d3f2db43d6c249d3bcb1", + "tests/test_lean_axiom_output.py": "58a12341855d18e0c92a5d1fe658d8ec2ae1854174647ef0ed372f61c177edd4" + }, + "pr74_aligned_partition": "428b5c167686b42a83f1abf7003c6d17aec561ea", + "pr78_coordinate_flags": "1c1f1e4ee87a6895eaea622e1a33dcd4b0aa62cf", + "pr88_construction": "3ffd9b1dc7ef2978fa1831fe3850cd4f534aea70", + "scope": "Exact source and finite-input freeze; all original contributor archives remain immutable; derived arithmetic and validation receipts excluded." +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/config-23.json b/references/frame-compiler/pr91/research/aligned-composition/config-23.json new file mode 100644 index 0000000000..043d1e788c --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/config-23.json @@ -0,0 +1,45 @@ +{ + "anchor": true, + "anchor_pairs": 6, + "carry_exchange_passes": 3, + "carry_two_cycle_passes": 3, + "coarse": "depth", + "coarse_word": "hhh", + "coordinate_permutation": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 17, + 19, + 20, + 21, + 22, + 0, + 1, + 3, + 2, + 4 + ], + "future_completion": true, + "groups": [ + "first6", + 1, + 1 + ], + "node_order": "pr74", + "oracle_coordinate_pricing": false, + "output_mode": "baseline", + "pending_next_use_cost": true, + "schedule": "natural", + "three_cycle_passes": 0 +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/config-25.json b/references/frame-compiler/pr91/research/aligned-composition/config-25.json new file mode 100644 index 0000000000..db51026b83 --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/config-25.json @@ -0,0 +1,48 @@ +{ + "anchor": true, + "anchor_pairs": 9, + "carry_exchange_passes": 3, + "carry_two_cycle_passes": 3, + "coarse": "depth", + "coarse_word": "hhh", + "coordinate_permutation": [ + 6, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 23, + 22, + 24, + 1, + 0, + 2, + 3, + 4 + ], + "future_completion": true, + "groups": [ + "first9", + 1, + 1, + 2 + ], + "node_order": "pr74", + "oracle_coordinate_pricing": true, + "output_mode": "route-late", + "pending_next_use_cost": true, + "schedule": "natural", + "three_cycle_passes": 3 +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/discovery-selection.json b/references/frame-compiler/pr91/research/aligned-composition/discovery-selection.json new file mode 100644 index 0000000000..ff419c5b29 --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/discovery-selection.json @@ -0,0 +1,223 @@ +{ + "PR74_commit": "428b5c167686b42a83f1abf7003c6d17aec561ea", + "PR74_kappa": "5278214423139/100000000000000000", + "PR88_commit": "3ffd9b1dc7ef2978fa1831fe3850cd4f534aea70", + "PR88_kappa": "52514124198891/1000000000000000000", + "SOURCE_sha256": "64584e5521f782571fe9415fe6bb83728499f0f4d5fbff79e345328586cc7515", + "W": 130417912, + "axes": { + "23": { + "anchor_pairs": 6, + "coarse_word": "hhh", + "coordinate_permutation": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 17, + 19, + 20, + 21, + 22, + 0, + 1, + 3, + 2, + 4 + ], + "groups": [ + "first6", + 1, + 1 + ], + "node_order": "pr74", + "output_mode": "baseline", + "paid_profile": { + "R": 26387, + "blocks": [ + 0, + 371505, + 11855, + 16183, + 4817, + 3983, + 3154, + 2137, + 1923, + 1415, + 1172, + 853, + 822, + 499, + 393, + 293, + 268, + 68, + 320, + 0, + 171, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 5100, + "distinct_matrices": 40810, + "field_prime": 2305843009213693951, + "frames": 78515, + "h": 23, + "loss": 506, + "rank_sum": 607407, + "v": 1771 + }, + "pricing": false, + "profiles_sha256": "b7fcb59e80ec2e882a0bc5a9fee8f52733089694999069d019e47c00b6fada1d", + "roles": 26387, + "selected": "/Users/chafreaky/Documents/Codex/2026-10-08/goal-improve-the-exponent-in-openai/work/spark-results/spark/aligned-r11/results/23-['first6', 1, 1]-envelope-half-baseline-pr74-pricing0-cycles0-new", + "selected_stats": { + "augmentations": 67, + "carry_exchanges": 1091, + "carry_two_cycles": 198, + "clearing_xors": 5147, + "live_anchor_candidates": 69960, + "live_anchor_xors": 430, + "matched": 59832, + "multi_node_regions": 7452, + "reclaimed": 2253, + "regions": 78513 + }, + "three_cycle_passes": 0, + "word_sha256": "87c8f3391c7be80a6af9952cba82f518c4facae5796418e4bc1c3ac6228721b8" + }, + "25": { + "anchor_pairs": 9, + "coarse_word": "hhh", + "coordinate_permutation": [ + 6, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 23, + 22, + 24, + 1, + 0, + 2, + 3, + 4 + ], + "groups": [ + "first9", + 1, + 1, + 2 + ], + "node_order": "pr74", + "output_mode": "route-late", + "paid_profile": { + "R": 34772, + "blocks": [ + 0, + 504683, + 18260, + 19030, + 7746, + 4400, + 4491, + 3537, + 3136, + 2209, + 2257, + 1550, + 1493, + 910, + 909, + 469, + 581, + 263, + 210, + 59, + 387, + 101, + 169, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 5955, + "distinct_matrices": 54709, + "field_prime": 2305843009213693951, + "frames": 108758, + "h": 25, + "loss": 600, + "rank_sum": 869900, + "v": 2300 + }, + "pricing": true, + "profiles_sha256": "a0e3e711e0c1a6fad082554799f9799f5499f1775a0c0cbb49f1ec61ff5a15d8", + "roles": 34772, + "selected": "/Users/chafreaky/Documents/Codex/2026-10-08/goal-improve-the-exponent-in-openai/work/spark-results/spark2/aligned-r11/results/25-['first9', 1, 1, 2]-envelope-half-route-late-pr74-pricing1-cycles3-new", + "selected_stats": { + "augmentations": 55, + "carry_exchanges": 661, + "carry_three_cycles": 60, + "carry_two_cycles": 46, + "clearing_xors": 5751, + "live_anchor_candidates": 90997, + "live_anchor_xors": 507, + "matched": 84403, + "multi_node_regions": 9925, + "reclaimed": 2756, + "regions": 108756 + }, + "three_cycle_passes": 3, + "word_sha256": "e3de786d598e37003e8fd587efc114d0cbd3dbe94ed6dd971bbbc464c0e99c9d" + } + }, + "bit_saving": "10558480765231/200000000000000000", + "engine_sha256": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "equivalent_best_pairs": [ + [ + "R11:pr74-pricing0-cycles0-new", + "R11:pr74-pricing1-cycles3-new" + ], + [ + "R11:pr74-pricing0-cycles3-new", + "R11:pr74-pricing1-cycles3-new" + ] + ], + "graph_driver_sha256": "1e5e07722f1d3af3df1f4bfb7bf4cd73d5233b1c88d294722bbd57df94566c53", + "kappa": "52789616935221/1000000000000000000", + "nodeops_sha256": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "portfolio": "/Users/chafreaky/Documents/Codex/2026-10-08/goal-improve-the-exponent-in-openai/work/spark-results/aligned-final-portfolio.json", + "portfolio_pairs": 59045, + "portfolio_sha256": "5ecde1320034b152779c702d7ccefdf953a00f678a62adcfd8c3ef7a8fb1cf31", + "rank_mass": 74988452500, + "relative_gain_over_PR74": "2490901277/17594048077130", + "source_bundle": "/Users/chafreaky/Documents/Codex/2026-10-08/goal-improve-the-exponent-in-openai/work/aligned-composition-search", + "source_pins": 109, + "status": "FROZEN final R11 selection; do not modify" +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/engine-provenance.json b/references/frame-compiler/pr91/research/aligned-composition/engine-provenance.json new file mode 100644 index 0000000000..e20fa93afd --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/engine-provenance.json @@ -0,0 +1,16 @@ +{ + "engine": { + "original": "references/frame-compiler/aligned-r11/scripts/experiments/compiler.py", + "original_source_manifest_sha256": "64584e5521f782571fe9415fe6bb83728499f0f4d5fbff79e345328586cc7515", + "portable_engine": "aligned_composition_engine.py", + "portable_engine_sha256": "e349c2b5837812398441601306d916c9fdb7d0ec548d0c68e19580fd3d4524c2", + "relation": "Byte-identical to the frozen independently source-audited R11 runtime, itself unchanged from R10" + }, + "nodeops": { + "original": "references/frame-compiler/aligned-r11/nodeops.py", + "original_source_manifest_sha256": "64584e5521f782571fe9415fe6bb83728499f0f4d5fbff79e345328586cc7515", + "portable_engine": "aligned_composition_nodeops.py", + "portable_engine_sha256": "dce113a25da77065a920d21b12047410fde09d0016690b30ecd00e976e323913", + "relation": "Byte-identical to the frozen independently source-audited R11 runtime, itself unchanged from R10" + } +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/parameters.json b/references/frame-compiler/pr91/research/aligned-composition/parameters.json new file mode 100644 index 0000000000..7b0063509e --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/parameters.json @@ -0,0 +1,11 @@ +{ + "W": 130417912, + "bit_saving": "10558480765231/200000000000000000", + "grid_denominator": 1000000000000000000, + "kappa": "52789616935221/1000000000000000000", + "roles": { + "23": 26387, + "25": 34772 + }, + "total_rank": 74988452500 +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/parent-result-23.json b/references/frame-compiler/pr91/research/aligned-composition/parent-result-23.json new file mode 100644 index 0000000000..37b2728c8e --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/parent-result-23.json @@ -0,0 +1,51 @@ +{ + "h": 23, + "mode": { + "matching": true, + "reclaim": true + }, + "roles": 26387, + "baseline_pr48_roles": 36432, + "histogram": { + "1": 110374, + "0": 399074, + "2": 63844, + "3": 7841, + "4": 18211, + "5": 4727, + "6": 4396, + "7": 1046, + "8": 1183, + "9": 489, + "10": 822, + "11": 292, + "12": 1247, + "14": 594, + "13": 277, + "15": 256, + "16": 776, + "17": 1690, + "18": 1287, + "19": 4518, + "22": 23, + "21": 427 + }, + "rank_mass": 607407, + "elementary_xors": 199138, + "stats": { + "augmentations": 67, + "regions": 78513, + "matched": 59832, + "multi_node_regions": 7452, + "carry_exchanges": 1091, + "carry_two_cycles": 198, + "live_anchor_candidates": 69960, + "reclaimed": 2253, + "clearing_xors": 5147, + "live_anchor_xors": 430 + }, + "dirty_basis_vectors": 29929, + "complete_dirty_basis_both_orientations": true, + "all_physical_frame_inclusions": true, + "seconds": 50.996217012405396 +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/scalar-23.json b/references/frame-compiler/pr91/research/aligned-composition/scalar-23.json new file mode 100644 index 0000000000..dc90387bea --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/scalar-23.json @@ -0,0 +1,18 @@ +{ + "h": 23, + "inputs": 1771, + "partial_outputs": 5336, + "additions": 84930, + "roles": 90266, + "merged_additions": 12904, + "all_additions_disjoint": true, + "all_partial_outputs_exact": true, + "every_node_has_common_point": true, + "circuit_sha256": "dd88562359e47b54fee18e58c9f5a6007f2f6f46ef8e73d64b4a9213d854e2ad", + "dense_global_support": { + "status": "PASS all global supports, exact envelopes, disjoint additions and target outputs", + "nodes": 86701, + "outputs": 5336, + "sha256": "aa4b8d88f8b9b9b750023bef6e6dad17da3aa8063e48fbd72b2e07a7b5cee356" + } +} diff --git a/references/frame-compiler/pr91/research/aligned-composition/word-bindings.json b/references/frame-compiler/pr91/research/aligned-composition/word-bindings.json new file mode 100644 index 0000000000..408e6e9213 --- /dev/null +++ b/references/frame-compiler/pr91/research/aligned-composition/word-bindings.json @@ -0,0 +1,12 @@ +{ + "23": { + "parent_word_sha256": "861bc0498bcf1600e5fb109751105bdc388f971eb95b912a65b2f9758b8fcd95", + "profiles_sha256": "b7fcb59e80ec2e882a0bc5a9fee8f52733089694999069d019e47c00b6fada1d", + "word_sha256": "87c8f3391c7be80a6af9952cba82f518c4facae5796418e4bc1c3ac6228721b8" + }, + "25": { + "parent_word_sha256": "8609a3934aa687428d6575892ccefa6908b5dab3018b209455b4c96c0ddd392d", + "profiles_sha256": "a0e3e711e0c1a6fad082554799f9799f5499f1775a0c0cbb49f1ec61ff5a15d8", + "word_sha256": "e3de786d598e37003e8fd587efc114d0cbd3dbe94ed6dd971bbbc464c0e99c9d" + } +} diff --git a/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compiler.py b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compiler.py new file mode 100644 index 0000000000..d21940a6b2 --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compiler.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +"""Compile the frozen final frame composition and exactly relabel coordinates. + +Chafik Boukhalfa with OpenAI Codex assistance. Uses credited PR65/67/68/69/70 +construction, Thomas DiFiore's PR74 order and relabeling, and Rohan Arun's +PR78 coordinate-flag search idea and PR82 coordinate-aware oracle pricing. Original notices and source bytes are retained. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True +import argparse +import gzip +from hashlib import sha256 +import json +from pathlib import Path +import os +import shlex +import subprocess +import tempfile +_previous_path = sys.path[:] +try: + import aligned_composition_engine as compiler +finally: + sys.path[:] = _previous_path +from aligned_composition_nodeops import relabel,verify_dense +import aligned_composition_graph as producer +ENGINES = {23: compiler, 25: compiler} +ROOT = Path(__file__).resolve().parents[2] + + +def source_record(): + paths = {f'pr{n}':ROOT/f'references/frame-compiler/pr{n}' for n in (65,67,68,69,70,71,74,78,79,82,84,88)} + paths.update(inherited=ROOT/'references/frame-compiler/pr48', indexed_r5=ROOT/'references/frame-compiler/indexed-r5',final_r10=ROOT/'references/frame-compiler/final-r10',aligned_r11=ROOT/'references/frame-compiler/aligned-r11',pr74_aligned=ROOT/'references/frame-compiler/pr74-aligned') + return {name:producer.checked_manifest(path) for name,path in paths.items()} + + +def compile_axis(h): + config = producer.configuration(h) + provenance = json.loads((ROOT/'research/aligned-composition/engine-provenance.json').read_text()) + for record in provenance.values(): + actual = ROOT/'scripts/experiments'/record['portable_engine'] + assert sha256(actual.read_bytes()).hexdigest() == record['portable_engine_sha256'], 'Selected source changed' + assert actual.read_bytes() == (ROOT/record['original']).read_bytes(), 'Portable source differs' + selection = json.loads((ROOT/'research/aligned-composition/discovery-selection.json').read_text())['axes'][str(h)] + binding=json.loads((ROOT/'research/aligned-composition/word-bindings.json').read_text())[str(h)] + previous_graph, previous_build = compiler.graph, compiler.build + absent = object() + names = ('oracles','ORACLE_EXE','ORACLE_INPUT','PENDING_COST','OUTPUT_MODE','ORACLE_COORDINATES','THREE_CYCLE_PASSES') + previous = {name:getattr(compiler,name,absent) for name in names} + try: + compiler.graph = producer.graph + compiler.PENDING_COST = True + compiler.OUTPUT_MODE = config['output_mode'] + compiler.ORACLE_COORDINATES = config['coordinate_permutation'] if config['oracle_coordinate_pricing'] else list(range(h)) + compiler.THREE_CYCLE_PASSES = config['three_cycle_passes'] + with tempfile.TemporaryDirectory(prefix='aligned-composition-compile-') as directory: + work=Path(directory);oracle=work/'profile-oracle' + subprocess.run([*shlex.split(os.environ.get('CXX','c++')),'-O3','-std=c++17', + '-I',str(ROOT/'references/frame-compiler/pr48/scripts/partial_swap'), + str(ROOT/'references/frame-compiler/pr67/research/slot-cost-rank-pair/profile_oracle.cpp'), + '-o',str(oracle)],check=True) + compiler.oracles=[];compiler.ORACLE_EXE=str(oracle);compiler.ORACLE_INPUT=str(work/'oracle-input.bin') + try: + result,word=compiler.compile_(h,matching=True,reclaim=True,dirty=True) + finally: + for process in compiler.oracles: + process.stdin.close() + assert process.wait(timeout=10)==0,'Profile oracle failed' + finally: + compiler.graph,compiler.build=previous_graph,previous_build + for name,value in previous.items(): + if value is absent: + if hasattr(compiler,name):delattr(compiler,name) + else:setattr(compiler,name,value) + result.pop('seconds',None) + parent = json.loads((ROOT/f'research/aligned-composition/parent-result-{h}.json').read_text()) + parent.pop('seconds',None) + assert json.loads(json.dumps(result)) == parent, 'Frozen parent compiler receipt differs' + raw=lambda value:(json.dumps(value,separators=(',',':'))+'\n').encode() + parent_sha=sha256(raw(word)).hexdigest() + assert parent_sha == binding['parent_word_sha256'], 'Frozen parent physical word differs' + word = relabel(word,config['coordinate_permutation']) + selected_sha=sha256(raw(word)).hexdigest() + assert selected_sha == selection['word_sha256'], 'Selected relabeled physical word differs' + assert result['roles']==selection['roles'] + checked=producer.graph(h);scalar=checked.verify();scalar['dense_global_support']=verify_dense(checked) + assert scalar==json.loads((ROOT/f'research/aligned-composition/scalar-{h}.json').read_text()) + result.update(scalar=scalar,graph_configuration=config, + parent_word_sha256=parent_sha,selected_word_sha256=selected_sha, + coordinate_relabeling='PR74 exact bijection of sources, frames, scatter rows and output targets; ordinary and dirty columns independently replayed after relabeling', + paid_clones=0,index_order='retired descending rank then slot; pending insertion order', + future_unit_completion=True,carry_exchange_passes=3,carry_two_cycle_passes=3, + pending_cost_uses_next_use_frame=True,three_cycle_passes=config['three_cycle_passes'], + oracle_coordinate_pricing=config['oracle_coordinate_pricing'],node_order=config['node_order'], + source_r11_sha256=provenance['engine']['original_source_manifest_sha256']) + return result,word + + +if __name__ == '__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--h',type=int,choices=(23,25),required=True) + parser.add_argument('--output',type=Path,required=True) + parser.add_argument('--word',type=Path,required=True) + args=parser.parse_args();result,word=compile_axis(args.h) + raw=(json.dumps(word,separators=(',',':'))+'\n').encode() + args.word.write_bytes(gzip.compress(raw,mtime=0) if args.word.suffix=='.gz' else raw) + args.output.write_text(json.dumps(result,indent=2)+'\n') + print(json.dumps(result),flush=True) diff --git a/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compose.py b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compose.py new file mode 100644 index 0000000000..97382cbdaf --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_compose.py @@ -0,0 +1,189 @@ +"""Complete paid split/pair profile and PR65's exact refined balanced assembly. + +The unchanged full physical words determine every auxiliary multiplicity. +Only fixed-basis finite claims are certified; all-size transfer remains inherited. +Prepared by Chafik Boukhalfa with OpenAI Codex assistance. Apache-2.0. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True + +from copy import deepcopy +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from math import comb +from pathlib import Path +import gzip +import json + +import binary_frame_math as arithmetic +from split_pair_arithmetic import refine, audit +from aligned_composition_graph import checked_manifest +from aligned_composition_compiler import source_record +from pin_aligned_composition_sources import required_paths + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +OUT = ROOT / 'certificates' +INHERITED = ROOT / 'references/frame-compiler/pr48' +OLD = INHERITED / 'research/copied-fixed' +BASELINE = ROOT / 'references/frame-compiler/pr65' +BASELINE_CASE = BASELINE / 'research/reordered-rank-pair' +PROFILE_BASELINE = ROOT / 'references/frame-compiler/pr88/certificates' + + +def check_sources(): + sources = source_record() + operation = ROOT / 'references/frame-compiler/pr59-split-operation' + checked_manifest(operation) + local = json.loads((ROOT/'research/aligned-composition/SOURCE.json').read_text()) + assert required_paths() <= set(local['files']), 'Incomplete source/finite-input closure' + for name, digest in local['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest() == digest, name + engine = ROOT / 'scripts/experiments/joint_dual_reclaim_compiler.py' + assert engine.read_bytes() == (BASELINE/'scripts/experiments/rank_pair_compiler.py').read_bytes() + provenance = json.loads((ROOT/'research/aligned-composition/engine-provenance.json').read_text()) + for record in provenance.values(): + assert sha256((HERE/record['portable_engine']).read_bytes()).hexdigest() == record['portable_engine_sha256'] + for name in ('binary_frame_math.py', 'binary_frame_replay.py', + 'binary_frame_profile_prepare.py', 'binary_frame_profiles.cpp'): + assert (HERE/name).read_bytes() == (BASELINE/'scripts/experiments'/name).read_bytes() + return dict(sources, split_operation=checked_manifest(operation)) + + +def profile(): + parameters = json.loads((ROOT/'research/aligned-composition/parameters.json').read_text()) + a, b = 23, 25 + m, N = a*b, comb(a, 3)*comb(b, 3) + profiles = [json.loads((OUT / f'aligned-composition-profiles-{h}.json').read_text()) for h in (a, b)] + words = json.loads((OUT / 'aligned-composition-compiler.json').read_text()) + W = 2*N + sum(N//f['v']*f['R'] for f in profiles) + L = sum(N//f['v']*f['loss'] for f in profiles) + parts = {'data': Counter({1: 18*N, 21: 2*N, 17: 2*N, 481: 2*N}), + 'paid_endpoint_copy': Counter({1: N})} + receipts = [] + for f in profiles: + h = f['h'] + rep, bank = N//f['v'], N//f['v']*f['R'] + recorded = words['axes'][str(h)] + replay = recorded['replay'] + receipt = json.loads((OUT / f'aligned-composition-transitions-{h}.json').read_text()) + for key in ('h', 'v', 'R'): + assert f[key] == receipt[key] + assert f['R'] == replay['roles'] == recorded['compiled']['roles'] == parameters['roles'][str(h)] + assert f['v'] == comb(h, 3) and f['loss'] == h*(h-1) + assert f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1 + assert sum(t*n for t, n in enumerate(f['blocks'])) == h*f['R']+f['loss'] == f['rank_sum'] == receipt['rank_mass'] == replay['rank_mass'] + assert f['blocks'][0] == 0 and f['blocks'][h] == 0 # Positive children; copied centers already included. + assert receipt['transition_events_equal_independent_xor_word_reconstruction'] + packed = (OUT / f'aligned-composition-word-{h}.json.gz').read_bytes() + assert sha256(packed).hexdigest() == recorded['gzip_sha256'] + assert sha256(gzip.decompress(packed)).hexdigest() == recorded['word_sha256'] == receipt['word_sha256'] + histogram = {str(k): v for k, v in replay['histogram'].items() if int(k)} + side = replay['output_roles']-h + histogram['2'] -= side + histogram['1'] += 2*side + assert histogram == receipt['rank_histogram_with_side_growth_split_into_singletons'] + arithmetic.exactness(h) + parts[f'internal_{h}'] = Counter({t: n*rep for t, n in enumerate(f['blocks']) if t and n}) + parts[f'exterior_{h}'] = Counter({h: bank, m-2*h: bank}) + parts[f'data_growth_{h}'] = Counter({1: 2*N, h-2: 2*N}) + receipts.append(receipt) + rows = sum(parts.values(), Counter()) + mass = sum(t*n for t, n in rows.items()) + assert mass == m*W-N+L and max(rows) == 529 and all(0 < t < m for t in rows) + assert (W, mass, m*W-mass) == (parameters['W'], parameters['total_rank'], 1846900) + return dict(m=m, N=N, W=W, L=L, total_rank=mass, deficit=m*W-mass, + maxchild=max(rows), child_multiplicities=dict(sorted(rows.items())), + parts=parts, axes=profiles, words=receipts) + + + +def finite_bridge(width): + bridge = deepcopy(json.loads((OLD/'certificate.json').read_text())['finite_bridge']) + bridge['bit']['W'] = width + bridge['bit']['wire_bits'] = width.bit_length() + bridge['rows']['coefficient'] = sum(bridge[name]['halving_degree'] * bridge[name]['wire_bits'] for name in ('bit','complex')) + bridge['rows']['degree'] = 2000 + bridge['rows']['degree_gap'] = Q(bridge['rows']['degree'])-Q(51,25)*bridge['rows']['coefficient'] + bridge['rows']['suffix_slope'] = 4*bridge['rows']['degree'] + return bridge + + +def validate_bridge(bridge, width): + expected = finite_bridge(width) + for section, key in (('bit','W'), ('bit','wire_bits'), ('rows','coefficient'), + ('rows','degree'), ('rows','degree_gap'), ('rows','suffix_slope')): + assert Q(bridge[section][key]) == Q(expected[section][key]), 'Stale finite bridge: '+section+'.'+key + assert (width,bridge['bit']['wire_bits'],bridge['rows']['coefficient'],Q(bridge['rows']['degree_gap'])) == (130417912,27,843,Q(7007,25)) + return True + + +def compose(): + sources = check_sources() + parameters = json.loads((ROOT/'research/aligned-composition/parameters.json').read_text()) + bit_saving, kappa = Q(parameters['bit_saving']), Q(parameters['kappa']) + denominator = parameters['grid_denominator'] + assert type(denominator) is int and denominator == 10**18 + grid = Q(1, denominator) + assert json.loads((OUT/'aligned-composition-compiler.json').read_text())['source'] == source_record() + p = profile() + exact = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit_saving) + excluded = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit_saving+grid) + assert exact['upper'] < 1 < excluded['lower'] + independent = audit.independent_moment(arithmetic.js(p), bit_saving, arithmetic.js(exact['terms'])) + independent_rejected = audit.independent_moment(arithmetic.js(p), bit_saving+grid, arithmetic.js(exact['terms'])) + assert independent[1] < 1 < independent_rejected[0] + prior71 = json.loads((PROFILE_BASELINE/'final-frame-kappa.json').read_text()) + oldbit = prior71['bit'] + previous_kappa = Q(prior71['kappa']) + previous_rows = {int(t): n for t,n in oldbit['child_multiplicities'].items()} + prior71_lower = refine.exact_moment(oldbit['m'], oldbit['W'], previous_rows, bit_saving)['lower'] + assert prior71_lower > 1 and kappa > previous_kappa + prior74 = json.loads((ROOT/'references/frame-compiler/pr74-aligned/research/aligned-exchange-frames/certificate.json').read_text()) + rows74 = {int(t):n for t,n in prior74['child_multiplicities'].items()} + prior74_lower = refine.exact_moment(575, prior74['W'], rows74, bit_saving)['lower'] + reported74 = Q('5278214423139/100000000000000000') + assert prior74_lower > 1 and kappa > reported74 + bridge = finite_bridge(p['W']) + validate_bridge(bridge, p['W']) + assembled = refine.assemble(bridge, bit_saving, Q(1, 10**12), denominator) + assert assembled['kappa'] == kappa + assert all(value > 0 for value in assembled['assembly']['constraints'].values()) + assert all(value > kappa for value in assembled['assembly']['margins'].values()) + coarse_denominator = 10**11 + coarse_bit = Q(refine.floor_scaled(bit_saving, coarse_denominator), coarse_denominator) + coarse = refine.assemble(bridge, coarse_bit, Q(1, 10**12), coarse_denominator) + assert arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], coarse_bit)['upper'] < 1 + result = dict( + status='Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed', + source_manifest_sha256=sha256((ROOT/'research/aligned-composition/SOURCE.json').read_bytes()).hexdigest(), + kappa=kappa, bit_saving=bit_saving, bit_saving_excluded_above=bit_saving+grid, + grid_denominator=denominator, bit=dict(p, moment=exact, excluded_moment=excluded), + independent_enclosures=dict(accepted_lower=independent[0], accepted_upper=independent[1], + rejected_lower=independent_rejected[0], rejected_upper=independent_rejected[1]), + assembly=assembled['assembly'], eventual_bounds=assembled['eventual_bounds'], finite_bridge=bridge, + next_kappa=assembled['next_kappa'], next_kappa_rejection=assembled['next_kappa_rejection'], + coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr88_commit='3ffd9b1dc7ef2978fa1831fe3850cd4f534aea70', + pr74_commit='428b5c167686b42a83f1abf7003c6d17aec561ea', reported_pr74_kappa=reported74, + ratio_reported_pr74=kappa/reported74, pr74_complete_profile_exclusion_lower=prior74_lower, + pr88_kappa=previous_kappa, ratio_pr88=kappa/previous_kappa, + absolute_gain_pr88=kappa-previous_kappa, + pr88_complete_profile_exclusion_lower=prior71_lower, + full_pr88_child_list_excluded_at_new_bit_saving=True), + exactness=[arithmetic.exactness(h) for h in (23,25)], sources=sources, + dependencies=dict( + data_profile='Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries', + producer='PR62/63 interval pair assembly, selected aligned-composition partition and point permutation, rank-preserving selected node order, natural execution, PR67 profile-cost reclamation, PR68 pending live controls and selected next-use scoring, PR69 balanced coarse sums, future unit completion and bounded PR70-derived single exchanges, two-cycles and selected three-donor cycles, PR82 coordinate-aware heuristic pricing, exact frame indices, late-output routing and PR74/78-inspired coordinate relabeling; complete literal words', + geometry='Unchanged fixed-I+J original-envelope projector and CRT formulas', + proof_scope='Ordered affine residual compiler, all-size recursion, finite scalar overhead, routing, prime selection, exact recovery and fixed-tape/analytic transfer remain inherited. Arithmetic cutoffs are not full operational thresholds.')) + (OUT/'aligned-composition-kappa.json').write_text(json.dumps(arithmetic.js(result), indent=2, sort_keys=True)+'\n') + print('PASS finite conditional kappa='+str(kappa)+'; bit saving='+str(bit_saving), flush=True) + return result + + +if __name__ == '__main__': + compose() diff --git a/references/frame-compiler/pr91/scripts/experiments/aligned_composition_engine.py b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_engine.py new file mode 100644 index 0000000000..5c82d20ab0 --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/aligned_composition_engine.py @@ -0,0 +1,462 @@ +# Coordinate-conjugated oracle pricing adapted from Rohan Arun PR82, with OpenAI Codex assistance. +# Bounded carry exchanges adapted from Alejandro Zarzuelo Urdiales PR70. +# Exact integer entropy discovery scores replace floating moment prices. +# Composition of PR67 profile-cost reclamation and PR68 pending live controls. +# Next-use transition scoring added by Chafik Boukhalfa with OpenAI Codex assistance. +# All-rank profile-cost selection: Rohan Arun, with OpenAI Codex assistance. +# Derived from Dominik Scholz PR63, Chafik Boukhalfa PR60, Avi Eisenberg PR62 +# and eumemic PR57. Apache-2.0; all inherited notices remain applicable. +"""Exact-envelope block synthesis on the pinned PR48 scalar graph. +Experimental finite compiler; no fixed-I+J profile or multiplication claim. +""" +# Derived from eumemic's PR57 compiler; original notices remain applicable. +# Descending-rank reclamation priority: Chafik Boukhalfa, with OpenAI Codex assistance. +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +ROOT=Path(__file__).resolve().parents[2]/'references/frame-compiler/pr48' +from hashlib import sha256 +import json +manifest=json.loads((ROOT/'SOURCE.json').read_text()) +for name,digest in manifest['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest()==digest, 'Changed producer source: '+name +sys.path[:0]=[str(ROOT/'scripts'),str(ROOT/'research/copied-fixed')] +from changed_graph import graph +from collections import defaultdict,Counter,deque +import argparse,json,time,struct + +def independent(rows,vec): + for row in rows: + vec=min(vec,vec^row) + return bool(vec) +def basis(rows): + out=[] + for vec in rows: + for row in out:vec=min(vec,vec^row) + if vec:out.append(vec) + return out + +def build(h): + c=graph(h);groups={};owner={};signal={};blocks=[] + for x in sorted(c.active): + key=(c.core[x],c.union[x]) + if key not in groups: + groups[key]=len(blocks);blocks.append(dict(nodes=[],frame=key,inputs=set(),uses=[])) + g=groups[key];owner[x]=g;blocks[g]['nodes'].append(x) + signal[x]=(signal[c.args[x][0]]^signal[c.args[x][1]])if c.args[x]else 1<<(x-1) + for x in sorted(c.active): + for y in c.args[x]or(): + if owner[y]!=owner[x]:blocks[owner[x]]['inputs'].add(y) + uses=[];value_uses=defaultdict(list) + for g,b in enumerate(blocks): + b['inputs']=sorted(b['inputs']);b['source']=not c.args[b['nodes'][0]] + for y in b['inputs']: + k=len(uses);uses.append((y,g,None));value_uses[y].append(k);blocks[owner[y]]['uses'].append(k) + for target,x in c.outputs.items(): + k=len(uses);uses.append((x,owner[x],target));value_uses[x].append(k);blocks[owner[x]]['uses'].append(k) + for g,b in enumerate(blocks): + b['rank']=1 if b['source']else b['frame'][1].bit_count()-b['frame'][0].bit_count() + order=sorted(range(len(blocks)),key=lambda g:(blocks[g]['rank'],min(blocks[g]['nodes']))) + place={g:i for i,g in enumerate(order)} + def contained(a,b):return not(b[0]&~a[0])and not(a[1]&~b[1]) + for g,b in enumerate(blocks): + coeff={y:1<0 and carry_can(x,f) and carry_can(other,y): + options.append((-gain,z,x,y,other)) + if not options:continue + _,z,x,y,other=min(options) + old=(f,z,y);new=(e,x,other) + assert len(set(old))==len(set(new))==3 and not set(old)&set(new) + assert {edges[t][1] for t in old}=={edges[t][1] for t in new} + assert len({edges[t][0] for t in old})==len({edges[t][0] for t in new})==3 + for t in old: + tg,tu,ti=edges[t];chosen.remove(t);blocks[tg]['selected'].remove(t);del right[tu] + for t in new: + tg,tu,ti=edges[t];assert tu not in right;chosen.add(t);blocks[tg]['selected'].add(t);right[tu]=t + changes+=1 + return changes + + +def compile_(h,matching=True,reclaim=False,dirty=True): + t0=time.time();c,blocks,uses,value_uses,owner,signal,order,contains=build(h);v=len(c.inputs);position={g:i for i,g in enumerate(order)} + print('built',h,len(blocks),'regions',flush=True,file=sys.stderr) + mode=globals().get('OUTPUT_MODE','baseline') + edges,chosen,right,stats=match(blocks,uses,matching) + print('matched',len(chosen),'seconds',time.time()-t0,flush=True,file=sys.stderr) + slots=[];frames=[];ops=[];events=[];hist=Counter();assign={};sources={};retired=set();retired_index=RetiredIndex(h);pending={};pending_index=PendingIndex(h);stats['regions']=len(blocks);stats['matched']=len(chosen);stats['multi_node_regions']=sum(len(b['nodes'])>1 for b in blocks) + def new(g): + s=len(slots);slots.append(0);frames.append(g);hist[blocks[g]['rank']]+=1;events.append((s,-1,g));return s + def raise_(s,g): + old=frames[s];assert contains(blocks[old]['frame'],blocks[g]['frame']) + if s in retired: + retired_index.remove(s,blocks[old]['frame'],blocks[old]['rank']);retired_index.insert(s,blocks[g]['frame'],blocks[g]['rank']) + if s in pending:pending_index.move(s,blocks[old]['frame'],blocks[g]['frame']) + hist[blocks[g]['rank']-blocks[old]['rank']]+=1;frames[s]=g;events.append((s,old,g)) + def xor(a,b,g): + assert a!=b;raise_(a,g);raise_(b,g);slots[a]^=slots[b];ops.append((a,b,g)) + import subprocess,struct + from binary_frame_math import logs + # Integer midpoint enclosures give a reproducible discovery score. + # Every candidate is independently checked by the complete exact screen. + weights=[0]+[int(t*sum(logs(t))*10**30//2) for t in range(1,h+1)] + oracle_input=Path(ORACLE_INPUT) + with oracle_input.open('wb') as stream: + stream.write(struct.pack('<6I2Q',h,v,0,len(blocks)+2,0,0,h*(h-1),h*(h-1))) + stream.write(struct.pack('<2QI',0,0,0));stream.write(struct.pack('<2QI',0,0,h)) + oracle_map=globals().get('ORACLE_COORDINATES',list(range(h))) + assert sorted(oracle_map)==list(range(h)), 'Invalid oracle coordinate permutation' + for b in blocks:stream.write(struct.pack('<2QI',*[sum(1<>i&1) for mask in b['frame']],b['rank'])) + oracle=subprocess.Popen([ORACLE_EXE,str(oracle_input)],stdin=subprocess.PIPE,stdout=subprocess.PIPE,text=True,bufsize=1) + oracles.append(oracle) + cache={} + def profile_entropy(a,b): + if (a,b) not in cache: + oracle.stdin.write(f'{a} {b}\n');oracle.stdin.flush() + answer=oracle.stdout.readline() + assert answer, 'profile oracle failed' + parts=list(map(int,answer.split()));assert len(parts)==h+1 + cache[a,b]=sum(n*w for n,w in zip(parts,weights)) + return cache[a,b] + def profile_cost(a,g): + old=frames[a]+2;target=g+2 + endpoint=pending[a]+2 if PENDING_COST and a in pending else 1 + return profile_entropy(old,endpoint)-profile_entropy(old,target)-profile_entropy(target,endpoint) + # Three deterministic improving exchanges, preserving both matroid constraints. + def carry_price(edge): + g,u,i=edge;producer=owner[blocks[g]['inputs'][i]];target=uses[u][1] + return (-profile_entropy(g+2,target+2)+profile_entropy(g+2,1) + +profile_entropy(0,producer+2)+profile_entropy(producer+2,target+2)) + prices=[carry_price(edge) for edge in edges] + priority=sorted(range(len(edges)),key=lambda e:(prices[e],edges[e])) + initial_count=len(chosen);initial_price=sum(prices[e] for e in chosen) + def carry_can(e,drop=None): + g,u,i=edges[e] + rows=blocks[g]['outbasis']+[1<=prices[f]:continue + if not carry_can(e,f if edges[f][0]==g else None):continue + else: + f=next((z for z in sorted(blocks[g]['selected'],key=lambda z:(-prices[z],z)) if prices[e]0 and carry_can(e,z) and carry_can(other,f):options.append((-gain,z,other)) + if not options:continue + _,z,other=min(options) + for old in (f,z): + og,ou,oi=edges[old];chosen.remove(old);blocks[og]['selected'].remove(old);del right[ou] + for new_edge in (e,other): + ng,nu,ni=edges[new_edge];assert nu not in right;chosen.add(new_edge);blocks[ng]['selected'].add(new_edge);right[nu]=new_edge + changes+=1 + stats['carry_two_cycles']+=changes + print('carry two-cycles',phase,changes,flush=True,file=sys.stderr) + if not changes:break + for phase in range(globals().get('THREE_CYCLE_PASSES',0)): + changes=improve_three_cycles(blocks,edges,chosen,right,prices,priority,carry_can) + stats['carry_three_cycles']+=changes + print('carry three-cycles',phase,changes,flush=True,file=sys.stderr) + if not changes:break + assert len(chosen)==len(right)==initial_count + assert sum(prices[e] for e in chosen)<=initial_price + for b in blocks:assert len(basis(b['outbasis']+[1<>s&1;e^=1<step and contains(b['frame'],blocks[uses[u][1]]['frame']) for u in value_uses[b['inputs'][i]]) + return (-compatible,slots[ins[i]].bit_count(),i) + for i in sorted(range(len(ins)),key=future_priority): + if independent(echelon,1<>i&1) + if j!=i: + # Synthesize swap as three XORs at the single common frame. + for a,z in ((i,j),(j,i),(i,j)):rr[a]^=rr[z];elim.append((a,z)) + for j in range(len(ins)): + if j!=i and rr[j]>>i&1:rr[j]^=rr[i];elim.append((j,i)) + assert rr==[1<>i&1:xor(s,value_slots[y],g) + assert slots[s]==signal[x];value_slots[x]=s + used=set() + for u in outuses: + x=uses[u][0];s=value_slots[x] + if x in used: + ss=acquire(g,list(value_slots.values()));xor(ss,s,g);s=ss + used.add(x);assert u not in assign;assign[u]=s;assert s not in pending;pending[s]=uses[u][1];pending_index.insert(s,blocks[frames[s]]['frame'],blocks[pending[s]]['frame']) + if step%5000==0:print('compile',h,step,len(slots),'reclaimed',stats['reclaimed'],'seconds',time.time()-t0,flush=True,file=sys.stderr) + output_slots=[];output_records=[];scatter=[0]*v;J=[] + for u,(x,g,target)in enumerate(uses): + if target is None:continue + s=assign[u];assert slots[s]==signal[x];raise_(s,g);output_slots.append(s) + common,triple=target;output_records.append((s,g,common,triple)) + targets=[i for i,t in enumerate(c.inputs)if common in t]if len(triple)==1 else[c.inputs.index(triple)] + for i in targets:scatter[i]^=slots[s];J.append((v+i,2*v+s)) + rank=blocks[g]['rank'] + if len(triple)==1:hist[rank]+=1;hist[h-rank]+=1 + else:hist[h-1-rank]+=1;hist[1]+=1 + assert len(set(output_slots))==len(output_slots) + for s in retired:hist[h-blocks[frames[s]]['rank']]+=1 + assert len(retired)+len(output_slots)==len(slots) + assert scatter==[1< 3 and choice: + first,mid,last = 0,(len(groups)-1)//2,len(groups)-1 + requested = (list(range(min(int(choice[5:]),len(groups)))) if isinstance(choice,str) and choice.startswith('first') and choice[5:].isdigit() else {1:[first],2:[mid],3:[last],4:[first,mid],5:[first,last],6:[mid,last],7:[first,mid,last],8:[first,first+1],9:[last-1,last]}[choice]) + chosen=[] + for k in requested: + if k not in chosen and 0<=k>common&1 and not(mask&forbidden)) + assert support[x]==expected + return {'status':'PASS all global supports, exact envelopes, disjoint additions and target outputs','nodes':len(c.active),'outputs':len(c.outputs),'sha256':digest.hexdigest()} + +# Coordinate action preserves the literal physical word under a global input relabel. +def relabel(word,permutation): + from itertools import combinations + h,v=word['h'],word['v'];assert sorted(permutation)==list(range(h)) + triples=list(combinations(range(h),3));assert len(triples)==v + index={triple:i for i,triple in enumerate(triples)} + def triple(t):return sorted(permutation[x] for x in t) + mapping={i:index[tuple(triple(t))] for i,t in enumerate(triples)} + def mask(bits):return sum(1<>i&1) + word['frames']=[[mask(c),mask(u)] for c,u in word['frames']] + word['sources']={str(mapping[int(i)]):slot for i,slot in word['sources'].items()} + scatter=[] + for a,b in word['scatter']: + assert v<=a<2*v and b>=2*v + scatter.append([v+mapping[a-v],b]) + word['scatter']=scatter + word['outputs']=[[s,g,permutation[common],triple(t)] for s,g,common,t in word['outputs']] + return word diff --git a/references/frame-compiler/pr91/scripts/experiments/binary_frame_math.py b/references/frame-compiler/pr91/scripts/experiments/binary_frame_math.py new file mode 100644 index 0000000000..b87855e808 --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/binary_frame_math.py @@ -0,0 +1,87 @@ +"""Exact rational helpers extracted without body changes from pinned PR48 verify.py. +Credits: icekylinx PR32/36, Dominik Scholz PR35, Zhihao Chen PR29/23, +Paureel/Aurel Prosz, Swapnil Jain, Rohan Arun PR25/31, RaD/hipotures, +Chafik Boukhalfa and inherited notices in references/frame-compiler/pr48. +Prepared with OpenAI Codex assistance; no formal theorem claim. +""" +from fractions import Fraction as Q +from functools import lru_cache +from math import comb, factorial, isqrt, prod + +def js(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):js(v)for k,v in x.items()} + if isinstance(x,(list,tuple)):return [js(v)for v in x] + return x + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def mersenne(exponent): + require(exponent >= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +@lru_cache(None) +def logs(x): + x = Q(x) + require(x >= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + diff --git a/references/frame-compiler/pr91/scripts/experiments/binary_frame_profile_prepare.py b/references/frame-compiler/pr91/scripts/experiments/binary_frame_profile_prepare.py new file mode 100644 index 0000000000..85ad7b77bd --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/binary_frame_profile_prepare.py @@ -0,0 +1,88 @@ +"""Extract positive-rank transitions from independently replayed block words.""" +from collections import Counter +from hashlib import sha256 +from itertools import combinations +from pathlib import Path +import json,struct,sys,gzip,argparse + + +def prepare(path,destination): + raw=Path(path).read_bytes();raw=gzip.decompress(raw) if str(path).endswith('.gz') else raw;d=json.loads(raw) + h,v,R=d['h'],d['v'],d['R'] + frames=[(0,0,0),(0,0,h)]+[(c,u,1 if c==u else u.bit_count()-c.bit_count()) for c,u in d['frames']] + physical=[None]*R;transitions=Counter() + for s,a,b in d['events']: + assert 0<=s0 + histogram[r]+=count + with Path(destination).open('wb') as f: + f.write(struct.pack('<6I2Q',h,v,R,len(frames),len(transitions),singles,mass,h*(h-1))) + for c,u,r in frames:f.write(struct.pack('<2QI',c,u,r)) + for (a,b),count in sorted(transitions.items()):f.write(struct.pack('<2Iq',a,b,count)) + receipt=dict(h=h,v=v,R=R,frames=len(frames),distinct_transitions=len(transitions),singles=singles,rank_mass=mass, + rank_histogram_with_side_growth_split_into_singletons=dict(sorted(histogram.items())),word_sha256=sha256(raw).hexdigest(),copied_centers=centers, + transition_events_equal_independent_xor_word_reconstruction=True) + Path(str(destination)+'.json').write_text(json.dumps(receipt,indent=2)+'\n') + return receipt + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('word',type=Path);parser.add_argument('destination',type=Path) + args=parser.parse_args();print(json.dumps(prepare(args.word,args.destination),indent=2)) diff --git a/references/frame-compiler/pr91/scripts/experiments/binary_frame_profiles.cpp b/references/frame-compiler/pr91/scripts/experiments/binary_frame_profiles.cpp new file mode 100644 index 0000000000..1b52bd057d --- /dev/null +++ b/references/frame-compiler/pr91/scripts/experiments/binary_frame_profiles.cpp @@ -0,0 +1,85 @@ +// Optimal-matching variant of research/copied-fixed/profiles.cpp (PR #43, Chafik +// Boukhalfa), itself adapted from Dominik Scholz PR35 and icekylinx PR32. +// Change: with LINKS_IN=, the carrier matching is read from a pinned file +// instead of Hopcroft-Karp. Every pinned edge must lie in the same admissible +// adjacency (causal order and frame inclusion); donors and uses are distinct. +// This replay-only adaptation omits the discovery edge dumper. The original +// optimizer and profiler are preserved in references/copied-fixed/pr44. +// Replay-only adaptation prepared with OpenAI Codex assistance. +// Prepared by Rohan Arun with Anthropic Claude assistance. Apache-2.0. +// Adapted at h=23,25; original PR35 by Dominik Scholz, PR32 by icekylinx. +// Dimension adaptation at 45/47; extra primes for all source-growth cases. +// Exact bounded-minor inequalities are checked by verify.py. Original credit below. +// Copyright 2026 icekylinx. Apache-2.0; AI-assisted handoff integration. +// Original round3_rankone_profiles.cpp. Requires GCC/Clang unsigned __int128. + +// Adapted input reader for complete serialized frame-compiler transitions. +// Actual-word fixed-I+J profiling, adapted from PR48 profiles.cpp. +// All projector, pivot and CRT formulas below are unchanged. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using U=uint32_t;using V=uint64_t; +#include "binary_io.hpp" +int main(int argc,char**argv){ +assert(argc==2);std::ifstream f(argv[1],std::ios::binary);U hdr[6];read_array(f,hdr); +U h=hdr[0],v=hdr[1],R=hdr[2],nf=hdr[3],nt=hdr[4];int64_t singles=hdr[5];assert(h==23||h==25); +V sum,loss;f.read(reinterpret_cast(&sum),8);f.read(reinterpret_cast(&loss),8); +struct Frame{V core,cover;U rank;};std::vectorframes; +for(U i=0;i(&a.core),8);f.read(reinterpret_cast(&a.cover),8);f.read(reinterpret_cast(&a.rank),4);frames.push_back(a);} +std::map,int64_t>transitions; +for(U i=0;i(&a),4);f.read(reinterpret_cast(&b),4);f.read(reinterpret_cast(&count),8);transitions[{a,b}]=count;} +assert(f);assert(sum==h*V(R)+loss); +V p=2305843009213693951ULL; +auto mul=[&](V a,V b)->V{return (__uint128_t)a*b%p;}; +auto power=[&](V a,V b)->V{V r=1;for(;b;b>>=1,a=mul(a,a))if(b&1)r=mul(r,a);return r;}; +auto sub=[&](V a,V b)->V{return (a+p-b)%p;}; +std::vector>matrix_cache(frames.size()); +auto matrix=[&](U id)->const std::vector&{auto&A=matrix_cache[id];if(!A.empty())return A;A.assign(h*h,0);if(id==0)return A;if(id==1){for(U i=0;i>i)&1);V zj=((f.core>>j)&1)?3*(h+1)-10:p-10;A[i*h+j]=mul(mul(wi,zj),factor);}return A;} + assert(c==1||c==2);V s=3-c,d=s*s+(c-1)*nn,den=3*(h+1)*d,inv=power(den,p-2); + for(U i=0;i>i)&1,oj=(out>>j)&1,wi=3+((f.core>>i)&1),zj=((f.core>>j)&1)?3*(h+1)-10:p-10; + V num=(mul(s*oi,zj)+3*(h+1)*s*wi*oj+mul(nn*wi,zj))%p;num=sub(num,3*(h+1)*(c-1)*oi*oj);A[i*h+j]=(V(i==j&&oi)+mul(num,inv))%p; + }return A;}; + +std::vectorblocks(h+1);blocks[1]=singles;V done=0,matrices=0,crt_matrices=0,crt_disagreements=0;U longest=0;std::mapcorrection_hist; +for(auto&[key,count]:transitions){if(!count)continue;assert(count>0);U aa=key.first,bb=key.second;U rr=frames[bb].rank-frames[aa].rank;assert(frames[bb].rank>=frames[aa].rank);if(!rr)continue; + if(rr<=2){blocks[1]+=count*rr;continue;}if(aa==0&&bb==1){blocks[h]+=count;continue;} + if(aa>1&&bb>1){ + assert(!(frames[bb].core&~frames[aa].core)); + assert(!(frames[aa].cover&~frames[bb].cover)); + U ca=popcount64(frames[aa].core),cb=popcount64(frames[bb].core); + assert(ca==3||frames[aa].core==frames[bb].core||(ca==2&&cb==1)); + } + const auto&A=matrix(aa);const auto&B=matrix(bb);std::vectorM(h*h);for(U x=0;x>pivots; + for(U i=0;i=0&&!M[i*h+j])j--;if(j<0)continue;pivots.push_back({i,U(j)});V inv=power(M[i*h+j],p-2);for(U k=i+1;k core-one use all three primes at these dimensions. +if(aa>1&&bb>1&&(popcount64(frames[aa].core)==3||(popcount64(frames[aa].core)==2&&popcount64(frames[bb].core)==1))){ + assert(h==23||h==25);crt_matrices++;matrix_cache[aa].clear();matrix_cache[bb].clear();std::vector>> all{pivots}; + for(V extra:{2147483647ULL,524287ULL}){p=extra;matrix_cache[aa].clear();matrix_cache[bb].clear();const auto&C=matrix(aa);const auto&D=matrix(bb);std::vectorY(h*h);for(U z=0;z> pp; + for(U i=0;i=0&&!Y[i*h+j])j--;if(j<0)continue;pp.push_back({i,U(j)});V inv=power(Y[i*h+j],p-2);for(U k=i+1;k corner((h+1)*(h+1));for(U i=0;i=j;best=std::max(best,rank);}corner[(i+1)*(h+1)+j]=best;} + pivots.clear();for(U i=0;i=0);mass+=t*blocks[t];}assert(mass==sum); +std::string target=std::string(argv[1])+".profiles.json";std::ofstream out(target);assert(out);out<<"{\"h\":"<= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 5222085697, + "compact": 20888342785, + "geometry": 3999926195153, + "guard": 4010503, + "log_p": 25, + "normalization": 14000000000000, + "period": 41776685569, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 774936344, + "rhs": 112000000144592, + "rhs_bits": 47 + }, + "compact": { + "exponent": 774936344, + "rhs": 448000000578304, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 774936344, + "rhs": 224000000289112, + "rhs_bits": 48 + }, + "rows": { + "exponent": 774936344, + "rhs": 123200000159051200, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1549872689, + "rhs": 224000000144592, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1549872689, + "rhs": 896000000578304, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1549872689, + "rhs": 448000000289112, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1549872689, + "rhs": 246400000159051200, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 3099745378, + "rhs": 448000000144592, + "rhs_bits": 49 + }, + "compact": { + "exponent": 3099745378, + "rhs": 1792000000578304, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 3099745378, + "rhs": 896000000289112, + "rhs_bits": 50 + }, + "rows": { + "exponent": 3099745378, + "rhs": 492800000159051200, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 6199490756, + "rhs": 896000000144592, + "rhs_bits": 50 + }, + "compact": { + "exponent": 6199490756, + "rhs": 3584000000578304, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 6199490756, + "rhs": 1792000000289112, + "rhs_bits": 51 + }, + "rows": { + "exponent": 6199490756, + "rhs": 985600000159051200, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 12398981512, + "rhs": 1792000000144592, + "rhs_bits": 51 + }, + "compact": { + "exponent": 12398981512, + "rhs": 7168000000578304, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 12398981512, + "rhs": 3584000000289112, + "rhs_bits": 52 + }, + "rows": { + "exponent": 12398981512, + "rhs": 1971200000159051200, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 24797963024, + "rhs": 3584000000144592, + "rhs_bits": 52 + }, + "compact": { + "exponent": 24797963024, + "rhs": 14336000000578304, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 24797963024, + "rhs": 7168000000289112, + "rhs_bits": 53 + }, + "rows": { + "exponent": 24797963024, + "rhs": 3942400000159051200, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "finite_bridge": { + "bit": { + "W": 134126064, + "halving_degree": 17, + "m": 575, + "maxchild": 552, + "wire_bits": 27 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 1059, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2200, + "degree_gap": "991/25", + "suffix_slope": 8800 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "grid_denominator": 1000000000000000000, + "independent_enclosures": { + "accepted_lower": "33531515999999999996975675460390652660977374286131/33531516000000000000000000000000000000000000000000", + "accepted_upper": "33531515999999999996975675460390652660984080428731/33531516000000000000000000000000000000000000000000", + "rejected_lower": "6706303200000000002296594794432615674559610063567/6706303200000000000000000000000000000000000000000", + "rejected_upper": "6706303200000000002296594794432615674560951292087/6706303200000000000000000000000000000000000000000" + }, + "kappa": "55354656014473/1000000000000000000", + "next_kappa": "27677328007237/500000000000000000", + "next_kappa_rejection": "{'g3_above_kappa': '-1477394562229356330270409409/5952710462620964852884281878500000000000000000'}", + "selection_sha256": "83699da476f78fa7af0f31447d427ff34e690fca54ead09a9d9d812f0de7fa44", + "status": "Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed" +} diff --git a/references/frame-compiler/pr96/certificates/merged-exterior-selection.json b/references/frame-compiler/pr96/certificates/merged-exterior-selection.json new file mode 100644 index 0000000000..5c94129198 --- /dev/null +++ b/references/frame-compiler/pr96/certificates/merged-exterior-selection.json @@ -0,0 +1 @@ +{"23":{"R":27297,"candidate_edges":24586,"entrance":[0,1,2,3,4,5,6,7,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,38,39,40,41,42,44,45,46,47,48,49,51,52,53,54,55,56,57,58,60,61,62,65,67,68,70,71,72,73,74,75,76,78,79,80,81,82,83,84,85,86,87,88,90,91,92,93,94,97,99,100,101,103,104,105,106,107,108,110,112,113,114,116,117,118,119,120,122,124,125,128,130,132,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,164,165,167,168,169,171,172,173,174,175,176,177,178,179,180,181,183,184,186,187,188,189,190,192,193,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,214,215,217,218,220,221,223,225,228,230,231,232,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,260,262,263,264,268,269,270,271,272,273,274,275,276,277,278,281,283,284,286,287,289,290,293,294,295,296,297,298,299,300,301,302,305,307,308,309,310,311,313,314,317,319,321,323,325,326,329,330,331,332,333,335,336,337,338,340,342,345,347,349,350,351,352,354,356,359,361,362,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,398,399,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,420,421,423,424,426,427,428,429,430,431,433,434,435,436,437,439,440,441,442,443,445,446,448,449,450,451,452,453,454,456,458,459,460,461,462,464,465,466,467,468,470,471,472,473,474,476,477,479,480,482,483,485,486,488,489,491,492,494,495,496,497,498,499,501,502,503,504,505,506,507,508,509,510,511,512,513,514,516,517,518,519,520,522,523,524,525,526,528,529,530,531,532,533,534,535,536,539,541,542,543,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,571,573,574,575,578,579,580,581,582,583,584,586,587,588,589,592,594,595,597,598,600,601,603,604,605,606,607,609,610,611,612,613,615,616,618,619,620,621,622,624,625,628,630,632,634,635,636,637,638,639,641,642,643,644,645,648,650,651,653,654,656,657,660,662,663,665,666,668,669,671,672,673,674,675,677,678,679,680,681,682,683,684,686,687,688,689,690,692,693,696,698,699,702,704,705,708,710,712,713,714,715,716,717,720,721,722,723,724,725,726,727,728,729,731,733,736,738,739,740,741,742,743,745,747,750,752,753,754,755,756,757,758,759,761,764,766,767,769,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,801,803,804,805,807,808,809,810,811,812,813,814,815,816,817,819,820,822,823,824,825,826,828,829,831,832,833,834,835,836,838,839,840,841,842,844,845,846,847,848,850,851,853,854,856,857,859,861,863,864,865,866,867,869,870,871,872,873,875,876,878,879,881,882,884,885,887,888,890,891,893,894,896,897,899,900,901,902,903,904,906,907,908,909,910,911,912,913,914,915,916,917,918,919,921,922,923,924,925,927,928,929,930,931,933,934,936,937,939,940,941,943,944,945,946,947,949,950,951,952,953,955,956,958,959,961,962,964,965,967,968,970,971,973,974,976,977,979,980,982,983,985,986,988,989,991,992,993,994,995,996,998,999,1000,1001,1002,1004,1005,1006,1007,1008,1009,1010,1011,1013,1014,1015,1016,1017,1019,1020,1021,1022,1023,1025,1026,1028,1029,1031,1032,1033,1034,1035,1037,1038,1040,1041,1043,1045,1048,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1080,1082,1083,1084,1088,1089,1090,1091,1092,1095,1096,1097,1098,1101,1103,1104,1106,1107,1109,1110,1112,1113,1114,1115,1116,1118,1119,1120,1121,1122,1125,1127,1128,1129,1130,1131,1133,1134,1137,1139,1141,1143,1144,1145,1146,1147,1148,1151,1152,1153,1154,1157,1159,1160,1162,1163,1165,1166,1169,1171,1172,1174,1175,1177,1178,1180,1181,1182,1183,1184,1186,1187,1188,1189,1190,1191,1193,1195,1196,1197,1198,1199,1201,1202,1205,1207,1208,1210,1211,1213,1214,1217,1219,1221,1224,1225,1226,1227,1228,1230,1231,1232,1233,1234,1237,1239,1240,1243,1245,1246,1249,1251,1252,1254,1255,1257,1258,1261,1263,1264,1267,1269,1270,1272,1273,1274,1275,1276,1278,1279,1280,1281,1282,1285,1287,1288,1289,1290,1291,1293,1294,1297,1299,1300,1301,1302,1303,1305,1306,1307,1308,1309,1311,1312,1313,1314,1315,1317,1318,1321,1323,1325,1327,1328,1329,1330,1331,1333,1334,1335,1336,1337,1339,1340,1341,1342,1344,1346,1349,1351,1353,1354,1355,1356,1358,1360,1363,1365,1367,1368,1369,1370,1371,1372,1374,1377,1379,1381,1383,1384,1386,1388,1391,1393,1394,1395,1396,1397,1398,1399,1400,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1428,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1455,1456,1458,1459,1460,1461,1462,1463,1465,1466,1467,1468,1469,1471,1472,1473,1474,1475,1477,1478,1480,1481,1482,1483,1484,1485,1486,1488,1490,1491,1492,1493,1494,1496,1497,1498,1499,1500,1502,1503,1504,1505,1506,1508,1509,1511,1512,1514,1515,1517,1518,1520,1521,1523,1524,1526,1527,1528,1529,1530,1531,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1548,1549,1550,1551,1552,1554,1555,1556,1557,1558,1560,1561,1562,1563,1564,1565,1566,1567,1568,1570,1571,1572,1573,1574,1576,1577,1578,1579,1580,1582,1583,1584,1585,1586,1588,1589,1591,1592,1594,1595,1597,1598,1600,1601,1603,1604,1606,1607,1609,1610,1612,1613,1615,1616,1618,1619,1620,1621,1622,1623,1625,1626,1627,1628,1629,1631,1632,1633,1634,1635,1636,1637,1638,1640,1641,1642,1643,1644,1646,1647,1648,1649,1650,1652,1653,1655,1656,1657,1658,1659,1660,1661,1662,1664,1665,1666,1667,1668,1669,1670,1672,1674,1675,1676,1677,1678,1680,1681,1682,1683,1684,1686,1687,1688,1689,1690,1692,1693,1695,1696,1698,1699,1701,1702,1704,1705,1707,1708,1710,1711,1713,1714,1716,1717,1719,1720,1722,1723,1724,1725,1726,1728,1729,1731,1732,1735,1736,1737,1738,1739,1741,1742,1743,1744,1745,1747,1748,1749,1750,1751,1752,1753,1754,1756,1757,1760,1762,1763,1764,1765,1766,1768,1769,1771,1772,1773,1774,1775,1776,1777,1778,1780,1781,1784,1786,1787,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1800,1803,1805,1806,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1835,1837,1838,1839,1842,1843,1844,1845,1846,1847,1850,1851,1852,1853,1856,1858,1859,1861,1862,1864,1865,1867,1868,1869,1870,1871,1873,1874,1875,1876,1877,1879,1880,1882,1883,1884,1885,1886,1888,1889,1892,1894,1896,1899,1900,1901,1902,1903,1905,1906,1907,1908,1909,1912,1914,1915,1917,1918,1920,1921,1924,1926,1927,1930,1932,1933,1935,1936,1937,1938,1939,1941,1942,1943,1944,1945,1946,1947,1948,1950,1951,1952,1953,1954,1956,1957,1959,1960,1962,1963,1965,1966,1968,1969,1972,1974,1976,1978,1979,1980,1981,1982,1983,1985,1986,1987,1988,1989,1992,1994,1995,1997,1998,2000,2001,2004,2006,2007,2010,2012,2013,2016,2018,2019,2021,2022,2024,2025,2026,2027,2028,2029,2030,2031,2033,2034,2035,2036,2037,2039,2040,2042,2043,2044,2045,2046,2048,2049,2051,2052,2054,2055,2056,2057,2058,2060,2061,2062,2063,2064,2066,2067,2068,2069,2070,2072,2073,2076,2078,2080,2081,2082,2083,2084,2085,2086,2087,2090,2091,2092,2093,2095,2096,2098,2099,2101,2102,2104,2105,2107,2108,2110,2111,2114,2116,2117,2119,2120,2122,2123,2125,2126,2128,2129,2131,2132,2133,2134,2135,2138,2140,2141,2142,2144,2145,2146,2147,2149,2150,2151,2152,2153,2154,2155,2156,2158,2159,2160,2161,2162,2164,2165,2166,2167,2168,2170,2171,2172,2173,2174,2176,2177,2178,2179,2180,2182,2183,2184,2185,2186,2188,2189,2192,2194,2195,2198,2200,2201,2204,2206,2208,2210,2212,2213,2214,2216,2217,2218,2219,2220,2222,2223,2224,2225,2227,2229,2232,2234,2236,2237,2238,2239,2241,2243,2246,2248,2250,2251,2252,2253,2254,2255,2257,2260,2262,2264,2266,2267,2269,2271,2274,2276,2278,2279,2280,2281,2282,2283,2285,2288,2290,2291,2292,2293,2295,2296,2297,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2324,2325,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2343,2344,2346,2347,2348,2349,2350,2352,2353,2355,2356,2357,2358,2359,2360,2362,2363,2364,2365,2366,2368,2369,2370,2371,2372,2374,2375,2377,2378,2380,2381,2383,2385,2387,2388,2389,2390,2391,2393,2394,2395,2396,2397,2399,2400,2401,2402,2403,2405,2406,2408,2409,2411,2412,2414,2415,2417,2418,2420,2421,2423,2424,2425,2426,2427,2428,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2445,2446,2447,2448,2449,2451,2452,2453,2454,2455,2457,2458,2460,2461,2463,2464,2465,2466,2467,2468,2469,2470,2471,2473,2474,2475,2476,2477,2479,2480,2481,2482,2483,2485,2486,2488,2489,2491,2492,2494,2495,2496,2497,2498,2500,2501,2503,2504,2505,2506,2507,2508,2509,2510,2512,2513,2516,2517,2518,2519,2520,2522,2523,2524,2525,2526,2529,2530,2531,2532,2533,2534,2535,2537,2538,2540,2541,2543,2544,2545,2546,2547,2549,2550,2553,2555,2556,2557,2558,2559,2561,2562,2564,2565,2567,2569,2571,2572,2573,2574,2575,2577,2578,2579,2580,2581,2583,2584,2585,2586,2587,2589,2590,2592,2593,2595,2596,2598,2599,2601,2602,2604,2605,2607,2608,2609,2610,2611,2613,2614,2616,2617,2619,2620,2621,2622,2623,2625,2626,2628,2629,2632,2633,2634,2635,2636,2638,2639,2640,2641,2642,2644,2645,2646,2647,2648,2649,2650,2651,2653,2654,2657,2659,2660,2661,2662,2663,2665,2666,2668,2669,2671,2672,2673,2674,2675,2677,2678,2681,2683,2684,2686,2687,2688,2689,2690,2692,2693,2695,2697,2699,2700,2701,2702,2703,2705,2706,2707,2708,2709,2711,2712,2713,2714,2715,2717,2718,2720,2721,2723,2724,2726,2727,2729,2730,2732,2733,2735,2736,2737,2738,2739,2741,2742,2744,2745,2747,2748,2749,2750,2751,2753,2754,2756,2757,2759,2760,2761,2762,2763,2765,2766,2768,2769,2772,2773,2774,2775,2776,2778,2779,2780,2781,2782,2784,2785,2786,2787,2788,2789,2790,2791,2793,2794,2797,2799,2800,2801,2802,2803,2805,2806,2808,2809,2811,2812,2814,2815,2816,2817,2818,2820,2821,2823,2824,2826,2827,2828,2829,2830,2833,2835,2836,2838,2839,2841,2842,2844,2845,2847,2849,2852,2854,2855,2857,2858,2859,2860,2861,2862,2863,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2884,2886,2887,2888,2891,2892,2893,2894,2895,2896,2899,2900,2901,2902,2905,2907,2908,2910,2911,2913,2914,2916,2917,2918,2919,2920,2922,2923,2924,2925,2926,2928,2929,2931,2932,2933,2934,2935,2937,2938,2941,2943,2945,2948,2949,2950,2951,2952,2955,2956,2957,2958,2961,2963,2964,2966,2967,2969,2970,2973,2975,2976,2979,2981,2982,2984,2985,2986,2987,2988,2990,2991,2992,2993,2994,2995,2996,2997,2999,3000,3001,3002,3003,3005,3006,3009,3011,3012,3014,3015,3017,3018,3021,3023,3025,3026,3027,3028,3029,3030,3031,3032,3035,3036,3037,3038,3040,3041,3043,3044,3046,3047,3049,3050,3052,3053,3055,3056,3059,3061,3062,3064,3065,3066,3067,3068,3071,3073,3074,3075,3076,3077,3078,3079,3080,3082,3083,3084,3085,3086,3087,3089,3091,3092,3093,3094,3095,3097,3098,3101,3103,3104,3105,3106,3107,3109,3110,3111,3112,3113,3115,3116,3117,3118,3119,3121,3122,3125,3127,3129,3130,3131,3132,3133,3134,3135,3136,3139,3140,3141,3142,3144,3145,3147,3148,3150,3151,3153,3154,3156,3157,3159,3160,3163,3165,3166,3168,3169,3170,3171,3172,3175,3177,3178,3180,3181,3182,3183,3184,3187,3189,3190,3191,3192,3193,3194,3195,3196,3198,3199,3200,3201,3202,3203,3204,3205,3207,3208,3209,3210,3211,3213,3214,3216,3217,3219,3220,3221,3222,3223,3225,3226,3227,3228,3229,3231,3232,3233,3234,3235,3237,3238,3241,3243,3244,3247,3249,3250,3253,3255,3257,3258,3259,3260,3261,3262,3263,3264,3267,3268,3269,3270,3272,3273,3275,3276,3278,3279,3281,3282,3284,3285,3287,3288,3291,3293,3294,3296,3297,3298,3299,3300,3303,3305,3306,3308,3309,3310,3311,3312,3314,3315,3317,3318,3320,3321,3322,3323,3324,3326,3327,3329,3330,3331,3333,3334,3335,3336,3338,3339,3340,3341,3342,3343,3344,3345,3347,3348,3349,3350,3351,3353,3354,3357,3359,3360,3361,3362,3363,3365,3366,3368,3369,3371,3372,3373,3374,3375,3377,3378,3381,3383,3384,3385,3387,3389,3390,3392,3393,3395,3396,3397,3398,3399,3401,3402,3405,3407,3408,3409,3411,3412,3413,3414,3415,3417,3418,3419,3420,3423,3424,3425,3426,3428,3429,3430,3433,3435,3437,3438,3439,3440,3442,3443,3444,3447,3449,3451,3452,3453,3454,3455,3456,3457,3458,3461,3463,3465,3467,3468,3470,3471,3472,3475,3477,3479,3480,3481,3482,3483,3484,3485,3486,3489,3491,3493,3495,3496,3498,3499,3500,3503,3505,3506,3507,3508,3509,3510,3511,3512,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3558,3559,3560,3561,3562,3563,3564,3565,3567,3568,3570,3571,3572,3573,3574,3575,3577,3578,3579,3580,3581,3583,3584,3585,3586,3587,3589,3590,3592,3593,3594,3595,3596,3597,3598,3600,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3614,3615,3617,3618,3620,3621,3623,3624,3625,3626,3627,3628,3629,3630,3632,3633,3635,3636,3639,3640,3641,3642,3643,3645,3646,3647,3648,3649,3651,3652,3653,3654,3655,3656,3657,3658,3660,3661,3663,3664,3665,3666,3667,3668,3669,3670,3672,3673,3674,3675,3676,3677,3678,3679,3680,3682,3683,3684,3685,3686,3688,3689,3690,3691,3692,3694,3695,3697,3698,3700,3701,3703,3704,3706,3707,3708,3709,3710,3712,3713,3715,3716,3718,3719,3720,3721,3722,3724,3725,3727,3728,3731,3732,3733,3734,3735,3737,3738,3739,3740,3741,3744,3745,3746,3747,3748,3749,3750,3752,3753,3755,3756,3757,3758,3759,3760,3761,3762,3764,3765,3768,3770,3771,3772,3773,3774,3776,3777,3778,3779,3780,3781,3782,3784,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3798,3799,3801,3802,3804,3805,3807,3808,3810,3811,3812,3813,3814,3816,3817,3819,3820,3822,3823,3824,3825,3826,3827,3828,3829,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3843,3844,3847,3848,3849,3850,3851,3853,3854,3855,3856,3857,3859,3860,3861,3862,3863,3864,3865,3866,3868,3869,3872,3873,3874,3875,3876,3877,3878,3880,3881,3883,3884,3886,3887,3888,3889,3890,3892,3893,3896,3897,3898,3899,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3912,3914,3915,3916,3917,3918,3920,3921,3922,3923,3924,3926,3927,3928,3929,3930,3932,3933,3935,3936,3938,3939,3940,3941,3942,3944,3945,3947,3948,3950,3951,3952,3953,3954,3956,3957,3959,3960,3962,3963,3964,3965,3966,3968,3969,3971,3972,3973,3974,3975,3976,3977,3978,3980,3981,3983,3984,3987,3988,3989,3990,3991,3994,3995,3996,3997,3999,4000,4001,4002,4003,4005,4006,4008,4009,4012,4013,4014,4015,4017,4018,4020,4021,4023,4024,4026,4027,4030,4031,4032,4033,4035,4036,4037,4038,4039,4042,4043,4044,4045,4048,4049,4050,4051,4054,4056,4057,4058,4059,4060,4062,4064,4066,4067,4068,4069,4070,4072,4073,4074,4075,4076,4078,4079,4080,4081,4082,4084,4085,4087,4088,4090,4091,4092,4093,4094,4096,4097,4099,4100,4102,4103,4104,4105,4106,4108,4109,4111,4112,4114,4115,4116,4117,4118,4120,4121,4123,4124,4126,4127,4128,4129,4130,4132,4133,4135,4136,4138,4139,4140,4141,4142,4144,4145,4147,4148,4151,4152,4153,4154,4155,4158,4159,4160,4161,4163,4164,4165,4166,4167,4169,4170,4172,4173,4175,4176,4177,4178,4179,4182,4183,4184,4185,4188,4190,4191,4194,4195,4196,4197,4199,4200,4201,4202,4203,4206,4208,4209,4211,4212,4213,4214,4215,4218,4219,4220,4221,4223,4224,4225,4226,4227,4230,4232,4233,4234,4235,4236,4238,4239,4240,4243,4245,4246,4248,4249,4250,4251,4252,4253,4254,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4275,4277,4278,4279,4282,4283,4284,4285,4286,4287,4289,4290,4291,4292,4293,4296,4298,4299,4301,4302,4304,4305,4307,4308,4309,4310,4311,4313,4314,4315,4316,4317,4319,4320,4322,4323,4324,4325,4326,4328,4329,4332,4334,4336,4337,4338,4339,4340,4341,4342,4343,4345,4346,4347,4348,4349,4351,4352,4354,4355,4357,4358,4360,4361,4363,4364,4365,4366,4367,4370,4372,4373,4374,4376,4377,4378,4379,4381,4382,4383,4384,4385,4386,4387,4388,4390,4391,4392,4393,4394,4396,4397,4398,4400,4402,4403,4405,4406,4408,4409,4412,4414,4416,4417,4418,4419,4420,4421,4422,4423,4425,4426,4427,4428,4429,4431,4432,4434,4435,4437,4438,4440,4441,4443,4444,4445,4446,4447,4450,4452,4453,4455,4456,4457,4458,4459,4462,4464,4465,4466,4468,4469,4470,4471,4473,4474,4475,4476,4477,4478,4480,4482,4483,4484,4485,4486,4488,4489,4490,4492,4494,4495,4496,4497,4498,4500,4501,4502,4503,4504,4506,4507,4508,4509,4510,4512,4513,4516,4518,4520,4521,4522,4523,4524,4525,4526,4527,4529,4530,4531,4532,4533,4535,4536,4538,4539,4541,4542,4544,4545,4547,4548,4549,4550,4551,4554,4556,4557,4559,4560,4561,4562,4563,4566,4568,4569,4571,4572,4573,4574,4575,4577,4578,4580,4581,4582,4584,4585,4586,4587,4589,4590,4591,4592,4593,4594,4595,4596,4598,4599,4600,4601,4602,4604,4605,4606,4607,4608,4610,4611,4612,4613,4614,4616,4617,4618,4619,4620,4622,4623,4624,4625,4626,4628,4629,4632,4634,4635,4637,4638,4640,4641,4644,4646,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4663,4664,4666,4667,4668,4669,4670,4672,4673,4675,4676,4677,4678,4679,4681,4682,4684,4685,4687,4688,4689,4690,4691,4692,4693,4694,4696,4697,4699,4700,4701,4702,4703,4704,4705,4706,4708,4709,4711,4712,4713,4714,4715,4716,4717,4718,4720,4721,4722,4723,4724,4725,4726,4727,4729,4730,4731,4732,4733,4734,4735,4736,4738,4739,4740,4741,4742,4744,4745,4746,4748,4750,4751,4752,4753,4754,4756,4757,4759,4760,4762,4763,4764,4765,4766,4768,4769,4772,4774,4775,4776,4777,4778,4780,4781,4784,4785,4786,4787,4789,4790,4791,4792,4793,4796,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4815,4816,4818,4819,4820,4821,4822,4824,4825,4827,4828,4829,4830,4831,4833,4834,4836,4837,4839,4840,4841,4842,4843,4845,4846,4848,4849,4851,4852,4853,4854,4855,4857,4858,4860,4861,4863,4864,4865,4866,4867,4868,4869,4870,4872,4873,4875,4876,4877,4878,4879,4880,4881,4882,4884,4885,4886,4888,4889,4890,4891,4894,4895,4896,4897,4898,4899,4900,4902,4903,4904,4905,4906,4908,4909,4911,4912,4914,4915,4916,4917,4918,4920,4921,4923,4924,4926,4927,4928,4929,4930,4932,4933,4935,4936,4938,4939,4940,4941,4942,4944,4945,4947,4948,4949,4950,4951,4954,4955,4956,4957,4959,4960,4961,4962,4963,4966,4968,4969,4972,4974,4976,4978,4980,4981,4982,4984,4985,4986,4987,4990,4991,4992,4993,4995,4997,5000,5002,5004,5005,5006,5007,5009,5011,5014,5016,5018,5019,5020,5021,5022,5023,5025,5028,5030,5032,5034,5035,5037,5039,5042,5044,5046,5047,5048,5049,5050,5051,5053,5056,5058,5060,5062,5063,5065,5067,5070,5072,5074,5075,5076,5077,5078,5079,5081,5084,5086,5088,5089,5091,5092,5093,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5120,5121,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5139,5140,5141,5142,5143,5144,5145,5146,5148,5149,5152,5153,5154,5155,5156,5158,5159,5160,5161,5162,5165,5166,5167,5168,5170,5171,5173,5174,5176,5177,5179,5181,5183,5184,5185,5186,5187,5189,5190,5191,5192,5193,5195,5196,5197,5198,5199,5201,5202,5204,5205,5207,5208,5209,5210,5211,5213,5214,5216,5217,5220,5221,5222,5223,5224,5226,5227,5228,5229,5230,5232,5233,5234,5235,5236,5237,5238,5239,5241,5242,5244,5245,5247,5248,5249,5250,5251,5253,5254,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5269,5270,5271,5272,5273,5275,5276,5277,5278,5279,5281,5282,5284,5285,5287,5288,5289,5290,5291,5293,5294,5296,5297,5299,5300,5301,5302,5303,5304,5305,5306,5308,5309,5310,5312,5313,5314,5315,5316,5318,5319,5320,5321,5322,5325,5326,5327,5328,5329,5330,5331,5333,5334,5336,5337,5339,5340,5341,5342,5343,5345,5346,5349,5351,5352,5353,5354,5355,5357,5358,5360,5361,5362,5363,5365,5367,5368,5369,5370,5371,5373,5374,5375,5376,5377,5379,5380,5381,5382,5383,5385,5386,5388,5389,5391,5392,5393,5394,5395,5397,5398,5400,5401,5403,5404,5405,5406,5407,5409,5410,5412,5413,5415,5416,5417,5418,5419,5421,5422,5424,5425,5426,5428,5429,5430,5431,5432,5435,5436,5437,5438,5440,5441,5442,5443,5444,5446,5447,5449,5450,5453,5455,5456,5458,5459,5461,5462,5464,5465,5467,5468,5470,5471,5473,5474,5477,5478,5479,5480,5483,5484,5485,5486,5488,5489,5490,5491,5493,5495,5496,5497,5498,5499,5501,5502,5503,5504,5505,5507,5508,5509,5510,5511,5513,5514,5516,5517,5519,5520,5521,5522,5523,5525,5526,5528,5529,5531,5532,5533,5534,5535,5537,5538,5540,5541,5543,5544,5545,5546,5547,5549,5550,5552,5553,5555,5556,5557,5558,5559,5561,5562,5564,5565,5568,5569,5570,5571,5572,5575,5576,5577,5578,5580,5581,5582,5583,5584,5586,5587,5589,5590,5593,5595,5596,5598,5599,5601,5602,5604,5605,5607,5608,5611,5612,5613,5614,5616,5617,5618,5619,5620,5623,5624,5625,5626,5629,5630,5631,5632,5635,5637,5638,5640,5641,5642,5643,5645,5647,5648,5649,5650,5651,5653,5654,5655,5656,5657,5659,5660,5661,5662,5663,5665,5666,5668,5669,5671,5672,5673,5674,5675,5677,5678,5680,5681,5683,5684,5685,5686,5687,5689,5690,5692,5693,5695,5696,5697,5698,5699,5701,5702,5704,5705,5707,5708,5709,5710,5711,5713,5714,5716,5717,5719,5720,5721,5722,5723,5725,5726,5728,5729,5730,5732,5733,5734,5735,5736,5739,5740,5741,5742,5744,5745,5746,5747,5748,5750,5751,5753,5754,5757,5759,5760,5763,5764,5765,5766,5768,5769,5771,5772,5775,5776,5777,5778,5780,5781,5782,5783,5784,5787,5789,5790,5792,5793,5794,5795,5796,5799,5800,5801,5802,5804,5805,5806,5807,5808,5811,5813,5814,5816,5817,5818,5819,5820,5821,5823,5824,5825,5826,5827,5829,5830,5831,5832,5833,5835,5836,5837,5838,5839,5841,5842,5844,5845,5847,5848,5849,5850,5851,5853,5854,5856,5857,5859,5860,5861,5862,5863,5865,5866,5868,5869,5871,5872,5873,5874,5875,5877,5878,5880,5881,5883,5884,5885,5886,5887,5889,5890,5892,5893,5895,5896,5897,5898,5899,5901,5902,5904,5905,5907,5908,5909,5910,5911,5913,5914,5916,5917,5920,5921,5922,5923,5924,5927,5928,5929,5930,5932,5933,5934,5935,5936,5939,5940,5941,5942,5944,5945,5947,5948,5951,5952,5953,5954,5956,5957,5959,5960,5963,5964,5965,5966,5968,5969,5970,5971,5972,5975,5976,5977,5978,5980,5981,5982,5983,5984,5987,5988,5989,5990,5992,5993,5994,5995,5996,5999,6000,6001,6002,6005,6006,6007,6008,6011,6013,6014,6016,6017,6018,6019,6021,6024,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6056,6058,6059,6060,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6076,6077,6078,6079,6080,6083,6085,6086,6087,6088,6089,6090,6091,6092,6095,6096,6097,6098,6099,6100,6101,6103,6104,6105,6106,6107,6109,6110,6113,6115,6117,6118,6119,6120,6121,6122,6123,6124,6127,6128,6129,6130,6132,6133,6134,6135,6136,6139,6141,6142,6144,6145,6146,6147,6148,6151,6153,6154,6155,6157,6158,6159,6160,6162,6163,6164,6165,6166,6167,6169,6171,6172,6173,6174,6175,6177,6178,6179,6180,6181,6183,6184,6186,6187,6189,6190,6193,6195,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6212,6213,6214,6215,6216,6219,6221,6222,6224,6225,6226,6227,6228,6231,6233,6234,6236,6237,6238,6239,6240,6243,6245,6246,6247,6248,6249,6250,6251,6252,6254,6255,6256,6257,6258,6259,6260,6261,6263,6264,6265,6266,6267,6269,6270,6273,6275,6276,6277,6278,6279,6281,6282,6283,6284,6285,6287,6288,6289,6290,6291,6293,6294,6297,6299,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6316,6317,6318,6319,6320,6322,6323,6325,6326,6328,6329,6330,6331,6332,6334,6335,6337,6338,6340,6341,6342,6343,6344,6346,6347,6349,6350,6352,6353,6354,6355,6356,6358,6359,6361,6362,6364,6365,6366,6367,6368,6371,6372,6373,6374,6375,6376,6377,6379,6380,6381,6382,6383,6385,6386,6388,6389,6391,6392,6393,6394,6395,6397,6398,6399,6400,6401,6403,6404,6405,6406,6407,6409,6410,6412,6413,6414,6415,6416,6419,6421,6422,6425,6427,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6444,6445,6446,6447,6448,6450,6451,6453,6454,6456,6457,6458,6459,6460,6462,6463,6465,6466,6468,6469,6470,6471,6472,6474,6475,6477,6478,6480,6481,6482,6483,6484,6485,6486,6487,6489,6490,6492,6493,6494,6495,6496,6497,6498,6499,6501,6502,6503,6504,6505,6506,6507,6508,6510,6511,6512,6513,6514,6515,6516,6517,6519,6520,6521,6522,6523,6525,6526,6529,6531,6532,6533,6534,6535,6537,6538,6540,6541,6543,6544,6545,6546,6547,6549,6550,6553,6554,6555,6556,6558,6559,6561,6562,6564,6565,6566,6567,6568,6570,6571,6572,6573,6574,6577,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6596,6597,6598,6599,6600,6602,6603,6605,6606,6608,6609,6610,6611,6612,6613,6614,6615,6617,6618,6620,6621,6622,6623,6624,6625,6626,6627,6629,6630,6632,6633,6634,6635,6636,6637,6638,6639,6641,6642,6644,6645,6646,6647,6648,6649,6650,6651,6653,6654,6656,6657,6658,6659,6660,6661,6662,6663,6665,6666,6667,6669,6670,6671,6672,6674,6675,6676,6677,6678,6679,6680,6681,6683,6684,6685,6686,6687,6689,6690,6692,6693,6695,6696,6698,6699,6701,6702,6704,6705,6707,6708,6709,6710,6711,6713,6714,6716,6717,6718,6719,6720,6722,6723,6725,6726,6728,6729,6730,6731,6732,6734,6735,6736,6737,6738,6740,6741,6742,6743,6744,6746,6747,6749,6750,6753,6755,6757,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6772,6773,6774,6775,6776,6777,6778,6779,6781,6782,6784,6785,6786,6787,6788,6789,6790,6791,6793,6794,6796,6797,6798,6799,6800,6801,6802,6803,6805,6806,6808,6809,6810,6811,6812,6813,6814,6815,6817,6818,6820,6821,6822,6823,6824,6825,6826,6827,6829,6830,6832,6833,6834,6835,6836,6837,6838,6839,6841,6842,6844,6845,6846,6847,6848,6849,6850,6851,6853,6854,6855,6857,6858,6859,6860,6862,6863,6864,6865,6866,6868,6869,6871,6872,6873,6875,6877,6878,6880,6881,6883,6884,6886,6887,6889,6890,6892,6893,6895,6896,6897,6898,6899,6901,6902,6904,6905,6906,6907,6908,6910,6911,6913,6914,6916,6917,6918,6919,6920,6922,6923,6924,6925,6926,6928,6929,6930,6931,6932,6934,6935,6937,6938,6940,6941,6942,6943,6944,6946,6947,6948,6949,6950,6953,6955,6956,6957,6959,6961,6962,6963,6964,6965,6967,6968,6969,6971,6972,6973,6974,6976,6977,6978,6981,6983,6985,6987,6988,6990,6991,6992,6995,6997,6999,7000,7001,7002,7003,7004,7005,7006,7009,7011,7013,7015,7016,7017,7018,7019,7020,7023,7025,7027,7028,7029,7030,7031,7032,7033,7034,7037,7039,7041,7043,7044,7045,7046,7047,7048,7051,7053,7055,7056,7057,7058,7059,7060,7061,7062,7065,7067,7069,7071,7072,7074,7075,7076,7079,7081,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,7155,7156,7157,7160,7161,7162,7163,7165,7166,7168,7169,7171,7172,7173,7174,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7196,7197,7199,7200,7201,7202,7203,7204,7205,7206,7208,7209,7211,7212,7213,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7227,7228,7229,7230,7231,7232,7233,7234,7236,7237,7239,7240,7241,7242,7243,7244,7245,7246,7248,7249,7251,7252,7253,7254,7255,7256,7257,7259,7260,7261,7262,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7276,7277,7279,7280,7281,7282,7283,7284,7285,7286,7288,7289,7291,7292,7293,7294,7295,7296,7297,7298,7299,7300,7301,7303,7304,7305,7307,7308,7309,7310,7311,7312,7314,7315,7316,7317,7320,7321,7322,7323,7325,7326,7328,7329,7331,7332,7333,7334,7335,7337,7338,7340,7341,7344,7345,7346,7347,7349,7350,7352,7353,7355,7356,7357,7358,7360,7361,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7375,7376,7377,7378,7380,7381,7383,7384,7385,7386,7387,7388,7389,7390,7392,7393,7395,7396,7397,7398,7399,7400,7401,7402,7403,7404,7405,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7419,7420,7421,7423,7424,7425,7426,7427,7428,7430,7431,7432,7433,7435,7436,7437,7438,7439,7441,7442,7444,7445,7448,7449,7450,7451,7453,7454,7456,7457,7459,7460,7461,7462,7463,7465,7466,7468,7469,7472,7473,7474,7475,7478,7479,7480,7481,7483,7484,7485,7486,7488,7489,7490,7491,7492,7493,7494,7495,7497,7498,7499,7500,7501,7503,7504,7505,7506,7507,7508,7509,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7547,7548,7549,7550,7551,7552,7553,7554,7555,7556,7557,7559,7560,7561,7563,7564,7565,7566,7567,7568,7570,7571,7572,7573,7575,7576,7577,7578,7579,7581,7582,7584,7585,7588,7589,7590,7591,7593,7594,7596,7597,7599,7600,7601,7602,7603,7606,7607,7608,7609,7611,7612,7613,7614,7615,7618,7619,7620,7621,7624,7625,7626,7627,7630,7631,7632,7633,7635,7636,7637,7638,7640,7641,7642,7643,7644,7645,7646,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7660,7661,7663,7664,7665,7666,7667,7668,7669,7670,7672,7673,7675,7676,7677,7678,7679,7680,7681,7682,7684,7685,7687,7688,7689,7690,7691,7692,7693,7694,7696,7697,7699,7700,7701,7702,7703,7704,7705,7706,7708,7709,7711,7712,7713,7714,7715,7716,7717,7718,7720,7721,7723,7724,7725,7727,7728,7729,7730,7731,7732,7734,7735,7736,7737,7739,7740,7741,7742,7743,7745,7746,7748,7749,7752,7753,7754,7755,7758,7759,7760,7761,7763,7764,7765,7766,7767,7770,7771,7772,7773,7775,7776,7777,7778,7779,7782,7784,7785,7787,7788,7789,7790,7791,7794,7795,7796,7797,7799,7800,7801,7802,7803,7806,7808,7809,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7839,7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7851,7852,7853,7854,7855,7856,7857,7858,7859,7860,7861,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872,7873,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7887,7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7899,7900,7901,7902,7903,7904,7905,7906,7907,7908,7909,7911,7912,7913,7915,7916,7917,7918,7919,7920,7922,7923,7924,7925,7927,7928,7929,7930,7931,7934,7935,7936,7937,7940,7941,7942,7943,7946,7947,7948,7949,7951,7952,7953,7954,7955,7958,7959,7960,7961,7963,7964,7965,7966,7967,7970,7971,7972,7973,7975,7976,7977,7978,7979,7982,7983,7984,7985,7987,7988,7989,7990,7991,7994,7995,7996,7997,8000,8001,8002,8003,8006,8007,8008,8009,8011,8012,8013,8014,8016,8017,8018,8019,8020,8021,8022,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8036,8037,8039,8040,8041,8042,8043,8044,8045,8046,8048,8049,8051,8052,8053,8054,8055,8056,8057,8058,8060,8061,8063,8064,8065,8066,8067,8068,8069,8070,8072,8073,8075,8076,8077,8078,8079,8080,8081,8082,8084,8085,8087,8088,8089,8090,8091,8092,8093,8094,8096,8097,8099,8100,8101,8102,8103,8104,8105,8106,8108,8109,8111,8112,8113,8114,8115,8116,8117,8118,8120,8121,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8139,8140,8141,8142,8143,8146,8147,8148,8149,8151,8152,8153,8154,8155,8158,8159,8160,8161,8163,8164,8165,8166,8167,8170,8171,8172,8173,8175,8176,8177,8178,8179,8182,8183,8184,8185,8187,8188,8189,8190,8191,8194,8196,8197,8199,8200,8202,8203,8206,8207,8208,8209,8211,8212,8213,8214,8215,8218,8219,8220,8221,8223,8224,8225,8226,8227,8230,8231,8232,8233,8235,8236,8237,8238,8240,8241,8244,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8276,8278,8280,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8296,8297,8298,8299,8300,8303,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8323,8324,8325,8326,8327,8329,8330,8333,8335,8337,8338,8339,8340,8341,8342,8343,8344,8346,8347,8348,8349,8350,8352,8353,8354,8355,8356,8359,8361,8362,8364,8365,8366,8367,8368,8371,8373,8374,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8389,8391,8392,8393,8394,8395,8397,8398,8399,8400,8401,8403,8404,8406,8407,8409,8410,8413,8415,8417,8418,8419,8420,8421,8422,8423,8424,8425,8427,8428,8429,8430,8432,8433,8434,8435,8436,8439,8441,8442,8444,8445,8446,8447,8448,8451,8453,8454,8456,8457,8458,8459,8460,8462,8463,8465,8466,8468,8469,8470,8471,8472,8474,8475,8476,8477,8478,8479,8480,8481,8483,8484,8485,8486,8487,8489,8490,8491,8493,8495,8496,8497,8498,8499,8501,8502,8503,8504,8505,8506,8507,8508,8510,8511,8512,8513,8514,8517,8519,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8536,8537,8538,8539,8540,8542,8543,8545,8546,8548,8549,8550,8551,8552,8554,8555,8557,8558,8560,8561,8562,8563,8564,8566,8567,8569,8570,8572,8573,8574,8575,8576,8577,8578,8579,8581,8582,8584,8585,8586,8587,8588,8590,8591,8592,8593,8594,8595,8597,8599,8600,8601,8602,8603,8605,8606,8607,8608,8609,8611,8612,8613,8614,8615,8617,8618,8619,8620,8621,8622,8623,8624,8626,8627,8628,8629,8630,8632,8633,8634,8635,8636,8639,8640,8641,8642,8645,8647,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8664,8665,8666,8667,8668,8670,8671,8673,8674,8676,8677,8678,8679,8680,8682,8683,8685,8686,8688,8689,8690,8691,8692,8693,8694,8695,8697,8698,8700,8701,8702,8703,8704,8705,8706,8707,8709,8710,8712,8713,8714,8715,8716,8717,8718,8719,8721,8722,8725,8726,8727,8728,8730,8731,8732,8733,8734,8735,8736,8737,8739,8740,8741,8742,8743,8745,8746,8747,8749,8751,8752,8753,8754,8755,8757,8758,8760,8761,8763,8764,8766,8767,8768,8769,8770,8773,8774,8775,8776,8778,8779,8780,8781,8782,8784,8785,8786,8787,8788,8790,8791,8792,8793,8794,8797,8799,8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8816,8817,8818,8819,8820,8822,8823,8825,8826,8828,8829,8830,8831,8832,8833,8834,8835,8837,8838,8840,8841,8842,8843,8844,8845,8846,8847,8849,8850,8852,8853,8854,8855,8856,8857,8858,8859,8861,8862,8864,8865,8866,8867,8868,8869,8870,8871,8873,8874,8876,8877,8878,8879,8880,8881,8882,8883,8885,8886,8888,8889,8890,8891,8892,8895,8896,8897,8898,8899,8900,8901,8903,8904,8905,8906,8907,8909,8910,8912,8913,8915,8916,8917,8918,8919,8921,8922,8924,8925,8927,8928,8930,8931,8932,8933,8934,8936,8937,8938,8939,8940,8942,8943,8944,8945,8946,8948,8949,8950,8951,8952,8954,8955,8956,8957,8958,8960,8961,8962,8963,8964,8966,8967,8969,8970,8973,8975,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8992,8993,8994,8995,8996,8997,8998,8999,9001,9002,9004,9005,9006,9007,9008,9009,9010,9011,9013,9014,9016,9017,9018,9019,9020,9021,9022,9023,9025,9026,9028,9029,9030,9031,9032,9033,9034,9035,9037,9038,9040,9041,9042,9043,9044,9045,9046,9047,9049,9050,9052,9053,9054,9055,9056,9057,9058,9059,9061,9062,9064,9065,9066,9067,9068,9069,9070,9071,9073,9074,9076,9077,9078,9079,9080,9082,9083,9084,9085,9086,9088,9089,9091,9092,9093,9094,9095,9097,9098,9101,9103,9104,9105,9106,9107,9109,9110,9112,9113,9115,9116,9118,9119,9120,9121,9122,9124,9125,9126,9127,9128,9130,9131,9133,9134,9136,9137,9138,9139,9140,9142,9143,9144,9145,9146,9148,9149,9150,9151,9152,9154,9155,9157,9158,9160,9161,9162,9163,9164,9166,9167,9168,9169,9170,9173,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9186,9187,9188,9189,9190,9192,9193,9194,9195,9196,9197,9198,9199,9201,9202,9204,9205,9206,9207,9208,9209,9210,9211,9213,9214,9216,9217,9218,9219,9220,9222,9223,9225,9226,9228,9229,9230,9231,9232,9233,9234,9235,9237,9238,9240,9241,9242,9243,9244,9245,9246,9247,9249,9250,9252,9253,9254,9255,9256,9257,9258,9259,9261,9262,9264,9265,9266,9267,9268,9269,9270,9271,9273,9274,9276,9277,9278,9279,9280,9281,9282,9283,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9300,9301,9303,9304,9305,9306,9307,9309,9310,9312,9313,9315,9316,9317,9318,9319,9321,9322,9324,9325,9326,9327,9328,9330,9331,9332,9333,9334,9336,9337,9338,9339,9340,9342,9343,9344,9345,9346,9348,9349,9350,9351,9352,9354,9355,9356,9357,9358,9360,9361,9362,9363,9364,9366,9367,9369,9370,9372,9373,9374,9375,9376,9378,9379,9380,9381,9382,9385,9386,9387,9388,9390,9391,9392,9393,9394,9397,9399,9401,9403,9404,9405,9406,9407,9410,9411,9412,9413,9414,9416,9417,9418,9419,9420,9422,9424,9425,9426,9427,9429,9430,9431,9432,9433,9434,9435,9436,9437,9439,9442,9444,9445,9446,9447,9448,9449,9450,9451,9452,9454,9457,9459,9460,9461,9462,9465,9466,9467,9469,9472,9474,9475,9476,9477,9478,9480,9481,9482,9484,9487,9489,9490,9491,9492,9493,9494,9495,9496,9497,9499,9502,9504,9505,9506,9507,9508,9509,9510,9511,9512,9514,9517,9519,9520,9521,9522,9524,9525,9526,9527,9529,9532,9534,9535,9536,9537,9539,9540,9541,9542,9544,9547,9549,9550,9552,9553,9554,9555,9556,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9587,9588,9589,9590,9591,9592,9593,9595,9596,9597,9598,9599,9601,9602,9604,9605,9607,9608,9610,9611,9613,9614,9615,9616,9617,9618,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9644,9645,9647,9648,9649,9650,9651,9652,9655,9656,9659,9660,9661,9662,9663,9665,9666,9668,9669,9670,9671,9672,9674,9675,9677,9678,9679,9680,9681,9682,9683,9684,9685,9686,9687,9688,9689,9690,9691,9692,9693,9694,9695,9696,9697,9698,9699,9700,9701,9702,9703,9704,9705,9706,9707,9708,9709,9711,9712,9713,9714,9715,9716,9717,9718,9719,9720,9722,9725,9726,9727,9728,9729,9730,9731,9732,9733,9734,9736,9739,9740,9741,9742,9743,9744,9746,9747,9748,9749,9751,9752,9753,9754,9755,9757,9758,9760,9761,9762,9763,9764,9766,9767,9769,9770,9771,9772,9773,9774,9775,9776,9777,9778,9779,9780,9781,9783,9784,9785,9786,9787,9788,9789,9790,9791,9792,9794,9795,9797,9798,9799,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9812,9813,9814,9815,9817,9818,9819,9820,9821,9822,9823,9824,9825,9826,9828,9829,9831,9832,9833,9834,9835,9836,9837,9838,9839,9840,9842,9845,9846,9847,9848,9849,9850,9851,9852,9853,9854,9856,9857,9859,9860,9861,9862,9863,9864,9866,9867,9868,9870,9871,9872,9873,9875,9876,9877,9878,9881,9882,9883,9884,9887,9888,9889,9890,9891,9892,9893,9894,9895,9896,9897,9898,9899,9900,9901,9902,9903,9904,9905,9906,9907,9908,9909,9910,9911,9912,9914,9915,9916,9917,9918,9919,9920,9921,9922,9923,9924,9925,9926,9927,9928,9929,9930,9931,9932,9933,9934,9935,9936,9937,9938,9939,9940,9941,9942,9943,9944,9945,9946,9947,9948,9949,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9962,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9976,9979,9980,9981,9982,9983,9984,9985,9986,9987,9988,9990,9991,9993,9994,9995,9996,9997,9998,9999,10000,10001,10002,10004,10005,10007,10008,10009,10010,10011,10012,10014,10015,10016,10018,10019,10020,10021,10023,10025,10026,10029,10031,10032,10035,10036,10037,10038,10039,10040,10042,10044,10045,10046,10047,10048,10049,10050,10051,10052,10053,10054,10055,10056,10058,10059,10060,10062,10063,10064,10065,10066,10067,10068,10069,10070,10071,10072,10073,10074,10075,10076,10077,10079,10080,10081,10082,10083,10084,10085,10086,10087,10088,10090,10091,10092,10093,10094,10095,10096,10097,10098,10099,10100,10101,10102,10103,10105,10106,10107,10108,10109,10110,10111,10113,10114,10115,10117,10118,10119,10120,10121,10122,10124,10125,10127,10128,10129,10130,10131,10132,10133,10134,10135,10138,10141,10142,10143,10144,10145,10146,10147,10148,10149,10152,10153,10155,10156,10157,10158,10159,10160,10161,10162,10163,10166,10167,10169,10170,10172,10173,10174,10175,10176,10177,10180,10181,10183,10184,10185,10186,10187,10188,10190,10191,10192,10194,10195,10196,10197,10198,10199,10200,10201,10202,10205,10206,10207,10208,10210,10211,10212,10213,10214,10215,10216,10218,10219,10220,10221,10222,10223,10224,10225,10226,10227,10228,10229,10230,10231,10232,10233,10234,10235,10236,10238,10239,10240,10241,10242,10243,10244,10245,10246,10247,10248,10249,10250,10251,10252,10253,10254,10255,10256,10257,10258,10259,10260,10261,10262,10263,10264,10266,10267,10268,10269,10270,10271,10272,10273,10274,10275,10276,10277,10278,10279,10280,10281,10282,10283,10284,10285,10286,10287,10288,10289,10290,10291,10292,10293,10294,10295,10296,10297,10298,10299,10300,10301,10303,10304,10305,10306,10307,10308,10309,10310,10311,10312,10314,10317,10318,10319,10320,10321,10322,10323,10324,10325,10328,10331,10332,10333,10334,10335,10336,10337,10338,10339,10342,10345,10346,10347,10348,10349,10350,10351,10352,10353,10356,10359,10360,10362,10363,10364,10365,10366,10367,10370,10373,10374,10375,10376,10377,10378,10379,10380,10381,10384,10387,10388,10389,10390,10391,10392,10394,10395,10396,10397,10398,10399,10400,10401,10402,10403,10404,10405,10406,10408,10409,10411,10412,10414,10415,10416,10417,10418,10419,10420,10421,10422,10424,10425,10426,10427,10428,10429,10430,10431,10432,10433,10434,10435,10436,10438,10439,10440,10442,10443,10444,10445,10446,10447,10448,10449,10450,10452,10453,10454,10455,10456,10457,10458,10459,10460,10461,10462,10463,10464,10466,10467,10468,10470,10471,10472,10473,10474,10475,10476,10477,10478,10480,10481,10482,10483,10484,10485,10486,10487,10488,10489,10490,10491,10492,10494,10495,10496,10497,10498,10499,10500,10501,10502,10503,10504,10505,10506,10508,10509,10510,10511,10512,10513,10514,10515,10516,10517,10518,10519,10521,10522,10523,10524,10525,10526,10527,10528,10529,10530,10532,10533,10535,10536,10537,10538,10539,10540,10541,10542,10543,10546,10547,10549,10550,10551,10552,10553,10554,10555,10556,10557,10560,10561,10563,10564,10565,10566,10567,10568,10569,10570,10571,10574,10575,10577,10578,10580,10581,10582,10583,10584,10585,10588,10589,10591,10592,10593,10594,10595,10596,10597,10598,10599,10602,10603,10605,10606,10608,10609,10610,10611,10612,10613,10616,10617,10619,10620,10621,10622,10623,10624,10626,10627,10630,10631,10632,10633,10634,10635,10636,10637,10638,10640,10641,10643,10644,10646,10647,10648,10649,10650,10651,10652,10653,10654,10656,10657,10658,10659,10660,10661,10662,10663,10664,10665,10666,10667,10668,10669,10670,10671,10672,10674,10675,10676,10677,10678,10679,10680,10681,10682,10683,10684,10685,10686,10687,10688,10689,10690,10691,10692,10693,10694,10695,10696,10697,10698,10699,10700,10702,10703,10704,10705,10706,10707,10708,10709,10710,10711,10713,10714,10715,10716,10717,10718,10719,10720,10721,10722,10723,10724,10725,10726,10727,10728,10729,10730,10731,10732,10733,10734,10735,10736,10737,10738,10739,10740,10741,10742,10743,10744,10745,10746,10747,10748,10749,10750,10751,10752,10753,10754,10755,10756,10757,10758,10759,10760,10761,10762,10763,10764,10765,10766,10767,10768,10769,10770,10771,10772,10773,10774,10775,10776,10778,10779,10781,10782,10783,10784,10785,10786,10787,10788,10789,10790,10792,10793,10795,10796,10797,10798,10799,10800,10801,10802,10803,10804,10806,10807,10809,10810,10811,10812,10813,10814,10815,10816,10817,10818,10820,10821,10823,10824,10826,10827,10828,10829,10830,10831,10832,10834,10835,10837,10838,10839,10840,10841,10842,10843,10844,10845,10846,10848,10849,10851,10852,10854,10855,10856,10857,10858,10859,10860,10862,10863,10865,10866,10867,10868,10869,10870,10871,10872,10873,10874,10876,10877,10879,10880,10881,10883,10884,10886,10887,10888,10889,10891,10892,10893,10894,10895,10897,10898,10900,10901,10903,10904,10906,10907,10909,10910,10911,10912,10913,10914,10916,10917,10918,10919,10920,10921,10923,10924,10925,10926,10927,10928,10930,10931,10932,10934,10935,10937,10938,10939,10940,10941,10942,10944,10945,10946,10947,10948,10949,10952,10953,10954,10955,10956,10958,10959,10960,10962,10963,10966,10967,10968,10969,10970,10972,10973,10974,10975,10976,10977,10979,10980,10981,10982,10983,10984,10986,10987,10988,10989,10990,10991,10993,10994,10995,10996,10997,10998,11000,11001,11002,11003,11004,11005,11007,11008,11009,11010,11011,11012,11014,11015,11016,11017,11018,11019,11021,11022,11023,11025,11026,11028,11029,11030,11031,11032,11033,11034,11035,11036,11037,11038,11039,11040,11041,11042,11043,11044,11045,11046,11047,11048,11049,11050,11052,11053,11055,11056,11057,11058,11059,11060,11061,11062,11063,11064,11066,11067,11069,11070,11071,11072,11073,11074,11075,11076,11077,11078,11080,11081,11083,11084,11085,11086,11087,11088,11090,11091,11092,11094,11095,11097,11098,11099,11100,11101,11102,11104,11105,11106,11108,11109,11111,11112,11113,11114,11115,11116,11118,11119,11120,11122,11123,11125,11126,11128,11129,11130,11131,11132,11133,11134,11136,11137,11139,11140,11142,11143,11144,11145,11146,11147,11148,11150,11151,11153,11154,11156,11157,11158,11159,11160,11161,11162,11163,11164,11165,11167,11168,11170,11171,11172,11175,11176,11178,11179,11180,11181,11182,11187,11188,11212,11213,11218,11223,11241,11242,11248,11253,11309,11310,11315,11320,11341,11350,11376,11377,11383,11388,11406,11415,11510,11511,11516,11521,11542,11551,11580,11593,11628,11629,11635,11640,11658,11667,11695,11708,11850,11851,11856,11861,11882,11891,11920,11933,11972,11987,12027,12028,12034,12039,12057,12066,12094,12107,12145,12162,12373,12374,12379,12384,12405,12414,12443,12455,12490,12504,12549,12564,12620,12621,12627,12632,12650,12659,12687,12699,12733,12748,12791,12810,13105,13106,13111,13116,13137,13145,13171,13182,13217,13230,13270,13284,13338,13353,13411,13412,13418,13423,13441,13449,13474,13485,13519,13533,13576,13593,13638,13657,14079,14080,14085,14089,14108,14115,14141,14151,14182,14194,14237,14250,14298,14312,14369,14384,14450,14451,14457,14461,14477,14484,14509,14519,14553,14566,14603,14619,14663,14680,14733,14752,15336,15337,15342,15346,15365,15372,15395,15405,15438,15450,15488,15501,15548,15562,15618,15633,15698,15715,15790,15791,15797,15801,15817,15824,15849,15859,15888,15901,15937,15953,15996,16013,16065,16083,16144,16164,16242,16243,16244,16245,16246,16247,16248,16249,16250,16251,16252,16253,16254,16255,16256,16257,16258,16260,16261,16262,16263,16264,16265,16266,16267,16268,16269,16270,16271,16272,16274,16275,16276,16277,16278,16279,16280,16281,16282,16283,16285,16287,16289,16290,16291,16292,16293,16294,16295,16296,16297,16298,16299,16300,16301,16303,16304,16305,16306,16307,16308,16310,16311,16312,16313,16314,16315,16316,16317,16318,16319,16320,16321,16322,16323,16324,16325,16326,16327,16328,16329,16331,16332,16333,16334,16335,16336,16337,16338,16339,16340,16341,16342,16343,16344,16345,16347,16348,16349,16350,16351,16352,16353,16355,16356,16357,16358,16359,16360,16361,16363,16364,16365,16366,16367,16368,16369,16370,16371,16372,16373,16374,16375,16376,16377,16378,16379,16380,16381,16382,16383,16384,16385,16386,16387,16388,16389,16390,16391,16393,16394,16396,16397,16398,16399,16400,16401,16402,16403,16404,16405,16406,16407,16408,16409,16410,16412,16413,16414,16415,16416,16417,16418,16420,16421,16422,16423,16424,16425,16426,16428,16429,16430,16431,16432,16433,16434,16436,16437,16438,16439,16440,16441,16442,16443,16444,16445,16446,16447,16448,16449,16450,16451,16452,16453,16454,16455,16456,16457,16458,16459,16460,16461,16462,16463,16464,16466,16467,16468,16469,16470,16471,16472,16473,16475,16476,16478,16479,16480,16481,16482,16483,16484,16485,16486,16487,16488,16489,16490,16491,16492,16494,16495,16496,16497,16498,16499,16500,16502,16503,16504,16505,16506,16507,16508,16510,16511,16512,16513,16514,16515,16516,16518,16519,16520,16521,16522,16523,16524,16526,16527,16528,16529,16530,16531,16532,16533,16534,16535,16536,16537,16538,16539,16540,16541,16542,16543,16544,16545,16546,16547,16548,16549,16551,16552,16553,16554,16556,16557,16558,16559,16560,16561,16562,16563,16565,16566,16567,16568,16569,16570,16571,16572,16574,16575,16577,16578,16579,16580,16581,16582,16583,16584,16585,16586,16587,16588,16589,16590,16591,16593,16594,16595,16596,16597,16598,16599,16601,16602,16603,16604,16605,16606,16607,16609,16610,16611,16612,16613,16614,16615,16617,16618,16619,16620,16621,16622,16623,16625,16626,16627,16628,16629,16630,16631,16633,16634,16635,16636,16637,16638,16639,16640,16641,16642,16643,16644,16645,16646,16647,16648,16649,16650,16651,16652,16653,16654,16655,16656,16658,16659,16660,16661,16663,16664,16665,16666,16667,16668,16669,16670,16672,16673,16674,16675,16676,16677,16678,16679,16681,16682,16683,16685,16686,16687,16688,16690,16691,16693,16694,16695,16696,16697,16698,16699,16700,16701,16702,16703,16704,16705,16706,16707,16709,16710,16711,16712,16713,16714,16715,16717,16718,16719,16720,16721,16722,16723,16725,16726,16727,16728,16729,16730,16731,16733,16734,16735,16736,16737,16738,16739,16741,16742,16743,16744,16745,16746,16747,16749,16750,16751,16752,16753,16754,16755,16757,16758,16759,16760,16761,16762,16763,16764,16765,16766,16767,16768,16769,16770,16771,16772,16773,16774,16775,16776,16777,16778,16779,16780,16782,16783,16784,16785,16787,16788,16789,16791,16792,16793,16794,16796,16797,16798,16799,16800,16801,16802,16803,16805,16806,16807,16809,16810,16811,16812,16814,16815,16816,16817,16818,16819,16820,16821,16823,16824,16826,16827,16828,16829,16830,16831,16832,16833,16834,16835,16836,16837,16838,16839,16840,16842,16843,16844,16845,16846,16847,16848,16850,16851,16852,16853,16854,16855,16856,16858,16859,16860,16861,16862,16863,16864,16866,16867,16868,16869,16870,16871,16872,16874,16875,16876,16877,16878,16879,16880,16882,16883,16884,16885,16886,16887,16888,16890,16891,16892,16893,16894,16895,16896,16898,16899,16900,16901,16902,16903,16904,16905,16906,16907,16908,16909,16910,16912,16913,16914,16915,16916,16917,16918,16919,16920,16921,16922,16923,16925,16926,16927,16928,16929,16930,16931,16933,16934,16935,16936,16937,16938,16939,16941,16942,16943,16945,16946,16947,16949,16950,16951,16952,16953,16954,16955,16957,16958,16959,16961,16962,16963,16965,16966,16968,16969,16971,16972,16973,16975,16979,16980,16983,16984,16985,16986,16989,16990,16993,16994,16995,16996,16999,17000,17024,17025,17026,17027,17030,17031,17040,17041,17042,17043,17046,17047,17087,17088,17089,17090,17093,17094,17109,17110,17111,17112,17115,17116,17172,17173,17174,17175,17178,17179,17199,17200,17201,17202,17205,17206,17279,17280,17281,17282,17285,17286,17310,17311,17312,17313,17316,17317,17408,17409,17410,17411,17414,17415,17443,17444,17445,17446,17449,17450,17559,17560,17561,17562,17565,17566,17598,17599,17600,17601,17604,17605,17732,17733,17734,17735,17738,17739,17776,17777,17778,17779,17782,17783,17820,17824,17825,17831,17832,17837,17838,17843,17844,17849,17850,17855,17856,17861,17862,17867,17868,17873,17874,17879,17880,17885,17886,17891,17892,17897,17898,17903,17904,17909,17910,17915,17916,17921,17922,17927,17928,17929,17930,17933,17934,17971,17972,17976,17977,17978,17979,17982,17983,18020,18021,18025,18026,18027,18028,18029,18030,18031,18032,18033,18034,18035,18036,18037,18038,18039,18040,18041,18042,18043,18044,18045,18046,18048,18049,18050,18051,18052,18054,18055,18056,18057,18058,18060,18061,18062,18063,18064,18065,18066,18067,18068,18069,18070,18072,18073,18074,18075,18076,18078,18079,18080,18081,18082,18084,18085,18086,18087,18088,18089,18090,18091,18092,18093,18094,18096,18097,18098,18099,18100,18101,18102,18103,18104,18105,18106,18108,18109,18110,18111,18112,18113,18114,18115,18116,18117,18118,18120,18121,18122,18123,18124,18126,18127,18128,18129,18130,18132,18133,18134,18135,18136,18138,18139,18140,18141,18142,18144,18145,18168,18169,18174,18221,18222,18227,18231,18296,18297,18302,18306,18313,18406,18407,18412,18416,18423,18425,18558,18559,18564,18568,18575,18577,18584,18752,18753,18758,18762,18769,18771,18778,18780,19014,19015,19020,19024,19031,19033,19040,19042,19049,19067,19068,19069,19070,19071,19072,19073,19075,19087,19088,19089,19094,19095,19098,19099,19108,19109,19114,19115,19116,19129,19130,19137,19138,19139,19140,19157,19158,19167,19168,19169,19171,19173,19192,19193,19204,19205,19207,19209,19211,19214,19234,19235,19248,19249,19250,19252,19254,19257,19260,19263,19266,19267,19268,19269,19270,19271,19272,19273,19274,19275,19276,19277,19278,19279,19280,19281,19282,19283,19284,19297,19298,19299,19300,19301,19303,19306,19309,19312,19315,19319,19320,19322,19323,19324,19325,19326,19327,19328,19329,19330,19331,19332,19333,19334,19335,19338,19340,19342,19343,19344,19345,19347,19348,19349,19350,19351,19352,19353,19354,19355,19356,19357,19358,19359,19360,19361,19362,19363,19364,19365,19366,19367,19368,19369,19370,19371,19372,19373,19374,19375,19376,19377,19378,19379,19380,19381,19382,19383,19384,19385,19386,19387,19388,19389,19390,19391,19392,19393,19394,19395,19396,19397,19398,19399,19400,19401,19402,19403,19404,19405,19406,19407,19408,19409,19410,19411,19412,19413,19414,19415,19416,19417,19418,19419,19420,19421,19422,19721,19722,19793,19794,19795,19796,19797,19798,19799,19800,19801,19802,19803,19804,19805,19806,19807,19808,19809,19810,19811,19812,19813,19814,19815,19816,19817,19818,19819,19820,19821,19822,19823,19824,19825,19831,19832,19833,19834,19835,19836,19837,19838,19839,19845,19846,19847,19848,19849,19850,19851,19852,19853,19859,19860,19861,19862,19863,19864,19865,19866,19867,19873,19874,19875,19876,19877,19878,19879,19880,19881,19887,19888,19889,19890,19891,19892,19893,19894,19895,19901,19902,19903,19904,19905,19906,19907,19908,19909,19910,19911,19912,19913,19914,19915,19916,19917,19918,19919,19920,19921,19922,19923,19924,19925,19926,19927,19928,19929,19930,19931,19932,19933,19934,19935,19936,19937,19938,19939,19940,19941,19942,19943,19944,19945,19946,19947,19952,19953,19954,19955,19960,19975,19976,19977,19978,19982,20042,20043,20044,20045,20049,20060,20121,20122,20123,20124,20128,20139,20143,20274,20275,20276,20277,20281,20292,20296,20309,20450,20451,20452,20453,20457,20468,20472,20485,20490,20726,20727,20728,20729,20733,20744,20748,20761,20766,20784,20933,20934,20935,20936,20938,20940,20942,20944,20946,20950,20959,20960,20961,20962,20963,20964,20965,20966,20969,20970,20971,20972,20973,20974,20975,20976,20977,20978,20979,20980,20981,20982,20983,20984,20985,20986,20987,20988,20989,20990,20991,20992,20993,20994,20995,20996,20997,20998,20999,21000,21001,21002,21003,21004,21005,21006,21007,21008,21009,21010,21011,21012,21013,21014,21015,21016,21017,21018,21019,21020,21021,21022,21023,21024,21025,21026,21027,21028,21029,21030,21031,21032,21033,21034,21035,21036,21037,21038,21039,21040,21041,21042,21043,21044,21045,21046,21047,21048,21049,21050,21051,21052,21053,21054,21055,21056,21057,21058,21059,21060,21061,21062,21063,21064,21065,21066,21067,21068,21069,21070,21071,21072,21073,21074,21075,21076,21077,21078,21079,21080,21081,21082,21083,21084,21085,21086,21087,21088,21089,21090,21091,21092,21093,21094,21095,21096,21097,21098,21099,21100,21101,21102,21103,21104,21105,21106,21107,21108,21109,21110,21111,21112,21113,21114,21115,21279,21282,21339,21356,21358,21359,21360,21361,21362,21363,21364,21365,21366,21367,21370,21371,21372,21373,21374,21375,21376,21377,21378,21379,21380,21381,21382,21383,21384,21385,21386,21387,21388,21389,21390,21391,21392,21393,21394,21395,21396,21397,21398,21399,21400,21401,21402,21403,21404,21407,21411,21417,21418,21419,21422,21452,21453,21454,21457,21463,21467,21468,21469,21472,21478,21480,21484,21485,21486,21489,21495,21497,21499,21531,21532,21533,21536,21542,21544,21546,21551,21576,21579,21580,21581,21582,21583,21585,21593,21594,21595,21596,21597,21598,21599,21601,21602,21603,21604,21605,21606,21607,21608,21609,21610,21611,21612,21613,21614,21615,21616,21617,21618,21619,21620,21621,21622,21623,21624,21625,21626,21627,21628,21629,21630,21631,21632,21633,21634,21635,21636,21637,21638,21639,21640,21641,21642,21643,21644,21645,21646,21647,21648,21649,21650,21651,21652,21653,21654,21655,21656,21657,21658,21659,21660,21661,21662,21663,21664,21665,21666,21667,21668,21669,21670,21671,21676,21677,21678,21679,21680,21681,21685,21686,21691,21696,21704,21705,21706,21707,21708,21709,21711,21735,21736,21737,21738,21739,21740,21742,21749,21753,21754,21755,21756,21757,21758,21760,21767,21769,21790,21791,21792,21793,21794,21795,21797,21804,21806,21810,21835,21840,21841,21842,21843,21844,21845,21847,21852,21853,21855,21856,21857,21858,21859,21860,21861,21863,21864,21865,21866,21867,21868,21869,21870,21871,21872,21873,21874,21875,21876,21877,21878,21879,21880,21881,21882,21883,21884,21885,21886,21887,21888,21889,21890,21891,21892,21893,21894,21895,21896,21897,21898,21899,21900,21901,21902,21903,21904,21905,21906,21907,21908,21909,21910,21911,21912,21913,21914,21915,21916,21917,21918,21919,21920,21921,21922,21923,21924,21925,21926,21927,21930,21931,21932,21933,21934,21936,21937,21938,21941,21942,21945,21948,21951,21952,21953,21954,21955,21957,22004,22005,22006,22007,22008,22010,22018,22062,22063,22064,22065,22066,22068,22076,22082,22107,22116,22117,22118,22120,22124,22125,22133,22134,22135,22136,22137,22138,22139,22140,22141,22142,22143,22145,22147,22148,22149,22150,22152,22153,22154,22155,22156,22157,22158,22159,22160,22161,22162,22163,22164,22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,22175,22176,22177,22178,22179,22180,22181,22182,22183,22184,22185,22186,22187,22188,22189,22190,22191,22192,22193,22194,22195,22196,22197,22202,22203,22204,22229,22230,22231,22232,22233,22234,22235,22236,22237,22238,22239,22240,22241,22242,22243,22244,22245,22246,22247,22248,22249,22250,22251,22252,22253,22254,22255,22256,22257,22258,22259,22260,22261,22262,22263,22264,22265,22266,22267,22268,22269,22270,22271,22272,22273,22274,22275,22276,22277,22278,22279,22280,22281,22282,22283,22284,22285,22286,22287,22294,22295,22296,22297,22298,22299,22300,22301,22302,22307,22308,22309,22310,22316,22317,22318,22324,22325,22331,22337,22352,22353,22354,22355,22356,22357,22358,22359,22360,22362,22365,22366,22367,22370,22371,22372,22373,22385,22386,22387,22390,22391,22392,22393,22401,22402,22403,22404,22405,22406,22407,22408,22409,22419,22420,22421,22422,22423,22424,22427,22428,22429,22430,22439,22440,22441,22442,22450,22451,22452,22453,22466,22467,22468,22469,22470,22471,22472,22473,22502,22503,22504,22505,22506,22507,22508,22509,22510,22512,22515,22516,22517,22520,22521,22522,22523,22531,22565,22581,22582,22583,22584,22585,22587,22590,22591,22592,22593,22594,22595,22596,22597,22598,22599,22600,22601,22602,22603,22604,22605,22606,22607,22608,22609,22614,22615,22616,22617,22618,22619,22620,22621,22622,22623,22624,22625,22626,22627,22629,22630,22631,22632,22634,22636,22637,22638,22639,22640,22641,22643,22644,22645,22646,22647,22648,22649,22650,22651,22652,22653,22654,22655,22656,22657,22658,22659,22660,22661,22662,22663,22664,22665,22666,22667,22668,22669,22670,22671,22672,22673,22674,22675,22676,22677,22678,22679,22680,22681,22682,22683,22684,22685,22686,22687,22688,22689,22690,22691,22692,22693,22694,22695,22696,22697,22698,22699,22700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,22715,22716,22717,22718,22719,22720,22721,22722,22723,22724,22725,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,22736,22737,22738,22739,22740,22741,22742,22743,22744,22745,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22756,22757,22758,22759,22760,22761,22762,22763,22764,22765,22766,22767,22768,22769,22770,22771,22772,22773,22774,22775,22776,22777,22778,22779,22780,22781,22788,22789,22790,22791,22792,22793,22797,22798,22799,22800,22801,22802,22803,22804,22805,22806,22807,22808,22809,22810,22811,22812,22813,22814,22815,22816,22817,22818,22819,22820,22821,22822,22823,22824,22825,22826,22827,22828,22829,22830,22831,22832,22833,22834,22841,22842,22843,22844,22845,22846,22847,22848,22849,22850,22851,22852,22853,22854,22855,22856,22857,22858,22859,22860,22861,22862,22863,22864,22865,22866,22867,22868,22869,22870,22871,22872,22873,22874,22875,22876,22877,22878,22879,22880,22881,22882,22883,22884,22885,22886,22887,22888,22889,22890,22891,22892,22893,22894,22895,22896,22897,22898,22899,22900,22901,22902,22903,22904,22905,22906,22907,22908,22909,22910,22911,22912,22913,22914,22915,22916,22917,22918,22919,22920,22921,22922,22923,22924,22925,22926,22927,22928,22929,22930,22931,22932,22933,22934,22935,22936,22937,22938,22939,22940,22941,22942,22943,22944,22945,22946,22947,22948,22949,22950,22951,22952,22953,22954,22955,22956,22957,22958,22959,22960,22961,22962,22963,22964,22965,22966,22967,22968,22969,22970,22971,22972,22973,22974,22975,22976,22977,22978,22979,22980,22981,22982,22983,22984,22985,22986,22987,22988,22989,22990,22991,22992,22993,22994,22995,22996,22997,22998,22999,23000,23001,23002,23003,23004,23005,23006,23007,23008,23009,23010,23011,23012,23013,23014,23015,23016,23017,23018,23019,23020,23021,23022,23023,23027,23028,23029,23030,23031,23036,23037,23038,23039,23044,23045,23046,23051,23052,23057,23062,23072,23073,23074,23075,23076,23077,23078,23082,23095,23101,23102,23106,23107,23108,23109,23110,23111,23112,23114,23116,23117,23118,23119,23120,23121,23122,23123,23124,23125,23126,23127,23128,23129,23130,23131,23132,23133,23134,23135,23136,23137,23138,23139,23140,23141,23142,23143,23144,23145,23146,23147,23148,23149,23150,23151,23152,23153,23154,23155,23156,23157,23183,23184,23185,23186,23187,23188,23189,23190,23191,23192,23193,23194,23195,23196,23197,23198,23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,23209,23210,23211,23212,23213,23214,23215,23216,23217,23218,23219,23220,23221,23222,23223,23224,23225,23226,23227,23228,23229,23230,23231,23232,23233,23234,23235,23236,23237,23238,23239,23240,23241,23242,23243,23244,23245,23246,23247,23248,23253,23254,23257,23258,23259,23260,23261,23262,23263,23264,23265,23266,23267,23268,23269,23270,23271,23272,23273,23274,23275,23276,23277,23278,23279,23280,23281,23282,23283,23284,23285,23286,23287,23288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,23305,23306,23307,23308,23309,23310,23311,23312,23313,23314,23315,23316,23317,23318,23319,23320,23321,23322,23323,23324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23346,23347,23348,23349,23350,23351,23352,23353,23354,23355,23356,23357,23358,23359,23360,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,23375,23376,23377,23378,23379,23380,23381,23382,23383,23384,23385,23386,23387,23388,23389,23390,23391,23392,23393,23394,23395,23396,23397,23398,23399,23400,23401,23402,23403,23404,23405,23406,23407,23408,23409,23410,23411,23412,23413,23414,23415,23416,23417,23418,23419,23420,23421,23422,23423,23424,23425,23426,23427,23428,23429,23430,23431,23432,23433,23434,23435,23436,23437,23438,23439,23440,23441,23442,23443,23444,23445,23446,23447,23448,23449,23450,23451,23452,23453,23454,23455,23456,23457,23458,23459,23460,23461,23462,23463,23464,23465,23466,23467,23468,23469,23470,23471,23475,23476,23477,23478,23479,23480,23481,23482,23483,23484,23485,23486,23487,23488,23489,23490,23491,23492,23493,23494,23495,23496,23497,23498,23499,23500,23501,23502,23503,23504,23505,23506,23507,23508,23509,23510,23511,23516,23517,23518,23519,23520,23521,23522,23523,23524,23525,23526,23527,23528,23529,23530,23531,23532,23533,23534,23535,23536,23537,23538,23539,23540,23541,23542,23543,23544,23545,23546,23547,23548,23549,23550,23551,23552,23553,23554,23555,23559,23560,23561,23562,23563,23564,23565,23566,23567,23568,23569,23570,23571,23572,23573,23574,23575,23576,23577,23578,23579,23580,23581,23582,23583,23584,23585,23586,23587,23588,23589,23590,23591,23592,23593,23594,23595,23596,23597,23598,23599,23600,23601,23602,23603,23604,23605,23606,23608,23611,23612,23613,23614,23615,23616,23617,23618,23619,23620,23621,23622,23623,23624,23625,23626,23627,23628,23629,23630,23631,23632,23633,23634,23635,23636,23637,23638,23639,23640,23641,23642,23643,23644,23645,23646,23647,23648,23649,23650,23651,23652,23653,23654,23655,23656,23657,23658,23659,23660,23661,23662,23663,23664,23665,23666,23667,23668,23669,23670,23671,23672,23673,23674,23675,23676,23677,23678,23679,23680,23681,23682,23683,23684,23685,23686,23687,23688,23689,23690,23691,23692,23693,23694,23695,23696,23697,23698,23699,23700,23701,23702,23703,23704,23705,23706,23707,23708,23709,23710,23711,23712,23713,23714,23715,23716,23717,23718,23719,23720,23721,23722,23723,23724,23725,23726,23727,23728,23729,23730,23731,23732,23733,23734,23735,23736,23737,23738,23739,23740,23741,23742,23743,23744,23745,23746,23747,23748,23749,23750,23751,23752,23753,23754,23755,23756,23757,23758,23759,23760,23761,23762,23763,23764,23765,23766,23767,23768,23769,23770,23771,23772,23773,23774,23775,23776,23777,23778,23779,23780,23781,23782,23783,23784,23785,23786,23787,23788,23789,23790,23791,23792,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23803,23804,23805,23806,23807,23808,23809,23810,23811,23812,23813,23814,23815,23816,23817,23818,23819,23820,23821,23822,23823,23824,23825,23826,23827,23828,23829,23830,23831,23832,23833,23834,23835,23836,23837,23838,23839,23840,23841,23842,23843,23844,23845,23846,23847,23848,23849,23850,23851,23852,23853,23854,23855,23856,23857,23858,23859,23860,23861,23862,23863,23864,23865,23866,23867,23868,23869,23870,23871,23872,23873,23874,23875,23876,23877,23878,23879,23880,23881,23882,23883,23884,23885,23886,23887,23888,23889,23890,23891,23892,23893,23894,23895,23896,23897,23898,23899,23900,23901,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,23912,23913,23914,23915,23916,23917,23918,23919,23920,23921,23922,23923,23924,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,23936,23937,23938,23939,23940,23941,23942,23943,23944,23945,23946,23947,23948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,23960,23961,23962,23963,23964,23965,23966,23967,23968,23969,23970,23971,23972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,23984,23985,23986,23987,23988,23989,23990,23991,23992,23993,23994,23995,23996,23997,23998,23999,24000,24001,24002,24003,24004,24005,24006,24007,24008,24009,24010,24011,24012,24013,24014,24015,24016,24017,24018,24019,24020,24021,24022,24023,24024,24025,24026,24027,24028,24029,24030,24031,24032,24033,24034,24035,24036,24037,24038,24039,24040,24041,24042,24043,24044,24045,24046,24047,24048,24049,24050,24051,24052,24053,24054,24055,24056,24057,24058,24059,24060,24061,24062,24063,24064,24065,24066,24067,24068,24069,24070,24071,24072,24073,24074,24075,24076,24077,24078,24079,24080,24081,24082,24083,24084,24085,24086,24087,24088,24089,24090,24091,24092,24093,24094,24095,24096,24097,24098,24099,24100,24101,24102,24103,24104,24105,24106,24107,24108,24109,24110,24111,24112,24113,24114,24115,24116,24117,24118,24119,24120,24121,24122,24123,24124,24125,24126,24127,24128,24129,24130,24131,24132,24133,24134,24135,24136,24137,24138,24139,24140,24141,24142,24143,24144,24145,24146,24147,24148,24149,24150,24151,24152,24153,24154,24155,24156,24157,24158,24159,24160,24161,24162,24163,24164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,24176,24177,24178,24179,24180,24181,24182,24183,24185,24186,24187,24188,24189,24190,24191,24192,24193,24194,24195,24196,24197,24198,24199,24200,24201,24202,24203,24204,24205,24206,24207,24208,24209,24210,24211,24212,24213,24214,24215,24216,24217,24218,24219,24220,24221,24222,24223,24224,24225,24226,24227,24228,24229,24230,24231,24232,24233,24234,24235,24236,24237,24238,24239,24240,24241,24242,24243,24244,24245,24246,24247,24248,24249,24250,24251,24252,24253,24254,24255,24256,24257,24258,24259,24260,24261,24262,24263,24264,24265,24266,24267,24268,24269,24270,24271,24272,24273,24274,24275,24276,24277,24278,24279,24280,24281,24282,24283,24284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,24296,24297,24298,24299,24300,24301,24302,24303,24304,24305,24306,24307,24308,24309,24310,24311,24312,24313,24314,24315,24316,24317,24318,24319,24320,24321,24322,24323,24324,24325,24326,24327,24328,24329,24330,24331,24332,24333,24334,24335,24336,24337,24338,24339,24340,24341,24342,24343,24344,24345,24346,24347,24348,24349,24350,24351,24352,24353,24354,24355,24356,24357,24358,24359,24360,24361,24362,24363,24364,24365,24366,24367,24368,24369,24370,24371,24372,24373,24374,24375,24376,24377,24378,24379,24380,24381,24382,24383,24384,24385,24386,24387,24388,24389,24390,24391,24392,24393,24394,24395,24396,24397,24398,24399,24400,24401,24402,24403,24404,24405,24406,24407,24408,24409,24410,24411,24412,24413,24414,24415,24416,24417,24418,24419,24420,24421,24422,24423,24424,24425,24426,24427,24428,24429,24430,24431,24432,24433,24434,24435,24436,24437,24438,24439,24440,24441,24442,24443,24444,24445,24446,24447,24448,24449,24450,24451,24452,24453,24454,24455,24456,24457,24458,24459,24460,24461,24462,24463,24464,24465,24466,24467,24468,24469,24470,24471,24472,24473,24474,24475,24476,24477,24478,24479,24480,24481,24482,24483,24484,24485,24486,24487,24488,24489,24490,24491,24492,24493,24494,24495,24496,24497,24498,24499,24500,24501,24502,24503,24504,24505,24506,24507,24508,24509,24510,24511,24512,24513,24514,24515,24516,24517,24518,24519,24520,24521,24522,24523,24524,24525,24526,24527,24528,24529,24530,24531,24532,24533,24534,24535,24536,24537,24538,24539,24540,24541,24542,24543,24544,24545,24546,24547,24548,24549,24550,24551,24552,24553,24554,24555,24556,24557,24558,24559,24560,24561,24562,24563,24564,24565,24566,24567,24568,24569,24570,24571,24572,24573,24574,24575,24576,24577,24578,24579,24580,24581,24582,24583,24584,24585,24586,24587,24588,24589,24590,24591,24592,24593,24594,24595,24596,24597,24598,24599,24600,24601,24602,24603,24604,24605,24606,24607,24608,24609,24610,24611,24612,24613,24614,24615,24616,24617,24618,24619,24620,24621,24622,24623,24624,24625,24626,24627,24628,24629,24630,24631,24632,24633,24634,24635,24636,24637,24638,24639,24640,24641,24642,24643,24680,24681,24682,24683,24684,24685,24689,24693,24694,24695,24696,24697,24698,24699,24700,24701,24703,24704,24705,24706,24707,24708,24709,24710,24711,24712,24713,24714,24715,24716,24717,24718,24719,24720,24723,24724,24725,24726,24727,24728,24729,24730,24731,24732,24733,24734,24735,24736,24737,24738,24739,24740,24741,24742,24743,24744,24745,24746,24747,24748,24749,24750,24751,24752,24753,24754,24755,24756,24757,24758,24759,24760,24761,24762,24763,24764,24765,24766,24767,24768,24769,24770,24771,24772,24773,24774,24775,24776,24777,24778,24779,24780,24781,24782,24783,24784,24785,24786,24787,24788,24789,24790,24791,24792,24793,24794,24795,24796,24797,24798,24799,24800,24801,24802,24803,24804,24805,24806,24807,24808,24809,24810,24811,24812,24813,24814,24815,24816,24817,24818,24819,24820,24821,24822,24823,24824,24825,24826,24827,24828,24829,24830,24831,24832,24833,24834,24835,24836,24837,24838,24839,24840,24841,24842,24843,24844,24845,24846,24847,24848,24849,24850,24851,24852,24853,24854,24855,24856,24857,24858,24859,24860,24861,24862,24863,24864,24865,24866,24867,24868,24869,24870,24871,24872,24873,24874,24875,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24895,24896,24897,24898,24899,24900,24901,24902,24903,24904,24905,24906,24907,24908,24909,24910,24911,24912,24913,24914,24915,24916,24917,24918,24919,24920,24921,24922,24923,24924,24925,24926,24927,24928,24929,24930,24931,24932,24933,24934,24935,24936,24937,24938,24939,24940,24941,24942,24943,24944,24945,24946,24947,24948,24949,24950,24951,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24971,24972,24973,24974,24975,24976,24977,24978,24979,24980,24981,24982,24983,24984,24985,24986,24987,24988,24989,24990,24991,24992,24993,24994,24995,24996,24997,24998,24999,25000,25001,25002,25003,25004,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25015,25016,25017,25018,25019,25020,25021,25022,25023,25024,25025,25026,25027,25028,25029,25030,25031,25032,25033,25034,25035,25036,25037,25038,25039,25040,25041,25042,25043,25044,25045,25046,25047,25048,25049,25050,25051,25052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25062,25063,25064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,25076,25077,25078,25079,25080,25081,25082,25083,25084,25085,25086,25087,25088,25089,25090,25091,25092,25093,25094,25095,25096,25097,25098,25099,25100,25101,25102,25103,25104,25105,25106,25107,25108,25109,25110,25111,25112,25113,25114,25115,25116,25117,25118,25119,25120,25121,25122,25123,25124,25125,25126,25127,25128,25129,25130,25131,25132,25133,25134,25135,25136,25137,25138,25139,25140,25141,25142,25143,25144,25145,25146,25147,25148,25149,25150,25151,25152,25153,25154,25155,25156,25157,25158,25159,25160,25161,25162,25163,25164,25165,25166,25167,25168,25169,25170,25171,25172,25173,25174,25175,25176,25177,25178,25179,25180,25181,25182,25183,25184,25185,25186,25187,25188,25189,25190,25191,25192,25193,25194,25195,25196,25197,25198,25199,25200,25201,25202,25203,25204,25205,25206,25207,25208,25209,25210,25211,25212,25213,25214,25215,25216,25217,25218,25219,25220,25221,25222,25223,25224,25225,25226,25227,25228,25229,25230,25231,25232,25233,25234,25235,25236,25237,25238,25239,25240,25241,25242,25243,25244,25245,25246,25247,25248,25249,25250,25251,25252,25253,25254,25255,25256,25257,25258,25259,25260,25261,25262,25263,25264,25265,25266,25267,25268,25269,25270,25271,25272,25273,25274,25275,25276,25277,25278,25279,25280,25281,25282,25283,25284,25285,25286,25287,25288,25289,25290,25291,25292,25293,25294,25295,25296,25297,25298,25299,25300,25301,25302,25303,25304,25305,25306,25307,25308,25309,25310,25311,25312,25313,25314,25315,25316,25317,25318,25319,25320,25321,25322,25323,25324,25325,25326,25327,25328,25329,25330,25331,25332,25333,25334,25335,25336,25337,25338,25339,25340,25341,25342,25343,25344,25345,25346,25347,25348,25349,25350,25351,25352,25353,25354,25355,25356,25357,25358,25359,25360,25361,25362,25363,25364,25365,25366,25367,25368,25369,25370,25371,25372,25373,25374,25375,25376,25377,25378,25379,25380,25381,25382,25383,25384,25385,25386,25387,25388,25389,25390,25391,25392,25393,25394,25395,25396,25397,25398,25399,25400,25401,25402,25403,25404,25405,25406,25407,25408,25409,25410,25411,25412,25413,25414,25415,25416,25417,25418,25419,25420,25421,25422,25423,25424,25425,25426,25427,25428,25429,25430,25431,25432,25433,25434,25435,25436,25437,25438,25439,25440,25441,25442,25443,25444,25445,25446,25447,25448,25449,25450,25451,25452,25453,25454,25455,25456,25457,25458,25459,25460,25461,25462,25463,25464,25465,25466,25467,25468,25469,25470,25471,25472,25473,25474,25475,25476,25477,25478,25479,25480,25481,25482,25483,25484,25485,25486,25487,25488,25489,25490,25491,25492,25493,25494,25495,25496,25497,25498,25499,25500,25501,25502,25503,25504,25505,25506,25507,25508,25509,25510,25511,25512,25513,25514,25515,25516,25517,25518,25519,25520,25521,25522,25523,25524,25525,25526,25527,25528,25529,25530,25531,25532,25533,25534,25535,25536,25537,25538,25539,25540,25541,25542,25543,25544,25545,25546,25547,25548,25549,25550,25551,25552,25553,25554,25555,25556,25557,25558,25559,25560,25561,25562,25563,25564,25565,25566,25567,25568,25569,25570,25571,25572,25573,25574,25575,25576,25577,25578,25579,25580,25581,25582,25583,25584,25585,25586,25587,25588,25589,25590,25591,25592,25593,25594,25595,25596,25597,25598,25599,25600,25601,25602,25603,25604,25605,25606,25607,25608,25609,25610,25611,25612,25613,25614,25615,25616,25617,25618,25619,25620,25621,25622,25623,25624,25625,25626,25627,25628,25629,25630,25631,25632,25633,25634,25635,25636,25637,25638,25639,25640,25641,25642,25643,25644,25645,25646,25647,25648,25649,25650,25651,25652,25653,25654,25655,25656,25657,25658,25659,25660,25661,25662,25663,25664,25665,25666,25667,25668,25669,25670,25671,25672,25673,25674,25675,25676,25677,25678,25679,25680,25681,25682,25683,25684,25685,25686,25687,25688,25689,25690,25691,25692,25693,25694,25695,25696,25697,25698,25699,25700,25701,25702,25703,25704,25705,25706,25707,25708,25709,25710,25711,25712,25713,25714,25715,25716,25717,25718,25719,25720,25721,25722,25723,25724,25725,25726,25727,25728,25729,25730,25731,25732,25733,25734,25735,25736,25737,25738,25739,25740,25741,25742,25743,25744,25745,25746,25747,25748,25749,25750,25751,25752,25753,25754,25755,25756,25757,25758,25759,25760,25761,25762,25763,25764,25765,25766,25767,25768,25769,25770,25771,25772,25773,25774,25775,25776,25777,25778,25779,25780,25781,25782,25783,25784,25785,25786,25787,25788,25789,25790,25791,25792,25793,25794,25795,25796,25797,25798,25799,25800,25801,25802,25803,25804,25805,25806,25807,25808,25809,25810,25811,25812,25813,25814,25815,25816,25817,25818,25819,25820,25821,25822,25823,25824,25825,25826,25827,25828,25829,25830,25831,25832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,25844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,25856,25857,25858,25859,25860,25861,25862,25863,25864,25865,25866,25867,25868,25869,25870,25871,25872,25873,25874,25875,25876,25877,25878,25879,25880,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,25892,25893,25894,25895,25896,25897,25898,25899,25900,25901,25902,25903,25904,25905,25906,25907,25908,25909,25910,25911,25912,25913,25914,25915,25916,25917,25918,25919,25920,25921,25922,25923,25924,25925,25926,25927,25928,25929,25930,25931,25932,25933,25934,25935,25936,25937,25938,25939,25940,25941,25942,25943,25944,25945,25946,25947,25948,25949,25950,25951,25952,25953,25954,25955,25956,25957,25958,25959,25960,25961,25962,25963,25964,25965,25966,25967,25968,25969,25970,25971,25972,25973,25974,25975,25976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25991,25992,25993,25994,25995,25996,25997,25998,25999,26000,26001,26002,26003,26004,26005,26006,26007,26008,26009,26010,26011,26012,26013,26014,26015,26016,26017,26018,26019,26020,26021,26022,26023,26024,26025,26026,26027,26028,26029,26030,26031,26032,26033,26034,26035,26036,26037,26038,26039,26040,26041,26042,26043,26044,26045,26046,26047,26048,26049,26050,26051,26052,26053,26054,26055,26056,26057,26058,26059,26060,26061,26062,26063,26064,26065,26066,26067,26068,26069,26070,26071,26072,26073,26074,26075,26076,26077,26078,26079,26080,26081,26082,26083,26084,26085,26086,26087,26088,26089,26090,26091,26092,26093,26094,26095,26096,26097,26098,26099,26100,26101,26102,26103,26104,26105,26106,26107,26108,26109,26110,26111,26112,26113,26114,26115,26116,26117,26118,26119,26120,26121,26122,26123,26124,26125,26126,26127,26128,26129,26130,26131,26132,26133,26134,26135,26136,26137,26138,26139,26140,26141,26142,26143,26144,26145,26146,26147,26148,26149,26150,26151,26152,26153,26154,26155,26156,26157,26158,26159,26160,26161,26162,26163,26164,26165,26166,26167,26168,26169,26170,26171,26172,26173,26174,26175,26176,26177,26178,26179,26180,26181,26182,26183,26184,26185,26186,26187,26188,26189,26190,26191,26192,26193,26194,26195,26196,26197,26198,26199,26200,26201,26202,26203,26204,26205,26206,26207,26208,26209,26210,26211,26212,26213,26214,26215,26216,26217,26218,26219,26220,26221,26222,26223,26224,26225,26226,26227,26228,26229,26230,26231,26232,26233,26234,26235,26236,26237,26238,26239,26240,26241,26242,26243,26244,26245,26246,26247,26248,26249,26250,26251,26252,26253,26254,26255,26256,26257,26258,26259,26260,26261,26262,26263,26264,26265,26266,26267,26268,26269,26270,26271,26272,26273,26274,26275,26276,26277,26278,26279,26280,26281,26282,26283,26284,26285,26286,26287,26288,26289,26290,26291,26292,26293,26294,26295,26296,26297,26298,26299,26300,26301,26302,26303,26304,26305,26306,26307,26308,26309,26310,26311,26312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,26324,26325,26326,26327,26328,26329,26330,26331,26332,26333,26334,26335,26336,26337,26338,26339,26340,26341,26342,26343,26344,26345,26346,26347,26348,26349,26350,26351,26352,26353,26354,26355,26356,26357,26358,26359,26360,26361,26362,26363,26364,26365,26366,26367,26368,26369,26370,26371,26372,26373,26374,26375,26376,26377,26378,26379,26380,26381,26382,26383,26384,26385,26386,26387,26388,26389,26390,26391,26392,26393,26394,26395,26396,26397,26398,26399,26400,26401,26402,26403,26404,26405,26406,26407,26408,26409,26410,26411,26412,26413,26414,26415,26416,26417,26418,26419,26420,26421,26422,26423,26424,26425,26426,26427,26428,26429,26430,26431,26432,26433,26434,26435,26436,26437,26438,26439,26440,26441,26442,26443,26444,26445,26446,26447,26448,26449,26450,26451,26452,26453,26454,26455,26456,26457,26458,26459,26460,26461,26462,26463,26464,26465,26466,26467,26468,26469,26470,26471,26472,26473,26474,26475,26476,26477,26478,26479,26480,26481,26482,26483,26484,26485,26486,26487,26488,26489,26490,26491,26492,26493,26494,26495,26496,26497,26498,26499,26500,26501,26502,26503,26504,26505,26506,26507,26508,26509,26510,26511,26512,26513,26514,26515,26516,26517,26518,26519,26520,26521,26522,26523,26524,26525,26526,26527,26528,26529,26530,26531,26532,26533,26534,26535,26536,26537,26538,26539,26540,26541,26542,26543,26544,26545,26546,26547,26548,26549,26550,26551,26552,26553,26554,26555,26556,26557,26558,26559,26560,26561,26562,26563,26564,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26575,26576,26577,26578,26579,26580,26581,26582,26583,26584,26585,26586,26587,26588,26589,26590,26591,26592,26593,26594,26595,26596,26597,26598,26599,26600,26601,26602,26603,26604,26605,26606,26607,26608,26609,26610,26611,26612,26613,26614,26615,26616,26617,26618,26619,26620,26621,26622,26623,26624,26625,26626,26627,26628,26629,26630,26631,26632,26633,26634,26635,26636,26637,26638,26639,26640,26641,26642,26643,26644,26645,26646,26647,26648,26649,26650,26651,26652,26653,26654,26655,26656,26657,26658,26659,26660,26661,26662,26663,26664,26665,26666,26667,26668,26669,26670,26671,26672,26673,26674,26675,26676,26677,26678,26679,26680,26681,26682,26683,26684,26685,26686,26687,26688,26689,26690,26691,26692,26693,26694,26695,26696,26697,26698,26699,26700,26701,26702,26703,26704,26705,26706,26707,26708,26709,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,26720,26721,26722,26723,26724,26725,26726,26727,26728,26729,26730,26731,26732,26733,26734,26735,26736,26737,26738,26739,26740,26741,26742,26743,26744,26745,26746,26747,26748,26749,26750,26751,26752,26753,26754,26755,26756,26757,26758,26759,26760,26761,26762,26763,26764,26765,26766,26767,26768,26769,26770,26771,26772,26773,26774,26775,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26786,26787,26788,26789,26790,26791,26792,26793,26794,26795,26796,26797,26798,26799,26800,26801,26802,26803,26804,26805,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,26816,26817,26818,26819,26820,26821,26822,26823,26824,26825,26826,26827,26828,26829,26830,26831,26832,26833,26834,26835,26836,26837,26838,26839,26840,26841,26842,26843,26844,26845,26846,26847,26848,26849,26850,26851,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26862,26863,26864,26865,26866,26867,26868,26869,26870,26871,26872,26873,26874,26875,26876,26877,26878,26879,26880,26881,26882,26883,26884,26885,26886,26887,26888,26889,26890,26891,26892,26893,26894,26895,26896,26897,26898,26899,26900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26911,26912,26913,26914,26915,26916,26917,26918,26919,26920,26921,26922,26923,26924,26925,26926,26927,26928,26929,26930,26931,26932,26933,26934,26935,26936,26937,26938,26939,26940,26941,26942,26943,26944,26945,26946,26947,26948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,26960,26961,26962,26963,26964,26965,26966,26967,26968,26969,26970,26971,26972,26973,26974,26975,26976,26977,26978,26979,26980,26981,26982,26983,26984,26985,26986,26987,26988,26989,26990,26991,26992,26993,26994,26995,26996,26997,26998,26999,27000,27001,27002,27003,27004,27005,27006,27007,27008,27009,27010,27011,27012,27013,27014,27015,27016,27017,27018,27019,27020,27021,27022,27023,27024,27025,27026,27027,27028,27029,27030,27031,27032,27033,27034,27035,27036,27037,27038,27039,27040,27041,27042,27043,27044,27045,27046,27047,27048,27049,27050,27051,27052,27053,27054,27055,27056,27057,27058,27059,27060,27061,27062,27063,27064,27065,27066,27067,27068,27069,27070,27071,27072,27073,27074,27075,27076,27077,27078,27079,27080,27081,27082,27083,27084,27085,27086,27087,27088,27089,27090,27091,27092,27093,27094,27095,27096,27097,27098,27099,27100,27101,27102,27103,27104,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,27116,27117,27118,27119,27120,27121,27122,27123,27124,27125,27126,27127,27128,27129,27130,27131,27132,27133,27134,27135,27136,27137,27138,27139,27140,27141,27142,27143,27144,27145,27146,27147,27148,27149,27150,27151,27152,27153,27154,27155,27156,27157,27158,27159,27160,27161,27162,27163,27164,27165,27166,27167,27168,27169,27170,27171,27172,27173,27174,27175,27176,27177,27178,27179,27180,27181,27182,27183,27184,27185,27186,27187,27188,27189,27190,27191,27192,27193,27194,27195,27196,27197,27198,27199,27200,27201,27202,27203,27204,27205,27206,27207,27208,27209,27210,27211,27212,27213,27214,27215,27216,27217,27218,27219,27220,27221,27222,27223,27224,27225,27226,27227,27228,27229,27230,27231,27232,27233,27234,27235,27236,27237,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,27248,27249,27250,27251,27252,27253,27254,27255,27256,27257,27258,27259,27260,27261,27262,27263,27264,27265,27266,27267,27268,27269,27270,27271,27272,27273,27274,27275,27276,27277,27278,27279,27280,27281,27282,27283,27284,27285,27286,27287,27288,27289,27290,27291,27292,27293,27294,27295,27296],"exit":[9,11,19,27,37,43,50,59,63,64,66,69,77,89,95,96,98,102,109,111,115,121,123,126,127,129,131,134,157,163,166,170,182,185,191,194,207,213,216,219,222,224,226,227,229,233,258,259,261,265,266,267,279,280,282,285,288,291,292,303,304,306,312,315,316,318,320,322,324,327,328,334,339,341,343,344,346,348,353,355,357,358,360,363,369,397,401,419,422,425,432,438,444,447,455,457,463,469,475,478,481,484,487,490,493,500,515,521,527,537,538,540,544,569,570,572,576,577,585,590,591,593,596,599,602,608,614,617,623,626,627,629,631,633,640,646,647,649,652,655,658,659,661,664,667,670,676,685,691,694,695,697,700,701,703,706,707,709,711,718,719,730,732,734,735,737,744,746,748,749,751,760,762,763,765,768,770,799,800,802,806,818,821,827,830,837,843,849,852,855,858,860,862,868,874,877,880,883,886,889,892,895,898,905,920,926,932,935,938,942,948,954,957,960,963,966,969,972,975,978,981,984,987,990,997,1003,1012,1018,1024,1027,1030,1036,1039,1042,1044,1046,1047,1049,1078,1079,1081,1085,1086,1087,1093,1094,1099,1100,1102,1105,1108,1111,1117,1123,1124,1126,1132,1135,1136,1138,1140,1142,1149,1150,1155,1156,1158,1161,1164,1167,1168,1170,1173,1176,1179,1185,1192,1194,1200,1203,1204,1206,1209,1212,1215,1216,1218,1220,1222,1223,1229,1235,1236,1238,1241,1242,1244,1247,1248,1250,1253,1256,1259,1260,1262,1265,1266,1268,1271,1277,1283,1284,1286,1292,1295,1296,1298,1304,1310,1316,1319,1320,1322,1324,1326,1332,1338,1343,1345,1347,1348,1350,1352,1357,1359,1361,1362,1364,1366,1373,1375,1376,1378,1380,1382,1385,1387,1389,1390,1392,1401,1427,1429,1454,1457,1464,1470,1476,1479,1487,1489,1495,1501,1507,1510,1513,1516,1519,1522,1525,1532,1547,1553,1559,1569,1575,1581,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1624,1630,1639,1645,1651,1654,1663,1671,1673,1679,1685,1691,1694,1697,1700,1703,1706,1709,1712,1715,1718,1721,1727,1730,1733,1734,1740,1746,1755,1758,1759,1761,1767,1770,1779,1782,1783,1785,1788,1799,1801,1802,1804,1807,1833,1834,1836,1840,1841,1848,1849,1854,1855,1857,1860,1863,1866,1872,1878,1881,1887,1890,1891,1893,1895,1897,1898,1904,1910,1911,1913,1916,1919,1922,1923,1925,1928,1929,1931,1934,1940,1949,1955,1958,1961,1964,1967,1970,1971,1973,1975,1977,1984,1990,1991,1993,1996,1999,2002,2003,2005,2008,2009,2011,2014,2015,2017,2020,2023,2032,2038,2041,2047,2050,2053,2059,2065,2071,2074,2075,2077,2079,2088,2089,2094,2097,2100,2103,2106,2109,2112,2113,2115,2118,2121,2124,2127,2130,2136,2137,2139,2143,2148,2157,2163,2169,2175,2181,2187,2190,2191,2193,2196,2197,2199,2202,2203,2205,2207,2209,2211,2215,2221,2226,2228,2230,2231,2233,2235,2240,2242,2244,2245,2247,2249,2256,2258,2259,2261,2263,2265,2268,2270,2272,2273,2275,2277,2284,2286,2287,2289,2294,2298,2310,2323,2326,2342,2345,2351,2354,2361,2367,2373,2376,2379,2382,2384,2386,2392,2398,2404,2407,2410,2413,2416,2419,2422,2429,2444,2450,2456,2459,2462,2472,2478,2484,2487,2490,2493,2499,2502,2511,2514,2515,2521,2527,2528,2536,2539,2542,2548,2551,2552,2554,2560,2563,2566,2568,2570,2576,2582,2588,2591,2594,2597,2600,2603,2606,2612,2615,2618,2624,2627,2630,2631,2637,2643,2652,2655,2656,2658,2664,2667,2670,2676,2679,2680,2682,2685,2691,2694,2696,2698,2704,2710,2716,2719,2722,2725,2728,2731,2734,2740,2743,2746,2752,2755,2758,2764,2767,2770,2771,2777,2783,2792,2795,2796,2798,2804,2807,2810,2813,2819,2822,2825,2831,2832,2834,2837,2840,2843,2846,2848,2850,2851,2853,2856,2864,2882,2883,2885,2889,2890,2897,2898,2903,2904,2906,2909,2912,2915,2921,2927,2930,2936,2939,2940,2942,2944,2946,2947,2953,2954,2959,2960,2962,2965,2968,2971,2972,2974,2977,2978,2980,2983,2989,2998,3004,3007,3008,3010,3013,3016,3019,3020,3022,3024,3033,3034,3039,3042,3045,3048,3051,3054,3057,3058,3060,3063,3069,3070,3072,3081,3088,3090,3096,3099,3100,3102,3108,3114,3120,3123,3124,3126,3128,3137,3138,3143,3146,3149,3152,3155,3158,3161,3162,3164,3167,3173,3174,3176,3179,3185,3186,3188,3197,3206,3212,3215,3218,3224,3230,3236,3239,3240,3242,3245,3246,3248,3251,3252,3254,3256,3265,3266,3271,3274,3277,3280,3283,3286,3289,3290,3292,3295,3301,3302,3304,3307,3313,3316,3319,3325,3328,3332,3337,3346,3352,3355,3356,3358,3364,3367,3370,3376,3379,3380,3382,3386,3388,3391,3394,3400,3403,3404,3406,3410,3416,3421,3422,3427,3431,3432,3434,3436,3441,3445,3446,3448,3450,3459,3460,3462,3464,3466,3469,3473,3474,3476,3478,3487,3488,3490,3492,3494,3497,3501,3502,3504,3513,3532,3545,3557,3566,3569,3576,3582,3588,3591,3599,3601,3613,3616,3619,3622,3631,3634,3637,3638,3644,3650,3659,3662,3671,3681,3687,3693,3696,3699,3702,3705,3711,3714,3717,3723,3726,3729,3730,3736,3742,3743,3751,3754,3763,3766,3767,3769,3775,3783,3785,3797,3800,3803,3806,3809,3815,3818,3821,3830,3842,3845,3846,3852,3858,3867,3870,3871,3879,3882,3885,3891,3894,3895,3900,3911,3913,3919,3925,3931,3934,3937,3943,3946,3949,3955,3958,3961,3967,3970,3979,3982,3985,3986,3992,3993,3998,4004,4007,4010,4011,4016,4019,4022,4025,4028,4029,4034,4040,4041,4046,4047,4052,4053,4055,4061,4063,4065,4071,4077,4083,4086,4089,4095,4098,4101,4107,4110,4113,4119,4122,4125,4131,4134,4137,4143,4146,4149,4150,4156,4157,4162,4168,4171,4174,4180,4181,4186,4187,4189,4192,4193,4198,4204,4205,4207,4210,4216,4217,4222,4228,4229,4231,4237,4241,4242,4244,4247,4255,4273,4274,4276,4280,4281,4288,4294,4295,4297,4300,4303,4306,4312,4318,4321,4327,4330,4331,4333,4335,4344,4350,4353,4356,4359,4362,4368,4369,4371,4375,4380,4389,4395,4399,4401,4404,4407,4410,4411,4413,4415,4424,4430,4433,4436,4439,4442,4448,4449,4451,4454,4460,4461,4463,4467,4472,4479,4481,4487,4491,4493,4499,4505,4511,4514,4515,4517,4519,4528,4534,4537,4540,4543,4546,4552,4553,4555,4558,4564,4565,4567,4570,4576,4579,4583,4588,4597,4603,4609,4615,4621,4627,4630,4631,4633,4636,4639,4642,4643,4645,4647,4662,4665,4671,4674,4680,4683,4686,4695,4698,4707,4710,4719,4728,4737,4743,4747,4749,4755,4758,4761,4767,4770,4771,4773,4779,4782,4783,4788,4794,4795,4797,4814,4817,4823,4826,4832,4835,4838,4844,4847,4850,4856,4859,4862,4871,4874,4883,4887,4892,4893,4901,4907,4910,4913,4919,4922,4925,4931,4934,4937,4943,4946,4952,4953,4958,4964,4965,4967,4970,4971,4973,4975,4977,4979,4983,4988,4989,4994,4996,4998,4999,5001,5003,5008,5010,5012,5013,5015,5017,5024,5026,5027,5029,5031,5033,5036,5038,5040,5041,5043,5045,5052,5054,5055,5057,5059,5061,5064,5066,5068,5069,5071,5073,5080,5082,5083,5085,5087,5090,5094,5119,5122,5138,5147,5150,5151,5157,5163,5164,5169,5172,5175,5178,5180,5182,5188,5194,5200,5203,5206,5212,5215,5218,5219,5225,5231,5240,5243,5246,5252,5255,5268,5274,5280,5283,5286,5292,5295,5298,5307,5311,5317,5323,5324,5332,5335,5338,5344,5347,5348,5350,5356,5359,5364,5366,5372,5378,5384,5387,5390,5396,5399,5402,5408,5411,5414,5420,5423,5427,5433,5434,5439,5445,5448,5451,5452,5454,5457,5460,5463,5466,5469,5472,5475,5476,5481,5482,5487,5492,5494,5500,5506,5512,5515,5518,5524,5527,5530,5536,5539,5542,5548,5551,5554,5560,5563,5566,5567,5573,5574,5579,5585,5588,5591,5592,5594,5597,5600,5603,5606,5609,5610,5615,5621,5622,5627,5628,5633,5634,5636,5639,5644,5646,5652,5658,5664,5667,5670,5676,5679,5682,5688,5691,5694,5700,5703,5706,5712,5715,5718,5724,5727,5731,5737,5738,5743,5749,5752,5755,5756,5758,5761,5762,5767,5770,5773,5774,5779,5785,5786,5788,5791,5797,5798,5803,5809,5810,5812,5815,5822,5828,5834,5840,5843,5846,5852,5855,5858,5864,5867,5870,5876,5879,5882,5888,5891,5894,5900,5903,5906,5912,5915,5918,5919,5925,5926,5931,5937,5938,5943,5946,5949,5950,5955,5958,5961,5962,5967,5973,5974,5979,5985,5986,5991,5997,5998,6003,6004,6009,6010,6012,6015,6020,6022,6023,6025,6054,6055,6057,6061,6075,6081,6082,6084,6093,6094,6102,6108,6111,6112,6114,6116,6125,6126,6131,6137,6138,6140,6143,6149,6150,6152,6156,6161,6168,6170,6176,6182,6185,6188,6191,6192,6194,6196,6211,6217,6218,6220,6223,6229,6230,6232,6235,6241,6242,6244,6253,6262,6268,6271,6272,6274,6280,6286,6292,6295,6296,6298,6300,6315,6321,6324,6327,6333,6336,6339,6345,6348,6351,6357,6360,6363,6369,6370,6378,6384,6387,6390,6396,6402,6408,6411,6417,6418,6420,6423,6424,6426,6428,6443,6449,6452,6455,6461,6464,6467,6473,6476,6479,6488,6491,6500,6509,6518,6524,6527,6528,6530,6536,6539,6542,6548,6551,6552,6557,6560,6563,6569,6575,6576,6578,6595,6601,6604,6607,6616,6619,6628,6631,6640,6643,6652,6655,6664,6668,6673,6682,6688,6691,6694,6697,6700,6703,6706,6712,6715,6721,6724,6727,6733,6739,6745,6748,6751,6752,6754,6756,6758,6771,6780,6783,6792,6795,6804,6807,6816,6819,6828,6831,6840,6843,6852,6856,6861,6867,6870,6874,6876,6879,6882,6885,6888,6891,6894,6900,6903,6909,6912,6915,6921,6927,6933,6936,6939,6945,6951,6952,6954,6958,6960,6966,6970,6975,6979,6980,6982,6984,6986,6989,6993,6994,6996,6998,7007,7008,7010,7012,7014,7021,7022,7024,7026,7035,7036,7038,7040,7042,7049,7050,7052,7054,7063,7064,7066,7068,7070,7073,7077,7078,7080,7082,7114,7142,7158,7159,7164,7167,7170,7175,7195,7198,7207,7210,7214,7226,7235,7238,7247,7250,7258,7263,7264,7275,7278,7287,7290,7302,7306,7313,7318,7319,7324,7327,7330,7336,7339,7342,7343,7348,7351,7354,7359,7362,7374,7379,7382,7391,7394,7406,7418,7422,7429,7434,7440,7443,7446,7447,7452,7455,7458,7464,7467,7470,7471,7476,7477,7482,7487,7496,7502,7510,7522,7534,7546,7558,7562,7569,7574,7580,7583,7586,7587,7592,7595,7598,7604,7605,7610,7616,7617,7622,7623,7628,7629,7634,7639,7647,7648,7659,7662,7671,7674,7683,7686,7695,7698,7707,7710,7719,7722,7726,7733,7738,7744,7747,7750,7751,7756,7757,7762,7768,7769,7774,7780,7781,7783,7786,7792,7793,7798,7804,7805,7807,7810,7838,7850,7862,7874,7886,7898,7910,7914,7921,7926,7932,7933,7938,7939,7944,7945,7950,7956,7957,7962,7968,7969,7974,7980,7981,7986,7992,7993,7998,7999,8004,8005,8010,8015,8023,8035,8038,8047,8050,8059,8062,8071,8074,8083,8086,8095,8098,8107,8110,8119,8122,8138,8144,8145,8150,8156,8157,8162,8168,8169,8174,8180,8181,8186,8192,8193,8195,8198,8201,8204,8205,8210,8216,8217,8222,8228,8229,8234,8239,8242,8243,8245,8273,8274,8275,8277,8279,8281,8295,8301,8302,8304,8322,8328,8331,8332,8334,8336,8345,8351,8357,8358,8360,8363,8369,8370,8372,8375,8388,8390,8396,8402,8405,8408,8411,8412,8414,8416,8426,8431,8437,8438,8440,8443,8449,8450,8452,8455,8461,8464,8467,8473,8482,8488,8492,8494,8500,8509,8515,8516,8518,8520,8535,8541,8544,8547,8553,8556,8559,8565,8568,8571,8580,8583,8589,8596,8598,8604,8610,8616,8625,8631,8637,8638,8643,8644,8646,8648,8663,8669,8672,8675,8681,8684,8687,8696,8699,8708,8711,8720,8723,8724,8729,8738,8744,8748,8750,8756,8759,8762,8765,8771,8772,8777,8783,8789,8795,8796,8798,8815,8821,8824,8827,8836,8839,8848,8851,8860,8863,8872,8875,8884,8887,8893,8894,8902,8908,8911,8914,8920,8923,8926,8929,8935,8941,8947,8953,8959,8965,8968,8971,8972,8974,8976,8991,9000,9003,9012,9015,9024,9027,9036,9039,9048,9051,9060,9063,9072,9075,9081,9087,9090,9096,9099,9100,9102,9108,9111,9114,9117,9123,9129,9132,9135,9141,9147,9153,9156,9159,9165,9171,9172,9174,9185,9191,9200,9203,9212,9215,9221,9224,9227,9236,9239,9248,9251,9260,9263,9272,9275,9284,9299,9302,9308,9311,9314,9320,9323,9329,9335,9341,9347,9353,9359,9365,9368,9371,9377,9383,9384,9389,9395,9396,9398,9400,9402,9408,9409,9415,9421,9423,9428,9438,9440,9441,9443,9453,9455,9456,9458,9463,9464,9468,9470,9471,9473,9479,9483,9485,9486,9488,9498,9500,9501,9503,9513,9515,9516,9518,9523,9528,9530,9531,9533,9538,9543,9545,9546,9548,9551,9557,9586,9594,9600,9603,9606,9609,9612,9619,9632,9643,9646,9653,9654,9657,9658,9664,9667,9673,9676,9710,9721,9723,9724,9735,9737,9738,9745,9750,9756,9759,9765,9768,9782,9793,9796,9816,9827,9830,9841,9843,9844,9855,9858,9865,9869,9874,9879,9880,9885,9886,9913,9950,9961,9963,9964,9975,9977,9978,9989,9992,10003,10006,10013,10017,10022,10024,10027,10028,10030,10033,10034,10041,10043,10057,10061,10078,10089,10104,10112,10116,10123,10126,10136,10137,10139,10140,10150,10151,10154,10164,10165,10168,10171,10178,10179,10182,10189,10193,10203,10204,10209,10217,10237,10265,10302,10313,10315,10316,10326,10327,10329,10330,10340,10341,10343,10344,10354,10355,10357,10358,10361,10368,10369,10371,10372,10382,10383,10385,10386,10393,10407,10410,10413,10423,10437,10441,10451,10465,10469,10479,10493,10507,10520,10531,10534,10544,10545,10548,10558,10559,10562,10572,10573,10576,10579,10586,10587,10590,10600,10601,10604,10607,10614,10615,10618,10625,10628,10629,10639,10642,10645,10655,10673,10701,10712,10777,10780,10791,10794,10805,10808,10819,10822,10825,10833,10836,10847,10850,10853,10861,10864,10875,10878,10882,10885,10890,10896,10899,10902,10905,10908,10915,10922,10929,10933,10936,10943,10950,10951,10957,10961,10964,10965,10971,10978,10985,10992,10999,11006,11013,11020,11024,11027,11051,11054,11065,11068,11079,11082,11089,11093,11096,11103,11107,11110,11117,11121,11124,11127,11135,11138,11141,11149,11152,11155,11166,11169,11173,11174,11177,11184,11185,11189,11194,11201,11203,11204,11207,11215,11221,11226,11233,11237,11243,11256,11271,11275,11276,11290,11291,11294,11297,11312,11318,11323,11331,11336,11340,11353,11358,11378,11391,11413,11418,11422,11443,11447,11449,11451,11453,11461,11462,11467,11470,11481,11489,11497,11519,11524,11532,11537,11541,11554,11559,11583,11587,11591,11596,11601,11605,11615,11630,11643,11665,11670,11674,11702,11706,11711,11715,11719,11746,11751,11753,11761,11763,11766,11769,11771,11772,11781,11783,11789,11791,11796,11809,11817,11820,11853,11859,11864,11872,11877,11881,11894,11899,11906,11923,11927,11931,11936,11941,11945,11952,11956,11959,11979,11983,11990,11995,11999,12022,12026,12029,12031,12042,12064,12069,12073,12101,12105,12110,12114,12118,12152,12156,12160,12165,12169,12173,12177,12209,12213,12216,12224,12226,12228,12235,12237,12244,12246,12259,12274,12291,12312,12339,12343,12382,12387,12395,12400,12404,12417,12422,12428,12429,12446,12450,12453,12458,12463,12467,12469,12473,12476,12479,12497,12500,12507,12512,12516,12521,12543,12547,12556,12567,12572,12586,12604,12607,12611,12614,12618,12622,12624,12635,12657,12662,12666,12672,12694,12697,12702,12706,12710,12712,12740,12743,12746,12751,12755,12759,12763,12765,12798,12801,12804,12808,12813,12817,12821,12825,12829,12834,12867,12874,12876,12878,12882,12884,12886,12889,12893,12895,12898,12902,12906,12919,12937,12952,12955,12960,12976,12995,12998,13002,13005,13059,13063,13067,13071,13075,13114,13119,13127,13132,13136,13140,13148,13153,13158,13174,13177,13180,13185,13190,13194,13196,13203,13206,13223,13226,13233,13238,13242,13246,13250,13265,13269,13276,13287,13292,13304,13322,13325,13329,13332,13336,13356,13375,13382,13385,13388,13391,13394,13397,13400,13403,13406,13409,13413,13426,13447,13452,13456,13461,13480,13483,13488,13492,13496,13498,13525,13528,13531,13536,13540,13544,13548,13550,13582,13585,13588,13591,13596,13600,13604,13608,13611,13615,13644,13647,13660,13664,13668,13672,13685,13687,13705,13708,13712,13715,13717,13722,13724,13728,13737,13739,13748,13750,13752,13759,13768,13771,13780,13782,13793,13802,13805,13809,13812,13822,13824,13836,13841,13850,13853,13857,13860,13864,13867,13877,13879,13902,13912,13916,13920,13924,13928,13932,13940,13951,13954,13975,13979,13988,13998,14002,14006,14010,14014,14018,14026,14030,14034,14047,14065,14068,14072,14075,14083,14087,14092,14099,14100,14103,14107,14110,14118,14122,14123,14128,14129,14134,14135,14139,14143,14146,14148,14149,14154,14158,14159,14163,14164,14168,14170,14171,14174,14178,14187,14189,14190,14197,14201,14202,14206,14210,14212,14213,14231,14235,14242,14244,14253,14257,14258,14267,14269,14270,14272,14284,14287,14290,14293,14296,14300,14304,14315,14319,14333,14335,14340,14343,14346,14349,14352,14355,14361,14364,14367,14374,14390,14406,14412,14415,14418,14424,14427,14430,14433,14436,14439,14442,14445,14448,14452,14454,14464,14479,14482,14487,14490,14491,14496,14502,14507,14514,14516,14517,14522,14525,14526,14530,14532,14534,14538,14540,14543,14548,14558,14560,14561,14564,14569,14572,14573,14577,14580,14582,14584,14588,14590,14592,14594,14596,14598,14608,14610,14611,14614,14615,14617,14622,14625,14626,14630,14633,14634,14636,14638,14640,14643,14665,14670,14671,14675,14683,14686,14687,14691,14694,14695,14705,14706,14708,14722,14725,14728,14731,14735,14738,14740,14741,14744,14755,14758,14759,14761,14763,14766,14768,14776,14782,14795,14798,14802,14805,14809,14812,14819,14821,14828,14832,14834,14846,14849,14855,14860,14871,14874,14878,14881,14909,14912,14916,14919,14923,14926,14950,14960,14964,14968,14972,14976,14980,14984,14988,15017,15021,15024,15034,15038,15042,15046,15050,15054,15058,15062,15066,15070,15099,15103,15107,15111,15114,15120,15124,15128,15132,15136,15140,15144,15148,15152,15156,15160,15164,15168,15197,15201,15205,15209,15213,15217,15226,15234,15238,15242,15250,15254,15258,15262,15266,15270,15274,15278,15282,15308,15311,15315,15318,15322,15325,15329,15332,15340,15344,15349,15352,15355,15356,15357,15360,15364,15375,15380,15381,15383,15384,15385,15397,15400,15402,15403,15408,15413,15414,15415,15416,15418,15420,15421,15423,15424,15425,15426,15427,15428,15430,15431,15433,15435,15436,15440,15443,15445,15446,15453,15458,15459,15460,15461,15463,15465,15467,15468,15470,15472,15474,15476,15478,15480,15483,15485,15486,15493,15495,15497,15499,15504,15509,15510,15511,15513,15515,15517,15519,15520,15522,15524,15526,15528,15530,15533,15534,15536,15537,15540,15542,15543,15546,15550,15554,15556,15558,15560,15565,15570,15571,15573,15575,15579,15581,15582,15584,15588,15589,15592,15594,15595,15598,15600,15601,15604,15606,15607,15610,15612,15613,15616,15623,15625,15627,15629,15640,15641,15643,15645,15651,15653,15654,15660,15662,15663,15666,15672,15675,15678,15681,15684,15687,15690,15693,15696,15703,15705,15707,15709,15717,15722,15723,15725,15727,15729,15731,15733,15735,15746,15752,15758,15764,15770,15776,15782,15788,15804,15806,15809,15810,15822,15827,15831,15833,15837,15854,15856,15857,15862,15866,15868,15869,15871,15873,15874,15876,15878,15880,15882,15884,15886,15893,15895,15896,15899,15904,15908,15910,15911,15913,15914,15916,15918,15919,15921,15923,15925,15927,15929,15931,15935,15942,15944,15945,15947,15948,15950,15951,15956,15960,15962,15963,15965,15966,15968,15969,15971,15973,15974,15976,15978,15980,15982,15984,15986,15988,15992,16003,16004,16006,16009,16011,16016,16020,16022,16023,16025,16026,16028,16032,16034,16035,16037,16038,16040,16041,16042,16044,16045,16049,16053,16054,16057,16059,16060,16063,16070,16072,16073,16075,16077,16079,16082,16086,16090,16092,16093,16095,16097,16103,16105,16106,16109,16111,16112,16113,16115,16121,16124,16127,16130,16133,16136,16142,16149,16151,16153,16155,16157,16158,16160,16163,16166,16167,16171,16173,16175,16177,16179,16180,16181,16182,16183,16184,16185,16188,16192,16194,16197,16199,16205,16208,16212,16215,16219,16222,16226,16233,16236,16240,16259,16273,16284,16286,16288,16302,16309,16330,16346,16354,16362,16392,16395,16411,16419,16427,16435,16465,16474,16477,16493,16501,16509,16517,16525,16550,16555,16564,16573,16576,16592,16600,16608,16616,16624,16632,16657,16662,16671,16680,16684,16689,16692,16708,16716,16724,16732,16740,16748,16756,16781,16786,16790,16795,16804,16808,16813,16822,16825,16841,16849,16857,16865,16873,16881,16889,16897,16911,16924,16932,16940,16944,16948,16956,16960,16964,16970,16977,16981,16992,17002,17007,17011,17012,17015,17039,17049,17055,17058,17060,17064,17065,17096,17102,17108,17118,17124,17130,17133,17135,17139,17140,17151,17161,17171,17181,17187,17193,17208,17214,17220,17228,17230,17234,17235,17241,17246,17251,17256,17261,17272,17278,17304,17319,17325,17330,17343,17345,17349,17350,17356,17361,17366,17371,17377,17383,17389,17395,17401,17407,17432,17452,17462,17480,17482,17486,17487,17493,17503,17504,17510,17516,17522,17528,17534,17540,17546,17552,17558,17582,17616,17639,17641,17645,17646,17653,17659,17665,17671,17683,17695,17701,17707,17713,17719,17725,17731,17755,17760,17765,17794,17799,17804,17828,17842,17854,17866,17878,17890,17902,17914,17926,17935,17940,17945,17950,17955,17960,17965,17970,17973,17984,17989,17994,17999,18004,18009,18014,18019,18022,18047,18053,18059,18071,18077,18083,18095,18107,18119,18125,18131,18137,18143,18146,18148,18151,18152,18154,18157,18159,18163,18167,18170,18172,18179,18186,18193,18200,18202,18203,18205,18209,18214,18215,18217,18223,18225,18234,18235,18239,18244,18252,18256,18266,18268,18270,18272,18273,18276,18278,18280,18281,18282,18287,18289,18290,18291,18298,18300,18308,18310,18316,18328,18332,18336,18360,18369,18371,18382,18383,18391,18392,18400,18408,18410,18418,18420,18428,18433,18449,18502,18504,18512,18517,18525,18526,18528,18532,18534,18535,18537,18542,18543,18550,18551,18560,18562,18570,18572,18580,18587,18597,18598,18619,18621,18625,18629,18636,18659,18688,18694,18701,18704,18705,18709,18710,18711,18713,18714,18715,18718,18723,18724,18730,18731,18737,18738,18743,18744,18749,18750,18754,18756,18764,18766,18774,18783,18788,18798,18799,18806,18811,18848,18910,18914,18917,18920,18923,18925,18939,18946,18958,18959,18961,18963,18968,18970,18971,18973,18978,18979,18981,18986,18987,18989,18993,18994,18996,19000,19001,19007,19008,19016,19018,19026,19028,19036,19045,19052,19057,19061,19062,19063,19064,19078,19175,19179,19219,19291,19313,19321,19336,19337,19339,19341,19346,19433,19434,19439,19444,19445,19479,19499,19501,19525,19560,19568,19576,19584,19587,19592,19640,19650,19652,19674,19682,19696,19706,19731,19732,19741,19744,19751,19765,19767,19783,19784,19869,19871,19950,20017,20101,20150,20198,20220,20222,20224,20226,20231,20246,20303,20331,20340,20341,20387,20394,20396,20398,20403,20431,20440,20479,20525,20534,20536,20565,20567,20569,20571,20573,20575,20577,20584,20611,20613,20707,20710,20738,20755,20786,20797,20806,20815,20830,20834,20853,20854,20855,20884,20924,20937,20967,20968,21116,21118,21120,21122,21129,21133,21142,21159,21173,21174,21176,21177,21189,21215,21237,21240,21255,21256,21257,21258,21260,21261,21263,21266,21267,21270,21273,21274,21277,21278,21285,21286,21290,21291,21297,21301,21307,21318,21326,21332,21345,21347,21368,21369,21503,21508,21511,21514,21521,21524,21527,21530,21550,21700,21734,21770,21771,21774,21775,21782,21808,21958,21959,21962,21965,21966,21967,21990,21994,21995,21996,21997,21998,21999,22002,22003,22011,22012,22015,22016,22019,22020,22022,22024,22025,22026,22028,22030,22032,22034,22036,22038,22040,22042,22044,22054,22056,22058,22059,22060,22074,22075,22077,22078,22080,22083,22084,22085,22090,22132,22198,22200,22201,22289,22292,22293,22346,22347,22380,22382,22416,22417,22465,22490,22491,22492,22494,22500,22501,22528,22530,22535,22536,22538,22543,22557,22562,22563,22613,22796,23025,23026,23034,23035,23042,23043,23049,23050,23055,23056,23060,23061,23064,23065,23067,23068,23069,23070,23071,23080,23092,23093,23094,23103,23104,23105,23113,23115,23158,23159,23160,23161,23162,23163,23164,23165,23166,23167,23168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,23249,23250,23252,23255,23256,23472,23473,23474,23512,23513,23514,23515,23556,23557,23558,23607,23609,23610,24184,24686,24687,24688,24690,24691,24692,24702,24721,24722],"h":23,"merged_edges":{"entrance:0":{"rank":553,"runs":[531,21,1]},"entrance:1":{"rank":553,"runs":[531,21,1]},"entrance:10":{"rank":553,"runs":[531,21,1]},"entrance:100":{"rank":553,"runs":[531,21,1]},"entrance:1000":{"rank":553,"runs":[531,21,1]},"entrance:1001":{"rank":553,"runs":[531,21,1]},"entrance:1002":{"rank":553,"runs":[531,21,1]},"entrance:1003":{"rank":553,"runs":[531,21,1]},"entrance:1004":{"rank":553,"runs":[531,21,1]},"entrance:1005":{"rank":553,"runs":[531,21,1]},"entrance:1006":{"rank":553,"runs":[531,21,1]},"entrance:1007":{"rank":553,"runs":[531,21,1]},"entrance:1008":{"rank":553,"runs":[531,21,1]},"entrance:1009":{"rank":553,"runs":[531,21,1]},"entrance:101":{"rank":553,"runs":[531,21,1]},"entrance:1010":{"rank":553,"runs":[531,21,1]},"entrance:10105":{"rank":554,"runs":[532,20,1,1]},"entrance:1011":{"rank":553,"runs":[531,21,1]},"entrance:10115":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:1012":{"rank":553,"runs":[531,21,1]},"entrance:1013":{"rank":553,"runs":[531,21,1]},"entrance:1014":{"rank":553,"runs":[531,21,1]},"entrance:1015":{"rank":553,"runs":[531,21,1]},"entrance:1016":{"rank":553,"runs":[531,21,1]},"entrance:1017":{"rank":553,"runs":[531,21,1]},"entrance:1018":{"rank":553,"runs":[531,21,1]},"entrance:1019":{"rank":553,"runs":[531,21,1]},"entrance:102":{"rank":553,"runs":[531,21,1]},"entrance:1020":{"rank":553,"runs":[531,21,1]},"entrance:10203":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1021":{"rank":553,"runs":[531,21,1]},"entrance:1022":{"rank":553,"runs":[531,21,1]},"entrance:1023":{"rank":553,"runs":[531,21,1]},"entrance:1024":{"rank":553,"runs":[531,21,1]},"entrance:1025":{"rank":553,"runs":[531,21,1]},"entrance:1026":{"rank":553,"runs":[531,21,1]},"entrance:1027":{"rank":553,"runs":[531,21,1]},"entrance:1028":{"rank":553,"runs":[531,21,1]},"entrance:1029":{"rank":553,"runs":[531,21,1]},"entrance:10292":{"rank":571,"runs":[550,17,2,1,1]},"entrance:10293":{"rank":570,"runs":[533,16,15,2,1,1,1,1]},"entrance:10294":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:10295":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:10296":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:10297":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:10298":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:10299":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:103":{"rank":553,"runs":[531,21,1]},"entrance:1030":{"rank":553,"runs":[531,21,1]},"entrance:10300":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:10301":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:10302":{"rank":571,"runs":[550,17,2,1,1]},"entrance:1031":{"rank":553,"runs":[531,21,1]},"entrance:10311":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1032":{"rank":553,"runs":[531,21,1]},"entrance:1033":{"rank":553,"runs":[531,21,1]},"entrance:1034":{"rank":553,"runs":[531,21,1]},"entrance:1035":{"rank":553,"runs":[531,21,1]},"entrance:1036":{"rank":553,"runs":[531,21,1]},"entrance:1037":{"rank":553,"runs":[531,21,1]},"entrance:1038":{"rank":553,"runs":[531,21,1]},"entrance:1039":{"rank":553,"runs":[531,21,1]},"entrance:104":{"rank":553,"runs":[531,21,1]},"entrance:1040":{"rank":553,"runs":[531,21,1]},"entrance:10400":{"rank":571,"runs":[550,17,2,1,1]},"entrance:10402":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:10403":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:10404":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:10405":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:10406":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:10407":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:10408":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:10409":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:1041":{"rank":553,"runs":[531,21,1]},"entrance:10410":{"rank":571,"runs":[550,17,2,1,1]},"entrance:1042":{"rank":553,"runs":[531,21,1]},"entrance:1043":{"rank":553,"runs":[531,21,1]},"entrance:1044":{"rank":553,"runs":[531,21,1]},"entrance:1045":{"rank":553,"runs":[531,21,1]},"entrance:1046":{"rank":553,"runs":[531,21,1]},"entrance:1047":{"rank":553,"runs":[531,21,1]},"entrance:1048":{"rank":553,"runs":[531,21,1]},"entrance:1049":{"rank":553,"runs":[531,21,1]},"entrance:105":{"rank":553,"runs":[531,21,1]},"entrance:1050":{"rank":553,"runs":[531,21,1]},"entrance:1051":{"rank":553,"runs":[531,21,1]},"entrance:1052":{"rank":553,"runs":[531,21,1]},"entrance:1053":{"rank":553,"runs":[531,21,1]},"entrance:1054":{"rank":553,"runs":[531,21,1]},"entrance:1055":{"rank":553,"runs":[531,21,1]},"entrance:1056":{"rank":553,"runs":[531,21,1]},"entrance:1057":{"rank":553,"runs":[531,21,1]},"entrance:1058":{"rank":553,"runs":[531,21,1]},"entrance:1059":{"rank":553,"runs":[531,21,1]},"entrance:106":{"rank":553,"runs":[531,21,1]},"entrance:1060":{"rank":553,"runs":[531,21,1]},"entrance:1061":{"rank":553,"runs":[531,21,1]},"entrance:1062":{"rank":553,"runs":[531,21,1]},"entrance:1063":{"rank":553,"runs":[531,21,1]},"entrance:1064":{"rank":553,"runs":[531,21,1]},"entrance:1065":{"rank":553,"runs":[531,21,1]},"entrance:1066":{"rank":553,"runs":[531,21,1]},"entrance:1067":{"rank":553,"runs":[531,21,1]},"entrance:1068":{"rank":553,"runs":[531,21,1]},"entrance:1069":{"rank":553,"runs":[531,21,1]},"entrance:107":{"rank":553,"runs":[531,21,1]},"entrance:1070":{"rank":553,"runs":[531,21,1]},"entrance:1071":{"rank":553,"runs":[531,21,1]},"entrance:1072":{"rank":553,"runs":[531,21,1]},"entrance:1073":{"rank":553,"runs":[531,21,1]},"entrance:1074":{"rank":553,"runs":[531,21,1]},"entrance:1075":{"rank":553,"runs":[531,21,1]},"entrance:1076":{"rank":553,"runs":[531,21,1]},"entrance:1077":{"rank":553,"runs":[531,21,1]},"entrance:1078":{"rank":553,"runs":[531,21,1]},"entrance:1079":{"rank":553,"runs":[531,21,1]},"entrance:108":{"rank":553,"runs":[531,21,1]},"entrance:1080":{"rank":553,"runs":[531,21,1]},"entrance:1081":{"rank":553,"runs":[531,21,1]},"entrance:10811":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10812":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10813":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10814":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10816":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10817":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10818":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:10819":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1082":{"rank":553,"runs":[531,21,1]},"entrance:10820":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10822":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10823":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10825":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10826":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10828":{"rank":554,"runs":[532,19,1,1,1]},"entrance:10829":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1083":{"rank":553,"runs":[531,21,1]},"entrance:10837":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10838":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10839":{"rank":556,"runs":[534,16,2,1,1,1,1]},"entrance:1084":{"rank":553,"runs":[531,21,1]},"entrance:1085":{"rank":553,"runs":[531,21,1]},"entrance:1086":{"rank":553,"runs":[531,21,1]},"entrance:10861":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10862":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1087":{"rank":553,"runs":[531,21,1]},"entrance:1088":{"rank":553,"runs":[531,21,1]},"entrance:10882":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10883":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1089":{"rank":553,"runs":[531,21,1]},"entrance:109":{"rank":553,"runs":[531,21,1]},"entrance:1090":{"rank":553,"runs":[531,21,1]},"entrance:10900":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10901":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1091":{"rank":553,"runs":[531,21,1]},"entrance:10915":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10916":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1092":{"rank":553,"runs":[531,21,1]},"entrance:10927":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10928":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1093":{"rank":553,"runs":[531,21,1]},"entrance:10936":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10937":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:1094":{"rank":553,"runs":[531,21,1]},"entrance:10942":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10943":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10945":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10946":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:10948":{"rank":556,"runs":[534,17,3,1,1]},"entrance:1095":{"rank":553,"runs":[531,21,1]},"entrance:10954":{"rank":558,"runs":[536,15,5,1,1]},"entrance:10955":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:1096":{"rank":553,"runs":[531,21,1]},"entrance:1097":{"rank":553,"runs":[531,21,1]},"entrance:1098":{"rank":553,"runs":[531,21,1]},"entrance:10984":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1099":{"rank":553,"runs":[531,21,1]},"entrance:10990":{"rank":564,"runs":[535,8,7,5,4,3,1,1]},"entrance:10993":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:10994":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:10999":{"rank":568,"runs":[546,15,5,1,1]},"entrance:11":{"rank":553,"runs":[531,21,1]},"entrance:110":{"rank":553,"runs":[531,21,1]},"entrance:1100":{"rank":553,"runs":[531,21,1]},"entrance:11004":{"rank":566,"runs":[545,8,7,2,2,1,1]},"entrance:11005":{"rank":568,"runs":[536,10,10,4,3,1,1,1,1,1]},"entrance:11006":{"rank":564,"runs":[540,8,7,2,2,1,1,1,1,1]},"entrance:11007":{"rank":566,"runs":[545,10,7,2,1,1]},"entrance:1101":{"rank":553,"runs":[531,21,1]},"entrance:1102":{"rank":553,"runs":[531,21,1]},"entrance:11028":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:11029":{"rank":566,"runs":[541,6,4,4,4,3,2,1,1]},"entrance:1103":{"rank":553,"runs":[531,21,1]},"entrance:11030":{"rank":566,"runs":[545,7,6,4,2,1,1]},"entrance:11037":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:11038":{"rank":566,"runs":[537,8,8,4,3,2,2,1,1]},"entrance:11039":{"rank":566,"runs":[541,4,4,4,4,3,2,2,1,1]},"entrance:1104":{"rank":553,"runs":[531,21,1]},"entrance:11041":{"rank":569,"runs":[534,14,14,3,1,1,1,1]},"entrance:11042":{"rank":569,"runs":[534,14,14,3,1,1,1,1]},"entrance:11043":{"rank":569,"runs":[538,10,10,4,3,1,1,1,1]},"entrance:11044":{"rank":569,"runs":[538,10,10,4,3,1,1,1,1]},"entrance:11047":{"rank":569,"runs":[542,8,6,6,3,1,1,1,1]},"entrance:11048":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"entrance:11049":{"rank":569,"runs":[542,8,6,6,3,1,1,1,1]},"entrance:1105":{"rank":553,"runs":[531,21,1]},"entrance:11050":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"entrance:11051":{"rank":569,"runs":[548,15,4,1,1]},"entrance:11052":{"rank":569,"runs":[548,15,4,1,1]},"entrance:1106":{"rank":553,"runs":[531,21,1]},"entrance:1107":{"rank":553,"runs":[531,21,1]},"entrance:11070":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"entrance:11075":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"entrance:1108":{"rank":553,"runs":[531,21,1]},"entrance:1109":{"rank":553,"runs":[531,21,1]},"entrance:11097":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"entrance:111":{"rank":553,"runs":[531,21,1]},"entrance:1110":{"rank":553,"runs":[531,21,1]},"entrance:11102":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"entrance:1111":{"rank":553,"runs":[531,21,1]},"entrance:1112":{"rank":553,"runs":[531,21,1]},"entrance:11123":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"entrance:11128":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"entrance:1113":{"rank":553,"runs":[531,21,1]},"entrance:1114":{"rank":553,"runs":[531,21,1]},"entrance:11149":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"entrance:1115":{"rank":553,"runs":[531,21,1]},"entrance:11159":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:1116":{"rank":553,"runs":[531,21,1]},"entrance:1117":{"rank":553,"runs":[531,21,1]},"entrance:11177":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"entrance:1118":{"rank":553,"runs":[531,21,1]},"entrance:11182":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"entrance:11187":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:1119":{"rank":553,"runs":[531,21,1]},"entrance:112":{"rank":553,"runs":[531,21,1]},"entrance:1120":{"rank":553,"runs":[531,21,1]},"entrance:11205":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"entrance:1121":{"rank":553,"runs":[531,21,1]},"entrance:11215":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:1122":{"rank":553,"runs":[531,21,1]},"entrance:1123":{"rank":553,"runs":[531,21,1]},"entrance:11234":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"entrance:11239":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"entrance:1124":{"rank":553,"runs":[531,21,1]},"entrance:11244":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:1125":{"rank":553,"runs":[531,21,1]},"entrance:1126":{"rank":553,"runs":[531,21,1]},"entrance:11263":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"entrance:1127":{"rank":553,"runs":[531,21,1]},"entrance:11273":{"rank":558,"runs":[536,14,4,1,1,1,1]},"entrance:1128":{"rank":553,"runs":[531,21,1]},"entrance:1129":{"rank":553,"runs":[531,21,1]},"entrance:11293":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:11298":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:113":{"rank":553,"runs":[531,21,1]},"entrance:1130":{"rank":553,"runs":[531,21,1]},"entrance:1131":{"rank":553,"runs":[531,21,1]},"entrance:1132":{"rank":553,"runs":[531,21,1]},"entrance:11323":{"rank":571,"runs":[550,17,2,1,1]},"entrance:1133":{"rank":553,"runs":[531,21,1]},"entrance:11333":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:11334":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:11335":{"rank":570,"runs":[549,12,3,2,2,1,1]},"entrance:11336":{"rank":570,"runs":[547,10,2,2,2,2,2,1,1,1]},"entrance:11337":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:11338":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:11339":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:1134":{"rank":553,"runs":[531,21,1]},"entrance:11340":{"rank":570,"runs":[543,6,6,6,2,2,2,1,1,1]},"entrance:11341":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:11342":{"rank":570,"runs":[537,12,12,2,2,2,1,1,1]},"entrance:11343":{"rank":570,"runs":[541,8,8,4,2,2,2,1,1,1]},"entrance:11344":{"rank":570,"runs":[539,10,10,2,2,2,2,1,1,1]},"entrance:11345":{"rank":570,"runs":[535,14,14,2,2,1,1,1]},"entrance:11347":{"rank":570,"runs":[537,12,12,2,2,2,1,1,1]},"entrance:11348":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:11349":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:1135":{"rank":553,"runs":[531,21,1]},"entrance:11350":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:11351":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:11352":{"rank":570,"runs":[547,6,6,2,2,2,2,1,1,1]},"entrance:11353":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:11354":{"rank":570,"runs":[541,8,8,4,2,2,2,1,1,1]},"entrance:11355":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:11356":{"rank":570,"runs":[543,6,6,6,2,2,2,1,1,1]},"entrance:11357":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:11358":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:11359":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:1136":{"rank":553,"runs":[531,21,1]},"entrance:11360":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:11361":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:11362":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:11363":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:11364":{"rank":570,"runs":[547,10,2,2,2,2,2,1,1,1]},"entrance:11365":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:11366":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:11367":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:11368":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:11369":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:1137":{"rank":553,"runs":[531,21,1]},"entrance:11370":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:11371":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:11372":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:1138":{"rank":553,"runs":[531,21,1]},"entrance:11388":{"rank":554,"runs":[532,20,1,1]},"entrance:1139":{"rank":553,"runs":[531,21,1]},"entrance:11398":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:114":{"rank":553,"runs":[531,21,1]},"entrance:1140":{"rank":553,"runs":[531,21,1]},"entrance:1141":{"rank":553,"runs":[531,21,1]},"entrance:1142":{"rank":553,"runs":[531,21,1]},"entrance:1143":{"rank":553,"runs":[531,21,1]},"entrance:1144":{"rank":553,"runs":[531,21,1]},"entrance:1145":{"rank":553,"runs":[531,21,1]},"entrance:1146":{"rank":553,"runs":[531,21,1]},"entrance:1147":{"rank":553,"runs":[531,21,1]},"entrance:11476":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:1148":{"rank":553,"runs":[531,21,1]},"entrance:1149":{"rank":553,"runs":[531,21,1]},"entrance:11493":{"rank":554,"runs":[532,20,1,1]},"entrance:115":{"rank":553,"runs":[531,21,1]},"entrance:1150":{"rank":553,"runs":[531,21,1]},"entrance:1151":{"rank":553,"runs":[531,21,1]},"entrance:1152":{"rank":553,"runs":[531,21,1]},"entrance:1153":{"rank":553,"runs":[531,21,1]},"entrance:1154":{"rank":553,"runs":[531,21,1]},"entrance:1155":{"rank":553,"runs":[531,21,1]},"entrance:1156":{"rank":553,"runs":[531,21,1]},"entrance:1157":{"rank":553,"runs":[531,21,1]},"entrance:1158":{"rank":553,"runs":[531,21,1]},"entrance:1159":{"rank":553,"runs":[531,21,1]},"entrance:11596":{"rank":554,"runs":[532,20,1,1]},"entrance:116":{"rank":553,"runs":[531,21,1]},"entrance:1160":{"rank":553,"runs":[531,21,1]},"entrance:11606":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1161":{"rank":553,"runs":[531,21,1]},"entrance:11616":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:1162":{"rank":553,"runs":[531,21,1]},"entrance:11626":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:1163":{"rank":553,"runs":[531,21,1]},"entrance:11636":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:1164":{"rank":553,"runs":[531,21,1]},"entrance:11646":{"rank":564,"runs":[535,8,8,7,2,1,1,1,1]},"entrance:1165":{"rank":553,"runs":[531,21,1]},"entrance:11656":{"rank":566,"runs":[535,10,10,5,2,1,1,1,1]},"entrance:1166":{"rank":553,"runs":[531,21,1]},"entrance:11666":{"rank":568,"runs":[535,12,12,3,2,1,1,1,1]},"entrance:1167":{"rank":553,"runs":[531,21,1]},"entrance:11676":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:1168":{"rank":553,"runs":[531,21,1]},"entrance:11684":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:1169":{"rank":553,"runs":[531,21,1]},"entrance:11699":{"rank":554,"runs":[532,20,1,1]},"entrance:117":{"rank":553,"runs":[531,21,1]},"entrance:1170":{"rank":553,"runs":[531,21,1]},"entrance:1171":{"rank":553,"runs":[531,21,1]},"entrance:1172":{"rank":553,"runs":[531,21,1]},"entrance:1173":{"rank":553,"runs":[531,21,1]},"entrance:1174":{"rank":553,"runs":[531,21,1]},"entrance:1175":{"rank":553,"runs":[531,21,1]},"entrance:1176":{"rank":553,"runs":[531,21,1]},"entrance:1177":{"rank":553,"runs":[531,21,1]},"entrance:1178":{"rank":553,"runs":[531,21,1]},"entrance:1179":{"rank":553,"runs":[531,21,1]},"entrance:118":{"rank":553,"runs":[531,21,1]},"entrance:1180":{"rank":553,"runs":[531,21,1]},"entrance:11800":{"rank":554,"runs":[532,20,1,1]},"entrance:1181":{"rank":553,"runs":[531,21,1]},"entrance:11810":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1182":{"rank":553,"runs":[531,21,1]},"entrance:11820":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1183":{"rank":553,"runs":[531,21,1]},"entrance:11830":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:1184":{"rank":553,"runs":[531,21,1]},"entrance:11840":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:1185":{"rank":553,"runs":[531,21,1]},"entrance:11850":{"rank":564,"runs":[537,7,6,6,3,2,1,1,1]},"entrance:1186":{"rank":553,"runs":[531,21,1]},"entrance:11860":{"rank":566,"runs":[537,8,8,5,3,2,1,1,1]},"entrance:1187":{"rank":553,"runs":[531,21,1]},"entrance:11870":{"rank":568,"runs":[537,10,10,3,3,2,1,1,1]},"entrance:1188":{"rank":553,"runs":[531,21,1]},"entrance:11880":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:11886":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:1189":{"rank":553,"runs":[531,21,1]},"entrance:119":{"rank":553,"runs":[531,21,1]},"entrance:1190":{"rank":553,"runs":[531,21,1]},"entrance:11901":{"rank":554,"runs":[532,20,1,1]},"entrance:1191":{"rank":553,"runs":[531,21,1]},"entrance:1192":{"rank":553,"runs":[531,21,1]},"entrance:1193":{"rank":553,"runs":[531,21,1]},"entrance:1194":{"rank":553,"runs":[531,21,1]},"entrance:1195":{"rank":553,"runs":[531,21,1]},"entrance:1196":{"rank":553,"runs":[531,21,1]},"entrance:1197":{"rank":553,"runs":[531,21,1]},"entrance:1198":{"rank":553,"runs":[531,21,1]},"entrance:1199":{"rank":553,"runs":[531,21,1]},"entrance:12":{"rank":553,"runs":[531,21,1]},"entrance:120":{"rank":553,"runs":[531,21,1]},"entrance:1200":{"rank":553,"runs":[531,21,1]},"entrance:12000":{"rank":554,"runs":[532,20,1,1]},"entrance:1201":{"rank":553,"runs":[531,21,1]},"entrance:12010":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1202":{"rank":553,"runs":[531,21,1]},"entrance:12020":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1203":{"rank":553,"runs":[531,21,1]},"entrance:12030":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1204":{"rank":553,"runs":[531,21,1]},"entrance:12040":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:1205":{"rank":553,"runs":[531,21,1]},"entrance:12050":{"rank":564,"runs":[539,7,5,4,4,2,1,1,1]},"entrance:1206":{"rank":553,"runs":[531,21,1]},"entrance:12060":{"rank":566,"runs":[539,6,6,5,5,2,1,1,1]},"entrance:1207":{"rank":553,"runs":[531,21,1]},"entrance:12070":{"rank":568,"runs":[539,8,8,5,3,2,1,1,1]},"entrance:1208":{"rank":553,"runs":[531,21,1]},"entrance:12080":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:12086":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:1209":{"rank":553,"runs":[531,21,1]},"entrance:12099":{"rank":554,"runs":[532,20,1,1]},"entrance:121":{"rank":553,"runs":[531,21,1]},"entrance:1210":{"rank":553,"runs":[531,21,1]},"entrance:1211":{"rank":553,"runs":[531,21,1]},"entrance:1212":{"rank":553,"runs":[531,21,1]},"entrance:1213":{"rank":553,"runs":[531,21,1]},"entrance:1214":{"rank":553,"runs":[531,21,1]},"entrance:1215":{"rank":553,"runs":[531,21,1]},"entrance:1216":{"rank":553,"runs":[531,21,1]},"entrance:1217":{"rank":553,"runs":[531,21,1]},"entrance:1218":{"rank":553,"runs":[531,21,1]},"entrance:1219":{"rank":553,"runs":[531,21,1]},"entrance:12199":{"rank":554,"runs":[532,20,1,1]},"entrance:122":{"rank":553,"runs":[531,21,1]},"entrance:1220":{"rank":553,"runs":[531,21,1]},"entrance:12209":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1221":{"rank":553,"runs":[531,21,1]},"entrance:12219":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1222":{"rank":553,"runs":[531,21,1]},"entrance:12229":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1223":{"rank":553,"runs":[531,21,1]},"entrance:12239":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1224":{"rank":553,"runs":[531,21,1]},"entrance:12249":{"rank":564,"runs":[541,7,7,2,2,2,1,1,1]},"entrance:1225":{"rank":553,"runs":[531,21,1]},"entrance:12259":{"rank":566,"runs":[541,7,5,4,4,2,1,1,1]},"entrance:1226":{"rank":553,"runs":[531,21,1]},"entrance:12269":{"rank":568,"runs":[541,7,6,6,3,2,1,1,1]},"entrance:1227":{"rank":553,"runs":[531,21,1]},"entrance:12279":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:1228":{"rank":553,"runs":[531,21,1]},"entrance:12283":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:1229":{"rank":553,"runs":[531,21,1]},"entrance:12299":{"rank":554,"runs":[532,20,1,1]},"entrance:123":{"rank":553,"runs":[531,21,1]},"entrance:1230":{"rank":553,"runs":[531,21,1]},"entrance:1231":{"rank":553,"runs":[531,21,1]},"entrance:1232":{"rank":553,"runs":[531,21,1]},"entrance:1233":{"rank":553,"runs":[531,21,1]},"entrance:1234":{"rank":553,"runs":[531,21,1]},"entrance:1235":{"rank":553,"runs":[531,21,1]},"entrance:1236":{"rank":553,"runs":[531,21,1]},"entrance:1237":{"rank":553,"runs":[531,21,1]},"entrance:1238":{"rank":553,"runs":[531,21,1]},"entrance:1239":{"rank":553,"runs":[531,21,1]},"entrance:124":{"rank":553,"runs":[531,21,1]},"entrance:1240":{"rank":553,"runs":[531,21,1]},"entrance:12401":{"rank":554,"runs":[532,20,1,1]},"entrance:1241":{"rank":553,"runs":[531,21,1]},"entrance:12411":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1242":{"rank":553,"runs":[531,21,1]},"entrance:12421":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1243":{"rank":553,"runs":[531,21,1]},"entrance:12431":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1244":{"rank":553,"runs":[531,21,1]},"entrance:12441":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1245":{"rank":553,"runs":[531,21,1]},"entrance:12451":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:1246":{"rank":553,"runs":[531,21,1]},"entrance:12461":{"rank":566,"runs":[543,9,5,2,2,2,1,1,1]},"entrance:1247":{"rank":553,"runs":[531,21,1]},"entrance:12471":{"rank":568,"runs":[543,9,4,4,3,2,1,1,1]},"entrance:1248":{"rank":553,"runs":[531,21,1]},"entrance:12481":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:12485":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:1249":{"rank":553,"runs":[531,21,1]},"entrance:125":{"rank":553,"runs":[531,21,1]},"entrance:1250":{"rank":553,"runs":[531,21,1]},"entrance:12503":{"rank":554,"runs":[532,20,1,1]},"entrance:1251":{"rank":553,"runs":[531,21,1]},"entrance:1252":{"rank":553,"runs":[531,21,1]},"entrance:1253":{"rank":553,"runs":[531,21,1]},"entrance:1254":{"rank":553,"runs":[531,21,1]},"entrance:1255":{"rank":553,"runs":[531,21,1]},"entrance:1256":{"rank":553,"runs":[531,21,1]},"entrance:1257":{"rank":553,"runs":[531,21,1]},"entrance:1258":{"rank":553,"runs":[531,21,1]},"entrance:1259":{"rank":553,"runs":[531,21,1]},"entrance:126":{"rank":553,"runs":[531,21,1]},"entrance:1260":{"rank":553,"runs":[531,21,1]},"entrance:12607":{"rank":554,"runs":[532,20,1,1]},"entrance:1261":{"rank":553,"runs":[531,21,1]},"entrance:12617":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1262":{"rank":553,"runs":[531,21,1]},"entrance:12627":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1263":{"rank":553,"runs":[531,21,1]},"entrance:12637":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1264":{"rank":553,"runs":[531,21,1]},"entrance:12647":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1265":{"rank":553,"runs":[531,21,1]},"entrance:12657":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:1266":{"rank":553,"runs":[531,21,1]},"entrance:12667":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:1267":{"rank":553,"runs":[531,21,1]},"entrance:12677":{"rank":568,"runs":[545,11,3,2,2,2,1,1,1]},"entrance:1268":{"rank":553,"runs":[531,21,1]},"entrance:12687":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:12689":{"rank":570,"runs":[549,12,3,2,2,1,1]},"entrance:1269":{"rank":553,"runs":[531,21,1]},"entrance:127":{"rank":553,"runs":[531,21,1]},"entrance:1270":{"rank":553,"runs":[531,21,1]},"entrance:1271":{"rank":553,"runs":[531,21,1]},"entrance:12711":{"rank":554,"runs":[532,20,1,1]},"entrance:1272":{"rank":553,"runs":[531,21,1]},"entrance:1273":{"rank":553,"runs":[531,21,1]},"entrance:1274":{"rank":553,"runs":[531,21,1]},"entrance:1275":{"rank":553,"runs":[531,21,1]},"entrance:1276":{"rank":553,"runs":[531,21,1]},"entrance:1277":{"rank":553,"runs":[531,21,1]},"entrance:1278":{"rank":553,"runs":[531,21,1]},"entrance:1279":{"rank":553,"runs":[531,21,1]},"entrance:12791":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:128":{"rank":553,"runs":[531,21,1]},"entrance:1280":{"rank":553,"runs":[531,21,1]},"entrance:12801":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1281":{"rank":553,"runs":[531,21,1]},"entrance:12817":{"rank":554,"runs":[532,20,1,1]},"entrance:1282":{"rank":553,"runs":[531,21,1]},"entrance:12827":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1283":{"rank":553,"runs":[531,21,1]},"entrance:12837":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1284":{"rank":553,"runs":[531,21,1]},"entrance:12847":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1285":{"rank":553,"runs":[531,21,1]},"entrance:12857":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1286":{"rank":553,"runs":[531,21,1]},"entrance:12867":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:1287":{"rank":553,"runs":[531,21,1]},"entrance:12877":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:1288":{"rank":553,"runs":[531,21,1]},"entrance:12887":{"rank":568,"runs":[547,13,5,1,1,1]},"entrance:1289":{"rank":553,"runs":[531,21,1]},"entrance:12897":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:12899":{"rank":570,"runs":[549,12,3,2,2,1,1]},"entrance:129":{"rank":553,"runs":[531,21,1]},"entrance:1290":{"rank":553,"runs":[531,21,1]},"entrance:12907":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1291":{"rank":553,"runs":[531,21,1]},"entrance:1292":{"rank":553,"runs":[531,21,1]},"entrance:12923":{"rank":554,"runs":[532,20,1,1]},"entrance:1293":{"rank":553,"runs":[531,21,1]},"entrance:1294":{"rank":553,"runs":[531,21,1]},"entrance:1295":{"rank":553,"runs":[531,21,1]},"entrance:1296":{"rank":553,"runs":[531,21,1]},"entrance:1297":{"rank":553,"runs":[531,21,1]},"entrance:1298":{"rank":553,"runs":[531,21,1]},"entrance:1299":{"rank":553,"runs":[531,21,1]},"entrance:13":{"rank":553,"runs":[531,21,1]},"entrance:130":{"rank":553,"runs":[531,21,1]},"entrance:1300":{"rank":553,"runs":[531,21,1]},"entrance:13003":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:1301":{"rank":553,"runs":[531,21,1]},"entrance:13013":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1302":{"rank":553,"runs":[531,21,1]},"entrance:1303":{"rank":553,"runs":[531,21,1]},"entrance:13030":{"rank":554,"runs":[532,20,1,1]},"entrance:1304":{"rank":553,"runs":[531,21,1]},"entrance:13040":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1305":{"rank":553,"runs":[531,21,1]},"entrance:13050":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1306":{"rank":553,"runs":[531,21,1]},"entrance:13060":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1307":{"rank":553,"runs":[531,21,1]},"entrance:13070":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1308":{"rank":553,"runs":[531,21,1]},"entrance:13080":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:1309":{"rank":553,"runs":[531,21,1]},"entrance:13090":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:131":{"rank":553,"runs":[531,21,1]},"entrance:1310":{"rank":553,"runs":[531,21,1]},"entrance:13100":{"rank":568,"runs":[547,13,5,1,1,1]},"entrance:1311":{"rank":553,"runs":[531,21,1]},"entrance:13110":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:1312":{"rank":553,"runs":[531,21,1]},"entrance:13120":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1313":{"rank":553,"runs":[531,21,1]},"entrance:13137":{"rank":554,"runs":[532,20,1,1]},"entrance:1314":{"rank":553,"runs":[531,21,1]},"entrance:1315":{"rank":553,"runs":[531,21,1]},"entrance:1316":{"rank":553,"runs":[531,21,1]},"entrance:1317":{"rank":553,"runs":[531,21,1]},"entrance:1318":{"rank":553,"runs":[531,21,1]},"entrance:1319":{"rank":553,"runs":[531,21,1]},"entrance:132":{"rank":553,"runs":[531,21,1]},"entrance:1320":{"rank":553,"runs":[531,21,1]},"entrance:1321":{"rank":553,"runs":[531,21,1]},"entrance:1322":{"rank":553,"runs":[531,21,1]},"entrance:13227":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1323":{"rank":553,"runs":[531,21,1]},"entrance:1324":{"rank":553,"runs":[531,21,1]},"entrance:1325":{"rank":553,"runs":[531,21,1]},"entrance:1326":{"rank":553,"runs":[531,21,1]},"entrance:1327":{"rank":553,"runs":[531,21,1]},"entrance:1328":{"rank":553,"runs":[531,21,1]},"entrance:1329":{"rank":553,"runs":[531,21,1]},"entrance:133":{"rank":553,"runs":[531,21,1]},"entrance:1330":{"rank":553,"runs":[531,21,1]},"entrance:1331":{"rank":553,"runs":[531,21,1]},"entrance:1332":{"rank":553,"runs":[531,21,1]},"entrance:13324":{"rank":571,"runs":[550,17,2,1,1]},"entrance:13325":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:13326":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:13327":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:13328":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:13329":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:1333":{"rank":553,"runs":[531,21,1]},"entrance:13330":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:13331":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:13332":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:13334":{"rank":571,"runs":[550,17,2,1,1]},"entrance:1334":{"rank":553,"runs":[531,21,1]},"entrance:1335":{"rank":553,"runs":[531,21,1]},"entrance:1336":{"rank":553,"runs":[531,21,1]},"entrance:1337":{"rank":553,"runs":[531,21,1]},"entrance:1338":{"rank":553,"runs":[531,21,1]},"entrance:1339":{"rank":553,"runs":[531,21,1]},"entrance:134":{"rank":553,"runs":[531,21,1]},"entrance:1340":{"rank":553,"runs":[531,21,1]},"entrance:1341":{"rank":553,"runs":[531,21,1]},"entrance:1342":{"rank":553,"runs":[531,21,1]},"entrance:1343":{"rank":553,"runs":[531,21,1]},"entrance:1344":{"rank":553,"runs":[531,21,1]},"entrance:1345":{"rank":553,"runs":[531,21,1]},"entrance:1346":{"rank":553,"runs":[531,21,1]},"entrance:1347":{"rank":553,"runs":[531,21,1]},"entrance:1348":{"rank":553,"runs":[531,21,1]},"entrance:1349":{"rank":553,"runs":[531,21,1]},"entrance:135":{"rank":553,"runs":[531,21,1]},"entrance:1350":{"rank":553,"runs":[531,21,1]},"entrance:1351":{"rank":553,"runs":[531,21,1]},"entrance:1352":{"rank":553,"runs":[531,21,1]},"entrance:1353":{"rank":553,"runs":[531,21,1]},"entrance:1354":{"rank":553,"runs":[531,21,1]},"entrance:1355":{"rank":553,"runs":[531,21,1]},"entrance:1356":{"rank":553,"runs":[531,21,1]},"entrance:1357":{"rank":553,"runs":[531,21,1]},"entrance:1358":{"rank":553,"runs":[531,21,1]},"entrance:1359":{"rank":553,"runs":[531,21,1]},"entrance:136":{"rank":553,"runs":[531,21,1]},"entrance:1360":{"rank":553,"runs":[531,21,1]},"entrance:1361":{"rank":553,"runs":[531,21,1]},"entrance:1362":{"rank":553,"runs":[531,21,1]},"entrance:1363":{"rank":553,"runs":[531,21,1]},"entrance:1364":{"rank":553,"runs":[531,21,1]},"entrance:1365":{"rank":553,"runs":[531,21,1]},"entrance:1366":{"rank":553,"runs":[531,21,1]},"entrance:1367":{"rank":553,"runs":[531,21,1]},"entrance:1368":{"rank":553,"runs":[531,21,1]},"entrance:1369":{"rank":553,"runs":[531,21,1]},"entrance:137":{"rank":553,"runs":[531,21,1]},"entrance:1370":{"rank":553,"runs":[531,21,1]},"entrance:1371":{"rank":553,"runs":[531,21,1]},"entrance:1372":{"rank":553,"runs":[531,21,1]},"entrance:1373":{"rank":553,"runs":[531,21,1]},"entrance:1374":{"rank":553,"runs":[531,21,1]},"entrance:1375":{"rank":553,"runs":[531,21,1]},"entrance:13756":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:1376":{"rank":553,"runs":[531,21,1]},"entrance:1377":{"rank":553,"runs":[531,21,1]},"entrance:13778":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13779":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1378":{"rank":553,"runs":[531,21,1]},"entrance:1379":{"rank":553,"runs":[531,21,1]},"entrance:13799":{"rank":554,"runs":[532,19,1,1,1]},"entrance:138":{"rank":553,"runs":[531,21,1]},"entrance:1380":{"rank":553,"runs":[531,21,1]},"entrance:13800":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1381":{"rank":553,"runs":[531,21,1]},"entrance:13817":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13818":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1382":{"rank":553,"runs":[531,21,1]},"entrance:1383":{"rank":553,"runs":[531,21,1]},"entrance:13832":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13833":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1384":{"rank":553,"runs":[531,21,1]},"entrance:13844":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13845":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1385":{"rank":553,"runs":[531,21,1]},"entrance:13853":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13854":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13855":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:13859":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1386":{"rank":553,"runs":[531,21,1]},"entrance:13860":{"rank":554,"runs":[532,19,1,1,1]},"entrance:13861":{"rank":556,"runs":[534,17,3,1,1]},"entrance:13867":{"rank":556,"runs":[534,13,4,2,1,1,1]},"entrance:13868":{"rank":556,"runs":[534,13,4,2,1,1,1]},"entrance:1387":{"rank":553,"runs":[531,21,1]},"entrance:13870":{"rank":556,"runs":[534,13,4,2,1,1,1]},"entrance:1388":{"rank":553,"runs":[531,21,1]},"entrance:1389":{"rank":553,"runs":[531,21,1]},"entrance:13899":{"rank":558,"runs":[536,11,4,4,1,1,1]},"entrance:139":{"rank":553,"runs":[531,21,1]},"entrance:1390":{"rank":553,"runs":[531,21,1]},"entrance:13901":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1391":{"rank":553,"runs":[531,21,1]},"entrance:13910":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:13914":{"rank":568,"runs":[546,14,4,1,1,1,1]},"entrance:1392":{"rank":553,"runs":[531,21,1]},"entrance:13922":{"rank":568,"runs":[542,10,3,3,3,2,1,1,1,1,1]},"entrance:13924":{"rank":566,"runs":[544,10,5,2,1,1,1,1,1]},"entrance:1393":{"rank":553,"runs":[531,21,1]},"entrance:1394":{"rank":553,"runs":[531,21,1]},"entrance:13945":{"rank":566,"runs":[540,6,4,4,3,2,2,1,1,1,1,1]},"entrance:13946":{"rank":566,"runs":[545,7,6,3,3,1,1]},"entrance:1395":{"rank":553,"runs":[531,21,1]},"entrance:13953":{"rank":566,"runs":[535,10,9,6,3,1,1,1]},"entrance:13954":{"rank":566,"runs":[536,8,8,3,2,2,2,1,1,1,1,1]},"entrance:13955":{"rank":566,"runs":[541,4,4,4,3,3,3,2,1,1]},"entrance:13957":{"rank":569,"runs":[547,14,3,1,1,1,1,1]},"entrance:13958":{"rank":569,"runs":[547,14,3,1,1,1,1,1]},"entrance:13959":{"rank":569,"runs":[545,10,3,3,3,2,1,1,1]},"entrance:1396":{"rank":553,"runs":[531,21,1]},"entrance:13960":{"rank":569,"runs":[545,10,3,3,3,2,1,1,1]},"entrance:13963":{"rank":569,"runs":[541,7,7,6,3,2,1,1,1]},"entrance:13964":{"rank":569,"runs":[537,11,11,3,2,2,1,1,1]},"entrance:13965":{"rank":569,"runs":[541,7,7,6,3,2,1,1,1]},"entrance:13966":{"rank":569,"runs":[537,11,11,3,2,2,1,1,1]},"entrance:13967":{"rank":569,"runs":[534,14,13,2,2,2,1,1]},"entrance:13968":{"rank":569,"runs":[534,14,13,2,2,2,1,1]},"entrance:1397":{"rank":553,"runs":[531,21,1]},"entrance:1398":{"rank":553,"runs":[531,21,1]},"entrance:13986":{"rank":571,"runs":[550,17,2,1,1]},"entrance:1399":{"rank":553,"runs":[531,21,1]},"entrance:13991":{"rank":571,"runs":[550,17,2,1,1]},"entrance:14":{"rank":553,"runs":[531,21,1]},"entrance:140":{"rank":553,"runs":[531,21,1]},"entrance:1400":{"rank":553,"runs":[531,21,1]},"entrance:1401":{"rank":553,"runs":[531,21,1]},"entrance:14013":{"rank":571,"runs":[549,14,2,1,1,1,1,1,1]},"entrance:14018":{"rank":571,"runs":[549,14,2,1,1,1,1,1,1]},"entrance:1402":{"rank":553,"runs":[531,21,1]},"entrance:1403":{"rank":553,"runs":[531,21,1]},"entrance:14039":{"rank":571,"runs":[547,12,3,3,2,1,1,1,1]},"entrance:1404":{"rank":553,"runs":[531,21,1]},"entrance:14044":{"rank":571,"runs":[547,12,3,3,2,1,1,1,1]},"entrance:1405":{"rank":553,"runs":[531,21,1]},"entrance:1406":{"rank":553,"runs":[531,21,1]},"entrance:14065":{"rank":571,"runs":[545,10,5,5,2,1,1,1,1]},"entrance:1407":{"rank":553,"runs":[531,21,1]},"entrance:14070":{"rank":571,"runs":[545,10,5,5,2,1,1,1,1]},"entrance:1408":{"rank":553,"runs":[531,21,1]},"entrance:1409":{"rank":553,"runs":[531,21,1]},"entrance:14093":{"rank":571,"runs":[543,8,7,7,2,1,1,1,1]},"entrance:14098":{"rank":571,"runs":[543,8,7,7,2,1,1,1,1]},"entrance:141":{"rank":553,"runs":[531,21,1]},"entrance:1410":{"rank":553,"runs":[531,21,1]},"entrance:1411":{"rank":553,"runs":[531,21,1]},"entrance:1412":{"rank":553,"runs":[531,21,1]},"entrance:14121":{"rank":571,"runs":[541,9,9,6,2,1,1,1,1]},"entrance:14126":{"rank":571,"runs":[541,9,9,6,2,1,1,1,1]},"entrance:1413":{"rank":553,"runs":[531,21,1]},"entrance:1414":{"rank":553,"runs":[531,21,1]},"entrance:1415":{"rank":553,"runs":[531,21,1]},"entrance:14150":{"rank":571,"runs":[539,11,11,4,2,1,1,1,1]},"entrance:14155":{"rank":571,"runs":[539,11,11,4,2,1,1,1,1]},"entrance:1416":{"rank":553,"runs":[531,21,1]},"entrance:1417":{"rank":553,"runs":[531,21,1]},"entrance:14179":{"rank":571,"runs":[537,13,13,2,2,1,1,1,1]},"entrance:1418":{"rank":553,"runs":[531,21,1]},"entrance:14184":{"rank":571,"runs":[537,13,13,2,2,1,1,1,1]},"entrance:1419":{"rank":553,"runs":[531,21,1]},"entrance:142":{"rank":553,"runs":[531,21,1]},"entrance:1420":{"rank":553,"runs":[531,21,1]},"entrance:14209":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:1421":{"rank":553,"runs":[531,21,1]},"entrance:14214":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:1422":{"rank":553,"runs":[531,21,1]},"entrance:1423":{"rank":553,"runs":[531,21,1]},"entrance:14239":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:1424":{"rank":553,"runs":[531,21,1]},"entrance:14244":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:14249":{"rank":570,"runs":[546,12,3,3,2,1,1,1,1]},"entrance:1425":{"rank":553,"runs":[531,21,1]},"entrance:14250":{"rank":570,"runs":[544,10,5,5,2,1,1,1,1]},"entrance:14251":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:14252":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:14253":{"rank":570,"runs":[542,8,7,7,2,1,1,1,1]},"entrance:14254":{"rank":570,"runs":[540,9,9,6,2,1,1,1,1]},"entrance:14255":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:14256":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:14257":{"rank":570,"runs":[538,11,11,4,2,1,1,1,1]},"entrance:14258":{"rank":570,"runs":[536,13,13,2,2,1,1,1,1]},"entrance:14259":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:1426":{"rank":553,"runs":[531,21,1]},"entrance:14260":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:14261":{"rank":570,"runs":[534,15,15,2,1,1,1,1]},"entrance:14262":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:14263":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:14264":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:14265":{"rank":570,"runs":[547,8,3,3,2,2,2,1,1,1]},"entrance:14266":{"rank":570,"runs":[545,6,4,4,3,3,2,1,1,1]},"entrance:14267":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:14268":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:14269":{"rank":570,"runs":[543,6,6,4,3,3,2,1,1,1]},"entrance:1427":{"rank":553,"runs":[531,21,1]},"entrance:14270":{"rank":570,"runs":[541,8,8,3,3,2,2,1,1,1]},"entrance:14271":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:14272":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:14273":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:14274":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:14275":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:14276":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:14277":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:14278":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:14279":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:1428":{"rank":553,"runs":[531,21,1]},"entrance:14280":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:14281":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:14282":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:14283":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:14284":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:14285":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:14286":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:14287":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:14288":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:1429":{"rank":553,"runs":[531,21,1]},"entrance:143":{"rank":553,"runs":[531,21,1]},"entrance:1430":{"rank":553,"runs":[531,21,1]},"entrance:1431":{"rank":553,"runs":[531,21,1]},"entrance:1432":{"rank":553,"runs":[531,21,1]},"entrance:1433":{"rank":553,"runs":[531,21,1]},"entrance:1434":{"rank":553,"runs":[531,21,1]},"entrance:1435":{"rank":553,"runs":[531,21,1]},"entrance:14355":{"rank":570,"runs":[548,14,2,1,1,1,1,1,1]},"entrance:1436":{"rank":553,"runs":[531,21,1]},"entrance:1437":{"rank":553,"runs":[531,21,1]},"entrance:1438":{"rank":553,"runs":[531,21,1]},"entrance:1439":{"rank":553,"runs":[531,21,1]},"entrance:144":{"rank":553,"runs":[531,21,1]},"entrance:1440":{"rank":553,"runs":[531,21,1]},"entrance:1441":{"rank":553,"runs":[531,21,1]},"entrance:14416":{"rank":556,"runs":[534,17,3,1,1]},"entrance:1442":{"rank":553,"runs":[531,21,1]},"entrance:14424":{"rank":554,"runs":[532,20,1,1]},"entrance:14427":{"rank":558,"runs":[536,15,5,1,1]},"entrance:1443":{"rank":553,"runs":[531,21,1]},"entrance:14438":{"rank":560,"runs":[538,13,7,1,1]},"entrance:1444":{"rank":553,"runs":[531,21,1]},"entrance:14449":{"rank":562,"runs":[540,11,9,1,1]},"entrance:1445":{"rank":553,"runs":[531,21,1]},"entrance:1446":{"rank":553,"runs":[531,21,1]},"entrance:14460":{"rank":564,"runs":[542,11,9,1,1]},"entrance:1447":{"rank":553,"runs":[531,21,1]},"entrance:14471":{"rank":566,"runs":[544,13,7,1,1]},"entrance:1448":{"rank":553,"runs":[531,21,1]},"entrance:1449":{"rank":553,"runs":[531,21,1]},"entrance:145":{"rank":553,"runs":[531,21,1]},"entrance:1450":{"rank":553,"runs":[531,21,1]},"entrance:1451":{"rank":553,"runs":[531,21,1]},"entrance:14512":{"rank":570,"runs":[548,14,2,1,1,1,1,1,1]},"entrance:1452":{"rank":553,"runs":[531,21,1]},"entrance:14527":{"rank":554,"runs":[532,20,1,1]},"entrance:1453":{"rank":553,"runs":[531,21,1]},"entrance:14537":{"rank":556,"runs":[534,18,3,1]},"entrance:1454":{"rank":553,"runs":[531,21,1]},"entrance:14547":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:1455":{"rank":553,"runs":[531,21,1]},"entrance:14557":{"rank":560,"runs":[535,10,4,3,3,3,1,1]},"entrance:1456":{"rank":553,"runs":[531,21,1]},"entrance:14567":{"rank":562,"runs":[535,8,6,5,3,3,1,1]},"entrance:1457":{"rank":553,"runs":[531,21,1]},"entrance:14577":{"rank":564,"runs":[535,8,7,6,3,3,1,1]},"entrance:1458":{"rank":553,"runs":[531,21,1]},"entrance:14587":{"rank":566,"runs":[535,10,9,4,3,3,1,1]},"entrance:1459":{"rank":553,"runs":[531,21,1]},"entrance:14597":{"rank":568,"runs":[535,12,11,3,3,2,1,1]},"entrance:146":{"rank":553,"runs":[531,21,1]},"entrance:1460":{"rank":553,"runs":[531,21,1]},"entrance:14607":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:1461":{"rank":553,"runs":[531,21,1]},"entrance:1462":{"rank":553,"runs":[531,21,1]},"entrance:14620":{"rank":556,"runs":[534,17,3,1,1]},"entrance:14628":{"rank":554,"runs":[532,20,1,1]},"entrance:1463":{"rank":553,"runs":[531,21,1]},"entrance:14631":{"rank":558,"runs":[536,15,5,1,1]},"entrance:1464":{"rank":553,"runs":[531,21,1]},"entrance:14642":{"rank":560,"runs":[538,13,7,1,1]},"entrance:1465":{"rank":553,"runs":[531,21,1]},"entrance:14653":{"rank":562,"runs":[540,11,9,1,1]},"entrance:1466":{"rank":553,"runs":[531,21,1]},"entrance:14664":{"rank":564,"runs":[542,11,9,1,1]},"entrance:1467":{"rank":553,"runs":[531,21,1]},"entrance:14675":{"rank":566,"runs":[543,11,5,2,2,1,1,1]},"entrance:1468":{"rank":553,"runs":[531,21,1]},"entrance:1469":{"rank":553,"runs":[531,21,1]},"entrance:147":{"rank":553,"runs":[531,21,1]},"entrance:1470":{"rank":553,"runs":[531,21,1]},"entrance:1471":{"rank":553,"runs":[531,21,1]},"entrance:14714":{"rank":570,"runs":[549,10,3,3,3,1,1]},"entrance:1472":{"rank":553,"runs":[531,21,1]},"entrance:14729":{"rank":554,"runs":[532,20,1,1]},"entrance:1473":{"rank":553,"runs":[531,21,1]},"entrance:14739":{"rank":556,"runs":[534,18,3,1]},"entrance:1474":{"rank":553,"runs":[531,21,1]},"entrance:14749":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1475":{"rank":553,"runs":[531,21,1]},"entrance:1476":{"rank":553,"runs":[531,21,1]},"entrance:1477":{"rank":553,"runs":[531,21,1]},"entrance:1478":{"rank":553,"runs":[531,21,1]},"entrance:1479":{"rank":553,"runs":[531,21,1]},"entrance:148":{"rank":553,"runs":[531,21,1]},"entrance:1480":{"rank":553,"runs":[531,21,1]},"entrance:14809":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:1481":{"rank":553,"runs":[531,21,1]},"entrance:1482":{"rank":553,"runs":[531,21,1]},"entrance:14820":{"rank":556,"runs":[534,17,3,1,1]},"entrance:14828":{"rank":554,"runs":[532,20,1,1]},"entrance:1483":{"rank":553,"runs":[531,21,1]},"entrance:14831":{"rank":558,"runs":[536,15,5,1,1]},"entrance:1484":{"rank":553,"runs":[531,21,1]},"entrance:14842":{"rank":560,"runs":[538,13,7,1,1]},"entrance:1485":{"rank":553,"runs":[531,21,1]},"entrance:14853":{"rank":562,"runs":[540,11,9,1,1]},"entrance:1486":{"rank":553,"runs":[531,21,1]},"entrance:14864":{"rank":564,"runs":[541,9,7,2,2,1,1,1]},"entrance:1487":{"rank":553,"runs":[531,21,1]},"entrance:14875":{"rank":566,"runs":[541,9,5,4,3,2,1,1]},"entrance:1488":{"rank":553,"runs":[531,21,1]},"entrance:1489":{"rank":553,"runs":[531,21,1]},"entrance:149":{"rank":553,"runs":[531,21,1]},"entrance:1490":{"rank":553,"runs":[531,21,1]},"entrance:1491":{"rank":553,"runs":[531,21,1]},"entrance:14914":{"rank":570,"runs":[549,10,3,3,3,1,1]},"entrance:1492":{"rank":553,"runs":[531,21,1]},"entrance:14927":{"rank":554,"runs":[532,20,1,1]},"entrance:1493":{"rank":553,"runs":[531,21,1]},"entrance:14937":{"rank":556,"runs":[534,18,3,1]},"entrance:1494":{"rank":553,"runs":[531,21,1]},"entrance:14947":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1495":{"rank":553,"runs":[531,21,1]},"entrance:14957":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:1496":{"rank":553,"runs":[531,21,1]},"entrance:1497":{"rank":553,"runs":[531,21,1]},"entrance:1498":{"rank":553,"runs":[531,21,1]},"entrance:1499":{"rank":553,"runs":[531,21,1]},"entrance:15":{"rank":553,"runs":[531,21,1]},"entrance:150":{"rank":553,"runs":[531,21,1]},"entrance:1500":{"rank":553,"runs":[531,21,1]},"entrance:15007":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:1501":{"rank":553,"runs":[531,21,1]},"entrance:15019":{"rank":556,"runs":[534,17,3,1,1]},"entrance:1502":{"rank":553,"runs":[531,21,1]},"entrance:15027":{"rank":554,"runs":[532,20,1,1]},"entrance:1503":{"rank":553,"runs":[531,21,1]},"entrance:15030":{"rank":558,"runs":[536,15,5,1,1]},"entrance:1504":{"rank":553,"runs":[531,21,1]},"entrance:15041":{"rank":560,"runs":[538,13,7,1,1]},"entrance:1505":{"rank":553,"runs":[531,21,1]},"entrance:15052":{"rank":562,"runs":[539,9,7,2,2,1,1,1]},"entrance:1506":{"rank":553,"runs":[531,21,1]},"entrance:15063":{"rank":564,"runs":[539,7,7,4,3,2,1,1]},"entrance:1507":{"rank":553,"runs":[531,21,1]},"entrance:15074":{"rank":566,"runs":[539,7,6,5,5,2,1,1]},"entrance:1508":{"rank":553,"runs":[531,21,1]},"entrance:1509":{"rank":553,"runs":[531,21,1]},"entrance:151":{"rank":553,"runs":[531,21,1]},"entrance:1510":{"rank":553,"runs":[531,21,1]},"entrance:1511":{"rank":553,"runs":[531,21,1]},"entrance:15111":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:1512":{"rank":553,"runs":[531,21,1]},"entrance:15127":{"rank":554,"runs":[532,20,1,1]},"entrance:1513":{"rank":553,"runs":[531,21,1]},"entrance:15137":{"rank":556,"runs":[534,18,3,1]},"entrance:1514":{"rank":553,"runs":[531,21,1]},"entrance:15147":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1515":{"rank":553,"runs":[531,21,1]},"entrance:15157":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:1516":{"rank":553,"runs":[531,21,1]},"entrance:15167":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:1517":{"rank":553,"runs":[531,21,1]},"entrance:1518":{"rank":553,"runs":[531,21,1]},"entrance:1519":{"rank":553,"runs":[531,21,1]},"entrance:152":{"rank":553,"runs":[531,21,1]},"entrance:1520":{"rank":553,"runs":[531,21,1]},"entrance:15207":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:1521":{"rank":553,"runs":[531,21,1]},"entrance:1522":{"rank":553,"runs":[531,21,1]},"entrance:15221":{"rank":556,"runs":[534,17,3,1,1]},"entrance:15229":{"rank":554,"runs":[532,20,1,1]},"entrance:1523":{"rank":553,"runs":[531,21,1]},"entrance:15232":{"rank":558,"runs":[536,15,5,1,1]},"entrance:1524":{"rank":553,"runs":[531,21,1]},"entrance:15243":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:1525":{"rank":553,"runs":[531,21,1]},"entrance:15254":{"rank":562,"runs":[537,9,5,4,3,2,1,1]},"entrance:1526":{"rank":553,"runs":[531,21,1]},"entrance:15265":{"rank":564,"runs":[537,7,6,5,5,2,1,1]},"entrance:1527":{"rank":553,"runs":[531,21,1]},"entrance:15276":{"rank":566,"runs":[537,8,7,5,5,2,1,1]},"entrance:1528":{"rank":553,"runs":[531,21,1]},"entrance:1529":{"rank":553,"runs":[531,21,1]},"entrance:153":{"rank":553,"runs":[531,21,1]},"entrance:1530":{"rank":553,"runs":[531,21,1]},"entrance:1531":{"rank":553,"runs":[531,21,1]},"entrance:15313":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:1532":{"rank":553,"runs":[531,21,1]},"entrance:1533":{"rank":553,"runs":[531,21,1]},"entrance:15331":{"rank":554,"runs":[532,20,1,1]},"entrance:1534":{"rank":553,"runs":[531,21,1]},"entrance:15341":{"rank":556,"runs":[534,18,3,1]},"entrance:1535":{"rank":553,"runs":[531,21,1]},"entrance:15351":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1536":{"rank":553,"runs":[531,21,1]},"entrance:15361":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:1537":{"rank":553,"runs":[531,21,1]},"entrance:15371":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:1538":{"rank":553,"runs":[531,21,1]},"entrance:15381":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:1539":{"rank":553,"runs":[531,21,1]},"entrance:154":{"rank":553,"runs":[531,21,1]},"entrance:1540":{"rank":553,"runs":[531,21,1]},"entrance:1541":{"rank":553,"runs":[531,21,1]},"entrance:15411":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:1542":{"rank":553,"runs":[531,21,1]},"entrance:15427":{"rank":556,"runs":[534,17,3,1,1]},"entrance:1543":{"rank":553,"runs":[531,21,1]},"entrance:15435":{"rank":554,"runs":[532,20,1,1]},"entrance:15438":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:1544":{"rank":553,"runs":[531,21,1]},"entrance:15449":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:1545":{"rank":553,"runs":[531,21,1]},"entrance:1546":{"rank":553,"runs":[531,21,1]},"entrance:15460":{"rank":562,"runs":[535,9,6,5,3,2,1,1]},"entrance:1547":{"rank":553,"runs":[531,21,1]},"entrance:15471":{"rank":564,"runs":[535,8,7,7,3,2,1,1]},"entrance:1548":{"rank":553,"runs":[531,21,1]},"entrance:15482":{"rank":566,"runs":[535,10,9,5,3,2,1,1]},"entrance:1549":{"rank":553,"runs":[531,21,1]},"entrance:155":{"rank":553,"runs":[531,21,1]},"entrance:1550":{"rank":553,"runs":[531,21,1]},"entrance:1551":{"rank":553,"runs":[531,21,1]},"entrance:15517":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:1552":{"rank":553,"runs":[531,21,1]},"entrance:1553":{"rank":553,"runs":[531,21,1]},"entrance:15539":{"rank":554,"runs":[532,20,1,1]},"entrance:1554":{"rank":553,"runs":[531,21,1]},"entrance:15549":{"rank":556,"runs":[534,18,3,1]},"entrance:1555":{"rank":553,"runs":[531,21,1]},"entrance:15559":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1556":{"rank":553,"runs":[531,21,1]},"entrance:15569":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:1557":{"rank":553,"runs":[531,21,1]},"entrance:15579":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:1558":{"rank":553,"runs":[531,21,1]},"entrance:15589":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:1559":{"rank":553,"runs":[531,21,1]},"entrance:15599":{"rank":566,"runs":[535,10,9,6,3,1,1,1]},"entrance:156":{"rank":553,"runs":[531,21,1]},"entrance:1560":{"rank":553,"runs":[531,21,1]},"entrance:1561":{"rank":553,"runs":[531,21,1]},"entrance:15619":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:1562":{"rank":553,"runs":[531,21,1]},"entrance:1563":{"rank":553,"runs":[531,21,1]},"entrance:15637":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:1564":{"rank":553,"runs":[531,21,1]},"entrance:15645":{"rank":554,"runs":[532,20,1,1]},"entrance:1565":{"rank":553,"runs":[531,21,1]},"entrance:1566":{"rank":553,"runs":[531,21,1]},"entrance:1567":{"rank":553,"runs":[531,21,1]},"entrance:1568":{"rank":553,"runs":[531,21,1]},"entrance:1569":{"rank":553,"runs":[531,21,1]},"entrance:157":{"rank":553,"runs":[531,21,1]},"entrance:1570":{"rank":553,"runs":[531,21,1]},"entrance:1571":{"rank":553,"runs":[531,21,1]},"entrance:1572":{"rank":553,"runs":[531,21,1]},"entrance:15727":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:1573":{"rank":553,"runs":[531,21,1]},"entrance:1574":{"rank":553,"runs":[531,21,1]},"entrance:1575":{"rank":553,"runs":[531,21,1]},"entrance:15751":{"rank":554,"runs":[532,20,1,1]},"entrance:1576":{"rank":553,"runs":[531,21,1]},"entrance:15761":{"rank":556,"runs":[534,18,3,1]},"entrance:1577":{"rank":553,"runs":[531,21,1]},"entrance:15771":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1578":{"rank":553,"runs":[531,21,1]},"entrance:15781":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:1579":{"rank":553,"runs":[531,21,1]},"entrance:15791":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:158":{"rank":553,"runs":[531,21,1]},"entrance:1580":{"rank":553,"runs":[531,21,1]},"entrance:15801":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:1581":{"rank":553,"runs":[531,21,1]},"entrance:15811":{"rank":566,"runs":[535,10,9,6,3,1,1,1]},"entrance:1582":{"rank":553,"runs":[531,21,1]},"entrance:15821":{"rank":568,"runs":[535,12,11,4,3,1,1,1]},"entrance:1583":{"rank":553,"runs":[531,21,1]},"entrance:15831":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:1584":{"rank":553,"runs":[531,21,1]},"entrance:1585":{"rank":553,"runs":[531,21,1]},"entrance:15858":{"rank":554,"runs":[532,20,1,1]},"entrance:1586":{"rank":553,"runs":[531,21,1]},"entrance:1587":{"rank":553,"runs":[531,21,1]},"entrance:1588":{"rank":553,"runs":[531,21,1]},"entrance:1589":{"rank":553,"runs":[531,21,1]},"entrance:159":{"rank":553,"runs":[531,21,1]},"entrance:1590":{"rank":553,"runs":[531,21,1]},"entrance:1591":{"rank":553,"runs":[531,21,1]},"entrance:1592":{"rank":553,"runs":[531,21,1]},"entrance:1593":{"rank":553,"runs":[531,21,1]},"entrance:15938":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:1594":{"rank":553,"runs":[531,21,1]},"entrance:1595":{"rank":553,"runs":[531,21,1]},"entrance:1596":{"rank":553,"runs":[531,21,1]},"entrance:15965":{"rank":554,"runs":[532,20,1,1]},"entrance:1597":{"rank":553,"runs":[531,21,1]},"entrance:15975":{"rank":556,"runs":[534,18,3,1]},"entrance:1598":{"rank":553,"runs":[531,21,1]},"entrance:15985":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1599":{"rank":553,"runs":[531,21,1]},"entrance:15995":{"rank":560,"runs":[535,12,4,3,3,1,1,1]},"entrance:16":{"rank":553,"runs":[531,21,1]},"entrance:160":{"rank":553,"runs":[531,21,1]},"entrance:1600":{"rank":553,"runs":[531,21,1]},"entrance:16005":{"rank":562,"runs":[535,10,6,5,3,1,1,1]},"entrance:1601":{"rank":553,"runs":[531,21,1]},"entrance:16015":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:1602":{"rank":553,"runs":[531,21,1]},"entrance:16025":{"rank":566,"runs":[535,10,9,6,3,1,1,1]},"entrance:1603":{"rank":553,"runs":[531,21,1]},"entrance:16035":{"rank":568,"runs":[535,12,11,4,3,1,1,1]},"entrance:1604":{"rank":553,"runs":[531,21,1]},"entrance:16045":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:1605":{"rank":553,"runs":[531,21,1]},"entrance:1606":{"rank":553,"runs":[531,21,1]},"entrance:16063":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1607":{"rank":553,"runs":[531,21,1]},"entrance:1608":{"rank":553,"runs":[531,21,1]},"entrance:1609":{"rank":553,"runs":[531,21,1]},"entrance:161":{"rank":553,"runs":[531,21,1]},"entrance:1610":{"rank":553,"runs":[531,21,1]},"entrance:1611":{"rank":553,"runs":[531,21,1]},"entrance:1612":{"rank":553,"runs":[531,21,1]},"entrance:1613":{"rank":553,"runs":[531,21,1]},"entrance:1614":{"rank":553,"runs":[531,21,1]},"entrance:1615":{"rank":553,"runs":[531,21,1]},"entrance:16152":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:16153":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:16154":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:16155":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:16156":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:16157":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:16158":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:16159":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:1616":{"rank":553,"runs":[531,21,1]},"entrance:16160":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:16161":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:16162":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:1617":{"rank":553,"runs":[531,21,1]},"entrance:16171":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1618":{"rank":553,"runs":[531,21,1]},"entrance:1619":{"rank":553,"runs":[531,21,1]},"entrance:162":{"rank":553,"runs":[531,21,1]},"entrance:1620":{"rank":553,"runs":[531,21,1]},"entrance:1621":{"rank":553,"runs":[531,21,1]},"entrance:1622":{"rank":553,"runs":[531,21,1]},"entrance:1623":{"rank":553,"runs":[531,21,1]},"entrance:1624":{"rank":553,"runs":[531,21,1]},"entrance:1625":{"rank":553,"runs":[531,21,1]},"entrance:1626":{"rank":553,"runs":[531,21,1]},"entrance:16260":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:16261":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:16262":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:16263":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:16264":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:16265":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:16266":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:16267":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:16268":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:16269":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:1627":{"rank":553,"runs":[531,21,1]},"entrance:16270":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:1628":{"rank":553,"runs":[531,21,1]},"entrance:1629":{"rank":553,"runs":[531,21,1]},"entrance:163":{"rank":553,"runs":[531,21,1]},"entrance:1630":{"rank":553,"runs":[531,21,1]},"entrance:1631":{"rank":553,"runs":[531,21,1]},"entrance:1632":{"rank":553,"runs":[531,21,1]},"entrance:1633":{"rank":553,"runs":[531,21,1]},"entrance:1634":{"rank":553,"runs":[531,21,1]},"entrance:1635":{"rank":553,"runs":[531,21,1]},"entrance:1636":{"rank":553,"runs":[531,21,1]},"entrance:1637":{"rank":553,"runs":[531,21,1]},"entrance:1638":{"rank":553,"runs":[531,21,1]},"entrance:1639":{"rank":553,"runs":[531,21,1]},"entrance:164":{"rank":553,"runs":[531,21,1]},"entrance:1640":{"rank":553,"runs":[531,21,1]},"entrance:1641":{"rank":553,"runs":[531,21,1]},"entrance:1642":{"rank":553,"runs":[531,21,1]},"entrance:1643":{"rank":553,"runs":[531,21,1]},"entrance:1644":{"rank":553,"runs":[531,21,1]},"entrance:1645":{"rank":553,"runs":[531,21,1]},"entrance:1646":{"rank":553,"runs":[531,21,1]},"entrance:1647":{"rank":553,"runs":[531,21,1]},"entrance:1648":{"rank":553,"runs":[531,21,1]},"entrance:1649":{"rank":553,"runs":[531,21,1]},"entrance:165":{"rank":553,"runs":[531,21,1]},"entrance:1650":{"rank":553,"runs":[531,21,1]},"entrance:1651":{"rank":553,"runs":[531,21,1]},"entrance:1652":{"rank":553,"runs":[531,21,1]},"entrance:1653":{"rank":553,"runs":[531,21,1]},"entrance:1654":{"rank":553,"runs":[531,21,1]},"entrance:1655":{"rank":553,"runs":[531,21,1]},"entrance:1656":{"rank":553,"runs":[531,21,1]},"entrance:1657":{"rank":553,"runs":[531,21,1]},"entrance:1658":{"rank":553,"runs":[531,21,1]},"entrance:1659":{"rank":553,"runs":[531,21,1]},"entrance:166":{"rank":553,"runs":[531,21,1]},"entrance:1660":{"rank":553,"runs":[531,21,1]},"entrance:1661":{"rank":553,"runs":[531,21,1]},"entrance:1662":{"rank":553,"runs":[531,21,1]},"entrance:1663":{"rank":553,"runs":[531,21,1]},"entrance:1664":{"rank":553,"runs":[531,21,1]},"entrance:1665":{"rank":553,"runs":[531,21,1]},"entrance:1666":{"rank":553,"runs":[531,21,1]},"entrance:1667":{"rank":553,"runs":[531,21,1]},"entrance:16673":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16674":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16676":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16677":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16678":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:16679":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1668":{"rank":553,"runs":[531,21,1]},"entrance:16680":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16682":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16683":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16685":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16686":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16688":{"rank":554,"runs":[532,19,1,1,1]},"entrance:16689":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1669":{"rank":553,"runs":[531,21,1]},"entrance:16699":{"rank":556,"runs":[534,14,3,2,1,1,1]},"entrance:167":{"rank":553,"runs":[531,21,1]},"entrance:1670":{"rank":553,"runs":[531,21,1]},"entrance:1671":{"rank":553,"runs":[531,21,1]},"entrance:1672":{"rank":553,"runs":[531,21,1]},"entrance:1673":{"rank":553,"runs":[531,21,1]},"entrance:1674":{"rank":553,"runs":[531,21,1]},"entrance:1675":{"rank":553,"runs":[531,21,1]},"entrance:1676":{"rank":553,"runs":[531,21,1]},"entrance:1677":{"rank":553,"runs":[531,21,1]},"entrance:1678":{"rank":553,"runs":[531,21,1]},"entrance:1679":{"rank":553,"runs":[531,21,1]},"entrance:168":{"rank":553,"runs":[531,21,1]},"entrance:1680":{"rank":553,"runs":[531,21,1]},"entrance:1681":{"rank":553,"runs":[531,21,1]},"entrance:16810":{"rank":558,"runs":[536,15,5,1,1]},"entrance:16811":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:16819":{"rank":558,"runs":[534,14,3,2,2,1,1,1]},"entrance:1682":{"rank":553,"runs":[531,21,1]},"entrance:1683":{"rank":553,"runs":[531,21,1]},"entrance:1684":{"rank":553,"runs":[531,21,1]},"entrance:16840":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:16846":{"rank":564,"runs":[535,8,7,5,4,3,1,1]},"entrance:16849":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:1685":{"rank":553,"runs":[531,21,1]},"entrance:16850":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:16855":{"rank":568,"runs":[546,15,5,1,1]},"entrance:1686":{"rank":553,"runs":[531,21,1]},"entrance:16860":{"rank":566,"runs":[545,8,7,4,1,1]},"entrance:16861":{"rank":568,"runs":[536,8,8,4,3,3,2,1,1,1,1]},"entrance:16862":{"rank":564,"runs":[540,8,8,3,2,1,1,1]},"entrance:16863":{"rank":566,"runs":[545,8,7,4,1,1]},"entrance:1687":{"rank":553,"runs":[531,21,1]},"entrance:1688":{"rank":553,"runs":[531,21,1]},"entrance:16880":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:16881":{"rank":566,"runs":[541,4,4,4,4,4,3,1,1]},"entrance:16882":{"rank":566,"runs":[545,7,4,4,4,1,1]},"entrance:16889":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:1689":{"rank":553,"runs":[531,21,1]},"entrance:16890":{"rank":566,"runs":[537,8,8,4,4,3,1,1]},"entrance:16891":{"rank":566,"runs":[541,4,4,4,4,4,3,1,1]},"entrance:16893":{"rank":569,"runs":[536,12,12,3,3,1,1,1]},"entrance:16894":{"rank":569,"runs":[536,12,12,3,3,1,1,1]},"entrance:16895":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"entrance:16896":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"entrance:16899":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"entrance:169":{"rank":553,"runs":[531,21,1]},"entrance:1690":{"rank":553,"runs":[531,21,1]},"entrance:16900":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:16901":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"entrance:16902":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:16903":{"rank":569,"runs":[548,15,4,1,1]},"entrance:16904":{"rank":569,"runs":[548,15,4,1,1]},"entrance:1691":{"rank":553,"runs":[531,21,1]},"entrance:1692":{"rank":553,"runs":[531,21,1]},"entrance:16922":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"entrance:16927":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"entrance:1693":{"rank":553,"runs":[531,21,1]},"entrance:1694":{"rank":553,"runs":[531,21,1]},"entrance:16949":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"entrance:1695":{"rank":553,"runs":[531,21,1]},"entrance:16954":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"entrance:1696":{"rank":553,"runs":[531,21,1]},"entrance:1697":{"rank":553,"runs":[531,21,1]},"entrance:16975":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"entrance:1698":{"rank":553,"runs":[531,21,1]},"entrance:16980":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"entrance:1699":{"rank":553,"runs":[531,21,1]},"entrance:17":{"rank":553,"runs":[531,21,1]},"entrance:170":{"rank":553,"runs":[531,21,1]},"entrance:1700":{"rank":553,"runs":[531,21,1]},"entrance:17001":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"entrance:17006":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"entrance:1701":{"rank":553,"runs":[531,21,1]},"entrance:17011":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:1702":{"rank":553,"runs":[531,21,1]},"entrance:17029":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"entrance:1703":{"rank":553,"runs":[531,21,1]},"entrance:17034":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"entrance:17039":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:1704":{"rank":553,"runs":[531,21,1]},"entrance:1705":{"rank":553,"runs":[531,21,1]},"entrance:17057":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"entrance:1706":{"rank":553,"runs":[531,21,1]},"entrance:17062":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"entrance:17067":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:1707":{"rank":553,"runs":[531,21,1]},"entrance:1708":{"rank":553,"runs":[531,21,1]},"entrance:17086":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"entrance:1709":{"rank":553,"runs":[531,21,1]},"entrance:17091":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"entrance:17096":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:171":{"rank":553,"runs":[531,21,1]},"entrance:1710":{"rank":553,"runs":[531,21,1]},"entrance:1711":{"rank":553,"runs":[531,21,1]},"entrance:17115":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:1712":{"rank":553,"runs":[531,21,1]},"entrance:17120":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:17125":{"rank":558,"runs":[536,12,4,3,1,1,1]},"entrance:1713":{"rank":553,"runs":[531,21,1]},"entrance:1714":{"rank":553,"runs":[531,21,1]},"entrance:17145":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:1715":{"rank":553,"runs":[531,21,1]},"entrance:17150":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:17155":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:1716":{"rank":553,"runs":[531,21,1]},"entrance:1717":{"rank":553,"runs":[531,21,1]},"entrance:17175":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:1718":{"rank":553,"runs":[531,21,1]},"entrance:17180":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:17185":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:17186":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:17187":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:17188":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:17189":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:1719":{"rank":553,"runs":[531,21,1]},"entrance:17190":{"rank":570,"runs":[541,8,8,4,4,2,1,1,1]},"entrance:17191":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:17192":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:17193":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:17194":{"rank":570,"runs":[537,12,12,4,2,1,1,1]},"entrance:17195":{"rank":570,"runs":[541,8,8,4,2,2,2,1,1,1]},"entrance:17196":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:17197":{"rank":570,"runs":[534,14,14,1,1,1,1,1,1,1,1]},"entrance:17198":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:17199":{"rank":570,"runs":[536,12,12,2,1,1,1,1,1,1,1,1]},"entrance:172":{"rank":553,"runs":[531,21,1]},"entrance:1720":{"rank":553,"runs":[531,21,1]},"entrance:17200":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:17201":{"rank":570,"runs":[547,6,4,4,2,2,2,1,1,1]},"entrance:17202":{"rank":570,"runs":[545,4,4,4,4,4,2,1,1,1]},"entrance:17203":{"rank":570,"runs":[549,6,6,4,3,1,1]},"entrance:17204":{"rank":570,"runs":[547,6,4,4,2,2,2,1,1,1]},"entrance:17205":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:17206":{"rank":570,"runs":[541,8,8,4,4,2,1,1,1]},"entrance:17207":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:17208":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:17209":{"rank":570,"runs":[538,10,10,4,1,1,1,1,1,1,1,1]},"entrance:1721":{"rank":553,"runs":[531,21,1]},"entrance:17210":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:17211":{"rank":570,"runs":[540,8,8,6,1,1,1,1,1,1,1,1]},"entrance:17212":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:17213":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:17214":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:17215":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:17216":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:17217":{"rank":570,"runs":[542,8,6,6,1,1,1,1,1,1,1,1]},"entrance:17218":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:17219":{"rank":570,"runs":[544,10,4,4,1,1,1,1,1,1,1,1]},"entrance:1722":{"rank":553,"runs":[531,21,1]},"entrance:17220":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:17221":{"rank":570,"runs":[546,12,2,2,1,1,1,1,1,1,1,1]},"entrance:17222":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:17223":{"rank":570,"runs":[548,14,2,1,1,1,1,1,1]},"entrance:17224":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:1723":{"rank":553,"runs":[531,21,1]},"entrance:1724":{"rank":553,"runs":[531,21,1]},"entrance:17240":{"rank":554,"runs":[532,20,1,1]},"entrance:1725":{"rank":553,"runs":[531,21,1]},"entrance:17250":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:1726":{"rank":553,"runs":[531,21,1]},"entrance:1727":{"rank":553,"runs":[531,21,1]},"entrance:1728":{"rank":553,"runs":[531,21,1]},"entrance:1729":{"rank":553,"runs":[531,21,1]},"entrance:173":{"rank":553,"runs":[531,21,1]},"entrance:1730":{"rank":553,"runs":[531,21,1]},"entrance:1731":{"rank":553,"runs":[531,21,1]},"entrance:1732":{"rank":553,"runs":[531,21,1]},"entrance:17320":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:17328":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:1733":{"rank":553,"runs":[531,21,1]},"entrance:1734":{"rank":553,"runs":[531,21,1]},"entrance:17345":{"rank":554,"runs":[532,20,1,1]},"entrance:1735":{"rank":553,"runs":[531,21,1]},"entrance:1736":{"rank":553,"runs":[531,21,1]},"entrance:1737":{"rank":553,"runs":[531,21,1]},"entrance:1738":{"rank":553,"runs":[531,21,1]},"entrance:1739":{"rank":553,"runs":[531,21,1]},"entrance:174":{"rank":553,"runs":[531,21,1]},"entrance:1740":{"rank":553,"runs":[531,21,1]},"entrance:1741":{"rank":553,"runs":[531,21,1]},"entrance:1742":{"rank":553,"runs":[531,21,1]},"entrance:1743":{"rank":553,"runs":[531,21,1]},"entrance:1744":{"rank":553,"runs":[531,21,1]},"entrance:17448":{"rank":554,"runs":[532,20,1,1]},"entrance:1745":{"rank":553,"runs":[531,21,1]},"entrance:17458":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1746":{"rank":553,"runs":[531,21,1]},"entrance:17468":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:1747":{"rank":553,"runs":[531,21,1]},"entrance:17478":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:1748":{"rank":553,"runs":[531,21,1]},"entrance:17488":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:1749":{"rank":553,"runs":[531,21,1]},"entrance:17498":{"rank":564,"runs":[535,8,8,7,2,1,1,1,1]},"entrance:175":{"rank":553,"runs":[531,21,1]},"entrance:1750":{"rank":553,"runs":[531,21,1]},"entrance:17508":{"rank":566,"runs":[535,10,10,5,2,1,1,1,1]},"entrance:1751":{"rank":553,"runs":[531,21,1]},"entrance:17518":{"rank":568,"runs":[535,12,12,3,2,1,1,1,1]},"entrance:1752":{"rank":553,"runs":[531,21,1]},"entrance:17528":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:1753":{"rank":553,"runs":[531,21,1]},"entrance:17536":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:1754":{"rank":553,"runs":[531,21,1]},"entrance:1755":{"rank":553,"runs":[531,21,1]},"entrance:17551":{"rank":554,"runs":[532,20,1,1]},"entrance:1756":{"rank":553,"runs":[531,21,1]},"entrance:1757":{"rank":553,"runs":[531,21,1]},"entrance:1758":{"rank":553,"runs":[531,21,1]},"entrance:1759":{"rank":553,"runs":[531,21,1]},"entrance:176":{"rank":553,"runs":[531,21,1]},"entrance:1760":{"rank":553,"runs":[531,21,1]},"entrance:1761":{"rank":553,"runs":[531,21,1]},"entrance:1762":{"rank":553,"runs":[531,21,1]},"entrance:1763":{"rank":553,"runs":[531,21,1]},"entrance:17631":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:1764":{"rank":553,"runs":[531,21,1]},"entrance:1765":{"rank":553,"runs":[531,21,1]},"entrance:17652":{"rank":554,"runs":[532,20,1,1]},"entrance:1766":{"rank":553,"runs":[531,21,1]},"entrance:17662":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:1767":{"rank":553,"runs":[531,21,1]},"entrance:17672":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:1768":{"rank":553,"runs":[531,21,1]},"entrance:17682":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:1769":{"rank":553,"runs":[531,21,1]},"entrance:17692":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:177":{"rank":553,"runs":[531,21,1]},"entrance:1770":{"rank":553,"runs":[531,21,1]},"entrance:17702":{"rank":564,"runs":[537,7,6,6,3,2,1,1,1]},"entrance:17712":{"rank":566,"runs":[537,8,8,5,3,2,1,1,1]},"entrance:17722":{"rank":568,"runs":[537,10,10,3,3,2,1,1,1]},"entrance:17732":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:17738":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:17753":{"rank":554,"runs":[532,20,1,1]},"entrance:1779":{"rank":554,"runs":[532,19,1,1,1]},"entrance:178":{"rank":553,"runs":[531,21,1]},"entrance:1780":{"rank":554,"runs":[533,19,1,1]},"entrance:17852":{"rank":554,"runs":[532,20,1,1]},"entrance:17862":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:17872":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:17882":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:1789":{"rank":554,"runs":[532,19,1,1,1]},"entrance:17892":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:179":{"rank":553,"runs":[531,21,1]},"entrance:1790":{"rank":554,"runs":[533,19,1,1]},"entrance:17902":{"rank":564,"runs":[539,7,5,4,4,2,1,1,1]},"entrance:17912":{"rank":566,"runs":[539,6,6,5,5,2,1,1,1]},"entrance:17922":{"rank":568,"runs":[539,8,8,5,3,2,1,1,1]},"entrance:17932":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:17938":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:17951":{"rank":554,"runs":[532,20,1,1]},"entrance:18":{"rank":553,"runs":[531,21,1]},"entrance:180":{"rank":553,"runs":[531,21,1]},"entrance:18051":{"rank":554,"runs":[532,20,1,1]},"entrance:18061":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:18071":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:18081":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:18091":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:181":{"rank":553,"runs":[531,21,1]},"entrance:18101":{"rank":564,"runs":[541,7,7,2,2,2,1,1,1]},"entrance:18111":{"rank":566,"runs":[541,7,5,4,4,2,1,1,1]},"entrance:1812":{"rank":554,"runs":[532,19,1,1,1]},"entrance:18121":{"rank":568,"runs":[541,7,6,6,3,2,1,1,1]},"entrance:1813":{"rank":554,"runs":[532,19,1,1,1]},"entrance:18131":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:18135":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:1815":{"rank":554,"runs":[533,19,1,1]},"entrance:18151":{"rank":554,"runs":[532,20,1,1]},"entrance:1816":{"rank":554,"runs":[533,19,1,1]},"entrance:1817":{"rank":556,"runs":[533,15,2,2,2,1,1]},"entrance:182":{"rank":553,"runs":[531,21,1]},"entrance:18253":{"rank":554,"runs":[532,20,1,1]},"entrance:18263":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:18273":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:18283":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:18293":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:183":{"rank":553,"runs":[531,21,1]},"entrance:18303":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:18313":{"rank":566,"runs":[543,9,5,2,2,2,1,1,1]},"entrance:18323":{"rank":568,"runs":[543,9,4,4,3,2,1,1,1]},"entrance:18333":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:18337":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:18355":{"rank":554,"runs":[532,20,1,1]},"entrance:1836":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1837":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1839":{"rank":554,"runs":[533,19,1,1]},"entrance:184":{"rank":553,"runs":[531,21,1]},"entrance:1840":{"rank":554,"runs":[533,19,1,1]},"entrance:18459":{"rank":554,"runs":[532,20,1,1]},"entrance:18469":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:18479":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:18489":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:18499":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:185":{"rank":553,"runs":[531,21,1]},"entrance:18509":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:18519":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:18529":{"rank":568,"runs":[545,11,3,2,2,2,1,1,1]},"entrance:18539":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:18541":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:18563":{"rank":554,"runs":[532,20,1,1]},"entrance:1857":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1858":{"rank":554,"runs":[532,19,1,1,1]},"entrance:186":{"rank":553,"runs":[531,21,1]},"entrance:1860":{"rank":554,"runs":[533,19,1,1]},"entrance:1861":{"rank":554,"runs":[533,19,1,1]},"entrance:18653":{"rank":554,"runs":[532,19,1,1,1]},"entrance:18669":{"rank":554,"runs":[532,20,1,1]},"entrance:18679":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:18689":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:18699":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:187":{"rank":553,"runs":[531,21,1]},"entrance:18709":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:18719":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:18729":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:18739":{"rank":568,"runs":[547,13,5,1,1,1]},"entrance:18749":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:1875":{"rank":554,"runs":[532,19,1,1,1]},"entrance:18751":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:18759":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1876":{"rank":554,"runs":[532,19,1,1,1]},"entrance:18775":{"rank":554,"runs":[532,20,1,1]},"entrance:1878":{"rank":554,"runs":[533,19,1,1]},"entrance:1879":{"rank":554,"runs":[533,19,1,1]},"entrance:188":{"rank":553,"runs":[531,21,1]},"entrance:189":{"rank":553,"runs":[531,21,1]},"entrance:1890":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1891":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1893":{"rank":554,"runs":[533,19,1,1]},"entrance:1894":{"rank":554,"runs":[533,19,1,1]},"entrance:18987":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19":{"rank":553,"runs":[531,21,1]},"entrance:190":{"rank":553,"runs":[531,21,1]},"entrance:1902":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1903":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1905":{"rank":554,"runs":[533,19,1,1]},"entrance:1906":{"rank":554,"runs":[533,19,1,1]},"entrance:19084":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:19085":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:19086":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:19087":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:19088":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:19089":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:19090":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:19091":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:19092":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:19093":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:19094":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:191":{"rank":553,"runs":[531,21,1]},"entrance:1911":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1912":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1914":{"rank":554,"runs":[533,19,1,1]},"entrance:1915":{"rank":554,"runs":[533,19,1,1]},"entrance:1917":{"rank":554,"runs":[532,19,1,1,1]},"entrance:1918":{"rank":554,"runs":[532,19,1,1,1]},"entrance:192":{"rank":553,"runs":[531,21,1]},"entrance:1920":{"rank":554,"runs":[533,19,1,1]},"entrance:1921":{"rank":554,"runs":[533,19,1,1]},"entrance:1922":{"rank":556,"runs":[533,16,2,2,1,1,1]},"entrance:1923":{"rank":554,"runs":[533,19,1,1]},"entrance:1924":{"rank":554,"runs":[533,19,1,1]},"entrance:1925":{"rank":556,"runs":[535,17,2,1,1]},"entrance:193":{"rank":553,"runs":[531,21,1]},"entrance:1930":{"rank":556,"runs":[535,17,2,1,1]},"entrance:1935":{"rank":556,"runs":[535,17,2,1,1]},"entrance:194":{"rank":553,"runs":[531,21,1]},"entrance:195":{"rank":553,"runs":[531,21,1]},"entrance:19514":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:19551":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19552":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19569":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19570":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19584":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19585":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19596":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19597":{"rank":554,"runs":[532,19,1,1,1]},"entrance:196":{"rank":553,"runs":[531,21,1]},"entrance:19605":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19606":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19607":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:19611":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19612":{"rank":554,"runs":[532,19,1,1,1]},"entrance:19613":{"rank":556,"runs":[534,17,3,1,1]},"entrance:19619":{"rank":556,"runs":[534,11,6,2,1,1,1]},"entrance:19620":{"rank":556,"runs":[534,11,6,2,1,1,1]},"entrance:19622":{"rank":556,"runs":[534,11,6,2,1,1,1]},"entrance:19651":{"rank":558,"runs":[536,9,6,4,1,1,1]},"entrance:19653":{"rank":558,"runs":[536,16,5,1]},"entrance:19662":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:19663":{"rank":566,"runs":[537,8,7,5,5,2,1,1]},"entrance:19666":{"rank":568,"runs":[546,15,6,1]},"entrance:19674":{"rank":568,"runs":[542,10,4,3,3,1,1,1,1,1,1]},"entrance:19676":{"rank":566,"runs":[544,10,4,3,1,1,1,1,1]},"entrance:19696":{"rank":566,"runs":[537,5,4,4,4,4,3,2,1,1,1]},"entrance:19697":{"rank":566,"runs":[540,6,5,5,4,3,1,1,1]},"entrance:19698":{"rank":566,"runs":[545,7,6,5,1,1,1]},"entrance:197":{"rank":553,"runs":[531,21,1]},"entrance:19705":{"rank":566,"runs":[537,8,7,6,5,1,1,1]},"entrance:19706":{"rank":566,"runs":[536,9,9,4,3,2,1,1,1]},"entrance:19707":{"rank":566,"runs":[541,5,4,4,4,3,2,1,1,1]},"entrance:19709":{"rank":569,"runs":[548,15,4,1,1]},"entrance:19710":{"rank":569,"runs":[548,15,4,1,1]},"entrance:19711":{"rank":569,"runs":[547,10,4,3,1,1,1,1,1]},"entrance:19712":{"rank":569,"runs":[547,10,4,3,1,1,1,1,1]},"entrance:19715":{"rank":569,"runs":[543,6,5,5,4,3,1,1,1]},"entrance:19716":{"rank":569,"runs":[539,9,9,4,3,2,1,1,1]},"entrance:19717":{"rank":569,"runs":[543,6,5,5,4,3,1,1,1]},"entrance:19718":{"rank":569,"runs":[539,9,9,4,3,2,1,1,1]},"entrance:19719":{"rank":569,"runs":[536,12,11,4,2,2,1,1]},"entrance:19720":{"rank":569,"runs":[536,12,11,4,2,2,1,1]},"entrance:19738":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:19743":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:19765":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:19770":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:1979":{"rank":568,"runs":[547,14,5,1,1]},"entrance:19791":{"rank":571,"runs":[549,12,4,1,1,1,1,1,1]},"entrance:19796":{"rank":571,"runs":[549,12,4,1,1,1,1,1,1]},"entrance:198":{"rank":553,"runs":[531,21,1]},"entrance:19817":{"rank":571,"runs":[547,10,4,3,3,1,1,1,1]},"entrance:19822":{"rank":571,"runs":[547,10,4,3,3,1,1,1,1]},"entrance:19845":{"rank":571,"runs":[545,8,5,5,4,1,1,1,1]},"entrance:19850":{"rank":571,"runs":[545,8,5,5,4,1,1,1,1]},"entrance:1987":{"rank":568,"runs":[543,10,4,4,3,2,1,1]},"entrance:19873":{"rank":571,"runs":[543,7,7,6,4,1,1,1,1]},"entrance:19878":{"rank":571,"runs":[543,7,7,6,4,1,1,1,1]},"entrance:1988":{"rank":564,"runs":[535,8,8,7,2,2,1,1]},"entrance:1989":{"rank":566,"runs":[545,10,7,2,1,1]},"entrance:199":{"rank":553,"runs":[531,21,1]},"entrance:19902":{"rank":571,"runs":[541,9,9,4,4,1,1,1,1]},"entrance:19907":{"rank":571,"runs":[541,9,9,4,4,1,1,1,1]},"entrance:19931":{"rank":571,"runs":[539,11,11,4,2,1,1,1,1]},"entrance:19936":{"rank":571,"runs":[539,11,11,4,2,1,1,1,1]},"entrance:19961":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:19966":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:19991":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:19996":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:2":{"rank":553,"runs":[531,21,1]},"entrance:20":{"rank":553,"runs":[531,21,1]},"entrance:200":{"rank":553,"runs":[531,21,1]},"entrance:20001":{"rank":570,"runs":[546,12,2,2,1,1,1,1,1,1,1,1]},"entrance:20002":{"rank":570,"runs":[544,10,3,3,2,2,1,1,1,1,1,1]},"entrance:20003":{"rank":570,"runs":[548,12,3,2,1,1,1,1,1]},"entrance:20004":{"rank":570,"runs":[546,10,3,3,3,2,1,1,1]},"entrance:20005":{"rank":570,"runs":[542,8,5,5,2,2,1,1,1,1,1,1]},"entrance:20006":{"rank":570,"runs":[540,7,7,6,2,2,1,1,1,1,1,1]},"entrance:20007":{"rank":570,"runs":[544,8,5,5,3,2,1,1,1]},"entrance:20008":{"rank":570,"runs":[542,7,7,6,3,2,1,1,1]},"entrance:20009":{"rank":570,"runs":[538,9,9,4,2,2,1,1,1,1,1,1]},"entrance:20010":{"rank":570,"runs":[536,11,11,2,2,2,1,1,1,1,1,1]},"entrance:20011":{"rank":570,"runs":[540,9,9,4,3,2,1,1,1]},"entrance:20012":{"rank":570,"runs":[538,11,11,3,2,2,1,1,1]},"entrance:20014":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:20015":{"rank":570,"runs":[536,13,13,3,2,1,1,1]},"entrance:20016":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:20017":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:20018":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:20019":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:20020":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:20021":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:20022":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:20023":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:20024":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:20025":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:20026":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:20027":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:20028":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:20029":{"rank":570,"runs":[547,5,5,4,2,2,2,1,1,1]},"entrance:20030":{"rank":570,"runs":[545,5,5,4,4,2,2,1,1,1]},"entrance:20031":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:20032":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:20033":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:20034":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:20035":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:20036":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:20037":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:20038":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:20039":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:20040":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:201":{"rank":553,"runs":[531,21,1]},"entrance:20107":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:2015":{"rank":566,"runs":[541,6,4,4,4,3,2,1,1]},"entrance:202":{"rank":553,"runs":[531,21,1]},"entrance:20229":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:2024":{"rank":566,"runs":[537,8,8,4,3,2,2,1,1]},"entrance:2027":{"rank":569,"runs":[547,14,3,1,1,1,1,1]},"entrance:2028":{"rank":569,"runs":[548,14,4,1,1,1]},"entrance:20288":{"rank":556,"runs":[534,17,3,1,1]},"entrance:2029":{"rank":569,"runs":[543,10,5,5,3,1,1,1]},"entrance:20296":{"rank":554,"runs":[532,20,1,1]},"entrance:20299":{"rank":558,"runs":[536,15,5,1,1]},"entrance:203":{"rank":553,"runs":[531,21,1]},"entrance:2030":{"rank":569,"runs":[544,10,4,4,3,1,1,1,1]},"entrance:20310":{"rank":560,"runs":[538,13,7,1,1]},"entrance:20321":{"rank":562,"runs":[540,11,9,1,1]},"entrance:2033":{"rank":569,"runs":[539,9,9,6,3,1,1,1]},"entrance:20332":{"rank":564,"runs":[542,11,9,1,1]},"entrance:2034":{"rank":569,"runs":[535,13,13,3,2,1,1,1]},"entrance:20343":{"rank":566,"runs":[543,11,4,3,2,1,1,1]},"entrance:2035":{"rank":569,"runs":[540,8,8,6,3,1,1,1,1]},"entrance:2036":{"rank":569,"runs":[536,12,12,3,2,1,1,1,1]},"entrance:20382":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:20397":{"rank":554,"runs":[532,20,1,1]},"entrance:204":{"rank":553,"runs":[531,21,1]},"entrance:20407":{"rank":556,"runs":[534,18,3,1]},"entrance:20417":{"rank":558,"runs":[536,16,5,1]},"entrance:20427":{"rank":560,"runs":[537,10,5,3,2,1,1,1]},"entrance:20437":{"rank":562,"runs":[537,8,5,4,3,3,1,1]},"entrance:20447":{"rank":564,"runs":[537,6,6,5,5,3,1,1]},"entrance:20457":{"rank":566,"runs":[537,8,7,5,4,3,1,1]},"entrance:20467":{"rank":568,"runs":[537,10,9,5,3,2,1,1]},"entrance:20477":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:20488":{"rank":556,"runs":[534,17,3,1,1]},"entrance:20496":{"rank":554,"runs":[532,20,1,1]},"entrance:20499":{"rank":558,"runs":[536,15,5,1,1]},"entrance:205":{"rank":553,"runs":[531,21,1]},"entrance:20510":{"rank":560,"runs":[538,13,7,1,1]},"entrance:20521":{"rank":562,"runs":[540,11,9,1,1]},"entrance:20532":{"rank":564,"runs":[541,9,7,2,2,1,1,1]},"entrance:20543":{"rank":566,"runs":[541,9,3,2,2,2,2,2,1,1,1]},"entrance:2056":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:20582":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:20595":{"rank":554,"runs":[532,20,1,1]},"entrance:206":{"rank":553,"runs":[531,21,1]},"entrance:20605":{"rank":556,"runs":[534,18,3,1]},"entrance:2061":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:20615":{"rank":558,"runs":[536,16,5,1]},"entrance:20625":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:20635":{"rank":562,"runs":[537,8,5,2,2,2,2,1,1,1,1]},"entrance:20645":{"rank":564,"runs":[537,6,5,4,3,2,2,2,1,1,1]},"entrance:20655":{"rank":566,"runs":[537,6,5,5,4,2,2,2,1,1,1]},"entrance:20665":{"rank":568,"runs":[537,8,7,5,2,2,2,2,1,1,1]},"entrance:20675":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:20687":{"rank":556,"runs":[534,17,3,1,1]},"entrance:20695":{"rank":554,"runs":[532,20,1,1]},"entrance:20698":{"rank":558,"runs":[536,15,5,1,1]},"entrance:207":{"rank":553,"runs":[531,21,1]},"entrance:20709":{"rank":560,"runs":[538,13,7,1,1]},"entrance:20720":{"rank":562,"runs":[539,9,7,2,2,1,1,1]},"entrance:20731":{"rank":564,"runs":[539,7,7,4,3,2,1,1]},"entrance:20742":{"rank":566,"runs":[539,7,4,4,3,2,2,2,1,1,1]},"entrance:20779":{"rank":570,"runs":[549,6,5,5,3,1,1]},"entrance:20795":{"rank":554,"runs":[532,20,1,1]},"entrance:208":{"rank":553,"runs":[531,21,1]},"entrance:20805":{"rank":556,"runs":[534,18,3,1]},"entrance:20815":{"rank":558,"runs":[536,16,5,1]},"entrance:20825":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:2083":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:20835":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:20845":{"rank":564,"runs":[537,6,5,4,4,2,2,1,1,1,1]},"entrance:20855":{"rank":566,"runs":[537,5,4,4,4,4,3,2,1,1,1]},"entrance:20865":{"rank":568,"runs":[537,6,5,5,4,4,2,2,1,1,1]},"entrance:20875":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:2088":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"entrance:20889":{"rank":556,"runs":[534,17,3,1,1]},"entrance:20897":{"rank":554,"runs":[532,20,1,1]},"entrance:209":{"rank":553,"runs":[531,21,1]},"entrance:20900":{"rank":558,"runs":[536,15,5,1,1]},"entrance:20911":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:20922":{"rank":562,"runs":[537,9,5,4,3,2,1,1]},"entrance:20933":{"rank":564,"runs":[537,7,6,5,5,2,1,1]},"entrance:20944":{"rank":566,"runs":[537,6,6,5,3,2,2,2,1,1,1]},"entrance:20981":{"rank":570,"runs":[549,6,5,5,3,1,1]},"entrance:20999":{"rank":554,"runs":[532,20,1,1]},"entrance:21":{"rank":553,"runs":[531,21,1]},"entrance:210":{"rank":553,"runs":[531,21,1]},"entrance:21009":{"rank":556,"runs":[534,18,3,1]},"entrance:21019":{"rank":558,"runs":[536,16,5,1]},"entrance:21029":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:21039":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:21049":{"rank":564,"runs":[537,8,6,5,5,1,1,1]},"entrance:21059":{"rank":566,"runs":[537,6,6,5,4,2,2,1,1,1,1]},"entrance:21069":{"rank":568,"runs":[537,6,6,5,4,3,2,2,1,1,1]},"entrance:21079":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:2109":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:21095":{"rank":556,"runs":[534,17,3,1,1]},"entrance:211":{"rank":553,"runs":[531,21,1]},"entrance:21103":{"rank":554,"runs":[532,20,1,1]},"entrance:21106":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:21117":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:21128":{"rank":562,"runs":[535,9,6,5,3,2,1,1]},"entrance:21139":{"rank":564,"runs":[535,8,7,7,3,2,1,1]},"entrance:2114":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"entrance:21185":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:212":{"rank":553,"runs":[531,21,1]},"entrance:21207":{"rank":554,"runs":[532,20,1,1]},"entrance:21217":{"rank":556,"runs":[534,18,3,1]},"entrance:21227":{"rank":558,"runs":[536,16,5,1]},"entrance:21237":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:21247":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:21257":{"rank":564,"runs":[537,8,6,5,5,1,1,1]},"entrance:21267":{"rank":566,"runs":[537,8,7,6,5,1,1,1]},"entrance:21277":{"rank":568,"runs":[537,8,8,5,2,2,2,1,1,1,1]},"entrance:21287":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:213":{"rank":553,"runs":[531,21,1]},"entrance:21305":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:21313":{"rank":554,"runs":[532,20,1,1]},"entrance:2135":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:21395":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:214":{"rank":553,"runs":[531,21,1]},"entrance:2140":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"entrance:21419":{"rank":554,"runs":[532,20,1,1]},"entrance:21429":{"rank":556,"runs":[534,18,3,1]},"entrance:21439":{"rank":558,"runs":[536,16,5,1]},"entrance:21449":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:21459":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:21469":{"rank":564,"runs":[537,8,6,5,5,1,1,1]},"entrance:21479":{"rank":566,"runs":[537,8,7,6,5,1,1,1]},"entrance:21489":{"rank":568,"runs":[537,10,9,5,4,1,1,1]},"entrance:21499":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:215":{"rank":553,"runs":[531,21,1]},"entrance:21526":{"rank":554,"runs":[532,20,1,1]},"entrance:216":{"rank":553,"runs":[531,21,1]},"entrance:21606":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:2163":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:21633":{"rank":554,"runs":[532,20,1,1]},"entrance:21643":{"rank":556,"runs":[534,18,3,1]},"entrance:21653":{"rank":558,"runs":[536,16,5,1]},"entrance:21663":{"rank":560,"runs":[537,12,5,2,1,1,1,1]},"entrance:21673":{"rank":562,"runs":[537,10,5,4,3,1,1,1]},"entrance:2168":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"entrance:21683":{"rank":564,"runs":[537,8,6,5,5,1,1,1]},"entrance:21693":{"rank":566,"runs":[537,8,7,6,5,1,1,1]},"entrance:217":{"rank":553,"runs":[531,21,1]},"entrance:21703":{"rank":568,"runs":[537,10,9,5,4,1,1,1]},"entrance:21713":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:21731":{"rank":554,"runs":[532,19,1,1,1]},"entrance:218":{"rank":553,"runs":[531,21,1]},"entrance:21820":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:21821":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:21822":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:21823":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:21824":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:21825":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:21826":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:21827":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:21828":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:21829":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:21830":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:21839":{"rank":554,"runs":[532,19,1,1,1]},"entrance:219":{"rank":553,"runs":[531,21,1]},"entrance:2191":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:21928":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:21929":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:21930":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:21931":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:21932":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:21933":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:21934":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:21935":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:21936":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:21937":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:21938":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:2196":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"entrance:22":{"rank":553,"runs":[531,21,1]},"entrance:220":{"rank":553,"runs":[531,21,1]},"entrance:221":{"rank":553,"runs":[531,21,1]},"entrance:222":{"rank":553,"runs":[531,21,1]},"entrance:2220":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:2225":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"entrance:223":{"rank":553,"runs":[531,21,1]},"entrance:22341":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22342":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22344":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22345":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22346":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:22347":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22348":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22350":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22351":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22353":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22354":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22356":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22357":{"rank":554,"runs":[532,19,1,1,1]},"entrance:22367":{"rank":556,"runs":[534,12,5,2,1,1,1]},"entrance:224":{"rank":553,"runs":[531,21,1]},"entrance:22476":{"rank":558,"runs":[536,15,5,1,1]},"entrance:22477":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:2249":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:225":{"rank":553,"runs":[531,21,1]},"entrance:22506":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:22515":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:22516":{"rank":566,"runs":[537,6,6,4,3,2,2,2,1,1,1,1]},"entrance:22521":{"rank":568,"runs":[545,13,3,2,2,1,1,1]},"entrance:22526":{"rank":566,"runs":[544,8,6,3,1,1,1,1,1]},"entrance:22527":{"rank":568,"runs":[536,6,6,5,4,4,3,1,1,1,1]},"entrance:22528":{"rank":564,"runs":[540,8,6,2,2,1,1,1,1,1,1]},"entrance:22529":{"rank":566,"runs":[545,7,6,6,1,1]},"entrance:2254":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"entrance:22546":{"rank":566,"runs":[541,7,4,2,2,2,2,2,1,1,1,1]},"entrance:22547":{"rank":566,"runs":[541,6,4,4,4,3,2,1,1]},"entrance:22548":{"rank":566,"runs":[545,7,6,4,2,1,1]},"entrance:22555":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:22556":{"rank":566,"runs":[536,8,8,3,3,3,1,1,1,1,1]},"entrance:22557":{"rank":566,"runs":[540,4,4,4,3,3,3,1,1,1,1,1]},"entrance:22559":{"rank":569,"runs":[538,10,10,5,3,1,1,1]},"entrance:22560":{"rank":569,"runs":[538,10,10,5,3,1,1,1]},"entrance:22561":{"rank":569,"runs":[542,6,6,5,4,3,1,1,1]},"entrance:22562":{"rank":569,"runs":[542,6,6,5,4,3,1,1,1]},"entrance:22565":{"rank":569,"runs":[546,8,5,3,2,2,1,1,1]},"entrance:22566":{"rank":569,"runs":[547,12,2,2,2,1,1,1,1]},"entrance:22567":{"rank":569,"runs":[546,8,5,3,2,2,1,1,1]},"entrance:22568":{"rank":569,"runs":[547,12,2,2,2,1,1,1,1]},"entrance:22569":{"rank":569,"runs":[546,13,2,2,2,2,1,1]},"entrance:22570":{"rank":569,"runs":[546,13,2,2,2,2,1,1]},"entrance:22588":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"entrance:22593":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"entrance:226":{"rank":553,"runs":[531,21,1]},"entrance:22615":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"entrance:22620":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"entrance:22641":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"entrance:22646":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"entrance:22667":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"entrance:22672":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"entrance:22677":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:22695":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"entrance:227":{"rank":553,"runs":[531,21,1]},"entrance:22700":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"entrance:22705":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:22723":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"entrance:22728":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"entrance:22733":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:22752":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:22757":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:22762":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:22781":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:22786":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:2279":{"rank":571,"runs":[533,17,17,1,1,1,1]},"entrance:22791":{"rank":558,"runs":[536,10,5,4,1,1,1]},"entrance:228":{"rank":553,"runs":[531,21,1]},"entrance:22811":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:22816":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:22821":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:2284":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"entrance:22841":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:22846":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:22851":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:22852":{"rank":570,"runs":[545,6,6,4,4,2,1,1,1]},"entrance:22853":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:22854":{"rank":570,"runs":[547,6,6,2,2,2,2,1,1,1]},"entrance:22855":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:22856":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:22857":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:22858":{"rank":570,"runs":[543,6,6,6,2,2,2,1,1,1]},"entrance:22859":{"rank":570,"runs":[539,10,10,6,2,1,1,1]},"entrance:22860":{"rank":570,"runs":[536,12,12,3,1,1,1,1,1,1,1]},"entrance:22861":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:22862":{"rank":570,"runs":[538,10,10,3,2,1,1,1,1,1,1,1]},"entrance:22864":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:22865":{"rank":570,"runs":[536,10,10,3,3,2,1,1,1,1,1,1]},"entrance:22866":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:22867":{"rank":570,"runs":[547,6,4,4,2,2,2,1,1,1]},"entrance:22868":{"rank":570,"runs":[545,6,4,4,4,2,2,1,1,1]},"entrance:22869":{"rank":570,"runs":[549,6,6,4,3,1,1]},"entrance:22870":{"rank":570,"runs":[547,6,6,2,2,2,2,1,1,1]},"entrance:22871":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:22872":{"rank":570,"runs":[540,8,8,4,3,1,1,1,1,1,1,1]},"entrance:22873":{"rank":570,"runs":[545,6,6,4,4,2,1,1,1]},"entrance:22874":{"rank":570,"runs":[542,6,6,6,3,1,1,1,1,1,1,1]},"entrance:22875":{"rank":570,"runs":[538,8,8,4,3,3,1,1,1,1,1,1]},"entrance:22876":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:22877":{"rank":570,"runs":[540,6,6,6,3,3,1,1,1,1,1,1]},"entrance:22878":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:22879":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:22880":{"rank":570,"runs":[544,8,4,4,3,1,1,1,1,1,1,1]},"entrance:22881":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:22882":{"rank":570,"runs":[546,10,3,2,2,1,1,1,1,1,1,1]},"entrance:22883":{"rank":570,"runs":[542,8,4,4,3,3,1,1,1,1,1,1]},"entrance:22884":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:22885":{"rank":570,"runs":[544,10,3,3,2,2,1,1,1,1,1,1]},"entrance:22886":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:22887":{"rank":570,"runs":[546,12,3,3,2,1,1,1,1]},"entrance:22888":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:22889":{"rank":570,"runs":[549,14,3,1,1,1,1]},"entrance:22890":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:229":{"rank":553,"runs":[531,21,1]},"entrance:22906":{"rank":554,"runs":[532,20,1,1]},"entrance:22916":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:22986":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:22994":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:23":{"rank":553,"runs":[531,21,1]},"entrance:230":{"rank":553,"runs":[531,21,1]},"entrance:23011":{"rank":554,"runs":[532,20,1,1]},"entrance:2309":{"rank":571,"runs":[549,18,2,1,1]},"entrance:231":{"rank":553,"runs":[531,21,1]},"entrance:23114":{"rank":554,"runs":[532,20,1,1]},"entrance:23124":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:23134":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:2314":{"rank":571,"runs":[549,17,1,1,1,1,1]},"entrance:23144":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:23154":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:23164":{"rank":564,"runs":[535,8,8,7,2,1,1,1,1]},"entrance:23174":{"rank":566,"runs":[535,10,10,5,2,1,1,1,1]},"entrance:2319":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:23194":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:232":{"rank":553,"runs":[531,21,1]},"entrance:2320":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:23202":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:2321":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:23217":{"rank":554,"runs":[532,20,1,1]},"entrance:2322":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:2323":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:2324":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:2325":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:2326":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:2327":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:2328":{"rank":570,"runs":[537,12,12,2,2,2,1,1,1]},"entrance:2329":{"rank":570,"runs":[541,8,8,4,4,2,1,1,1]},"entrance:23297":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:233":{"rank":553,"runs":[531,21,1]},"entrance:2330":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:2331":{"rank":570,"runs":[535,14,14,2,2,1,1,1]},"entrance:23318":{"rank":554,"runs":[532,20,1,1]},"entrance:2332":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:23328":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:2333":{"rank":570,"runs":[537,12,12,4,2,1,1,1]},"entrance:23338":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:2334":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:23348":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:2335":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:23358":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:2336":{"rank":570,"runs":[545,6,6,4,4,2,1,1,1]},"entrance:23368":{"rank":564,"runs":[537,7,6,6,3,2,1,1,1]},"entrance:2337":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:23378":{"rank":566,"runs":[537,8,8,5,3,2,1,1,1]},"entrance:2338":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:23388":{"rank":568,"runs":[537,8,8,3,2,2,2,2,1,1,1,1]},"entrance:2339":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:23398":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:234":{"rank":553,"runs":[531,21,1]},"entrance:2340":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:23404":{"rank":570,"runs":[549,6,6,4,3,1,1]},"entrance:2341":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:23419":{"rank":554,"runs":[532,20,1,1]},"entrance:2342":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:2343":{"rank":570,"runs":[539,10,10,6,2,1,1,1]},"entrance:2344":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:2345":{"rank":570,"runs":[541,8,8,8,2,1,1,1]},"entrance:2346":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:2347":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:2348":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:2349":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:23499":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:235":{"rank":553,"runs":[531,21,1]},"entrance:2350":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:2351":{"rank":570,"runs":[543,10,6,6,2,1,1,1]},"entrance:23518":{"rank":554,"runs":[532,20,1,1]},"entrance:2352":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:23528":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:2353":{"rank":570,"runs":[545,12,4,4,2,1,1,1]},"entrance:23538":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:2354":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:23548":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:2355":{"rank":570,"runs":[547,14,2,2,2,1,1,1]},"entrance:23558":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:2356":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:23568":{"rank":564,"runs":[539,7,5,4,4,2,1,1,1]},"entrance:2357":{"rank":570,"runs":[549,16,3,1,1]},"entrance:23578":{"rank":566,"runs":[539,6,6,5,5,2,1,1,1]},"entrance:2358":{"rank":570,"runs":[533,16,15,2,1,1,1,1]},"entrance:23588":{"rank":568,"runs":[539,6,6,5,2,2,2,2,1,1,1,1]},"entrance:23598":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:236":{"rank":553,"runs":[531,21,1]},"entrance:23604":{"rank":570,"runs":[549,6,6,4,3,1,1]},"entrance:23617":{"rank":554,"runs":[532,20,1,1]},"entrance:2366":{"rank":556,"runs":[534,17,3,1,1]},"entrance:237":{"rank":553,"runs":[531,21,1]},"entrance:23717":{"rank":554,"runs":[532,20,1,1]},"entrance:23727":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:23737":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:23747":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:23757":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:23767":{"rank":564,"runs":[541,7,7,2,2,2,1,1,1]},"entrance:23777":{"rank":566,"runs":[541,7,5,4,4,2,1,1,1]},"entrance:23787":{"rank":568,"runs":[541,7,4,4,2,2,2,2,1,1,1,1]},"entrance:23797":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:238":{"rank":553,"runs":[531,21,1]},"entrance:23801":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:23817":{"rank":554,"runs":[532,20,1,1]},"entrance:2388":{"rank":560,"runs":[538,13,7,1,1]},"entrance:239":{"rank":553,"runs":[531,21,1]},"entrance:23919":{"rank":554,"runs":[532,20,1,1]},"entrance:23929":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:23939":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:23949":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:23959":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:23969":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:23979":{"rank":566,"runs":[543,9,5,2,2,2,1,1,1]},"entrance:23989":{"rank":568,"runs":[543,9,2,2,2,2,2,2,1,1,1,1]},"entrance:23999":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:24":{"rank":553,"runs":[531,21,1]},"entrance:240":{"rank":553,"runs":[531,21,1]},"entrance:24003":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:24021":{"rank":554,"runs":[532,20,1,1]},"entrance:241":{"rank":553,"runs":[531,21,1]},"entrance:24125":{"rank":554,"runs":[532,20,1,1]},"entrance:24135":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:24145":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:24155":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:24165":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:24175":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:24185":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:24195":{"rank":568,"runs":[545,11,4,2,2,1,1,1,1]},"entrance:242":{"rank":553,"runs":[531,21,1]},"entrance:24205":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:24207":{"rank":570,"runs":[548,12,3,2,1,1,1,1,1]},"entrance:24229":{"rank":554,"runs":[532,20,1,1]},"entrance:243":{"rank":553,"runs":[531,21,1]},"entrance:2432":{"rank":568,"runs":[546,15,5,1,1]},"entrance:24365":{"rank":570,"runs":[548,12,3,2,1,1,1,1,1]},"entrance:244":{"rank":553,"runs":[531,21,1]},"entrance:245":{"rank":553,"runs":[531,21,1]},"entrance:24563":{"rank":554,"runs":[532,19,1,1,1]},"entrance:246":{"rank":553,"runs":[531,21,1]},"entrance:2462":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:24660":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:24661":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:24662":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:24663":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:24664":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:24665":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:24666":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:24667":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:24668":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:24669":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:24670":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:247":{"rank":553,"runs":[531,21,1]},"entrance:248":{"rank":553,"runs":[531,21,1]},"entrance:249":{"rank":553,"runs":[531,21,1]},"entrance:25":{"rank":553,"runs":[531,21,1]},"entrance:250":{"rank":553,"runs":[531,21,1]},"entrance:25088":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:251":{"rank":553,"runs":[531,21,1]},"entrance:25133":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25134":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25148":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25149":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25160":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25161":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25169":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25170":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25171":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:25175":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25176":{"rank":554,"runs":[532,19,1,1,1]},"entrance:25177":{"rank":556,"runs":[534,17,3,1,1]},"entrance:25183":{"rank":556,"runs":[534,9,8,2,1,1,1]},"entrance:25184":{"rank":556,"runs":[534,9,8,2,1,1,1]},"entrance:25186":{"rank":556,"runs":[534,9,8,2,1,1,1]},"entrance:252":{"rank":553,"runs":[531,21,1]},"entrance:25215":{"rank":558,"runs":[536,8,7,4,1,1,1]},"entrance:25217":{"rank":558,"runs":[536,16,5,1]},"entrance:25226":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:25227":{"rank":566,"runs":[537,8,7,5,5,2,1,1]},"entrance:25230":{"rank":568,"runs":[546,13,5,2,1,1]},"entrance:25238":{"rank":568,"runs":[542,10,4,3,3,1,1,1,1,1,1]},"entrance:25240":{"rank":566,"runs":[544,10,6,1,1,1,1,1,1]},"entrance:25260":{"rank":566,"runs":[539,7,4,4,3,2,2,2,1,1,1]},"entrance:25261":{"rank":566,"runs":[540,6,3,3,3,3,2,2,1,1,1,1]},"entrance:25262":{"rank":566,"runs":[544,6,5,5,2,1,1,1,1]},"entrance:25269":{"rank":566,"runs":[539,7,6,6,5,1,1,1]},"entrance:25270":{"rank":566,"runs":[536,7,7,3,3,2,2,2,1,1,1,1]},"entrance:25271":{"rank":566,"runs":[540,5,4,4,3,2,2,2,1,1,1,1]},"entrance:25273":{"rank":569,"runs":[548,13,4,2,1,1]},"entrance:25274":{"rank":569,"runs":[548,13,4,2,1,1]},"entrance:25275":{"rank":569,"runs":[547,10,4,3,1,1,1,1,1]},"entrance:25276":{"rank":569,"runs":[547,10,4,3,1,1,1,1,1]},"entrance:25279":{"rank":569,"runs":[545,6,6,3,3,3,1,1,1]},"entrance:25280":{"rank":569,"runs":[541,7,7,6,3,2,1,1,1]},"entrance:25281":{"rank":569,"runs":[545,6,6,3,3,3,1,1,1]},"entrance:25282":{"rank":569,"runs":[541,7,7,6,3,2,1,1,1]},"entrance:25283":{"rank":569,"runs":[538,10,9,6,2,2,1,1]},"entrance:25284":{"rank":569,"runs":[538,10,9,6,2,2,1,1]},"entrance:253":{"rank":553,"runs":[531,21,1]},"entrance:25302":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:25307":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:25329":{"rank":571,"runs":[550,13,2,2,2,1,1]},"entrance:25334":{"rank":571,"runs":[550,13,2,2,2,1,1]},"entrance:25355":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:25360":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:25381":{"rank":571,"runs":[549,10,6,1,1,1,1,1,1]},"entrance:25386":{"rank":571,"runs":[549,10,6,1,1,1,1,1,1]},"entrance:254":{"rank":553,"runs":[531,21,1]},"entrance:25409":{"rank":571,"runs":[547,8,6,3,3,1,1,1,1]},"entrance:25414":{"rank":571,"runs":[547,8,6,3,3,1,1,1,1]},"entrance:25437":{"rank":571,"runs":[545,6,6,5,5,1,1,1,1]},"entrance:25442":{"rank":571,"runs":[545,6,6,5,5,1,1,1,1]},"entrance:25466":{"rank":571,"runs":[543,7,7,6,4,1,1,1,1]},"entrance:25471":{"rank":571,"runs":[543,7,7,6,4,1,1,1,1]},"entrance:25495":{"rank":571,"runs":[541,9,9,6,2,1,1,1,1]},"entrance:255":{"rank":553,"runs":[531,21,1]},"entrance:25500":{"rank":571,"runs":[541,9,9,6,2,1,1,1,1]},"entrance:25525":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:25530":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:25555":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:25560":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:25565":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:25566":{"rank":570,"runs":[544,10,4,4,1,1,1,1,1,1,1,1]},"entrance:25567":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:25568":{"rank":570,"runs":[546,10,3,2,2,1,1,1,1,1,1,1]},"entrance:25569":{"rank":570,"runs":[542,8,4,4,3,3,1,1,1,1,1,1]},"entrance:25570":{"rank":570,"runs":[540,6,5,5,4,4,1,1,1,1,1,1]},"entrance:25571":{"rank":570,"runs":[544,8,3,3,3,2,2,1,1,1,1,1]},"entrance:25572":{"rank":570,"runs":[542,6,5,5,3,2,2,1,1,1,1,1]},"entrance:25573":{"rank":570,"runs":[538,7,7,4,4,4,1,1,1,1,1,1]},"entrance:25574":{"rank":570,"runs":[536,9,9,4,4,2,1,1,1,1,1,1]},"entrance:25575":{"rank":570,"runs":[540,7,7,4,3,2,2,1,1,1,1,1]},"entrance:25576":{"rank":570,"runs":[538,9,9,3,2,2,2,1,1,1,1,1]},"entrance:25578":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:25579":{"rank":570,"runs":[536,11,11,3,2,2,1,1,1,1,1]},"entrance:25580":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:25581":{"rank":570,"runs":[546,8,5,3,3,2,1,1,1]},"entrance:25582":{"rank":570,"runs":[544,6,5,5,5,2,1,1,1]},"entrance:25583":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:25584":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:25585":{"rank":570,"runs":[542,7,7,5,4,2,1,1,1]},"entrance:25586":{"rank":570,"runs":[540,9,9,5,2,2,1,1,1]},"entrance:25587":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:25588":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:25589":{"rank":570,"runs":[538,11,11,5,2,1,1,1]},"entrance:25590":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:25591":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:25592":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:25593":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:25594":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:25595":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:25596":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:25597":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:25598":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:25599":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:256":{"rank":553,"runs":[531,21,1]},"entrance:25600":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:25601":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:25602":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:25603":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:25604":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:25671":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:257":{"rank":553,"runs":[531,21,1]},"entrance:2574":{"rank":556,"runs":[534,17,3,1,1]},"entrance:25793":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:258":{"rank":553,"runs":[531,21,1]},"entrance:259":{"rank":553,"runs":[531,21,1]},"entrance:25913":{"rank":570,"runs":[548,10,5,2,1,1,1,1,1]},"entrance:2596":{"rank":560,"runs":[538,13,7,1,1]},"entrance:25972":{"rank":556,"runs":[534,17,3,1,1]},"entrance:25980":{"rank":554,"runs":[532,20,1,1]},"entrance:25983":{"rank":558,"runs":[536,15,5,1,1]},"entrance:25994":{"rank":560,"runs":[538,13,7,1,1]},"entrance:26":{"rank":553,"runs":[531,21,1]},"entrance:260":{"rank":553,"runs":[531,21,1]},"entrance:26005":{"rank":562,"runs":[540,11,9,1,1]},"entrance:26016":{"rank":564,"runs":[541,9,5,4,2,1,1,1]},"entrance:26027":{"rank":566,"runs":[541,9,4,4,3,3,1,1]},"entrance:26066":{"rank":570,"runs":[548,10,5,2,1,1,1,1,1]},"entrance:26079":{"rank":554,"runs":[532,20,1,1]},"entrance:26089":{"rank":556,"runs":[534,18,3,1]},"entrance:26099":{"rank":558,"runs":[536,16,5,1]},"entrance:261":{"rank":553,"runs":[531,21,1]},"entrance:26109":{"rank":560,"runs":[538,14,7,1]},"entrance:26119":{"rank":562,"runs":[539,8,7,3,2,1,1,1]},"entrance:26129":{"rank":564,"runs":[539,7,6,4,3,3,1,1]},"entrance:26139":{"rank":566,"runs":[539,7,6,5,4,3,1,1]},"entrance:26149":{"rank":568,"runs":[539,8,7,7,3,2,1,1]},"entrance:26159":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:26171":{"rank":556,"runs":[534,17,3,1,1]},"entrance:26179":{"rank":554,"runs":[532,20,1,1]},"entrance:26182":{"rank":558,"runs":[536,15,5,1,1]},"entrance:26193":{"rank":560,"runs":[538,13,7,1,1]},"entrance:262":{"rank":553,"runs":[531,21,1]},"entrance:26204":{"rank":562,"runs":[539,9,7,2,2,1,1,1]},"entrance:26215":{"rank":564,"runs":[539,7,5,2,2,2,2,2,1,1,1]},"entrance:26226":{"rank":566,"runs":[539,7,4,3,3,2,2,2,2,1,1]},"entrance:26263":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:26279":{"rank":554,"runs":[532,20,1,1]},"entrance:26289":{"rank":556,"runs":[534,18,3,1]},"entrance:26299":{"rank":558,"runs":[536,16,5,1]},"entrance:263":{"rank":553,"runs":[531,21,1]},"entrance:26309":{"rank":560,"runs":[538,14,7,1]},"entrance:26319":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:26329":{"rank":564,"runs":[539,7,6,2,2,2,2,1,1,1,1]},"entrance:26339":{"rank":566,"runs":[539,7,4,4,3,2,2,2,1,1,1]},"entrance:26349":{"rank":568,"runs":[539,7,6,5,2,2,2,2,1,1,1]},"entrance:26359":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:26373":{"rank":556,"runs":[534,17,3,1,1]},"entrance:26381":{"rank":554,"runs":[532,20,1,1]},"entrance:26384":{"rank":558,"runs":[536,15,5,1,1]},"entrance:26395":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:264":{"rank":553,"runs":[531,21,1]},"entrance:2640":{"rank":568,"runs":[545,13,3,2,2,1,1,1]},"entrance:26406":{"rank":562,"runs":[537,9,5,4,3,2,1,1]},"entrance:26417":{"rank":564,"runs":[537,5,5,4,4,2,2,2,1,1,1]},"entrance:26428":{"rank":566,"runs":[537,5,4,4,4,3,3,2,2,1,1]},"entrance:26465":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:26483":{"rank":554,"runs":[532,20,1,1]},"entrance:26493":{"rank":556,"runs":[534,18,3,1]},"entrance:265":{"rank":553,"runs":[531,21,1]},"entrance:26503":{"rank":558,"runs":[536,16,5,1]},"entrance:26513":{"rank":560,"runs":[538,14,7,1]},"entrance:26523":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:26533":{"rank":564,"runs":[539,8,7,4,3,1,1,1]},"entrance:26543":{"rank":566,"runs":[539,7,4,4,4,2,2,1,1,1,1]},"entrance:26553":{"rank":568,"runs":[539,7,4,4,4,3,2,2,1,1,1]},"entrance:26563":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:26579":{"rank":556,"runs":[534,17,3,1,1]},"entrance:26587":{"rank":554,"runs":[532,20,1,1]},"entrance:26590":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:266":{"rank":553,"runs":[531,21,1]},"entrance:26601":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:26612":{"rank":562,"runs":[535,9,6,5,3,2,1,1]},"entrance:26669":{"rank":570,"runs":[549,7,7,3,2,1,1]},"entrance:26691":{"rank":554,"runs":[532,20,1,1]},"entrance:267":{"rank":553,"runs":[531,21,1]},"entrance:2670":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:26701":{"rank":556,"runs":[534,18,3,1]},"entrance:26711":{"rank":558,"runs":[536,16,5,1]},"entrance:26721":{"rank":560,"runs":[538,14,7,1]},"entrance:26731":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:26741":{"rank":564,"runs":[539,8,7,4,3,1,1,1]},"entrance:26751":{"rank":566,"runs":[539,7,6,6,5,1,1,1]},"entrance:26761":{"rank":568,"runs":[539,7,6,6,2,2,2,1,1,1,1]},"entrance:26771":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:26789":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:26797":{"rank":554,"runs":[532,20,1,1]},"entrance:268":{"rank":553,"runs":[531,21,1]},"entrance:26879":{"rank":570,"runs":[549,7,7,3,2,1,1]},"entrance:269":{"rank":553,"runs":[531,21,1]},"entrance:26903":{"rank":554,"runs":[532,20,1,1]},"entrance:26913":{"rank":556,"runs":[534,18,3,1]},"entrance:26923":{"rank":558,"runs":[536,16,5,1]},"entrance:26933":{"rank":560,"runs":[538,14,7,1]},"entrance:26943":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:26953":{"rank":564,"runs":[539,8,7,4,3,1,1,1]},"entrance:26963":{"rank":566,"runs":[539,7,6,6,5,1,1,1]},"entrance:26973":{"rank":568,"runs":[539,8,7,7,4,1,1,1]},"entrance:26983":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:27":{"rank":553,"runs":[531,21,1]},"entrance:270":{"rank":553,"runs":[531,21,1]},"entrance:27010":{"rank":554,"runs":[532,20,1,1]},"entrance:27090":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:271":{"rank":553,"runs":[531,21,1]},"entrance:27117":{"rank":554,"runs":[532,20,1,1]},"entrance:27127":{"rank":556,"runs":[534,18,3,1]},"entrance:27137":{"rank":558,"runs":[536,16,5,1]},"entrance:27147":{"rank":560,"runs":[538,14,7,1]},"entrance:27157":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:27167":{"rank":564,"runs":[539,8,7,4,3,1,1,1]},"entrance:27177":{"rank":566,"runs":[539,7,6,6,5,1,1,1]},"entrance:27187":{"rank":568,"runs":[539,8,7,7,4,1,1,1]},"entrance:27197":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:272":{"rank":553,"runs":[531,21,1]},"entrance:27215":{"rank":554,"runs":[532,19,1,1,1]},"entrance:273":{"rank":553,"runs":[531,21,1]},"entrance:27304":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:27305":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:27306":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:27307":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:27308":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:27309":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:27310":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:27311":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:27312":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:27313":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:27314":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:27323":{"rank":554,"runs":[532,19,1,1,1]},"entrance:274":{"rank":553,"runs":[531,21,1]},"entrance:27412":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:27413":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:27414":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:27415":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:27416":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:27417":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:27418":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:27419":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:27420":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:27421":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:27422":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:275":{"rank":553,"runs":[531,21,1]},"entrance:276":{"rank":553,"runs":[531,21,1]},"entrance:277":{"rank":553,"runs":[531,21,1]},"entrance:2778":{"rank":556,"runs":[534,17,3,1,1]},"entrance:278":{"rank":553,"runs":[531,21,1]},"entrance:27825":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27826":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27828":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27829":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27831":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27832":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27834":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27835":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27837":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27838":{"rank":554,"runs":[532,19,1,1,1]},"entrance:27849":{"rank":556,"runs":[534,10,7,2,1,1,1]},"entrance:279":{"rank":553,"runs":[531,21,1]},"entrance:27954":{"rank":558,"runs":[536,15,5,1,1]},"entrance:27955":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:27984":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:27993":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:27994":{"rank":566,"runs":[537,4,4,4,4,4,3,2,1,1,1,1]},"entrance:27999":{"rank":568,"runs":[543,11,4,3,3,2,1,1]},"entrance:28":{"rank":553,"runs":[531,21,1]},"entrance:280":{"rank":553,"runs":[531,21,1]},"entrance:2800":{"rank":560,"runs":[538,13,7,1,1]},"entrance:28004":{"rank":566,"runs":[544,8,4,3,3,1,1,1,1]},"entrance:28005":{"rank":568,"runs":[536,7,6,4,4,4,3,1,1,1,1]},"entrance:28006":{"rank":564,"runs":[540,8,4,4,2,1,1,1,1,1,1]},"entrance:28007":{"rank":566,"runs":[545,8,7,4,1,1]},"entrance:28024":{"rank":566,"runs":[541,7,6,4,4,1,1,1,1]},"entrance:28025":{"rank":566,"runs":[541,8,4,4,4,3,1,1]},"entrance:28026":{"rank":566,"runs":[545,8,7,4,1,1]},"entrance:28033":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:28034":{"rank":566,"runs":[536,8,8,3,3,3,1,1,1,1,1]},"entrance:28035":{"rank":566,"runs":[540,4,4,4,3,3,3,1,1,1,1,1]},"entrance:28037":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"entrance:28038":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"entrance:28039":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"entrance:28040":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"entrance:28043":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:28044":{"rank":569,"runs":[548,12,4,2,1,1,1]},"entrance:28045":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:28046":{"rank":569,"runs":[548,12,4,2,1,1,1]},"entrance:28047":{"rank":569,"runs":[544,11,4,4,2,2,1,1]},"entrance:28048":{"rank":569,"runs":[544,11,4,4,2,2,1,1]},"entrance:28066":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"entrance:28071":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"entrance:28093":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"entrance:28098":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"entrance:281":{"rank":553,"runs":[531,21,1]},"entrance:28119":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"entrance:28124":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"entrance:28145":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"entrance:28150":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"entrance:28155":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:28173":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"entrance:28178":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"entrance:28183":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:282":{"rank":553,"runs":[531,21,1]},"entrance:28201":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:28206":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:28211":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:28230":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:28235":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:28240":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:28259":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:28264":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:28269":{"rank":558,"runs":[536,8,7,4,1,1,1]},"entrance:28289":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:28294":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:28299":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:283":{"rank":553,"runs":[531,21,1]},"entrance:28319":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:28324":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:28329":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:28330":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:28331":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:28332":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:28333":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:28334":{"rank":570,"runs":[541,8,8,8,2,1,1,1]},"entrance:28335":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:28336":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:28337":{"rank":570,"runs":[538,10,10,5,1,1,1,1,1,1,1]},"entrance:28338":{"rank":570,"runs":[536,10,10,3,3,3,1,1,1,1,1]},"entrance:28339":{"rank":570,"runs":[540,8,8,5,2,1,1,1,1,1,1,1]},"entrance:28340":{"rank":570,"runs":[538,8,8,3,3,3,2,1,1,1,1,1]},"entrance:28343":{"rank":570,"runs":[536,8,8,5,5,2,1,1,1,1,1,1]},"entrance:28344":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:28345":{"rank":570,"runs":[547,8,4,2,2,2,2,1,1,1]},"entrance:28346":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:28347":{"rank":570,"runs":[549,8,6,3,2,1,1]},"entrance:28348":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:28349":{"rank":570,"runs":[542,6,6,5,4,1,1,1,1,1,1,1]},"entrance:28350":{"rank":570,"runs":[540,6,6,4,3,3,3,1,1,1,1,1]},"entrance:28351":{"rank":570,"runs":[544,6,5,4,4,1,1,1,1,1,1,1]},"entrance:28352":{"rank":570,"runs":[542,6,4,4,3,3,3,1,1,1,1,1]},"entrance:28353":{"rank":570,"runs":[538,6,6,5,5,4,1,1,1,1,1,1]},"entrance:28354":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:28355":{"rank":570,"runs":[540,6,5,5,4,4,1,1,1,1,1,1]},"entrance:28356":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:28357":{"rank":570,"runs":[546,8,5,2,2,1,1,1,1,1,1,1]},"entrance:28358":{"rank":570,"runs":[544,8,3,3,3,2,2,1,1,1,1,1]},"entrance:28359":{"rank":570,"runs":[548,10,5,2,1,1,1,1,1]},"entrance:28360":{"rank":570,"runs":[546,10,3,3,3,2,1,1,1]},"entrance:28361":{"rank":570,"runs":[542,8,5,5,2,2,1,1,1,1,1,1]},"entrance:28362":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:28363":{"rank":570,"runs":[544,10,5,5,2,1,1,1,1]},"entrance:28364":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:28365":{"rank":570,"runs":[547,12,2,2,2,1,1,1,1,1]},"entrance:28366":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:28367":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:28368":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:28384":{"rank":554,"runs":[532,20,1,1]},"entrance:28394":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:284":{"rank":553,"runs":[531,21,1]},"entrance:2844":{"rank":568,"runs":[543,11,4,3,3,2,1,1]},"entrance:28464":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:28472":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:28489":{"rank":554,"runs":[532,20,1,1]},"entrance:285":{"rank":553,"runs":[531,21,1]},"entrance:28592":{"rank":554,"runs":[532,20,1,1]},"entrance:286":{"rank":553,"runs":[531,21,1]},"entrance:28602":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:28612":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:28622":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:28632":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:28642":{"rank":564,"runs":[535,8,8,7,2,1,1,1,1]},"entrance:28672":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:28680":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:28695":{"rank":554,"runs":[532,20,1,1]},"entrance:287":{"rank":553,"runs":[531,21,1]},"entrance:2872":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:28775":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:28796":{"rank":554,"runs":[532,20,1,1]},"entrance:288":{"rank":553,"runs":[531,21,1]},"entrance:28806":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:28816":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:28826":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:28836":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:28846":{"rank":564,"runs":[537,7,6,6,3,2,1,1,1]},"entrance:28856":{"rank":566,"runs":[537,6,6,3,3,2,2,2,2,1,1,1]},"entrance:28866":{"rank":568,"runs":[537,6,6,4,4,3,2,2,1,1,1,1]},"entrance:28876":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:28882":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:28897":{"rank":554,"runs":[532,20,1,1]},"entrance:289":{"rank":553,"runs":[531,21,1]},"entrance:28977":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:28996":{"rank":554,"runs":[532,20,1,1]},"entrance:29":{"rank":553,"runs":[531,21,1]},"entrance:290":{"rank":553,"runs":[531,21,1]},"entrance:29006":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:29016":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:29026":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:29036":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:29046":{"rank":564,"runs":[539,7,5,4,4,2,1,1,1]},"entrance:29056":{"rank":566,"runs":[539,5,4,4,3,2,2,2,2,1,1,1]},"entrance:29066":{"rank":568,"runs":[539,5,4,4,4,4,2,2,1,1,1,1]},"entrance:29076":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:29082":{"rank":570,"runs":[549,8,4,4,3,1,1]},"entrance:29095":{"rank":554,"runs":[532,20,1,1]},"entrance:291":{"rank":553,"runs":[531,21,1]},"entrance:29175":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:29195":{"rank":554,"runs":[532,20,1,1]},"entrance:292":{"rank":553,"runs":[531,21,1]},"entrance:29205":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:29215":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:29225":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:29235":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:29245":{"rank":564,"runs":[541,7,7,2,2,2,1,1,1]},"entrance:29255":{"rank":566,"runs":[541,7,3,2,2,2,2,2,2,1,1,1]},"entrance:29265":{"rank":568,"runs":[541,7,4,4,2,2,2,2,1,1,1,1]},"entrance:29275":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:29279":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:29295":{"rank":554,"runs":[532,20,1,1]},"entrance:293":{"rank":553,"runs":[531,21,1]},"entrance:29397":{"rank":554,"runs":[532,20,1,1]},"entrance:294":{"rank":553,"runs":[531,21,1]},"entrance:29407":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:29417":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:29427":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:29437":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:29447":{"rank":564,"runs":[543,9,9,1,1,1]},"entrance:29457":{"rank":566,"runs":[543,9,4,3,2,2,1,1,1]},"entrance:29467":{"rank":568,"runs":[543,9,4,4,4,1,1,1,1]},"entrance:29477":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:29481":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:29499":{"rank":554,"runs":[532,20,1,1]},"entrance:295":{"rank":553,"runs":[531,21,1]},"entrance:296":{"rank":553,"runs":[531,21,1]},"entrance:29635":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:297":{"rank":553,"runs":[531,21,1]},"entrance:29757":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:2978":{"rank":556,"runs":[534,17,3,1,1]},"entrance:298":{"rank":553,"runs":[531,21,1]},"entrance:299":{"rank":553,"runs":[531,21,1]},"entrance:29955":{"rank":554,"runs":[532,19,1,1,1]},"entrance:3":{"rank":553,"runs":[531,21,1]},"entrance:30":{"rank":553,"runs":[531,21,1]},"entrance:300":{"rank":553,"runs":[531,21,1]},"entrance:3000":{"rank":560,"runs":[538,13,7,1,1]},"entrance:30052":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:30053":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:30054":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:30055":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:30056":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:30057":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:30058":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:30059":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:30060":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:30061":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:30062":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:301":{"rank":553,"runs":[531,21,1]},"entrance:302":{"rank":553,"runs":[531,21,1]},"entrance:303":{"rank":553,"runs":[531,21,1]},"entrance:304":{"rank":553,"runs":[531,21,1]},"entrance:3044":{"rank":568,"runs":[541,9,6,5,3,2,1,1]},"entrance:30478":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:305":{"rank":553,"runs":[531,21,1]},"entrance:30524":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30525":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30536":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30537":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30545":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30546":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30547":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:30551":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30552":{"rank":554,"runs":[532,19,1,1,1]},"entrance:30553":{"rank":556,"runs":[534,17,3,1,1]},"entrance:30559":{"rank":556,"runs":[534,10,7,2,1,1,1]},"entrance:30560":{"rank":556,"runs":[534,10,7,2,1,1,1]},"entrance:30562":{"rank":556,"runs":[534,10,7,2,1,1,1]},"entrance:30591":{"rank":558,"runs":[536,10,5,4,1,1,1]},"entrance:30593":{"rank":558,"runs":[536,16,5,1]},"entrance:306":{"rank":553,"runs":[531,21,1]},"entrance:30602":{"rank":562,"runs":[540,12,9,1]},"entrance:30603":{"rank":566,"runs":[537,8,7,5,5,2,1,1]},"entrance:30606":{"rank":568,"runs":[546,11,5,4,1,1]},"entrance:30614":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:30616":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:30636":{"rank":566,"runs":[541,9,5,4,3,2,1,1]},"entrance:30637":{"rank":566,"runs":[540,6,4,4,3,3,1,1,1,1,1,1]},"entrance:30638":{"rank":566,"runs":[544,6,5,4,3,1,1,1,1]},"entrance:30645":{"rank":566,"runs":[541,9,6,4,3,1,1,1]},"entrance:30647":{"rank":566,"runs":[540,5,5,5,4,3,2,1,1]},"entrance:30649":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:30650":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:30651":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:30652":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:30655":{"rank":569,"runs":[547,8,6,3,1,1,1,1,1]},"entrance:30656":{"rank":569,"runs":[543,8,5,5,3,2,1,1,1]},"entrance:30657":{"rank":569,"runs":[547,8,6,3,1,1,1,1,1]},"entrance:30658":{"rank":569,"runs":[543,8,5,5,3,2,1,1,1]},"entrance:30659":{"rank":569,"runs":[540,8,8,7,2,2,1,1]},"entrance:30660":{"rank":569,"runs":[540,8,8,7,2,2,1,1]},"entrance:30678":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:30683":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:307":{"rank":553,"runs":[531,21,1]},"entrance:30705":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:30710":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:3072":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:30731":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:30736":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:30757":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:30762":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:30785":{"rank":571,"runs":[549,8,8,1,1,1,1,1,1]},"entrance:30790":{"rank":571,"runs":[549,8,8,1,1,1,1,1,1]},"entrance:308":{"rank":553,"runs":[531,21,1]},"entrance:30813":{"rank":571,"runs":[547,8,6,3,3,1,1,1,1]},"entrance:30818":{"rank":571,"runs":[547,8,6,3,3,1,1,1,1]},"entrance:30842":{"rank":571,"runs":[545,8,5,5,4,1,1,1,1]},"entrance:30847":{"rank":571,"runs":[545,8,5,5,4,1,1,1,1]},"entrance:30871":{"rank":571,"runs":[543,8,7,7,2,1,1,1,1]},"entrance:30876":{"rank":571,"runs":[543,8,7,7,2,1,1,1,1]},"entrance:309":{"rank":553,"runs":[531,21,1]},"entrance:30901":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:30906":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:30931":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:30936":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:30941":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:30942":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:30943":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:30944":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:30945":{"rank":570,"runs":[542,8,6,6,1,1,1,1,1,1,1,1]},"entrance:30946":{"rank":570,"runs":[540,6,6,6,3,3,1,1,1,1,1,1]},"entrance:30947":{"rank":570,"runs":[544,8,4,4,3,1,1,1,1,1,1,1]},"entrance:30948":{"rank":570,"runs":[542,6,4,4,3,3,3,1,1,1,1,1]},"entrance:30949":{"rank":570,"runs":[538,6,6,5,5,4,1,1,1,1,1,1]},"entrance:30950":{"rank":570,"runs":[536,7,7,6,6,2,1,1,1,1,1,1]},"entrance:30951":{"rank":570,"runs":[540,5,5,4,4,4,3,1,1,1,1,1]},"entrance:30952":{"rank":570,"runs":[538,7,7,4,4,3,2,1,1,1,1,1]},"entrance:30954":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:30955":{"rank":570,"runs":[536,9,9,4,4,3,1,1,1,1,1]},"entrance:30956":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:30957":{"rank":570,"runs":[546,8,5,2,2,1,1,1,1,1,1,1]},"entrance:30958":{"rank":570,"runs":[544,6,5,3,3,2,2,1,1,1,1,1]},"entrance:30959":{"rank":570,"runs":[548,8,7,2,1,1,1,1,1]},"entrance:30960":{"rank":570,"runs":[546,7,6,3,3,2,1,1,1]},"entrance:30961":{"rank":570,"runs":[542,5,5,5,4,2,2,1,1,1,1,1]},"entrance:30962":{"rank":570,"runs":[540,7,7,5,2,2,2,1,1,1,1,1]},"entrance:30963":{"rank":570,"runs":[544,7,5,5,4,2,1,1,1]},"entrance:30964":{"rank":570,"runs":[542,7,7,7,2,2,1,1,1]},"entrance:30965":{"rank":570,"runs":[538,9,9,5,2,2,1,1,1,1,1]},"entrance:30966":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:30967":{"rank":570,"runs":[540,9,9,7,2,1,1,1]},"entrance:30968":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:30969":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:30970":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:30971":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:30972":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:30973":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:30974":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:30975":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:30976":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:30977":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:30978":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:30979":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:30980":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:31":{"rank":553,"runs":[531,21,1]},"entrance:310":{"rank":553,"runs":[531,21,1]},"entrance:31047":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:311":{"rank":553,"runs":[531,21,1]},"entrance:31169":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:312":{"rank":553,"runs":[531,21,1]},"entrance:31289":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:313":{"rank":553,"runs":[531,21,1]},"entrance:314":{"rank":553,"runs":[531,21,1]},"entrance:31411":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:31471":{"rank":556,"runs":[534,17,3,1,1]},"entrance:31479":{"rank":554,"runs":[532,20,1,1]},"entrance:31482":{"rank":558,"runs":[536,15,5,1,1]},"entrance:31493":{"rank":560,"runs":[538,13,7,1,1]},"entrance:315":{"rank":553,"runs":[531,21,1]},"entrance:31504":{"rank":562,"runs":[539,7,7,4,2,1,1,1]},"entrance:31515":{"rank":564,"runs":[539,7,5,4,4,3,1,1]},"entrance:31526":{"rank":566,"runs":[539,7,6,5,4,3,1,1]},"entrance:31563":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:31579":{"rank":554,"runs":[532,20,1,1]},"entrance:31589":{"rank":556,"runs":[534,18,3,1]},"entrance:31599":{"rank":558,"runs":[536,16,5,1]},"entrance:316":{"rank":553,"runs":[531,21,1]},"entrance:31609":{"rank":560,"runs":[538,14,7,1]},"entrance:31619":{"rank":562,"runs":[540,12,9,1]},"entrance:31629":{"rank":564,"runs":[541,9,6,3,2,1,1,1]},"entrance:31639":{"rank":566,"runs":[541,9,4,4,3,3,1,1]},"entrance:31649":{"rank":568,"runs":[541,9,6,5,3,2,1,1]},"entrance:31659":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:31673":{"rank":556,"runs":[534,17,3,1,1]},"entrance:31681":{"rank":554,"runs":[532,20,1,1]},"entrance:31684":{"rank":558,"runs":[536,15,5,1,1]},"entrance:31695":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:317":{"rank":553,"runs":[531,21,1]},"entrance:31706":{"rank":562,"runs":[537,7,5,2,2,2,2,2,1,1,1]},"entrance:31717":{"rank":564,"runs":[537,5,5,4,3,2,2,2,2,1,1]},"entrance:31728":{"rank":566,"runs":[537,6,5,5,3,2,2,2,2,1,1]},"entrance:31765":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:3177":{"rank":556,"runs":[534,17,3,1,1]},"entrance:31783":{"rank":554,"runs":[532,20,1,1]},"entrance:31793":{"rank":556,"runs":[534,18,3,1]},"entrance:318":{"rank":553,"runs":[531,21,1]},"entrance:31803":{"rank":558,"runs":[536,16,5,1]},"entrance:31813":{"rank":560,"runs":[538,14,7,1]},"entrance:31823":{"rank":562,"runs":[540,12,9,1]},"entrance:31833":{"rank":564,"runs":[541,9,8,2,1,1,1,1]},"entrance:31843":{"rank":566,"runs":[541,9,4,2,2,2,2,1,1,1,1]},"entrance:31853":{"rank":568,"runs":[541,9,4,3,2,2,2,2,1,1,1]},"entrance:31863":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:31879":{"rank":556,"runs":[534,17,3,1,1]},"entrance:31887":{"rank":554,"runs":[532,20,1,1]},"entrance:31890":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:319":{"rank":553,"runs":[531,21,1]},"entrance:31901":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:31969":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:3199":{"rank":560,"runs":[538,13,7,1,1]},"entrance:31991":{"rank":554,"runs":[532,20,1,1]},"entrance:32":{"rank":553,"runs":[531,21,1]},"entrance:320":{"rank":553,"runs":[531,21,1]},"entrance:32001":{"rank":556,"runs":[534,18,3,1]},"entrance:32011":{"rank":558,"runs":[536,16,5,1]},"entrance:32021":{"rank":560,"runs":[538,14,7,1]},"entrance:32031":{"rank":562,"runs":[540,12,9,1]},"entrance:32041":{"rank":564,"runs":[541,9,8,2,1,1,1,1]},"entrance:32051":{"rank":566,"runs":[541,9,6,4,3,1,1,1]},"entrance:32061":{"rank":568,"runs":[541,9,4,4,2,2,2,1,1,1,1]},"entrance:32071":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:32089":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:32097":{"rank":554,"runs":[532,20,1,1]},"entrance:321":{"rank":553,"runs":[531,21,1]},"entrance:32179":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:322":{"rank":553,"runs":[531,21,1]},"entrance:32203":{"rank":554,"runs":[532,20,1,1]},"entrance:32213":{"rank":556,"runs":[534,18,3,1]},"entrance:32223":{"rank":558,"runs":[536,16,5,1]},"entrance:32233":{"rank":560,"runs":[538,14,7,1]},"entrance:32243":{"rank":562,"runs":[540,12,9,1]},"entrance:32253":{"rank":564,"runs":[541,9,8,2,1,1,1,1]},"entrance:32263":{"rank":566,"runs":[541,9,6,4,3,1,1,1]},"entrance:32273":{"rank":568,"runs":[541,9,6,5,4,1,1,1]},"entrance:32283":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:323":{"rank":553,"runs":[531,21,1]},"entrance:32310":{"rank":554,"runs":[532,20,1,1]},"entrance:32390":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:324":{"rank":553,"runs":[531,21,1]},"entrance:32417":{"rank":554,"runs":[532,20,1,1]},"entrance:32427":{"rank":556,"runs":[534,18,3,1]},"entrance:3243":{"rank":568,"runs":[539,8,7,7,3,2,1,1]},"entrance:32437":{"rank":558,"runs":[536,16,5,1]},"entrance:32447":{"rank":560,"runs":[538,14,7,1]},"entrance:32457":{"rank":562,"runs":[540,12,9,1]},"entrance:32467":{"rank":564,"runs":[541,9,8,2,1,1,1,1]},"entrance:32477":{"rank":566,"runs":[541,9,6,4,3,1,1,1]},"entrance:32487":{"rank":568,"runs":[541,9,6,5,4,1,1,1]},"entrance:32497":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:325":{"rank":553,"runs":[531,21,1]},"entrance:32515":{"rank":554,"runs":[532,19,1,1,1]},"entrance:326":{"rank":553,"runs":[531,21,1]},"entrance:32604":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:32605":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:32606":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:32607":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:32608":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:32609":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:32610":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:32611":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:32612":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:32613":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:32614":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:32623":{"rank":554,"runs":[532,19,1,1,1]},"entrance:3269":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:327":{"rank":553,"runs":[531,21,1]},"entrance:32712":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:32713":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:32714":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:32715":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:32716":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:32717":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:32718":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:32719":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:32720":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:32721":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:32722":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:328":{"rank":553,"runs":[531,21,1]},"entrance:329":{"rank":553,"runs":[531,21,1]},"entrance:33":{"rank":553,"runs":[531,21,1]},"entrance:330":{"rank":553,"runs":[531,21,1]},"entrance:331":{"rank":553,"runs":[531,21,1]},"entrance:33125":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33126":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33128":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33129":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33131":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33132":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33134":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33135":{"rank":554,"runs":[532,19,1,1,1]},"entrance:33147":{"rank":556,"runs":[534,9,8,2,1,1,1]},"entrance:332":{"rank":553,"runs":[531,21,1]},"entrance:33244":{"rank":558,"runs":[536,15,5,1,1]},"entrance:33245":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:33274":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:33283":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:33284":{"rank":566,"runs":[537,6,6,4,3,2,2,2,1,1,1,1]},"entrance:33289":{"rank":568,"runs":[541,9,6,5,3,2,1,1]},"entrance:33294":{"rank":566,"runs":[544,8,5,3,2,1,1,1,1]},"entrance:33295":{"rank":568,"runs":[536,9,8,4,3,2,2,1,1,1,1]},"entrance:33296":{"rank":564,"runs":[540,8,6,2,2,1,1,1,1,1,1]},"entrance:33297":{"rank":566,"runs":[545,10,7,2,1,1]},"entrance:333":{"rank":553,"runs":[531,21,1]},"entrance:33314":{"rank":566,"runs":[541,7,6,4,4,1,1,1,1]},"entrance:33315":{"rank":566,"runs":[540,7,4,4,3,3,1,1,1,1,1]},"entrance:33316":{"rank":566,"runs":[544,7,6,4,1,1,1,1,1]},"entrance:33323":{"rank":566,"runs":[543,9,5,2,2,2,1,1,1]},"entrance:33325":{"rank":566,"runs":[540,4,3,3,3,3,3,2,2,1,1,1]},"entrance:33327":{"rank":569,"runs":[542,9,6,6,3,1,1,1]},"entrance:33328":{"rank":569,"runs":[542,9,6,6,3,1,1,1]},"entrance:33329":{"rank":569,"runs":[546,9,4,3,2,2,1,1,1]},"entrance:33330":{"rank":569,"runs":[546,9,4,3,2,2,1,1,1]},"entrance:33333":{"rank":569,"runs":[547,8,6,2,2,1,1,1,1]},"entrance:33334":{"rank":569,"runs":[548,10,4,3,2,1,1]},"entrance:33335":{"rank":569,"runs":[547,8,6,2,2,1,1,1,1]},"entrance:33336":{"rank":569,"runs":[548,10,4,3,2,1,1]},"entrance:33337":{"rank":569,"runs":[542,9,6,6,2,2,1,1]},"entrance:33338":{"rank":569,"runs":[542,9,6,6,2,2,1,1]},"entrance:33356":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"entrance:33361":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"entrance:33383":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"entrance:33388":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"entrance:334":{"rank":553,"runs":[531,21,1]},"entrance:33409":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"entrance:33414":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"entrance:33435":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"entrance:33440":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"entrance:33445":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:33463":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:33468":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:33473":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:33491":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:33496":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:335":{"rank":553,"runs":[531,21,1]},"entrance:33501":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:33520":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:33525":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:33530":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:33549":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:33554":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:33559":{"rank":558,"runs":[536,9,6,4,1,1,1]},"entrance:33579":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:33584":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:33589":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:336":{"rank":553,"runs":[531,21,1]},"entrance:33609":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:33614":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:33619":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:33620":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:33621":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:33622":{"rank":570,"runs":[547,10,2,2,2,2,2,1,1,1]},"entrance:33623":{"rank":570,"runs":[543,10,6,6,2,1,1,1]},"entrance:33624":{"rank":570,"runs":[540,8,8,7,1,1,1,1,1,1,1]},"entrance:33625":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:33626":{"rank":570,"runs":[542,7,6,6,2,1,1,1,1,1,1,1]},"entrance:33627":{"rank":570,"runs":[538,8,8,5,3,3,1,1,1,1,1]},"entrance:33628":{"rank":570,"runs":[536,8,8,5,5,3,1,1,1,1,1]},"entrance:33629":{"rank":570,"runs":[540,6,6,5,3,3,2,1,1,1,1,1]},"entrance:33630":{"rank":570,"runs":[538,6,6,5,5,3,2,1,1,1,1,1]},"entrance:33633":{"rank":570,"runs":[536,7,7,6,6,2,1,1,1,1,1,1]},"entrance:33634":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:33635":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:33636":{"rank":570,"runs":[544,7,4,4,4,1,1,1,1,1,1,1]},"entrance:33637":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:33638":{"rank":570,"runs":[546,7,6,2,2,1,1,1,1,1,1,1]},"entrance:33639":{"rank":570,"runs":[542,5,4,4,4,3,3,1,1,1,1,1]},"entrance:33640":{"rank":570,"runs":[540,5,5,4,4,4,3,1,1,1,1,1]},"entrance:33641":{"rank":570,"runs":[544,6,5,3,3,2,2,1,1,1,1,1]},"entrance:33642":{"rank":570,"runs":[542,6,5,5,3,2,2,1,1,1,1,1]},"entrance:33643":{"rank":570,"runs":[538,7,7,4,4,4,1,1,1,1,1,1]},"entrance:33644":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:33645":{"rank":570,"runs":[540,7,7,6,2,2,1,1,1,1,1,1]},"entrance:33646":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:33647":{"rank":570,"runs":[546,8,5,3,3,2,1,1,1]},"entrance:33648":{"rank":570,"runs":[544,8,5,5,3,2,1,1,1]},"entrance:33649":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:33650":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:33651":{"rank":570,"runs":[542,8,7,7,2,1,1,1,1]},"entrance:33652":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:33653":{"rank":570,"runs":[545,10,4,4,2,1,1,1,1,1]},"entrance:33654":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:33655":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:33656":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:33657":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:33658":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:33674":{"rank":554,"runs":[532,20,1,1]},"entrance:33684":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:337":{"rank":553,"runs":[531,21,1]},"entrance:33754":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:33762":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:33779":{"rank":554,"runs":[532,20,1,1]},"entrance:3379":{"rank":556,"runs":[534,17,3,1,1]},"entrance:338":{"rank":553,"runs":[531,21,1]},"entrance:33882":{"rank":554,"runs":[532,20,1,1]},"entrance:33892":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:339":{"rank":553,"runs":[531,21,1]},"entrance:33902":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:33912":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:33922":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:33962":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:33970":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:33985":{"rank":554,"runs":[532,20,1,1]},"entrance:34":{"rank":553,"runs":[531,21,1]},"entrance:340":{"rank":553,"runs":[531,21,1]},"entrance:3401":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:34086":{"rank":554,"runs":[532,20,1,1]},"entrance:34096":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:341":{"rank":553,"runs":[531,21,1]},"entrance:34106":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:34116":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:34126":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:34136":{"rank":564,"runs":[537,5,4,4,3,2,2,2,2,1,1,1]},"entrance:34146":{"rank":566,"runs":[537,4,4,4,4,3,3,2,2,1,1,1]},"entrance:34156":{"rank":568,"runs":[537,6,6,4,4,3,2,2,1,1,1,1]},"entrance:34166":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:34172":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:34187":{"rank":554,"runs":[532,20,1,1]},"entrance:342":{"rank":553,"runs":[531,21,1]},"entrance:34267":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:34286":{"rank":554,"runs":[532,20,1,1]},"entrance:34296":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:343":{"rank":553,"runs":[531,21,1]},"entrance:34306":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:34316":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:34326":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:34336":{"rank":564,"runs":[539,5,5,2,2,2,2,2,2,1,1,1]},"entrance:34346":{"rank":566,"runs":[539,5,4,4,3,2,2,2,2,1,1,1]},"entrance:34356":{"rank":568,"runs":[539,6,6,5,2,2,2,2,1,1,1,1]},"entrance:34366":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:34372":{"rank":570,"runs":[549,10,4,3,2,1,1]},"entrance:34385":{"rank":554,"runs":[532,20,1,1]},"entrance:344":{"rank":553,"runs":[531,21,1]},"entrance:3445":{"rank":568,"runs":[537,10,9,5,3,2,1,1]},"entrance:34465":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:34485":{"rank":554,"runs":[532,20,1,1]},"entrance:34495":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:345":{"rank":553,"runs":[531,21,1]},"entrance:34505":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:34515":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:34525":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:34535":{"rank":564,"runs":[541,7,5,4,2,2,1,1,1]},"entrance:34545":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:34555":{"rank":568,"runs":[541,7,6,6,4,1,1,1,1]},"entrance:34565":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:34569":{"rank":570,"runs":[548,8,7,2,1,1,1,1,1]},"entrance:34585":{"rank":554,"runs":[532,20,1,1]},"entrance:346":{"rank":553,"runs":[531,21,1]},"entrance:34665":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:347":{"rank":553,"runs":[531,21,1]},"entrance:3471":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:34723":{"rank":570,"runs":[548,8,7,2,1,1,1,1,1]},"entrance:348":{"rank":553,"runs":[531,21,1]},"entrance:34843":{"rank":570,"runs":[549,10,3,3,3,1,1]},"entrance:349":{"rank":553,"runs":[531,21,1]},"entrance:34965":{"rank":570,"runs":[549,10,3,3,3,1,1]},"entrance:35":{"rank":553,"runs":[531,21,1]},"entrance:350":{"rank":553,"runs":[531,21,1]},"entrance:351":{"rank":553,"runs":[531,21,1]},"entrance:35163":{"rank":554,"runs":[532,19,1,1,1]},"entrance:352":{"rank":553,"runs":[531,21,1]},"entrance:35260":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:35261":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:35262":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:35263":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:35264":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:35265":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:35266":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:35267":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:35268":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:35269":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:35270":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:353":{"rank":553,"runs":[531,21,1]},"entrance:354":{"rank":553,"runs":[531,21,1]},"entrance:355":{"rank":553,"runs":[531,21,1]},"entrance:356":{"rank":553,"runs":[531,21,1]},"entrance:35684":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:357":{"rank":553,"runs":[531,21,1]},"entrance:35730":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35731":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35739":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35740":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35741":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:35745":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35746":{"rank":554,"runs":[532,19,1,1,1]},"entrance:35747":{"rank":556,"runs":[534,17,3,1,1]},"entrance:35753":{"rank":556,"runs":[534,12,5,2,1,1,1]},"entrance:35754":{"rank":556,"runs":[534,12,5,2,1,1,1]},"entrance:35756":{"rank":556,"runs":[534,12,5,2,1,1,1]},"entrance:35782":{"rank":558,"runs":[534,12,3,3,2,2,1,1]},"entrance:35785":{"rank":558,"runs":[536,12,4,3,1,1,1]},"entrance:35787":{"rank":558,"runs":[536,16,5,1]},"entrance:35796":{"rank":562,"runs":[540,12,9,1]},"entrance:35797":{"rank":566,"runs":[537,6,5,5,3,2,2,2,2,1,1]},"entrance:358":{"rank":553,"runs":[531,21,1]},"entrance:35800":{"rank":568,"runs":[546,9,6,5,1,1]},"entrance:35808":{"rank":568,"runs":[543,9,4,4,3,2,1,1,1]},"entrance:35810":{"rank":566,"runs":[545,9,7,2,1,1,1]},"entrance:35830":{"rank":566,"runs":[541,9,5,4,3,2,1,1]},"entrance:35831":{"rank":566,"runs":[540,6,4,4,3,3,1,1,1,1,1,1]},"entrance:35832":{"rank":566,"runs":[544,6,6,5,1,1,1,1,1]},"entrance:35839":{"rank":566,"runs":[543,11,6,2,1,1,1,1]},"entrance:35841":{"rank":566,"runs":[540,5,3,3,3,3,2,2,2,1,1,1]},"entrance:35843":{"rank":569,"runs":[548,9,6,4,1,1]},"entrance:35844":{"rank":569,"runs":[548,9,6,4,1,1]},"entrance:35845":{"rank":569,"runs":[548,9,4,4,2,1,1]},"entrance:35846":{"rank":569,"runs":[548,9,4,4,2,1,1]},"entrance:35849":{"rank":569,"runs":[547,8,6,3,1,1,1,1,1]},"entrance:3585":{"rank":556,"runs":[534,17,3,1,1]},"entrance:35850":{"rank":569,"runs":[545,10,3,3,3,2,1,1,1]},"entrance:35851":{"rank":569,"runs":[547,8,6,3,1,1,1,1,1]},"entrance:35852":{"rank":569,"runs":[545,10,3,3,3,2,1,1,1]},"entrance:35853":{"rank":569,"runs":[542,10,6,5,2,2,1,1]},"entrance:35854":{"rank":569,"runs":[542,10,6,5,2,2,1,1]},"entrance:35872":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:35877":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:35899":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:359":{"rank":553,"runs":[531,21,1]},"entrance:35904":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:35925":{"rank":571,"runs":[550,9,4,4,2,1,1]},"entrance:35930":{"rank":571,"runs":[550,9,4,4,2,1,1]},"entrance:35951":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:35956":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:35979":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:35984":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:36":{"rank":553,"runs":[531,21,1]},"entrance:360":{"rank":553,"runs":[531,21,1]},"entrance:36007":{"rank":571,"runs":[549,10,6,1,1,1,1,1,1]},"entrance:36012":{"rank":571,"runs":[549,10,6,1,1,1,1,1,1]},"entrance:36036":{"rank":571,"runs":[547,10,4,3,3,1,1,1,1]},"entrance:36041":{"rank":571,"runs":[547,10,4,3,3,1,1,1,1]},"entrance:36065":{"rank":571,"runs":[545,10,5,5,2,1,1,1,1]},"entrance:3607":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:36070":{"rank":571,"runs":[545,10,5,5,2,1,1,1,1]},"entrance:36095":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:361":{"rank":553,"runs":[531,21,1]},"entrance:36100":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:36125":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:36130":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:36135":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:36136":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:36137":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:36138":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:36139":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:36140":{"rank":570,"runs":[540,8,8,6,1,1,1,1,1,1,1,1]},"entrance:36141":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:36142":{"rank":570,"runs":[542,6,6,6,3,1,1,1,1,1,1,1]},"entrance:36143":{"rank":570,"runs":[538,8,8,4,3,3,1,1,1,1,1,1]},"entrance:36144":{"rank":570,"runs":[536,8,8,5,5,2,1,1,1,1,1,1]},"entrance:36145":{"rank":570,"runs":[540,6,6,4,3,3,3,1,1,1,1,1]},"entrance:36146":{"rank":570,"runs":[538,6,6,5,5,3,2,1,1,1,1,1]},"entrance:36148":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:36149":{"rank":570,"runs":[536,7,7,6,6,3,1,1,1,1,1]},"entrance:36150":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:36151":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:36152":{"rank":570,"runs":[544,6,5,4,4,1,1,1,1,1,1,1]},"entrance:36153":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:36154":{"rank":570,"runs":[546,7,6,2,2,1,1,1,1,1,1,1]},"entrance:36155":{"rank":570,"runs":[542,5,4,4,4,3,3,1,1,1,1,1]},"entrance:36156":{"rank":570,"runs":[540,5,5,5,4,4,2,1,1,1,1,1]},"entrance:36157":{"rank":570,"runs":[544,7,4,3,3,2,2,1,1,1,1,1]},"entrance:36158":{"rank":570,"runs":[542,7,5,5,2,2,2,1,1,1,1,1]},"entrance:36159":{"rank":570,"runs":[538,7,7,5,4,4,1,1,1,1,1]},"entrance:36160":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:36161":{"rank":570,"runs":[540,7,7,7,2,2,1,1,1,1,1]},"entrance:36162":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:36163":{"rank":570,"runs":[546,9,4,3,3,2,1,1,1]},"entrance:36164":{"rank":570,"runs":[544,9,5,5,2,2,1,1,1]},"entrance:36165":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:36166":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:36167":{"rank":570,"runs":[542,9,7,7,2,1,1,1]},"entrance:36168":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:36169":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:36170":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:36171":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:36172":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:36173":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:36174":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:362":{"rank":553,"runs":[531,21,1]},"entrance:36241":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:363":{"rank":553,"runs":[531,21,1]},"entrance:36363":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:364":{"rank":553,"runs":[531,21,1]},"entrance:36483":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:365":{"rank":553,"runs":[531,21,1]},"entrance:3651":{"rank":568,"runs":[535,12,11,3,3,2,1,1]},"entrance:366":{"rank":553,"runs":[531,21,1]},"entrance:36605":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:367":{"rank":553,"runs":[531,21,1]},"entrance:36725":{"rank":570,"runs":[548,9,6,2,1,1,1,1,1]},"entrance:3675":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:36789":{"rank":556,"runs":[534,17,3,1,1]},"entrance:36797":{"rank":554,"runs":[532,20,1,1]},"entrance:368":{"rank":553,"runs":[531,21,1]},"entrance:36800":{"rank":558,"runs":[536,15,5,1,1]},"entrance:36811":{"rank":560,"runs":[537,9,5,4,2,1,1,1]},"entrance:36822":{"rank":562,"runs":[537,7,5,4,4,3,1,1]},"entrance:36833":{"rank":564,"runs":[537,6,5,5,5,4,1,1]},"entrance:36844":{"rank":566,"runs":[537,8,7,5,4,3,1,1]},"entrance:36881":{"rank":570,"runs":[548,9,6,2,1,1,1,1,1]},"entrance:36899":{"rank":554,"runs":[532,20,1,1]},"entrance:369":{"rank":553,"runs":[531,21,1]},"entrance:36909":{"rank":556,"runs":[534,18,3,1]},"entrance:36919":{"rank":558,"runs":[536,16,5,1]},"entrance:36929":{"rank":560,"runs":[538,14,7,1]},"entrance:36939":{"rank":562,"runs":[540,12,9,1]},"entrance:36949":{"rank":564,"runs":[542,11,10,1]},"entrance:36959":{"rank":566,"runs":[543,11,4,3,2,1,1,1]},"entrance:36969":{"rank":568,"runs":[543,11,4,3,3,2,1,1]},"entrance:36979":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:36995":{"rank":556,"runs":[534,17,3,1,1]},"entrance:37":{"rank":553,"runs":[531,21,1]},"entrance:370":{"rank":553,"runs":[531,21,1]},"entrance:37003":{"rank":554,"runs":[532,20,1,1]},"entrance:37006":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:37085":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:371":{"rank":553,"runs":[531,21,1]},"entrance:37107":{"rank":554,"runs":[532,20,1,1]},"entrance:37117":{"rank":556,"runs":[534,18,3,1]},"entrance:37127":{"rank":558,"runs":[536,16,5,1]},"entrance:37137":{"rank":560,"runs":[538,14,7,1]},"entrance:37147":{"rank":562,"runs":[540,12,9,1]},"entrance:37157":{"rank":564,"runs":[542,11,10,1]},"entrance:37167":{"rank":566,"runs":[543,11,6,2,1,1,1,1]},"entrance:37177":{"rank":568,"runs":[543,11,2,2,2,2,2,1,1,1,1]},"entrance:37187":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:372":{"rank":553,"runs":[531,21,1]},"entrance:37205":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:37213":{"rank":554,"runs":[532,20,1,1]},"entrance:37295":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:373":{"rank":553,"runs":[531,21,1]},"entrance:37319":{"rank":554,"runs":[532,20,1,1]},"entrance:37329":{"rank":556,"runs":[534,18,3,1]},"entrance:37339":{"rank":558,"runs":[536,16,5,1]},"entrance:37349":{"rank":560,"runs":[538,14,7,1]},"entrance:37359":{"rank":562,"runs":[540,12,9,1]},"entrance:37369":{"rank":564,"runs":[542,11,10,1]},"entrance:37379":{"rank":566,"runs":[543,11,6,2,1,1,1,1]},"entrance:37389":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:37399":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:374":{"rank":553,"runs":[531,21,1]},"entrance:37426":{"rank":554,"runs":[532,20,1,1]},"entrance:375":{"rank":553,"runs":[531,21,1]},"entrance:37506":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:37533":{"rank":554,"runs":[532,20,1,1]},"entrance:37543":{"rank":556,"runs":[534,18,3,1]},"entrance:37553":{"rank":558,"runs":[536,16,5,1]},"entrance:37563":{"rank":560,"runs":[538,14,7,1]},"entrance:37573":{"rank":562,"runs":[540,12,9,1]},"entrance:37583":{"rank":564,"runs":[542,11,10,1]},"entrance:37593":{"rank":566,"runs":[543,11,6,2,1,1,1,1]},"entrance:376":{"rank":553,"runs":[531,21,1]},"entrance:37603":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:37613":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:37631":{"rank":554,"runs":[532,19,1,1,1]},"entrance:377":{"rank":553,"runs":[531,21,1]},"entrance:37720":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:37721":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:37722":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:37723":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:37724":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:37725":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:37726":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:37727":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:37728":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:37729":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:37730":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:37739":{"rank":554,"runs":[532,19,1,1,1]},"entrance:378":{"rank":553,"runs":[531,21,1]},"entrance:37828":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:37829":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:37830":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:37831":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:37832":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:37833":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:37834":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:37835":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:37836":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:37837":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:37838":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:379":{"rank":553,"runs":[531,21,1]},"entrance:3795":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:38":{"rank":553,"runs":[531,21,1]},"entrance:380":{"rank":553,"runs":[531,21,1]},"entrance:381":{"rank":553,"runs":[531,21,1]},"entrance:382":{"rank":553,"runs":[531,21,1]},"entrance:38241":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38242":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38244":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38245":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38247":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38248":{"rank":554,"runs":[532,19,1,1,1]},"entrance:38261":{"rank":556,"runs":[534,11,6,2,1,1,1]},"entrance:383":{"rank":553,"runs":[531,21,1]},"entrance:38346":{"rank":558,"runs":[536,15,5,1,1]},"entrance:38347":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:38376":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:38382":{"rank":564,"runs":[535,8,7,6,3,3,1,1]},"entrance:38385":{"rank":562,"runs":[541,11,7,1,1,1]},"entrance:38386":{"rank":566,"runs":[537,8,8,6,3,1,1,1,1]},"entrance:38391":{"rank":568,"runs":[539,8,7,7,3,2,1,1]},"entrance:38396":{"rank":566,"runs":[545,8,7,3,1,1,1]},"entrance:38397":{"rank":568,"runs":[536,11,10,4,4,1,1,1]},"entrance:38398":{"rank":564,"runs":[541,8,8,2,1,1,1,1,1]},"entrance:38399":{"rank":566,"runs":[545,12,7,1,1]},"entrance:384":{"rank":553,"runs":[531,21,1]},"entrance:38416":{"rank":566,"runs":[541,7,6,4,4,1,1,1,1]},"entrance:38417":{"rank":566,"runs":[540,7,4,4,3,3,1,1,1,1,1]},"entrance:38418":{"rank":566,"runs":[544,7,4,4,3,1,1,1,1]},"entrance:38425":{"rank":566,"runs":[541,7,5,4,4,2,1,1,1]},"entrance:38427":{"rank":566,"runs":[540,5,5,4,4,3,3,1,1]},"entrance:38429":{"rank":569,"runs":[544,11,4,4,3,1,1,1]},"entrance:38430":{"rank":569,"runs":[544,11,4,4,3,1,1,1]},"entrance:38431":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:38432":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:38435":{"rank":569,"runs":[548,8,6,4,1,1,1]},"entrance:38436":{"rank":569,"runs":[548,8,5,4,2,1,1]},"entrance:38437":{"rank":569,"runs":[548,8,6,4,1,1,1]},"entrance:38438":{"rank":569,"runs":[548,8,5,4,2,1,1]},"entrance:38439":{"rank":569,"runs":[540,8,8,7,2,2,1,1]},"entrance:38440":{"rank":569,"runs":[540,8,8,7,2,2,1,1]},"entrance:38458":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"entrance:38463":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"entrance:38485":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"entrance:38490":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"entrance:385":{"rank":553,"runs":[531,21,1]},"entrance:38511":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"entrance:38516":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"entrance:38537":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:38542":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:38547":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:38565":{"rank":571,"runs":[550,8,8,2,1,1,1]},"entrance:38570":{"rank":571,"runs":[550,8,8,2,1,1,1]},"entrance:38575":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:38593":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:38598":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:386":{"rank":553,"runs":[531,21,1]},"entrance:38603":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:38622":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:38627":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:38632":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:38651":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:38656":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:38661":{"rank":558,"runs":[536,11,4,4,1,1,1]},"entrance:38681":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:38686":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:38691":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:387":{"rank":553,"runs":[531,21,1]},"entrance:38711":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:38716":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:38721":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:38722":{"rank":570,"runs":[545,12,4,4,2,1,1,1]},"entrance:38723":{"rank":570,"runs":[549,12,3,2,2,1,1]},"entrance:38724":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:38725":{"rank":570,"runs":[542,9,6,6,1,1,1,1,1,1,1]},"entrance:38726":{"rank":570,"runs":[540,7,6,6,3,3,1,1,1,1,1]},"entrance:38727":{"rank":570,"runs":[544,9,4,4,2,1,1,1,1,1,1,1]},"entrance:38728":{"rank":570,"runs":[542,7,4,4,3,3,2,1,1,1,1,1]},"entrance:38729":{"rank":570,"runs":[538,6,6,5,5,5,1,1,1,1,1]},"entrance:38730":{"rank":570,"runs":[536,7,7,6,6,3,1,1,1,1,1]},"entrance:38731":{"rank":570,"runs":[540,5,5,5,4,4,2,1,1,1,1,1]},"entrance:38732":{"rank":570,"runs":[538,7,7,4,4,3,2,1,1,1,1,1]},"entrance:38735":{"rank":570,"runs":[536,9,9,4,4,2,1,1,1,1,1,1]},"entrance:38736":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:38737":{"rank":570,"runs":[546,9,4,2,2,1,1,1,1,1,1,1]},"entrance:38738":{"rank":570,"runs":[544,7,4,3,3,2,2,1,1,1,1,1]},"entrance:38739":{"rank":570,"runs":[548,9,6,2,1,1,1,1,1]},"entrance:38740":{"rank":570,"runs":[546,7,6,3,3,2,1,1,1]},"entrance:38741":{"rank":570,"runs":[542,5,5,5,4,2,2,1,1,1,1,1]},"entrance:38742":{"rank":570,"runs":[540,7,7,4,3,2,2,1,1,1,1,1]},"entrance:38743":{"rank":570,"runs":[544,6,5,5,5,2,1,1,1]},"entrance:38744":{"rank":570,"runs":[542,7,7,6,3,2,1,1,1]},"entrance:38745":{"rank":570,"runs":[538,9,9,4,2,2,1,1,1,1,1,1]},"entrance:38746":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:38747":{"rank":570,"runs":[540,9,9,6,2,1,1,1,1]},"entrance:38748":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:38749":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:38750":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:38751":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:38752":{"rank":570,"runs":[547,8,3,3,2,2,2,1,1,1]},"entrance:38753":{"rank":570,"runs":[543,8,6,6,2,1,1,1,1,1]},"entrance:38754":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:38755":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:38756":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:38757":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:38758":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:38759":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:38760":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:38776":{"rank":554,"runs":[532,20,1,1]},"entrance:38786":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:388":{"rank":553,"runs":[531,21,1]},"entrance:3885":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:38856":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:38864":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:38881":{"rank":554,"runs":[532,20,1,1]},"entrance:389":{"rank":553,"runs":[531,21,1]},"entrance:38984":{"rank":554,"runs":[532,20,1,1]},"entrance:38994":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:39":{"rank":553,"runs":[531,21,1]},"entrance:390":{"rank":553,"runs":[531,21,1]},"entrance:39004":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:39014":{"rank":560,"runs":[535,11,4,4,2,1,1,1,1]},"entrance:39064":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:39072":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:39087":{"rank":554,"runs":[532,20,1,1]},"entrance:391":{"rank":553,"runs":[531,21,1]},"entrance:39167":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:39188":{"rank":554,"runs":[532,20,1,1]},"entrance:39198":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:392":{"rank":553,"runs":[531,21,1]},"entrance:39208":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:39218":{"rank":560,"runs":[537,11,3,2,2,2,1,1,1]},"entrance:39228":{"rank":562,"runs":[537,7,3,2,2,2,2,2,2,1,1,1]},"entrance:39238":{"rank":564,"runs":[537,5,4,4,3,2,2,2,2,1,1,1]},"entrance:39248":{"rank":566,"runs":[537,6,6,3,3,2,2,2,2,1,1,1]},"entrance:39258":{"rank":568,"runs":[537,8,8,3,2,2,2,2,1,1,1,1]},"entrance:39268":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:39274":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:39289":{"rank":554,"runs":[532,20,1,1]},"entrance:393":{"rank":553,"runs":[531,21,1]},"entrance:39369":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:39388":{"rank":554,"runs":[532,20,1,1]},"entrance:39398":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:394":{"rank":553,"runs":[531,21,1]},"entrance:39408":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:39418":{"rank":560,"runs":[539,13,5,1,1,1]},"entrance:39428":{"rank":562,"runs":[539,7,5,4,2,2,1,1,1]},"entrance:39438":{"rank":564,"runs":[539,5,5,4,4,4,1,1,1]},"entrance:39448":{"rank":566,"runs":[539,6,6,5,4,3,1,1,1]},"entrance:39458":{"rank":568,"runs":[539,8,8,5,4,1,1,1,1]},"entrance:39468":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:39474":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:39487":{"rank":554,"runs":[532,20,1,1]},"entrance:395":{"rank":553,"runs":[531,21,1]},"entrance:39567":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:396":{"rank":553,"runs":[531,21,1]},"entrance:39625":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:397":{"rank":553,"runs":[531,21,1]},"entrance:39747":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:398":{"rank":553,"runs":[531,21,1]},"entrance:39867":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:399":{"rank":553,"runs":[531,21,1]},"entrance:39989":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:4":{"rank":553,"runs":[531,21,1]},"entrance:40":{"rank":553,"runs":[531,21,1]},"entrance:400":{"rank":553,"runs":[531,21,1]},"entrance:401":{"rank":553,"runs":[531,21,1]},"entrance:40187":{"rank":554,"runs":[532,19,1,1,1]},"entrance:402":{"rank":553,"runs":[531,21,1]},"entrance:40284":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:40285":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:40286":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:40287":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:40288":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:40289":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:40290":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:40291":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:40292":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:40293":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:40294":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:403":{"rank":553,"runs":[531,21,1]},"entrance:404":{"rank":553,"runs":[531,21,1]},"entrance:405":{"rank":553,"runs":[531,21,1]},"entrance:406":{"rank":553,"runs":[531,21,1]},"entrance:407":{"rank":553,"runs":[531,21,1]},"entrance:40706":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:40753":{"rank":554,"runs":[532,19,1,1,1]},"entrance:40754":{"rank":554,"runs":[532,19,1,1,1]},"entrance:40755":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:40759":{"rank":554,"runs":[532,19,1,1,1]},"entrance:40760":{"rank":554,"runs":[532,19,1,1,1]},"entrance:40761":{"rank":556,"runs":[534,17,3,1,1]},"entrance:40767":{"rank":556,"runs":[534,14,3,2,1,1,1]},"entrance:40768":{"rank":556,"runs":[534,14,3,2,1,1,1]},"entrance:40770":{"rank":556,"runs":[534,14,3,2,1,1,1]},"entrance:40798":{"rank":558,"runs":[534,14,3,2,2,1,1,1]},"entrance:40799":{"rank":558,"runs":[536,14,4,1,1,1,1]},"entrance:408":{"rank":553,"runs":[531,21,1]},"entrance:40801":{"rank":558,"runs":[536,16,5,1]},"entrance:40810":{"rank":562,"runs":[540,12,9,1]},"entrance:40811":{"rank":566,"runs":[537,5,4,4,4,3,3,2,2,1,1]},"entrance:40814":{"rank":568,"runs":[546,8,7,5,1,1]},"entrance:40822":{"rank":568,"runs":[543,7,4,4,4,3,1,1,1]},"entrance:40824":{"rank":566,"runs":[545,7,7,4,1,1,1]},"entrance:40844":{"rank":566,"runs":[541,9,5,4,3,2,1,1]},"entrance:40845":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:40846":{"rank":566,"runs":[545,7,7,5,1,1]},"entrance:40853":{"rank":566,"runs":[544,13,8,1]},"entrance:40854":{"rank":566,"runs":[536,8,8,3,3,2,1,1,1,1,1,1]},"entrance:40855":{"rank":566,"runs":[540,5,4,4,3,3,2,1,1,1,1,1]},"entrance:40857":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:40858":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:40859":{"rank":569,"runs":[548,7,4,4,4,1,1]},"entrance:40860":{"rank":569,"runs":[548,7,4,4,4,1,1]},"entrance:40863":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:40864":{"rank":569,"runs":[547,12,3,2,1,1,1,1,1]},"entrance:40865":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:40866":{"rank":569,"runs":[547,12,3,2,1,1,1,1,1]},"entrance:40867":{"rank":569,"runs":[544,12,4,3,2,2,1,1]},"entrance:40868":{"rank":569,"runs":[544,12,4,3,2,2,1,1]},"entrance:40886":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:40891":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:409":{"rank":553,"runs":[531,21,1]},"entrance:40913":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:40918":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:40939":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:40944":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:40965":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:40970":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:40993":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:40998":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:41":{"rank":553,"runs":[531,21,1]},"entrance:410":{"rank":553,"runs":[531,21,1]},"entrance:41021":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:41026":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:41050":{"rank":571,"runs":[549,12,4,1,1,1,1,1,1]},"entrance:41055":{"rank":571,"runs":[549,12,4,1,1,1,1,1,1]},"entrance:41079":{"rank":571,"runs":[547,12,3,3,2,1,1,1,1]},"entrance:41084":{"rank":571,"runs":[547,12,3,3,2,1,1,1,1]},"entrance:411":{"rank":553,"runs":[531,21,1]},"entrance:41109":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:41114":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:41139":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:41144":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:41149":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:41150":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:41151":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:41152":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:41153":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:41154":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:41155":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:41156":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:41157":{"rank":570,"runs":[538,10,10,4,1,1,1,1,1,1,1,1]},"entrance:41158":{"rank":570,"runs":[536,10,10,3,3,2,1,1,1,1,1,1]},"entrance:41159":{"rank":570,"runs":[540,8,8,4,3,1,1,1,1,1,1,1]},"entrance:41160":{"rank":570,"runs":[538,8,8,3,3,3,2,1,1,1,1,1]},"entrance:41162":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:41163":{"rank":570,"runs":[536,8,8,5,5,3,1,1,1,1,1]},"entrance:41164":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:41165":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:41166":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:41167":{"rank":570,"runs":[549,7,7,3,2,1,1]},"entrance:41168":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:41169":{"rank":570,"runs":[542,6,6,5,4,1,1,1,1,1,1,1]},"entrance:41170":{"rank":570,"runs":[540,6,6,5,3,3,2,1,1,1,1,1]},"entrance:41171":{"rank":570,"runs":[544,7,4,4,4,1,1,1,1,1,1,1]},"entrance:41172":{"rank":570,"runs":[542,7,4,4,3,3,2,1,1,1,1,1]},"entrance:41173":{"rank":570,"runs":[538,6,6,5,5,5,1,1,1,1,1]},"entrance:41174":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:41175":{"rank":570,"runs":[540,7,5,5,4,4,1,1,1,1,1]},"entrance:41176":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:41177":{"rank":570,"runs":[546,9,4,2,2,1,1,1,1,1,1,1]},"entrance:41178":{"rank":570,"runs":[544,9,3,3,2,2,2,1,1,1,1,1]},"entrance:41179":{"rank":570,"runs":[548,11,4,2,1,1,1,1,1]},"entrance:41180":{"rank":570,"runs":[546,11,3,3,2,2,1,1,1]},"entrance:41181":{"rank":570,"runs":[542,9,5,5,2,2,1,1,1,1,1]},"entrance:41182":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:41183":{"rank":570,"runs":[544,11,5,5,2,1,1,1]},"entrance:41184":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:41185":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:41186":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:41187":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:41188":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:412":{"rank":553,"runs":[531,21,1]},"entrance:41255":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:413":{"rank":553,"runs":[531,21,1]},"entrance:41377":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:414":{"rank":553,"runs":[531,21,1]},"entrance:41497":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:415":{"rank":553,"runs":[531,21,1]},"entrance:416":{"rank":553,"runs":[531,21,1]},"entrance:41619":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:417":{"rank":553,"runs":[531,21,1]},"entrance:41739":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:418":{"rank":553,"runs":[531,21,1]},"entrance:41861":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:419":{"rank":553,"runs":[531,21,1]},"entrance:41927":{"rank":556,"runs":[534,17,3,1,1]},"entrance:41935":{"rank":554,"runs":[532,20,1,1]},"entrance:41938":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:41949":{"rank":560,"runs":[535,9,4,4,3,3,1,1]},"entrance:41960":{"rank":562,"runs":[535,7,6,5,4,3,1,1]},"entrance:41971":{"rank":564,"runs":[535,8,7,5,4,3,1,1]},"entrance:41982":{"rank":566,"runs":[535,10,9,4,3,3,1,1]},"entrance:42":{"rank":553,"runs":[531,21,1]},"entrance:420":{"rank":553,"runs":[531,21,1]},"entrance:42017":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:42039":{"rank":554,"runs":[532,20,1,1]},"entrance:42049":{"rank":556,"runs":[534,18,3,1]},"entrance:42059":{"rank":558,"runs":[536,16,5,1]},"entrance:42069":{"rank":560,"runs":[538,14,7,1]},"entrance:42079":{"rank":562,"runs":[540,12,9,1]},"entrance:42089":{"rank":564,"runs":[542,11,10,1]},"entrance:42099":{"rank":566,"runs":[544,13,8,1]},"entrance:421":{"rank":553,"runs":[531,21,1]},"entrance:42109":{"rank":568,"runs":[545,13,3,2,2,1,1,1]},"entrance:42119":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:42137":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:42145":{"rank":554,"runs":[532,20,1,1]},"entrance:422":{"rank":553,"runs":[531,21,1]},"entrance:4221":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4222":{"rank":556,"runs":[534,17,3,1,1]},"entrance:42227":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:42251":{"rank":554,"runs":[532,20,1,1]},"entrance:42261":{"rank":556,"runs":[534,18,3,1]},"entrance:42271":{"rank":558,"runs":[536,16,5,1]},"entrance:42281":{"rank":560,"runs":[538,14,7,1]},"entrance:42291":{"rank":562,"runs":[540,12,9,1]},"entrance:423":{"rank":553,"runs":[531,21,1]},"entrance:42301":{"rank":564,"runs":[542,11,10,1]},"entrance:42311":{"rank":566,"runs":[544,13,8,1]},"entrance:42321":{"rank":568,"runs":[545,13,4,2,1,1,1,1]},"entrance:42331":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:42358":{"rank":554,"runs":[532,20,1,1]},"entrance:424":{"rank":553,"runs":[531,21,1]},"entrance:42438":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:42465":{"rank":554,"runs":[532,20,1,1]},"entrance:42475":{"rank":556,"runs":[534,18,3,1]},"entrance:42485":{"rank":558,"runs":[536,16,5,1]},"entrance:42495":{"rank":560,"runs":[538,14,7,1]},"entrance:425":{"rank":553,"runs":[531,21,1]},"entrance:42505":{"rank":562,"runs":[540,12,9,1]},"entrance:42515":{"rank":564,"runs":[542,11,10,1]},"entrance:42525":{"rank":566,"runs":[544,13,8,1]},"entrance:42535":{"rank":568,"runs":[545,13,4,2,1,1,1,1]},"entrance:42545":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:42563":{"rank":554,"runs":[532,19,1,1,1]},"entrance:426":{"rank":553,"runs":[531,21,1]},"entrance:42652":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:42653":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:42654":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:42655":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:42656":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:42657":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:42658":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:42659":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:42660":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:42661":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:42662":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:42671":{"rank":554,"runs":[532,19,1,1,1]},"entrance:427":{"rank":553,"runs":[531,21,1]},"entrance:42760":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:42761":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:42762":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:42763":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:42764":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:42765":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:42766":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:42767":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:42768":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:42769":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:42770":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:428":{"rank":553,"runs":[531,21,1]},"entrance:4283":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:4288":{"rank":568,"runs":[546,15,5,1,1]},"entrance:429":{"rank":553,"runs":[531,21,1]},"entrance:43":{"rank":553,"runs":[531,21,1]},"entrance:430":{"rank":553,"runs":[531,21,1]},"entrance:4307":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:431":{"rank":553,"runs":[531,21,1]},"entrance:43173":{"rank":554,"runs":[532,19,1,1,1]},"entrance:43174":{"rank":554,"runs":[532,19,1,1,1]},"entrance:43176":{"rank":554,"runs":[532,19,1,1,1]},"entrance:43177":{"rank":554,"runs":[532,19,1,1,1]},"entrance:43191":{"rank":556,"runs":[534,13,4,2,1,1,1]},"entrance:432":{"rank":553,"runs":[531,21,1]},"entrance:43262":{"rank":558,"runs":[536,15,5,1,1]},"entrance:43263":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:4329":{"rank":554,"runs":[532,19,1,1,1]},"entrance:43292":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:43298":{"rank":564,"runs":[535,8,7,6,3,3,1,1]},"entrance:433":{"rank":553,"runs":[531,21,1]},"entrance:43301":{"rank":562,"runs":[539,9,5,2,2,2,1,1,1]},"entrance:43302":{"rank":566,"runs":[537,8,8,6,3,1,1,1,1]},"entrance:43307":{"rank":568,"runs":[537,10,9,5,3,2,1,1]},"entrance:43312":{"rank":566,"runs":[545,7,6,3,3,1,1]},"entrance:43313":{"rank":568,"runs":[536,10,9,4,2,2,1,1,1,1,1]},"entrance:43314":{"rank":564,"runs":[541,8,6,3,2,1,1,1,1]},"entrance:43315":{"rank":566,"runs":[544,11,6,1,1,1,1,1]},"entrance:43332":{"rank":566,"runs":[539,5,4,4,4,2,2,2,1,1,1,1]},"entrance:43333":{"rank":566,"runs":[540,7,3,3,3,3,2,2,1,1,1]},"entrance:43334":{"rank":566,"runs":[544,7,5,4,2,1,1,1,1]},"entrance:43341":{"rank":566,"runs":[539,6,6,5,5,2,1,1,1]},"entrance:43342":{"rank":566,"runs":[536,7,7,3,3,3,2,2,1,1,1]},"entrance:43343":{"rank":566,"runs":[540,4,4,4,3,3,2,2,1,1,1,1]},"entrance:43345":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"entrance:43346":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"entrance:43347":{"rank":569,"runs":[547,10,4,2,2,1,1,1,1]},"entrance:43348":{"rank":569,"runs":[547,10,4,2,2,1,1,1,1]},"entrance:43351":{"rank":569,"runs":[548,6,6,4,3,1,1]},"entrance:43352":{"rank":569,"runs":[548,7,6,4,2,1,1]},"entrance:43353":{"rank":569,"runs":[548,6,6,4,3,1,1]},"entrance:43354":{"rank":569,"runs":[548,7,6,4,2,1,1]},"entrance:43355":{"rank":569,"runs":[538,10,10,5,2,2,1,1]},"entrance:43356":{"rank":569,"runs":[538,10,10,5,2,2,1,1]},"entrance:43374":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"entrance:43379":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"entrance:434":{"rank":553,"runs":[531,21,1]},"entrance:43401":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"entrance:43406":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"entrance:43427":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:43432":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:43453":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:43458":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:43463":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:43481":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:43486":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:43491":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:435":{"rank":553,"runs":[531,21,1]},"entrance:43509":{"rank":571,"runs":[550,6,6,5,2,1,1]},"entrance:43514":{"rank":571,"runs":[550,6,6,5,2,1,1]},"entrance:43519":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:43538":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:43543":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:43548":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:43567":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:43572":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:43577":{"rank":558,"runs":[536,13,4,2,1,1,1]},"entrance:43597":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:436":{"rank":553,"runs":[531,21,1]},"entrance:43602":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:43607":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:43627":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:43632":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:43637":{"rank":570,"runs":[547,14,2,2,2,1,1,1]},"entrance:43638":{"rank":570,"runs":[544,11,4,4,1,1,1,1,1,1,1]},"entrance:43639":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:43640":{"rank":570,"runs":[546,11,2,2,2,1,1,1,1,1,1,1]},"entrance:43641":{"rank":570,"runs":[542,9,4,4,3,3,1,1,1,1,1]},"entrance:43642":{"rank":570,"runs":[540,7,5,5,4,4,1,1,1,1,1]},"entrance:43643":{"rank":570,"runs":[544,9,3,3,2,2,2,1,1,1,1,1]},"entrance:43644":{"rank":570,"runs":[542,7,5,5,2,2,2,1,1,1,1,1]},"entrance:43645":{"rank":570,"runs":[538,7,7,5,4,4,1,1,1,1,1]},"entrance:43646":{"rank":570,"runs":[536,9,9,4,4,3,1,1,1,1,1]},"entrance:43647":{"rank":570,"runs":[540,7,7,5,2,2,2,1,1,1,1,1]},"entrance:43648":{"rank":570,"runs":[538,9,9,3,2,2,2,1,1,1,1,1]},"entrance:43650":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:43651":{"rank":570,"runs":[536,11,11,2,2,2,1,1,1,1,1,1]},"entrance:43652":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:43653":{"rank":570,"runs":[546,9,4,3,3,2,1,1,1]},"entrance:43654":{"rank":570,"runs":[544,7,5,5,4,2,1,1,1]},"entrance:43655":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:43656":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:43657":{"rank":570,"runs":[542,7,7,5,4,2,1,1,1]},"entrance:43658":{"rank":570,"runs":[540,9,9,4,3,2,1,1,1]},"entrance:43659":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:43660":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:43661":{"rank":570,"runs":[538,11,11,4,2,1,1,1,1]},"entrance:43662":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:43663":{"rank":570,"runs":[541,8,8,6,2,1,1,1,1,1]},"entrance:43664":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:43665":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:43666":{"rank":570,"runs":[545,6,4,4,3,3,2,1,1,1]},"entrance:43667":{"rank":570,"runs":[549,6,5,5,3,1,1]},"entrance:43668":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:43669":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:43670":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:43671":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:43672":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:43673":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:43674":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:43675":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:43676":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:43692":{"rank":554,"runs":[532,20,1,1]},"entrance:437":{"rank":553,"runs":[531,21,1]},"entrance:43702":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:43772":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:43780":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:43797":{"rank":554,"runs":[532,20,1,1]},"entrance:438":{"rank":553,"runs":[531,21,1]},"entrance:439":{"rank":553,"runs":[531,21,1]},"entrance:43900":{"rank":554,"runs":[532,20,1,1]},"entrance:43910":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:43920":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:43980":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:43988":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:44":{"rank":553,"runs":[531,21,1]},"entrance:440":{"rank":553,"runs":[531,21,1]},"entrance:44003":{"rank":554,"runs":[532,20,1,1]},"entrance:44083":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:441":{"rank":553,"runs":[531,21,1]},"entrance:44104":{"rank":554,"runs":[532,20,1,1]},"entrance:44114":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:44124":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:44134":{"rank":560,"runs":[537,9,4,3,2,2,1,1,1]},"entrance:44144":{"rank":562,"runs":[537,7,4,4,4,3,1,1,1]},"entrance:44154":{"rank":564,"runs":[537,6,6,5,4,3,1,1,1]},"entrance:44164":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:44174":{"rank":568,"runs":[537,10,10,4,3,1,1,1,1]},"entrance:4418":{"rank":571,"runs":[549,18,2,1,1]},"entrance:44184":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:44190":{"rank":570,"runs":[548,11,4,2,1,1,1,1,1]},"entrance:442":{"rank":553,"runs":[531,21,1]},"entrance:44205":{"rank":554,"runs":[532,20,1,1]},"entrance:4421":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:4422":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:4423":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:4424":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:4425":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:4426":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:4427":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:4428":{"rank":571,"runs":[549,17,1,1,1,1,1]},"entrance:44285":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:443":{"rank":553,"runs":[531,21,1]},"entrance:44345":{"rank":570,"runs":[548,11,4,2,1,1,1,1,1]},"entrance:444":{"rank":553,"runs":[531,21,1]},"entrance:44465":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:445":{"rank":553,"runs":[531,21,1]},"entrance:44587":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:446":{"rank":553,"runs":[531,21,1]},"entrance:447":{"rank":553,"runs":[531,21,1]},"entrance:44707":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:448":{"rank":553,"runs":[531,21,1]},"entrance:44829":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:449":{"rank":553,"runs":[531,21,1]},"entrance:45":{"rank":553,"runs":[531,21,1]},"entrance:450":{"rank":553,"runs":[531,21,1]},"entrance:45027":{"rank":554,"runs":[532,19,1,1,1]},"entrance:451":{"rank":553,"runs":[531,21,1]},"entrance:45124":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:45125":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:45126":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:45127":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:45128":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:45129":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:45130":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:45131":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:45132":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:45133":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:45134":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:452":{"rank":553,"runs":[531,21,1]},"entrance:453":{"rank":553,"runs":[531,21,1]},"entrance:454":{"rank":553,"runs":[531,21,1]},"entrance:455":{"rank":553,"runs":[531,21,1]},"entrance:45544":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:45593":{"rank":554,"runs":[532,19,1,1,1]},"entrance:45594":{"rank":554,"runs":[532,19,1,1,1]},"entrance:45595":{"rank":556,"runs":[534,17,3,1,1]},"entrance:456":{"rank":553,"runs":[531,21,1]},"entrance:45601":{"rank":556,"runs":[534,16,2,1,1,1,1]},"entrance:45602":{"rank":556,"runs":[534,16,2,1,1,1,1]},"entrance:45604":{"rank":556,"runs":[534,16,2,1,1,1,1]},"entrance:45633":{"rank":558,"runs":[536,16,5,1]},"entrance:45635":{"rank":558,"runs":[536,16,5,1]},"entrance:45644":{"rank":562,"runs":[540,12,9,1]},"entrance:45645":{"rank":566,"runs":[537,6,6,5,3,2,2,2,1,1,1]},"entrance:45648":{"rank":568,"runs":[546,10,5,5,1,1]},"entrance:45656":{"rank":568,"runs":[543,6,5,4,4,3,1,1,1]},"entrance:45658":{"rank":566,"runs":[545,7,6,5,1,1,1]},"entrance:45678":{"rank":566,"runs":[541,9,3,2,2,2,2,2,1,1,1]},"entrance:45679":{"rank":566,"runs":[541,5,4,4,4,3,2,1,1,1]},"entrance:45680":{"rank":566,"runs":[545,7,5,5,2,1,1]},"entrance:45687":{"rank":566,"runs":[544,13,8,1]},"entrance:45688":{"rank":566,"runs":[536,8,8,3,3,2,1,1,1,1,1,1]},"entrance:45689":{"rank":566,"runs":[540,5,4,4,3,3,2,1,1,1,1,1]},"entrance:45691":{"rank":569,"runs":[548,10,5,4,1,1]},"entrance:45692":{"rank":569,"runs":[548,10,5,4,1,1]},"entrance:45693":{"rank":569,"runs":[548,6,5,4,4,1,1]},"entrance:45694":{"rank":569,"runs":[548,6,5,4,4,1,1]},"entrance:45697":{"rank":569,"runs":[548,8,5,4,2,1,1]},"entrance:45698":{"rank":569,"runs":[547,12,3,2,1,1,1,1,1]},"entrance:45699":{"rank":569,"runs":[548,8,5,4,2,1,1]},"entrance:457":{"rank":553,"runs":[531,21,1]},"entrance:45700":{"rank":569,"runs":[547,12,3,2,1,1,1,1,1]},"entrance:45701":{"rank":569,"runs":[546,14,2,2,2,1,1,1]},"entrance:45702":{"rank":569,"runs":[546,14,2,2,2,1,1,1]},"entrance:45720":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:45725":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:45747":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:45752":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:45773":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:45778":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:45799":{"rank":571,"runs":[550,6,6,5,2,1,1]},"entrance:458":{"rank":553,"runs":[531,21,1]},"entrance:45804":{"rank":571,"runs":[550,6,6,5,2,1,1]},"entrance:45827":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:45832":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:45855":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:45860":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:45884":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:45889":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:459":{"rank":553,"runs":[531,21,1]},"entrance:45913":{"rank":571,"runs":[549,14,2,1,1,1,1,1,1]},"entrance:45918":{"rank":571,"runs":[549,14,2,1,1,1,1,1,1]},"entrance:45943":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:45948":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:45973":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:45978":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:45983":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:45984":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:45985":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:45986":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:45987":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:45988":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:45989":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:45990":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:45991":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:45992":{"rank":570,"runs":[536,12,12,2,1,1,1,1,1,1,1,1]},"entrance:45993":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:45994":{"rank":570,"runs":[538,10,10,3,2,1,1,1,1,1,1,1]},"entrance:45996":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:45997":{"rank":570,"runs":[536,10,10,3,3,3,1,1,1,1,1]},"entrance:45998":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:45999":{"rank":570,"runs":[547,5,5,4,2,2,2,1,1,1]},"entrance:46":{"rank":553,"runs":[531,21,1]},"entrance:460":{"rank":553,"runs":[531,21,1]},"entrance:46000":{"rank":570,"runs":[545,5,5,4,4,2,2,1,1,1]},"entrance:46001":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:46002":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:46003":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:46004":{"rank":570,"runs":[540,8,8,5,2,1,1,1,1,1,1,1]},"entrance:46005":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:46006":{"rank":570,"runs":[542,7,6,6,2,1,1,1,1,1,1,1]},"entrance:46007":{"rank":570,"runs":[538,8,8,5,3,3,1,1,1,1,1]},"entrance:46008":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:46009":{"rank":570,"runs":[540,7,6,6,3,3,1,1,1,1,1]},"entrance:46010":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:46011":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:46012":{"rank":570,"runs":[544,9,4,4,2,1,1,1,1,1,1,1]},"entrance:46013":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:46014":{"rank":570,"runs":[546,11,2,2,2,1,1,1,1,1,1,1]},"entrance:46015":{"rank":570,"runs":[542,9,4,4,3,3,1,1,1,1,1]},"entrance:46016":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:46017":{"rank":570,"runs":[544,11,3,3,2,2,1,1,1,1,1]},"entrance:46018":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:46019":{"rank":570,"runs":[546,13,3,3,2,1,1,1]},"entrance:46020":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:46021":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:46022":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:46089":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:461":{"rank":553,"runs":[531,21,1]},"entrance:462":{"rank":553,"runs":[531,21,1]},"entrance:46211":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:463":{"rank":553,"runs":[531,21,1]},"entrance:46331":{"rank":570,"runs":[549,6,5,5,3,1,1]},"entrance:464":{"rank":553,"runs":[531,21,1]},"entrance:46453":{"rank":570,"runs":[549,6,5,5,3,1,1]},"entrance:465":{"rank":553,"runs":[531,21,1]},"entrance:46573":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:466":{"rank":553,"runs":[531,21,1]},"entrance:46695":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:467":{"rank":553,"runs":[531,21,1]},"entrance:468":{"rank":553,"runs":[531,21,1]},"entrance:46815":{"rank":570,"runs":[548,13,2,2,1,1,1,1,1]},"entrance:46893":{"rank":554,"runs":[532,20,1,1]},"entrance:469":{"rank":553,"runs":[531,21,1]},"entrance:46975":{"rank":570,"runs":[548,13,2,2,1,1,1,1,1]},"entrance:46999":{"rank":554,"runs":[532,20,1,1]},"entrance:47":{"rank":553,"runs":[531,21,1]},"entrance:470":{"rank":553,"runs":[531,21,1]},"entrance:47009":{"rank":556,"runs":[534,18,3,1]},"entrance:47019":{"rank":558,"runs":[536,16,5,1]},"entrance:47029":{"rank":560,"runs":[538,14,7,1]},"entrance:47039":{"rank":562,"runs":[540,12,9,1]},"entrance:47049":{"rank":564,"runs":[542,11,10,1]},"entrance:47059":{"rank":566,"runs":[544,13,8,1]},"entrance:47069":{"rank":568,"runs":[546,15,6,1]},"entrance:47079":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:471":{"rank":553,"runs":[531,21,1]},"entrance:47106":{"rank":554,"runs":[532,20,1,1]},"entrance:47186":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:472":{"rank":553,"runs":[531,21,1]},"entrance:47213":{"rank":554,"runs":[532,20,1,1]},"entrance:47223":{"rank":556,"runs":[534,18,3,1]},"entrance:47233":{"rank":558,"runs":[536,16,5,1]},"entrance:47243":{"rank":560,"runs":[538,14,7,1]},"entrance:47253":{"rank":562,"runs":[540,12,9,1]},"entrance:47263":{"rank":564,"runs":[542,11,10,1]},"entrance:47273":{"rank":566,"runs":[544,13,8,1]},"entrance:47283":{"rank":568,"runs":[546,15,6,1]},"entrance:47293":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:473":{"rank":553,"runs":[531,21,1]},"entrance:47311":{"rank":554,"runs":[532,19,1,1,1]},"entrance:474":{"rank":553,"runs":[531,21,1]},"entrance:47400":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:47401":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:47402":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:47403":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:47404":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:47405":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:47406":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:47407":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:47408":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:47409":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:47410":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:47419":{"rank":554,"runs":[532,19,1,1,1]},"entrance:475":{"rank":553,"runs":[531,21,1]},"entrance:47508":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:47509":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:47510":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:47511":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:47512":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:47513":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:47514":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:47515":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:47516":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:47517":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:47518":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:476":{"rank":553,"runs":[531,21,1]},"entrance:477":{"rank":553,"runs":[531,21,1]},"entrance:478":{"rank":553,"runs":[531,21,1]},"entrance:479":{"rank":553,"runs":[531,21,1]},"entrance:47921":{"rank":554,"runs":[532,19,1,1,1]},"entrance:47922":{"rank":554,"runs":[532,19,1,1,1]},"entrance:47934":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:47937":{"rank":556,"runs":[534,15,2,2,1,1,1]},"entrance:47998":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:47999":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:48":{"rank":553,"runs":[531,21,1]},"entrance:480":{"rank":553,"runs":[531,21,1]},"entrance:48028":{"rank":558,"runs":[537,15,3,1,1,1]},"entrance:48034":{"rank":564,"runs":[535,8,7,6,3,3,1,1]},"entrance:48037":{"rank":562,"runs":[537,9,4,4,3,2,1,1,1]},"entrance:48038":{"rank":566,"runs":[537,8,8,6,3,1,1,1,1]},"entrance:48048":{"rank":566,"runs":[545,7,5,4,3,1,1]},"entrance:48049":{"rank":568,"runs":[537,10,9,4,4,1,1,1,1]},"entrance:48050":{"rank":564,"runs":[541,8,5,4,2,1,1,1,1]},"entrance:48051":{"rank":566,"runs":[544,11,4,3,1,1,1,1]},"entrance:48068":{"rank":566,"runs":[537,4,4,4,4,4,3,2,1,1,1,1]},"entrance:48069":{"rank":566,"runs":[540,7,5,5,4,3,1,1]},"entrance:48070":{"rank":566,"runs":[545,7,7,4,1,1,1]},"entrance:48077":{"rank":566,"runs":[537,8,8,5,3,2,1,1,1]},"entrance:48078":{"rank":566,"runs":[536,9,9,4,3,3,1,1]},"entrance:48079":{"rank":566,"runs":[541,4,4,4,4,3,3,1,1,1]},"entrance:48081":{"rank":569,"runs":[548,15,4,1,1]},"entrance:48082":{"rank":569,"runs":[548,15,4,1,1]},"entrance:48083":{"rank":569,"runs":[548,10,4,4,1,1,1]},"entrance:48084":{"rank":569,"runs":[548,10,4,4,1,1,1]},"entrance:48087":{"rank":569,"runs":[548,6,5,4,4,1,1]},"entrance:48088":{"rank":569,"runs":[548,9,4,4,2,1,1]},"entrance:48089":{"rank":569,"runs":[548,6,5,4,4,1,1]},"entrance:48090":{"rank":569,"runs":[548,9,4,4,2,1,1]},"entrance:48091":{"rank":569,"runs":[536,12,12,3,2,2,1,1]},"entrance:48092":{"rank":569,"runs":[536,12,12,3,2,2,1,1]},"entrance:481":{"rank":553,"runs":[531,21,1]},"entrance:48110":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"entrance:48115":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"entrance:48137":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:48142":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:48163":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:48168":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:48189":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:48194":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:48199":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:482":{"rank":553,"runs":[531,21,1]},"entrance:48217":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:48222":{"rank":571,"runs":[550,8,5,4,2,1,1]},"entrance:48227":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:48245":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:48250":{"rank":571,"runs":[550,7,6,4,2,1,1]},"entrance:48255":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:48274":{"rank":571,"runs":[550,9,4,4,2,1,1]},"entrance:48279":{"rank":571,"runs":[550,9,4,4,2,1,1]},"entrance:48284":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:4829":{"rank":554,"runs":[532,19,1,1,1]},"entrance:483":{"rank":553,"runs":[531,21,1]},"entrance:48303":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:48308":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:48313":{"rank":558,"runs":[536,15,4,1,1,1]},"entrance:48333":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:48338":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:48343":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:48363":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:48368":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:48373":{"rank":570,"runs":[546,13,2,2,1,1,1,1,1,1,1]},"entrance:48374":{"rank":570,"runs":[544,11,3,3,2,2,1,1,1,1,1]},"entrance:48375":{"rank":570,"runs":[548,13,2,2,1,1,1,1,1]},"entrance:48376":{"rank":570,"runs":[546,11,3,3,2,2,1,1,1]},"entrance:48377":{"rank":570,"runs":[542,9,5,5,2,2,1,1,1,1,1]},"entrance:48378":{"rank":570,"runs":[540,7,7,7,2,2,1,1,1,1,1]},"entrance:48379":{"rank":570,"runs":[544,9,5,5,2,2,1,1,1]},"entrance:4838":{"rank":554,"runs":[533,19,1,1]},"entrance:48380":{"rank":570,"runs":[542,7,7,7,2,2,1,1,1]},"entrance:48381":{"rank":570,"runs":[538,9,9,5,2,2,1,1,1,1,1]},"entrance:48382":{"rank":570,"runs":[536,11,11,3,2,2,1,1,1,1,1]},"entrance:48383":{"rank":570,"runs":[540,9,9,5,2,2,1,1,1]},"entrance:48384":{"rank":570,"runs":[538,11,11,3,2,2,1,1,1]},"entrance:48386":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:48387":{"rank":570,"runs":[536,13,13,2,2,1,1,1,1]},"entrance:48388":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:48389":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:4839":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48390":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:48391":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:48392":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:48393":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:48394":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:48395":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:48396":{"rank":570,"runs":[543,6,6,4,3,3,2,1,1,1]},"entrance:48397":{"rank":570,"runs":[539,10,10,4,2,1,1,1,1,1]},"entrance:48398":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:48399":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:484":{"rank":553,"runs":[531,21,1]},"entrance:48400":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:48401":{"rank":570,"runs":[547,5,5,4,2,2,2,1,1,1]},"entrance:48402":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:48403":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:48404":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:48405":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:48406":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:48407":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:48408":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:48409":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:48410":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:48411":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:48412":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:48428":{"rank":554,"runs":[532,20,1,1]},"entrance:48438":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:4848":{"rank":554,"runs":[533,19,1,1]},"entrance:4849":{"rank":554,"runs":[532,19,1,1,1]},"entrance:485":{"rank":553,"runs":[531,21,1]},"entrance:4850":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48508":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:48516":{"rank":570,"runs":[549,16,3,1,1]},"entrance:4852":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4853":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48533":{"rank":554,"runs":[532,20,1,1]},"entrance:4855":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4856":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4858":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4859":{"rank":554,"runs":[532,19,1,1,1]},"entrance:486":{"rank":553,"runs":[531,21,1]},"entrance:4861":{"rank":554,"runs":[532,19,1,1,1]},"entrance:4862":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48636":{"rank":554,"runs":[532,20,1,1]},"entrance:4864":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48646":{"rank":556,"runs":[535,17,1,1,1,1]},"entrance:4865":{"rank":554,"runs":[532,19,1,1,1]},"entrance:48656":{"rank":558,"runs":[535,11,4,2,2,1,1,1,1]},"entrance:48666":{"rank":560,"runs":[535,9,4,4,4,1,1,1,1]},"entrance:48676":{"rank":562,"runs":[535,7,6,6,4,1,1,1,1]},"entrance:48686":{"rank":564,"runs":[535,8,8,5,4,1,1,1,1]},"entrance:48696":{"rank":566,"runs":[535,10,10,4,3,1,1,1,1]},"entrance:487":{"rank":553,"runs":[531,21,1]},"entrance:48706":{"rank":568,"runs":[535,12,12,4,1,1,1,1,1]},"entrance:48716":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:48724":{"rank":570,"runs":[549,16,3,1,1]},"entrance:4873":{"rank":554,"runs":[533,19,1,1]},"entrance:48739":{"rank":554,"runs":[532,20,1,1]},"entrance:4874":{"rank":554,"runs":[533,19,1,1]},"entrance:4875":{"rank":556,"runs":[535,17,2,1,1]},"entrance:488":{"rank":553,"runs":[531,21,1]},"entrance:48819":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:48879":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:489":{"rank":553,"runs":[531,21,1]},"entrance:4897":{"rank":554,"runs":[533,19,1,1]},"entrance:4898":{"rank":554,"runs":[533,19,1,1]},"entrance:4899":{"rank":556,"runs":[533,16,2,2,1,1,1]},"entrance:49":{"rank":553,"runs":[531,21,1]},"entrance:490":{"rank":553,"runs":[531,21,1]},"entrance:49001":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:491":{"rank":553,"runs":[531,21,1]},"entrance:49121":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:4918":{"rank":554,"runs":[533,19,1,1]},"entrance:4919":{"rank":554,"runs":[533,19,1,1]},"entrance:492":{"rank":553,"runs":[531,21,1]},"entrance:49243":{"rank":570,"runs":[549,7,5,4,3,1,1]},"entrance:493":{"rank":553,"runs":[531,21,1]},"entrance:4936":{"rank":554,"runs":[533,19,1,1]},"entrance:49363":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:4937":{"rank":554,"runs":[533,19,1,1]},"entrance:494":{"rank":553,"runs":[531,21,1]},"entrance:49485":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:495":{"rank":553,"runs":[531,21,1]},"entrance:4951":{"rank":554,"runs":[533,19,1,1]},"entrance:4952":{"rank":554,"runs":[533,19,1,1]},"entrance:496":{"rank":553,"runs":[531,21,1]},"entrance:4963":{"rank":554,"runs":[533,19,1,1]},"entrance:4964":{"rank":554,"runs":[533,19,1,1]},"entrance:49683":{"rank":554,"runs":[532,19,1,1,1]},"entrance:497":{"rank":553,"runs":[531,21,1]},"entrance:4972":{"rank":554,"runs":[533,19,1,1]},"entrance:4973":{"rank":554,"runs":[533,19,1,1]},"entrance:4978":{"rank":554,"runs":[533,19,1,1]},"entrance:49780":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:49781":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:49782":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:49783":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:49784":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:49785":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:49786":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:49787":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:49788":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:49789":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:4979":{"rank":554,"runs":[533,19,1,1]},"entrance:49790":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:498":{"rank":553,"runs":[531,21,1]},"entrance:4981":{"rank":554,"runs":[533,19,1,1]},"entrance:4982":{"rank":554,"runs":[533,19,1,1]},"entrance:4983":{"rank":556,"runs":[533,15,2,2,2,1,1]},"entrance:4984":{"rank":556,"runs":[534,17,3,1,1]},"entrance:4988":{"rank":556,"runs":[533,15,2,2,2,1,1]},"entrance:4989":{"rank":556,"runs":[534,17,3,1,1]},"entrance:499":{"rank":553,"runs":[531,21,1]},"entrance:4993":{"rank":556,"runs":[533,15,2,2,2,1,1]},"entrance:4994":{"rank":558,"runs":[536,15,5,1,1]},"entrance:4995":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:5":{"rank":553,"runs":[531,21,1]},"entrance:50":{"rank":553,"runs":[531,21,1]},"entrance:500":{"rank":553,"runs":[531,21,1]},"entrance:501":{"rank":553,"runs":[531,21,1]},"entrance:50191":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50192":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:502":{"rank":553,"runs":[531,21,1]},"entrance:50200":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:50201":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50202":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50211":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50212":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50220":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50221":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50228":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50229":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50235":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50236":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:5024":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:50241":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50242":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50246":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50247":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50249":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:50250":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50251":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50253":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50254":{"rank":554,"runs":[532,18,1,1,1,1]},"entrance:50255":{"rank":556,"runs":[534,18,3,1]},"entrance:50256":{"rank":556,"runs":[534,18,3,1]},"entrance:50258":{"rank":556,"runs":[534,18,3,1]},"entrance:50268":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:50269":{"rank":558,"runs":[535,12,3,3,2,1,1,1]},"entrance:50277":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:50278":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:50283":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:50284":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:50286":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:50287":{"rank":558,"runs":[536,15,3,2,1,1]},"entrance:50289":{"rank":558,"runs":[536,16,5,1]},"entrance:50298":{"rank":562,"runs":[540,12,9,1]},"entrance:50299":{"rank":566,"runs":[537,8,7,5,4,3,1,1]},"entrance:503":{"rank":553,"runs":[531,21,1]},"entrance:5030":{"rank":564,"runs":[535,8,7,5,4,3,1,1]},"entrance:50302":{"rank":568,"runs":[546,12,5,3,1,1]},"entrance:50310":{"rank":568,"runs":[543,8,4,4,3,3,1,1,1]},"entrance:50311":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:50312":{"rank":566,"runs":[545,8,7,3,1,1,1]},"entrance:5033":{"rank":562,"runs":[539,10,7,2,1,1,1,1]},"entrance:50332":{"rank":566,"runs":[541,9,4,4,3,3,1,1]},"entrance:50333":{"rank":566,"runs":[541,4,4,4,4,3,3,1,1,1]},"entrance:50334":{"rank":566,"runs":[545,7,5,4,3,1,1]},"entrance:50341":{"rank":566,"runs":[544,13,8,1]},"entrance:50342":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:50343":{"rank":566,"runs":[541,5,4,4,4,3,3,1,1]},"entrance:50345":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:50346":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:50347":{"rank":569,"runs":[548,8,4,4,3,1,1]},"entrance:50348":{"rank":569,"runs":[548,8,4,4,3,1,1]},"entrance:50351":{"rank":569,"runs":[548,8,4,4,3,1,1]},"entrance:50352":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:50353":{"rank":569,"runs":[548,8,4,4,3,1,1]},"entrance:50354":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:50355":{"rank":569,"runs":[547,16,4,1,1]},"entrance:50356":{"rank":569,"runs":[547,16,4,1,1]},"entrance:50374":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:50379":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:5039":{"rank":568,"runs":[546,15,5,1,1]},"entrance:504":{"rank":553,"runs":[531,21,1]},"entrance:50401":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:50406":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:50427":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:50432":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:50453":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:50458":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:50481":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:50486":{"rank":571,"runs":[550,8,6,3,2,1,1]},"entrance:505":{"rank":553,"runs":[531,21,1]},"entrance:5050":{"rank":560,"runs":[538,13,7,1,1]},"entrance:50509":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:50514":{"rank":571,"runs":[550,10,4,3,2,1,1]},"entrance:50538":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:50543":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:50567":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:5057":{"rank":568,"runs":[546,15,5,1,1]},"entrance:50572":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:50597":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:506":{"rank":553,"runs":[531,21,1]},"entrance:50602":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:50627":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:50632":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:50637":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:50638":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:50639":{"rank":570,"runs":[549,10,3,3,3,1,1]},"entrance:50640":{"rank":570,"runs":[547,8,3,3,2,2,2,1,1,1]},"entrance:50641":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:50642":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:50643":{"rank":570,"runs":[545,6,4,4,3,3,2,1,1,1]},"entrance:50644":{"rank":570,"runs":[543,6,6,4,3,3,2,1,1,1]},"entrance:50645":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:50646":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:50647":{"rank":570,"runs":[541,8,8,3,3,2,2,1,1,1]},"entrance:50648":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:50649":{"rank":570,"runs":[534,14,14,1,1,1,1,1,1,1,1]},"entrance:50650":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:50651":{"rank":570,"runs":[536,12,12,3,1,1,1,1,1,1,1]},"entrance:50652":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:50653":{"rank":570,"runs":[547,6,5,3,2,2,2,1,1,1]},"entrance:50654":{"rank":570,"runs":[545,5,4,4,4,3,2,1,1,1]},"entrance:50655":{"rank":570,"runs":[549,7,6,3,3,1,1]},"entrance:50656":{"rank":570,"runs":[547,7,4,3,2,2,2,1,1,1]},"entrance:50657":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:50658":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:50659":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:50660":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:50661":{"rank":570,"runs":[538,10,10,5,1,1,1,1,1,1,1]},"entrance:50662":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:50663":{"rank":570,"runs":[540,8,8,7,1,1,1,1,1,1,1]},"entrance:50664":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:50665":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:50666":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:50667":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:50668":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:50669":{"rank":570,"runs":[542,9,6,6,1,1,1,1,1,1,1]},"entrance:50670":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:50671":{"rank":570,"runs":[544,11,4,4,1,1,1,1,1,1,1]},"entrance:50672":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:50673":{"rank":570,"runs":[546,13,2,2,1,1,1,1,1,1,1]},"entrance:50674":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:50675":{"rank":570,"runs":[548,15,2,1,1,1,1,1]},"entrance:50676":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:507":{"rank":553,"runs":[531,21,1]},"entrance:5072":{"rank":566,"runs":[539,7,4,4,4,2,2,1,1,1,1]},"entrance:50743":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:508":{"rank":553,"runs":[531,21,1]},"entrance:5081":{"rank":566,"runs":[543,11,6,2,1,1,1,1]},"entrance:5085":{"rank":569,"runs":[533,15,15,3,1,1,1]},"entrance:5086":{"rank":569,"runs":[534,14,14,3,1,1,1,1]},"entrance:50865":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:5087":{"rank":569,"runs":[537,11,11,4,3,1,1,1]},"entrance:5088":{"rank":569,"runs":[538,10,10,4,3,1,1,1,1]},"entrance:509":{"rank":553,"runs":[531,21,1]},"entrance:5091":{"rank":569,"runs":[541,8,7,7,3,1,1,1]},"entrance:5092":{"rank":569,"runs":[545,12,3,3,3,1,1,1]},"entrance:5093":{"rank":569,"runs":[542,8,6,6,3,1,1,1,1]},"entrance:5094":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"entrance:5095":{"rank":569,"runs":[547,15,2,2,1,1,1]},"entrance:5096":{"rank":569,"runs":[547,15,3,1,1,1,1]},"entrance:50985":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:51":{"rank":553,"runs":[531,21,1]},"entrance:510":{"rank":553,"runs":[531,21,1]},"entrance:511":{"rank":553,"runs":[531,21,1]},"entrance:51107":{"rank":570,"runs":[549,8,5,3,3,1,1]},"entrance:5114":{"rank":571,"runs":[533,17,17,1,1,1,1]},"entrance:5119":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"entrance:512":{"rank":553,"runs":[531,21,1]},"entrance:51227":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:513":{"rank":553,"runs":[531,21,1]},"entrance:51349":{"rank":570,"runs":[549,9,4,3,3,1,1]},"entrance:514":{"rank":553,"runs":[531,21,1]},"entrance:5141":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:5146":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"entrance:51469":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:515":{"rank":553,"runs":[531,21,1]},"entrance:51591":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:516":{"rank":553,"runs":[531,21,1]},"entrance:5167":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:51670":{"rank":554,"runs":[532,20,1,1]},"entrance:517":{"rank":553,"runs":[531,21,1]},"entrance:5172":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"entrance:51750":{"rank":570,"runs":[548,17,4,1]},"entrance:51777":{"rank":554,"runs":[532,20,1,1]},"entrance:51787":{"rank":556,"runs":[534,18,3,1]},"entrance:51797":{"rank":558,"runs":[536,16,5,1]},"entrance:518":{"rank":553,"runs":[531,21,1]},"entrance:51807":{"rank":560,"runs":[538,14,7,1]},"entrance:51817":{"rank":562,"runs":[540,12,9,1]},"entrance:51827":{"rank":564,"runs":[542,11,10,1]},"entrance:51837":{"rank":566,"runs":[544,13,8,1]},"entrance:51847":{"rank":568,"runs":[546,15,6,1]},"entrance:51857":{"rank":570,"runs":[548,17,4,1]},"entrance:51875":{"rank":554,"runs":[532,19,1,1,1]},"entrance:519":{"rank":553,"runs":[531,21,1]},"entrance:5193":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:51964":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:51965":{"rank":570,"runs":[548,17,4,1]},"entrance:51966":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:51967":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:51968":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:51969":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:51970":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:51971":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:51972":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:51973":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:51974":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:5198":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"entrance:51983":{"rank":554,"runs":[532,19,1,1,1]},"entrance:52":{"rank":553,"runs":[531,21,1]},"entrance:520":{"rank":553,"runs":[531,21,1]},"entrance:5203":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:52072":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:52073":{"rank":570,"runs":[548,17,4,1]},"entrance:52074":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:52075":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:52076":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:52077":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:52078":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:52079":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:52080":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:52081":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:52082":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:521":{"rank":553,"runs":[531,21,1]},"entrance:522":{"rank":553,"runs":[531,21,1]},"entrance:5221":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:5226":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"entrance:523":{"rank":553,"runs":[531,21,1]},"entrance:5231":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:524":{"rank":553,"runs":[531,21,1]},"entrance:52485":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:5249":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:52496":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:52499":{"rank":556,"runs":[534,17,2,1,1,1]},"entrance:525":{"rank":553,"runs":[531,21,1]},"entrance:5254":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"entrance:52563":{"rank":558,"runs":[535,14,2,2,1,1,1,1,1]},"entrance:52584":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:5259":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:52593":{"rank":562,"runs":[535,9,6,6,2,1,1,1,1]},"entrance:526":{"rank":553,"runs":[531,21,1]},"entrance:52604":{"rank":566,"runs":[545,7,7,3,2,1,1]},"entrance:52605":{"rank":568,"runs":[537,10,9,4,3,2,1,1,1]},"entrance:52606":{"rank":564,"runs":[541,8,7,2,2,1,1,1,1]},"entrance:52607":{"rank":566,"runs":[544,11,5,2,1,1,1,1]},"entrance:52625":{"rank":566,"runs":[540,7,4,4,3,2,2,1,1,1,1]},"entrance:52626":{"rank":566,"runs":[545,7,7,3,2,1,1]},"entrance:52633":{"rank":566,"runs":[535,10,10,5,2,1,1,1,1]},"entrance:52634":{"rank":566,"runs":[536,8,8,3,3,2,2,1,1,1,1]},"entrance:52635":{"rank":566,"runs":[541,4,4,4,3,3,3,2,1,1]},"entrance:52637":{"rank":569,"runs":[547,14,2,2,1,1,1,1]},"entrance:52638":{"rank":569,"runs":[547,14,2,2,1,1,1,1]},"entrance:52639":{"rank":569,"runs":[548,10,4,3,2,1,1]},"entrance:52640":{"rank":569,"runs":[548,10,4,3,2,1,1]},"entrance:52643":{"rank":569,"runs":[548,7,6,4,2,1,1]},"entrance:52644":{"rank":569,"runs":[548,11,4,2,2,1,1]},"entrance:52645":{"rank":569,"runs":[548,7,6,4,2,1,1]},"entrance:52646":{"rank":569,"runs":[548,11,4,2,2,1,1]},"entrance:52647":{"rank":569,"runs":[534,14,14,2,2,1,1,1]},"entrance:52648":{"rank":569,"runs":[534,14,14,2,2,1,1,1]},"entrance:52666":{"rank":571,"runs":[550,17,2,1,1]},"entrance:52671":{"rank":571,"runs":[550,17,2,1,1]},"entrance:52693":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:52698":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:527":{"rank":553,"runs":[531,21,1]},"entrance:52719":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:52724":{"rank":571,"runs":[550,12,3,2,2,1,1]},"entrance:52745":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:52750":{"rank":571,"runs":[550,10,5,2,2,1,1]},"entrance:52773":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:52778":{"rank":571,"runs":[550,8,7,2,2,1,1]},"entrance:5278":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:528":{"rank":553,"runs":[531,21,1]},"entrance:52801":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:52806":{"rank":571,"runs":[550,9,6,2,2,1,1]},"entrance:5283":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"entrance:52830":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:52835":{"rank":571,"runs":[550,11,4,2,2,1,1]},"entrance:52859":{"rank":571,"runs":[550,13,2,2,2,1,1]},"entrance:52864":{"rank":571,"runs":[550,13,2,2,2,1,1]},"entrance:52869":{"rank":558,"runs":[536,15,3,2,1,1]},"entrance:5288":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:52889":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:52894":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:529":{"rank":553,"runs":[531,21,1]},"entrance:52919":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:52924":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:52929":{"rank":570,"runs":[546,13,3,3,2,1,1,1]},"entrance:52930":{"rank":570,"runs":[544,11,5,5,2,1,1,1]},"entrance:52931":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:52932":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:52933":{"rank":570,"runs":[542,9,7,7,2,1,1,1]},"entrance:52934":{"rank":570,"runs":[540,9,9,7,2,1,1,1]},"entrance:52935":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:52936":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:52937":{"rank":570,"runs":[538,11,11,5,2,1,1,1]},"entrance:52938":{"rank":570,"runs":[536,13,13,3,2,1,1,1]},"entrance:52939":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:52940":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:52941":{"rank":570,"runs":[534,15,15,2,1,1,1,1]},"entrance:52942":{"rank":570,"runs":[548,17,4,1]},"entrance:52943":{"rank":570,"runs":[537,12,12,2,2,1,1,1,1,1]},"entrance:52944":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:52945":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:52946":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:52947":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:52948":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:52949":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:52950":{"rank":570,"runs":[541,8,8,3,3,2,2,1,1,1]},"entrance:52951":{"rank":570,"runs":[545,5,5,4,4,2,2,1,1,1]},"entrance:52952":{"rank":570,"runs":[543,6,6,5,3,2,2,1,1,1]},"entrance:52953":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:52954":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:52955":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:52956":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:52957":{"rank":570,"runs":[547,7,5,2,2,2,2,1,1,1]},"entrance:52958":{"rank":570,"runs":[545,7,4,4,3,2,2,1,1,1]},"entrance:52959":{"rank":570,"runs":[549,9,5,3,2,1,1]},"entrance:52960":{"rank":570,"runs":[547,9,3,2,2,2,2,1,1,1]},"entrance:52961":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:52962":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:52963":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:52964":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:52965":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:52966":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:52967":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:52968":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:52984":{"rank":554,"runs":[532,20,1,1]},"entrance:53":{"rank":553,"runs":[531,21,1]},"entrance:530":{"rank":553,"runs":[531,21,1]},"entrance:53064":{"rank":570,"runs":[548,17,4,1]},"entrance:5307":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:53072":{"rank":570,"runs":[548,15,2,1,1,1,1,1]},"entrance:53089":{"rank":554,"runs":[532,20,1,1]},"entrance:531":{"rank":553,"runs":[531,21,1]},"entrance:5312":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"entrance:532":{"rank":553,"runs":[531,21,1]},"entrance:53231":{"rank":570,"runs":[548,15,2,1,1,1,1,1]},"entrance:533":{"rank":553,"runs":[531,21,1]},"entrance:53351":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:5337":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:534":{"rank":553,"runs":[531,21,1]},"entrance:5342":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:53473":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:535":{"rank":553,"runs":[531,21,1]},"entrance:53593":{"rank":570,"runs":[549,7,7,3,2,1,1]},"entrance:536":{"rank":553,"runs":[531,21,1]},"entrance:5367":{"rank":571,"runs":[549,18,2,1,1]},"entrance:537":{"rank":553,"runs":[531,21,1]},"entrance:53715":{"rank":570,"runs":[549,7,7,3,2,1,1]},"entrance:5372":{"rank":571,"runs":[549,17,1,1,1,1,1]},"entrance:5377":{"rank":570,"runs":[547,14,2,2,2,1,1,1]},"entrance:5378":{"rank":570,"runs":[545,12,4,4,2,1,1,1]},"entrance:5379":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:538":{"rank":553,"runs":[531,21,1]},"entrance:5380":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:5381":{"rank":570,"runs":[543,10,6,6,2,1,1,1]},"entrance:5382":{"rank":570,"runs":[541,8,8,8,2,1,1,1]},"entrance:5383":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:53835":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:5384":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:5385":{"rank":570,"runs":[539,10,10,6,2,1,1,1]},"entrance:5386":{"rank":570,"runs":[537,12,12,4,2,1,1,1]},"entrance:5387":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:5388":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:5389":{"rank":570,"runs":[535,14,14,2,2,1,1,1]},"entrance:539":{"rank":553,"runs":[531,21,1]},"entrance:5391":{"rank":570,"runs":[537,12,12,2,2,2,1,1,1]},"entrance:5393":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:5394":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:5395":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:53957":{"rank":570,"runs":[549,11,3,3,2,1,1]},"entrance:5396":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:5397":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:5398":{"rank":570,"runs":[541,8,8,4,4,2,1,1,1]},"entrance:5399":{"rank":570,"runs":[545,6,6,4,4,2,1,1,1]},"entrance:54":{"rank":553,"runs":[531,21,1]},"entrance:540":{"rank":553,"runs":[531,21,1]},"entrance:5400":{"rank":570,"runs":[543,6,6,6,4,2,1,1,1]},"entrance:5401":{"rank":570,"runs":[539,10,10,4,2,2,1,1,1]},"entrance:5402":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:5403":{"rank":570,"runs":[541,8,8,6,2,2,1,1,1]},"entrance:5404":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:5405":{"rank":570,"runs":[547,8,6,2,2,2,1,1,1]},"entrance:5406":{"rank":570,"runs":[545,8,4,4,4,2,1,1,1]},"entrance:5407":{"rank":570,"runs":[549,10,6,3,1,1]},"entrance:5408":{"rank":570,"runs":[547,10,4,2,2,2,1,1,1]},"entrance:5409":{"rank":570,"runs":[543,8,6,6,2,2,1,1,1]},"entrance:541":{"rank":553,"runs":[531,21,1]},"entrance:5410":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:5411":{"rank":570,"runs":[545,10,4,4,2,2,1,1,1]},"entrance:5412":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:5413":{"rank":570,"runs":[547,12,2,2,2,2,1,1,1]},"entrance:5414":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:5415":{"rank":570,"runs":[549,14,3,2,1,1]},"entrance:54155":{"rank":554,"runs":[532,19,1,1,1]},"entrance:5416":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:542":{"rank":553,"runs":[531,21,1]},"entrance:54252":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:54253":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:54254":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:54255":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:54256":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:54257":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:54258":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:54259":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:54260":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:54261":{"rank":570,"runs":[548,17,4,1]},"entrance:54262":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:543":{"rank":553,"runs":[531,21,1]},"entrance:544":{"rank":553,"runs":[531,21,1]},"entrance:545":{"rank":553,"runs":[531,21,1]},"entrance:546":{"rank":553,"runs":[531,21,1]},"entrance:54663":{"rank":554,"runs":[532,20,1,1]},"entrance:54664":{"rank":554,"runs":[532,20,1,1]},"entrance:54673":{"rank":554,"runs":[532,20,1,1]},"entrance:54674":{"rank":554,"runs":[532,20,1,1]},"entrance:54675":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:54683":{"rank":554,"runs":[532,20,1,1]},"entrance:54684":{"rank":554,"runs":[532,20,1,1]},"entrance:54692":{"rank":554,"runs":[532,20,1,1]},"entrance:54693":{"rank":554,"runs":[532,20,1,1]},"entrance:547":{"rank":553,"runs":[531,21,1]},"entrance:54700":{"rank":554,"runs":[532,20,1,1]},"entrance:54701":{"rank":554,"runs":[532,20,1,1]},"entrance:54707":{"rank":554,"runs":[532,20,1,1]},"entrance:54708":{"rank":554,"runs":[532,20,1,1]},"entrance:54713":{"rank":554,"runs":[532,20,1,1]},"entrance:54714":{"rank":554,"runs":[532,20,1,1]},"entrance:54718":{"rank":554,"runs":[532,20,1,1]},"entrance:54719":{"rank":554,"runs":[532,20,1,1]},"entrance:54722":{"rank":554,"runs":[532,20,1,1]},"entrance:54723":{"rank":554,"runs":[532,20,1,1]},"entrance:54724":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:54725":{"rank":554,"runs":[532,20,1,1]},"entrance:54726":{"rank":554,"runs":[532,20,1,1]},"entrance:54727":{"rank":556,"runs":[534,17,2,1,1,1]},"entrance:54728":{"rank":556,"runs":[534,17,2,1,1,1]},"entrance:54730":{"rank":556,"runs":[534,17,2,1,1,1]},"entrance:54740":{"rank":558,"runs":[535,14,2,2,1,1,1,1,1]},"entrance:54749":{"rank":558,"runs":[535,10,5,2,2,1,1,1,1]},"entrance:54750":{"rank":558,"runs":[535,8,7,2,2,1,1,1,1]},"entrance:54755":{"rank":558,"runs":[535,9,6,2,2,1,1,1,1]},"entrance:54756":{"rank":558,"runs":[535,11,4,2,2,1,1,1,1]},"entrance:54758":{"rank":558,"runs":[535,13,2,2,2,1,1,1,1]},"entrance:54759":{"rank":558,"runs":[536,15,4,1,1,1]},"entrance:54761":{"rank":558,"runs":[536,16,5,1]},"entrance:54770":{"rank":562,"runs":[540,12,9,1]},"entrance:54771":{"rank":566,"runs":[537,8,7,5,4,3,1,1]},"entrance:54774":{"rank":568,"runs":[546,14,5,1,1,1]},"entrance:54782":{"rank":568,"runs":[543,10,4,4,3,1,1,1,1]},"entrance:54783":{"rank":564,"runs":[535,8,8,7,2,1,1,1,1]},"entrance:54784":{"rank":566,"runs":[545,10,7,1,1,1,1]},"entrance:548":{"rank":553,"runs":[531,21,1]},"entrance:54804":{"rank":566,"runs":[541,9,4,4,3,3,1,1]},"entrance:54805":{"rank":566,"runs":[541,6,4,4,4,3,1,1,1,1]},"entrance:54806":{"rank":566,"runs":[545,7,6,5,1,1,1]},"entrance:54813":{"rank":566,"runs":[544,13,8,1]},"entrance:54814":{"rank":566,"runs":[537,8,8,4,3,2,1,1,1,1]},"entrance:54815":{"rank":566,"runs":[541,5,4,4,4,3,2,1,1,1]},"entrance:54817":{"rank":569,"runs":[548,14,4,1,1,1]},"entrance:54818":{"rank":569,"runs":[548,14,4,1,1,1]},"entrance:54819":{"rank":569,"runs":[548,10,4,4,1,1,1]},"entrance:54820":{"rank":569,"runs":[548,10,4,4,1,1,1]},"entrance:54823":{"rank":569,"runs":[548,8,6,4,1,1,1]},"entrance:54824":{"rank":569,"runs":[548,12,4,2,1,1,1]},"entrance:54825":{"rank":569,"runs":[548,8,6,4,1,1,1]},"entrance:54826":{"rank":569,"runs":[548,12,4,2,1,1,1]},"entrance:54827":{"rank":569,"runs":[547,16,4,1,1]},"entrance:54828":{"rank":569,"runs":[547,16,4,1,1]},"entrance:54846":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:54851":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:54873":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:54878":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:54899":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:549":{"rank":553,"runs":[531,21,1]},"entrance:54904":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:54925":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:54930":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:54953":{"rank":571,"runs":[550,8,8,2,1,1,1]},"entrance:54958":{"rank":571,"runs":[550,8,8,2,1,1,1]},"entrance:54981":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:54986":{"rank":571,"runs":[550,10,6,2,1,1,1]},"entrance:55":{"rank":553,"runs":[531,21,1]},"entrance:550":{"rank":553,"runs":[531,21,1]},"entrance:55010":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:55015":{"rank":571,"runs":[550,12,4,2,1,1,1]},"entrance:55039":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:55044":{"rank":571,"runs":[550,14,2,2,1,1,1]},"entrance:55069":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:55074":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:55099":{"rank":571,"runs":[549,18,2,1,1]},"entrance:551":{"rank":553,"runs":[531,21,1]},"entrance:55104":{"rank":571,"runs":[549,18,2,1,1]},"entrance:55109":{"rank":570,"runs":[547,12,2,2,2,1,1,1,1,1]},"entrance:55110":{"rank":570,"runs":[545,10,4,4,2,1,1,1,1,1]},"entrance:55111":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:55112":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:55113":{"rank":570,"runs":[543,8,6,6,2,1,1,1,1,1]},"entrance:55114":{"rank":570,"runs":[541,8,8,6,2,1,1,1,1,1]},"entrance:55115":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:55116":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:55117":{"rank":570,"runs":[539,10,10,4,2,1,1,1,1,1]},"entrance:55118":{"rank":570,"runs":[537,12,12,2,2,1,1,1,1,1]},"entrance:55119":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:55120":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:55121":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:55123":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:55124":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:55125":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:55126":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:55127":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:55128":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:55129":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:55130":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:55131":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:55132":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:55133":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:55134":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:55135":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:55136":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:55137":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:55138":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:55139":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:55140":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:55141":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:55142":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:55143":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:55144":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:55145":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:55146":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:55147":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:55148":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:552":{"rank":553,"runs":[531,21,1]},"entrance:5520":{"rank":570,"runs":[549,16,3,1,1]},"entrance:55215":{"rank":570,"runs":[549,14,3,1,1,1,1]},"entrance:553":{"rank":553,"runs":[531,21,1]},"entrance:55337":{"rank":570,"runs":[549,14,3,1,1,1,1]},"entrance:554":{"rank":553,"runs":[531,21,1]},"entrance:55457":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:555":{"rank":553,"runs":[531,21,1]},"entrance:55579":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:556":{"rank":553,"runs":[531,21,1]},"entrance:55699":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:557":{"rank":553,"runs":[531,21,1]},"entrance:558":{"rank":553,"runs":[531,21,1]},"entrance:55821":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:559":{"rank":553,"runs":[531,21,1]},"entrance:55941":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:56":{"rank":553,"runs":[531,21,1]},"entrance:560":{"rank":553,"runs":[531,21,1]},"entrance:56063":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:561":{"rank":553,"runs":[531,21,1]},"entrance:562":{"rank":553,"runs":[531,21,1]},"entrance:563":{"rank":553,"runs":[531,21,1]},"entrance:56344":{"rank":571,"runs":[549,18,2,1,1]},"entrance:56345":{"rank":570,"runs":[548,17,4,1]},"entrance:56346":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:56347":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:56348":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:56349":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:56350":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:56351":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:56352":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:56354":{"rank":571,"runs":[549,18,2,1,1]},"entrance:5638":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:564":{"rank":553,"runs":[531,21,1]},"entrance:56452":{"rank":571,"runs":[549,18,2,1,1]},"entrance:56453":{"rank":570,"runs":[548,17,4,1]},"entrance:56454":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:56455":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:56456":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:56457":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:56458":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:56459":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:56460":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:56462":{"rank":571,"runs":[549,18,2,1,1]},"entrance:565":{"rank":553,"runs":[531,21,1]},"entrance:566":{"rank":553,"runs":[531,21,1]},"entrance:567":{"rank":553,"runs":[531,21,1]},"entrance:568":{"rank":553,"runs":[531,21,1]},"entrance:56863":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56864":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56873":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56874":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56875":{"rank":556,"runs":[534,17,3,1,1]},"entrance:56883":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56884":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56885":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:56892":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56893":{"rank":554,"runs":[532,19,1,1,1]},"entrance:569":{"rank":553,"runs":[531,21,1]},"entrance:56900":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56901":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56907":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56908":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56913":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56914":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56918":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56919":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56922":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56923":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56925":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56926":{"rank":554,"runs":[532,19,1,1,1]},"entrance:56927":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:56928":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:56929":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:56939":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:56980":{"rank":566,"runs":[545,9,7,3,1,1]},"entrance:56981":{"rank":568,"runs":[537,10,9,5,4,1,1,1]},"entrance:56982":{"rank":564,"runs":[541,9,8,2,1,1,1,1]},"entrance:56983":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:57":{"rank":553,"runs":[531,21,1]},"entrance:570":{"rank":553,"runs":[531,21,1]},"entrance:57001":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:57002":{"rank":566,"runs":[545,7,7,5,1,1]},"entrance:57010":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:57011":{"rank":566,"runs":[541,5,4,4,4,3,3,1,1]},"entrance:57013":{"rank":569,"runs":[548,14,4,1,1,1]},"entrance:57014":{"rank":569,"runs":[548,14,4,1,1,1]},"entrance:57015":{"rank":569,"runs":[548,10,5,4,1,1]},"entrance:57016":{"rank":569,"runs":[548,10,5,4,1,1]},"entrance:57019":{"rank":569,"runs":[548,9,6,4,1,1]},"entrance:57020":{"rank":569,"runs":[548,13,4,2,1,1]},"entrance:57021":{"rank":569,"runs":[548,9,6,4,1,1]},"entrance:57022":{"rank":569,"runs":[548,13,4,2,1,1]},"entrance:57042":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:57047":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:57069":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:57074":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:57095":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:571":{"rank":553,"runs":[531,21,1]},"entrance:57100":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:57121":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:57126":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:57149":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:57154":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:57177":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:57182":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:572":{"rank":553,"runs":[531,21,1]},"entrance:57206":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:57211":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:57235":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:57240":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:57245":{"rank":558,"runs":[536,15,5,1,1]},"entrance:57265":{"rank":571,"runs":[550,17,2,1,1]},"entrance:57270":{"rank":571,"runs":[550,17,2,1,1]},"entrance:5728":{"rank":570,"runs":[549,16,3,1,1]},"entrance:57295":{"rank":571,"runs":[549,18,2,1,1]},"entrance:573":{"rank":553,"runs":[531,21,1]},"entrance:57300":{"rank":571,"runs":[549,18,2,1,1]},"entrance:57305":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:57306":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:57307":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:57308":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:57309":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:57310":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:57311":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:57312":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:57313":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:57314":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:57315":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:57316":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:57317":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:57318":{"rank":570,"runs":[548,17,4,1]},"entrance:57319":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:57320":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:57321":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:57322":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:57323":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:57324":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:57325":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:57326":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:57327":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:57328":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:57329":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:57330":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:57331":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:57332":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:57333":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:57334":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:57335":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:57336":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:57337":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:57338":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:57339":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:57340":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:57341":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:57342":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:57343":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:57344":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:57397":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:574":{"rank":553,"runs":[531,21,1]},"entrance:575":{"rank":553,"runs":[531,21,1]},"entrance:57519":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:576":{"rank":553,"runs":[531,21,1]},"entrance:57639":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:577":{"rank":553,"runs":[531,21,1]},"entrance:57761":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:578":{"rank":553,"runs":[531,21,1]},"entrance:57881":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:579":{"rank":553,"runs":[531,21,1]},"entrance:58":{"rank":553,"runs":[531,21,1]},"entrance:580":{"rank":553,"runs":[531,21,1]},"entrance:58003":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:581":{"rank":553,"runs":[531,21,1]},"entrance:58123":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:582":{"rank":553,"runs":[531,21,1]},"entrance:58245":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:583":{"rank":553,"runs":[531,21,1]},"entrance:584":{"rank":553,"runs":[531,21,1]},"entrance:5842":{"rank":556,"runs":[534,17,3,1,1]},"entrance:585":{"rank":553,"runs":[531,21,1]},"entrance:58540":{"rank":571,"runs":[549,18,2,1,1]},"entrance:58542":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:58543":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:58544":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:58545":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:58546":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:58547":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:58548":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:58549":{"rank":570,"runs":[548,17,4,1]},"entrance:58550":{"rank":571,"runs":[549,18,2,1,1]},"entrance:586":{"rank":553,"runs":[531,21,1]},"entrance:5862":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:587":{"rank":553,"runs":[531,21,1]},"entrance:588":{"rank":553,"runs":[531,21,1]},"entrance:589":{"rank":553,"runs":[531,21,1]},"entrance:58959":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:58994":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:58995":{"rank":556,"runs":[534,17,3,1,1]},"entrance:59":{"rank":553,"runs":[531,21,1]},"entrance:590":{"rank":553,"runs":[531,21,1]},"entrance:59005":{"rank":558,"runs":[535,14,3,2,1,1,1,1]},"entrance:59014":{"rank":558,"runs":[535,10,5,3,2,1,1,1]},"entrance:59015":{"rank":558,"runs":[535,8,7,3,2,1,1,1]},"entrance:59020":{"rank":558,"runs":[535,9,6,3,2,1,1,1]},"entrance:59021":{"rank":558,"runs":[535,11,4,3,2,1,1,1]},"entrance:59023":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:59024":{"rank":558,"runs":[536,15,5,1,1]},"entrance:59026":{"rank":558,"runs":[536,16,5,1]},"entrance:59035":{"rank":562,"runs":[540,12,9,1]},"entrance:59036":{"rank":566,"runs":[537,8,7,5,4,3,1,1]},"entrance:59039":{"rank":568,"runs":[546,15,5,1,1]},"entrance:59046":{"rank":566,"runs":[545,9,7,3,1,1]},"entrance:59047":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:59048":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:59049":{"rank":566,"runs":[545,11,7,1,1,1]},"entrance:59056":{"rank":566,"runs":[541,9,4,4,3,3,1,1]},"entrance:59057":{"rank":566,"runs":[541,7,4,4,4,3,1,1,1]},"entrance:59058":{"rank":566,"runs":[545,7,7,5,1,1]},"entrance:59065":{"rank":566,"runs":[544,13,8,1]},"entrance:59066":{"rank":566,"runs":[537,8,8,4,3,3,1,1,1]},"entrance:59067":{"rank":566,"runs":[541,5,4,4,4,3,3,1,1]},"entrance:59069":{"rank":569,"runs":[548,15,4,1,1]},"entrance:59070":{"rank":569,"runs":[548,15,4,1,1]},"entrance:59071":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:59072":{"rank":569,"runs":[548,11,4,4,1,1]},"entrance:59075":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:59076":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:59077":{"rank":569,"runs":[548,8,7,4,1,1]},"entrance:59078":{"rank":569,"runs":[548,12,4,3,1,1]},"entrance:59079":{"rank":569,"runs":[547,16,4,1,1]},"entrance:59080":{"rank":569,"runs":[547,16,4,1,1]},"entrance:59098":{"rank":571,"runs":[550,17,2,1,1]},"entrance:591":{"rank":553,"runs":[531,21,1]},"entrance:59103":{"rank":571,"runs":[550,17,2,1,1]},"entrance:59125":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:59130":{"rank":571,"runs":[550,15,2,2,1,1]},"entrance:59151":{"rank":571,"runs":[550,13,4,2,1,1]},"entrance:59177":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:59182":{"rank":571,"runs":[550,11,6,2,1,1]},"entrance:592":{"rank":553,"runs":[531,21,1]},"entrance:59205":{"rank":571,"runs":[550,9,8,2,1,1]},"entrance:59233":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:59238":{"rank":571,"runs":[550,10,7,2,1,1]},"entrance:59262":{"rank":571,"runs":[550,12,5,2,1,1]},"entrance:59291":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:59296":{"rank":571,"runs":[550,14,3,2,1,1]},"entrance:593":{"rank":553,"runs":[531,21,1]},"entrance:5930":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:59321":{"rank":571,"runs":[550,16,2,1,1,1]},"entrance:59351":{"rank":571,"runs":[549,18,2,1,1]},"entrance:59356":{"rank":571,"runs":[549,18,2,1,1]},"entrance:59361":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:59362":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:59363":{"rank":570,"runs":[549,13,3,3,1,1]},"entrance:59364":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:59365":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:59366":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:59367":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:59368":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:59369":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:59370":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:59371":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:59372":{"rank":570,"runs":[539,10,10,3,3,2,1,1,1]},"entrance:59373":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:59375":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:59376":{"rank":570,"runs":[535,14,13,3,2,1,1,1]},"entrance:59377":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:59378":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:59379":{"rank":570,"runs":[549,9,7,3,1,1]},"entrance:59380":{"rank":570,"runs":[547,7,7,2,2,2,1,1,1]},"entrance:59381":{"rank":570,"runs":[543,6,6,5,5,2,1,1,1]},"entrance:59382":{"rank":570,"runs":[541,8,8,5,3,2,1,1,1]},"entrance:59383":{"rank":570,"runs":[545,7,5,4,4,2,1,1,1]},"entrance:59384":{"rank":570,"runs":[543,7,6,6,3,2,1,1,1]},"entrance:59385":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:59386":{"rank":570,"runs":[537,12,11,5,2,1,1,1]},"entrance:59387":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:59388":{"rank":570,"runs":[539,10,9,7,2,1,1,1]},"entrance:59389":{"rank":570,"runs":[547,9,5,2,2,2,1,1,1]},"entrance:59390":{"rank":570,"runs":[545,9,4,4,3,2,1,1,1]},"entrance:59391":{"rank":570,"runs":[549,11,5,3,1,1]},"entrance:59392":{"rank":570,"runs":[547,11,3,2,2,2,1,1,1]},"entrance:59393":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:59394":{"rank":570,"runs":[541,9,8,7,2,1,1,1]},"entrance:59395":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:59396":{"rank":570,"runs":[543,11,6,5,2,1,1,1]},"entrance:59397":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:59398":{"rank":570,"runs":[545,13,4,3,2,1,1,1]},"entrance:59399":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:594":{"rank":553,"runs":[531,21,1]},"entrance:59400":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:595":{"rank":553,"runs":[531,21,1]},"entrance:596":{"rank":553,"runs":[531,21,1]},"entrance:597":{"rank":553,"runs":[531,21,1]},"entrance:598":{"rank":553,"runs":[531,21,1]},"entrance:599":{"rank":553,"runs":[531,21,1]},"entrance:6":{"rank":553,"runs":[531,21,1]},"entrance:60":{"rank":553,"runs":[531,21,1]},"entrance:600":{"rank":553,"runs":[531,21,1]},"entrance:601":{"rank":553,"runs":[531,21,1]},"entrance:602":{"rank":553,"runs":[531,21,1]},"entrance:603":{"rank":553,"runs":[531,21,1]},"entrance:604":{"rank":553,"runs":[531,21,1]},"entrance:6042":{"rank":556,"runs":[534,17,3,1,1]},"entrance:605":{"rank":553,"runs":[531,21,1]},"entrance:606":{"rank":553,"runs":[531,21,1]},"entrance:6062":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:607":{"rank":553,"runs":[531,21,1]},"entrance:608":{"rank":553,"runs":[531,21,1]},"entrance:609":{"rank":553,"runs":[531,21,1]},"entrance:61":{"rank":553,"runs":[531,21,1]},"entrance:610":{"rank":553,"runs":[531,21,1]},"entrance:6102":{"rank":568,"runs":[537,10,9,5,3,2,1,1]},"entrance:611":{"rank":553,"runs":[531,21,1]},"entrance:612":{"rank":553,"runs":[531,21,1]},"entrance:613":{"rank":553,"runs":[531,21,1]},"entrance:6130":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:614":{"rank":553,"runs":[531,21,1]},"entrance:615":{"rank":553,"runs":[531,21,1]},"entrance:616":{"rank":553,"runs":[531,21,1]},"entrance:617":{"rank":553,"runs":[531,21,1]},"entrance:618":{"rank":553,"runs":[531,21,1]},"entrance:619":{"rank":553,"runs":[531,21,1]},"entrance:62":{"rank":553,"runs":[531,21,1]},"entrance:620":{"rank":553,"runs":[531,21,1]},"entrance:621":{"rank":553,"runs":[531,21,1]},"entrance:622":{"rank":553,"runs":[531,21,1]},"entrance:623":{"rank":553,"runs":[531,21,1]},"entrance:624":{"rank":553,"runs":[531,21,1]},"entrance:6241":{"rank":556,"runs":[534,17,3,1,1]},"entrance:625":{"rank":553,"runs":[531,21,1]},"entrance:626":{"rank":553,"runs":[531,21,1]},"entrance:6261":{"rank":560,"runs":[538,13,7,1,1]},"entrance:627":{"rank":553,"runs":[531,21,1]},"entrance:628":{"rank":553,"runs":[531,21,1]},"entrance:629":{"rank":553,"runs":[531,21,1]},"entrance:63":{"rank":553,"runs":[531,21,1]},"entrance:630":{"rank":553,"runs":[531,21,1]},"entrance:6301":{"rank":568,"runs":[539,8,7,7,3,2,1,1]},"entrance:631":{"rank":553,"runs":[531,21,1]},"entrance:632":{"rank":553,"runs":[531,21,1]},"entrance:6327":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:633":{"rank":553,"runs":[531,21,1]},"entrance:634":{"rank":553,"runs":[531,21,1]},"entrance:635":{"rank":553,"runs":[531,21,1]},"entrance:636":{"rank":553,"runs":[531,21,1]},"entrance:637":{"rank":553,"runs":[531,21,1]},"entrance:638":{"rank":553,"runs":[531,21,1]},"entrance:639":{"rank":553,"runs":[531,21,1]},"entrance:64":{"rank":553,"runs":[531,21,1]},"entrance:640":{"rank":553,"runs":[531,21,1]},"entrance:641":{"rank":553,"runs":[531,21,1]},"entrance:642":{"rank":553,"runs":[531,21,1]},"entrance:643":{"rank":553,"runs":[531,21,1]},"entrance:644":{"rank":553,"runs":[531,21,1]},"entrance:6443":{"rank":556,"runs":[534,17,3,1,1]},"entrance:645":{"rank":553,"runs":[531,21,1]},"entrance:646":{"rank":553,"runs":[531,21,1]},"entrance:6463":{"rank":560,"runs":[538,13,7,1,1]},"entrance:647":{"rank":553,"runs":[531,21,1]},"entrance:648":{"rank":553,"runs":[531,21,1]},"entrance:649":{"rank":553,"runs":[531,21,1]},"entrance:65":{"rank":553,"runs":[531,21,1]},"entrance:650":{"rank":553,"runs":[531,21,1]},"entrance:6503":{"rank":568,"runs":[541,9,6,5,3,2,1,1]},"entrance:651":{"rank":553,"runs":[531,21,1]},"entrance:652":{"rank":553,"runs":[531,21,1]},"entrance:6529":{"rank":570,"runs":[549,8,8,3,1,1]},"entrance:653":{"rank":553,"runs":[531,21,1]},"entrance:654":{"rank":553,"runs":[531,21,1]},"entrance:655":{"rank":553,"runs":[531,21,1]},"entrance:656":{"rank":553,"runs":[531,21,1]},"entrance:657":{"rank":553,"runs":[531,21,1]},"entrance:658":{"rank":553,"runs":[531,21,1]},"entrance:659":{"rank":553,"runs":[531,21,1]},"entrance:66":{"rank":553,"runs":[531,21,1]},"entrance:660":{"rank":553,"runs":[531,21,1]},"entrance:661":{"rank":553,"runs":[531,21,1]},"entrance:662":{"rank":553,"runs":[531,21,1]},"entrance:663":{"rank":553,"runs":[531,21,1]},"entrance:664":{"rank":553,"runs":[531,21,1]},"entrance:6649":{"rank":556,"runs":[534,17,3,1,1]},"entrance:665":{"rank":553,"runs":[531,21,1]},"entrance:666":{"rank":553,"runs":[531,21,1]},"entrance:6669":{"rank":560,"runs":[538,13,7,1,1]},"entrance:667":{"rank":553,"runs":[531,21,1]},"entrance:668":{"rank":553,"runs":[531,21,1]},"entrance:669":{"rank":553,"runs":[531,21,1]},"entrance:67":{"rank":553,"runs":[531,21,1]},"entrance:670":{"rank":553,"runs":[531,21,1]},"entrance:6709":{"rank":568,"runs":[543,11,4,3,3,2,1,1]},"entrance:671":{"rank":553,"runs":[531,21,1]},"entrance:672":{"rank":553,"runs":[531,21,1]},"entrance:673":{"rank":553,"runs":[531,21,1]},"entrance:6733":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:674":{"rank":553,"runs":[531,21,1]},"entrance:675":{"rank":553,"runs":[531,21,1]},"entrance:676":{"rank":553,"runs":[531,21,1]},"entrance:677":{"rank":553,"runs":[531,21,1]},"entrance:678":{"rank":553,"runs":[531,21,1]},"entrance:679":{"rank":553,"runs":[531,21,1]},"entrance:68":{"rank":553,"runs":[531,21,1]},"entrance:680":{"rank":553,"runs":[531,21,1]},"entrance:681":{"rank":553,"runs":[531,21,1]},"entrance:682":{"rank":553,"runs":[531,21,1]},"entrance:683":{"rank":553,"runs":[531,21,1]},"entrance:684":{"rank":553,"runs":[531,21,1]},"entrance:6845":{"rank":554,"runs":[532,19,1,1,1]},"entrance:685":{"rank":553,"runs":[531,21,1]},"entrance:6859":{"rank":556,"runs":[534,17,3,1,1]},"entrance:686":{"rank":553,"runs":[531,21,1]},"entrance:687":{"rank":553,"runs":[531,21,1]},"entrance:6879":{"rank":560,"runs":[538,13,7,1,1]},"entrance:688":{"rank":553,"runs":[531,21,1]},"entrance:689":{"rank":553,"runs":[531,21,1]},"entrance:69":{"rank":553,"runs":[531,21,1]},"entrance:690":{"rank":553,"runs":[531,21,1]},"entrance:691":{"rank":553,"runs":[531,21,1]},"entrance:6919":{"rank":568,"runs":[545,13,3,2,2,1,1,1]},"entrance:692":{"rank":553,"runs":[531,21,1]},"entrance:693":{"rank":553,"runs":[531,21,1]},"entrance:694":{"rank":553,"runs":[531,21,1]},"entrance:6943":{"rank":570,"runs":[549,12,4,3,1,1]},"entrance:695":{"rank":553,"runs":[531,21,1]},"entrance:6951":{"rank":554,"runs":[532,19,1,1,1]},"entrance:696":{"rank":553,"runs":[531,21,1]},"entrance:697":{"rank":553,"runs":[531,21,1]},"entrance:698":{"rank":553,"runs":[531,21,1]},"entrance:699":{"rank":553,"runs":[531,21,1]},"entrance:7":{"rank":553,"runs":[531,21,1]},"entrance:70":{"rank":553,"runs":[531,21,1]},"entrance:700":{"rank":553,"runs":[531,21,1]},"entrance:701":{"rank":553,"runs":[531,21,1]},"entrance:702":{"rank":553,"runs":[531,21,1]},"entrance:703":{"rank":553,"runs":[531,21,1]},"entrance:704":{"rank":553,"runs":[531,21,1]},"entrance:705":{"rank":553,"runs":[531,21,1]},"entrance:7057":{"rank":554,"runs":[532,19,1,1,1]},"entrance:706":{"rank":553,"runs":[531,21,1]},"entrance:707":{"rank":553,"runs":[531,21,1]},"entrance:7072":{"rank":556,"runs":[534,17,3,1,1]},"entrance:708":{"rank":553,"runs":[531,21,1]},"entrance:709":{"rank":553,"runs":[531,21,1]},"entrance:7092":{"rank":560,"runs":[538,13,7,1,1]},"entrance:71":{"rank":553,"runs":[531,21,1]},"entrance:710":{"rank":553,"runs":[531,21,1]},"entrance:711":{"rank":553,"runs":[531,21,1]},"entrance:712":{"rank":553,"runs":[531,21,1]},"entrance:713":{"rank":553,"runs":[531,21,1]},"entrance:7132":{"rank":568,"runs":[546,15,5,1,1]},"entrance:714":{"rank":553,"runs":[531,21,1]},"entrance:715":{"rank":553,"runs":[531,21,1]},"entrance:7154":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:716":{"rank":553,"runs":[531,21,1]},"entrance:7164":{"rank":554,"runs":[532,19,1,1,1]},"entrance:717":{"rank":553,"runs":[531,21,1]},"entrance:718":{"rank":553,"runs":[531,21,1]},"entrance:719":{"rank":553,"runs":[531,21,1]},"entrance:72":{"rank":553,"runs":[531,21,1]},"entrance:720":{"rank":553,"runs":[531,21,1]},"entrance:721":{"rank":553,"runs":[531,21,1]},"entrance:722":{"rank":553,"runs":[531,21,1]},"entrance:723":{"rank":553,"runs":[531,21,1]},"entrance:724":{"rank":553,"runs":[531,21,1]},"entrance:725":{"rank":553,"runs":[531,21,1]},"entrance:726":{"rank":553,"runs":[531,21,1]},"entrance:727":{"rank":553,"runs":[531,21,1]},"entrance:7271":{"rank":554,"runs":[532,19,1,1,1]},"entrance:728":{"rank":553,"runs":[531,21,1]},"entrance:7287":{"rank":556,"runs":[534,17,3,1,1]},"entrance:729":{"rank":553,"runs":[531,21,1]},"entrance:73":{"rank":553,"runs":[531,21,1]},"entrance:730":{"rank":553,"runs":[531,21,1]},"entrance:731":{"rank":553,"runs":[531,21,1]},"entrance:732":{"rank":553,"runs":[531,21,1]},"entrance:733":{"rank":553,"runs":[531,21,1]},"entrance:734":{"rank":553,"runs":[531,21,1]},"entrance:7342":{"rank":564,"runs":[535,8,8,7,3,1,1,1]},"entrance:7347":{"rank":568,"runs":[546,15,5,1,1]},"entrance:735":{"rank":553,"runs":[531,21,1]},"entrance:736":{"rank":553,"runs":[531,21,1]},"entrance:7360":{"rank":568,"runs":[543,11,4,4,3,1,1,1]},"entrance:7369":{"rank":570,"runs":[547,15,2,2,1,1,1,1]},"entrance:737":{"rank":553,"runs":[531,21,1]},"entrance:738":{"rank":553,"runs":[531,21,1]},"entrance:739":{"rank":553,"runs":[531,21,1]},"entrance:74":{"rank":553,"runs":[531,21,1]},"entrance:740":{"rank":553,"runs":[531,21,1]},"entrance:741":{"rank":553,"runs":[531,21,1]},"entrance:742":{"rank":553,"runs":[531,21,1]},"entrance:743":{"rank":553,"runs":[531,21,1]},"entrance:744":{"rank":553,"runs":[531,21,1]},"entrance:745":{"rank":553,"runs":[531,21,1]},"entrance:746":{"rank":553,"runs":[531,21,1]},"entrance:747":{"rank":553,"runs":[531,21,1]},"entrance:748":{"rank":553,"runs":[531,21,1]},"entrance:749":{"rank":553,"runs":[531,21,1]},"entrance:75":{"rank":553,"runs":[531,21,1]},"entrance:750":{"rank":553,"runs":[531,21,1]},"entrance:751":{"rank":553,"runs":[531,21,1]},"entrance:752":{"rank":553,"runs":[531,21,1]},"entrance:753":{"rank":553,"runs":[531,21,1]},"entrance:754":{"rank":553,"runs":[531,21,1]},"entrance:755":{"rank":553,"runs":[531,21,1]},"entrance:756":{"rank":553,"runs":[531,21,1]},"entrance:757":{"rank":553,"runs":[531,21,1]},"entrance:758":{"rank":553,"runs":[531,21,1]},"entrance:759":{"rank":553,"runs":[531,21,1]},"entrance:76":{"rank":553,"runs":[531,21,1]},"entrance:760":{"rank":553,"runs":[531,21,1]},"entrance:761":{"rank":553,"runs":[531,21,1]},"entrance:762":{"rank":553,"runs":[531,21,1]},"entrance:763":{"rank":553,"runs":[531,21,1]},"entrance:764":{"rank":553,"runs":[531,21,1]},"entrance:765":{"rank":553,"runs":[531,21,1]},"entrance:766":{"rank":553,"runs":[531,21,1]},"entrance:767":{"rank":553,"runs":[531,21,1]},"entrance:768":{"rank":553,"runs":[531,21,1]},"entrance:769":{"rank":553,"runs":[531,21,1]},"entrance:77":{"rank":553,"runs":[531,21,1]},"entrance:770":{"rank":553,"runs":[531,21,1]},"entrance:771":{"rank":553,"runs":[531,21,1]},"entrance:772":{"rank":553,"runs":[531,21,1]},"entrance:773":{"rank":553,"runs":[531,21,1]},"entrance:774":{"rank":553,"runs":[531,21,1]},"entrance:775":{"rank":553,"runs":[531,21,1]},"entrance:776":{"rank":553,"runs":[531,21,1]},"entrance:777":{"rank":553,"runs":[531,21,1]},"entrance:778":{"rank":553,"runs":[531,21,1]},"entrance:779":{"rank":553,"runs":[531,21,1]},"entrance:78":{"rank":553,"runs":[531,21,1]},"entrance:780":{"rank":553,"runs":[531,21,1]},"entrance:7802":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7803":{"rank":554,"runs":[532,19,1,1,1]},"entrance:781":{"rank":553,"runs":[531,21,1]},"entrance:782":{"rank":553,"runs":[531,21,1]},"entrance:7826":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7827":{"rank":554,"runs":[532,19,1,1,1]},"entrance:783":{"rank":553,"runs":[531,21,1]},"entrance:784":{"rank":553,"runs":[531,21,1]},"entrance:7847":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7848":{"rank":554,"runs":[532,19,1,1,1]},"entrance:785":{"rank":553,"runs":[531,21,1]},"entrance:786":{"rank":553,"runs":[531,21,1]},"entrance:7865":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7866":{"rank":554,"runs":[532,19,1,1,1]},"entrance:787":{"rank":553,"runs":[531,21,1]},"entrance:788":{"rank":553,"runs":[531,21,1]},"entrance:7880":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7881":{"rank":554,"runs":[532,19,1,1,1]},"entrance:789":{"rank":553,"runs":[531,21,1]},"entrance:7892":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7893":{"rank":554,"runs":[532,19,1,1,1]},"entrance:79":{"rank":553,"runs":[531,21,1]},"entrance:790":{"rank":553,"runs":[531,21,1]},"entrance:7901":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7902":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7903":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:7907":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7908":{"rank":554,"runs":[532,19,1,1,1]},"entrance:7909":{"rank":556,"runs":[534,17,3,1,1]},"entrance:791":{"rank":553,"runs":[531,21,1]},"entrance:7915":{"rank":556,"runs":[534,15,2,2,1,1,1]},"entrance:7916":{"rank":556,"runs":[534,15,2,2,1,1,1]},"entrance:792":{"rank":553,"runs":[531,21,1]},"entrance:7921":{"rank":556,"runs":[534,15,2,2,1,1,1]},"entrance:793":{"rank":553,"runs":[531,21,1]},"entrance:7931":{"rank":558,"runs":[534,13,3,2,2,2,1,1]},"entrance:794":{"rank":553,"runs":[531,21,1]},"entrance:795":{"rank":553,"runs":[531,21,1]},"entrance:7950":{"rank":558,"runs":[536,13,4,2,1,1,1]},"entrance:796":{"rank":553,"runs":[531,21,1]},"entrance:7965":{"rank":568,"runs":[546,14,3,2,1,1,1]},"entrance:797":{"rank":553,"runs":[531,21,1]},"entrance:7973":{"rank":568,"runs":[542,10,5,4,3,2,1,1]},"entrance:7975":{"rank":566,"runs":[545,10,7,1,1,1,1]},"entrance:798":{"rank":553,"runs":[531,21,1]},"entrance:799":{"rank":553,"runs":[531,21,1]},"entrance:7997":{"rank":566,"runs":[541,6,4,4,4,3,1,1,1,1]},"entrance:7998":{"rank":566,"runs":[545,7,6,5,1,1,1]},"entrance:8":{"rank":553,"runs":[531,21,1]},"entrance:80":{"rank":553,"runs":[531,21,1]},"entrance:800":{"rank":553,"runs":[531,21,1]},"entrance:8006":{"rank":566,"runs":[537,8,8,4,3,2,1,1,1,1]},"entrance:8007":{"rank":566,"runs":[541,5,4,4,4,3,2,1,1,1]},"entrance:8009":{"rank":569,"runs":[547,14,3,1,1,1,1,1]},"entrance:801":{"rank":553,"runs":[531,21,1]},"entrance:8010":{"rank":569,"runs":[547,14,3,1,1,1,1,1]},"entrance:8011":{"rank":569,"runs":[543,10,5,5,3,1,1,1]},"entrance:8012":{"rank":569,"runs":[543,10,5,5,3,1,1,1]},"entrance:8015":{"rank":569,"runs":[539,9,9,6,3,1,1,1]},"entrance:8016":{"rank":569,"runs":[535,13,13,3,2,1,1,1]},"entrance:8017":{"rank":569,"runs":[539,9,9,6,3,1,1,1]},"entrance:8018":{"rank":569,"runs":[535,13,13,3,2,1,1,1]},"entrance:802":{"rank":553,"runs":[531,21,1]},"entrance:803":{"rank":553,"runs":[531,21,1]},"entrance:8038":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:804":{"rank":553,"runs":[531,21,1]},"entrance:8043":{"rank":571,"runs":[549,16,1,1,1,1,1,1]},"entrance:805":{"rank":553,"runs":[531,21,1]},"entrance:806":{"rank":553,"runs":[531,21,1]},"entrance:8065":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:807":{"rank":553,"runs":[531,21,1]},"entrance:8070":{"rank":571,"runs":[547,14,3,3,1,1,1,1]},"entrance:808":{"rank":553,"runs":[531,21,1]},"entrance:809":{"rank":553,"runs":[531,21,1]},"entrance:8091":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:8096":{"rank":571,"runs":[545,12,5,5,1,1,1,1]},"entrance:81":{"rank":553,"runs":[531,21,1]},"entrance:810":{"rank":553,"runs":[531,21,1]},"entrance:811":{"rank":553,"runs":[531,21,1]},"entrance:8117":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:812":{"rank":553,"runs":[531,21,1]},"entrance:8122":{"rank":571,"runs":[543,10,7,7,1,1,1,1]},"entrance:813":{"rank":553,"runs":[531,21,1]},"entrance:814":{"rank":553,"runs":[531,21,1]},"entrance:8145":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:815":{"rank":553,"runs":[531,21,1]},"entrance:8150":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"entrance:816":{"rank":553,"runs":[531,21,1]},"entrance:817":{"rank":553,"runs":[531,21,1]},"entrance:8173":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:8178":{"rank":571,"runs":[539,11,11,6,1,1,1,1]},"entrance:818":{"rank":553,"runs":[531,21,1]},"entrance:819":{"rank":553,"runs":[531,21,1]},"entrance:82":{"rank":553,"runs":[531,21,1]},"entrance:820":{"rank":553,"runs":[531,21,1]},"entrance:8202":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:8207":{"rank":571,"runs":[537,13,13,4,1,1,1,1]},"entrance:821":{"rank":553,"runs":[531,21,1]},"entrance:822":{"rank":553,"runs":[531,21,1]},"entrance:823":{"rank":553,"runs":[531,21,1]},"entrance:8231":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:8236":{"rank":571,"runs":[535,15,15,2,1,1,1,1]},"entrance:824":{"rank":553,"runs":[531,21,1]},"entrance:825":{"rank":553,"runs":[531,21,1]},"entrance:826":{"rank":553,"runs":[531,21,1]},"entrance:8261":{"rank":571,"runs":[533,17,17,1,1,1,1]},"entrance:8266":{"rank":571,"runs":[533,17,17,1,1,1,1]},"entrance:827":{"rank":553,"runs":[531,21,1]},"entrance:828":{"rank":553,"runs":[531,21,1]},"entrance:829":{"rank":553,"runs":[531,21,1]},"entrance:8291":{"rank":571,"runs":[550,17,2,1,1]},"entrance:8296":{"rank":571,"runs":[550,17,2,1,1]},"entrance:83":{"rank":553,"runs":[531,21,1]},"entrance:830":{"rank":553,"runs":[531,21,1]},"entrance:8301":{"rank":570,"runs":[547,12,2,2,2,1,1,1,1,1]},"entrance:8302":{"rank":570,"runs":[545,10,4,4,2,1,1,1,1,1]},"entrance:8303":{"rank":570,"runs":[549,12,3,3,1,1,1]},"entrance:8304":{"rank":570,"runs":[547,10,3,2,2,2,1,1,1,1]},"entrance:8305":{"rank":570,"runs":[543,8,6,6,2,1,1,1,1,1]},"entrance:8306":{"rank":570,"runs":[541,8,8,6,2,1,1,1,1,1]},"entrance:8307":{"rank":570,"runs":[545,8,4,4,3,2,1,1,1,1]},"entrance:8308":{"rank":570,"runs":[543,6,6,6,3,2,1,1,1,1]},"entrance:8309":{"rank":570,"runs":[539,10,10,4,2,1,1,1,1,1]},"entrance:831":{"rank":553,"runs":[531,21,1]},"entrance:8310":{"rank":570,"runs":[537,12,12,2,2,1,1,1,1,1]},"entrance:8311":{"rank":570,"runs":[541,8,8,4,3,2,1,1,1,1]},"entrance:8312":{"rank":570,"runs":[539,10,10,3,2,2,1,1,1,1]},"entrance:8313":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:8314":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:8315":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:8316":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:8317":{"rank":570,"runs":[547,8,5,2,2,2,1,1,1,1]},"entrance:8318":{"rank":570,"runs":[545,6,5,4,4,2,1,1,1,1]},"entrance:8319":{"rank":570,"runs":[549,8,7,3,1,1,1]},"entrance:832":{"rank":553,"runs":[531,21,1]},"entrance:8320":{"rank":570,"runs":[547,7,6,2,2,2,1,1,1,1]},"entrance:8321":{"rank":570,"runs":[543,6,6,5,4,2,1,1,1,1]},"entrance:8322":{"rank":570,"runs":[541,8,8,5,2,2,1,1,1,1]},"entrance:8323":{"rank":570,"runs":[545,7,4,4,4,2,1,1,1,1]},"entrance:8324":{"rank":570,"runs":[543,7,6,6,2,2,1,1,1,1]},"entrance:8325":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:8326":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:8327":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:8328":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:8329":{"rank":570,"runs":[547,9,4,2,2,2,1,1,1,1]},"entrance:833":{"rank":553,"runs":[531,21,1]},"entrance:8330":{"rank":570,"runs":[545,9,4,4,2,2,1,1,1,1]},"entrance:8331":{"rank":570,"runs":[549,11,4,3,1,1,1]},"entrance:8332":{"rank":570,"runs":[547,11,2,2,2,2,1,1,1,1]},"entrance:8333":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:8334":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:8335":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:8336":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:8337":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:8338":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:8339":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:834":{"rank":553,"runs":[531,21,1]},"entrance:8340":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:8348":{"rank":556,"runs":[534,17,3,1,1]},"entrance:835":{"rank":553,"runs":[531,21,1]},"entrance:8356":{"rank":554,"runs":[532,20,1,1]},"entrance:8359":{"rank":558,"runs":[536,15,5,1,1]},"entrance:836":{"rank":553,"runs":[531,21,1]},"entrance:837":{"rank":553,"runs":[531,21,1]},"entrance:8370":{"rank":560,"runs":[538,13,7,1,1]},"entrance:838":{"rank":553,"runs":[531,21,1]},"entrance:8381":{"rank":562,"runs":[540,11,9,1,1]},"entrance:839":{"rank":553,"runs":[531,21,1]},"entrance:8392":{"rank":564,"runs":[542,11,9,1,1]},"entrance:84":{"rank":553,"runs":[531,21,1]},"entrance:840":{"rank":553,"runs":[531,21,1]},"entrance:8403":{"rank":566,"runs":[544,13,7,1,1]},"entrance:841":{"rank":553,"runs":[531,21,1]},"entrance:842":{"rank":553,"runs":[531,21,1]},"entrance:843":{"rank":553,"runs":[531,21,1]},"entrance:844":{"rank":553,"runs":[531,21,1]},"entrance:8444":{"rank":570,"runs":[549,14,3,1,1,1,1]},"entrance:845":{"rank":553,"runs":[531,21,1]},"entrance:846":{"rank":553,"runs":[531,21,1]},"entrance:8461":{"rank":554,"runs":[532,20,1,1]},"entrance:847":{"rank":553,"runs":[531,21,1]},"entrance:848":{"rank":553,"runs":[531,21,1]},"entrance:849":{"rank":553,"runs":[531,21,1]},"entrance:85":{"rank":553,"runs":[531,21,1]},"entrance:850":{"rank":553,"runs":[531,21,1]},"entrance:851":{"rank":553,"runs":[531,21,1]},"entrance:852":{"rank":553,"runs":[531,21,1]},"entrance:853":{"rank":553,"runs":[531,21,1]},"entrance:854":{"rank":553,"runs":[531,21,1]},"entrance:8541":{"rank":570,"runs":[549,15,3,1,1,1]},"entrance:855":{"rank":553,"runs":[531,21,1]},"entrance:8556":{"rank":556,"runs":[534,17,3,1,1]},"entrance:856":{"rank":553,"runs":[531,21,1]},"entrance:8564":{"rank":554,"runs":[532,20,1,1]},"entrance:8567":{"rank":558,"runs":[536,15,5,1,1]},"entrance:857":{"rank":553,"runs":[531,21,1]},"entrance:8578":{"rank":560,"runs":[538,13,7,1,1]},"entrance:858":{"rank":553,"runs":[531,21,1]},"entrance:8589":{"rank":562,"runs":[540,11,9,1,1]},"entrance:859":{"rank":553,"runs":[531,21,1]},"entrance:86":{"rank":553,"runs":[531,21,1]},"entrance:860":{"rank":553,"runs":[531,21,1]},"entrance:8600":{"rank":564,"runs":[542,11,9,1,1]},"entrance:861":{"rank":553,"runs":[531,21,1]},"entrance:8611":{"rank":566,"runs":[544,13,7,1,1]},"entrance:862":{"rank":553,"runs":[531,21,1]},"entrance:863":{"rank":553,"runs":[531,21,1]},"entrance:864":{"rank":553,"runs":[531,21,1]},"entrance:865":{"rank":553,"runs":[531,21,1]},"entrance:8652":{"rank":570,"runs":[549,14,3,1,1,1,1]},"entrance:866":{"rank":553,"runs":[531,21,1]},"entrance:8667":{"rank":554,"runs":[532,20,1,1]},"entrance:867":{"rank":553,"runs":[531,21,1]},"entrance:8677":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:868":{"rank":553,"runs":[531,21,1]},"entrance:869":{"rank":553,"runs":[531,21,1]},"entrance:87":{"rank":553,"runs":[531,21,1]},"entrance:870":{"rank":553,"runs":[531,21,1]},"entrance:871":{"rank":553,"runs":[531,21,1]},"entrance:872":{"rank":553,"runs":[531,21,1]},"entrance:873":{"rank":553,"runs":[531,21,1]},"entrance:874":{"rank":553,"runs":[531,21,1]},"entrance:8747":{"rank":570,"runs":[547,13,2,2,2,1,1,1,1]},"entrance:875":{"rank":553,"runs":[531,21,1]},"entrance:876":{"rank":553,"runs":[531,21,1]},"entrance:8760":{"rank":556,"runs":[534,17,3,1,1]},"entrance:8768":{"rank":554,"runs":[532,20,1,1]},"entrance:877":{"rank":553,"runs":[531,21,1]},"entrance:8771":{"rank":558,"runs":[536,15,5,1,1]},"entrance:878":{"rank":553,"runs":[531,21,1]},"entrance:8782":{"rank":560,"runs":[538,13,7,1,1]},"entrance:879":{"rank":553,"runs":[531,21,1]},"entrance:8793":{"rank":562,"runs":[540,11,9,1,1]},"entrance:88":{"rank":553,"runs":[531,21,1]},"entrance:880":{"rank":553,"runs":[531,21,1]},"entrance:8804":{"rank":564,"runs":[542,11,9,1,1]},"entrance:881":{"rank":553,"runs":[531,21,1]},"entrance:8815":{"rank":566,"runs":[543,11,5,2,2,1,1,1]},"entrance:882":{"rank":553,"runs":[531,21,1]},"entrance:883":{"rank":553,"runs":[531,21,1]},"entrance:884":{"rank":553,"runs":[531,21,1]},"entrance:885":{"rank":553,"runs":[531,21,1]},"entrance:8854":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:886":{"rank":553,"runs":[531,21,1]},"entrance:8869":{"rank":554,"runs":[532,20,1,1]},"entrance:887":{"rank":553,"runs":[531,21,1]},"entrance:8879":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:888":{"rank":553,"runs":[531,21,1]},"entrance:889":{"rank":553,"runs":[531,21,1]},"entrance:89":{"rank":553,"runs":[531,21,1]},"entrance:890":{"rank":553,"runs":[531,21,1]},"entrance:891":{"rank":553,"runs":[531,21,1]},"entrance:892":{"rank":553,"runs":[531,21,1]},"entrance:893":{"rank":553,"runs":[531,21,1]},"entrance:894":{"rank":553,"runs":[531,21,1]},"entrance:8949":{"rank":570,"runs":[545,11,4,4,2,1,1,1,1]},"entrance:895":{"rank":553,"runs":[531,21,1]},"entrance:896":{"rank":553,"runs":[531,21,1]},"entrance:8960":{"rank":556,"runs":[534,17,3,1,1]},"entrance:8968":{"rank":554,"runs":[532,20,1,1]},"entrance:897":{"rank":553,"runs":[531,21,1]},"entrance:8971":{"rank":558,"runs":[536,15,5,1,1]},"entrance:898":{"rank":553,"runs":[531,21,1]},"entrance:8982":{"rank":560,"runs":[538,13,7,1,1]},"entrance:899":{"rank":553,"runs":[531,21,1]},"entrance:8993":{"rank":562,"runs":[540,11,9,1,1]},"entrance:9":{"rank":553,"runs":[531,21,1]},"entrance:90":{"rank":553,"runs":[531,21,1]},"entrance:900":{"rank":553,"runs":[531,21,1]},"entrance:9004":{"rank":564,"runs":[541,9,7,2,2,1,1,1]},"entrance:901":{"rank":553,"runs":[531,21,1]},"entrance:9015":{"rank":566,"runs":[541,9,5,4,3,2,1,1]},"entrance:902":{"rank":553,"runs":[531,21,1]},"entrance:903":{"rank":553,"runs":[531,21,1]},"entrance:904":{"rank":553,"runs":[531,21,1]},"entrance:905":{"rank":553,"runs":[531,21,1]},"entrance:9054":{"rank":570,"runs":[549,10,5,3,1,1,1]},"entrance:906":{"rank":553,"runs":[531,21,1]},"entrance:9067":{"rank":554,"runs":[532,20,1,1]},"entrance:907":{"rank":553,"runs":[531,21,1]},"entrance:9077":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:908":{"rank":553,"runs":[531,21,1]},"entrance:909":{"rank":553,"runs":[531,21,1]},"entrance:91":{"rank":553,"runs":[531,21,1]},"entrance:910":{"rank":553,"runs":[531,21,1]},"entrance:911":{"rank":553,"runs":[531,21,1]},"entrance:912":{"rank":553,"runs":[531,21,1]},"entrance:913":{"rank":553,"runs":[531,21,1]},"entrance:914":{"rank":553,"runs":[531,21,1]},"entrance:9147":{"rank":570,"runs":[543,9,6,6,2,1,1,1,1]},"entrance:915":{"rank":553,"runs":[531,21,1]},"entrance:9159":{"rank":556,"runs":[534,17,3,1,1]},"entrance:916":{"rank":553,"runs":[531,21,1]},"entrance:9167":{"rank":554,"runs":[532,20,1,1]},"entrance:917":{"rank":553,"runs":[531,21,1]},"entrance:9170":{"rank":558,"runs":[536,15,5,1,1]},"entrance:918":{"rank":553,"runs":[531,21,1]},"entrance:9181":{"rank":560,"runs":[538,13,7,1,1]},"entrance:919":{"rank":553,"runs":[531,21,1]},"entrance:9192":{"rank":562,"runs":[539,9,7,2,2,1,1,1]},"entrance:92":{"rank":553,"runs":[531,21,1]},"entrance:920":{"rank":553,"runs":[531,21,1]},"entrance:9203":{"rank":564,"runs":[539,7,7,4,3,2,1,1]},"entrance:921":{"rank":553,"runs":[531,21,1]},"entrance:9214":{"rank":566,"runs":[539,7,6,5,5,2,1,1]},"entrance:922":{"rank":553,"runs":[531,21,1]},"entrance:923":{"rank":553,"runs":[531,21,1]},"entrance:924":{"rank":553,"runs":[531,21,1]},"entrance:925":{"rank":553,"runs":[531,21,1]},"entrance:9251":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:926":{"rank":553,"runs":[531,21,1]},"entrance:9267":{"rank":554,"runs":[532,20,1,1]},"entrance:927":{"rank":553,"runs":[531,21,1]},"entrance:9277":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:928":{"rank":553,"runs":[531,21,1]},"entrance:929":{"rank":553,"runs":[531,21,1]},"entrance:93":{"rank":553,"runs":[531,21,1]},"entrance:930":{"rank":553,"runs":[531,21,1]},"entrance:931":{"rank":553,"runs":[531,21,1]},"entrance:932":{"rank":553,"runs":[531,21,1]},"entrance:933":{"rank":553,"runs":[531,21,1]},"entrance:934":{"rank":553,"runs":[531,21,1]},"entrance:9347":{"rank":570,"runs":[541,8,8,7,2,1,1,1,1]},"entrance:935":{"rank":553,"runs":[531,21,1]},"entrance:936":{"rank":553,"runs":[531,21,1]},"entrance:9361":{"rank":556,"runs":[534,17,3,1,1]},"entrance:9369":{"rank":554,"runs":[532,20,1,1]},"entrance:937":{"rank":553,"runs":[531,21,1]},"entrance:9372":{"rank":558,"runs":[536,15,5,1,1]},"entrance:938":{"rank":553,"runs":[531,21,1]},"entrance:9383":{"rank":560,"runs":[537,11,5,2,2,1,1,1]},"entrance:939":{"rank":553,"runs":[531,21,1]},"entrance:9394":{"rank":562,"runs":[537,9,5,4,3,2,1,1]},"entrance:94":{"rank":553,"runs":[531,21,1]},"entrance:940":{"rank":553,"runs":[531,21,1]},"entrance:9405":{"rank":564,"runs":[537,7,6,5,5,2,1,1]},"entrance:941":{"rank":553,"runs":[531,21,1]},"entrance:9416":{"rank":566,"runs":[537,8,7,5,5,2,1,1]},"entrance:942":{"rank":553,"runs":[531,21,1]},"entrance:943":{"rank":553,"runs":[531,21,1]},"entrance:944":{"rank":553,"runs":[531,21,1]},"entrance:945":{"rank":553,"runs":[531,21,1]},"entrance:9453":{"rank":570,"runs":[549,9,6,3,1,1,1]},"entrance:946":{"rank":553,"runs":[531,21,1]},"entrance:947":{"rank":553,"runs":[531,21,1]},"entrance:9471":{"rank":554,"runs":[532,20,1,1]},"entrance:948":{"rank":553,"runs":[531,21,1]},"entrance:9481":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:949":{"rank":553,"runs":[531,21,1]},"entrance:95":{"rank":553,"runs":[531,21,1]},"entrance:950":{"rank":553,"runs":[531,21,1]},"entrance:951":{"rank":553,"runs":[531,21,1]},"entrance:952":{"rank":553,"runs":[531,21,1]},"entrance:953":{"rank":553,"runs":[531,21,1]},"entrance:954":{"rank":553,"runs":[531,21,1]},"entrance:955":{"rank":553,"runs":[531,21,1]},"entrance:9551":{"rank":570,"runs":[539,10,10,5,2,1,1,1,1]},"entrance:956":{"rank":553,"runs":[531,21,1]},"entrance:9567":{"rank":556,"runs":[534,17,3,1,1]},"entrance:957":{"rank":553,"runs":[531,21,1]},"entrance:9575":{"rank":554,"runs":[532,20,1,1]},"entrance:9578":{"rank":558,"runs":[535,13,3,2,2,1,1,1]},"entrance:958":{"rank":553,"runs":[531,21,1]},"entrance:9589":{"rank":560,"runs":[535,11,4,3,3,2,1,1]},"entrance:959":{"rank":553,"runs":[531,21,1]},"entrance:96":{"rank":553,"runs":[531,21,1]},"entrance:960":{"rank":553,"runs":[531,21,1]},"entrance:9600":{"rank":562,"runs":[535,9,6,5,3,2,1,1]},"entrance:961":{"rank":553,"runs":[531,21,1]},"entrance:9611":{"rank":564,"runs":[535,8,7,7,3,2,1,1]},"entrance:962":{"rank":553,"runs":[531,21,1]},"entrance:9622":{"rank":566,"runs":[535,10,9,5,3,2,1,1]},"entrance:963":{"rank":553,"runs":[531,21,1]},"entrance:964":{"rank":553,"runs":[531,21,1]},"entrance:965":{"rank":553,"runs":[531,21,1]},"entrance:9657":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:966":{"rank":553,"runs":[531,21,1]},"entrance:967":{"rank":553,"runs":[531,21,1]},"entrance:9679":{"rank":554,"runs":[532,20,1,1]},"entrance:968":{"rank":553,"runs":[531,21,1]},"entrance:9689":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:969":{"rank":553,"runs":[531,21,1]},"entrance:97":{"rank":553,"runs":[531,21,1]},"entrance:970":{"rank":553,"runs":[531,21,1]},"entrance:971":{"rank":553,"runs":[531,21,1]},"entrance:972":{"rank":553,"runs":[531,21,1]},"entrance:973":{"rank":553,"runs":[531,21,1]},"entrance:974":{"rank":553,"runs":[531,21,1]},"entrance:975":{"rank":553,"runs":[531,21,1]},"entrance:9759":{"rank":570,"runs":[537,12,12,3,2,1,1,1,1]},"entrance:976":{"rank":553,"runs":[531,21,1]},"entrance:977":{"rank":553,"runs":[531,21,1]},"entrance:9777":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"entrance:978":{"rank":553,"runs":[531,21,1]},"entrance:9785":{"rank":554,"runs":[532,20,1,1]},"entrance:979":{"rank":553,"runs":[531,21,1]},"entrance:98":{"rank":553,"runs":[531,21,1]},"entrance:980":{"rank":553,"runs":[531,21,1]},"entrance:981":{"rank":553,"runs":[531,21,1]},"entrance:982":{"rank":553,"runs":[531,21,1]},"entrance:983":{"rank":553,"runs":[531,21,1]},"entrance:984":{"rank":553,"runs":[531,21,1]},"entrance:985":{"rank":553,"runs":[531,21,1]},"entrance:986":{"rank":553,"runs":[531,21,1]},"entrance:9867":{"rank":570,"runs":[549,13,3,2,1,1,1]},"entrance:987":{"rank":553,"runs":[531,21,1]},"entrance:988":{"rank":553,"runs":[531,21,1]},"entrance:989":{"rank":553,"runs":[531,21,1]},"entrance:9891":{"rank":554,"runs":[532,20,1,1]},"entrance:99":{"rank":553,"runs":[531,21,1]},"entrance:990":{"rank":553,"runs":[531,21,1]},"entrance:9901":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"entrance:991":{"rank":553,"runs":[531,21,1]},"entrance:992":{"rank":553,"runs":[531,21,1]},"entrance:993":{"rank":553,"runs":[531,21,1]},"entrance:994":{"rank":553,"runs":[531,21,1]},"entrance:995":{"rank":553,"runs":[531,21,1]},"entrance:996":{"rank":553,"runs":[531,21,1]},"entrance:997":{"rank":553,"runs":[531,21,1]},"entrance:9971":{"rank":570,"runs":[535,14,14,2,1,1,1,1,1]},"entrance:998":{"rank":553,"runs":[531,21,1]},"entrance:999":{"rank":553,"runs":[531,21,1]},"entrance:9998":{"rank":554,"runs":[532,20,1,1]},"exit:10077":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:10078":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:10079":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:10087":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:10184":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:10185":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:10186":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:10194":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:10292":{"rank":556,"runs":[535,17,2,1,1]},"exit:10293":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:10302":{"rank":556,"runs":[535,17,2,1,1]},"exit:10400":{"rank":556,"runs":[535,17,2,1,1]},"exit:10401":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:10410":{"rank":556,"runs":[535,17,2,1,1]},"exit:10428":{"rank":555,"runs":[534,18,1,1,1]},"exit:10429":{"rank":555,"runs":[533,18,2,1,1]},"exit:10430":{"rank":555,"runs":[534,18,1,1,1]},"exit:10433":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:10448":{"rank":555,"runs":[534,18,1,1,1]},"exit:10449":{"rank":555,"runs":[533,18,2,1,1]},"exit:10450":{"rank":555,"runs":[534,18,1,1,1]},"exit:10810":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:10815":{"rank":571,"runs":[550,17,2,1,1]},"exit:10818":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:10819":{"rank":573,"runs":[552,19,1,1]},"exit:10821":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:10822":{"rank":573,"runs":[552,19,1,1]},"exit:10824":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:10825":{"rank":573,"runs":[552,19,1,1]},"exit:10827":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:10828":{"rank":573,"runs":[552,19,1,1]},"exit:10830":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:10833":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:10836":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:10839":{"rank":571,"runs":[549,17,2,1,1,1]},"exit:10842":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:10843":{"rank":573,"runs":[552,17,2,1,1]},"exit:10845":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:10846":{"rank":573,"runs":[552,17,2,1,1]},"exit:10848":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:10849":{"rank":573,"runs":[552,17,2,1,1]},"exit:10851":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:10854":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:10857":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:10860":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:10863":{"rank":571,"runs":[550,15,2,1,1,1,1]},"exit:10866":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:10869":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:10872":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:10875":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:10878":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:10881":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:10884":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:10887":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:10890":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:10893":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:10896":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:10899":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:10902":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:10905":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:10908":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:10911":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:10914":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:10917":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:10920":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:10923":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:10926":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:10929":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:10932":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:10935":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:10938":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:10941":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:10944":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:10947":{"rank":571,"runs":[550,15,2,1,1,1,1]},"exit:10955":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:10956":{"rank":567,"runs":[546,13,6,1,1]},"exit:10958":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:10959":{"rank":567,"runs":[542,9,4,4,3,3,1,1]},"exit:10961":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:10962":{"rank":567,"runs":[538,8,8,5,3,3,1,1]},"exit:10964":{"rank":569,"runs":[536,12,12,2,2,1,1,1,1,1]},"exit:10967":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:10968":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:10970":{"rank":569,"runs":[544,6,5,4,4,3,1,1,1]},"exit:10971":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:10973":{"rank":569,"runs":[540,8,8,5,2,2,1,1,1,1]},"exit:10976":{"rank":569,"runs":[548,10,5,4,1,1]},"exit:10977":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:10979":{"rank":569,"runs":[544,9,4,4,2,2,1,1,1,1]},"exit:10982":{"rank":569,"runs":[548,13,4,1,1,1,1]},"exit:10983":{"rank":567,"runs":[546,11,6,1,1,1,1]},"exit:10985":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:10987":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:10988":{"rank":565,"runs":[540,8,7,4,3,1,1,1]},"exit:10990":{"rank":563,"runs":[538,7,5,4,4,3,1,1]},"exit:10991":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:10992":{"rank":563,"runs":[542,10,7,1,1,1,1]},"exit:10997":{"rank":559,"runs":[538,14,3,1,1,1,1]},"exit:10998":{"rank":553,"runs":[531,21,1]},"exit:10999":{"rank":559,"runs":[538,14,5,1,1]},"exit:11000":{"rank":555,"runs":[533,18,1,1,1,1]},"exit:11002":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:11007":{"rank":561,"runs":[539,10,7,2,1,1,1]},"exit:11022":{"rank":559,"runs":[538,14,5,1,1]},"exit:11035":{"rank":559,"runs":[534,12,4,3,2,1,1,1,1]},"exit:11051":{"rank":558,"runs":[537,15,4,1,1]},"exit:11052":{"rank":558,"runs":[537,15,4,1,1]},"exit:11070":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11074":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:11075":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11079":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:11129":{"rank":559,"runs":[537,12,5,2,1,1,1]},"exit:11323":{"rank":556,"runs":[535,17,2,1,1]},"exit:11328":{"rank":556,"runs":[535,17,2,1,1]},"exit:11329":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:11346":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:11467":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11468":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:11476":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:11477":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11572":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11573":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:11581":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:11582":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:11684":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:11787":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:12697":{"rank":573,"runs":[552,17,2,1,1]},"exit:12907":{"rank":573,"runs":[552,19,1,1]},"exit:12908":{"rank":573,"runs":[552,17,2,1,1]},"exit:13120":{"rank":573,"runs":[552,19,1,1]},"exit:13121":{"rank":573,"runs":[552,17,2,1,1]},"exit:13227":{"rank":573,"runs":[552,19,1,1]},"exit:13228":{"rank":573,"runs":[552,17,2,1,1]},"exit:13229":{"rank":573,"runs":[552,15,4,1,1]},"exit:13230":{"rank":573,"runs":[552,13,6,1,1]},"exit:13231":{"rank":573,"runs":[552,11,8,1,1]},"exit:13232":{"rank":573,"runs":[552,10,9,1,1]},"exit:13233":{"rank":573,"runs":[552,12,7,1,1]},"exit:13234":{"rank":573,"runs":[552,14,5,1,1]},"exit:13235":{"rank":573,"runs":[552,16,3,1,1]},"exit:13324":{"rank":556,"runs":[535,17,2,1,1]},"exit:13333":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:13334":{"rank":556,"runs":[535,17,2,1,1]},"exit:13353":{"rank":555,"runs":[533,18,2,1,1]},"exit:13373":{"rank":555,"runs":[533,18,2,1,1]},"exit:13374":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:13444":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:13446":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:13739":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:13742":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:13745":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:13748":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:13751":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:13754":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:13755":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:13756":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:13759":{"rank":571,"runs":[549,15,1,1,1,1,1,1,1]},"exit:13762":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:13765":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:13768":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:13771":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:13772":{"rank":573,"runs":[552,15,4,1,1]},"exit:13774":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:13775":{"rank":573,"runs":[552,17,2,1,1]},"exit:13777":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:13778":{"rank":573,"runs":[552,19,1,1]},"exit:13780":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:13783":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:13786":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:13789":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:13792":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:13793":{"rank":573,"runs":[552,15,4,1,1]},"exit:13795":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:13796":{"rank":573,"runs":[552,17,2,1,1]},"exit:13798":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:13799":{"rank":573,"runs":[552,19,1,1]},"exit:13801":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:13804":{"rank":571,"runs":[550,11,4,2,2,1,1]},"exit:13807":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:13810":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:13811":{"rank":573,"runs":[552,15,4,1,1]},"exit:13813":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:13814":{"rank":573,"runs":[552,17,2,1,1]},"exit:13816":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:13817":{"rank":573,"runs":[552,19,1,1]},"exit:13819":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:13822":{"rank":571,"runs":[550,9,4,4,2,1,1]},"exit:13825":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:13826":{"rank":573,"runs":[552,15,4,1,1]},"exit:13828":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:13829":{"rank":573,"runs":[552,17,2,1,1]},"exit:13831":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:13832":{"rank":573,"runs":[552,19,1,1]},"exit:13834":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:13837":{"rank":571,"runs":[550,7,6,4,2,1,1]},"exit:13838":{"rank":573,"runs":[552,15,4,1,1]},"exit:13840":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:13841":{"rank":573,"runs":[552,17,2,1,1]},"exit:13843":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:13844":{"rank":573,"runs":[552,19,1,1]},"exit:13846":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:13849":{"rank":571,"runs":[550,8,5,4,2,1,1]},"exit:13850":{"rank":573,"runs":[552,17,2,1,1]},"exit:13852":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:13853":{"rank":573,"runs":[552,19,1,1]},"exit:13855":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:13858":{"rank":571,"runs":[550,10,4,3,2,1,1]},"exit:13859":{"rank":573,"runs":[552,19,1,1]},"exit:13861":{"rank":571,"runs":[550,17,2,1,1]},"exit:13864":{"rank":571,"runs":[550,12,4,2,1,1,1]},"exit:13867":{"rank":571,"runs":[549,14,4,2,1,1]},"exit:13872":{"rank":569,"runs":[544,10,2,2,2,2,2,1,1,1,1,1]},"exit:13873":{"rank":567,"runs":[544,10,5,2,2,1,1,1,1]},"exit:13875":{"rank":569,"runs":[544,6,5,4,4,3,1,1,1]},"exit:13876":{"rank":567,"runs":[540,6,4,4,3,2,2,2,1,1,1,1]},"exit:13878":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:13879":{"rank":567,"runs":[536,8,8,3,2,2,2,2,1,1,1,1]},"exit:13881":{"rank":569,"runs":[536,12,11,4,2,2,1,1]},"exit:13884":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:13885":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:13887":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:13888":{"rank":567,"runs":[542,7,4,4,3,3,2,1,1]},"exit:13890":{"rank":569,"runs":[540,8,7,4,4,2,2,1,1]},"exit:13893":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:13894":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:13896":{"rank":569,"runs":[544,8,4,4,3,2,2,1,1]},"exit:13897":{"rank":567,"runs":[542,6,4,4,4,3,2,1,1]},"exit:13899":{"rank":569,"runs":[547,12,4,4,1,1]},"exit:13900":{"rank":567,"runs":[545,10,6,4,1,1]},"exit:13901":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:13902":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:13903":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:13904":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:13905":{"rank":565,"runs":[534,10,9,7,2,1,1,1]},"exit:13908":{"rank":563,"runs":[542,10,7,2,1,1]},"exit:13909":{"rank":563,"runs":[541,10,6,4,1,1]},"exit:13912":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:13914":{"rank":559,"runs":[537,14,4,2,1,1]},"exit:13915":{"rank":553,"runs":[531,21,1]},"exit:13916":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:13918":{"rank":561,"runs":[534,11,6,5,2,1,1,1]},"exit:13933":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:13937":{"rank":559,"runs":[537,14,4,2,1,1]},"exit:13953":{"rank":561,"runs":[538,9,6,3,2,1,1,1]},"exit:13967":{"rank":558,"runs":[535,13,2,2,2,2,1,1]},"exit:13968":{"rank":558,"runs":[535,13,2,2,2,2,1,1]},"exit:13986":{"rank":556,"runs":[534,17,3,1,1]},"exit:13990":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:13991":{"rank":556,"runs":[534,17,3,1,1]},"exit:14183":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:14209":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:14213":{"rank":559,"runs":[537,11,5,3,1,1,1]},"exit:14214":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:14239":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:14261":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:14287":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:14347":{"rank":556,"runs":[534,17,3,1,1]},"exit:14348":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:14356":{"rank":556,"runs":[534,17,3,1,1]},"exit:14401":{"rank":556,"runs":[534,17,3,1,1]},"exit:14402":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:14410":{"rank":556,"runs":[534,17,3,1,1]},"exit:15726":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:15832":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:15937":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:15938":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:15939":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:15946":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:15947":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:16044":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:16045":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:16046":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:16053":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:16054":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:16152":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:16153":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:16162":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:16260":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:16261":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:16270":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:16271":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:16291":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:16675":{"rank":571,"runs":[550,17,2,1,1]},"exit:16678":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:16681":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:16682":{"rank":573,"runs":[552,19,1,1]},"exit:16684":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:16685":{"rank":573,"runs":[552,19,1,1]},"exit:16687":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:16688":{"rank":573,"runs":[552,19,1,1]},"exit:16690":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:16693":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:16695":{"rank":573,"runs":[552,18,1,1,1]},"exit:16696":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:16699":{"rank":571,"runs":[549,15,3,2,1,1]},"exit:16702":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:16705":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:16706":{"rank":573,"runs":[552,17,2,1,1]},"exit:16708":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:16709":{"rank":573,"runs":[552,17,2,1,1]},"exit:16711":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:16714":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:16717":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:16719":{"rank":573,"runs":[552,18,1,1,1]},"exit:16720":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:16723":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:16726":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:16727":{"rank":573,"runs":[552,15,4,1,1]},"exit:16729":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:16732":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:16735":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:16738":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:16740":{"rank":573,"runs":[552,18,1,1,1]},"exit:16741":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:16744":{"rank":571,"runs":[550,11,3,3,2,1,1]},"exit:16747":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:16750":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:16753":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:16756":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:16758":{"rank":573,"runs":[552,18,1,1,1]},"exit:16759":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:16762":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:16765":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:16768":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:16771":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:16773":{"rank":573,"runs":[552,18,1,1,1]},"exit:16774":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:16777":{"rank":571,"runs":[550,7,7,3,2,1,1]},"exit:16780":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:16783":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:16785":{"rank":573,"runs":[552,18,1,1,1]},"exit:16786":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:16789":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:16792":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:16794":{"rank":573,"runs":[552,18,1,1,1]},"exit:16795":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:16798":{"rank":571,"runs":[550,11,3,3,2,1,1]},"exit:16800":{"rank":573,"runs":[552,18,1,1,1]},"exit:16801":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:16804":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:16807":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:16809":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:16811":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:16812":{"rank":567,"runs":[546,13,6,1,1]},"exit:16814":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:16815":{"rank":567,"runs":[542,9,4,4,3,3,1,1]},"exit:16817":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:16818":{"rank":567,"runs":[538,8,8,5,3,3,1,1]},"exit:16820":{"rank":569,"runs":[535,13,13,2,2,1,1,1,1]},"exit:16823":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:16824":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:16826":{"rank":569,"runs":[544,6,5,4,4,3,1,1,1]},"exit:16827":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:16829":{"rank":569,"runs":[539,9,9,5,2,2,1,1,1]},"exit:16832":{"rank":569,"runs":[548,10,5,4,1,1]},"exit:16833":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:16835":{"rank":569,"runs":[543,9,5,5,2,2,1,1,1]},"exit:16836":{"rank":567,"runs":[541,7,5,5,4,2,1,1,1]},"exit:16838":{"rank":569,"runs":[547,13,2,2,1,1,1,1,1]},"exit:16841":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:16842":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:16843":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:16844":{"rank":565,"runs":[540,8,7,4,3,1,1,1]},"exit:16846":{"rank":563,"runs":[538,7,5,4,4,3,1,1]},"exit:16847":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:16848":{"rank":563,"runs":[541,8,7,2,1,1,1,1,1]},"exit:16853":{"rank":559,"runs":[537,12,3,2,1,1,1,1,1]},"exit:16854":{"rank":553,"runs":[531,21,1]},"exit:16855":{"rank":559,"runs":[538,14,5,1,1]},"exit:16857":{"rank":561,"runs":[536,11,4,4,3,1,1,1]},"exit:16858":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:16863":{"rank":561,"runs":[539,8,7,4,1,1,1]},"exit:16890":{"rank":561,"runs":[535,8,5,4,4,3,1,1]},"exit:16903":{"rank":558,"runs":[537,15,4,1,1]},"exit:16922":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:16926":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:16927":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:16981":{"rank":559,"runs":[537,10,5,4,1,1,1]},"exit:17145":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:17150":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:17181":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:17198":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:17319":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:17320":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:17328":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:17329":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:17424":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:17425":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:17433":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:17434":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:17536":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:17639":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:1772":{"rank":573,"runs":[552,14,5,1,1]},"exit:1773":{"rank":573,"runs":[552,12,7,1,1]},"exit:1793":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:1802":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:1804":{"rank":573,"runs":[552,16,3,1,1]},"exit:1805":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:1807":{"rank":573,"runs":[552,16,3,1,1]},"exit:1808":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:1811":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:1817":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:1826":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:1828":{"rank":573,"runs":[552,14,5,1,1]},"exit:1829":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:1832":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:18343":{"rank":573,"runs":[552,15,4,1,1]},"exit:1835":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:1837":{"rank":573,"runs":[552,19,1,1]},"exit:1838":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:1841":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:1844":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:1847":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:1850":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:1853":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:18549":{"rank":573,"runs":[552,17,2,1,1]},"exit:18550":{"rank":573,"runs":[552,15,4,1,1]},"exit:1856":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:1858":{"rank":573,"runs":[552,19,1,1]},"exit:1859":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:1862":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:1865":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:1868":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:1871":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:1873":{"rank":573,"runs":[552,17,2,1,1]},"exit:1874":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:18759":{"rank":573,"runs":[552,19,1,1]},"exit:1876":{"rank":573,"runs":[552,19,1,1]},"exit:18760":{"rank":573,"runs":[552,17,2,1,1]},"exit:18761":{"rank":573,"runs":[552,15,4,1,1]},"exit:1877":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:1880":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:1883":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:1886":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:1889":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:18909":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:1891":{"rank":573,"runs":[552,19,1,1]},"exit:18918":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:1892":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:1895":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:18977":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:1898":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:18986":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:18987":{"rank":573,"runs":[552,19,1,1]},"exit:18988":{"rank":573,"runs":[552,17,2,1,1]},"exit:18989":{"rank":573,"runs":[552,15,4,1,1]},"exit:18990":{"rank":573,"runs":[552,13,6,1,1]},"exit:18991":{"rank":573,"runs":[552,11,8,1,1]},"exit:18992":{"rank":573,"runs":[552,10,9,1,1]},"exit:18993":{"rank":573,"runs":[552,12,7,1,1]},"exit:18994":{"rank":573,"runs":[552,14,5,1,1]},"exit:18995":{"rank":573,"runs":[552,18,1,1,1]},"exit:1901":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:1903":{"rank":573,"runs":[552,19,1,1]},"exit:1904":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:1907":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:19084":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:19093":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:19094":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:1910":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:1912":{"rank":573,"runs":[552,19,1,1]},"exit:1913":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:19131":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:1916":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:1922":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:1925":{"rank":571,"runs":[549,18,2,1,1]},"exit:1928":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:1929":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:1937":{"rank":569,"runs":[546,10,3,3,2,2,1,1,1]},"exit:1938":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:1941":{"rank":567,"runs":[542,6,4,4,3,3,3,1,1]},"exit:1943":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:1944":{"rank":567,"runs":[538,8,8,3,3,3,2,1,1]},"exit:1946":{"rank":569,"runs":[536,12,11,4,2,2,1,1]},"exit:19497":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:1950":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:19500":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:19503":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:19506":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:19509":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:19512":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:19513":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:19514":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:19517":{"rank":571,"runs":[547,13,3,3,1,1,1,1,1]},"exit:1952":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:19520":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:19523":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:19526":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:19529":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:1953":{"rank":567,"runs":[542,7,4,4,3,3,2,1,1]},"exit:19530":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:19531":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:19532":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:19535":{"rank":571,"runs":[549,13,3,1,1,1,1,1,1]},"exit:19538":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:19541":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:19542":{"rank":573,"runs":[552,13,6,1,1]},"exit:19544":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:19545":{"rank":573,"runs":[552,15,4,1,1]},"exit:19547":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:19548":{"rank":573,"runs":[552,17,2,1,1]},"exit:19550":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:19551":{"rank":573,"runs":[552,19,1,1]},"exit:19553":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:19556":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:19559":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:19560":{"rank":573,"runs":[552,13,6,1,1]},"exit:19562":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:19563":{"rank":573,"runs":[552,15,4,1,1]},"exit:19565":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:19566":{"rank":573,"runs":[552,17,2,1,1]},"exit:19568":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:19569":{"rank":573,"runs":[552,19,1,1]},"exit:19571":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:19574":{"rank":571,"runs":[550,9,6,2,2,1,1]},"exit:19575":{"rank":573,"runs":[552,13,6,1,1]},"exit:19577":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:19578":{"rank":573,"runs":[552,15,4,1,1]},"exit:1958":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:19580":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:19581":{"rank":573,"runs":[552,17,2,1,1]},"exit:19583":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:19584":{"rank":573,"runs":[552,19,1,1]},"exit:19586":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:19589":{"rank":571,"runs":[550,7,6,4,2,1,1]},"exit:1959":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:19590":{"rank":573,"runs":[552,15,4,1,1]},"exit:19592":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:19593":{"rank":573,"runs":[552,17,2,1,1]},"exit:19595":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:19596":{"rank":573,"runs":[552,19,1,1]},"exit:19598":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:1960":{"rank":569,"runs":[542,10,6,5,2,2,1,1]},"exit:19601":{"rank":571,"runs":[550,6,6,5,2,1,1]},"exit:19602":{"rank":573,"runs":[552,17,2,1,1]},"exit:19604":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:19605":{"rank":573,"runs":[552,19,1,1]},"exit:19607":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:19610":{"rank":571,"runs":[550,8,6,3,2,1,1]},"exit:19611":{"rank":573,"runs":[552,19,1,1]},"exit:19612":{"rank":573,"runs":[552,19,1,1]},"exit:19613":{"rank":571,"runs":[550,17,2,1,1]},"exit:19616":{"rank":571,"runs":[550,10,6,2,1,1,1]},"exit:19619":{"rank":571,"runs":[549,12,6,2,1,1]},"exit:1962":{"rank":567,"runs":[542,10,4,4,3,2,1,1]},"exit:19624":{"rank":569,"runs":[544,10,4,4,3,1,1,1,1]},"exit:19625":{"rank":567,"runs":[544,10,3,3,2,2,1,1,1]},"exit:19627":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:19628":{"rank":567,"runs":[540,6,6,6,3,3,1,1,1]},"exit:1963":{"rank":569,"runs":[546,14,2,2,2,1,1,1]},"exit:19630":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:19631":{"rank":567,"runs":[536,10,10,3,3,2,1,1,1]},"exit:19636":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:19637":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:19639":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:1964":{"rank":569,"runs":[547,16,4,1,1]},"exit:19640":{"rank":567,"runs":[542,7,4,4,3,3,2,1,1]},"exit:19642":{"rank":569,"runs":[540,8,7,6,2,2,2,1,1]},"exit:19645":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:19646":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:19648":{"rank":569,"runs":[544,6,6,4,3,2,2,1,1]},"exit:19649":{"rank":567,"runs":[542,6,4,4,4,3,2,1,1]},"exit:1965":{"rank":567,"runs":[545,14,6,1,1]},"exit:19651":{"rank":569,"runs":[547,10,6,4,1,1]},"exit:19652":{"rank":567,"runs":[545,8,6,6,1,1]},"exit:19653":{"rank":569,"runs":[547,16,5,1]},"exit:19654":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:19655":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:19656":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:19657":{"rank":565,"runs":[534,10,9,7,2,1,1,1]},"exit:19659":{"rank":563,"runs":[536,7,6,6,3,2,1,1,1]},"exit:1966":{"rank":569,"runs":[548,14,4,1,1,1]},"exit:19660":{"rank":563,"runs":[542,10,7,2,1,1]},"exit:19661":{"rank":563,"runs":[541,10,6,4,1,1]},"exit:19664":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:19666":{"rank":559,"runs":[537,15,6,1]},"exit:19667":{"rank":553,"runs":[531,21,1]},"exit:19685":{"rank":559,"runs":[536,11,3,2,2,2,1,1,1]},"exit:19689":{"rank":559,"runs":[537,15,6,1]},"exit:1969":{"rank":569,"runs":[536,12,12,3,2,1,1,1,1]},"exit:1970":{"rank":565,"runs":[536,8,8,7,2,1,1,1,1]},"exit:19705":{"rank":561,"runs":[538,7,6,5,2,1,1,1]},"exit:19719":{"rank":558,"runs":[535,11,4,2,2,2,1,1]},"exit:1972":{"rank":563,"runs":[538,7,4,4,3,3,2,1,1]},"exit:19720":{"rank":558,"runs":[535,11,4,2,2,2,1,1]},"exit:1973":{"rank":563,"runs":[542,10,7,2,1,1]},"exit:19738":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:1974":{"rank":563,"runs":[541,10,10,1,1]},"exit:19743":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:1976":{"rank":561,"runs":[536,7,5,4,4,2,1,1,1]},"exit:1977":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:1979":{"rank":559,"runs":[537,14,6,1,1]},"exit:1980":{"rank":553,"runs":[531,21,1]},"exit:1981":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:1982":{"rank":555,"runs":[533,18,2,1,1]},"exit:19935":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:19961":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:19965":{"rank":559,"runs":[537,9,5,5,1,1,1]},"exit:19966":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:1999":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:20039":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:2008":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:20108":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:20153":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:20162":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:2023":{"rank":561,"runs":[540,12,6,1,1,1]},"exit:2037":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:2038":{"rank":558,"runs":[537,15,2,1,1,1,1]},"exit:2056":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:2060":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:2087":{"rank":559,"runs":[536,11,3,2,2,2,1,1,1]},"exit:21394":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:21500":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:21605":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:21606":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:21607":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:21615":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:2167":{"rank":559,"runs":[536,9,5,2,2,2,1,1,1]},"exit:21712":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:21713":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:21714":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:21722":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:21821":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:21929":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:21939":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:2195":{"rank":559,"runs":[536,11,3,2,2,2,1,1,1]},"exit:21959":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:2224":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:22342":{"rank":573,"runs":[552,19,1,1]},"exit:22343":{"rank":571,"runs":[550,17,2,1,1]},"exit:22345":{"rank":573,"runs":[552,19,1,1]},"exit:22346":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:22348":{"rank":573,"runs":[552,19,1,1]},"exit:22349":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:22351":{"rank":573,"runs":[552,19,1,1]},"exit:22352":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:22353":{"rank":573,"runs":[552,19,1,1]},"exit:22354":{"rank":573,"runs":[552,19,1,1]},"exit:22355":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:22356":{"rank":573,"runs":[552,19,1,1]},"exit:22357":{"rank":573,"runs":[552,19,1,1]},"exit:22358":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:22360":{"rank":573,"runs":[552,16,3,1,1]},"exit:22361":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:22363":{"rank":573,"runs":[552,18,1,1,1]},"exit:22364":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:22367":{"rank":571,"runs":[549,13,5,2,1,1]},"exit:22370":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:22373":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:22376":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:22377":{"rank":573,"runs":[552,17,2,1,1]},"exit:22379":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:22382":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:22384":{"rank":573,"runs":[552,16,3,1,1]},"exit:22385":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:22387":{"rank":573,"runs":[552,18,1,1,1]},"exit:22388":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:22391":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:22394":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:22397":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:22400":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:22403":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:22405":{"rank":573,"runs":[552,16,3,1,1]},"exit:22406":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:22408":{"rank":573,"runs":[552,18,1,1,1]},"exit:22409":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:22412":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:22415":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:22418":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:22421":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:22423":{"rank":573,"runs":[552,16,3,1,1]},"exit:22424":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:22426":{"rank":573,"runs":[552,18,1,1,1]},"exit:22427":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:22430":{"rank":571,"runs":[550,7,5,5,2,1,1]},"exit:22433":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:22436":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:22438":{"rank":573,"runs":[552,16,3,1,1]},"exit:22439":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:22441":{"rank":573,"runs":[552,18,1,1,1]},"exit:22442":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:22445":{"rank":571,"runs":[550,7,5,5,2,1,1]},"exit:22448":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:22450":{"rank":573,"runs":[552,16,3,1,1]},"exit:22451":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:22453":{"rank":573,"runs":[552,18,1,1,1]},"exit:22454":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:22457":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:22459":{"rank":573,"runs":[552,16,3,1,1]},"exit:22460":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:22462":{"rank":573,"runs":[552,18,1,1,1]},"exit:22463":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:22466":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:22467":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:22470":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:22473":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:22474":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:22477":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:22478":{"rank":567,"runs":[546,13,6,1,1]},"exit:22480":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:22481":{"rank":567,"runs":[542,9,4,4,3,3,1,1]},"exit:22483":{"rank":569,"runs":[538,8,8,3,2,2,2,2,1,1,1,1]},"exit:22489":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:2249":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:22490":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:22492":{"rank":569,"runs":[542,6,4,4,3,2,2,2,1,1,1,1]},"exit:22493":{"rank":567,"runs":[540,4,4,4,3,3,2,2,2,1,1,1]},"exit:22495":{"rank":569,"runs":[539,7,7,5,2,2,2,1,1,1,1,1]},"exit:22498":{"rank":569,"runs":[546,10,3,3,2,2,1,1,1]},"exit:22499":{"rank":567,"runs":[544,8,5,3,2,2,1,1,1]},"exit:22501":{"rank":569,"runs":[543,9,3,3,2,2,2,1,1,1,1,1]},"exit:22504":{"rank":569,"runs":[548,14,4,1,1,1]},"exit:22507":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:22508":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:22509":{"rank":569,"runs":[544,12,2,2,2,2,1,1,1,1,1]},"exit:22510":{"rank":565,"runs":[540,8,5,2,2,2,2,1,1,1,1]},"exit:22513":{"rank":563,"runs":[540,9,4,3,2,2,1,1,1]},"exit:22514":{"rank":563,"runs":[541,7,6,4,1,1,1,1,1]},"exit:22519":{"rank":559,"runs":[537,10,4,3,1,1,1,1,1]},"exit:22520":{"rank":553,"runs":[531,21,1]},"exit:22521":{"rank":559,"runs":[536,13,3,2,2,1,1,1]},"exit:22523":{"rank":561,"runs":[536,9,4,2,2,2,2,1,1,1,1]},"exit:22524":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:22529":{"rank":561,"runs":[539,7,6,6,1,1,1]},"exit:2253":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:22569":{"rank":558,"runs":[535,13,2,2,2,2,1,1]},"exit:22588":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:22593":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:22647":{"rank":559,"runs":[537,8,6,5,1,1,1]},"exit:2279":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:22811":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:2283":{"rank":559,"runs":[538,14,5,1,1]},"exit:2284":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:22847":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:22864":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:2288":{"rank":555,"runs":[534,18,1,1,1]},"exit:22985":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:22986":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:22995":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:2309":{"rank":556,"runs":[535,17,2,1,1]},"exit:23090":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:23091":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:23099":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:23100":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:2314":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:2318":{"rank":555,"runs":[534,18,1,1,1]},"exit:23202":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:23305":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:2331":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:2332":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:2333":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:2334":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:2344":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:2353":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:2357":{"rank":557,"runs":[536,16,3,1,1]},"exit:24009":{"rank":573,"runs":[552,15,4,1,1]},"exit:24010":{"rank":573,"runs":[552,13,6,1,1]},"exit:24215":{"rank":573,"runs":[552,17,2,1,1]},"exit:24216":{"rank":573,"runs":[552,15,4,1,1]},"exit:24217":{"rank":573,"runs":[552,13,6,1,1]},"exit:24494":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:2453":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:2454":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:2455":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:24563":{"rank":573,"runs":[552,19,1,1]},"exit:24564":{"rank":573,"runs":[552,17,2,1,1]},"exit:24565":{"rank":573,"runs":[552,15,4,1,1]},"exit:24566":{"rank":573,"runs":[552,13,6,1,1]},"exit:24567":{"rank":573,"runs":[552,11,8,1,1]},"exit:24568":{"rank":573,"runs":[552,10,9,1,1]},"exit:24569":{"rank":573,"runs":[552,12,7,1,1]},"exit:24570":{"rank":573,"runs":[552,16,3,1,1]},"exit:24571":{"rank":573,"runs":[552,18,1,1,1]},"exit:24669":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:25073":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:25074":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:25077":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:25080":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:25083":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:25086":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:25087":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:25088":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:25091":{"rank":571,"runs":[545,11,5,5,1,1,1,1,1]},"exit:25092":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:25095":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:25098":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:25101":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:25102":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:25103":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:25104":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:25107":{"rank":571,"runs":[547,11,3,3,3,1,1,1,1]},"exit:25110":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:25113":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:25114":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:25115":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:25116":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:25117":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:25120":{"rank":571,"runs":[549,11,5,1,1,1,1,1,1]},"exit:25121":{"rank":573,"runs":[552,11,8,1,1]},"exit:25123":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:25124":{"rank":573,"runs":[552,13,6,1,1]},"exit:25126":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:25127":{"rank":573,"runs":[552,15,4,1,1]},"exit:25129":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:25130":{"rank":573,"runs":[552,17,2,1,1]},"exit:25132":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:25133":{"rank":573,"runs":[552,19,1,1]},"exit:25135":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:25138":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:25139":{"rank":573,"runs":[552,13,6,1,1]},"exit:25141":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:25142":{"rank":573,"runs":[552,15,4,1,1]},"exit:25144":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:25145":{"rank":573,"runs":[552,17,2,1,1]},"exit:25147":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:25148":{"rank":573,"runs":[552,19,1,1]},"exit:25150":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:25153":{"rank":571,"runs":[550,8,7,2,2,1,1]},"exit:25154":{"rank":573,"runs":[552,15,4,1,1]},"exit:25156":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:25157":{"rank":573,"runs":[552,17,2,1,1]},"exit:25159":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:25160":{"rank":573,"runs":[552,19,1,1]},"exit:25162":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:25165":{"rank":571,"runs":[550,8,5,4,2,1,1]},"exit:25166":{"rank":573,"runs":[552,17,2,1,1]},"exit:25167":{"rank":573,"runs":[552,17,2,1,1]},"exit:25168":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:25169":{"rank":573,"runs":[552,19,1,1]},"exit:25170":{"rank":573,"runs":[552,19,1,1]},"exit:25171":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:25174":{"rank":571,"runs":[550,8,6,3,2,1,1]},"exit:25175":{"rank":573,"runs":[552,19,1,1]},"exit:25176":{"rank":573,"runs":[552,19,1,1]},"exit:25177":{"rank":571,"runs":[550,17,2,1,1]},"exit:25180":{"rank":571,"runs":[550,8,8,2,1,1,1]},"exit:25183":{"rank":571,"runs":[549,10,8,2,1,1]},"exit:25188":{"rank":569,"runs":[544,10,4,4,3,1,1,1,1]},"exit:25189":{"rank":567,"runs":[544,10,5,2,2,1,1,1,1]},"exit:25191":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:25192":{"rank":567,"runs":[540,6,6,6,3,3,1,1,1]},"exit:25194":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:25195":{"rank":567,"runs":[536,10,10,3,3,2,1,1,1]},"exit:25200":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:25201":{"rank":567,"runs":[544,6,5,5,2,2,1,1,1]},"exit:25203":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:25204":{"rank":567,"runs":[540,5,4,4,3,2,2,2,2,1,1,1]},"exit:25206":{"rank":569,"runs":[540,8,8,7,2,2,1,1]},"exit:25209":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:25210":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:25212":{"rank":569,"runs":[544,8,4,4,3,2,2,1,1]},"exit:25213":{"rank":567,"runs":[542,8,4,4,3,2,2,1,1]},"exit:25215":{"rank":569,"runs":[547,8,8,4,1,1]},"exit:25216":{"rank":567,"runs":[545,8,6,6,1,1]},"exit:25217":{"rank":569,"runs":[547,16,5,1]},"exit:25219":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:25220":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:25221":{"rank":565,"runs":[534,10,9,7,2,1,1,1]},"exit:25223":{"rank":563,"runs":[536,7,6,6,3,2,1,1,1]},"exit:25224":{"rank":563,"runs":[540,9,5,2,2,2,1,1,1]},"exit:25225":{"rank":563,"runs":[541,10,8,2,1,1]},"exit:25230":{"rank":559,"runs":[537,13,5,1,1,1,1]},"exit:25231":{"rank":553,"runs":[531,21,1]},"exit:25249":{"rank":559,"runs":[536,9,5,2,2,2,1,1,1]},"exit:25269":{"rank":561,"runs":[538,7,6,5,2,1,1,1]},"exit:25283":{"rank":558,"runs":[535,9,6,2,2,2,1,1]},"exit:25284":{"rank":558,"runs":[535,9,6,2,2,2,1,1]},"exit:25302":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:25307":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:25499":{"rank":559,"runs":[536,7,7,4,2,1,1,1]},"exit:25525":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:25529":{"rank":559,"runs":[537,7,7,5,1,1,1]},"exit:25530":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:2558":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:2559":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:2560":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:25603":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:25663":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:25672":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:25717":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:25726":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:2662":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:2663":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:26878":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:26984":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:27089":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:27091":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:27099":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:27196":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:27198":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:27206":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:2765":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:2766":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:27826":{"rank":573,"runs":[552,19,1,1]},"exit:27827":{"rank":571,"runs":[550,17,2,1,1]},"exit:27829":{"rank":573,"runs":[552,19,1,1]},"exit:27830":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:27832":{"rank":573,"runs":[552,19,1,1]},"exit:27833":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:27835":{"rank":573,"runs":[552,19,1,1]},"exit:27836":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:27838":{"rank":573,"runs":[552,19,1,1]},"exit:27839":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:27840":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:27842":{"rank":573,"runs":[552,16,3,1,1]},"exit:27843":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:27845":{"rank":573,"runs":[552,18,1,1,1]},"exit:27846":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:27849":{"rank":571,"runs":[549,11,7,2,1,1]},"exit:27851":{"rank":573,"runs":[552,17,2,1,1]},"exit:27852":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:27854":{"rank":573,"runs":[552,17,2,1,1]},"exit:27855":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:27857":{"rank":573,"runs":[552,17,2,1,1]},"exit:27858":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:27860":{"rank":573,"runs":[552,17,2,1,1]},"exit:27861":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:27863":{"rank":573,"runs":[552,14,5,1,1]},"exit:27864":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:27866":{"rank":573,"runs":[552,16,3,1,1]},"exit:27867":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:27869":{"rank":573,"runs":[552,18,1,1,1]},"exit:27870":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:27873":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:27876":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:27879":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:27882":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:27884":{"rank":573,"runs":[552,14,5,1,1]},"exit:27885":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:27887":{"rank":573,"runs":[552,16,3,1,1]},"exit:27888":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:27890":{"rank":573,"runs":[552,18,1,1,1]},"exit:27891":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:27894":{"rank":571,"runs":[550,7,7,3,2,1,1]},"exit:27897":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:27900":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:27902":{"rank":573,"runs":[552,14,5,1,1]},"exit:27903":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:27905":{"rank":573,"runs":[552,16,3,1,1]},"exit:27906":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:27908":{"rank":573,"runs":[552,18,1,1,1]},"exit:27909":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:27912":{"rank":571,"runs":[550,7,5,5,2,1,1]},"exit:27915":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:27917":{"rank":573,"runs":[552,14,5,1,1]},"exit:27918":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:27920":{"rank":573,"runs":[552,16,3,1,1]},"exit:27921":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:27923":{"rank":573,"runs":[552,18,1,1,1]},"exit:27924":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:27927":{"rank":571,"runs":[550,7,7,3,2,1,1]},"exit:27929":{"rank":573,"runs":[552,14,5,1,1]},"exit:27930":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:27932":{"rank":573,"runs":[552,16,3,1,1]},"exit:27933":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:27935":{"rank":573,"runs":[552,18,1,1,1]},"exit:27936":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:27939":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:27940":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:27941":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:27944":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:27945":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:27948":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:27951":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:27952":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:27955":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:27956":{"rank":567,"runs":[546,13,6,1,1]},"exit:27958":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:27959":{"rank":567,"runs":[542,9,4,4,3,3,1,1]},"exit:27961":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:27962":{"rank":567,"runs":[536,10,10,3,3,3,1,1]},"exit:27967":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:27968":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:27970":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:27971":{"rank":567,"runs":[540,6,6,4,3,3,3,1,1]},"exit:27973":{"rank":569,"runs":[539,5,5,5,4,4,2,1,1,1,1,1]},"exit:27976":{"rank":569,"runs":[546,10,3,3,2,2,1,1,1]},"exit:27977":{"rank":567,"runs":[544,8,3,3,3,2,2,1,1]},"exit:27979":{"rank":569,"runs":[543,9,4,4,2,1,1,1,1,1,1,1]},"exit:27982":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:27985":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:27986":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:27987":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:27988":{"rank":565,"runs":[540,8,4,3,2,2,2,1,1,1,1]},"exit:27991":{"rank":563,"runs":[540,7,4,3,3,2,2,1,1]},"exit:27992":{"rank":563,"runs":[541,7,6,4,1,1,1,1,1]},"exit:27997":{"rank":559,"runs":[537,8,6,3,1,1,1,1,1]},"exit:27998":{"rank":553,"runs":[531,21,1]},"exit:28002":{"rank":557,"runs":[535,8,8,3,1,1,1]},"exit:28007":{"rank":561,"runs":[539,8,7,4,1,1,1]},"exit:28066":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:28071":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:28125":{"rank":559,"runs":[537,8,6,5,1,1,1]},"exit:28289":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:28325":{"rank":559,"runs":[536,7,7,4,2,1,1,1]},"exit:28463":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:28473":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:28568":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:28577":{"rank":557,"runs":[535,8,8,3,1,1,1]},"exit:28578":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:2866":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:28680":{"rank":557,"runs":[535,8,8,3,1,1,1]},"exit:28783":{"rank":557,"runs":[535,8,8,3,1,1,1]},"exit:2967":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:29886":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:29954":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:29955":{"rank":573,"runs":[552,19,1,1]},"exit:29956":{"rank":573,"runs":[552,17,2,1,1]},"exit:29957":{"rank":573,"runs":[552,15,4,1,1]},"exit:29958":{"rank":573,"runs":[552,13,6,1,1]},"exit:29959":{"rank":573,"runs":[552,11,8,1,1]},"exit:29960":{"rank":573,"runs":[552,10,9,1,1]},"exit:29961":{"rank":573,"runs":[552,14,5,1,1]},"exit:29962":{"rank":573,"runs":[552,16,3,1,1]},"exit:29963":{"rank":573,"runs":[552,18,1,1,1]},"exit:30465":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:30466":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:30467":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:30470":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:30473":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:30476":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:30477":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:30478":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:30481":{"rank":571,"runs":[543,9,7,7,1,1,1,1,1]},"exit:30482":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:30483":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:30486":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:30489":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:30490":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:30491":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:30492":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:30495":{"rank":571,"runs":[545,9,5,5,3,1,1,1,1]},"exit:30496":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:30499":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:30500":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:30501":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:30502":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:30503":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:30506":{"rank":571,"runs":[547,9,5,3,3,1,1,1,1]},"exit:30507":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:30508":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:30509":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:30510":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:30511":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:30514":{"rank":571,"runs":[549,9,7,1,1,1,1,1,1]},"exit:30515":{"rank":573,"runs":[552,13,6,1,1]},"exit:30517":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:30518":{"rank":573,"runs":[552,15,4,1,1]},"exit:30520":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:30521":{"rank":573,"runs":[552,17,2,1,1]},"exit:30523":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:30524":{"rank":573,"runs":[552,19,1,1]},"exit:30526":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:30529":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:30530":{"rank":573,"runs":[552,15,4,1,1]},"exit:30531":{"rank":573,"runs":[552,15,4,1,1]},"exit:30532":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:30533":{"rank":573,"runs":[552,17,2,1,1]},"exit:30534":{"rank":573,"runs":[552,17,2,1,1]},"exit:30535":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:30536":{"rank":573,"runs":[552,19,1,1]},"exit:30537":{"rank":573,"runs":[552,19,1,1]},"exit:30538":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:30541":{"rank":571,"runs":[550,10,5,2,2,1,1]},"exit:30542":{"rank":573,"runs":[552,17,2,1,1]},"exit:30543":{"rank":573,"runs":[552,17,2,1,1]},"exit:30544":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:30545":{"rank":573,"runs":[552,19,1,1]},"exit:30546":{"rank":573,"runs":[552,19,1,1]},"exit:30547":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:30550":{"rank":571,"runs":[550,10,4,3,2,1,1]},"exit:30551":{"rank":573,"runs":[552,19,1,1]},"exit:30552":{"rank":573,"runs":[552,19,1,1]},"exit:30553":{"rank":571,"runs":[550,17,2,1,1]},"exit:30556":{"rank":571,"runs":[550,10,6,2,1,1,1]},"exit:30559":{"rank":571,"runs":[549,10,8,2,1,1]},"exit:30564":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:30565":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:30567":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:30568":{"rank":567,"runs":[540,6,6,6,3,3,1,1,1]},"exit:30570":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:30571":{"rank":567,"runs":[536,10,10,3,3,2,1,1,1]},"exit:30576":{"rank":569,"runs":[546,7,6,3,2,2,1,1,1]},"exit:30577":{"rank":567,"runs":[544,6,5,3,3,2,2,1,1]},"exit:30579":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:30580":{"rank":567,"runs":[540,6,6,5,3,3,2,1,1]},"exit:30582":{"rank":569,"runs":[539,8,7,7,2,1,1,1,1,1,1]},"exit:30585":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:30586":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:30588":{"rank":569,"runs":[544,10,4,3,2,2,2,1,1]},"exit:30589":{"rank":567,"runs":[542,10,4,4,3,2,1,1]},"exit:30591":{"rank":569,"runs":[547,10,6,4,1,1]},"exit:30592":{"rank":567,"runs":[545,10,6,4,1,1]},"exit:30593":{"rank":569,"runs":[547,16,5,1]},"exit:30594":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:30595":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:30596":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:30597":{"rank":565,"runs":[534,10,9,7,2,1,1,1]},"exit:30599":{"rank":563,"runs":[536,7,6,6,3,2,1,1,1]},"exit:30600":{"rank":563,"runs":[540,7,5,3,2,2,2,1,1]},"exit:30601":{"rank":563,"runs":[541,11,10,1]},"exit:30606":{"rank":559,"runs":[537,11,5,3,1,1,1]},"exit:30607":{"rank":553,"runs":[531,21,1]},"exit:30625":{"rank":559,"runs":[536,7,7,2,2,2,1,1,1]},"exit:30629":{"rank":559,"runs":[537,11,5,3,1,1,1]},"exit:30645":{"rank":561,"runs":[538,9,6,3,2,1,1,1]},"exit:30659":{"rank":558,"runs":[535,8,7,2,2,2,1,1]},"exit:30660":{"rank":558,"runs":[535,8,7,2,2,2,1,1]},"exit:30678":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:30683":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:30875":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:30901":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:30905":{"rank":559,"runs":[537,9,5,5,1,1,1]},"exit:30906":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:30979":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:31039":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:31093":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:31102":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:32178":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:32284":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:32389":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:32391":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:32399":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:32496":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:32498":{"rank":557,"runs":[535,9,7,3,1,1,1]},"exit:32506":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33126":{"rank":573,"runs":[552,19,1,1]},"exit:33127":{"rank":571,"runs":[550,17,2,1,1]},"exit:33129":{"rank":573,"runs":[552,19,1,1]},"exit:33130":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:33132":{"rank":573,"runs":[552,19,1,1]},"exit:33133":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:33135":{"rank":573,"runs":[552,19,1,1]},"exit:33136":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:33137":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:33138":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:33140":{"rank":573,"runs":[552,16,3,1,1]},"exit:33141":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:33143":{"rank":573,"runs":[552,18,1,1,1]},"exit:33144":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:33147":{"rank":571,"runs":[549,9,9,2,1,1]},"exit:33149":{"rank":573,"runs":[552,17,2,1,1]},"exit:33150":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:33152":{"rank":573,"runs":[552,17,2,1,1]},"exit:33153":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:33155":{"rank":573,"runs":[552,17,2,1,1]},"exit:33156":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:33157":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:33159":{"rank":573,"runs":[552,14,5,1,1]},"exit:33160":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:33162":{"rank":573,"runs":[552,16,3,1,1]},"exit:33163":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:33165":{"rank":573,"runs":[552,18,1,1,1]},"exit:33166":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:33169":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:33171":{"rank":573,"runs":[552,15,4,1,1]},"exit:33172":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:33174":{"rank":573,"runs":[552,15,4,1,1]},"exit:33175":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:33177":{"rank":573,"runs":[552,12,7,1,1]},"exit:33178":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:33180":{"rank":573,"runs":[552,14,5,1,1]},"exit:33181":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:33183":{"rank":573,"runs":[552,16,3,1,1]},"exit:33184":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:33186":{"rank":573,"runs":[552,18,1,1,1]},"exit:33187":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:33190":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:33193":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:33195":{"rank":573,"runs":[552,12,7,1,1]},"exit:33196":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:33198":{"rank":573,"runs":[552,14,5,1,1]},"exit:33199":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:33201":{"rank":573,"runs":[552,16,3,1,1]},"exit:33202":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:33204":{"rank":573,"runs":[552,18,1,1,1]},"exit:33205":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:33208":{"rank":571,"runs":[550,9,5,3,2,1,1]},"exit:33210":{"rank":573,"runs":[552,12,7,1,1]},"exit:33211":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:33213":{"rank":573,"runs":[552,14,5,1,1]},"exit:33214":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:33216":{"rank":573,"runs":[552,16,3,1,1]},"exit:33217":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:33219":{"rank":573,"runs":[552,18,1,1,1]},"exit:33220":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:33223":{"rank":571,"runs":[550,9,7,2,1,1,1]},"exit:33224":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:33225":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:33226":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:33229":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:33230":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:33231":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:33234":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:33235":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:33238":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:33241":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:33245":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:33246":{"rank":567,"runs":[546,13,6,1,1]},"exit:33248":{"rank":569,"runs":[542,7,4,4,2,2,2,2,1,1,1,1]},"exit:33249":{"rank":567,"runs":[540,7,4,4,3,2,2,2,1,1,1]},"exit:33251":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:33252":{"rank":567,"runs":[536,10,10,3,3,3,1,1]},"exit:33257":{"rank":569,"runs":[546,7,6,3,2,2,1,1,1]},"exit:33258":{"rank":567,"runs":[544,7,5,4,2,2,1,1,1]},"exit:33260":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:33261":{"rank":567,"runs":[540,6,6,4,3,3,3,1,1]},"exit:33263":{"rank":569,"runs":[539,6,6,5,3,3,2,1,1,1,1,1]},"exit:33266":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:33267":{"rank":567,"runs":[544,8,5,3,2,2,1,1,1]},"exit:33269":{"rank":569,"runs":[544,10,4,4,3,1,1,1,1]},"exit:33272":{"rank":569,"runs":[544,10,4,4,3,1,1,1,1]},"exit:33275":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:33276":{"rank":569,"runs":[540,8,6,5,2,2,2,1,1,1,1]},"exit:33277":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:33278":{"rank":565,"runs":[540,8,6,2,2,2,1,1,1,1,1]},"exit:33281":{"rank":563,"runs":[540,5,5,4,3,2,2,1,1]},"exit:33282":{"rank":563,"runs":[541,8,7,2,1,1,1,1,1]},"exit:33287":{"rank":559,"runs":[537,8,6,3,1,1,1,1,1]},"exit:33288":{"rank":553,"runs":[531,21,1]},"exit:33292":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:33297":{"rank":561,"runs":[539,10,7,2,1,1,1]},"exit:33356":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33361":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33415":{"rank":559,"runs":[537,10,5,4,1,1,1]},"exit:33579":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:33615":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:33753":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33763":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33858":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33867":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:33868":{"rank":556,"runs":[534,9,8,1,1,1,1,1]},"exit:33970":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:34073":{"rank":557,"runs":[535,10,6,3,1,1,1]},"exit:3467":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:3468":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:35094":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:35162":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:35163":{"rank":573,"runs":[552,19,1,1]},"exit:35164":{"rank":573,"runs":[552,17,2,1,1]},"exit:35165":{"rank":573,"runs":[552,15,4,1,1]},"exit:35166":{"rank":573,"runs":[552,13,6,1,1]},"exit:35167":{"rank":573,"runs":[552,11,8,1,1]},"exit:35168":{"rank":573,"runs":[552,12,7,1,1]},"exit:35169":{"rank":573,"runs":[552,14,5,1,1]},"exit:35170":{"rank":573,"runs":[552,16,3,1,1]},"exit:35171":{"rank":573,"runs":[552,18,1,1,1]},"exit:35673":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:35674":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:35675":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:35676":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:35679":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:35682":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:35683":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:35684":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:35687":{"rank":571,"runs":[541,9,9,7,1,1,1,1,1]},"exit:35688":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:35689":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:3569":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:35690":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:35693":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:35694":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:35695":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:35696":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:35699":{"rank":571,"runs":[543,7,7,7,3,1,1,1,1]},"exit:3570":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:35700":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:35701":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:35702":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:35703":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:35704":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:35705":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:35708":{"rank":571,"runs":[545,7,5,5,5,1,1,1,1]},"exit:35709":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:35710":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:35711":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:35712":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:35713":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:35716":{"rank":571,"runs":[547,7,7,3,3,1,1,1,1]},"exit:35717":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:35718":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:35719":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:35720":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:35723":{"rank":571,"runs":[549,9,7,1,1,1,1,1,1]},"exit:35724":{"rank":573,"runs":[552,15,4,1,1]},"exit:35725":{"rank":573,"runs":[552,15,4,1,1]},"exit:35726":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:35727":{"rank":573,"runs":[552,17,2,1,1]},"exit:35728":{"rank":573,"runs":[552,17,2,1,1]},"exit:35729":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:35730":{"rank":573,"runs":[552,19,1,1]},"exit:35731":{"rank":573,"runs":[552,19,1,1]},"exit:35732":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:35735":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:35736":{"rank":573,"runs":[552,17,2,1,1]},"exit:35737":{"rank":573,"runs":[552,17,2,1,1]},"exit:35738":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:35739":{"rank":573,"runs":[552,19,1,1]},"exit:35740":{"rank":573,"runs":[552,19,1,1]},"exit:35741":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:35744":{"rank":571,"runs":[550,12,3,2,2,1,1]},"exit:35745":{"rank":573,"runs":[552,19,1,1]},"exit:35746":{"rank":573,"runs":[552,19,1,1]},"exit:35747":{"rank":571,"runs":[550,17,2,1,1]},"exit:35750":{"rank":571,"runs":[550,12,4,2,1,1,1]},"exit:35753":{"rank":571,"runs":[549,12,6,2,1,1]},"exit:35758":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:35759":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:35761":{"rank":569,"runs":[542,6,4,4,3,2,2,2,1,1,1,1]},"exit:35762":{"rank":567,"runs":[540,6,4,4,3,2,2,2,1,1,1,1]},"exit:35764":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:35765":{"rank":567,"runs":[536,10,10,3,3,2,1,1,1]},"exit:35770":{"rank":569,"runs":[546,7,6,3,2,2,1,1,1]},"exit:35771":{"rank":567,"runs":[544,6,5,5,2,2,1,1,1]},"exit:35773":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:35774":{"rank":567,"runs":[540,6,6,5,3,3,2,1,1]},"exit:35776":{"rank":569,"runs":[539,7,6,5,3,3,2,1,1,1,1]},"exit:35779":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:35780":{"rank":567,"runs":[544,9,5,2,2,2,1,1,1]},"exit:35782":{"rank":569,"runs":[544,12,4,3,2,2,1,1]},"exit:35785":{"rank":569,"runs":[547,12,4,4,1,1]},"exit:35786":{"rank":567,"runs":[545,12,6,2,1,1]},"exit:35787":{"rank":569,"runs":[547,16,5,1]},"exit:35788":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:35789":{"rank":569,"runs":[538,8,7,6,2,2,2,1,1,1,1]},"exit:35790":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:35794":{"rank":563,"runs":[540,5,5,5,2,2,2,1,1]},"exit:35795":{"rank":563,"runs":[541,9,9,1,1,1,1]},"exit:35798":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:35800":{"rank":559,"runs":[537,9,5,5,1,1,1]},"exit:35801":{"rank":553,"runs":[531,21,1]},"exit:35802":{"rank":559,"runs":[536,9,5,2,2,2,1,1,1]},"exit:35819":{"rank":559,"runs":[536,9,5,2,2,2,1,1,1]},"exit:35839":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:35853":{"rank":558,"runs":[535,10,5,2,2,2,1,1]},"exit:35854":{"rank":558,"runs":[535,10,5,2,2,2,1,1]},"exit:35872":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:35877":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:36069":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:36095":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:36099":{"rank":559,"runs":[537,11,5,3,1,1,1]},"exit:36100":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:36173":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:36233":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:36242":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:36287":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:36296":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:3673":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:3674":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:37294":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:37400":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:37505":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:37506":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:37507":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:37515":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:37612":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:37613":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:37614":{"rank":557,"runs":[535,11,5,3,1,1,1]},"exit:37622":{"rank":556,"runs":[534,10,7,1,1,1,1,1]},"exit:37721":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:3777":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:3778":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:37829":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:38242":{"rank":573,"runs":[552,19,1,1]},"exit:38243":{"rank":571,"runs":[550,17,2,1,1]},"exit:38245":{"rank":573,"runs":[552,19,1,1]},"exit:38246":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:38248":{"rank":573,"runs":[552,19,1,1]},"exit:38249":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:38250":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:38251":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:38252":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:38254":{"rank":573,"runs":[552,16,3,1,1]},"exit:38255":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:38257":{"rank":573,"runs":[552,18,1,1,1]},"exit:38258":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:38261":{"rank":571,"runs":[549,11,7,2,1,1]},"exit:38263":{"rank":573,"runs":[552,17,2,1,1]},"exit:38264":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:38266":{"rank":573,"runs":[552,17,2,1,1]},"exit:38267":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:38268":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:38269":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:38271":{"rank":573,"runs":[552,14,5,1,1]},"exit:38272":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:38274":{"rank":573,"runs":[552,16,3,1,1]},"exit:38275":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:38277":{"rank":573,"runs":[552,18,1,1,1]},"exit:38278":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:38281":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:38283":{"rank":573,"runs":[552,15,4,1,1]},"exit:38284":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:38285":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:38287":{"rank":573,"runs":[552,12,7,1,1]},"exit:38288":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:38290":{"rank":573,"runs":[552,14,5,1,1]},"exit:38291":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:38293":{"rank":573,"runs":[552,16,3,1,1]},"exit:38294":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:38296":{"rank":573,"runs":[552,18,1,1,1]},"exit:38297":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:38300":{"rank":571,"runs":[550,11,3,3,2,1,1]},"exit:38302":{"rank":573,"runs":[552,10,9,1,1]},"exit:38303":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:38305":{"rank":573,"runs":[552,12,7,1,1]},"exit:38306":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:38308":{"rank":573,"runs":[552,14,5,1,1]},"exit:38309":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:38311":{"rank":573,"runs":[552,16,3,1,1]},"exit:38312":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:38314":{"rank":573,"runs":[552,18,1,1,1]},"exit:38315":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:38318":{"rank":571,"runs":[550,11,5,2,1,1,1]},"exit:38319":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:38320":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:38321":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:38322":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:38325":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:38326":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:38327":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:38328":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:38331":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:38332":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:38333":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:38336":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:38337":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:38340":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:38343":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:38347":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:38348":{"rank":567,"runs":[546,13,6,1,1]},"exit:38350":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:38351":{"rank":567,"runs":[540,7,6,6,3,3,1,1]},"exit:38353":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:38354":{"rank":567,"runs":[536,10,10,3,3,3,1,1]},"exit:38359":{"rank":569,"runs":[546,7,6,3,2,2,1,1,1]},"exit:38360":{"rank":567,"runs":[544,7,4,3,3,2,2,1,1]},"exit:38362":{"rank":569,"runs":[542,6,6,6,3,3,1,1,1]},"exit:38363":{"rank":567,"runs":[540,6,6,4,3,3,3,1,1]},"exit:38365":{"rank":569,"runs":[539,8,8,5,2,1,1,1,1,1,1,1]},"exit:38368":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:38369":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:38371":{"rank":569,"runs":[542,8,4,4,2,2,2,1,1,1,1,1]},"exit:38374":{"rank":569,"runs":[542,8,6,6,3,1,1,1,1]},"exit:38377":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:38378":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:38379":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:38380":{"rank":565,"runs":[542,10,7,2,1,1,1,1]},"exit:38382":{"rank":563,"runs":[536,7,6,6,3,3,1,1]},"exit:38383":{"rank":563,"runs":[540,7,4,3,3,2,2,1,1]},"exit:38384":{"rank":563,"runs":[542,10,8,1,1,1]},"exit:38389":{"rank":559,"runs":[537,10,4,3,1,1,1,1,1]},"exit:38390":{"rank":553,"runs":[531,21,1]},"exit:38394":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:38399":{"rank":561,"runs":[539,12,8,1,1]},"exit:38458":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:38463":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:38517":{"rank":559,"runs":[537,12,5,2,1,1,1]},"exit:38681":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:38717":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:38734":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:3882":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:3883":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:3884":{"rank":557,"runs":[536,16,3,1,1]},"exit:38855":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:38856":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:38864":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:38865":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:38960":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:38961":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:38969":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:38970":{"rank":556,"runs":[534,11,6,1,1,1,1,1]},"exit:39072":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:39175":{"rank":557,"runs":[535,12,4,3,1,1,1]},"exit:3988":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:3989":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:3990":{"rank":557,"runs":[536,16,3,1,1]},"exit:40118":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:40186":{"rank":556,"runs":[534,9,8,2,1,1,1]},"exit:40187":{"rank":573,"runs":[552,19,1,1]},"exit:40188":{"rank":573,"runs":[552,17,2,1,1]},"exit:40189":{"rank":573,"runs":[552,15,4,1,1]},"exit:40190":{"rank":573,"runs":[552,13,6,1,1]},"exit:40191":{"rank":573,"runs":[552,10,9,1,1]},"exit:40192":{"rank":573,"runs":[552,12,7,1,1]},"exit:40193":{"rank":573,"runs":[552,14,5,1,1]},"exit:40194":{"rank":573,"runs":[552,16,3,1,1]},"exit:40195":{"rank":573,"runs":[552,18,1,1,1]},"exit:40293":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:40697":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:40698":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:40699":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:40700":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:40701":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:40704":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:40705":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:40706":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:40709":{"rank":571,"runs":[539,11,11,5,1,1,1,1,1]},"exit:40710":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:40711":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:40712":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:40713":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:40714":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:40715":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:40716":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:40719":{"rank":571,"runs":[541,9,9,5,3,1,1,1,1]},"exit:40720":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:40721":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:40722":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:40723":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:40724":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:40725":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:40728":{"rank":571,"runs":[543,7,7,5,5,1,1,1,1]},"exit:40729":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:40730":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:40731":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:40732":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:40733":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:40736":{"rank":571,"runs":[545,7,5,5,5,1,1,1,1]},"exit:40737":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:40738":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:40739":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:40740":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:40743":{"rank":571,"runs":[547,9,5,3,3,1,1,1,1]},"exit:40744":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:40745":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:40746":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:40749":{"rank":571,"runs":[549,11,5,1,1,1,1,1,1]},"exit:40750":{"rank":573,"runs":[552,17,2,1,1]},"exit:40751":{"rank":573,"runs":[552,17,2,1,1]},"exit:40752":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:40753":{"rank":573,"runs":[552,19,1,1]},"exit:40754":{"rank":573,"runs":[552,19,1,1]},"exit:40755":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:40758":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:40759":{"rank":573,"runs":[552,19,1,1]},"exit:40760":{"rank":573,"runs":[552,19,1,1]},"exit:40761":{"rank":571,"runs":[550,17,2,1,1]},"exit:40764":{"rank":571,"runs":[550,14,2,2,1,1,1]},"exit:40767":{"rank":571,"runs":[549,14,4,2,1,1]},"exit:40772":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:40773":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:40775":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:40776":{"rank":567,"runs":[542,8,4,4,3,3,1,1,1]},"exit:40778":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:40779":{"rank":567,"runs":[536,10,10,3,3,2,1,1,1]},"exit:40784":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:40785":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:40787":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:40788":{"rank":567,"runs":[540,6,6,5,3,3,2,1,1]},"exit:40790":{"rank":569,"runs":[539,7,5,5,4,3,2,1,1,1,1]},"exit:40793":{"rank":569,"runs":[546,11,3,2,2,2,1,1,1]},"exit:40794":{"rank":567,"runs":[544,9,3,3,2,2,2,1,1]},"exit:40796":{"rank":569,"runs":[543,11,4,3,2,1,1,1,1,1,1]},"exit:40797":{"rank":567,"runs":[541,9,4,3,3,2,1,1,1,1,1]},"exit:40799":{"rank":569,"runs":[547,14,4,2,1,1]},"exit:40800":{"rank":567,"runs":[545,14,7,1]},"exit:40801":{"rank":569,"runs":[547,16,5,1]},"exit:40802":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:40803":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:40804":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:40808":{"rank":563,"runs":[540,7,5,3,2,2,2,1,1]},"exit:40809":{"rank":563,"runs":[541,9,7,3,1,1,1]},"exit:40812":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:40814":{"rank":559,"runs":[537,7,7,5,1,1,1]},"exit:40815":{"rank":553,"runs":[531,21,1]},"exit:40816":{"rank":559,"runs":[536,11,3,2,2,2,1,1,1]},"exit:40853":{"rank":561,"runs":[539,13,8,1]},"exit:40867":{"rank":558,"runs":[535,12,3,2,2,2,1,1]},"exit:40868":{"rank":558,"runs":[535,12,3,2,2,2,1,1]},"exit:40886":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:40891":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:4095":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:4096":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:4097":{"rank":557,"runs":[536,16,3,1,1]},"exit:4098":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:4099":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:4103":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:4104":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:4105":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:41054":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:41083":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:41109":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:41113":{"rank":559,"runs":[537,13,5,1,1,1,1]},"exit:41114":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:41187":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:41247":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:41256":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:41301":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:41310":{"rank":556,"runs":[534,10,7,2,1,1,1]},"exit:4202":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:4203":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:4204":{"rank":557,"runs":[536,16,3,1,1]},"exit:4205":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:4206":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:4210":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:4211":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:4212":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:42226":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:42332":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:42437":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:42438":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:42439":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:42447":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:42544":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:42545":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:42546":{"rank":557,"runs":[535,13,3,3,1,1,1]},"exit:42554":{"rank":556,"runs":[534,12,5,1,1,1,1,1]},"exit:42653":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:42761":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:4310":{"rank":556,"runs":[535,17,2,1,1]},"exit:4311":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:4313":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:43174":{"rank":573,"runs":[552,19,1,1]},"exit:43175":{"rank":571,"runs":[550,17,2,1,1]},"exit:43177":{"rank":573,"runs":[552,19,1,1]},"exit:43178":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:43179":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:43180":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:43181":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:43182":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:43184":{"rank":573,"runs":[552,16,3,1,1]},"exit:43185":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:43187":{"rank":573,"runs":[552,18,1,1,1]},"exit:43188":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:4319":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:43191":{"rank":571,"runs":[549,13,5,2,1,1]},"exit:43193":{"rank":573,"runs":[552,17,2,1,1]},"exit:43194":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:43195":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:43196":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:43197":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:43199":{"rank":573,"runs":[552,14,5,1,1]},"exit:4320":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:43200":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:43202":{"rank":573,"runs":[552,16,3,1,1]},"exit:43203":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:43205":{"rank":573,"runs":[552,18,1,1,1]},"exit:43206":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:43209":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:43210":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:43211":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:43213":{"rank":573,"runs":[552,12,7,1,1]},"exit:43214":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:43216":{"rank":573,"runs":[552,14,5,1,1]},"exit:43217":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:43219":{"rank":573,"runs":[552,16,3,1,1]},"exit:43220":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:43222":{"rank":573,"runs":[552,18,1,1,1]},"exit:43223":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:43226":{"rank":571,"runs":[550,13,3,2,1,1,1]},"exit:43227":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:43228":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:43229":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:43230":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:43231":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:43234":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:43235":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:43236":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:43237":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:43238":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:43241":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:43242":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:43243":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:43244":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:43247":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:43248":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:43249":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:43252":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:43253":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:43256":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:43259":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:43263":{"rank":569,"runs":[544,11,4,4,3,1,1,1]},"exit:43264":{"rank":567,"runs":[544,11,5,2,2,1,1,1]},"exit:43266":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:43267":{"rank":567,"runs":[540,7,6,6,3,3,1,1]},"exit:43269":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:43270":{"rank":567,"runs":[536,10,10,3,3,3,1,1]},"exit:43275":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:43276":{"rank":567,"runs":[544,7,5,4,2,2,1,1,1]},"exit:43278":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:43279":{"rank":567,"runs":[540,4,4,4,3,3,2,2,2,1,1,1]},"exit:43281":{"rank":569,"runs":[540,8,8,6,3,1,1,1,1]},"exit:43284":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:43285":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:43287":{"rank":569,"runs":[540,6,4,4,4,4,2,1,1,1,1,1]},"exit:43290":{"rank":569,"runs":[540,8,8,6,3,1,1,1,1]},"exit:43293":{"rank":569,"runs":[536,10,9,4,2,2,2,1,1,1,1]},"exit:43294":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:43295":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:43296":{"rank":565,"runs":[542,10,7,2,1,1,1,1]},"exit:43298":{"rank":563,"runs":[536,7,6,6,3,3,1,1]},"exit:43299":{"rank":563,"runs":[540,9,4,3,2,2,1,1,1]},"exit:43300":{"rank":563,"runs":[540,9,6,2,2,1,1,1,1]},"exit:43305":{"rank":559,"runs":[537,12,3,2,1,1,1,1,1]},"exit:43306":{"rank":553,"runs":[531,21,1]},"exit:43310":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:43315":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:43374":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43379":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43433":{"rank":559,"runs":[537,14,6,1,1]},"exit:43597":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:43633":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:43650":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:43771":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43772":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:43780":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:43781":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43876":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43877":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:43885":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:43886":{"rank":556,"runs":[534,13,4,1,1,1,1,1]},"exit:43988":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:44091":{"rank":557,"runs":[535,14,3,2,1,1,1]},"exit:4418":{"rank":556,"runs":[535,17,2,1,1]},"exit:4419":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:4420":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4421":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:4422":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:4426":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:4427":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4428":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:4446":{"rank":555,"runs":[534,18,1,1,1]},"exit:4447":{"rank":555,"runs":[533,19,2,1]},"exit:4448":{"rank":555,"runs":[534,18,1,1,1]},"exit:4467":{"rank":555,"runs":[533,18,1,1,1,1]},"exit:44958":{"rank":556,"runs":[534,11,6,2,1,1,1]},"exit:45027":{"rank":573,"runs":[552,19,1,1]},"exit:45028":{"rank":573,"runs":[552,17,2,1,1]},"exit:45029":{"rank":573,"runs":[552,15,4,1,1]},"exit:45030":{"rank":573,"runs":[552,11,8,1,1]},"exit:45031":{"rank":573,"runs":[552,10,9,1,1]},"exit:45032":{"rank":573,"runs":[552,12,7,1,1]},"exit:45033":{"rank":573,"runs":[552,14,5,1,1]},"exit:45034":{"rank":573,"runs":[552,16,3,1,1]},"exit:45035":{"rank":573,"runs":[552,18,1,1,1]},"exit:45133":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:4530":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:45537":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:45538":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:45539":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:45540":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:45541":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:45542":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:45543":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:45544":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:45547":{"rank":571,"runs":[537,13,13,3,1,1,1,1,1]},"exit:45548":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:45549":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:45550":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:45551":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:45552":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:45553":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:45554":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:45557":{"rank":571,"runs":[539,11,11,3,3,1,1,1,1]},"exit:45558":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:45559":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:45560":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:45561":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:45562":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:45563":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:45566":{"rank":571,"runs":[541,9,9,5,3,1,1,1,1]},"exit:45567":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:45568":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:45569":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:45570":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:45571":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:45574":{"rank":571,"runs":[543,7,7,7,3,1,1,1,1]},"exit:45575":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:45576":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:45577":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:45578":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:45581":{"rank":571,"runs":[545,9,5,5,3,1,1,1,1]},"exit:45582":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:45583":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:45584":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:45587":{"rank":571,"runs":[547,11,3,3,3,1,1,1,1]},"exit:45588":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:45589":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:45592":{"rank":571,"runs":[549,13,3,1,1,1,1,1,1]},"exit:45593":{"rank":573,"runs":[552,19,1,1]},"exit:45594":{"rank":573,"runs":[552,19,1,1]},"exit:45595":{"rank":571,"runs":[550,17,2,1,1]},"exit:45598":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:45601":{"rank":571,"runs":[549,16,2,2,1,1]},"exit:45606":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:45607":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:45609":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:45610":{"rank":567,"runs":[542,8,4,4,3,3,1,1,1]},"exit:45612":{"rank":569,"runs":[538,8,8,3,2,2,2,2,1,1,1,1]},"exit:45613":{"rank":567,"runs":[536,8,8,3,2,2,2,2,1,1,1,1]},"exit:45618":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:45619":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:45621":{"rank":569,"runs":[542,7,4,4,2,2,2,2,1,1,1,1]},"exit:45622":{"rank":567,"runs":[540,5,4,4,3,2,2,2,2,1,1,1]},"exit:45624":{"rank":569,"runs":[539,7,7,7,2,2,1,1,1,1,1]},"exit:45627":{"rank":569,"runs":[546,11,3,2,2,2,1,1,1]},"exit:45628":{"rank":567,"runs":[544,9,5,2,2,2,1,1,1]},"exit:45630":{"rank":569,"runs":[543,11,3,3,2,2,1,1,1,1,1]},"exit:45631":{"rank":567,"runs":[541,9,3,3,3,2,2,1,1,1,1]},"exit:45633":{"rank":569,"runs":[547,16,5,1]},"exit:45634":{"rank":567,"runs":[545,13,5,1,1,1,1]},"exit:45635":{"rank":569,"runs":[547,16,5,1]},"exit:45636":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:45637":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:45642":{"rank":563,"runs":[540,9,5,2,2,2,1,1,1]},"exit:45643":{"rank":563,"runs":[541,9,5,5,1,1,1]},"exit:45646":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:45648":{"rank":559,"runs":[537,9,5,5,1,1,1]},"exit:45649":{"rank":553,"runs":[531,21,1]},"exit:45650":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:45687":{"rank":561,"runs":[539,13,8,1]},"exit:45701":{"rank":558,"runs":[535,14,2,2,2,1,1,1]},"exit:45702":{"rank":558,"runs":[535,14,2,2,2,1,1,1]},"exit:45720":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:45725":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:45888":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:45917":{"rank":559,"runs":[537,15,6,1]},"exit:45943":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:45947":{"rank":559,"runs":[535,13,3,3,2,1,1,1]},"exit:45948":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:46021":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:46081":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:46090":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:46135":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:46144":{"rank":556,"runs":[534,12,5,2,1,1,1]},"exit:46974":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:47080":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:47185":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:47186":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:47187":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:47195":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:47292":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:47293":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:47294":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:47302":{"rank":556,"runs":[534,14,3,1,1,1,1,1]},"exit:47401":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:47509":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:47916":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:47918":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:47922":{"rank":573,"runs":[552,19,1,1]},"exit:47923":{"rank":571,"runs":[550,17,2,1,1]},"exit:47924":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:47925":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:47926":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:47927":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:47928":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:47930":{"rank":573,"runs":[552,16,3,1,1]},"exit:47931":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:47933":{"rank":573,"runs":[552,18,1,1,1]},"exit:47934":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:47937":{"rank":571,"runs":[549,15,3,2,1,1]},"exit:47938":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:47939":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:47940":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:47941":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:47943":{"rank":573,"runs":[552,14,5,1,1]},"exit:47944":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:47946":{"rank":573,"runs":[552,16,3,1,1]},"exit:47947":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:47949":{"rank":573,"runs":[552,18,1,1,1]},"exit:47950":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:47953":{"rank":571,"runs":[550,15,2,1,1,1,1]},"exit:47954":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:47955":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:47956":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:47957":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:47958":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:47959":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:47962":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:47963":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:47964":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:47965":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:47966":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:47967":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:47970":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:47971":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:47972":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:47973":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:47974":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:47977":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:47978":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:47979":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:47980":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:47983":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:47984":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:47985":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:47988":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:47989":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:47992":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:47995":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:47999":{"rank":569,"runs":[544,11,4,4,3,1,1,1]},"exit:48000":{"rank":567,"runs":[544,11,3,3,2,2,1,1]},"exit:48002":{"rank":569,"runs":[542,7,6,6,3,2,1,1,1]},"exit:48003":{"rank":567,"runs":[540,7,6,6,3,3,1,1]},"exit:48005":{"rank":569,"runs":[538,10,10,3,3,2,1,1,1]},"exit:48006":{"rank":567,"runs":[536,10,10,3,3,3,1,1]},"exit:48011":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:48012":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:48014":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:48015":{"rank":567,"runs":[542,6,4,4,3,3,3,1,1]},"exit:48017":{"rank":569,"runs":[538,8,8,4,2,2,2,1,1,1,1,1]},"exit:48020":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:48021":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:48023":{"rank":569,"runs":[538,6,6,4,4,4,2,1,1,1,1,1]},"exit:48026":{"rank":569,"runs":[538,10,10,4,3,1,1,1,1]},"exit:48029":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:48030":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:48031":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:48032":{"rank":565,"runs":[542,10,7,2,1,1,1,1]},"exit:48034":{"rank":563,"runs":[536,7,6,6,3,3,1,1]},"exit:48035":{"rank":563,"runs":[542,10,6,3,1,1]},"exit:48036":{"rank":563,"runs":[538,9,4,4,4,1,1,1,1]},"exit:48041":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:48042":{"rank":553,"runs":[531,21,1]},"exit:48043":{"rank":559,"runs":[536,11,3,3,2,2,1,1]},"exit:48045":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:48046":{"rank":557,"runs":[535,16,4,1,1]},"exit:48051":{"rank":561,"runs":[536,11,4,4,3,1,1,1]},"exit:48061":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:48069":{"rank":561,"runs":[536,7,5,4,4,3,1,1]},"exit:48078":{"rank":561,"runs":[536,9,4,4,3,3,1,1]},"exit:48092":{"rank":558,"runs":[535,12,3,2,2,2,1,1]},"exit:4810":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:48110":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:48115":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:48119":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:48169":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:4819":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:48195":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:4820":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:4825":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:4826":{"rank":555,"runs":[534,18,1,1,1]},"exit:4827":{"rank":555,"runs":[534,18,1,1,1]},"exit:4828":{"rank":555,"runs":[534,18,1,1,1]},"exit:48333":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:48339":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:48369":{"rank":559,"runs":[537,15,6,1]},"exit:4837":{"rank":573,"runs":[552,16,3,1,1]},"exit:48386":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4847":{"rank":573,"runs":[552,16,3,1,1]},"exit:48507":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:48508":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4851":{"rank":571,"runs":[550,17,2,1,1]},"exit:48516":{"rank":557,"runs":[535,16,4,1,1]},"exit:48517":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:4853":{"rank":573,"runs":[552,19,1,1]},"exit:4854":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:4856":{"rank":573,"runs":[552,19,1,1]},"exit:4857":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:4859":{"rank":573,"runs":[552,19,1,1]},"exit:4860":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:48612":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:48613":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4862":{"rank":573,"runs":[552,19,1,1]},"exit:48621":{"rank":557,"runs":[535,16,4,1,1]},"exit:48622":{"rank":556,"runs":[534,15,2,1,1,1,1,1]},"exit:4863":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:4865":{"rank":573,"runs":[552,19,1,1]},"exit:4866":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:4869":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:48724":{"rank":557,"runs":[535,16,4,1,1]},"exit:4875":{"rank":571,"runs":[549,18,2,1,1]},"exit:4877":{"rank":573,"runs":[552,17,2,1,1]},"exit:4878":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:4880":{"rank":573,"runs":[552,17,2,1,1]},"exit:4881":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:48827":{"rank":557,"runs":[535,16,4,1,1]},"exit:4883":{"rank":573,"runs":[552,17,2,1,1]},"exit:4884":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:4886":{"rank":573,"runs":[552,17,2,1,1]},"exit:4887":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:4889":{"rank":573,"runs":[552,12,7,1,1]},"exit:4890":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:4892":{"rank":573,"runs":[552,14,5,1,1]},"exit:4893":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:4895":{"rank":573,"runs":[552,16,3,1,1]},"exit:4896":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:4899":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:4901":{"rank":573,"runs":[552,15,4,1,1]},"exit:4902":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:4904":{"rank":573,"runs":[552,15,4,1,1]},"exit:4905":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:4907":{"rank":573,"runs":[552,10,9,1,1]},"exit:4908":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:4910":{"rank":573,"runs":[552,12,7,1,1]},"exit:4911":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:4913":{"rank":573,"runs":[552,14,5,1,1]},"exit:4914":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:4916":{"rank":573,"runs":[552,16,3,1,1]},"exit:4917":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:4920":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:4922":{"rank":573,"runs":[552,11,8,1,1]},"exit:4923":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:4925":{"rank":573,"runs":[552,10,9,1,1]},"exit:4926":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:4928":{"rank":573,"runs":[552,12,7,1,1]},"exit:4929":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:4931":{"rank":573,"runs":[552,14,5,1,1]},"exit:4932":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:4934":{"rank":573,"runs":[552,16,3,1,1]},"exit:4935":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:4938":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:4940":{"rank":573,"runs":[552,10,9,1,1]},"exit:4941":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:4943":{"rank":573,"runs":[552,12,7,1,1]},"exit:4944":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:4946":{"rank":573,"runs":[552,14,5,1,1]},"exit:4947":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:4949":{"rank":573,"runs":[552,16,3,1,1]},"exit:4950":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:4953":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:4955":{"rank":573,"runs":[552,12,7,1,1]},"exit:4956":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:4958":{"rank":573,"runs":[552,14,5,1,1]},"exit:4959":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:4961":{"rank":573,"runs":[552,16,3,1,1]},"exit:49614":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:4962":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:4965":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:4967":{"rank":573,"runs":[552,14,5,1,1]},"exit:4968":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:49682":{"rank":556,"runs":[534,13,4,2,1,1,1]},"exit:49683":{"rank":573,"runs":[552,19,1,1]},"exit:49684":{"rank":573,"runs":[552,17,2,1,1]},"exit:49685":{"rank":573,"runs":[552,13,6,1,1]},"exit:49686":{"rank":573,"runs":[552,11,8,1,1]},"exit:49687":{"rank":573,"runs":[552,10,9,1,1]},"exit:49688":{"rank":573,"runs":[552,12,7,1,1]},"exit:49689":{"rank":573,"runs":[552,14,5,1,1]},"exit:49690":{"rank":573,"runs":[552,16,3,1,1]},"exit:49691":{"rank":573,"runs":[552,18,1,1,1]},"exit:4970":{"rank":573,"runs":[552,16,3,1,1]},"exit:4971":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:4974":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:49789":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:4980":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:4983":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:49900":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:4992":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:4995":{"rank":569,"runs":[546,13,3,2,2,1,1,1]},"exit:4996":{"rank":567,"runs":[546,13,6,1,1]},"exit:4998":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:4999":{"rank":567,"runs":[542,9,4,4,3,3,1,1]},"exit:5001":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:5002":{"rank":567,"runs":[538,8,8,5,3,3,1,1]},"exit:5004":{"rank":569,"runs":[536,12,12,2,2,2,1,1,1]},"exit:5007":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:5008":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:5010":{"rank":569,"runs":[544,6,5,4,4,3,1,1,1]},"exit:5011":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:5013":{"rank":569,"runs":[540,8,8,5,2,2,2,1,1]},"exit:5016":{"rank":569,"runs":[548,10,5,4,1,1]},"exit:5017":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:5019":{"rank":569,"runs":[544,9,4,4,2,2,2,1,1]},"exit:50193":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:50194":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:50195":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:50196":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:50197":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:50198":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:50199":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:50200":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:50203":{"rank":571,"runs":[535,15,15,1,1,1,1,1,1]},"exit:50204":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:50205":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:50206":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:50207":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:50208":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:50209":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:50210":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:50213":{"rank":571,"runs":[537,13,13,3,1,1,1,1,1]},"exit:50214":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:50215":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:50216":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:50217":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:50218":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:50219":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:5022":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:50222":{"rank":571,"runs":[539,11,11,5,1,1,1,1,1]},"exit:50223":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:50224":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:50225":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:50226":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:50227":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:50230":{"rank":571,"runs":[541,9,9,7,1,1,1,1,1]},"exit:50231":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:50232":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:50233":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:50234":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:50237":{"rank":571,"runs":[543,9,7,7,1,1,1,1,1]},"exit:50238":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:50239":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:50240":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:50243":{"rank":571,"runs":[545,11,5,5,1,1,1,1,1]},"exit:50244":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:50245":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:50248":{"rank":571,"runs":[547,13,3,3,1,1,1,1,1]},"exit:50249":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:50252":{"rank":571,"runs":[549,15,1,1,1,1,1,1,1]},"exit:50255":{"rank":571,"runs":[549,18,3,1]},"exit:50260":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:50261":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:50263":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:50264":{"rank":567,"runs":[542,8,4,4,3,3,1,1,1]},"exit:50266":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"exit:50267":{"rank":567,"runs":[538,8,8,4,3,3,1,1,1]},"exit:50269":{"rank":569,"runs":[535,13,12,3,3,1,1,1]},"exit:50272":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:50273":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:50275":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"exit:50276":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:50278":{"rank":569,"runs":[539,9,8,7,3,1,1,1]},"exit:50281":{"rank":569,"runs":[548,11,4,4,1,1]},"exit:50282":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:50284":{"rank":569,"runs":[543,11,5,4,3,1,1,1]},"exit:50285":{"rank":567,"runs":[541,9,5,4,3,3,1,1]},"exit:50287":{"rank":569,"runs":[547,15,3,1,1,1,1]},"exit:50288":{"rank":567,"runs":[545,13,3,3,1,1,1]},"exit:50289":{"rank":569,"runs":[547,16,5,1]},"exit:50290":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:50291":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:50292":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:50293":{"rank":565,"runs":[536,8,7,7,4,1,1,1]},"exit:50295":{"rank":563,"runs":[538,7,4,4,4,3,1,1,1]},"exit:50296":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:50297":{"rank":563,"runs":[541,9,7,3,1,1,1]},"exit:5030":{"rank":563,"runs":[538,7,5,4,4,3,1,1]},"exit:50300":{"rank":557,"runs":[535,17,4,1]},"exit:50302":{"rank":559,"runs":[537,11,5,3,1,1,1]},"exit:50303":{"rank":553,"runs":[531,21,1]},"exit:50304":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:50306":{"rank":561,"runs":[536,11,4,4,3,1,1,1]},"exit:5031":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:5032":{"rank":563,"runs":[542,10,7,2,1,1]},"exit:50341":{"rank":561,"runs":[539,13,8,1]},"exit:5035":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:50355":{"rank":558,"runs":[537,15,4,1,1]},"exit:50356":{"rank":558,"runs":[537,15,4,1,1]},"exit:5037":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:50374":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:50378":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:5038":{"rank":553,"runs":[531,21,1]},"exit:5039":{"rank":559,"runs":[538,14,5,1,1]},"exit:5040":{"rank":555,"runs":[533,18,2,1,1]},"exit:50405":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:5041":{"rank":561,"runs":[538,11,4,2,2,1,1,1,1]},"exit:5042":{"rank":557,"runs":[536,16,3,1,1]},"exit:5047":{"rank":561,"runs":[540,12,7,1,1]},"exit:50485":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:50542":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:5057":{"rank":559,"runs":[538,14,5,1,1]},"exit:50571":{"rank":559,"runs":[537,15,6,1]},"exit:50597":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:50602":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:50627":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:5064":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:5066":{"rank":559,"runs":[538,14,5,1,1]},"exit:5073":{"rank":561,"runs":[536,8,4,4,4,3,1,1]},"exit:50735":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:50789":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:50798":{"rank":556,"runs":[534,14,3,2,1,1,1]},"exit:5082":{"rank":561,"runs":[536,8,4,4,4,3,1,1]},"exit:5095":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:5096":{"rank":558,"runs":[537,15,3,1,1,1]},"exit:5114":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:5118":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:5119":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:5123":{"rank":555,"runs":[534,18,1,1,1]},"exit:5141":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:51590":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:5173":{"rank":559,"runs":[538,14,5,1,1]},"exit:51749":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:51750":{"rank":557,"runs":[535,17,4,1]},"exit:51751":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:51759":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:51856":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:51857":{"rank":557,"runs":[535,17,4,1]},"exit:51858":{"rank":557,"runs":[533,15,3,2,1,1,1,1]},"exit:51866":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:51964":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:51965":{"rank":557,"runs":[535,17,4,1]},"exit:51974":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:52072":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:52073":{"rank":557,"runs":[535,17,4,1]},"exit:52082":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:52083":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:52103":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:52480":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:52485":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:52486":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:52487":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:52488":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:52489":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:52490":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:52492":{"rank":573,"runs":[552,16,3,1,1]},"exit:52493":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:52495":{"rank":573,"runs":[552,18,1,1,1]},"exit:52496":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:52499":{"rank":571,"runs":[549,17,2,1,1,1]},"exit:52500":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:52501":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:52502":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:52503":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:52504":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:52505":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:52506":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:52509":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:52510":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:52511":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:52512":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:52513":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:52514":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:52515":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:52518":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:52519":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:52520":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:52521":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:52522":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:52523":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:52526":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:52527":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:52528":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:52529":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:52530":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:52533":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:52534":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:52535":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:52536":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:52539":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:52540":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:52541":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:52544":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:52545":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:52548":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:52551":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:52555":{"rank":569,"runs":[544,11,2,2,2,2,2,1,1,1,1]},"exit:52556":{"rank":567,"runs":[544,11,5,2,2,1,1,1]},"exit:52558":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"exit:52559":{"rank":567,"runs":[540,7,4,4,3,2,2,2,1,1,1]},"exit:52561":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"exit:52562":{"rank":567,"runs":[536,8,8,3,3,2,2,2,1,1,1]},"exit:52564":{"rank":569,"runs":[536,12,12,3,2,1,1,1,1]},"exit:52567":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:52568":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:52570":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:52571":{"rank":567,"runs":[542,6,4,4,3,3,3,1,1]},"exit:52576":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:52577":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:52582":{"rank":569,"runs":[536,12,12,3,2,1,1,1,1]},"exit:52585":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:52586":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:52587":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:52588":{"rank":565,"runs":[542,10,7,2,1,1,1,1]},"exit:52591":{"rank":563,"runs":[542,10,6,3,1,1]},"exit:52592":{"rank":563,"runs":[536,9,6,6,2,1,1,1,1]},"exit:52597":{"rank":559,"runs":[536,13,2,2,2,1,1,1,1]},"exit:52598":{"rank":553,"runs":[531,21,1]},"exit:52599":{"rank":559,"runs":[536,13,3,2,2,1,1,1]},"exit:52600":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:52601":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:52602":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:52607":{"rank":561,"runs":[534,11,6,5,2,1,1,1]},"exit:52647":{"rank":558,"runs":[535,14,2,2,2,1,1,1]},"exit:52648":{"rank":558,"runs":[535,14,2,2,2,1,1,1]},"exit:52666":{"rank":556,"runs":[535,17,2,1,1]},"exit:52670":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:52671":{"rank":556,"runs":[535,17,2,1,1]},"exit:52675":{"rank":555,"runs":[533,18,2,1,1]},"exit:52889":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:52894":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:52919":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:52925":{"rank":559,"runs":[537,15,6,1]},"exit:52929":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:52930":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:52938":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:52941":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:52942":{"rank":557,"runs":[535,17,4,1]},"exit:53063":{"rank":556,"runs":[535,17,2,1,1]},"exit:53064":{"rank":557,"runs":[535,17,4,1]},"exit:53065":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53066":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:53067":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:53070":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:53071":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:53073":{"rank":556,"runs":[535,17,2,1,1]},"exit:5311":{"rank":559,"runs":[534,13,4,4,1,1,1,1]},"exit:53168":{"rank":556,"runs":[535,17,2,1,1]},"exit:53169":{"rank":557,"runs":[535,17,4,1]},"exit:5317":{"rank":569,"runs":[547,16,4,1,1]},"exit:53170":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53171":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:53172":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:53175":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:53176":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:53177":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53178":{"rank":556,"runs":[535,17,2,1,1]},"exit:53231":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53299":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53353":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:53421":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:5343":{"rank":559,"runs":[536,12,3,2,2,2,1,1]},"exit:53475":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:53543":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:5367":{"rank":556,"runs":[535,17,2,1,1]},"exit:5372":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:5373":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:5377":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:5378":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:53841":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:5389":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:5390":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:53909":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:5392":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:53963":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:5402":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:54031":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:54077":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:54085":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:54086":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:54153":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:54154":{"rank":556,"runs":[534,15,2,2,1,1,1]},"exit:54156":{"rank":573,"runs":[552,15,4,1,1]},"exit:54157":{"rank":573,"runs":[552,13,6,1,1]},"exit:54158":{"rank":573,"runs":[552,11,8,1,1]},"exit:54159":{"rank":573,"runs":[552,10,9,1,1]},"exit:54160":{"rank":573,"runs":[552,12,7,1,1]},"exit:54161":{"rank":573,"runs":[552,14,5,1,1]},"exit:54162":{"rank":573,"runs":[552,16,3,1,1]},"exit:54163":{"rank":573,"runs":[552,18,1,1,1]},"exit:54252":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:54261":{"rank":557,"runs":[535,17,4,1]},"exit:54262":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:54299":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:54372":{"rank":555,"runs":[533,18,2,1,1]},"exit:54374":{"rank":555,"runs":[533,18,1,1,1,1]},"exit:54665":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:54666":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:54667":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:54668":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:54669":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:54670":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:54671":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:54672":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:54676":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:54677":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:54678":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:54679":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:54680":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:54681":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:54682":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:54685":{"rank":571,"runs":[535,15,14,3,1,1,1,1]},"exit:54686":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:54687":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:54688":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:54689":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:54690":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:54691":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:54694":{"rank":571,"runs":[537,13,12,5,1,1,1,1]},"exit:54695":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:54696":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:54697":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:54698":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:54699":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:54702":{"rank":571,"runs":[539,11,10,7,1,1,1,1]},"exit:54703":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:54704":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:54705":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:54706":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:54709":{"rank":571,"runs":[541,9,9,8,1,1,1,1]},"exit:54710":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:54711":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:54712":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:54715":{"rank":571,"runs":[543,11,7,6,1,1,1,1]},"exit:54716":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:54717":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:54720":{"rank":571,"runs":[545,13,5,4,1,1,1,1]},"exit:54721":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:54724":{"rank":571,"runs":[547,15,3,2,1,1,1,1]},"exit:54727":{"rank":571,"runs":[549,17,1,1,1,1,1]},"exit:54732":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:54733":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:54735":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:54736":{"rank":567,"runs":[542,8,4,4,3,3,1,1,1]},"exit:54738":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"exit:54739":{"rank":567,"runs":[538,8,8,4,3,3,1,1,1]},"exit:54744":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:54745":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:54747":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"exit:54748":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:54750":{"rank":569,"runs":[539,8,8,7,2,1,1,1,1,1]},"exit:54753":{"rank":569,"runs":[548,11,4,4,1,1]},"exit:54754":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:54759":{"rank":569,"runs":[547,15,3,1,1,1,1]},"exit:54761":{"rank":569,"runs":[547,16,5,1]},"exit:54762":{"rank":569,"runs":[544,12,4,3,3,1,1,1]},"exit:54763":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:54764":{"rank":569,"runs":[536,12,11,4,3,1,1,1]},"exit:54765":{"rank":565,"runs":[536,8,7,7,4,1,1,1]},"exit:54767":{"rank":563,"runs":[538,7,4,4,4,3,1,1,1]},"exit:54768":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:54769":{"rank":563,"runs":[541,9,9,1,1,1,1]},"exit:54772":{"rank":557,"runs":[535,17,4,1]},"exit:54774":{"rank":559,"runs":[537,13,5,1,1,1,1]},"exit:54775":{"rank":553,"runs":[531,21,1]},"exit:54776":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:54778":{"rank":561,"runs":[536,11,4,4,3,1,1,1]},"exit:54793":{"rank":559,"runs":[538,14,4,1,1,1]},"exit:54813":{"rank":561,"runs":[539,13,8,1]},"exit:54827":{"rank":558,"runs":[537,15,4,1,1]},"exit:54828":{"rank":558,"runs":[537,15,4,1,1]},"exit:54846":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:54850":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:54851":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:54877":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:54957":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:55014":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:55043":{"rank":559,"runs":[537,15,6,1]},"exit:55099":{"rank":556,"runs":[535,17,2,1,1]},"exit:55104":{"rank":556,"runs":[535,17,2,1,1]},"exit:5511":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:5512":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:55122":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:55124":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:5513":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:55134":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:5514":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:5519":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:5520":{"rank":557,"runs":[536,16,3,1,1]},"exit:55207":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:5521":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:55216":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:55261":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:55270":{"rank":556,"runs":[534,16,2,1,1,1,1]},"exit:5616":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:5617":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:5618":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:5619":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:5624":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:5625":{"rank":557,"runs":[536,16,3,1,1]},"exit:5626":{"rank":556,"runs":[534,16,1,1,1,1,1,1]},"exit:56344":{"rank":556,"runs":[535,17,2,1,1]},"exit:56345":{"rank":557,"runs":[535,17,4,1]},"exit:56346":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:56347":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:56348":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:56352":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:56353":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:56354":{"rank":556,"runs":[535,17,2,1,1]},"exit:56452":{"rank":556,"runs":[535,17,2,1,1]},"exit:56453":{"rank":557,"runs":[535,17,4,1]},"exit:56454":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:56455":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:56456":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:56460":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:56461":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:56462":{"rank":556,"runs":[535,17,2,1,1]},"exit:56463":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:56481":{"rank":555,"runs":[534,18,1,1,1]},"exit:56482":{"rank":555,"runs":[534,18,1,1,1]},"exit:56501":{"rank":555,"runs":[534,18,1,1,1]},"exit:56502":{"rank":555,"runs":[534,18,1,1,1]},"exit:56571":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:56572":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:56573":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:56574":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:56636":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:56852":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:56860":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:56862":{"rank":555,"runs":[533,18,2,1,1]},"exit:56865":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:56866":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:56867":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:56868":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:56869":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:56870":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:56871":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:56872":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:56875":{"rank":571,"runs":[550,17,2,1,1]},"exit:56876":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:56877":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:56878":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:56879":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:56880":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:56881":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:56882":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:56885":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:56886":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:56887":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:56888":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:56889":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:56890":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:56891":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:56894":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:56895":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:56896":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:56897":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:56898":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:56899":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:56902":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:56903":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:56904":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:56905":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:56906":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:56909":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:56910":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:56911":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:56912":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:56915":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:56916":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:56917":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:56920":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:56921":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:56924":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:56927":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:56928":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:56931":{"rank":569,"runs":[546,11,3,2,2,2,1,1,1]},"exit:56932":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:56934":{"rank":569,"runs":[544,7,4,4,4,3,1,1,1]},"exit:56935":{"rank":567,"runs":[542,7,4,4,3,3,2,1,1]},"exit:56937":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"exit:56938":{"rank":567,"runs":[538,8,8,3,3,3,2,1,1]},"exit:56943":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:56944":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:56946":{"rank":569,"runs":[544,8,4,4,3,3,1,1,1]},"exit:56947":{"rank":567,"runs":[542,6,4,4,3,3,3,1,1]},"exit:56952":{"rank":569,"runs":[548,12,4,3,1,1]},"exit:56953":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:56960":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:56961":{"rank":569,"runs":[538,10,9,6,3,1,1,1]},"exit:56962":{"rank":569,"runs":[542,10,6,5,3,1,1,1]},"exit:56963":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:56964":{"rank":565,"runs":[542,10,7,2,1,1,1,1]},"exit:56967":{"rank":563,"runs":[542,10,6,3,1,1]},"exit:56968":{"rank":563,"runs":[534,9,8,8,1,1,1,1]},"exit:56971":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:56973":{"rank":559,"runs":[534,13,4,4,1,1,1,1]},"exit:56974":{"rank":553,"runs":[531,21,1]},"exit:56975":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:56976":{"rank":555,"runs":[534,18,1,1,1]},"exit:56977":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:56988":{"rank":559,"runs":[534,13,4,4,1,1,1,1]},"exit:56993":{"rank":559,"runs":[534,13,4,4,1,1,1,1]},"exit:57007":{"rank":559,"runs":[534,13,4,4,1,1,1,1]},"exit:57023":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:57024":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:57042":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:57046":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:57047":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:5719":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:5720":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:57235":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:57240":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:57265":{"rank":556,"runs":[535,17,2,1,1]},"exit:57270":{"rank":556,"runs":[535,17,2,1,1]},"exit:5728":{"rank":557,"runs":[536,16,3,1,1]},"exit:57295":{"rank":556,"runs":[535,17,2,1,1]},"exit:57300":{"rank":556,"runs":[535,17,2,1,1]},"exit:57301":{"rank":559,"runs":[537,15,6,1]},"exit:57304":{"rank":555,"runs":[533,19,2,1]},"exit:57318":{"rank":557,"runs":[535,17,4,1]},"exit:57320":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:57330":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:57389":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:57398":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:57457":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:57466":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:5822":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:5823":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:58243":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:58252":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:5831":{"rank":557,"runs":[536,16,3,1,1]},"exit:58311":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:58320":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:58365":{"rank":556,"runs":[535,17,2,1,1]},"exit:58374":{"rank":556,"runs":[535,17,2,1,1]},"exit:58433":{"rank":556,"runs":[535,17,2,1,1]},"exit:58442":{"rank":556,"runs":[535,17,2,1,1]},"exit:58443":{"rank":573,"runs":[552,17,2,1,1]},"exit:58444":{"rank":573,"runs":[552,15,4,1,1]},"exit:58445":{"rank":573,"runs":[552,13,6,1,1]},"exit:58446":{"rank":573,"runs":[552,11,8,1,1]},"exit:58447":{"rank":573,"runs":[552,10,9,1,1]},"exit:58448":{"rank":573,"runs":[552,12,7,1,1]},"exit:58449":{"rank":573,"runs":[552,14,5,1,1]},"exit:58450":{"rank":573,"runs":[552,16,3,1,1]},"exit:58451":{"rank":573,"runs":[552,18,1,1,1]},"exit:58540":{"rank":556,"runs":[535,17,2,1,1]},"exit:58541":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:58542":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:58543":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:58546":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:58548":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:58549":{"rank":557,"runs":[535,17,4,1]},"exit:58550":{"rank":556,"runs":[535,17,2,1,1]},"exit:58552":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58554":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:58566":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:58567":{"rank":555,"runs":[534,18,1,1,1]},"exit:58568":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58569":{"rank":555,"runs":[534,18,1,1,1]},"exit:58571":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:58572":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58574":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:58585":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:58586":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:58587":{"rank":555,"runs":[534,18,1,1,1]},"exit:58588":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58589":{"rank":555,"runs":[534,18,1,1,1]},"exit:58661":{"rank":555,"runs":[533,18,2,1,1]},"exit:58947":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58948":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:58949":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:58950":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:58951":{"rank":571,"runs":[550,16,2,1,1,1]},"exit:58952":{"rank":571,"runs":[548,14,2,2,1,1,1,1,1]},"exit:58953":{"rank":571,"runs":[546,12,4,4,1,1,1,1,1]},"exit:58954":{"rank":571,"runs":[544,10,6,6,1,1,1,1,1]},"exit:58955":{"rank":571,"runs":[542,8,8,8,1,1,1,1,1]},"exit:58956":{"rank":571,"runs":[540,10,10,6,1,1,1,1,1]},"exit:58957":{"rank":571,"runs":[538,12,12,4,1,1,1,1,1]},"exit:58958":{"rank":571,"runs":[536,14,14,2,1,1,1,1,1]},"exit:58959":{"rank":571,"runs":[534,16,16,1,1,1,1,1]},"exit:58960":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:58961":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:58962":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:58963":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:58964":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:58965":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:58966":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:58967":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:58968":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:58969":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:58970":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:58971":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:58972":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:58973":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:58974":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:58975":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:58976":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:58977":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:58978":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:58979":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:58980":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:58981":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:58982":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:58983":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:58984":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:58985":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:58986":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:58987":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:58988":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:58989":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:58990":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:58991":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:58992":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:58993":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:58994":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:58995":{"rank":571,"runs":[550,17,2,1,1]},"exit:58997":{"rank":569,"runs":[546,12,3,2,2,1,1,1,1]},"exit:58998":{"rank":567,"runs":[546,12,6,1,1,1]},"exit:59001":{"rank":567,"runs":[542,8,4,4,3,3,1,1,1]},"exit:59003":{"rank":569,"runs":[540,8,8,4,3,3,1,1,1]},"exit:59004":{"rank":567,"runs":[538,8,8,4,3,3,1,1,1]},"exit:59006":{"rank":569,"runs":[536,12,12,3,3,1,1,1]},"exit:59009":{"rank":569,"runs":[548,8,7,4,1,1]},"exit:59010":{"rank":567,"runs":[546,8,6,5,1,1]},"exit:59013":{"rank":567,"runs":[542,5,4,4,4,3,3,1,1]},"exit:59015":{"rank":569,"runs":[540,8,8,7,3,1,1,1]},"exit:59018":{"rank":569,"runs":[548,11,4,4,1,1]},"exit:59019":{"rank":567,"runs":[546,9,6,4,1,1]},"exit:59024":{"rank":569,"runs":[548,15,4,1,1]},"exit:59026":{"rank":569,"runs":[547,16,5,1]},"exit:59033":{"rank":563,"runs":[542,10,5,4,1,1]},"exit:59034":{"rank":563,"runs":[542,10,9,1,1]},"exit:59037":{"rank":557,"runs":[535,17,4,1]},"exit:59039":{"rank":559,"runs":[538,14,5,1,1]},"exit:59040":{"rank":553,"runs":[531,21,1]},"exit:59042":{"rank":555,"runs":[534,18,1,1,1]},"exit:59065":{"rank":561,"runs":[539,13,8,1]},"exit:59079":{"rank":558,"runs":[537,15,4,1,1]},"exit:59080":{"rank":558,"runs":[537,15,4,1,1]},"exit:59098":{"rank":556,"runs":[535,17,2,1,1]},"exit:59102":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:59103":{"rank":556,"runs":[535,17,2,1,1]},"exit:59125":{"rank":556,"runs":[533,15,2,2,2,1,1]},"exit:59129":{"rank":559,"runs":[536,11,4,3,2,1,1,1]},"exit:59209":{"rank":559,"runs":[536,9,5,4,2,1,1,1]},"exit:5924":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:59266":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:59295":{"rank":559,"runs":[537,15,6,1]},"exit:5932":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:59321":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:59326":{"rank":556,"runs":[533,16,2,2,1,1,1]},"exit:59351":{"rank":556,"runs":[535,17,2,1,1]},"exit:59356":{"rank":556,"runs":[535,17,2,1,1]},"exit:59374":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:59376":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:59386":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:59396":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:59398":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:59400":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:59401":{"rank":555,"runs":[534,18,1,1,1]},"exit:59403":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59417":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59419":{"rank":555,"runs":[534,18,1,1,1]},"exit:59421":{"rank":555,"runs":[534,18,1,1,1]},"exit:59423":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59437":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59438":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:59439":{"rank":555,"runs":[534,18,1,1,1]},"exit:59509":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:59510":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:59511":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59512":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:59573":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:59789":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:59797":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:59798":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:59799":{"rank":555,"runs":[533,18,2,1,1]},"exit:59800":{"rank":555,"runs":[533,18,1,1,1,1]},"exit:6025":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:6033":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:6124":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:6132":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:6223":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:6231":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:6731":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:6835":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:6941":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:6949":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:7047":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:7055":{"rank":557,"runs":[534,12,4,2,2,1,1,1]},"exit:7153":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:7154":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:7162":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:7260":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:7261":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:7269":{"rank":557,"runs":[534,14,2,2,2,1,1,1]},"exit:7368":{"rank":556,"runs":[535,17,2,1,1]},"exit:7369":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:7370":{"rank":557,"runs":[534,13,3,2,2,1,1,1]},"exit:7371":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:7374":{"rank":557,"runs":[534,11,5,2,2,1,1,1]},"exit:7376":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:7377":{"rank":557,"runs":[536,16,2,1,1,1]},"exit:7378":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:7380":{"rank":555,"runs":[534,18,1,1,1]},"exit:7397":{"rank":555,"runs":[533,19,2,1]},"exit:7417":{"rank":555,"runs":[533,18,1,1,1,1]},"exit:7425":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:7426":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:7434":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:7488":{"rank":555,"runs":[534,18,1,1,1]},"exit:7489":{"rank":555,"runs":[534,18,1,1,1]},"exit:7490":{"rank":555,"runs":[534,18,1,1,1]},"exit:7551":{"rank":555,"runs":[533,15,3,1,1,1,1]},"exit:7553":{"rank":555,"runs":[533,16,2,1,1,1,1]},"exit:7554":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:7783":{"rank":571,"runs":[550,14,3,2,1,1]},"exit:7786":{"rank":571,"runs":[548,12,3,2,2,1,1,1,1]},"exit:7789":{"rank":571,"runs":[546,10,4,4,3,1,1,1,1]},"exit:7792":{"rank":571,"runs":[544,8,6,6,3,1,1,1,1]},"exit:7795":{"rank":571,"runs":[542,8,8,6,3,1,1,1,1]},"exit:7798":{"rank":571,"runs":[540,10,10,4,3,1,1,1,1]},"exit:7799":{"rank":573,"runs":[552,17,2,1,1]},"exit:7801":{"rank":571,"runs":[538,12,12,3,2,1,1,1,1]},"exit:7802":{"rank":573,"runs":[552,19,1,1]},"exit:7804":{"rank":571,"runs":[536,14,14,3,1,1,1,1]},"exit:7807":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:7810":{"rank":571,"runs":[550,12,5,2,1,1]},"exit:7813":{"rank":571,"runs":[548,10,5,2,2,1,1,1,1]},"exit:7816":{"rank":571,"runs":[546,8,5,4,4,1,1,1,1]},"exit:7819":{"rank":571,"runs":[544,6,6,6,5,1,1,1,1]},"exit:7822":{"rank":571,"runs":[542,8,8,5,4,1,1,1,1]},"exit:7823":{"rank":573,"runs":[552,17,2,1,1]},"exit:7825":{"rank":571,"runs":[540,10,10,5,2,1,1,1,1]},"exit:7826":{"rank":573,"runs":[552,19,1,1]},"exit:7828":{"rank":571,"runs":[538,12,12,5,1,1,1,1]},"exit:7831":{"rank":571,"runs":[550,13,2,2,2,1,1]},"exit:7834":{"rank":571,"runs":[550,10,7,2,1,1]},"exit:7837":{"rank":571,"runs":[548,8,7,2,2,1,1,1,1]},"exit:7840":{"rank":571,"runs":[546,7,6,4,4,1,1,1,1]},"exit:7843":{"rank":571,"runs":[544,7,6,6,4,1,1,1,1]},"exit:7844":{"rank":573,"runs":[552,17,2,1,1]},"exit:7846":{"rank":571,"runs":[542,8,8,7,2,1,1,1,1]},"exit:7847":{"rank":573,"runs":[552,19,1,1]},"exit:7849":{"rank":571,"runs":[540,10,10,7,1,1,1,1]},"exit:7852":{"rank":571,"runs":[550,11,4,2,2,1,1]},"exit:7855":{"rank":571,"runs":[550,9,8,2,1,1]},"exit:7858":{"rank":571,"runs":[548,9,6,2,2,1,1,1,1]},"exit:7861":{"rank":571,"runs":[546,9,4,4,4,1,1,1,1]},"exit:7862":{"rank":573,"runs":[552,17,2,1,1]},"exit:7864":{"rank":571,"runs":[544,9,6,6,2,1,1,1,1]},"exit:7865":{"rank":573,"runs":[552,19,1,1]},"exit:7867":{"rank":571,"runs":[542,9,8,8,1,1,1,1]},"exit:7870":{"rank":571,"runs":[550,9,6,2,2,1,1]},"exit:7873":{"rank":571,"runs":[550,11,6,2,1,1]},"exit:7876":{"rank":571,"runs":[548,11,4,2,2,1,1,1,1]},"exit:7877":{"rank":573,"runs":[552,17,2,1,1]},"exit:7879":{"rank":571,"runs":[546,11,4,4,2,1,1,1,1]},"exit:7880":{"rank":573,"runs":[552,19,1,1]},"exit:7882":{"rank":571,"runs":[544,11,6,6,1,1,1,1]},"exit:7885":{"rank":571,"runs":[550,8,7,2,2,1,1]},"exit:7888":{"rank":571,"runs":[550,13,4,2,1,1]},"exit:7889":{"rank":573,"runs":[552,17,2,1,1]},"exit:7891":{"rank":571,"runs":[548,13,2,2,2,1,1,1,1]},"exit:7892":{"rank":573,"runs":[552,19,1,1]},"exit:7894":{"rank":571,"runs":[546,13,4,4,1,1,1,1]},"exit:7897":{"rank":571,"runs":[550,10,5,2,2,1,1]},"exit:7898":{"rank":573,"runs":[552,17,2,1,1]},"exit:7900":{"rank":571,"runs":[550,15,2,2,1,1]},"exit:7901":{"rank":573,"runs":[552,19,1,1]},"exit:7903":{"rank":571,"runs":[548,15,2,2,1,1,1,1]},"exit:7906":{"rank":571,"runs":[550,12,3,2,2,1,1]},"exit:7907":{"rank":573,"runs":[552,19,1,1]},"exit:7909":{"rank":571,"runs":[550,17,2,1,1]},"exit:7912":{"rank":571,"runs":[550,14,2,2,1,1,1]},"exit:7915":{"rank":571,"runs":[549,16,2,2,1,1]},"exit:7923":{"rank":569,"runs":[546,10,3,3,2,2,1,1,1]},"exit:7924":{"rank":567,"runs":[546,10,6,3,1,1]},"exit:7926":{"rank":569,"runs":[544,6,5,4,4,3,1,1,1]},"exit:7927":{"rank":567,"runs":[542,6,4,4,3,3,3,1,1]},"exit:7929":{"rank":569,"runs":[540,8,8,5,3,2,1,1,1]},"exit:7930":{"rank":567,"runs":[538,8,8,3,3,3,2,1,1]},"exit:7932":{"rank":569,"runs":[536,12,11,2,2,2,2,1,1]},"exit:7935":{"rank":569,"runs":[548,9,6,4,1,1]},"exit:7936":{"rank":567,"runs":[546,7,6,6,1,1]},"exit:7938":{"rank":569,"runs":[544,9,4,4,3,2,1,1,1]},"exit:7939":{"rank":567,"runs":[542,7,4,4,3,3,2,1,1]},"exit:7941":{"rank":569,"runs":[540,8,7,6,2,2,2,1,1]},"exit:7944":{"rank":569,"runs":[548,13,4,2,1,1]},"exit:7945":{"rank":567,"runs":[546,11,6,2,1,1]},"exit:7947":{"rank":569,"runs":[544,10,4,3,2,2,2,1,1]},"exit:7948":{"rank":567,"runs":[542,8,4,4,3,2,2,1,1]},"exit:7950":{"rank":569,"runs":[547,14,4,2,1,1]},"exit:7951":{"rank":567,"runs":[545,12,6,2,1,1]},"exit:7952":{"rank":569,"runs":[546,14,3,2,1,1,1,1]},"exit:7955":{"rank":569,"runs":[534,14,13,3,2,1,1,1]},"exit:7956":{"rank":565,"runs":[534,10,9,7,2,1,1,1]},"exit:7958":{"rank":563,"runs":[538,7,4,4,3,3,2,1,1]},"exit:7959":{"rank":563,"runs":[542,10,7,2,1,1]},"exit:7960":{"rank":563,"runs":[541,10,8,2,1,1]},"exit:7963":{"rank":557,"runs":[534,15,2,2,1,1,1,1]},"exit:7965":{"rank":559,"runs":[537,14,4,2,1,1]},"exit:7966":{"rank":553,"runs":[531,21,1]},"exit:7967":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:7968":{"rank":555,"runs":[533,19,2,1]},"exit:7983":{"rank":559,"runs":[537,14,4,2,1,1]},"exit:7985":{"rank":559,"runs":[538,14,3,2,1,1]},"exit:8003":{"rank":559,"runs":[534,12,4,3,2,2,1,1]},"exit:8005":{"rank":561,"runs":[538,11,6,2,1,1,1,1]},"exit:8019":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:8020":{"rank":558,"runs":[537,15,2,2,1,1]},"exit:8038":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:8042":{"rank":559,"runs":[534,13,4,3,2,1,1,1]},"exit:8043":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:8231":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:8235":{"rank":559,"runs":[536,13,4,2,1,1,1,1]},"exit:8236":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:8261":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:8265":{"rank":559,"runs":[537,13,5,1,1,1,1]},"exit:8266":{"rank":556,"runs":[535,17,1,1,1,1]},"exit:8270":{"rank":555,"runs":[533,17,1,1,1,1,1]},"exit:8291":{"rank":556,"runs":[535,17,2,1,1]},"exit:8296":{"rank":556,"runs":[535,17,2,1,1]},"exit:8339":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:8435":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:8445":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:8540":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:8550":{"rank":556,"runs":[533,16,2,1,1,1,1,1]},"exit:9864":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:9866":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:9874":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:9970":{"rank":556,"runs":[533,15,2,2,1,1,1,1]},"exit:9972":{"rank":557,"runs":[535,15,3,1,1,1,1]},"exit:9980":{"rank":556,"runs":[533,15,2,2,1,1,1,1]}},"word_sha256":"c22871148502ff3be91104a9b6175869f77289f451a2fc9bdb59dd9b26a37bab"},"25":{"R":35684,"candidate_edges":31717,"entrance":[0,1,2,3,4,5,6,7,8,9,10,11,14,17,18,20,21,22,23,24,25,27,28,29,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,54,55,57,58,59,60,61,62,63,64,65,67,68,69,71,72,74,76,77,78,80,81,82,83,85,86,87,90,93,94,95,96,97,98,99,100,101,103,104,105,108,110,113,116,117,120,122,123,125,126,128,129,130,131,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,148,149,151,152,155,157,158,159,160,161,162,163,164,165,166,167,169,170,171,173,174,175,177,178,180,181,182,183,185,186,187,188,190,192,193,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,214,215,216,217,218,220,221,222,224,225,227,228,229,231,232,234,235,238,239,241,242,244,245,247,248,250,251,252,253,256,257,259,260,262,263,265,268,269,271,274,275,278,281,282,284,285,286,287,288,289,291,292,293,296,298,301,302,304,305,308,310,311,313,314,316,317,319,320,321,323,324,326,327,328,329,330,331,332,333,335,336,337,339,340,343,345,348,351,352,355,357,358,360,361,363,364,367,369,370,372,373,375,376,378,379,380,381,382,383,385,386,388,389,390,391,392,393,394,395,398,400,401,402,403,404,406,407,409,410,411,414,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,451,452,454,455,456,457,458,459,460,461,462,463,464,465,467,468,469,470,471,473,474,475,476,477,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,498,499,501,502,503,504,505,507,508,510,511,513,514,515,516,517,518,519,520,521,522,523,524,526,527,528,529,530,532,533,534,535,536,538,539,540,541,542,544,545,546,547,548,550,551,552,553,554,555,556,557,558,559,561,562,563,564,565,567,568,569,571,572,574,576,577,578,580,581,582,583,585,586,587,589,590,592,594,595,596,598,599,601,603,604,605,607,608,610,612,613,614,616,617,618,619,621,622,623,624,626,629,630,631,632,633,634,635,636,637,639,640,641,644,646,647,649,650,652,653,656,658,659,661,662,664,665,666,667,668,669,670,671,672,674,675,676,677,678,679,680,681,682,683,684,685,687,688,691,693,694,696,699,700,703,705,706,708,709,711,712,715,717,718,720,721,723,724,725,726,727,728,729,730,731,733,734,735,736,737,738,739,740,741,742,743,746,747,748,749,750,751,752,753,754,755,757,758,759,762,764,765,767,768,770,771,774,776,777,779,780,782,783,786,788,789,791,792,794,795,798,800,801,803,804,806,807,808,809,810,811,813,814,816,817,818,819,820,821,822,823,825,826,828,829,830,831,832,834,835,837,838,840,841,842,843,844,845,846,847,849,850,852,853,854,857,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,875,876,877,878,879,880,882,883,884,885,886,887,888,889,890,891,892,894,895,897,898,899,900,901,902,903,904,905,906,907,908,910,911,912,913,914,916,917,918,919,920,922,923,924,925,926,927,929,930,931,932,933,934,935,936,937,938,939,941,942,944,945,946,947,948,949,950,951,953,954,956,957,959,960,961,962,963,964,965,966,967,969,970,971,972,973,975,976,977,978,979,981,982,983,984,985,987,988,989,990,991,993,994,995,996,997,998,1000,1001,1003,1004,1005,1006,1007,1008,1009,1010,1012,1013,1016,1017,1018,1019,1020,1021,1022,1024,1025,1028,1030,1031,1032,1033,1034,1036,1037,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1052,1053,1054,1055,1056,1058,1059,1060,1061,1062,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1076,1077,1078,1079,1080,1082,1083,1084,1085,1086,1088,1089,1090,1091,1092,1093,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1109,1110,1112,1114,1115,1116,1118,1119,1120,1121,1123,1124,1125,1127,1128,1130,1132,1133,1134,1136,1137,1139,1141,1142,1143,1145,1146,1148,1150,1151,1152,1154,1155,1156,1157,1159,1160,1161,1163,1164,1166,1168,1169,1170,1171,1172,1173,1175,1177,1178,1179,1182,1185,1186,1188,1189,1190,1191,1192,1193,1195,1196,1197,1200,1202,1205,1208,1209,1212,1214,1215,1217,1218,1220,1221,1223,1224,1225,1227,1228,1230,1231,1232,1233,1234,1235,1236,1237,1239,1240,1241,1243,1244,1247,1249,1252,1255,1256,1259,1261,1262,1264,1265,1267,1268,1271,1273,1274,1276,1277,1279,1280,1282,1283,1284,1286,1287,1289,1290,1292,1293,1294,1295,1296,1298,1299,1302,1304,1305,1306,1307,1308,1310,1311,1313,1314,1315,1318,1320,1323,1324,1326,1327,1330,1332,1333,1335,1336,1338,1339,1342,1344,1345,1347,1348,1350,1351,1354,1356,1357,1359,1360,1362,1363,1365,1366,1367,1369,1370,1372,1373,1374,1375,1376,1377,1378,1379,1381,1382,1384,1385,1386,1387,1388,1390,1391,1393,1394,1396,1397,1398,1399,1400,1401,1402,1403,1405,1406,1408,1409,1410,1413,1415,1418,1421,1422,1425,1427,1428,1430,1431,1433,1434,1437,1439,1440,1442,1443,1445,1446,1449,1451,1452,1454,1455,1457,1458,1461,1463,1464,1466,1467,1469,1470,1472,1473,1474,1476,1477,1479,1480,1482,1483,1484,1485,1486,1488,1489,1492,1494,1495,1497,1498,1500,1501,1503,1504,1506,1507,1508,1509,1510,1512,1513,1516,1518,1519,1521,1522,1524,1525,1527,1528,1529,1532,1534,1535,1536,1537,1538,1540,1541,1542,1543,1544,1545,1547,1548,1550,1551,1552,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1569,1570,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1585,1586,1588,1589,1591,1592,1594,1595,1597,1598,1599,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1616,1617,1619,1620,1621,1622,1623,1625,1626,1628,1629,1631,1632,1634,1635,1636,1637,1638,1639,1640,1641,1642,1644,1645,1646,1647,1648,1650,1651,1652,1653,1654,1656,1657,1658,1659,1660,1662,1663,1664,1665,1666,1668,1669,1670,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1687,1688,1690,1691,1692,1693,1694,1696,1697,1699,1700,1702,1703,1705,1706,1707,1708,1709,1711,1712,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1727,1728,1729,1730,1731,1733,1734,1735,1736,1737,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1751,1752,1753,1754,1755,1757,1758,1759,1760,1761,1763,1764,1765,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1782,1783,1785,1786,1787,1788,1789,1791,1792,1794,1795,1797,1798,1800,1801,1802,1803,1804,1806,1807,1809,1810,1811,1812,1813,1815,1816,1818,1819,1821,1822,1824,1825,1826,1827,1828,1829,1830,1831,1832,1834,1835,1836,1837,1838,1840,1841,1842,1843,1844,1846,1847,1848,1849,1850,1852,1853,1854,1855,1856,1858,1859,1860,1861,1862,1864,1865,1866,1867,1868,1870,1871,1872,1873,1874,1876,1877,1878,1879,1880,1882,1883,1884,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1899,1900,1901,1903,1904,1906,1908,1909,1910,1912,1913,1914,1915,1917,1918,1919,1921,1922,1924,1926,1927,1928,1930,1931,1933,1935,1936,1937,1939,1940,1942,1944,1945,1946,1948,1949,1950,1951,1953,1954,1955,1957,1958,1960,1962,1963,1964,1965,1966,1967,1969,1971,1972,1973,1975,1976,1978,1980,1981,1982,1984,1985,1986,1987,1989,1990,1991,1992,1994,1997,1998,1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2012,2014,2015,2017,2020,2021,2024,2026,2027,2029,2030,2032,2033,2034,2035,2036,2037,2038,2039,2040,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2055,2056,2059,2061,2062,2064,2067,2068,2071,2073,2074,2076,2077,2079,2080,2083,2085,2086,2088,2089,2091,2092,2093,2094,2095,2096,2097,2098,2099,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2114,2115,2116,2117,2118,2119,2120,2122,2123,2125,2126,2127,2130,2132,2133,2135,2136,2138,2139,2142,2144,2145,2147,2148,2150,2151,2154,2156,2157,2159,2160,2162,2163,2166,2168,2169,2171,2172,2174,2175,2176,2177,2178,2179,2180,2181,2182,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2196,2197,2198,2199,2200,2202,2203,2204,2205,2206,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2220,2221,2222,2225,2227,2228,2230,2233,2234,2237,2239,2240,2242,2243,2245,2246,2249,2251,2252,2254,2255,2257,2258,2261,2263,2264,2266,2267,2269,2270,2273,2275,2276,2278,2279,2281,2282,2283,2284,2285,2286,2287,2288,2289,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2304,2305,2306,2307,2309,2310,2311,2312,2313,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2328,2329,2330,2331,2333,2334,2335,2336,2337,2339,2340,2341,2344,2346,2347,2349,2350,2352,2353,2356,2358,2359,2361,2362,2364,2365,2368,2370,2371,2373,2374,2376,2377,2380,2382,2383,2385,2386,2388,2389,2392,2394,2395,2397,2398,2400,2401,2404,2406,2407,2409,2410,2412,2413,2414,2415,2416,2417,2418,2419,2420,2422,2423,2425,2426,2427,2428,2429,2430,2431,2432,2434,2435,2437,2438,2440,2441,2442,2443,2444,2446,2447,2449,2450,2451,2452,2453,2454,2455,2456,2458,2459,2461,2462,2464,2465,2466,2467,2468,2470,2471,2473,2474,2475,2476,2477,2478,2479,2480,2482,2483,2484,2487,2489,2490,2491,2492,2493,2495,2496,2497,2498,2499,2500,2502,2503,2505,2506,2507,2508,2510,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2524,2525,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2540,2541,2543,2544,2546,2547,2549,2550,2552,2553,2554,2555,2556,2557,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2571,2572,2574,2575,2576,2577,2578,2579,2580,2581,2583,2584,2586,2587,2589,2590,2591,2592,2593,2594,2595,2596,2597,2599,2600,2601,2602,2603,2605,2606,2607,2608,2609,2611,2612,2613,2614,2615,2617,2618,2619,2620,2621,2623,2624,2625,2626,2627,2628,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2642,2643,2645,2646,2647,2648,2649,2650,2651,2652,2654,2655,2657,2658,2660,2661,2662,2663,2664,2666,2667,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2682,2683,2684,2685,2686,2688,2689,2690,2691,2692,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2706,2707,2708,2709,2710,2712,2713,2714,2715,2716,2718,2719,2720,2721,2722,2723,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2737,2738,2740,2741,2742,2743,2744,2745,2746,2747,2749,2750,2752,2753,2755,2756,2757,2758,2759,2761,2762,2764,2765,2766,2767,2768,2769,2770,2771,2773,2774,2776,2777,2779,2780,2781,2782,2783,2784,2785,2786,2787,2789,2790,2791,2792,2793,2795,2796,2797,2798,2799,2801,2802,2803,2804,2805,2807,2808,2809,2810,2811,2813,2814,2815,2816,2817,2819,2820,2821,2822,2823,2825,2826,2827,2828,2829,2831,2832,2833,2834,2835,2837,2838,2839,2840,2841,2842,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2856,2857,2859,2860,2861,2862,2863,2864,2865,2866,2868,2869,2871,2872,2874,2875,2876,2877,2878,2880,2881,2883,2884,2885,2886,2887,2888,2889,2890,2892,2893,2895,2896,2898,2899,2900,2901,2902,2904,2905,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2920,2921,2922,2923,2924,2926,2927,2928,2929,2930,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2944,2945,2946,2947,2948,2950,2951,2952,2953,2954,2956,2957,2958,2959,2960,2962,2963,2964,2965,2966,2968,2969,2970,2971,2972,2974,2975,2976,2977,2978,2980,2981,2982,2983,2984,2985,2987,2988,2989,2990,2991,2992,2993,2994,2995,2997,2998,2999,3001,3002,3004,3006,3007,3008,3010,3011,3012,3013,3015,3016,3017,3019,3020,3022,3024,3025,3026,3028,3029,3031,3033,3034,3035,3037,3038,3040,3042,3043,3044,3046,3047,3048,3049,3051,3052,3053,3055,3056,3058,3060,3061,3062,3063,3064,3065,3067,3069,3070,3071,3073,3074,3076,3078,3079,3080,3082,3083,3084,3085,3087,3088,3089,3091,3092,3094,3096,3097,3098,3099,3100,3101,3103,3105,3106,3107,3110,3113,3114,3116,3117,3118,3119,3120,3121,3123,3124,3125,3128,3130,3133,3136,3137,3140,3142,3143,3145,3146,3148,3149,3151,3152,3153,3155,3156,3158,3159,3160,3161,3162,3164,3165,3167,3168,3169,3171,3172,3175,3177,3180,3183,3184,3187,3189,3190,3192,3193,3195,3196,3199,3201,3202,3204,3205,3207,3208,3210,3211,3212,3214,3215,3217,3218,3220,3221,3222,3223,3224,3226,3227,3230,3232,3233,3234,3235,3236,3238,3239,3241,3242,3243,3246,3248,3251,3252,3254,3255,3258,3260,3261,3263,3264,3266,3267,3270,3272,3273,3275,3276,3278,3279,3282,3284,3285,3287,3288,3290,3291,3293,3294,3295,3297,3298,3300,3301,3302,3303,3304,3305,3306,3307,3309,3310,3312,3313,3314,3315,3316,3318,3319,3321,3322,3324,3325,3326,3327,3328,3329,3330,3331,3333,3334,3336,3337,3338,3341,3343,3346,3349,3350,3353,3355,3356,3358,3359,3361,3362,3365,3367,3368,3370,3371,3373,3374,3377,3379,3380,3382,3383,3385,3386,3389,3391,3392,3394,3395,3397,3398,3400,3401,3402,3403,3404,3405,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3420,3421,3422,3423,3425,3426,3427,3428,3429,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3444,3445,3446,3447,3449,3450,3451,3452,3453,3455,3456,3457,3460,3462,3465,3466,3468,3469,3472,3474,3475,3477,3478,3480,3481,3484,3486,3487,3489,3490,3492,3493,3496,3498,3499,3501,3502,3504,3505,3508,3510,3511,3513,3514,3516,3517,3520,3522,3523,3525,3526,3528,3529,3531,3532,3533,3534,3535,3536,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3550,3551,3552,3553,3554,3556,3557,3558,3559,3560,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3574,3575,3576,3577,3578,3580,3581,3582,3583,3584,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3598,3599,3600,3603,3605,3608,3611,3612,3615,3617,3618,3620,3621,3623,3624,3627,3629,3630,3632,3633,3635,3636,3639,3641,3642,3644,3645,3647,3648,3651,3653,3654,3656,3657,3659,3660,3663,3665,3666,3668,3669,3671,3672,3675,3677,3678,3680,3681,3683,3684,3686,3687,3688,3689,3690,3691,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3706,3707,3708,3709,3711,3712,3713,3714,3715,3717,3718,3719,3720,3721,3723,3724,3725,3726,3727,3730,3731,3732,3733,3735,3736,3737,3738,3739,3741,3742,3743,3744,3745,3747,3748,3749,3750,3751,3754,3755,3756,3757,3759,3760,3761,3762,3763,3765,3766,3767,3770,3772,3773,3774,3775,3776,3778,3779,3780,3781,3782,3783,3785,3786,3788,3789,3790,3793,3794,3795,3796,3797,3798,3799,3801,3802,3803,3804,3805,3807,3808,3810,3811,3812,3813,3814,3815,3816,3817,3818,3820,3821,3823,3824,3826,3827,3829,3830,3832,3833,3835,3836,3837,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3854,3855,3857,3858,3859,3860,3861,3863,3864,3866,3867,3869,3870,3872,3873,3874,3875,3876,3877,3878,3879,3880,3882,3883,3884,3885,3886,3888,3889,3890,3891,3892,3894,3895,3896,3897,3898,3900,3901,3902,3903,3904,3906,3907,3908,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3925,3926,3928,3929,3930,3931,3932,3934,3935,3937,3938,3940,3941,3943,3944,3945,3946,3947,3949,3950,3952,3953,3955,3956,3957,3958,3959,3960,3961,3962,3963,3965,3966,3967,3968,3969,3971,3972,3973,3974,3975,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3989,3990,3991,3992,3993,3995,3996,3997,3998,3999,4001,4002,4003,4005,4006,4007,4008,4009,4011,4012,4013,4014,4015,4016,4018,4020,4021,4024,4025,4026,4027,4030,4032,4033,4036,4038,4039,4040,4042,4044,4045,4047,4048,4050,4051,4054,4056,4057,4060,4062,4063,4064,4065,4066,4067,4068,4069,4070,4072,4073,4074,4075,4076,4078,4079,4080,4081,4082,4084,4085,4086,4087,4088,4090,4091,4092,4093,4094,4096,4097,4098,4099,4100,4102,4103,4104,4105,4106,4108,4109,4110,4111,4112,4114,4115,4116,4117,4118,4120,4121,4122,4124,4125,4126,4127,4128,4130,4131,4132,4133,4134,4135,4136,4137,4139,4140,4143,4144,4145,4146,4148,4149,4151,4152,4155,4157,4158,4159,4160,4161,4163,4164,4167,4169,4170,4172,4173,4175,4176,4179,4181,4182,4183,4184,4185,4187,4188,4191,4193,4194,4195,4196,4197,4198,4199,4200,4201,4203,4204,4205,4206,4207,4209,4210,4211,4212,4213,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4227,4228,4229,4230,4231,4233,4234,4235,4236,4237,4239,4240,4241,4242,4243,4245,4246,4247,4248,4249,4251,4252,4253,4254,4255,4257,4258,4259,4260,4261,4263,4264,4265,4267,4268,4269,4270,4271,4273,4274,4275,4276,4277,4278,4280,4282,4283,4286,4287,4288,4289,4292,4294,4295,4297,4298,4300,4301,4302,4304,4306,4307,4310,4312,4313,4316,4318,4319,4321,4322,4324,4325,4326,4328,4330,4331,4333,4334,4336,4337,4340,4342,4343,4346,4348,4349,4350,4351,4352,4353,4354,4355,4356,4358,4359,4360,4361,4362,4364,4365,4366,4367,4368,4370,4371,4372,4373,4374,4376,4377,4378,4379,4380,4382,4383,4384,4385,4386,4388,4389,4390,4391,4392,4394,4395,4396,4397,4398,4400,4401,4402,4403,4404,4406,4407,4408,4409,4410,4412,4413,4414,4415,4416,4418,4419,4420,4421,4422,4424,4425,4426,4427,4428,4430,4431,4432,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4447,4448,4449,4451,4452,4454,4456,4457,4458,4460,4461,4462,4463,4465,4466,4467,4469,4470,4472,4474,4475,4476,4478,4479,4481,4483,4484,4485,4487,4488,4490,4492,4493,4494,4496,4497,4498,4499,4501,4502,4503,4505,4506,4508,4510,4511,4512,4513,4514,4515,4517,4519,4520,4521,4523,4524,4526,4528,4529,4530,4532,4533,4534,4535,4537,4538,4539,4541,4542,4544,4546,4547,4548,4549,4550,4551,4553,4555,4556,4557,4559,4560,4562,4564,4565,4566,4568,4569,4570,4571,4573,4574,4575,4576,4578,4581,4582,4583,4584,4585,4586,4587,4588,4589,4591,4592,4593,4596,4598,4599,4601,4604,4605,4608,4610,4611,4613,4614,4616,4617,4618,4619,4620,4621,4622,4623,4624,4626,4627,4628,4629,4630,4632,4633,4634,4635,4636,4637,4639,4640,4643,4645,4646,4648,4651,4652,4655,4657,4658,4660,4661,4663,4664,4667,4669,4670,4672,4673,4675,4676,4677,4678,4679,4680,4681,4682,4683,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4698,4699,4700,4701,4702,4703,4704,4706,4707,4709,4710,4711,4714,4716,4717,4719,4720,4722,4723,4726,4728,4729,4731,4732,4734,4735,4738,4740,4741,4743,4744,4746,4747,4750,4752,4753,4755,4756,4758,4759,4760,4761,4762,4763,4764,4765,4766,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4780,4781,4782,4783,4784,4786,4787,4788,4789,4790,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4804,4805,4806,4809,4811,4812,4814,4817,4818,4821,4823,4824,4826,4827,4829,4830,4833,4835,4836,4838,4839,4841,4842,4845,4847,4848,4850,4851,4853,4854,4857,4859,4860,4862,4863,4865,4866,4867,4868,4869,4870,4871,4872,4873,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4888,4889,4890,4891,4893,4894,4895,4896,4897,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4912,4913,4914,4915,4917,4918,4919,4920,4921,4923,4924,4925,4928,4930,4931,4933,4934,4936,4937,4940,4942,4943,4945,4946,4948,4949,4952,4954,4955,4957,4958,4960,4961,4964,4966,4967,4969,4970,4972,4973,4976,4978,4979,4981,4982,4984,4985,4988,4990,4991,4993,4994,4996,4997,4998,4999,5000,5001,5002,5003,5004,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5018,5019,5020,5021,5022,5024,5025,5026,5027,5028,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5042,5043,5044,5045,5046,5048,5049,5050,5051,5052,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5066,5067,5068,5071,5073,5074,5076,5079,5080,5083,5085,5086,5088,5089,5091,5092,5095,5097,5098,5100,5101,5103,5104,5107,5109,5110,5112,5113,5115,5116,5119,5121,5122,5124,5125,5127,5128,5131,5133,5134,5136,5137,5139,5140,5143,5145,5146,5148,5149,5151,5152,5153,5154,5155,5156,5157,5158,5159,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5174,5175,5176,5177,5179,5180,5181,5182,5183,5185,5186,5187,5188,5189,5191,5192,5193,5194,5195,5198,5199,5200,5201,5203,5204,5205,5206,5207,5209,5210,5211,5212,5213,5215,5216,5217,5218,5219,5222,5223,5224,5225,5227,5228,5229,5230,5231,5233,5234,5235,5238,5240,5241,5243,5244,5246,5247,5250,5252,5253,5255,5256,5258,5259,5262,5264,5265,5267,5268,5270,5271,5274,5276,5277,5279,5280,5282,5283,5286,5288,5289,5291,5292,5294,5295,5298,5300,5301,5303,5304,5306,5307,5310,5312,5313,5315,5316,5318,5319,5322,5324,5325,5327,5328,5330,5331,5332,5333,5334,5335,5336,5337,5338,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5352,5353,5354,5355,5356,5358,5359,5360,5361,5362,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5376,5377,5378,5379,5380,5382,5383,5384,5385,5386,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5400,5401,5403,5404,5406,5407,5408,5409,5410,5413,5415,5416,5417,5418,5419,5420,5421,5422,5424,5425,5426,5429,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5443,5444,5445,5447,5448,5449,5450,5451,5452,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5466,5467,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5482,5483,5484,5485,5486,5488,5489,5490,5491,5492,5494,5495,5496,5497,5498,5499,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5513,5514,5516,5517,5518,5519,5520,5521,5522,5523,5525,5526,5528,5529,5531,5532,5533,5534,5535,5536,5537,5538,5539,5541,5542,5544,5545,5547,5548,5550,5551,5553,5554,5556,5557,5559,5560,5562,5563,5565,5566,5567,5568,5569,5570,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5584,5585,5587,5588,5589,5590,5591,5592,5593,5594,5596,5597,5599,5600,5602,5603,5604,5605,5606,5608,5609,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5624,5625,5627,5628,5630,5631,5633,5634,5636,5637,5639,5640,5641,5642,5643,5645,5646,5648,5649,5650,5651,5652,5654,5655,5656,5657,5658,5660,5661,5662,5663,5664,5665,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5679,5680,5682,5683,5684,5685,5686,5687,5688,5689,5691,5692,5694,5695,5697,5698,5699,5700,5701,5703,5704,5706,5707,5708,5709,5710,5711,5712,5713,5715,5716,5718,5719,5721,5722,5723,5724,5725,5726,5727,5728,5729,5731,5732,5733,5734,5735,5737,5738,5739,5740,5741,5743,5744,5745,5746,5747,5749,5750,5751,5752,5753,5755,5756,5757,5758,5759,5761,5762,5763,5764,5765,5767,5768,5769,5770,5771,5773,5774,5775,5776,5777,5779,5780,5781,5782,5783,5784,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5798,5799,5801,5802,5803,5804,5805,5806,5807,5808,5810,5811,5813,5814,5816,5817,5818,5819,5820,5822,5823,5825,5826,5827,5828,5829,5830,5831,5832,5834,5835,5837,5838,5840,5841,5842,5843,5844,5846,5847,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5862,5863,5864,5865,5866,5868,5869,5870,5871,5872,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5886,5887,5888,5889,5890,5892,5893,5894,5895,5896,5898,5899,5900,5901,5902,5904,5905,5906,5907,5908,5910,5911,5912,5913,5914,5916,5917,5918,5919,5920,5922,5923,5924,5925,5926,5927,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5941,5942,5944,5945,5946,5947,5948,5949,5950,5951,5953,5954,5956,5957,5959,5960,5961,5962,5963,5965,5966,5968,5969,5970,5971,5972,5973,5974,5975,5977,5978,5980,5981,5983,5984,5985,5986,5987,5989,5990,5992,5993,5994,5995,5996,5997,5998,5999,6001,6002,6004,6005,6007,6008,6009,6010,6011,6012,6013,6014,6015,6017,6018,6019,6020,6021,6023,6024,6025,6026,6027,6029,6030,6031,6032,6033,6035,6036,6037,6038,6039,6041,6042,6043,6044,6045,6047,6048,6049,6050,6051,6053,6054,6055,6056,6057,6059,6060,6061,6062,6063,6065,6066,6067,6068,6069,6071,6072,6073,6074,6075,6077,6078,6079,6080,6081,6083,6084,6085,6086,6087,6089,6090,6091,6092,6093,6094,6096,6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6108,6109,6111,6112,6113,6114,6115,6116,6118,6120,6121,6123,6124,6126,6127,6128,6130,6132,6133,6135,6136,6137,6138,6139,6140,6142,6144,6145,6147,6148,6150,6151,6152,6154,6156,6157,6159,6160,6161,6162,6163,6164,6166,6168,6169,6171,6172,6174,6175,6178,6180,6181,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6196,6197,6198,6199,6200,6202,6203,6204,6205,6206,6208,6209,6210,6211,6212,6214,6215,6216,6217,6218,6220,6221,6222,6223,6224,6226,6227,6228,6229,6230,6232,6233,6234,6235,6236,6238,6239,6240,6241,6242,6244,6245,6246,6247,6248,6250,6251,6252,6253,6254,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6268,6269,6270,6271,6272,6274,6275,6276,6277,6278,6280,6281,6282,6283,6284,6285,6287,6288,6289,6290,6291,6292,6293,6294,6295,6297,6298,6299,6301,6302,6304,6306,6307,6308,6310,6311,6312,6313,6315,6316,6317,6319,6320,6322,6324,6325,6326,6328,6329,6331,6333,6334,6335,6337,6338,6340,6342,6343,6344,6346,6347,6348,6349,6351,6352,6353,6355,6356,6358,6360,6361,6362,6363,6364,6365,6367,6369,6370,6371,6373,6374,6376,6378,6379,6380,6382,6383,6384,6385,6387,6388,6389,6391,6392,6394,6396,6397,6398,6399,6400,6401,6403,6405,6406,6407,6409,6410,6412,6414,6415,6416,6418,6419,6420,6421,6423,6424,6425,6427,6428,6430,6432,6433,6434,6435,6436,6437,6439,6441,6442,6443,6444,6446,6449,6450,6451,6452,6453,6454,6455,6456,6457,6459,6460,6461,6464,6466,6469,6470,6472,6473,6476,6478,6479,6481,6482,6484,6485,6487,6488,6489,6491,6492,6494,6495,6496,6497,6498,6499,6500,6501,6503,6504,6505,6507,6508,6511,6513,6516,6519,6520,6523,6525,6526,6528,6529,6531,6532,6535,6537,6538,6540,6541,6543,6544,6546,6547,6548,6549,6550,6551,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6577,6578,6579,6582,6584,6587,6588,6590,6591,6594,6596,6597,6599,6600,6602,6603,6606,6608,6609,6611,6612,6614,6615,6618,6620,6621,6623,6624,6626,6627,6629,6630,6631,6632,6633,6634,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6648,6649,6650,6651,6652,6654,6655,6656,6657,6658,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6672,6673,6674,6677,6679,6682,6685,6686,6689,6691,6692,6694,6695,6697,6698,6701,6703,6704,6706,6707,6709,6710,6713,6715,6716,6718,6719,6721,6722,6725,6727,6728,6730,6731,6733,6734,6736,6737,6738,6739,6740,6741,6743,6744,6745,6746,6747,6748,6749,6750,6751,6752,6753,6756,6757,6758,6759,6761,6762,6763,6764,6765,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6780,6781,6782,6783,6785,6786,6787,6788,6789,6791,6792,6793,6796,6798,6801,6802,6804,6805,6808,6810,6811,6813,6814,6816,6817,6820,6822,6823,6825,6826,6828,6829,6832,6834,6835,6837,6838,6840,6841,6844,6846,6847,6849,6850,6852,6853,6856,6858,6859,6861,6862,6864,6865,6867,6868,6869,6870,6871,6872,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6886,6887,6888,6889,6890,6892,6893,6894,6895,6896,6898,6899,6900,6901,6902,6903,6904,6905,6906,6907,6908,6910,6911,6912,6913,6914,6916,6917,6918,6919,6920,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6934,6935,6936,6939,6941,6944,6947,6948,6951,6953,6954,6956,6957,6959,6960,6963,6965,6966,6968,6969,6971,6972,6975,6977,6978,6980,6981,6983,6984,6987,6989,6990,6992,6993,6995,6996,6999,7001,7002,7004,7005,7007,7008,7011,7013,7014,7016,7017,7019,7020,7022,7023,7024,7025,7026,7027,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7042,7043,7044,7045,7047,7048,7049,7050,7051,7053,7054,7055,7056,7057,7059,7060,7061,7062,7063,7066,7067,7068,7069,7071,7072,7073,7074,7075,7077,7078,7079,7080,7081,7083,7084,7085,7086,7087,7090,7091,7092,7093,7095,7096,7097,7098,7099,7101,7102,7103,7106,7108,7111,7112,7114,7115,7118,7120,7121,7123,7124,7126,7127,7130,7132,7133,7135,7136,7138,7139,7142,7144,7145,7147,7148,7150,7151,7154,7156,7157,7159,7160,7162,7163,7166,7168,7169,7171,7172,7174,7175,7178,7180,7181,7183,7184,7186,7187,7190,7192,7193,7195,7196,7198,7199,7201,7202,7203,7204,7205,7206,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7220,7221,7222,7223,7224,7226,7227,7228,7229,7230,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7244,7245,7246,7247,7248,7250,7251,7252,7253,7254,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7268,7269,7270,7271,7272,7274,7275,7276,7277,7278,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7292,7293,7294,7297,7299,7302,7305,7306,7309,7311,7312,7314,7315,7317,7318,7321,7323,7324,7326,7327,7329,7330,7333,7335,7336,7338,7339,7341,7342,7345,7347,7348,7350,7351,7353,7354,7357,7359,7360,7362,7363,7365,7366,7369,7371,7372,7374,7375,7377,7378,7381,7383,7384,7386,7387,7389,7390,7393,7395,7396,7398,7399,7401,7402,7404,7405,7406,7407,7408,7409,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7436,7437,7438,7439,7441,7442,7443,7444,7445,7448,7449,7450,7451,7453,7454,7455,7456,7457,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7472,7473,7474,7475,7477,7478,7479,7480,7481,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7496,7497,7498,7499,7501,7502,7503,7504,7505,7507,7508,7509,7512,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7526,7527,7528,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7549,7550,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7565,7566,7567,7568,7569,7571,7572,7573,7574,7575,7577,7578,7579,7581,7582,7584,7585,7587,7588,7589,7590,7591,7592,7594,7596,7597,7600,7601,7602,7603,7604,7605,7606,7608,7609,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7624,7625,7626,7627,7628,7630,7631,7632,7633,7634,7636,7637,7638,7639,7640,7642,7643,7644,7645,7646,7648,7649,7650,7652,7653,7655,7656,7658,7659,7660,7661,7662,7663,7665,7667,7668,7671,7672,7673,7674,7675,7676,7677,7679,7680,7683,7684,7685,7686,7687,7688,7689,7691,7692,7695,7697,7698,7699,7700,7701,7702,7703,7704,7705,7707,7708,7709,7710,7711,7713,7714,7715,7716,7717,7719,7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7731,7732,7733,7734,7735,7737,7738,7739,7740,7741,7743,7744,7745,7747,7748,7750,7751,7752,7753,7754,7755,7756,7757,7758,7760,7762,7763,7765,7766,7767,7768,7769,7770,7772,7774,7775,7777,7778,7779,7780,7781,7782,7784,7786,7787,7789,7790,7792,7793,7796,7798,7799,7802,7804,7805,7806,7807,7808,7809,7810,7811,7812,7814,7815,7816,7817,7818,7820,7821,7822,7823,7824,7826,7827,7828,7829,7830,7832,7833,7834,7835,7836,7838,7839,7840,7841,7842,7844,7845,7846,7847,7848,7850,7851,7852,7853,7854,7856,7857,7858,7859,7860,7862,7863,7864,7866,7867,7869,7870,7872,7873,7874,7875,7876,7877,7879,7881,7882,7885,7886,7887,7888,7889,7890,7891,7893,7894,7897,7898,7899,7900,7901,7902,7903,7905,7906,7909,7911,7912,7914,7915,7917,7918,7921,7923,7924,7925,7926,7927,7929,7930,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7945,7946,7947,7948,7949,7951,7952,7953,7954,7955,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7969,7970,7971,7972,7973,7975,7976,7977,7978,7979,7981,7982,7983,7984,7985,7987,7988,7989,7990,7991,7993,7994,7995,7996,7997,7999,8000,8001,8002,8003,8005,8006,8007,8009,8010,8012,8013,8014,8015,8016,8017,8018,8019,8020,8022,8024,8025,8027,8028,8029,8030,8031,8032,8034,8036,8037,8039,8040,8041,8042,8043,8044,8046,8048,8049,8051,8052,8054,8055,8058,8060,8061,8063,8064,8066,8067,8068,8070,8072,8073,8075,8076,8077,8078,8079,8082,8084,8085,8088,8090,8091,8092,8093,8094,8096,8097,8098,8100,8101,8102,8103,8104,8106,8107,8108,8109,8110,8112,8113,8114,8115,8116,8118,8119,8120,8121,8122,8124,8125,8126,8127,8128,8130,8131,8132,8133,8134,8136,8137,8138,8139,8140,8142,8143,8144,8145,8146,8148,8149,8150,8151,8152,8154,8155,8156,8157,8158,8160,8161,8162,8163,8164,8166,8167,8168,8169,8170,8172,8173,8174,8176,8177,8179,8180,8182,8183,8184,8185,8186,8187,8188,8189,8191,8192,8195,8196,8197,8198,8199,8200,8201,8203,8204,8207,8208,8209,8210,8211,8213,8215,8216,8219,8221,8222,8225,8227,8228,8231,8233,8234,8235,8236,8237,8239,8240,8243,8244,8245,8246,8248,8249,8251,8252,8255,8257,8258,8259,8260,8261,8263,8264,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8280,8281,8282,8283,8286,8287,8288,8289,8292,8293,8294,8295,8298,8299,8300,8301,8303,8304,8305,8306,8307,8309,8310,8311,8312,8313,8315,8316,8317,8318,8319,8321,8322,8323,8324,8325,8327,8328,8329,8330,8331,8333,8334,8335,8336,8337,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8351,8352,8353,8354,8355,8357,8358,8359,8360,8361,8363,8364,8365,8367,8368,8370,8371,8372,8373,8374,8375,8376,8377,8378,8380,8382,8383,8385,8386,8387,8388,8389,8390,8392,8394,8395,8397,8398,8399,8400,8401,8402,8404,8406,8407,8409,8410,8412,8413,8416,8418,8419,8421,8422,8424,8425,8426,8428,8430,8431,8433,8434,8435,8436,8437,8440,8442,8443,8445,8446,8448,8449,8450,8452,8454,8455,8457,8458,8459,8460,8461,8464,8466,8467,8470,8472,8473,8474,8475,8476,8478,8479,8480,8482,8483,8484,8485,8486,8488,8489,8490,8491,8492,8494,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8506,8507,8508,8509,8510,8512,8513,8514,8515,8516,8518,8519,8520,8521,8522,8524,8525,8526,8527,8528,8530,8531,8532,8533,8534,8536,8537,8538,8539,8540,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8554,8555,8556,8557,8558,8560,8561,8562,8563,8564,8566,8567,8568,8569,8570,8572,8573,8574,8575,8576,8579,8580,8582,8583,8585,8586,8587,8589,8590,8591,8592,8593,8596,8597,8599,8600,8602,8603,8604,8605,8606,8608,8609,8610,8611,8612,8614,8615,8617,8618,8620,8622,8623,8624,8626,8627,8629,8632,8633,8635,8636,8638,8640,8641,8642,8644,8645,8646,8647,8650,8651,8653,8654,8656,8658,8659,8660,8661,8662,8663,8665,8668,8669,8671,8672,8674,8676,8677,8678,8680,8681,8682,8683,8686,8687,8689,8690,8692,8694,8695,8696,8697,8698,8699,8701,8704,8705,8707,8708,8710,8712,8713,8714,8716,8717,8718,8719,8722,8723,8725,8726,8728,8730,8731,8732,8733,8734,8735,8737,8740,8741,8743,8744,8746,8748,8749,8750,8752,8753,8755,8758,8759,8760,8762,8765,8766,8767,8768,8769,8770,8771,8772,8773,8775,8776,8777,8778,8780,8782,8783,8785,8786,8788,8789,8792,8794,8795,8797,8798,8800,8801,8802,8803,8804,8805,8806,8807,8808,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8823,8824,8827,8829,8832,8835,8836,8839,8841,8842,8844,8845,8847,8848,8851,8853,8854,8856,8857,8859,8860,8862,8863,8864,8865,8866,8867,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8893,8894,8895,8898,8900,8901,8903,8904,8906,8907,8910,8912,8913,8915,8916,8918,8919,8922,8924,8925,8927,8928,8930,8931,8934,8936,8937,8939,8940,8942,8943,8945,8946,8947,8948,8949,8950,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8964,8965,8966,8967,8968,8970,8971,8972,8973,8974,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8988,8989,8990,8993,8995,8996,8998,9001,9002,9005,9007,9008,9010,9011,9013,9014,9017,9019,9020,9022,9023,9025,9026,9029,9031,9032,9034,9035,9037,9038,9041,9043,9044,9046,9047,9049,9050,9051,9053,9054,9055,9056,9057,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9072,9073,9074,9075,9077,9078,9079,9080,9081,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9096,9097,9098,9099,9101,9102,9103,9104,9105,9107,9108,9109,9112,9114,9115,9117,9118,9120,9121,9124,9126,9127,9129,9130,9132,9133,9136,9138,9139,9141,9142,9144,9145,9148,9150,9151,9153,9154,9156,9157,9160,9162,9163,9165,9166,9168,9169,9172,9174,9175,9177,9178,9180,9181,9182,9184,9185,9186,9187,9188,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,9200,9202,9203,9204,9205,9206,9208,9209,9210,9211,9212,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9226,9227,9228,9229,9230,9232,9233,9234,9235,9236,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9250,9251,9252,9255,9257,9258,9260,9263,9264,9267,9269,9270,9272,9273,9275,9276,9279,9281,9282,9284,9285,9287,9288,9291,9293,9294,9296,9297,9299,9300,9303,9305,9306,9308,9309,9311,9312,9315,9317,9318,9320,9321,9323,9324,9327,9329,9330,9332,9333,9335,9336,9337,9338,9339,9340,9341,9342,9343,9345,9346,9347,9348,9349,9350,9351,9352,9353,9354,9355,9358,9359,9360,9361,9363,9364,9365,9366,9367,9369,9370,9371,9372,9373,9375,9376,9377,9378,9379,9382,9383,9384,9385,9387,9388,9389,9390,9391,9393,9394,9395,9396,9397,9399,9400,9401,9402,9403,9406,9407,9408,9409,9411,9412,9413,9414,9415,9417,9418,9419,9422,9424,9425,9427,9428,9430,9431,9434,9436,9437,9439,9440,9442,9443,9446,9448,9449,9451,9452,9454,9455,9458,9460,9461,9463,9464,9466,9467,9470,9472,9473,9475,9476,9478,9479,9482,9484,9485,9487,9488,9490,9491,9494,9496,9497,9499,9500,9502,9503,9506,9508,9509,9511,9512,9514,9515,9516,9517,9518,9519,9520,9521,9522,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9536,9537,9538,9539,9540,9542,9543,9544,9545,9546,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9560,9561,9562,9563,9564,9566,9567,9568,9569,9570,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9584,9585,9586,9587,9588,9590,9591,9592,9593,9594,9597,9598,9599,9600,9601,9602,9603,9604,9605,9606,9608,9609,9610,9613,9615,9616,9618,9621,9622,9625,9627,9628,9630,9631,9633,9634,9637,9639,9640,9642,9643,9645,9646,9649,9651,9652,9654,9655,9657,9658,9661,9663,9664,9666,9667,9669,9670,9673,9675,9676,9678,9679,9681,9682,9685,9687,9688,9690,9691,9693,9694,9697,9699,9700,9702,9703,9705,9706,9709,9711,9712,9714,9715,9717,9718,9719,9720,9721,9722,9723,9724,9725,9727,9728,9729,9730,9731,9732,9733,9734,9735,9736,9737,9740,9741,9742,9743,9745,9746,9747,9748,9749,9751,9752,9753,9754,9755,9757,9758,9759,9760,9761,9764,9765,9766,9767,9769,9770,9771,9772,9773,9775,9776,9777,9778,9779,9781,9782,9783,9784,9785,9788,9789,9790,9791,9793,9794,9795,9796,9797,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9812,9813,9814,9815,9817,9818,9819,9820,9821,9823,9824,9825,9828,9830,9831,9833,9836,9837,9840,9842,9843,9845,9846,9848,9849,9852,9854,9855,9857,9858,9860,9861,9864,9866,9867,9869,9870,9872,9873,9876,9878,9879,9881,9882,9884,9885,9888,9890,9891,9893,9894,9896,9897,9900,9902,9903,9905,9906,9908,9909,9912,9914,9915,9917,9918,9920,9921,9924,9926,9927,9929,9930,9932,9933,9936,9938,9939,9941,9942,9944,9945,9947,9948,9949,9950,9951,9952,9954,9955,9956,9957,9958,9960,9961,9962,9963,9964,9966,9967,9968,9969,9970,9972,9973,9974,9975,9976,9978,9979,9980,9981,9982,9983,9984,9985,9987,9988,9990,9991,9993,9994,9996,9997,9999,10000,10002,10003,10005,10006,10008,10009,10011,10012,10014,10015,10017,10018,10020,10021,10023,10024,10027,10029,10030,10031,10032,10033,10035,10036,10038,10039,10041,10042,10044,10045,10047,10048,10050,10051,10053,10054,10055,10056,10057,10059,10060,10062,10063,10064,10067,10069,10070,10071,10072,10073,10074,10075,10076,10077,10078,10079,10081,10082,10083,10085,10086,10087,10088,10089,10090,10091,10092,10093,10094,10095,10096,10097,10098,10099,10100,10101,10102,10104,10105,10107,10108,10109,10110,10111,10112,10113,10114,10115,10116,10117,10118,10120,10121,10122,10123,10124,10126,10127,10128,10129,10130,10132,10133,10134,10135,10136,10137,10139,10140,10141,10142,10143,10144,10145,10146,10147,10148,10149,10151,10152,10154,10155,10156,10157,10158,10159,10160,10161,10163,10164,10166,10167,10169,10170,10171,10172,10173,10174,10175,10176,10177,10179,10180,10181,10182,10183,10185,10186,10187,10188,10189,10191,10192,10193,10194,10195,10197,10198,10199,10200,10201,10203,10204,10205,10206,10207,10208,10210,10211,10212,10213,10214,10215,10216,10217,10218,10219,10220,10222,10223,10225,10226,10227,10228,10229,10230,10231,10232,10234,10235,10237,10238,10240,10241,10242,10243,10244,10246,10247,10249,10250,10251,10252,10253,10254,10255,10256,10257,10258,10259,10260,10262,10263,10264,10265,10266,10268,10269,10270,10271,10272,10274,10275,10276,10277,10278,10279,10280,10281,10282,10283,10284,10286,10287,10288,10289,10290,10292,10293,10294,10295,10296,10298,10299,10300,10301,10302,10303,10305,10306,10307,10308,10309,10310,10311,10312,10313,10314,10315,10317,10318,10320,10321,10322,10323,10324,10325,10326,10327,10329,10330,10332,10333,10335,10336,10337,10338,10339,10341,10342,10345,10346,10347,10348,10349,10350,10351,10353,10354,10357,10359,10360,10361,10363,10364,10365,10366,10367,10370,10371,10372,10373,10376,10377,10378,10379,10381,10382,10383,10384,10385,10387,10388,10389,10390,10391,10393,10394,10395,10396,10397,10399,10400,10401,10402,10403,10405,10406,10407,10408,10409,10411,10412,10413,10414,10415,10417,10418,10419,10420,10421,10422,10424,10425,10426,10427,10428,10429,10430,10431,10432,10433,10434,10436,10437,10439,10440,10441,10442,10443,10444,10445,10446,10448,10449,10451,10452,10454,10455,10456,10457,10458,10460,10461,10463,10464,10465,10466,10467,10468,10469,10470,10472,10473,10475,10476,10478,10479,10480,10481,10482,10484,10485,10487,10488,10489,10490,10491,10492,10494,10495,10496,10497,10498,10501,10502,10503,10504,10507,10508,10509,10510,10512,10513,10514,10515,10516,10518,10519,10520,10521,10522,10524,10525,10526,10527,10528,10530,10531,10532,10533,10534,10536,10537,10538,10539,10540,10542,10543,10544,10545,10546,10548,10549,10550,10551,10552,10554,10555,10556,10557,10558,10560,10561,10562,10563,10564,10565,10567,10568,10569,10570,10571,10572,10573,10574,10575,10576,10577,10579,10580,10582,10583,10584,10585,10586,10587,10588,10589,10591,10592,10594,10595,10597,10598,10599,10600,10601,10603,10604,10606,10607,10608,10609,10610,10611,10612,10613,10615,10616,10618,10619,10621,10622,10623,10624,10625,10627,10628,10630,10631,10633,10634,10635,10637,10639,10640,10642,10643,10645,10646,10647,10648,10649,10651,10652,10653,10655,10656,10657,10658,10659,10661,10662,10663,10664,10665,10667,10668,10669,10670,10671,10673,10674,10675,10676,10677,10679,10680,10681,10682,10683,10685,10686,10687,10688,10689,10691,10692,10693,10694,10695,10697,10698,10699,10700,10701,10703,10704,10705,10706,10707,10709,10710,10711,10712,10713,10715,10716,10717,10718,10719,10721,10722,10723,10724,10725,10727,10728,10729,10730,10731,10732,10734,10735,10736,10737,10738,10739,10740,10741,10742,10743,10744,10746,10747,10749,10750,10751,10752,10753,10754,10755,10756,10758,10759,10761,10762,10764,10765,10766,10768,10770,10771,10774,10775,10776,10777,10778,10780,10782,10783,10786,10788,10789,10790,10791,10792,10794,10795,10797,10798,10800,10801,10802,10803,10804,10806,10807,10809,10810,10812,10813,10814,10815,10816,10818,10819,10821,10822,10823,10824,10825,10826,10827,10828,10829,10830,10831,10832,10835,10836,10837,10838,10841,10842,10843,10844,10847,10848,10849,10850,10853,10854,10855,10856,10858,10859,10860,10861,10862,10864,10865,10866,10867,10868,10870,10871,10872,10873,10874,10876,10877,10878,10879,10880,10882,10883,10884,10885,10886,10888,10889,10890,10891,10892,10894,10895,10896,10897,10898,10900,10901,10902,10903,10904,10906,10907,10908,10909,10910,10912,10913,10914,10915,10916,10918,10919,10920,10921,10922,10923,10925,10926,10927,10928,10929,10930,10931,10932,10933,10934,10935,10937,10938,10940,10941,10942,10943,10944,10945,10946,10947,10949,10950,10952,10953,10955,10956,10957,10958,10959,10961,10962,10965,10966,10967,10968,10969,10970,10971,10973,10974,10977,10979,10980,10981,10982,10983,10985,10986,10988,10989,10991,10992,10993,10994,10995,10997,10998,11000,11001,11003,11004,11005,11006,11007,11009,11010,11012,11013,11014,11015,11016,11017,11018,11019,11021,11022,11024,11025,11027,11028,11029,11030,11031,11033,11034,11035,11037,11038,11039,11040,11041,11043,11044,11045,11046,11047,11049,11050,11051,11052,11053,11055,11056,11057,11058,11059,11061,11062,11063,11064,11065,11067,11068,11069,11070,11071,11073,11074,11075,11076,11077,11079,11080,11081,11082,11083,11085,11086,11087,11088,11089,11091,11092,11093,11094,11095,11097,11098,11099,11100,11101,11103,11104,11105,11106,11107,11109,11110,11111,11112,11113,11115,11116,11117,11118,11119,11121,11122,11123,11124,11125,11126,11127,11128,11129,11130,11131,11134,11135,11136,11137,11138,11140,11141,11142,11143,11144,11145,11146,11147,11148,11149,11150,11152,11153,11155,11156,11157,11158,11159,11160,11161,11162,11164,11165,11167,11168,11169,11170,11171,11172,11173,11174,11176,11177,11179,11180,11181,11182,11183,11184,11185,11186,11188,11189,11191,11192,11194,11195,11196,11197,11198,11200,11201,11203,11204,11206,11207,11208,11209,11210,11212,11213,11215,11216,11218,11219,11220,11221,11222,11224,11225,11227,11228,11229,11230,11231,11232,11233,11234,11236,11237,11239,11240,11242,11243,11244,11245,11246,11248,11249,11251,11252,11253,11254,11255,11256,11257,11258,11260,11261,11262,11264,11265,11266,11267,11268,11270,11271,11272,11273,11274,11276,11277,11278,11279,11280,11281,11282,11283,11284,11285,11286,11288,11289,11290,11291,11292,11294,11295,11296,11297,11298,11300,11301,11302,11303,11304,11305,11306,11307,11308,11309,11310,11312,11313,11314,11315,11316,11318,11319,11320,11321,11322,11324,11325,11326,11327,11328,11329,11330,11331,11332,11333,11334,11336,11337,11338,11339,11340,11342,11343,11344,11345,11346,11348,11349,11350,11351,11352,11353,11354,11355,11356,11357,11358,11360,11361,11362,11363,11364,11366,11367,11368,11369,11370,11371,11372,11373,11374,11375,11376,11377,11379,11380,11381,11383,11384,11385,11386,11387,11390,11391,11393,11394,11396,11397,11398,11399,11400,11402,11403,11405,11406,11408,11409,11411,11412,11414,11416,11417,11418,11420,11421,11423,11424,11426,11427,11429,11430,11432,11434,11435,11436,11438,11439,11440,11441,11442,11443,11444,11445,11447,11448,11450,11452,11453,11454,11455,11456,11457,11459,11460,11461,11462,11463,11465,11466,11468,11470,11471,11472,11475,11476,11477,11478,11479,11480,11481,11483,11484,11486,11488,11489,11490,11491,11493,11495,11496,11497,11498,11499,11501,11502,11504,11506,11507,11508,11510,11511,11512,11513,11514,11515,11516,11517,11519,11520,11522,11524,11525,11526,11527,11528,11529,11531,11532,11533,11534,11535,11537,11538,11540,11542,11543,11544,11546,11547,11549,11550,11551,11552,11553,11555,11556,11558,11560,11561,11562,11564,11565,11567,11569,11570,11571,11572,11573,11574,11575,11576,11577,11578,11579,11580,11581,11582,11583,11584,11585,11586,11587,11588,11589,11590,11591,11592,11593,11594,11596,11597,11600,11601,11602,11603,11604,11605,11606,11607,11608,11609,11611,11612,11613,11614,11615,11617,11618,11619,11620,11621,11622,11623,11624,11625,11626,11627,11628,11630,11632,11633,11634,11635,11636,11637,11638,11639,11640,11641,11644,11645,11646,11647,11648,11649,11650,11651,11652,11653,11656,11657,11658,11659,11661,11662,11663,11664,11665,11666,11667,11668,11669,11670,11671,11673,11674,11675,11676,11677,11678,11679,11680,11681,11682,11683,11685,11686,11687,11688,11689,11690,11691,11692,11693,11694,11695,11696,11697,11698,11699,11700,11701,11702,11703,11704,11705,11706,11707,11708,11709,11712,11713,11714,11715,11716,11717,11718,11719,11720,11721,11724,11725,11726,11727,11728,11729,11730,11731,11732,11733,11736,11737,11738,11739,11740,11741,11742,11743,11744,11745,11746,11747,11748,11749,11750,11751,11753,11754,11755,11756,11757,11758,11759,11760,11761,11762,11763,11764,11765,11766,11767,11768,11769,11771,11772,11773,11774,11775,11777,11778,11779,11780,11781,11782,11783,11784,11785,11786,11787,11789,11790,11791,11792,11793,11794,11796,11797,11798,11799,11800,11801,11804,11805,11806,11807,11808,11809,11810,11811,11812,11813,11816,11817,11818,11819,11821,11822,11823,11824,11825,11828,11829,11830,11831,11832,11833,11834,11835,11836,11837,11840,11841,11842,11843,11845,11846,11847,11848,11849,11850,11852,11853,11854,11855,11857,11858,11859,11860,11861,11862,11863,11864,11865,11866,11867,11868,11869,11870,11871,11872,11873,11875,11876,11877,11878,11879,11881,11882,11883,11884,11885,11886,11887,11888,11889,11890,11891,11893,11894,11895,11896,11897,11899,11900,11901,11902,11903,11904,11905,11906,11907,11908,11909,11910,11911,11912,11913,11914,11915,11916,11917,11920,11921,11922,11923,11924,11925,11926,11927,11928,11929,11932,11933,11934,11935,11936,11937,11938,11939,11940,11941,11944,11945,11946,11947,11948,11949,11950,11951,11952,11953,11956,11957,11958,11959,11960,11961,11962,11963,11964,11965,11968,11969,11970,11971,11972,11973,11974,11975,11976,11977,11978,11980,11981,11982,11983,11985,11986,11987,11988,11989,11990,11991,11992,11993,11994,11995,11997,11998,11999,12000,12001,12002,12003,12004,12005,12006,12007,12009,12010,12011,12012,12013,12014,12015,12016,12017,12018,12019,12021,12022,12023,12024,12025,12027,12028,12029,12030,12031,12033,12034,12035,12036,12037,12038,12039,12040,12041,12042,12043,12045,12046,12047,12048,12049,12050,12052,12053,12054,12055,12056,12057,12060,12061,12062,12063,12064,12065,12066,12067,12068,12069,12072,12073,12074,12075,12077,12078,12079,12080,12081,12084,12085,12086,12087,12088,12089,12090,12091,12092,12093,12096,12097,12098,12099,12101,12102,12103,12104,12105,12108,12109,12110,12111,12112,12113,12114,12115,12116,12117,12120,12121,12122,12123,12124,12125,12126,12127,12128,12129,12130,12132,12133,12134,12135,12137,12138,12139,12140,12141,12142,12143,12144,12145,12146,12147,12149,12150,12151,12152,12153,12155,12156,12157,12158,12159,12161,12162,12163,12164,12165,12167,12168,12169,12170,12171,12173,12174,12175,12176,12177,12179,12180,12181,12182,12183,12185,12186,12187,12188,12189,12191,12192,12193,12194,12195,12198,12199,12200,12201,12203,12204,12205,12206,12207,12208,12209,12210,12211,12212,12213,12214,12216,12217,12218,12219,12220,12221,12224,12225,12226,12227,12228,12229,12230,12231,12232,12233,12236,12237,12238,12239,12240,12241,12242,12243,12244,12245,12248,12249,12250,12251,12252,12253,12254,12255,12256,12257,12260,12261,12262,12263,12264,12265,12266,12267,12268,12269,12272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12284,12285,12286,12287,12288,12289,12290,12291,12292,12293,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,12306,12307,12308,12309,12310,12311,12312,12313,12314,12315,12316,12317,12318,12319,12320,12321,12322,12323,12324,12325,12326,12327,12328,12329,12331,12332,12333,12334,12335,12337,12338,12339,12340,12341,12342,12343,12344,12345,12346,12347,12349,12350,12351,12352,12353,12356,12357,12358,12359,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12373,12374,12375,12376,12377,12379,12380,12381,12382,12383,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12397,12398,12399,12400,12401,12402,12404,12405,12406,12407,12408,12409,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12436,12437,12438,12439,12440,12441,12442,12443,12444,12445,12448,12449,12450,12451,12452,12453,12454,12455,12456,12457,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,12535,12537,12538,12539,12540,12541,12543,12544,12545,12546,12547,12549,12550,12551,12552,12553,12554,12556,12557,12558,12559,12561,12562,12563,12564,12565,12567,12568,12569,12570,12571,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12586,12587,12588,12589,12590,12591,12592,12593,12594,12595,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12616,12617,12618,12620,12621,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12684,12685,12686,12687,12688,12689,12690,12691,12692,12693,12696,12697,12698,12699,12700,12701,12702,12703,12704,12705,12708,12709,12710,12711,12712,12713,12714,12715,12716,12717,12718,12719,12720,12721,12722,12723,12725,12726,12727,12728,12729,12730,12731,12732,12733,12734,12735,12736,12737,12738,12739,12740,12741,12743,12744,12745,12746,12747,12748,12749,12750,12751,12752,12753,12755,12756,12757,12758,12759,12760,12761,12762,12763,12764,12765,12767,12768,12769,12770,12771,12772,12773,12774,12775,12776,12777,12780,12781,12782,12783,12784,12785,12786,12787,12788,12789,12791,12792,12793,12794,12795,12796,12797,12798,12799,12800,12801,12803,12804,12805,12806,12807,12808,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,12824,12825,12827,12828,12829,12830,12831,12832,12834,12835,12836,12837,12838,12839,12840,12841,12842,12843,12845,12846,12847,12848,12849,12850,12852,12853,12854,12855,12856,12857,12859,12860,12861,12862,12863,12864,12866,12867,12868,12869,12870,12871,12872,12874,12875,12876,12877,12878,12879,12880,12882,12883,12884,12885,12886,12888,12889,12890,12891,12892,12893,12894,12895,12896,12897,12898,12899,12901,12902,12903,12904,12905,12906,12907,12909,12910,12911,12912,12913,12914,12916,12917,12918,12919,12920,12921,12922,12923,12924,12925,12926,12927,12928,12929,12931,12932,12933,12934,12935,12936,12937,12939,12940,12941,12942,12943,12944,12946,12947,12948,12949,12950,12951,12952,12954,12955,12956,12957,12958,12959,12961,12962,12963,12964,12965,12966,12967,12969,12970,12971,12972,12973,12974,12976,12977,12978,12979,12980,12981,12982,12983,12984,12985,12986,12987,12988,12989,12991,12992,12993,12994,12995,12996,12997,12999,13000,13001,13002,13003,13004,13005,13006,13007,13009,13010,13012,13013,13014,13015,13016,13017,13018,13019,13020,13021,13024,13025,13026,13027,13028,13030,13031,13032,13033,13034,13036,13037,13038,13039,13040,13042,13043,13044,13045,13046,13048,13049,13050,13051,13052,13054,13055,13056,13057,13058,13060,13061,13062,13063,13064,13065,13066,13067,13068,13069,13070,13072,13073,13074,13075,13076,13078,13079,13080,13081,13082,13084,13085,13086,13087,13088,13089,13090,13091,13092,13093,13094,13096,13097,13098,13099,13100,13102,13103,13104,13105,13106,13108,13109,13110,13111,13112,13113,13114,13115,13116,13117,13118,13119,13120,13121,13122,13123,13124,13126,13127,13128,13129,13130,13131,13132,13134,13135,13136,13139,13141,13142,13144,13145,13146,13147,13148,13150,13151,13152,13153,13154,13155,13156,13159,13160,13161,13162,13165,13166,13167,13168,13170,13171,13172,13173,13174,13175,13177,13178,13179,13180,13181,13182,13183,13184,13185,13186,13187,13188,13190,13191,13192,13193,13194,13197,13199,13200,13201,13202,13205,13207,13208,13211,13212,13213,13214,13217,13218,13219,13220,13221,13224,13225,13226,13227,13229,13230,13231,13232,13233,13234,13236,13237,13238,13239,13240,13241,13242,13243,13244,13245,13246,13247,13249,13250,13251,13252,13253,13254,13255,13256,13257,13258,13259,13260,13262,13263,13264,13265,13266,13268,13269,13270,13271,13272,13273,13274,13276,13277,13278,13279,13280,13283,13284,13285,13286,13288,13289,13290,13291,13292,13293,13296,13297,13298,13299,13301,13302,13303,13304,13305,13306,13309,13310,13311,13312,13315,13316,13317,13318,13319,13321,13322,13323,13324,13325,13326,13327,13328,13329,13330,13331,13332,13333,13334,13335,13336,13337,13338,13339,13340,13341,13342,13343,13344,13345,13346,13347,13348,13349,13350,13351,13353,13354,13355,13356,13357,13358,13359,13360,13361,13362,13363,13364,13366,13367,13368,13370,13371,13372,13375,13377,13378,13381,13382,13383,13384,13387,13388,13389,13390,13391,13394,13395,13396,13397,13400,13401,13402,13403,13404,13407,13408,13409,13410,13413,13414,13415,13416,13417,13420,13421,13422,13423,13426,13427,13428,13429,13430,13433,13434,13435,13436,13437,13439,13440,13441,13442,13443,13446,13447,13448,13449,13450,13451,13452,13453,13454,13455,13456,13458,13459,13460,13461,13462,13463,13464,13465,13466,13467,13468,13469,13471,13472,13473,13474,13475,13476,13477,13478,13479,13480,13481,13482,13484,13485,13486,13487,13488,13490,13491,13492,13493,13494,13495,13496,13498,13499,13500,13501,13502,13505,13506,13507,13508,13510,13511,13512,13513,13514,13515,13518,13519,13520,13521,13524,13525,13526,13527,13528,13531,13532,13533,13534,13536,13537,13538,13539,13540,13541,13544,13545,13546,13547,13549,13550,13551,13552,13553,13554,13557,13558,13559,13560,13562,13563,13564,13565,13566,13567,13570,13571,13572,13573,13574,13576,13577,13578,13579,13580,13581,13583,13584,13585,13586,13587,13588,13589,13590,13591,13592,13593,13595,13596,13597,13598,13599,13600,13601,13602,13603,13604,13605,13606,13607,13608,13609,13610,13611,13612,13613,13614,13615,13616,13617,13618,13619,13621,13622,13623,13624,13625,13626,13627,13628,13629,13630,13631,13632,13633,13634,13635,13636,13637,13638,13640,13641,13642,13644,13645,13646,13649,13651,13652,13655,13656,13657,13658,13661,13662,13663,13664,13665,13668,13669,13670,13671,13674,13675,13676,13677,13678,13681,13682,13683,13684,13687,13688,13689,13690,13691,13694,13695,13696,13697,13699,13700,13701,13702,13703,13704,13707,13708,13709,13710,13713,13714,13715,13716,13717,13720,13721,13722,13723,13725,13726,13727,13728,13729,13730,13733,13734,13735,13736,13737,13739,13740,13741,13742,13743,13746,13747,13748,13749,13750,13751,13752,13753,13754,13755,13756,13758,13759,13760,13761,13762,13763,13764,13765,13766,13767,13768,13769,13771,13772,13773,13774,13775,13776,13777,13778,13779,13780,13781,13782,13784,13785,13786,13787,13788,13789,13790,13791,13792,13793,13794,13795,13797,13798,13799,13800,13801,13803,13804,13805,13806,13807,13808,13810,13811,13812,13813,13814,13816,13817,13818,13819,13820,13821,13822,13825,13826,13827,13828,13831,13832,13833,13834,13836,13837,13838,13839,13840,13841,13844,13845,13846,13847,13850,13851,13852,13853,13854,13857,13858,13859,13860,13862,13863,13864,13865,13866,13867,13870,13871,13872,13873,13875,13876,13877,13878,13879,13880,13883,13884,13885,13886,13888,13889,13890,13891,13892,13893,13894,13895,13896,13897,13898,13899,13900,13901,13902,13903,13904,13905,13906,13909,13910,13911,13912,13914,13915,13916,13917,13918,13919,13921,13922,13923,13924,13925,13926,13927,13928,13929,13930,13931,13932,13933,13935,13936,13937,13938,13939,13941,13942,13943,13944,13945,13948,13949,13950,13951,13952,13954,13955,13956,13957,13958,13959,13960,13961,13962,13963,13964,13965,13967,13968,13969,13970,13971,13973,13974,13975,13976,13977,13978,13979,13980,13981,13982,13983,13984,13985,13986,13987,13988,13989,13990,13991,13992,13993,13994,13995,13996,13997,13999,14000,14001,14002,14003,14004,14005,14006,14007,14008,14009,14010,14012,14013,14014,14015,14016,14018,14019,14020,14021,14022,14023,14024,14027,14029,14030,14033,14034,14035,14036,14039,14040,14041,14042,14043,14046,14047,14048,14049,14052,14053,14054,14055,14056,14059,14060,14061,14062,14065,14066,14067,14068,14069,14072,14073,14074,14075,14077,14078,14079,14080,14081,14082,14085,14086,14087,14088,14090,14091,14092,14093,14094,14095,14096,14097,14098,14099,14100,14101,14102,14103,14104,14105,14106,14107,14108,14111,14112,14113,14114,14115,14116,14117,14118,14119,14120,14121,14124,14125,14126,14127,14128,14129,14130,14131,14132,14133,14134,14136,14137,14138,14139,14140,14141,14142,14143,14144,14145,14146,14147,14149,14150,14151,14152,14153,14154,14155,14156,14157,14158,14159,14160,14162,14163,14164,14165,14166,14167,14168,14169,14170,14171,14172,14173,14175,14176,14177,14178,14179,14180,14181,14182,14183,14184,14185,14186,14188,14189,14190,14191,14192,14194,14195,14196,14197,14198,14199,14201,14202,14203,14204,14205,14206,14207,14208,14209,14210,14211,14212,14213,14214,14215,14216,14217,14218,14220,14221,14222,14223,14224,14225,14227,14228,14229,14230,14231,14232,14233,14234,14235,14236,14237,14238,14240,14241,14242,14243,14244,14247,14248,14249,14250,14251,14252,14255,14257,14258,14261,14262,14263,14264,14266,14267,14268,14269,14270,14271,14274,14275,14276,14277,14279,14280,14281,14282,14283,14284,14287,14288,14289,14290,14292,14293,14294,14295,14296,14297,14300,14301,14302,14303,14305,14306,14307,14308,14309,14310,14313,14314,14315,14316,14318,14319,14320,14321,14322,14323,14326,14327,14328,14329,14331,14332,14333,14334,14335,14336,14339,14340,14341,14342,14343,14344,14345,14346,14347,14348,14349,14352,14353,14354,14355,14356,14357,14358,14359,14360,14361,14362,14365,14366,14367,14368,14371,14372,14373,14374,14375,14377,14378,14379,14380,14381,14382,14383,14384,14385,14386,14387,14388,14389,14390,14391,14392,14393,14394,14395,14396,14397,14398,14399,14400,14401,14402,14403,14404,14405,14406,14407,14409,14410,14411,14412,14413,14414,14415,14416,14417,14418,14419,14420,14422,14423,14424,14425,14426,14427,14429,14430,14431,14432,14433,14434,14435,14436,14437,14438,14439,14440,14441,14442,14443,14444,14445,14446,14448,14449,14450,14451,14452,14453,14455,14456,14457,14458,14459,14461,14462,14463,14464,14465,14466,14467,14468,14469,14470,14471,14472,14474,14475,14476,14477,14478,14479,14481,14482,14483,14484,14485,14486,14487,14488,14489,14490,14491,14492,14494,14495,14496,14497,14498,14501,14502,14503,14504,14505,14506,14508,14509,14510,14511,14512,14514,14515,14516,14517,14518,14520,14521,14522,14523,14524,14525,14527,14528,14529,14530,14531,14532,14533,14534,14535,14536,14537,14538,14540,14541,14542,14543,14544,14546,14547,14548,14549,14550,14551,14553,14554,14555,14556,14557,14558,14559,14560,14561,14562,14563,14564,14566,14567,14568,14569,14570,14572,14573,14574,14575,14576,14577,14579,14580,14581,14582,14583,14585,14586,14587,14588,14589,14590,14592,14593,14594,14595,14596,14598,14599,14600,14601,14602,14603,14605,14606,14607,14608,14609,14611,14612,14613,14614,14615,14616,14618,14619,14620,14621,14622,14624,14625,14626,14627,14628,14629,14631,14632,14633,14634,14635,14637,14638,14639,14640,14641,14642,14644,14645,14647,14648,14650,14651,14652,14653,14654,14655,14657,14658,14659,14660,14661,14663,14664,14665,14666,14667,14668,14669,14670,14671,14672,14673,14674,14676,14677,14678,14679,14680,14681,14683,14684,14685,14686,14687,14689,14690,14691,14692,14693,14694,14696,14697,14698,14699,14700,14702,14703,14704,14705,14706,14707,14709,14710,14711,14712,14713,14715,14716,14717,14718,14719,14720,14721,14722,14723,14724,14725,14726,14728,14729,14730,14731,14732,14733,14735,14736,14737,14738,14739,14741,14742,14743,14744,14745,14746,14747,14748,14749,14750,14751,14752,14754,14755,14756,14757,14758,14759,14761,14762,14763,14764,14765,14767,14768,14769,14770,14771,14772,14773,14774,14775,14776,14777,14778,14779,14780,14781,14782,14783,14784,14785,14788,14791,14792,14793,14795,14797,14798,14800,14801,14802,14804,14805,14807,14808,14809,14811,14812,14814,14815,14816,14818,14819,14821,14822,14823,14825,14826,14828,14829,14830,14832,14833,14834,14835,14836,14837,14839,14840,14842,14843,14844,14845,14846,14847,14849,14850,14851,14853,14854,14856,14857,14858,14861,14862,14863,14864,14865,14867,14868,14870,14871,14872,14873,14875,14877,14878,14879,14881,14882,14884,14885,14886,14889,14890,14891,14892,14893,14895,14896,14898,14899,14900,14901,14902,14903,14905,14906,14907,14909,14910,14912,14913,14914,14916,14917,14919,14920,14921,14923,14924,14926,14927,14928,14930,14931,14933,14934,14935,14936,14937,14938,14939,14940,14941,14942,14943,14944,14946,14947,14958,14959,14960,14961,14962,14963,14964,14965,14966,14967,14968,14969,14970,14971,14972,14973,14974,14975,14976,14977,14978,14979,14980,14981,14982,14983,14984,14985,14986,14987,14988,14989,14990,14991,14992,14993,14994,14995,14996,14997,14998,14999,15000,15001,15022,15023,15024,15025,15026,15027,15028,15029,15030,15031,15032,15033,15034,15035,15036,15037,15038,15039,15040,15041,15042,15043,15044,15045,15046,15047,15048,15049,15050,15051,15052,15053,15054,15055,15056,15057,15058,15059,15060,15061,15062,15063,15064,15065,15075,15077,15078,15187,15197,15208,15227,15256,15257,15258,15259,15260,15261,15262,15263,15264,15265,15266,15267,15268,15269,15270,15271,15272,15273,15274,15275,15276,15277,15278,15279,15280,15281,15282,15283,15284,15285,15286,15287,15288,15289,15290,15291,15292,15293,15294,15295,15296,15297,15298,15299,15310,15312,15313,15315,15316,15317,15318,15319,15320,15486,15496,15508,15528,15556,15573,15606,15607,15608,15609,15610,15611,15613,15661,15663,15667,15669,15670,15673,15674,15675,15676,15678,15679,15680,15681,15682,15683,15899,15909,15910,15922,15943,15970,15988,16012,16027,16057,16058,16059,16060,16061,16062,16064,16069,16070,16071,16072,16073,16074,16076,16128,16130,16137,16139,16140,16145,16146,16147,16151,16153,16154,16157,16158,16159,16160,16162,16163,16164,16165,16166,16167,16426,16436,16437,16450,16472,16498,16517,16540,16556,16577,16590,16617,16618,16619,16620,16621,16622,16623,16624,16629,16630,16631,16632,16633,16634,16636,16648,16649,16650,16651,16652,16653,16655,16711,16713,16723,16725,16726,16733,16734,16735,16742,16744,16745,16750,16751,16752,16756,16758,16759,16762,16763,16764,16765,16767,16768,16769,16770,16771,16772,17067,17077,17092,17115,17140,17160,17182,17199,17219,17233,17251,17262,17286,17287,17288,17289,17290,17291,17293,17298,17299,17300,17301,17302,17303,17305,17317,17318,17319,17320,17321,17322,17324,17343,17344,17345,17346,17347,17348,17350,17410,17412,17425,17427,17428,17437,17438,17439,17449,17451,17452,17459,17460,17461,17468,17470,17471,17476,17477,17478,17482,17484,17485,17488,17489,17490,17491,17493,17494,17495,17496,17497,17498,17822,17832,17833,17848,17872,17896,17917,17938,17956,17975,17990,18007,18019,18034,18043,18064,18065,18066,18067,18068,18069,18071,18076,18077,18078,18079,18080,18081,18083,18095,18096,18097,18098,18099,18100,18102,18121,18122,18123,18124,18125,18126,18128,18154,18155,18156,18157,18158,18159,18161,18225,18227,18243,18245,18246,18257,18258,18259,18272,18274,18275,18284,18285,18286,18296,18298,18299,18306,18307,18308,18315,18317,18318,18323,18324,18325,18329,18331,18332,18335,18336,18337,18338,18340,18341,18342,18343,18344,18345,18691,18701,18718,18743,18766,18788,18808,18827,18845,18861,18877,18890,18904,18914,18926,18933,18951,18952,18953,18954,18955,18956,18958,18963,18964,18965,18966,18967,18968,18970,18982,18983,18984,18985,18986,18987,18989,19008,19009,19010,19011,19012,19013,19015,19041,19042,19043,19044,19045,19046,19048,19081,19082,19083,19084,19085,19086,19088,19156,19158,19177,19179,19180,19193,19194,19195,19211,19213,19214,19225,19226,19227,19240,19242,19243,19252,19253,19254,19264,19266,19267,19274,19275,19276,19283,19285,19286,19291,19292,19293,19297,19299,19300,19303,19304,19305,19306,19308,19309,19310,19311,19312,19313,19674,19684,19685,19702,19728,19750,19773,19792,19812,19829,19846,19861,19875,19888,19899,19910,19918,19927,19932,19947,19948,19949,19950,19951,19952,19953,19954,19959,19960,19961,19962,19963,19964,19966,19978,19979,19980,19981,19982,19983,19985,20004,20005,20006,20007,20008,20009,20011,20037,20038,20039,20040,20041,20042,20044,20077,20078,20079,20080,20081,20082,20084,20124,20125,20126,20127,20128,20129,20131,20203,20205,20227,20229,20230,20245,20246,20247,20266,20268,20269,20282,20283,20284,20300,20302,20303,20314,20315,20316,20329,20331,20332,20341,20342,20343,20353,20355,20356,20363,20364,20365,20372,20374,20375,20380,20381,20382,20386,20388,20389,20392,20393,20394,20395,20397,20398,20399,20400,20401,20402,20771,20781,20782,20800,20827,20848,20872,20890,20911,20927,20945,20959,20974,20986,20998,21008,21017,21025,21031,21037,21040,21053,21054,21055,21056,21057,21058,21059,21060,21065,21066,21067,21068,21069,21070,21072,21084,21085,21086,21087,21088,21089,21091,21110,21111,21112,21113,21114,21115,21117,21143,21144,21145,21146,21147,21148,21150,21183,21184,21185,21186,21187,21188,21190,21230,21231,21232,21233,21234,21235,21237,21284,21285,21286,21287,21288,21289,21291,21366,21368,21394,21396,21397,21414,21416,21438,21440,21441,21456,21457,21458,21477,21479,21480,21493,21494,21495,21511,21513,21514,21525,21526,21527,21540,21542,21543,21552,21553,21554,21564,21566,21567,21574,21575,21576,21583,21585,21586,21591,21592,21593,21597,21599,21600,21603,21604,21605,21606,21608,21609,21610,21612,21613,21614,21615,21616,21617,21618,21619,21620,21621,21630,21631,21632,21633,21649,21650,21651,21652,21675,21676,21677,21678,21708,21709,21710,21711,21748,21749,21750,21751,21795,21796,21797,21798,21849,21850,21851,21852,21910,21911,21912,21913,21978,21979,21980,21981,21982,21992,22012,22040,22060,22085,22102,22124,22139,22158,22171,22187,22198,22211,22220,22230,22237,22244,22249,22253,22257,22258,22267,22268,22269,22271,22272,22274,22279,22280,22281,22282,22283,22284,22285,22286,22298,22299,22300,22301,22302,22303,22304,22305,22324,22325,22326,22327,22328,22329,22330,22331,22357,22358,22359,22360,22361,22362,22363,22364,22397,22398,22399,22400,22401,22402,22403,22404,22444,22445,22446,22447,22448,22449,22450,22451,22498,22499,22500,22501,22502,22503,22504,22505,22558,22559,22560,22562,22563,22564,22565,22645,22646,22647,22668,22669,22689,22690,22708,22709,22726,22727,22743,22744,22759,22760,22773,22774,22787,22788,22799,22800,22811,22812,22822,22823,22832,22833,22841,22842,22849,22850,22855,22856,22861,22862,22865,22866,22869,22870,22875,22876,22877,22878,22879,22880,22881,22882,22891,22892,22893,22894,22909,22910,22911,22912,22933,22934,22935,22936,22964,22965,22966,22967,23001,23002,23003,23004,23044,23045,23046,23047,23092,23093,23094,23095,23148,23149,23150,23151,23209,23210,23229,23230,23231,23232,23260,23261,23262,23263,23274,23275,23276,23277,23628,23629,23630,23631,23632,23633,23634,23635,23636,23637,23638,23639,23640,23641,23642,23643,23644,23645,23646,23647,23648,23649,23650,23651,23652,23653,23654,23655,23664,23665,23666,23667,23668,23669,23670,23671,23672,23673,23674,23675,23693,23694,23695,23696,23697,23698,23699,23700,23701,23702,23703,23704,23730,23731,23732,23733,23734,23735,23736,23737,23738,23739,23740,23741,23775,23776,23777,23778,23779,23780,23781,23782,23783,23784,23785,23786,23827,23828,23829,23830,23831,23832,23833,23834,23835,23836,23837,23838,23888,23889,23890,23891,23892,23893,23894,23895,23896,23897,23898,23899,23956,23957,23958,23959,23960,23961,23962,23963,23964,23965,23966,23967,24034,24035,24036,24037,24038,24066,24067,24068,24069,24070,24071,24118,24130,24138,24147,24151,24152,24181,24182,24184,24200,24208,24209,24211,24215,24216,24219,24220,24221,24260,24261,24265,24267,24290,24298,24299,24301,24303,24304,24307,24308,24311,24312,24313,24365,24366,24372,24374,24376,24405,24413,24414,24416,24418,24419,24420,24421,24424,24425,24428,24429,24430,24493,24494,24502,24504,24506,24508,24542,24550,24551,24553,24555,24556,24557,24558,24559,24560,24567,24568,24569,24641,24642,24652,24654,24656,24658,24660,24698,24706,24707,24709,24711,24712,24713,24714,24715,24716,24717,24718,24725,24726,24727,24806,24807,24819,24821,24823,24825,24827,24829,24870,24878,24879,24881,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24899,24900,24901,24985,24986,25000,25002,25004,25006,25008,25010,25012,25055,25064,25066,25068,25069,25070,25071,25072,25073,25074,25075,25076,25077,25078,25079,25086,25087,25088,25175,25176,25192,25194,25196,25198,25200,25202,25204,25206,25250,25258,25259,25261,25263,25264,25265,25266,25267,25268,25269,25270,25271,25272,25273,25274,25275,25276,25279,25280,25283,25284,25285,25373,25374,25392,25394,25396,25398,25400,25402,25404,25406,25408,25458,25459,25461,25463,25464,25465,25466,25467,25468,25469,25470,25471,25472,25473,25474,25475,25476,25478,25479,25480,25483,25484,25600,25601,25609,25616,25617,25625,25632,25633,25641,25648,25649,25657,25664,25665,25672,25679,25680,25687,25694,25695,25703,25709,25710,25711,25719,25720,25776,25777,25778,25779,25796,25797,25799,25800,25862,25863,25864,25873,25874,25883,25884,25893,25894,25903,25904,25913,25914,25923,25924,25925,25933,25934,25943,25944,25945,25955,25956,25964,25965,25966,25976,25977,25986,25987,25988,25998,25999,26008,26009,26010,26019,26020,26021,26022,26023,26024,26042,26043,26044,26045,26046,26063,26064,26090,26091,26092,26093,26094,26095,26096,26216,26217,26218,26219,26222,26223,26224,26225,26226,26285,26286,26328,26342,26343,26344,26345,26348,26349,26350,26351,26352,26392,26413,26414,26456,26458,26472,26473,26474,26475,26478,26479,26480,26481,26482,26483,26484,26485,26486,26487,26488,26489,26490,26495,26496,26497,26498,26507,26508,26509,26510,26522,26524,26545,26546,26588,26590,26592,26593,26606,26607,26608,26609,26612,26613,26614,26615,26616,26617,26618,26619,26620,26621,26622,26623,26624,26629,26630,26631,26632,26641,26642,26643,26644,26656,26658,26660,26681,26682,26724,26726,26728,26729,26730,26731,26744,26745,26746,26747,26750,26751,26752,26753,26754,26755,26756,26757,26758,26759,26760,26761,26762,26767,26768,26769,26770,26779,26780,26781,26782,26794,26796,26798,26800,26821,26822,26864,26866,26868,26869,26870,26871,26872,26873,26886,26887,26888,26889,26892,26893,26894,26895,26896,26897,26898,26899,26900,26901,26902,26903,26904,26909,26910,26911,26912,26921,26922,26923,26924,26936,26938,26940,26942,26944,26965,26966,27008,27010,27012,27013,27014,27015,27016,27017,27018,27019,27032,27033,27034,27035,27038,27039,27040,27041,27042,27043,27044,27045,27046,27047,27048,27049,27050,27055,27056,27057,27058,27067,27068,27069,27070,27082,27084,27086,27088,27090,27092,27113,27114,27156,27158,27160,27161,27162,27163,27164,27165,27166,27167,27168,27169,27182,27183,27184,27185,27188,27189,27190,27191,27192,27193,27194,27195,27196,27197,27198,27199,27200,27205,27206,27207,27208,27217,27218,27219,27220,27232,27234,27236,27238,27240,27242,27244,27265,27266,27308,27310,27312,27313,27314,27315,27316,27317,27318,27319,27320,27321,27322,27323,27336,27337,27338,27339,27342,27343,27344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27359,27360,27361,27362,27371,27373,27374,27386,27388,27390,27392,27394,27396,27398,27400,27421,27422,27464,27466,27468,27469,27470,27471,27472,27473,27474,27475,27476,27477,27478,27479,27480,27481,27494,27495,27496,27497,27500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,27512,27517,27518,27519,27520,27529,27531,27532,27544,27546,27548,27550,27552,27554,27556,27558,27560,27581,27582,27629,27631,27633,27635,27637,27639,27641,27643,27656,27657,27658,27659,27664,27665,27666,27667,27668,27669,27670,27671,27672,27673,27674,27679,27680,27681,27682,27691,27692,27693,27694,27705,27724,27725,27765,27778,27779,27780,27781,27786,27787,27788,27789,27790,27791,27792,27793,27794,27795,27796,27801,27802,27803,27804,27813,27814,27815,27816,27829,27832,27835,27837,27840,27845,27847,27849,27850,27852,27854,27856,27859,27861,27863,27865,27866,27868,27870,27872,27874,27877,27879,27881,27882,27883,27884,27885,27886,27888,27890,27892,27894,27896,27899,27901,27903,27904,27905,27906,27907,27908,27909,27910,27912,27914,27916,27918,27920,27922,27925,27927,27929,27930,27931,27932,27933,27934,27935,27936,27937,27938,27940,27942,27944,27946,27948,27950,27952,27955,27957,27959,27960,27961,27962,27963,27964,27965,27966,27967,27968,27969,27970,27972,27974,27976,27978,27980,27982,27984,27986,27989,27991,27993,27994,27995,27996,27997,27998,27999,28000,28001,28002,28004,28005,28006,28008,28010,28012,28014,28016,28018,28020,28022,28024,28033,28035,28037,28039,28041,28043,28045,28047,28083,28105,28110,28116,28122,28127,28132,28137,28142,28150,28151,28152,28153,28154,28162,28163,28164,28165,28166,28170,28171,28172,28176,28178,28179,28180,28181,28182,28188,28189,28190,28194,28196,28198,28199,28200,28201,28202,28205,28210,28211,28212,28216,28218,28220,28222,28223,28224,28225,28229,28231,28236,28237,28238,28242,28244,28246,28248,28249,28250,28251,28252,28253,28257,28259,28261,28263,28266,28267,28268,28272,28274,28276,28278,28279,28280,28281,28282,28283,28284,28285,28289,28291,28293,28295,28297,28300,28301,28302,28306,28308,28310,28311,28312,28313,28314,28315,28316,28317,28318,28319,28320,28321,28322,28325,28327,28329,28331,28333,28335,28338,28339,28340,28344,28346,28348,28349,28350,28351,28352,28353,28354,28355,28356,28357,28358,28359,28360,28361,28365,28367,28369,28371,28373,28375,28377,28380,28381,28382,28386,28388,28390,28391,28392,28393,28394,28395,28396,28397,28398,28399,28400,28401,28403,28404,28405,28409,28411,28413,28415,28417,28419,28421,28423,28426,28427,28428,28432,28434,28436,28437,28438,28439,28440,28441,28442,28443,28445,28447,28448,28449,28451,28452,28453,28457,28459,28461,28463,28465,28467,28469,28471,28473,28476,28477,28478,28487,28489,28491,28493,28495,28497,28499,28501,28505,28507,28508,28509,28515,28516,28521,28526,28527,28534,28539,28541,28542,28551,28556,28558,28560,28566,28571,28576,28578,28580,28582,28588,28590,28595,28600,28602,28604,28606,28607,28608,28614,28616,28618,28623,28628,28630,28632,28634,28635,28636,28637,28638,28639,28645,28647,28649,28651,28653,28656,28661,28663,28665,28667,28668,28669,28670,28671,28672,28673,28674,28680,28682,28684,28686,28688,28690,28693,28698,28700,28702,28703,28704,28705,28706,28707,28708,28709,28710,28711,28712,28718,28720,28722,28724,28726,28728,28730,28733,28738,28740,28742,28743,28744,28745,28746,28747,28748,28749,28750,28751,28752,28753,28754,28755,28761,28763,28765,28767,28769,28771,28773,28775,28778,28783,28785,28787,28788,28789,28790,28791,28792,28794,28796,28798,28800,28801,28802,28808,28810,28812,28814,28816,28818,28820,28822,28824,28836,28838,28840,28842,28844,28846,28848,28850,28851,28872,28877,28878,28879,28880,28883,28884,28885,28889,28890,28891,28892,28897,28898,28899,28903,28905,28906,28907,28908,28915,28916,28917,28918,28921,28923,28925,28926,28927,28928,28932,28937,28938,28939,28940,28943,28945,28947,28949,28950,28951,28952,28956,28958,28963,28964,28965,28966,28969,28971,28973,28975,28976,28984,28986,28993,28994,28995,28996,28999,29001,29003,29005,29006,29007,29008,29012,29016,29018,29020,29022,29027,29028,29029,29033,29035,29037,29039,29041,29042,29043,29044,29045,29046,29047,29048,29052,29054,29056,29058,29060,29062,29065,29066,29067,29068,29071,29073,29075,29077,29078,29079,29080,29081,29082,29083,29084,29088,29092,29094,29096,29098,29100,29102,29104,29107,29108,29109,29110,29113,29115,29117,29118,29119,29120,29121,29122,29123,29124,29125,29126,29127,29128,29132,29136,29138,29140,29142,29144,29146,29148,29150,29153,29154,29155,29156,29159,29161,29163,29164,29165,29166,29168,29170,29172,29174,29175,29176,29184,29186,29188,29190,29192,29194,29196,29198,29200,29203,29204,29205,29206,29214,29216,29218,29220,29222,29224,29226,29228,29229,29230,29231,29235,29239,29240,29241,29242,29246,29247,29248,29249,29250,29251,29252,29253,29254,29255,29256,29257,29258,29259,29260,29261,29262,29263,29264,29265,29266,29267,29268,29269,29270,29275,29276,29277,29278,29279,29280,29281,29282,29283,29284,29285,29286,29287,29288,29289,29290,29291,29292,29293,29294,29295,29296,29297,29298,29303,29304,29305,29306,29307,29308,29309,29310,29311,29312,29313,29314,29315,29316,29317,29318,29319,29320,29321,29322,29323,29324,29325,29326,29333,29334,29335,29336,29337,29338,29342,29343,29344,29345,29346,29347,29348,29349,29350,29351,29352,29353,29354,29355,29356,29361,29363,29364,29365,29366,29367,29368,29372,29373,29374,29375,29376,29377,29378,29379,29380,29381,29382,29383,29384,29385,29386,29392,29395,29396,29397,29398,29399,29400,29404,29405,29406,29407,29408,29409,29410,29411,29412,29413,29414,29415,29416,29417,29418,29419,29420,29421,29422,29423,29425,29427,29428,29429,29430,29431,29432,29436,29437,29438,29439,29440,29441,29442,29443,29444,29445,29446,29447,29448,29449,29450,29456,29461,29462,29463,29464,29465,29466,29470,29471,29472,29473,29474,29475,29476,29477,29478,29479,29480,29481,29482,29483,29484,29485,29486,29487,29488,29489,29491,29493,29494,29495,29496,29497,29498,29499,29500,29504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,29516,29517,29518,29519,29525,29527,29532,29533,29534,29535,29536,29537,29541,29542,29543,29544,29545,29546,29547,29548,29549,29550,29551,29552,29553,29554,29555,29556,29557,29558,29559,29560,29562,29564,29566,29567,29568,29569,29570,29571,29572,29573,29577,29578,29579,29580,29581,29582,29583,29584,29585,29586,29587,29588,29589,29590,29591,29597,29599,29601,29606,29607,29608,29609,29610,29611,29615,29616,29617,29618,29619,29620,29621,29622,29623,29624,29625,29626,29627,29628,29629,29630,29631,29632,29633,29634,29636,29638,29640,29641,29642,29643,29644,29645,29646,29647,29648,29649,29653,29654,29655,29656,29657,29658,29659,29660,29661,29662,29663,29664,29665,29666,29667,29668,29674,29676,29678,29680,29685,29686,29687,29688,29689,29690,29694,29695,29696,29697,29698,29699,29700,29701,29702,29703,29704,29705,29706,29707,29708,29709,29710,29711,29712,29713,29715,29717,29719,29720,29721,29722,29723,29724,29725,29726,29727,29728,29729,29730,29734,29735,29736,29737,29738,29739,29740,29741,29742,29743,29744,29745,29746,29747,29748,29754,29756,29758,29760,29762,29767,29768,29769,29770,29771,29772,29776,29777,29778,29779,29780,29781,29782,29783,29784,29785,29786,29787,29788,29789,29790,29791,29792,29793,29794,29795,29797,29799,29801,29802,29803,29804,29805,29806,29807,29808,29809,29810,29811,29812,29813,29814,29818,29819,29820,29821,29822,29823,29824,29825,29826,29827,29828,29829,29830,29831,29832,29838,29840,29842,29844,29846,29848,29850,29853,29854,29855,29856,29857,29858,29862,29863,29864,29865,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,29876,29877,29878,29879,29880,29881,29883,29885,29887,29888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,29900,29901,29902,29906,29907,29908,29909,29910,29911,29912,29913,29914,29915,29916,29917,29918,29919,29920,29926,29928,29930,29932,29934,29936,29938,29940,29943,29944,29945,29946,29947,29948,29952,29953,29954,29955,29956,29957,29958,29959,29960,29961,29962,29963,29964,29965,29966,29967,29968,29969,29970,29971,29973,29975,29976,29978,29980,29982,29984,29986,29987,29988,29989,29990,29991,29992,29993,29994,29998,29999,30000,30001,30002,30003,30004,30005,30006,30007,30008,30009,30010,30011,30012,30018,30020,30022,30024,30026,30028,30030,30032,30034,30037,30038,30039,30040,30041,30042,30043,30044,30045,30046,30047,30048,30049,30050,30051,30052,30053,30054,30055,30056,30057,30058,30059,30060,30061,30062,30063,30069,30071,30073,30075,30077,30079,30081,30083,30084,30085,30086,30087,30088,30089,30090,30091,30093,30094,30095,30096,30097,30098,30099,30100,30101,30102,30103,30104,30105,30106,30112,30113,30114,30115,30116,30117,30118,30119,30122,30123,30124,30125,30126,30127,30128,30129,30130,30131,30132,30133,30140,30142,30144,30146,30148,30150,30152,30154,30155,30156,30157,30158,30159,30160,30161,30162,30164,30165,30166,30167,30168,30169,30170,30171,30172,30173,30174,30175,30176,30177,30179,30184,30185,30187,30188,30189,30190,30191,30192,30193,30194,30195,30198,30199,30201,30202,30203,30204,30206,30207,30208,30209,30210,30213,30214,30215,30216,30217,30218,30219,30220,30221,30223,30224,30225,30226,30227,30230,30231,30232,30233,30234,30235,30236,30237,30238,30239,30242,30243,30244,30245,30246,30249,30250,30251,30252,30253,30254,30255,30256,30257,30258,30259,30260,30263,30264,30265,30266,30267,30270,30271,30272,30273,30274,30275,30276,30277,30278,30279,30280,30281,30282,30283,30286,30287,30288,30289,30290,30293,30294,30295,30296,30297,30298,30299,30300,30301,30302,30303,30304,30305,30306,30307,30308,30311,30312,30313,30314,30318,30319,30320,30321,30322,30323,30324,30325,30326,30327,30328,30329,30330,30331,30332,30333,30334,30335,30338,30339,30340,30341,30345,30346,30347,30348,30349,30350,30351,30352,30353,30354,30355,30356,30357,30358,30359,30360,30361,30362,30363,30364,30367,30368,30369,30370,30374,30375,30376,30377,30378,30379,30380,30381,30382,30383,30384,30385,30386,30387,30388,30389,30390,30391,30392,30393,30394,30395,30396,30398,30399,30400,30401,30402,30405,30406,30413,30414,30415,30416,30417,30418,30419,30420,30421,30422,30423,30424,30425,30426,30427,30428,30429,30431,30432,30434,30435,30448,30449,30450,30451,30452,30453,30454,30455,30456,30457,30458,30459,30462,30463,30464,30465,30466,30467,30468,30469,30470,30471,30472,30473,30474,30475,30476,30477,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,30488,30489,30490,30491,30492,30493,30494,30495,30496,30497,30498,30499,30500,30501,30502,30503,30504,30505,30506,30507,30508,30509,30510,30511,30512,30513,30514,30515,30516,30517,30518,30519,30520,30521,30522,30523,30524,30525,30526,30527,30528,30529,30530,30531,30532,30533,30534,30535,30536,30537,30538,30539,30540,30541,30542,30543,30544,30545,30546,30547,30548,30549,30550,30551,30552,30553,30554,30555,30556,30557,30558,30559,30560,30561,30562,30563,30564,30565,30566,30567,30568,30569,30570,30571,30572,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,30584,30585,30586,30587,30588,30589,30590,30591,30592,30593,30594,30595,30596,30597,30598,30599,30600,30601,30602,30603,30604,30605,30606,30607,30608,30609,30610,30611,30612,30613,30614,30615,30616,30617,30618,30619,30620,30621,30622,30623,30624,30625,30626,30627,30628,30629,30630,30631,30632,30633,30634,30635,30636,30637,30638,30639,30640,30641,30642,30643,30644,30645,30646,30647,30648,30649,30650,30651,30652,30653,30654,30655,30656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,30668,30669,30670,30671,30672,30673,30674,30675,30676,30677,30678,30679,30680,30681,30682,30683,30684,30685,30686,30687,30688,30689,30690,30693,30694,30695,30696,30697,30698,30699,30700,30701,30702,30703,30704,30705,30706,30707,30708,30709,30710,30713,30714,30715,30716,30717,30718,30719,30720,30721,30722,30723,30724,30725,30726,30727,30728,30729,30730,30731,30732,30733,30734,30735,30736,30737,30738,30739,30740,30741,30742,30743,30744,30745,30746,30747,30748,30749,30750,30751,30752,30753,30754,30755,30756,30757,30758,30759,30760,30761,30762,30763,30764,30765,30766,30767,30768,30769,30770,30771,30772,30773,30774,30775,30776,30777,30778,30779,30780,30781,30782,30783,30784,30785,30786,30787,30788,30789,30790,30791,30792,30793,30794,30795,30796,30797,30798,30799,30800,30801,30802,30803,30804,30805,30806,30807,30808,30809,30810,30811,30812,30813,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,30824,30825,30826,30827,30828,30829,30830,30831,30832,30833,30834,30835,30836,30837,30838,30839,30840,30841,30842,30843,30844,30845,30846,30847,30848,30849,30850,30851,30852,30853,30854,30855,30856,30857,30858,30859,30860,30861,30862,30863,30864,30865,30866,30867,30869,30870,30871,30872,30873,30874,30875,30876,30877,30879,30880,30881,30882,30883,30884,30885,30886,30887,30888,30889,30890,30891,30892,30893,30894,30895,30896,30897,30898,30899,30900,30901,30902,30903,30904,30905,30906,30907,30908,30909,30910,30911,30912,30913,30914,30915,30916,30917,30918,30919,30920,30921,30922,30923,30924,30925,30926,30927,30928,30929,30930,30931,30932,30933,30934,30935,30936,30937,30938,30939,30940,30941,30942,30943,30944,30945,30946,30947,30948,30949,30950,30951,30952,30953,30954,30955,30956,30957,30958,30959,30960,30961,30962,30963,30964,30965,30966,30967,30968,30969,30970,30971,30972,30973,30974,30975,30976,30977,30978,30979,30980,30981,30982,30983,30984,30985,30986,30987,30988,30989,30990,30991,30992,30993,30994,30995,30996,30997,30998,30999,31000,31001,31002,31003,31004,31005,31006,31007,31008,31009,31010,31011,31012,31013,31014,31015,31016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,31028,31029,31030,31031,31032,31033,31034,31035,31036,31037,31038,31039,31040,31041,31042,31043,31044,31045,31046,31047,31048,31049,31050,31051,31052,31053,31054,31055,31056,31057,31058,31059,31060,31061,31062,31063,31064,31065,31066,31067,31068,31069,31070,31071,31072,31073,31074,31075,31076,31077,31078,31079,31080,31081,31082,31083,31084,31085,31086,31087,31088,31089,31090,31091,31092,31093,31094,31095,31096,31097,31098,31099,31100,31101,31102,31103,31104,31105,31106,31107,31108,31109,31110,31111,31112,31113,31114,31115,31116,31117,31118,31119,31120,31121,31122,31123,31124,31125,31126,31127,31128,31129,31130,31131,31132,31133,31134,31135,31136,31137,31138,31139,31140,31141,31142,31143,31144,31145,31146,31147,31148,31149,31150,31151,31152,31153,31154,31155,31156,31157,31158,31159,31160,31161,31162,31163,31164,31165,31166,31167,31168,31169,31170,31171,31172,31173,31174,31175,31176,31177,31178,31179,31180,31181,31182,31183,31184,31185,31186,31187,31188,31189,31190,31191,31192,31193,31194,31195,31196,31197,31198,31199,31200,31201,31202,31203,31204,31205,31206,31207,31208,31209,31211,31212,31213,31214,31215,31216,31217,31218,31219,31220,31221,31222,31223,31224,31225,31226,31227,31228,31229,31230,31231,31232,31233,31234,31235,31236,31237,31238,31239,31240,31241,31242,31243,31244,31245,31246,31247,31248,31249,31250,31251,31252,31253,31254,31255,31256,31257,31258,31259,31260,31261,31262,31263,31264,31265,31266,31267,31268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,31280,31281,31282,31283,31284,31285,31286,31287,31288,31289,31290,31291,31292,31293,31294,31295,31296,31297,31298,31299,31300,31301,31302,31303,31304,31305,31306,31307,31308,31309,31310,31311,31312,31313,31314,31315,31316,31317,31318,31319,31320,31321,31322,31323,31324,31325,31326,31327,31328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,31340,31341,31342,31343,31344,31345,31346,31347,31348,31349,31350,31351,31352,31353,31354,31355,31356,31357,31358,31359,31360,31361,31362,31363,31364,31365,31366,31367,31368,31369,31370,31371,31372,31373,31374,31375,31376,31377,31378,31379,31380,31381,31382,31383,31384,31385,31386,31387,31388,31389,31390,31391,31392,31393,31394,31395,31396,31397,31398,31399,31400,31401,31402,31403,31404,31405,31406,31407,31408,31409,31410,31411,31412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31423,31424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31435,31436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31446,31447,31448,31449,31450,31451,31452,31453,31454,31455,31456,31457,31458,31459,31460,31461,31462,31463,31464,31465,31466,31467,31468,31469,31470,31471,31472,31473,31474,31475,31476,31477,31478,31479,31480,31481,31482,31483,31484,31485,31486,31487,31488,31489,31490,31491,31492,31493,31494,31495,31496,31497,31498,31499,31500,31501,31502,31503,31504,31505,31506,31507,31508,31509,31510,31511,31512,31513,31514,31515,31516,31517,31518,31519,31520,31521,31522,31523,31524,31525,31526,31527,31528,31529,31530,31531,31532,31533,31534,31535,31536,31537,31538,31539,31540,31541,31542,31543,31544,31545,31546,31547,31548,31549,31550,31551,31552,31553,31554,31555,31556,31557,31558,31559,31560,31561,31562,31563,31564,31565,31566,31567,31568,31569,31570,31571,31572,31573,31574,31575,31576,31577,31578,31579,31580,31581,31582,31583,31584,31585,31586,31587,31588,31589,31590,31591,31592,31593,31594,31595,31596,31597,31598,31599,31600,31601,31602,31603,31604,31605,31606,31607,31608,31609,31610,31611,31612,31613,31614,31615,31616,31617,31618,31619,31620,31621,31622,31623,31624,31625,31626,31627,31628,31629,31630,31631,31632,31633,31634,31635,31636,31637,31638,31639,31640,31641,31642,31643,31644,31645,31646,31647,31648,31649,31650,31651,31652,31653,31654,31655,31656,31660,31661,31662,31663,31664,31665,31666,31667,31668,31669,31670,31671,31672,31673,31674,31675,31676,31677,31678,31679,31680,31681,31682,31683,31684,31685,31686,31687,31688,31689,31690,31691,31692,31693,31694,31695,31696,31697,31698,31699,31700,31701,31702,31703,31704,31705,31706,31707,31708,31709,31710,31711,31712,31713,31714,31715,31716,31717,31718,31719,31720,31721,31722,31723,31724,31725,31726,31727,31728,31729,31730,31731,31732,31733,31734,31735,31736,31737,31738,31739,31740,31741,31742,31743,31744,31745,31746,31747,31748,31749,31750,31751,31752,31753,31754,31755,31756,31757,31758,31759,31760,31761,31762,31763,31764,31765,31766,31767,31768,31769,31770,31771,31772,31773,31774,31775,31776,31777,31778,31779,31780,31781,31782,31783,31784,31785,31786,31787,31788,31789,31790,31791,31792,31793,31794,31795,31796,31797,31798,31799,31800,31801,31802,31803,31804,31805,31806,31807,31808,31809,31810,31811,31812,31813,31814,31815,31816,31817,31818,31819,31820,31821,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,31832,31833,31834,31835,31839,31840,31841,31842,31843,31844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,31856,31857,31858,31859,31860,31861,31862,31863,31864,31865,31866,31867,31868,31869,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,31880,31881,31882,31883,31884,31885,31886,31887,31888,31889,31890,31891,31892,31893,31894,31895,31896,31897,31898,31899,31900,31901,31902,31903,31904,31905,31906,31907,31908,31909,31910,31911,31912,31913,31914,31915,31916,31917,31918,31919,31920,31921,31922,31923,31924,31925,31926,31927,31928,31929,31930,31931,31932,31933,31934,31935,31936,31937,31938,31939,31940,31941,31942,31943,31944,31945,31946,31947,31948,31949,31950,31951,31952,31953,31954,31955,31956,31957,31958,31959,31960,31961,31962,31963,31964,31965,31966,31967,31968,31969,31970,31971,31972,31973,31974,31975,31976,31977,31978,31979,31980,31981,31982,31983,31984,31985,31986,31987,31988,31989,31990,31991,31992,31993,31994,31995,31996,31997,31998,31999,32000,32001,32002,32003,32004,32005,32009,32010,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32032,32033,32034,32035,32036,32037,32038,32039,32040,32041,32042,32043,32044,32045,32046,32047,32048,32049,32050,32051,32052,32053,32054,32055,32056,32057,32058,32059,32060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,32072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,32084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,32096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32110,32111,32112,32113,32114,32115,32116,32117,32118,32119,32120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,32132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,32144,32145,32146,32147,32148,32149,32150,32151,32152,32153,32154,32155,32156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32166,32167,32168,32169,32170,32171,32172,32173,32174,32175,32176,32177,32178,32179,32180,32181,32182,32183,32184,32188,32189,32190,32191,32192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,32251,32252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,32264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,32276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,32288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,32300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,32312,32313,32314,32315,32316,32317,32318,32319,32320,32321,32322,32323,32324,32325,32326,32327,32328,32329,32330,32331,32332,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,32348,32349,32350,32351,32352,32353,32354,32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,32384,32385,32386,32387,32388,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,32408,32409,32410,32411,32412,32413,32414,32415,32416,32417,32418,32419,32420,32421,32422,32423,32424,32425,32426,32427,32428,32429,32430,32431,32432,32433,32434,32435,32436,32437,32438,32439,32440,32441,32442,32443,32444,32445,32446,32447,32448,32449,32450,32451,32452,32453,32454,32455,32456,32457,32458,32459,32460,32461,32462,32463,32464,32465,32466,32467,32468,32469,32470,32471,32472,32473,32474,32475,32476,32477,32478,32479,32480,32481,32482,32483,32484,32485,32486,32487,32488,32489,32490,32491,32492,32493,32494,32495,32496,32497,32498,32499,32500,32501,32502,32503,32504,32505,32506,32507,32508,32509,32510,32511,32512,32513,32514,32515,32516,32517,32518,32519,32520,32521,32522,32523,32524,32525,32526,32527,32528,32529,32530,32531,32532,32533,32534,32535,32539,32540,32541,32542,32543,32544,32545,32546,32547,32548,32549,32550,32551,32552,32553,32554,32555,32556,32557,32558,32559,32560,32561,32562,32563,32564,32565,32566,32567,32568,32569,32570,32571,32572,32573,32574,32575,32576,32577,32578,32579,32580,32581,32582,32583,32584,32585,32586,32587,32588,32589,32590,32591,32592,32593,32594,32595,32596,32597,32598,32599,32600,32601,32602,32603,32604,32605,32606,32607,32608,32609,32610,32611,32612,32613,32614,32615,32616,32617,32618,32619,32620,32621,32622,32623,32624,32625,32626,32627,32628,32629,32630,32631,32632,32633,32634,32635,32636,32637,32638,32639,32640,32641,32642,32643,32644,32645,32646,32647,32648,32649,32650,32651,32652,32653,32654,32655,32656,32657,32658,32659,32660,32661,32662,32663,32664,32665,32666,32667,32668,32669,32670,32671,32672,32673,32674,32675,32676,32677,32678,32679,32680,32681,32682,32683,32684,32685,32686,32687,32688,32689,32690,32691,32692,32693,32694,32695,32696,32697,32698,32699,32700,32701,32702,32703,32704,32705,32706,32710,32711,32712,32713,32714,32715,32716,32717,32718,32719,32720,32721,32722,32723,32724,32725,32726,32727,32728,32729,32730,32731,32732,32733,32734,32735,32736,32737,32738,32739,32740,32741,32742,32743,32744,32745,32746,32747,32748,32749,32750,32751,32752,32753,32754,32755,32756,32757,32758,32759,32760,32761,32762,32763,32764,32765,32766,32767,32768,32769,32770,32771,32772,32773,32774,32775,32776,32777,32778,32779,32780,32781,32782,32783,32784,32785,32786,32787,32788,32789,32790,32791,32792,32793,32794,32795,32796,32797,32798,32799,32800,32801,32802,32803,32804,32805,32806,32807,32808,32809,32810,32811,32812,32813,32814,32815,32816,32817,32818,32819,32820,32821,32822,32823,32824,32825,32826,32827,32828,32829,32830,32831,32832,32833,32834,32835,32836,32837,32838,32839,32840,32841,32842,32843,32844,32845,32846,32847,32848,32849,32850,32851,32852,32853,32854,32855,32856,32857,32858,32859,32860,32861,32862,32863,32864,32865,32866,32867,32868,32869,32870,32871,32872,32873,32874,32875,32876,32877,32878,32879,32880,32881,32882,32883,32884,32885,32886,32887,32891,32892,32893,32894,32895,32896,32897,32898,32899,32900,32901,32902,32903,32904,32905,32906,32907,32908,32909,32910,32911,32912,32913,32914,32915,32916,32917,32918,32919,32920,32921,32922,32923,32924,32925,32926,32927,32928,32929,32930,32931,32932,32933,32934,32935,32936,32937,32938,32939,32940,32941,32942,32943,32944,32945,32946,32947,32948,32949,32950,32951,32952,32953,32954,32955,32956,32957,32958,32959,32960,32961,32962,32963,32964,32965,32966,32967,32968,32969,32970,32971,32972,32973,32974,32975,32976,32977,32978,32979,32980,32981,32982,32983,32984,32985,32986,32987,32988,32989,32990,32991,32992,32993,32994,32995,32996,32997,32998,32999,33000,33001,33002,33003,33004,33005,33006,33007,33008,33009,33010,33011,33012,33013,33014,33015,33016,33017,33018,33019,33020,33021,33022,33023,33024,33025,33026,33027,33028,33029,33030,33031,33032,33033,33034,33035,33036,33037,33038,33039,33040,33041,33042,33043,33044,33045,33046,33047,33048,33049,33050,33051,33052,33053,33054,33055,33056,33057,33058,33059,33063,33064,33065,33066,33067,33068,33069,33070,33071,33072,33073,33074,33075,33076,33077,33078,33079,33080,33081,33082,33083,33084,33085,33086,33087,33088,33089,33090,33091,33092,33093,33094,33095,33096,33097,33098,33099,33100,33101,33102,33103,33104,33105,33106,33107,33108,33109,33110,33111,33112,33113,33114,33115,33116,33117,33118,33119,33120,33121,33122,33123,33124,33125,33126,33127,33128,33129,33130,33131,33132,33133,33134,33135,33136,33137,33138,33139,33140,33141,33142,33143,33144,33145,33146,33147,33148,33149,33150,33151,33152,33153,33154,33155,33156,33157,33158,33159,33160,33161,33162,33163,33164,33165,33166,33167,33168,33169,33170,33171,33172,33173,33174,33175,33176,33177,33178,33179,33180,33181,33182,33183,33184,33185,33186,33187,33188,33189,33190,33191,33192,33193,33194,33195,33196,33197,33198,33199,33200,33201,33202,33203,33204,33205,33206,33207,33208,33209,33210,33211,33212,33213,33214,33215,33216,33217,33218,33219,33220,33221,33222,33223,33224,33225,33226,33227,33228,33229,33230,33231,33232,33233,33234,33235,33236,33237,33238,33239,33240,33241,33242,33246,33247,33248,33249,33250,33251,33252,33253,33254,33255,33256,33257,33258,33259,33260,33261,33262,33263,33264,33265,33266,33267,33268,33269,33270,33271,33272,33273,33274,33275,33276,33277,33278,33279,33280,33281,33282,33283,33284,33285,33286,33287,33288,33289,33290,33291,33292,33293,33294,33295,33296,33297,33298,33299,33300,33301,33302,33303,33304,33305,33306,33307,33308,33309,33310,33311,33312,33313,33314,33315,33316,33317,33318,33319,33320,33321,33322,33323,33324,33325,33326,33327,33328,33329,33330,33331,33332,33333,33334,33335,33336,33337,33338,33339,33340,33341,33342,33343,33344,33345,33346,33347,33348,33349,33350,33351,33352,33353,33354,33355,33356,33357,33358,33359,33360,33361,33362,33363,33364,33365,33366,33367,33368,33369,33370,33371,33372,33373,33374,33375,33376,33377,33378,33379,33380,33381,33382,33383,33384,33385,33386,33387,33388,33389,33390,33391,33392,33393,33394,33395,33396,33397,33398,33399,33400,33401,33402,33403,33404,33405,33406,33407,33408,33409,33410,33411,33412,33413,33414,33415,33419,33420,33421,33422,33423,33424,33425,33426,33427,33428,33429,33430,33431,33432,33433,33434,33435,33436,33437,33438,33439,33440,33441,33442,33443,33444,33445,33446,33447,33448,33449,33450,33451,33452,33453,33454,33455,33456,33457,33458,33459,33460,33461,33462,33463,33464,33465,33466,33467,33468,33469,33470,33471,33472,33473,33474,33475,33476,33477,33478,33479,33480,33481,33482,33483,33484,33485,33486,33487,33488,33489,33490,33491,33492,33493,33494,33495,33496,33497,33498,33499,33500,33501,33502,33503,33504,33505,33506,33507,33508,33509,33510,33511,33512,33513,33514,33515,33516,33517,33518,33519,33520,33521,33522,33523,33524,33525,33526,33527,33528,33529,33530,33531,33532,33533,33534,33535,33536,33537,33538,33539,33540,33541,33542,33543,33544,33545,33546,33547,33548,33549,33550,33551,33552,33553,33554,33555,33556,33557,33558,33559,33560,33561,33562,33563,33564,33565,33566,33567,33568,33569,33570,33571,33572,33573,33574,33575,33576,33577,33578,33579,33580,33581,33582,33583,33584,33585,33586,33587,33588,33589,33590,33591,33592,33593,33594,33595,33596,33597,33598,33599,33603,33604,33605,33606,33607,33608,33609,33610,33611,33612,33613,33614,33615,33616,33617,33618,33619,33620,33621,33622,33623,33624,33625,33626,33627,33628,33629,33630,33631,33632,33633,33634,33635,33636,33637,33638,33639,33640,33641,33642,33643,33644,33645,33646,33647,33648,33649,33650,33651,33652,33653,33654,33655,33656,33657,33658,33659,33660,33661,33662,33663,33664,33665,33666,33667,33668,33669,33670,33671,33672,33673,33674,33675,33676,33677,33678,33679,33680,33681,33682,33683,33684,33685,33686,33687,33688,33689,33690,33691,33692,33693,33694,33695,33696,33697,33698,33699,33700,33701,33702,33703,33704,33705,33706,33707,33708,33709,33710,33711,33712,33713,33714,33715,33716,33717,33718,33719,33720,33721,33722,33723,33724,33725,33726,33727,33728,33729,33730,33731,33732,33733,33734,33735,33736,33737,33738,33739,33740,33741,33742,33743,33744,33745,33746,33747,33748,33749,33750,33751,33752,33753,33754,33755,33756,33757,33758,33759,33760,33761,33762,33763,33764,33765,33766,33767,33768,33769,33770,33771,33772,33773,33777,33778,33779,33780,33781,33782,33783,33784,33785,33786,33787,33788,33789,33790,33791,33792,33793,33794,33795,33796,33797,33798,33799,33800,33801,33802,33803,33804,33805,33806,33807,33808,33809,33810,33811,33812,33813,33814,33815,33816,33817,33818,33819,33820,33821,33822,33823,33824,33825,33826,33827,33828,33829,33830,33831,33832,33833,33834,33835,33836,33837,33838,33839,33840,33841,33842,33843,33844,33845,33846,33847,33848,33849,33850,33851,33852,33853,33854,33855,33856,33857,33858,33859,33860,33861,33862,33863,33864,33865,33866,33867,33868,33869,33870,33871,33872,33873,33874,33875,33876,33877,33878,33879,33880,33881,33882,33883,33884,33885,33886,33887,33888,33889,33890,33891,33892,33893,33894,33895,33896,33897,33898,33899,33900,33901,33902,33903,33904,33905,33906,33907,33908,33909,33910,33911,33912,33913,33914,33915,33916,33917,33918,33919,33920,33921,33922,33923,33924,33925,33926,33927,33928,33929,33930,33931,33932,33933,33934,33935,33936,33937,33938,33939,33940,33941,33942,33943,33944,33945,33946,33947,33948,33949,33950,33951,33952,33953,33954,33955,33956,33957,33958,33962,33963,33964,33965,33966,33967,33968,33969,33970,33971,33972,33973,33974,33975,33976,33977,33978,33979,33980,33981,33982,33983,33984,33985,33986,33987,33988,33989,33990,33991,33992,33993,33994,33995,33996,33997,33998,33999,34000,34001,34002,34003,34004,34005,34006,34007,34008,34009,34010,34011,34012,34013,34014,34015,34016,34017,34018,34019,34020,34021,34022,34023,34024,34025,34026,34027,34028,34029,34030,34031,34032,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,34044,34045,34046,34047,34048,34049,34050,34051,34052,34053,34054,34055,34056,34057,34058,34059,34060,34061,34062,34063,34064,34065,34066,34067,34068,34069,34070,34071,34072,34073,34074,34075,34076,34077,34078,34079,34080,34081,34082,34083,34084,34085,34086,34087,34088,34089,34090,34091,34092,34093,34094,34095,34096,34097,34098,34099,34100,34101,34102,34103,34104,34105,34106,34107,34108,34109,34110,34111,34112,34113,34114,34115,34116,34117,34118,34119,34120,34121,34122,34123,34124,34125,34126,34127,34128,34129,34130,34131,34132,34133,34134,34135,34136,34137,34138,34139,34140,34141,34142,34143,34144,34145,34146,34147,34148,34149,34150,34151,34152,34153,34154,34155,34156,34157,34158,34159,34160,34161,34162,34163,34164,34165,34166,34167,34168,34169,34170,34171,34172,34173,34174,34175,34176,34177,34178,34179,34180,34181,34182,34183,34184,34185,34186,34187,34188,34189,34190,34191,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34203,34204,34205,34206,34207,34208,34209,34210,34211,34212,34213,34214,34215,34216,34217,34218,34219,34220,34221,34222,34223,34224,34225,34226,34227,34228,34229,34230,34231,34232,34233,34234,34235,34236,34237,34238,34239,34240,34241,34242,34243,34244,34245,34246,34247,34248,34249,34250,34251,34252,34253,34254,34255,34256,34257,34258,34259,34260,34261,34262,34263,34264,34265,34266,34267,34268,34269,34270,34271,34272,34273,34274,34275,34276,34277,34278,34279,34280,34281,34282,34283,34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,34297,34298,34299,34300,34301,34302,34303,34304,34305,34306,34307,34308,34309,34310,34311,34312,34313,34314,34315,34316,34317,34318,34319,34320,34321,34322,34323,34324,34325,34326,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,34337,34338,34339,34340,34341,34342,34343,34344,34345,34346,34347,34348,34349,34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34360,34361,34362,34363,34364,34365,34366,34367,34368,34369,34370,34371,34372,34373,34374,34375,34376,34377,34378,34379,34380,34381,34382,34383,34384,34385,34386,34387,34388,34390,34391,34392,34393,34394,34395,34396,34397,34398,34399,34400,34401,34402,34403,34404,34405,34406,34407,34408,34409,34410,34411,34412,34413,34414,34415,34416,34417,34419,34420,34421,34422,34423,34424,34425,34426,34427,34428,34429,34430,34431,34432,34433,34434,34435,34436,34437,34438,34439,34440,34441,34442,34443,34444,34445,34446,34447,34448,34449,34450,34451,34452,34453,34454,34455,34456,34457,34458,34459,34460,34461,34462,34463,34464,34465,34466,34467,34468,34469,34470,34471,34472,34473,34474,34475,34476,34477,34478,34479,34480,34481,34482,34483,34484,34485,34486,34487,34488,34489,34490,34491,34492,34493,34494,34495,34496,34497,34498,34499,34500,34501,34502,34503,34504,34505,34506,34507,34508,34509,34510,34511,34512,34513,34514,34515,34516,34517,34518,34519,34520,34521,34522,34523,34524,34525,34526,34527,34528,34529,34530,34531,34532,34533,34534,34535,34536,34537,34538,34539,34540,34541,34542,34543,34544,34545,34546,34547,34548,34549,34550,34551,34552,34553,34554,34555,34556,34557,34558,34559,34560,34561,34562,34563,34564,34565,34566,34567,34568,34569,34570,34571,34572,34573,34574,34575,34576,34577,34578,34579,34580,34581,34582,34583,34584,34585,34586,34587,34588,34589,34590,34591,34592,34593,34594,34595,34596,34597,34598,34599,34600,34601,34602,34603,34604,34605,34606,34607,34608,34609,34610,34611,34612,34613,34614,34615,34616,34617,34618,34619,34620,34621,34622,34623,34624,34625,34626,34627,34628,34629,34630,34631,34632,34633,34634,34635,34636,34637,34638,34639,34640,34641,34642,34643,34644,34645,34646,34647,34648,34649,34650,34651,34652,34653,34654,34655,34656,34657,34658,34659,34660,34661,34662,34663,34664,34665,34666,34667,34668,34669,34670,34671,34672,34673,34674,34675,34676,34677,34678,34679,34680,34681,34682,34683,34684,34685,34686,34687,34688,34689,34690,34691,34692,34693,34694,34695,34696,34697,34698,34699,34700,34701,34702,34703,34704,34705,34706,34707,34708,34709,34710,34711,34712,34713,34714,34715,34716,34717,34718,34719,34720,34721,34722,34723,34724,34725,34726,34727,34728,34729,34730,34731,34732,34733,34734,34735,34736,34737,34738,34739,34740,34741,34742,34743,34744,34745,34746,34747,34748,34749,34750,34751,34752,34753,34754,34755,34756,34757,34758,34759,34760,34761,34762,34763,34764,34765,34766,34767,34768,34769,34770,34771,34772,34773,34774,34775,34776,34777,34778,34779,34780,34781,34782,34783,34784,34785,34786,34787,34788,34789,34790,34791,34792,34793,34794,34795,34796,34797,34798,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,34809,34810,34811,34812,34813,34814,34815,34816,34817,34818,34819,34820,34821,34822,34823,34824,34825,34826,34827,34828,34829,34830,34831,34832,34833,34834,34835,34836,34837,34838,34839,34840,34841,34842,34843,34844,34845,34846,34847,34848,34849,34850,34851,34852,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,34869,34870,34871,34872,34873,34874,34875,34876,34877,34878,34879,34880,34881,34882,34883,34884,34885,34886,34887,34888,34889,34890,34891,34892,34893,34894,34895,34896,34897,34898,34899,34900,34901,34902,34903,34907,34908,34909,34910,34911,34912,34913,34914,34917,34918,34919,34920,34921,34922,34923,34924,34925,34926,34927,34928,34929,34930,34931,34932,34933,34934,34935,34936,34937,34938,34939,34940,34941,34942,34943,34944,34945,34946,34947,34948,34949,34950,34951,34952,34953,34954,34955,34956,34957,34958,34959,34960,34961,34962,34963,34964,34965,34966,34967,34968,34969,34970,34971,34972,34973,34974,34975,34976,34977,34978,34979,34980,34981,34982,34983,34984,34985,34986,34987,34988,34989,34990,34991,34992,34993,34994,34995,34996,34997,34998,34999,35000,35001,35002,35003,35004,35005,35006,35007,35008,35009,35010,35011,35012,35013,35014,35015,35016,35017,35018,35019,35020,35021,35022,35023,35024,35025,35026,35027,35028,35029,35030,35031,35032,35033,35034,35035,35036,35037,35038,35039,35040,35041,35042,35043,35044,35045,35046,35048,35049,35051,35052,35053,35054,35055,35056,35057,35058,35059,35060,35061,35062,35063,35064,35065,35066,35067,35068,35069,35070,35071,35072,35073,35074,35075,35076,35077,35078,35079,35080,35081,35082,35083,35084,35085,35086,35087,35088,35089,35090,35091,35092,35093,35094,35095,35096,35097,35098,35099,35100,35101,35102,35103,35104,35105,35106,35107,35108,35109,35110,35111,35112,35113,35114,35115,35116,35117,35118,35119,35120,35121,35122,35123,35124,35125,35126,35127,35128,35129,35130,35131,35132,35133,35134,35135,35136,35137,35138,35139,35140,35141,35142,35143,35144,35145,35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,35159,35160,35161,35162,35163,35164,35165,35166,35167,35168,35169,35170,35171,35172,35173,35174,35175,35176,35177,35178,35179,35180,35181,35182,35183,35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35195,35196,35197,35198,35199,35200,35201,35202,35203,35204,35205,35206,35207,35208,35209,35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,35234,35235,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,35261,35262,35263,35264,35265,35266,35267,35268,35269,35270,35271,35272,35273,35274,35275,35276,35277,35278,35279,35280,35281,35282,35283,35284,35285,35286,35287,35288,35289,35290,35291,35292,35293,35294,35295,35296,35297,35298,35299,35300,35301,35302,35303,35304,35305,35306,35307,35308,35309,35310,35311,35312,35313,35314,35315,35316,35317,35318,35319,35320,35321,35322,35323,35324,35325,35326,35327,35328,35329,35330,35331,35332,35333,35334,35335,35336,35337,35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,35351,35352,35353,35354,35355,35356,35357,35358,35359,35360,35361,35362,35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,35389,35390,35391,35392,35393,35394,35395,35396,35397,35398,35399,35400,35401,35402,35403,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,35440,35441,35442,35443,35444,35445,35446,35447,35448,35449,35450,35451,35452,35453,35454,35455,35456,35457,35458,35459,35460,35461,35462,35463,35464,35465,35466,35467,35468,35469,35470,35471,35472,35473,35474,35475,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35575,35576,35577,35578,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35591,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,35617,35618,35619,35620,35621,35622,35623,35624,35625,35626,35627,35628,35629,35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,35654,35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,35668,35669,35670,35671,35672,35673,35674,35675,35676,35677,35678,35679,35680,35681,35682,35683],"exit":[12,13,15,16,19,26,30,31,33,49,53,56,66,70,73,75,79,84,88,89,91,92,102,106,107,109,111,112,114,115,118,119,121,124,127,137,150,153,154,156,168,172,176,179,184,189,191,194,207,213,219,223,226,230,233,236,237,240,243,246,249,254,255,258,261,264,266,267,270,272,273,276,277,279,280,283,290,294,295,297,299,300,303,306,307,309,312,315,318,322,325,334,338,341,342,344,346,347,349,350,353,354,356,359,362,365,366,368,371,374,377,384,387,396,397,399,405,408,412,413,415,431,450,453,466,472,478,497,500,506,509,512,525,531,537,543,549,560,566,570,573,575,579,584,588,591,593,597,600,602,606,609,611,615,620,625,627,628,638,642,643,645,648,651,654,655,657,660,663,673,686,689,690,692,695,697,698,701,702,704,707,710,713,714,716,719,722,732,744,745,756,760,761,763,766,769,772,773,775,778,781,784,785,787,790,793,796,797,799,802,805,812,815,824,827,833,836,839,848,851,855,856,858,874,881,893,896,909,915,921,928,940,943,952,955,958,968,974,980,986,992,999,1002,1011,1014,1015,1023,1026,1027,1029,1035,1038,1039,1051,1057,1063,1075,1081,1087,1094,1108,1111,1113,1117,1122,1126,1129,1131,1135,1138,1140,1144,1147,1149,1153,1158,1162,1165,1167,1174,1176,1180,1181,1183,1184,1187,1194,1198,1199,1201,1203,1204,1206,1207,1210,1211,1213,1216,1219,1222,1226,1229,1238,1242,1245,1246,1248,1250,1251,1253,1254,1257,1258,1260,1263,1266,1269,1270,1272,1275,1278,1281,1285,1288,1291,1297,1300,1301,1303,1309,1312,1316,1317,1319,1321,1322,1325,1328,1329,1331,1334,1337,1340,1341,1343,1346,1349,1352,1353,1355,1358,1361,1364,1368,1371,1380,1383,1389,1392,1395,1404,1407,1411,1412,1414,1416,1417,1419,1420,1423,1424,1426,1429,1432,1435,1436,1438,1441,1444,1447,1448,1450,1453,1456,1459,1460,1462,1465,1468,1471,1475,1478,1481,1487,1490,1491,1493,1496,1499,1502,1505,1511,1514,1515,1517,1520,1523,1526,1530,1531,1533,1539,1546,1549,1553,1554,1568,1571,1584,1587,1590,1593,1596,1600,1615,1618,1624,1627,1630,1633,1643,1649,1655,1661,1667,1671,1686,1689,1695,1698,1701,1704,1710,1713,1726,1732,1738,1750,1756,1762,1766,1781,1784,1790,1793,1796,1799,1805,1808,1814,1817,1820,1823,1833,1839,1845,1851,1857,1863,1869,1875,1881,1885,1898,1902,1905,1907,1911,1916,1920,1923,1925,1929,1932,1934,1938,1941,1943,1947,1952,1956,1959,1961,1968,1970,1974,1977,1979,1983,1988,1993,1995,1996,2006,2010,2011,2013,2016,2018,2019,2022,2023,2025,2028,2031,2041,2054,2057,2058,2060,2063,2065,2066,2069,2070,2072,2075,2078,2081,2082,2084,2087,2090,2100,2112,2113,2121,2124,2128,2129,2131,2134,2137,2140,2141,2143,2146,2149,2152,2153,2155,2158,2161,2164,2165,2167,2170,2173,2183,2195,2201,2207,2219,2223,2224,2226,2229,2231,2232,2235,2236,2238,2241,2244,2247,2248,2250,2253,2256,2259,2260,2262,2265,2268,2271,2272,2274,2277,2280,2290,2302,2303,2308,2314,2326,2327,2332,2338,2342,2343,2345,2348,2351,2354,2355,2357,2360,2363,2366,2367,2369,2372,2375,2378,2379,2381,2384,2387,2390,2391,2393,2396,2399,2402,2403,2405,2408,2411,2421,2424,2433,2436,2439,2445,2448,2457,2460,2463,2469,2472,2481,2485,2486,2488,2494,2501,2504,2509,2511,2523,2526,2539,2542,2545,2548,2551,2558,2570,2573,2582,2585,2588,2598,2604,2610,2616,2622,2629,2641,2644,2653,2656,2659,2665,2668,2681,2687,2693,2705,2711,2717,2724,2736,2739,2748,2751,2754,2760,2763,2772,2775,2778,2788,2794,2800,2806,2812,2818,2824,2830,2836,2843,2855,2858,2867,2870,2873,2879,2882,2891,2894,2897,2903,2906,2919,2925,2931,2943,2949,2955,2961,2967,2973,2979,2986,2996,3000,3003,3005,3009,3014,3018,3021,3023,3027,3030,3032,3036,3039,3041,3045,3050,3054,3057,3059,3066,3068,3072,3075,3077,3081,3086,3090,3093,3095,3102,3104,3108,3109,3111,3112,3115,3122,3126,3127,3129,3131,3132,3134,3135,3138,3139,3141,3144,3147,3150,3154,3157,3163,3166,3170,3173,3174,3176,3178,3179,3181,3182,3185,3186,3188,3191,3194,3197,3198,3200,3203,3206,3209,3213,3216,3219,3225,3228,3229,3231,3237,3240,3244,3245,3247,3249,3250,3253,3256,3257,3259,3262,3265,3268,3269,3271,3274,3277,3280,3281,3283,3286,3289,3292,3296,3299,3308,3311,3317,3320,3323,3332,3335,3339,3340,3342,3344,3345,3347,3348,3351,3352,3354,3357,3360,3363,3364,3366,3369,3372,3375,3376,3378,3381,3384,3387,3388,3390,3393,3396,3399,3406,3418,3419,3424,3430,3442,3443,3448,3454,3458,3459,3461,3463,3464,3467,3470,3471,3473,3476,3479,3482,3483,3485,3488,3491,3494,3495,3497,3500,3503,3506,3507,3509,3512,3515,3518,3519,3521,3524,3527,3530,3537,3549,3555,3561,3573,3579,3585,3597,3601,3602,3604,3606,3607,3609,3610,3613,3614,3616,3619,3622,3625,3626,3628,3631,3634,3637,3638,3640,3643,3646,3649,3650,3652,3655,3658,3661,3662,3664,3667,3670,3673,3674,3676,3679,3682,3685,3692,3704,3705,3710,3716,3722,3728,3729,3734,3740,3746,3752,3753,3758,3764,3768,3769,3771,3777,3784,3787,3791,3792,3800,3806,3809,3819,3822,3825,3828,3831,3834,3838,3839,3853,3856,3862,3865,3868,3871,3881,3887,3893,3899,3905,3909,3924,3927,3933,3936,3939,3942,3948,3951,3954,3964,3970,3976,3988,3994,4000,4004,4010,4017,4019,4022,4023,4028,4029,4031,4034,4035,4037,4041,4043,4046,4049,4052,4053,4055,4058,4059,4061,4071,4077,4083,4089,4095,4101,4107,4113,4119,4123,4129,4138,4141,4142,4147,4150,4153,4154,4156,4162,4165,4166,4168,4171,4174,4177,4178,4180,4186,4189,4190,4192,4202,4208,4214,4226,4232,4238,4244,4250,4256,4262,4266,4272,4279,4281,4284,4285,4290,4291,4293,4296,4299,4303,4305,4308,4309,4311,4314,4315,4317,4320,4323,4327,4329,4332,4335,4338,4339,4341,4344,4345,4347,4357,4363,4369,4375,4381,4387,4393,4399,4405,4411,4417,4423,4429,4433,4446,4450,4453,4455,4459,4464,4468,4471,4473,4477,4480,4482,4486,4489,4491,4495,4500,4504,4507,4509,4516,4518,4522,4525,4527,4531,4536,4540,4543,4545,4552,4554,4558,4561,4563,4567,4572,4577,4579,4580,4590,4594,4595,4597,4600,4602,4603,4606,4607,4609,4612,4615,4625,4631,4638,4641,4642,4644,4647,4649,4650,4653,4654,4656,4659,4662,4665,4666,4668,4671,4674,4684,4696,4697,4705,4708,4712,4713,4715,4718,4721,4724,4725,4727,4730,4733,4736,4737,4739,4742,4745,4748,4749,4751,4754,4757,4767,4779,4785,4791,4803,4807,4808,4810,4813,4815,4816,4819,4820,4822,4825,4828,4831,4832,4834,4837,4840,4843,4844,4846,4849,4852,4855,4856,4858,4861,4864,4874,4886,4887,4892,4898,4910,4911,4916,4922,4926,4927,4929,4932,4935,4938,4939,4941,4944,4947,4950,4951,4953,4956,4959,4962,4963,4965,4968,4971,4974,4975,4977,4980,4983,4986,4987,4989,4992,4995,5005,5017,5023,5029,5041,5047,5053,5065,5069,5070,5072,5075,5077,5078,5081,5082,5084,5087,5090,5093,5094,5096,5099,5102,5105,5106,5108,5111,5114,5117,5118,5120,5123,5126,5129,5130,5132,5135,5138,5141,5142,5144,5147,5150,5160,5172,5173,5178,5184,5190,5196,5197,5202,5208,5214,5220,5221,5226,5232,5236,5237,5239,5242,5245,5248,5249,5251,5254,5257,5260,5261,5263,5266,5269,5272,5273,5275,5278,5281,5284,5285,5287,5290,5293,5296,5297,5299,5302,5305,5308,5309,5311,5314,5317,5320,5321,5323,5326,5329,5339,5351,5357,5363,5375,5381,5387,5399,5402,5405,5411,5412,5414,5423,5427,5428,5430,5442,5446,5453,5465,5468,5481,5487,5493,5500,5512,5515,5524,5527,5530,5540,5543,5546,5549,5552,5555,5558,5561,5564,5571,5583,5586,5595,5598,5601,5607,5610,5623,5626,5629,5632,5635,5638,5644,5647,5653,5659,5666,5678,5681,5690,5693,5696,5702,5705,5714,5717,5720,5730,5736,5742,5748,5754,5760,5766,5772,5778,5785,5797,5800,5809,5812,5815,5821,5824,5833,5836,5839,5845,5848,5861,5867,5873,5885,5891,5897,5903,5909,5915,5921,5928,5940,5943,5952,5955,5958,5964,5967,5976,5979,5982,5988,5991,6000,6003,6006,6016,6022,6028,6034,6040,6046,6052,6058,6064,6070,6076,6082,6088,6095,6107,6110,6117,6119,6122,6125,6129,6131,6134,6141,6143,6146,6149,6153,6155,6158,6165,6167,6170,6173,6176,6177,6179,6182,6195,6201,6207,6213,6219,6225,6231,6237,6243,6249,6255,6267,6273,6279,6286,6296,6300,6303,6305,6309,6314,6318,6321,6323,6327,6330,6332,6336,6339,6341,6345,6350,6354,6357,6359,6366,6368,6372,6375,6377,6381,6386,6390,6393,6395,6402,6404,6408,6411,6413,6417,6422,6426,6429,6431,6438,6440,6445,6447,6448,6458,6462,6463,6465,6467,6468,6471,6474,6475,6477,6480,6483,6486,6490,6493,6502,6506,6509,6510,6512,6514,6515,6517,6518,6521,6522,6524,6527,6530,6533,6534,6536,6539,6542,6545,6552,6564,6565,6576,6580,6581,6583,6585,6586,6589,6592,6593,6595,6598,6601,6604,6605,6607,6610,6613,6616,6617,6619,6622,6625,6628,6635,6647,6653,6659,6671,6675,6676,6678,6680,6681,6683,6684,6687,6688,6690,6693,6696,6699,6700,6702,6705,6708,6711,6712,6714,6717,6720,6723,6724,6726,6729,6732,6735,6742,6754,6755,6760,6766,6778,6779,6784,6790,6794,6795,6797,6799,6800,6803,6806,6807,6809,6812,6815,6818,6819,6821,6824,6827,6830,6831,6833,6836,6839,6842,6843,6845,6848,6851,6854,6855,6857,6860,6863,6866,6873,6885,6891,6897,6909,6915,6921,6933,6937,6938,6940,6942,6943,6945,6946,6949,6950,6952,6955,6958,6961,6962,6964,6967,6970,6973,6974,6976,6979,6982,6985,6986,6988,6991,6994,6997,6998,7000,7003,7006,7009,7010,7012,7015,7018,7021,7028,7040,7041,7046,7052,7058,7064,7065,7070,7076,7082,7088,7089,7094,7100,7104,7105,7107,7109,7110,7113,7116,7117,7119,7122,7125,7128,7129,7131,7134,7137,7140,7141,7143,7146,7149,7152,7153,7155,7158,7161,7164,7165,7167,7170,7173,7176,7177,7179,7182,7185,7188,7189,7191,7194,7197,7200,7207,7219,7225,7231,7243,7249,7255,7267,7273,7279,7280,7291,7295,7296,7298,7300,7301,7303,7304,7307,7308,7310,7313,7316,7319,7320,7322,7325,7328,7331,7332,7334,7337,7340,7343,7344,7346,7349,7352,7355,7356,7358,7361,7364,7367,7368,7370,7373,7376,7379,7380,7382,7385,7388,7391,7392,7394,7397,7400,7403,7410,7422,7434,7435,7440,7446,7447,7452,7458,7459,7470,7471,7476,7482,7494,7495,7500,7506,7510,7511,7513,7525,7529,7548,7551,7564,7570,7576,7580,7583,7586,7593,7595,7598,7599,7607,7610,7623,7629,7635,7641,7647,7651,7654,7657,7664,7666,7669,7670,7678,7681,7682,7690,7693,7694,7696,7706,7712,7718,7730,7736,7742,7746,7749,7759,7761,7764,7771,7773,7776,7783,7785,7788,7791,7794,7795,7797,7800,7801,7803,7813,7819,7825,7831,7837,7843,7849,7855,7861,7865,7868,7871,7878,7880,7883,7884,7892,7895,7896,7904,7907,7908,7910,7913,7916,7919,7920,7922,7928,7931,7932,7944,7950,7956,7968,7974,7980,7986,7992,7998,8004,8008,8011,8021,8023,8026,8033,8035,8038,8045,8047,8050,8053,8056,8057,8059,8062,8065,8069,8071,8074,8080,8081,8083,8086,8087,8089,8095,8099,8105,8111,8117,8123,8129,8135,8141,8147,8153,8159,8165,8171,8175,8178,8181,8190,8193,8194,8202,8205,8206,8212,8214,8217,8218,8220,8223,8224,8226,8229,8230,8232,8238,8241,8242,8247,8250,8253,8254,8256,8262,8265,8266,8278,8279,8284,8285,8290,8291,8296,8297,8302,8308,8314,8320,8326,8332,8338,8350,8356,8362,8366,8369,8379,8381,8384,8391,8393,8396,8403,8405,8408,8411,8414,8415,8417,8420,8423,8427,8429,8432,8438,8439,8441,8444,8447,8451,8453,8456,8462,8463,8465,8468,8469,8471,8477,8481,8487,8493,8505,8511,8517,8523,8529,8535,8541,8553,8559,8565,8571,8577,8578,8581,8584,8588,8594,8595,8598,8601,8607,8613,8616,8619,8621,8625,8628,8630,8631,8634,8637,8639,8643,8648,8649,8652,8655,8657,8664,8666,8667,8670,8673,8675,8679,8684,8685,8688,8691,8693,8700,8702,8703,8706,8709,8711,8715,8720,8721,8724,8727,8729,8736,8738,8739,8742,8745,8747,8751,8754,8756,8757,8761,8763,8764,8774,8779,8781,8784,8787,8790,8791,8793,8796,8799,8809,8822,8825,8826,8828,8830,8831,8833,8834,8837,8838,8840,8843,8846,8849,8850,8852,8855,8858,8861,8868,8880,8881,8892,8896,8897,8899,8902,8905,8908,8909,8911,8914,8917,8920,8921,8923,8926,8929,8932,8933,8935,8938,8941,8944,8951,8963,8969,8975,8987,8991,8992,8994,8997,8999,9000,9003,9004,9006,9009,9012,9015,9016,9018,9021,9024,9027,9028,9030,9033,9036,9039,9040,9042,9045,9048,9052,9058,9070,9071,9076,9082,9094,9095,9100,9106,9110,9111,9113,9116,9119,9122,9123,9125,9128,9131,9134,9135,9137,9140,9143,9146,9147,9149,9152,9155,9158,9159,9161,9164,9167,9170,9171,9173,9176,9179,9183,9189,9201,9207,9213,9225,9231,9237,9249,9253,9254,9256,9259,9261,9262,9265,9266,9268,9271,9274,9277,9278,9280,9283,9286,9289,9290,9292,9295,9298,9301,9302,9304,9307,9310,9313,9314,9316,9319,9322,9325,9326,9328,9331,9334,9344,9356,9357,9362,9368,9374,9380,9381,9386,9392,9398,9404,9405,9410,9416,9420,9421,9423,9426,9429,9432,9433,9435,9438,9441,9444,9445,9447,9450,9453,9456,9457,9459,9462,9465,9468,9469,9471,9474,9477,9480,9481,9483,9486,9489,9492,9493,9495,9498,9501,9504,9505,9507,9510,9513,9523,9535,9541,9547,9559,9565,9571,9583,9589,9595,9596,9607,9611,9612,9614,9617,9619,9620,9623,9624,9626,9629,9632,9635,9636,9638,9641,9644,9647,9648,9650,9653,9656,9659,9660,9662,9665,9668,9671,9672,9674,9677,9680,9683,9684,9686,9689,9692,9695,9696,9698,9701,9704,9707,9708,9710,9713,9716,9726,9738,9739,9744,9750,9756,9762,9763,9768,9774,9780,9786,9787,9792,9798,9799,9810,9811,9816,9822,9826,9827,9829,9832,9834,9835,9838,9839,9841,9844,9847,9850,9851,9853,9856,9859,9862,9863,9865,9868,9871,9874,9875,9877,9880,9883,9886,9887,9889,9892,9895,9898,9899,9901,9904,9907,9910,9911,9913,9916,9919,9922,9923,9925,9928,9931,9934,9935,9937,9940,9943,9946,9953,9959,9965,9971,9977,9986,9989,9992,9995,9998,10001,10004,10007,10010,10013,10016,10019,10022,10025,10026,10028,10034,10037,10040,10043,10046,10049,10052,10058,10061,10065,10066,10068,10080,10084,10103,10106,10119,10125,10131,10138,10150,10153,10162,10165,10168,10178,10184,10190,10196,10202,10209,10221,10224,10233,10236,10239,10245,10248,10261,10267,10273,10285,10291,10297,10304,10316,10319,10328,10331,10334,10340,10343,10344,10352,10355,10356,10358,10362,10368,10369,10374,10375,10380,10386,10392,10398,10404,10410,10416,10423,10435,10438,10447,10450,10453,10459,10462,10471,10474,10477,10483,10486,10493,10499,10500,10505,10506,10511,10517,10523,10529,10535,10541,10547,10553,10559,10566,10578,10581,10590,10593,10596,10602,10605,10614,10617,10620,10626,10629,10632,10636,10638,10641,10644,10650,10654,10660,10666,10672,10678,10684,10690,10696,10702,10708,10714,10720,10726,10733,10745,10748,10757,10760,10763,10767,10769,10772,10773,10779,10781,10784,10785,10787,10793,10796,10799,10805,10808,10811,10817,10820,10833,10834,10839,10840,10845,10846,10851,10852,10857,10863,10869,10875,10881,10887,10893,10899,10905,10911,10917,10924,10936,10939,10948,10951,10954,10960,10963,10964,10972,10975,10976,10978,10984,10987,10990,10996,10999,11002,11008,11011,11020,11023,11026,11032,11036,11042,11048,11054,11060,11066,11072,11078,11084,11090,11096,11102,11108,11114,11120,11132,11133,11139,11151,11154,11163,11166,11175,11178,11187,11190,11193,11199,11202,11205,11211,11214,11217,11223,11226,11235,11238,11241,11247,11250,11259,11263,11269,11275,11287,11293,11299,11311,11317,11323,11335,11341,11347,11359,11365,11378,11382,11388,11389,11392,11395,11401,11404,11407,11410,11413,11415,11419,11422,11425,11428,11431,11433,11437,11446,11449,11451,11458,11464,11467,11469,11473,11474,11482,11485,11487,11492,11494,11500,11503,11505,11509,11518,11521,11523,11530,11536,11539,11541,11545,11548,11554,11557,11559,11563,11566,11568,11595,11598,11599,11610,11616,11629,11631,11642,11643,11654,11655,11660,11672,11684,11710,11711,11722,11723,11734,11735,11752,11770,11776,11788,11795,11802,11803,11814,11815,11820,11826,11827,11838,11839,11844,11851,11856,11874,11880,11892,11898,11918,11919,11930,11931,11942,11943,11954,11955,11966,11967,11979,11984,11996,12008,12020,12026,12032,12044,12051,12058,12059,12070,12071,12076,12082,12083,12094,12095,12100,12106,12107,12118,12119,12131,12136,12148,12154,12160,12166,12172,12178,12184,12190,12196,12197,12202,12215,12222,12223,12234,12235,12246,12247,12258,12259,12270,12271,12282,12283,12294,12295,12330,12336,12348,12354,12355,12360,12372,12378,12384,12385,12396,12403,12410,12411,12422,12423,12434,12435,12446,12447,12458,12459,12470,12471,12482,12483,12494,12495,12506,12536,12542,12548,12555,12560,12566,12572,12584,12585,12596,12615,12619,12622,12623,12634,12635,12646,12647,12658,12659,12670,12671,12682,12683,12694,12695,12706,12707,12724,12742,12754,12766,12778,12779,12790,12802,12809,12826,12833,12844,12851,12858,12865,12873,12881,12887,12900,12908,12915,12930,12938,12945,12953,12960,12968,12975,12990,12998,13008,13011,13022,13023,13029,13035,13041,13047,13053,13059,13071,13077,13083,13095,13101,13107,13125,13133,13137,13138,13140,13143,13149,13157,13158,13163,13164,13169,13176,13189,13195,13196,13198,13203,13204,13206,13209,13210,13215,13216,13222,13223,13228,13235,13248,13261,13267,13275,13281,13282,13287,13294,13295,13300,13307,13308,13313,13314,13320,13352,13365,13369,13373,13374,13376,13379,13380,13385,13386,13392,13393,13398,13399,13405,13406,13411,13412,13418,13419,13424,13425,13431,13432,13438,13444,13445,13457,13470,13483,13489,13497,13503,13504,13509,13516,13517,13522,13523,13529,13530,13535,13542,13543,13548,13555,13556,13561,13568,13569,13575,13582,13594,13620,13639,13643,13647,13648,13650,13653,13654,13659,13660,13666,13667,13672,13673,13679,13680,13685,13686,13692,13693,13698,13705,13706,13711,13712,13718,13719,13724,13731,13732,13738,13744,13745,13757,13770,13783,13796,13802,13809,13815,13823,13824,13829,13830,13835,13842,13843,13848,13849,13855,13856,13861,13868,13869,13874,13881,13882,13887,13907,13908,13913,13920,13934,13940,13946,13947,13953,13966,13972,13998,14011,14017,14025,14026,14028,14031,14032,14037,14038,14044,14045,14050,14051,14057,14058,14063,14064,14070,14071,14076,14083,14084,14089,14109,14110,14122,14123,14135,14148,14161,14174,14187,14193,14200,14219,14226,14239,14245,14246,14253,14254,14256,14259,14260,14265,14272,14273,14278,14285,14286,14291,14298,14299,14304,14311,14312,14317,14324,14325,14330,14337,14338,14350,14351,14363,14364,14369,14370,14376,14408,14421,14428,14447,14454,14460,14473,14480,14493,14499,14500,14507,14513,14519,14526,14539,14545,14552,14565,14571,14578,14584,14591,14597,14604,14610,14617,14623,14630,14636,14643,14646,14649,14656,14662,14675,14682,14688,14695,14701,14708,14714,14727,14734,14740,14753,14760,14766,14786,14787,14789,14790,14794,14796,14799,14803,14806,14810,14813,14817,14820,14824,14827,14831,14838,14841,14848,14852,14855,14859,14860,14866,14869,14874,14876,14880,14883,14887,14888,14894,14897,14904,14908,14911,14915,14918,14922,14925,14929,14932,14945,14950,14951,14952,14953,14954,15004,15005,15006,15007,15008,15009,15015,15016,15017,15018,15019,15076,15121,15127,15129,15131,15134,15136,15138,15141,15143,15145,15146,15148,15149,15150,15152,15153,15155,15157,15159,15160,15162,15164,15165,15166,15169,15171,15172,15173,15177,15178,15185,15191,15192,15193,15198,15215,15217,15219,15231,15234,15237,15239,15244,15245,15254,15309,15311,15314,15359,15367,15372,15373,15374,15376,15381,15388,15389,15395,15396,15402,15408,15420,15428,15433,15435,15437,15440,15442,15444,15445,15449,15451,15452,15454,15456,15458,15459,15463,15470,15476,15480,15492,15497,15499,15510,15520,15523,15527,15534,15536,15542,15544,15545,15548,15551,15554,15575,15578,15584,15585,15587,15590,15596,15612,15658,15660,15662,15665,15668,15677,15718,15726,15733,15740,15747,15754,15760,15772,15780,15785,15787,15789,15794,15801,15802,15808,15815,15825,15833,15841,15846,15848,15850,15853,15855,15857,15862,15864,15867,15869,15871,15876,15886,15890,15893,15912,15914,15924,15928,15938,15942,15953,15959,15965,15968,15972,15999,16001,16007,16038,16044,16063,16075,16082,16123,16125,16127,16129,16132,16135,16138,16149,16152,16161,16198,16206,16213,16220,16227,16233,16245,16253,16260,16267,16274,16281,16291,16299,16307,16312,16314,16316,16321,16328,16335,16345,16352,16360,16368,16373,16375,16377,16382,16389,16396,16406,16413,16420,16443,16481,16484,16487,16490,16493,16496,16523,16526,16529,16532,16535,16538,16560,16563,16566,16569,16572,16575,16592,16595,16598,16601,16604,16607,16635,16654,16668,16704,16706,16708,16710,16712,16715,16718,16721,16724,16737,16740,16743,16754,16757,16766,16799,16807,16814,16821,16827,16839,16847,16854,16861,16868,16878,16886,16894,16901,16908,16915,16925,16932,16940,16948,16953,16955,16957,16962,16969,16979,16986,16993,17001,17009,17014,17016,17018,17023,17030,17040,17047,17054,17061,17078,17080,17084,17086,17094,17098,17101,17104,17129,17135,17138,17142,17145,17149,17171,17177,17180,17184,17187,17208,17217,17221,17240,17249,17267,17276,17292,17304,17311,17323,17330,17337,17349,17356,17363,17370,17401,17403,17405,17407,17409,17411,17414,17417,17420,17423,17426,17441,17444,17447,17450,17463,17466,17469,17480,17483,17492,17521,17529,17536,17542,17554,17562,17569,17576,17586,17594,17602,17609,17616,17626,17633,17641,17649,17656,17663,17673,17680,17687,17695,17703,17710,17712,17717,17724,17727,17734,17741,17748,17756,17764,17771,17773,17778,17785,17788,17795,17802,17809,17816,17837,17841,17843,17854,17860,17885,17888,17891,17894,17898,17905,17927,17930,17933,17936,17943,17964,17967,17970,17973,17977,17996,17999,18002,18005,18023,18026,18029,18032,18045,18048,18051,18054,18070,18082,18101,18127,18141,18148,18160,18174,18181,18188,18214,18216,18218,18220,18222,18224,18226,18229,18232,18235,18238,18241,18244,18261,18264,18267,18270,18273,18288,18291,18294,18297,18310,18313,18316,18327,18330,18339,18364,18372,18378,18390,18398,18405,18415,18423,18431,18438,18448,18455,18463,18471,18478,18488,18495,18502,18510,18518,18525,18535,18542,18549,18556,18564,18572,18579,18581,18589,18593,18596,18603,18610,18617,18625,18633,18640,18642,18650,18654,18657,18664,18671,18678,18685,18688,18702,18704,18706,18708,18710,18712,18714,18720,18724,18727,18730,18733,18736,18768,18771,18775,18778,18781,18810,18813,18816,18820,18847,18850,18853,18879,18882,18906,18957,18969,18976,18988,18995,19002,19014,19021,19028,19035,19047,19054,19061,19068,19075,19087,19094,19101,19108,19115,19122,19143,19145,19147,19149,19151,19153,19155,19157,19160,19163,19166,19169,19172,19175,19178,19197,19200,19203,19206,19209,19212,19229,19232,19235,19238,19241,19256,19259,19262,19265,19278,19281,19284,19295,19298,19307,19328,19336,19347,19355,19365,19373,19381,19391,19398,19406,19414,19424,19431,19438,19446,19454,19464,19471,19478,19485,19493,19501,19511,19518,19525,19532,19539,19547,19555,19563,19565,19572,19576,19579,19586,19593,19600,19608,19616,19624,19626,19631,19633,19637,19638,19640,19647,19651,19654,19661,19664,19668,19671,19689,19693,19697,19699,19708,19714,19720,19722,19727,19745,19748,19752,19759,19765,19768,19787,19790,19797,19804,19807,19824,19827,19831,19837,19840,19856,19859,19866,19883,19886,19890,19905,19908,19922,19925,19934,19937,19965,19972,19984,19991,20010,20017,20024,20031,20043,20050,20057,20064,20083,20090,20097,20104,20111,20118,20130,20137,20144,20151,20158,20165,20172,20188,20190,20192,20194,20196,20198,20200,20202,20204,20207,20210,20213,20216,20219,20222,20225,20228,20249,20252,20255,20258,20261,20264,20267,20286,20289,20292,20295,20298,20301,20318,20321,20324,20327,20330,20345,20348,20351,20354,20367,20370,20373,20384,20387,20396,20413,20425,20436,20444,20455,20462,20470,20481,20488,20495,20503,20514,20521,20528,20535,20543,20554,20561,20568,20575,20582,20590,20601,20608,20615,20622,20629,20636,20644,20655,20657,20660,20662,20669,20673,20676,20683,20690,20697,20705,20716,20721,20723,20726,20728,20729,20730,20734,20735,20736,20737,20739,20742,20744,20748,20751,20758,20761,20765,20775,20776,20777,20784,20786,20788,20790,20792,20796,20802,20806,20809,20812,20814,20815,20816,20818,20820,20821,20823,20826,20832,20853,20857,20860,20863,20866,20880,20892,20895,20898,20902,20905,20908,20929,20932,20935,20938,20942,20961,20964,20967,20970,20988,20991,20994,21010,21013,21027,21043,21071,21090,21104,21116,21130,21137,21149,21163,21170,21177,21189,21203,21210,21217,21224,21236,21250,21257,21264,21271,21278,21290,21304,21311,21318,21325,21332,21343,21346,21349,21351,21353,21355,21356,21357,21358,21359,21361,21363,21365,21367,21370,21372,21374,21375,21377,21378,21380,21383,21386,21389,21392,21395,21411,21413,21415,21418,21419,21421,21422,21424,21427,21430,21433,21436,21439,21453,21460,21461,21463,21466,21469,21472,21475,21478,21490,21497,21500,21503,21506,21509,21512,21529,21532,21535,21538,21541,21556,21559,21562,21565,21578,21581,21584,21595,21598,21607,21611,21627,21629,21638,21639,21647,21658,21666,21673,21684,21692,21699,21706,21717,21725,21732,21739,21746,21757,21765,21772,21779,21786,21793,21804,21806,21812,21819,21820,21821,21826,21833,21840,21847,21858,21860,21866,21867,21868,21871,21873,21874,21875,21876,21880,21884,21887,21891,21894,21901,21908,21919,21921,21927,21928,21932,21934,21935,21936,21937,21939,21940,21941,21943,21945,21946,21947,21948,21950,21953,21954,21955,21959,21962,21969,21972,21976,21986,21987,21988,21993,22000,22001,22002,22005,22011,22024,22028,22030,22032,22035,22038,22043,22045,22047,22048,22050,22052,22075,22080,22084,22089,22090,22092,22093,22107,22114,22120,22126,22147,22154,22182,22206,22225,22239,22242,22243,22251,22252,22270,22273,22344,22377,22417,22431,22461,22464,22478,22493,22515,22518,22521,22528,22532,22546,22547,22552,22561,22575,22578,22580,22581,22583,22584,22585,22587,22588,22590,22591,22592,22599,22606,22607,22620,22621,22631,22633,22635,22637,22639,22648,22651,22659,22661,22666,22673,22677,22681,22683,22706,22718,22720,22745,22801,22834,22843,22867,22885,22889,22897,22901,22915,22919,22939,22943,22970,22974,22999,23007,23011,23041,23050,23054,23062,23065,23080,23083,23084,23098,23102,23110,23111,23113,23123,23126,23128,23129,23132,23142,23146,23154,23158,23160,23163,23164,23166,23169,23170,23172,23175,23176,23178,23179,23181,23182,23184,23185,23187,23188,23190,23193,23194,23201,23266,23267,23268,23269,23270,23284,23287,23290,23293,23313,23316,23319,23322,23325,23348,23351,23361,23362,23376,23379,23382,23402,23405,23416,23430,23433,23464,23820,23879,23925,23932,23933,23936,23940,23992,23993,23996,23997,24000,24001,24004,24005,24008,24012,24013,24027,24045,24108,24111,24113,24116,24120,24133,24135,24146,24156,24187,24213,24236,24241,24252,24257,24270,24325,24331,24333,24338,24353,24369,24443,24449,24453,24499,24582,24589,24593,24647,24740,24741,24747,24751,24812,24837,24914,24915,24921,24925,24991,24997,25022,25063,25101,25102,25108,25118,25145,25160,25181,25209,25211,25217,25277,25298,25299,25305,25309,25315,25330,25336,25342,25358,25379,25390,25411,25412,25417,25485,25498,25505,25509,25515,25530,25536,25542,25558,25580,25591,25592,25593,25594,25599,25606,25610,25611,25622,25626,25627,25638,25642,25643,25654,25658,25659,25670,25673,25674,25685,25688,25689,25700,25704,25705,25716,25721,25722,25733,25737,25738,25744,25749,25752,25753,25759,25761,25762,25774,25775,25780,25784,25785,25794,25798,25801,25804,25810,25811,25812,25821,25824,25833,25844,25845,25865,25866,25868,25871,25885,25886,25905,25906,25915,25926,25927,25935,25946,25947,25960,25967,25968,25978,25980,25989,25990,26000,26011,26012,26025,26027,26035,26039,26040,26041,26055,26056,26065,26076,26077,26078,26127,26130,26134,26136,26137,26138,26140,26141,26142,26143,26159,26161,26187,26191,26198,26202,26203,26220,26252,26259,26263,26264,26267,26294,26296,26302,26315,26322,26326,26330,26378,26385,26395,26412,26415,26418,26420,26422,26424,26430,26443,26450,26454,26460,26515,26547,26554,26556,26562,26575,26582,26586,26594,26683,26690,26692,26698,26700,26823,26830,26838,26967,26976,26982,27095,27115,27130,27225,27247,27267,27272,27282,27295,27302,27324,27372,27379,27403,27423,27438,27451,27458,27462,27482,27530,27537,27583,27598,27611,27618,27622,27644,27662,27699,27723,27727,27729,27731,27733,27739,27741,27748,27752,27759,27763,27764,27766,27784,27821,27825,27826,28027,28049,28050,28051,28052,28053,28054,28055,28056,28057,28058,28059,28060,28061,28062,28064,28065,28066,28068,28069,28071,28072,28073,28074,28075,28076,28077,28078,28079,28080,28081,28082,28084,28085,28088,28089,28093,28098,28103,28108,28113,28115,28121,28125,28130,28135,28144,28402,28450,28502,28511,28512,28517,28518,28522,28523,28528,28529,28536,28543,28544,28547,28553,28561,28573,28583,28584,28597,28610,28625,28641,28658,28676,28695,28714,28735,28757,28780,28803,28804,28807,28828,28852,28853,28856,28857,28858,28859,28860,28861,28862,28863,28864,28867,28868,28873,28874,28886,28888,28895,28902,28913,28920,28942,28968,29151,29201,29236,29238,29272,29274,29300,29302,29328,29329,29330,29358,29360,29362,29371,29388,29389,29390,29424,29435,29972,29997,30017,30019,30033,30035,30065,30092,30108,30109,30110,30111,30120,30121,30163,30181,30182,30186,30196,30197,30200,30211,30212,30228,30229,30247,30248,30372,30373,30403,30404,30436,30437,30460,30461,30691,30692,30711,30712,30868,30878,31210,34389,34418,34904,34905,34906,34915,34916,35047,35050],"h":25,"merged_edges":{"entrance:0":{"rank":551,"runs":[527,23,1]},"entrance:1":{"rank":551,"runs":[527,23,1]},"entrance:10":{"rank":551,"runs":[527,23,1]},"entrance:100":{"rank":551,"runs":[527,23,1]},"entrance:1000":{"rank":551,"runs":[527,23,1]},"entrance:1001":{"rank":551,"runs":[527,23,1]},"entrance:1002":{"rank":551,"runs":[527,23,1]},"entrance:1003":{"rank":551,"runs":[527,23,1]},"entrance:1004":{"rank":551,"runs":[527,23,1]},"entrance:1005":{"rank":551,"runs":[527,23,1]},"entrance:1006":{"rank":551,"runs":[527,23,1]},"entrance:1007":{"rank":551,"runs":[527,23,1]},"entrance:1008":{"rank":551,"runs":[527,23,1]},"entrance:1009":{"rank":551,"runs":[527,23,1]},"entrance:101":{"rank":551,"runs":[527,23,1]},"entrance:1010":{"rank":551,"runs":[527,23,1]},"entrance:1011":{"rank":551,"runs":[527,23,1]},"entrance:1012":{"rank":551,"runs":[527,23,1]},"entrance:1013":{"rank":551,"runs":[527,23,1]},"entrance:1014":{"rank":551,"runs":[527,23,1]},"entrance:1015":{"rank":551,"runs":[527,23,1]},"entrance:1016":{"rank":551,"runs":[527,23,1]},"entrance:1017":{"rank":551,"runs":[527,23,1]},"entrance:1018":{"rank":551,"runs":[527,23,1]},"entrance:1019":{"rank":551,"runs":[527,23,1]},"entrance:102":{"rank":551,"runs":[527,23,1]},"entrance:1020":{"rank":551,"runs":[527,23,1]},"entrance:10206":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10207":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1021":{"rank":551,"runs":[527,23,1]},"entrance:1022":{"rank":551,"runs":[527,23,1]},"entrance:1023":{"rank":551,"runs":[527,23,1]},"entrance:10233":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10234":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1024":{"rank":551,"runs":[527,23,1]},"entrance:1025":{"rank":551,"runs":[527,23,1]},"entrance:10257":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10258":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1026":{"rank":551,"runs":[527,23,1]},"entrance:1027":{"rank":551,"runs":[527,23,1]},"entrance:10278":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10279":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1028":{"rank":551,"runs":[527,23,1]},"entrance:1029":{"rank":551,"runs":[527,23,1]},"entrance:10296":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10297":{"rank":552,"runs":[528,21,1,1,1]},"entrance:103":{"rank":551,"runs":[527,23,1]},"entrance:1030":{"rank":551,"runs":[527,23,1]},"entrance:1031":{"rank":551,"runs":[527,23,1]},"entrance:10311":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10312":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1032":{"rank":551,"runs":[527,23,1]},"entrance:10323":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10324":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1033":{"rank":551,"runs":[527,23,1]},"entrance:10332":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10333":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10338":{"rank":552,"runs":[528,21,1,1,1]},"entrance:10339":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1034":{"rank":551,"runs":[527,23,1]},"entrance:10340":{"rank":554,"runs":[530,19,3,1,1]},"entrance:10346":{"rank":554,"runs":[530,17,2,2,1,1,1]},"entrance:1035":{"rank":551,"runs":[527,23,1]},"entrance:10356":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:10357":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:1036":{"rank":551,"runs":[527,23,1]},"entrance:10366":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:10367":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:1037":{"rank":551,"runs":[527,23,1]},"entrance:10373":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:10374":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:10377":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:10378":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1038":{"rank":551,"runs":[527,23,1]},"entrance:10381":{"rank":556,"runs":[532,15,4,2,1,1,1]},"entrance:10386":{"rank":556,"runs":[532,15,4,2,1,1,1]},"entrance:10387":{"rank":556,"runs":[532,15,4,2,1,1,1]},"entrance:1039":{"rank":551,"runs":[527,23,1]},"entrance:10394":{"rank":560,"runs":[536,11,8,2,1,1,1]},"entrance:10399":{"rank":562,"runs":[539,11,5,4,1,1,1]},"entrance:104":{"rank":551,"runs":[527,23,1]},"entrance:1040":{"rank":551,"runs":[527,23,1]},"entrance:10400":{"rank":568,"runs":[544,16,3,2,1,1,1]},"entrance:10408":{"rank":568,"runs":[540,12,5,4,3,2,1,1]},"entrance:10409":{"rank":564,"runs":[532,9,8,7,4,2,1,1]},"entrance:1041":{"rank":551,"runs":[527,23,1]},"entrance:10410":{"rank":566,"runs":[543,12,7,1,1,1,1]},"entrance:1042":{"rank":551,"runs":[527,23,1]},"entrance:1043":{"rank":551,"runs":[527,23,1]},"entrance:10431":{"rank":566,"runs":[543,8,7,5,1,1,1]},"entrance:10432":{"rank":566,"runs":[539,8,4,4,4,3,1,1,1,1]},"entrance:1044":{"rank":551,"runs":[527,23,1]},"entrance:10441":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:10442":{"rank":566,"runs":[535,8,8,4,4,3,1,1,1,1]},"entrance:1045":{"rank":551,"runs":[527,23,1]},"entrance:10452":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:10453":{"rank":566,"runs":[531,12,12,4,3,1,1,1,1]},"entrance:1046":{"rank":551,"runs":[527,23,1]},"entrance:10463":{"rank":568,"runs":[541,11,4,4,4,1,1,1,1]},"entrance:10464":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:10466":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:10467":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:10468":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:10469":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:1047":{"rank":551,"runs":[527,23,1]},"entrance:10472":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:10473":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:10474":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:10475":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:10479":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1048":{"rank":551,"runs":[527,23,1]},"entrance:10481":{"rank":571,"runs":[548,19,2,1,1]},"entrance:10482":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:10483":{"rank":568,"runs":[537,8,8,7,4,1,1,1,1]},"entrance:10484":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:10485":{"rank":568,"runs":[533,12,12,4,3,1,1,1,1]},"entrance:1049":{"rank":551,"runs":[527,23,1]},"entrance:105":{"rank":551,"runs":[527,23,1]},"entrance:1050":{"rank":551,"runs":[527,23,1]},"entrance:1051":{"rank":551,"runs":[527,23,1]},"entrance:10511":{"rank":571,"runs":[547,18,1,1,1,1,1,1]},"entrance:10517":{"rank":571,"runs":[547,18,1,1,1,1,1,1]},"entrance:10518":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:1052":{"rank":551,"runs":[527,23,1]},"entrance:1053":{"rank":551,"runs":[527,23,1]},"entrance:1054":{"rank":551,"runs":[527,23,1]},"entrance:10548":{"rank":571,"runs":[545,16,3,3,1,1,1,1]},"entrance:1055":{"rank":551,"runs":[527,23,1]},"entrance:10554":{"rank":571,"runs":[545,16,3,3,1,1,1,1]},"entrance:10555":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:1056":{"rank":551,"runs":[527,23,1]},"entrance:1057":{"rank":551,"runs":[527,23,1]},"entrance:1058":{"rank":551,"runs":[527,23,1]},"entrance:10586":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:1059":{"rank":551,"runs":[527,23,1]},"entrance:10592":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:10593":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:106":{"rank":551,"runs":[527,23,1]},"entrance:1060":{"rank":551,"runs":[527,23,1]},"entrance:1061":{"rank":551,"runs":[527,23,1]},"entrance:1062":{"rank":551,"runs":[527,23,1]},"entrance:10624":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:1063":{"rank":551,"runs":[527,23,1]},"entrance:10630":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:10631":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:1064":{"rank":551,"runs":[527,23,1]},"entrance:1065":{"rank":551,"runs":[527,23,1]},"entrance:1066":{"rank":551,"runs":[527,23,1]},"entrance:10663":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:10669":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:1067":{"rank":551,"runs":[527,23,1]},"entrance:10670":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:1068":{"rank":551,"runs":[527,23,1]},"entrance:1069":{"rank":551,"runs":[527,23,1]},"entrance:107":{"rank":551,"runs":[527,23,1]},"entrance:1070":{"rank":551,"runs":[527,23,1]},"entrance:10702":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:10708":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:10709":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:1071":{"rank":551,"runs":[527,23,1]},"entrance:1072":{"rank":551,"runs":[527,23,1]},"entrance:1073":{"rank":551,"runs":[527,23,1]},"entrance:1074":{"rank":551,"runs":[527,23,1]},"entrance:10742":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:10748":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:10749":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:1075":{"rank":551,"runs":[527,23,1]},"entrance:1076":{"rank":551,"runs":[527,23,1]},"entrance:1077":{"rank":551,"runs":[527,23,1]},"entrance:1078":{"rank":551,"runs":[527,23,1]},"entrance:10782":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:10788":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:10789":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:1079":{"rank":551,"runs":[527,23,1]},"entrance:108":{"rank":551,"runs":[527,23,1]},"entrance:1080":{"rank":551,"runs":[527,23,1]},"entrance:1081":{"rank":551,"runs":[527,23,1]},"entrance:1082":{"rank":551,"runs":[527,23,1]},"entrance:10823":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:10829":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:1083":{"rank":551,"runs":[527,23,1]},"entrance:10830":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:1084":{"rank":551,"runs":[527,23,1]},"entrance:1085":{"rank":551,"runs":[527,23,1]},"entrance:1086":{"rank":551,"runs":[527,23,1]},"entrance:10864":{"rank":571,"runs":[529,19,19,1,1,1,1]},"entrance:1087":{"rank":551,"runs":[527,23,1]},"entrance:10870":{"rank":571,"runs":[529,19,19,1,1,1,1]},"entrance:10876":{"rank":570,"runs":[545,14,2,2,2,1,1,1,1,1]},"entrance:10877":{"rank":570,"runs":[543,12,4,4,2,1,1,1,1,1]},"entrance:10878":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:10879":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:1088":{"rank":551,"runs":[527,23,1]},"entrance:10880":{"rank":570,"runs":[541,10,6,6,2,1,1,1,1,1]},"entrance:10881":{"rank":570,"runs":[539,8,8,8,2,1,1,1,1,1]},"entrance:10882":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:10883":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:10884":{"rank":570,"runs":[537,10,10,6,2,1,1,1,1,1]},"entrance:10885":{"rank":570,"runs":[535,12,12,4,2,1,1,1,1,1]},"entrance:10886":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:10887":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:10888":{"rank":570,"runs":[533,14,14,2,2,1,1,1,1,1]},"entrance:10889":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:1089":{"rank":551,"runs":[527,23,1]},"entrance:10890":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:10891":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:10892":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:10893":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:10894":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:10895":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:10896":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:10897":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:10898":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:10899":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:109":{"rank":551,"runs":[527,23,1]},"entrance:1090":{"rank":551,"runs":[527,23,1]},"entrance:10900":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:10901":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:10902":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:10903":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:10904":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:10905":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:10906":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:10907":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:10908":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:10909":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:1091":{"rank":551,"runs":[527,23,1]},"entrance:10910":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:10911":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:10912":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:10913":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:10914":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:10915":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:10917":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1092":{"rank":551,"runs":[527,23,1]},"entrance:10926":{"rank":552,"runs":[528,22,1,1]},"entrance:10929":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1093":{"rank":551,"runs":[527,23,1]},"entrance:1094":{"rank":551,"runs":[527,23,1]},"entrance:10941":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1095":{"rank":551,"runs":[527,23,1]},"entrance:10953":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1096":{"rank":551,"runs":[527,23,1]},"entrance:10965":{"rank":562,"runs":[538,11,11,1,1]},"entrance:1097":{"rank":551,"runs":[527,23,1]},"entrance:10977":{"rank":564,"runs":[540,13,9,1,1]},"entrance:1098":{"rank":551,"runs":[527,23,1]},"entrance:10989":{"rank":566,"runs":[542,15,7,1,1]},"entrance:1099":{"rank":551,"runs":[527,23,1]},"entrance:11":{"rank":551,"runs":[527,23,1]},"entrance:110":{"rank":551,"runs":[527,23,1]},"entrance:1100":{"rank":551,"runs":[527,23,1]},"entrance:1101":{"rank":551,"runs":[527,23,1]},"entrance:1102":{"rank":551,"runs":[527,23,1]},"entrance:1103":{"rank":551,"runs":[527,23,1]},"entrance:11034":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:1104":{"rank":551,"runs":[527,23,1]},"entrance:11046":{"rank":552,"runs":[528,22,1,1]},"entrance:1105":{"rank":551,"runs":[527,23,1]},"entrance:1106":{"rank":551,"runs":[527,23,1]},"entrance:1107":{"rank":551,"runs":[527,23,1]},"entrance:1108":{"rank":551,"runs":[527,23,1]},"entrance:1109":{"rank":551,"runs":[527,23,1]},"entrance:111":{"rank":551,"runs":[527,23,1]},"entrance:1110":{"rank":551,"runs":[527,23,1]},"entrance:1111":{"rank":551,"runs":[527,23,1]},"entrance:1112":{"rank":551,"runs":[527,23,1]},"entrance:1113":{"rank":551,"runs":[527,23,1]},"entrance:1114":{"rank":551,"runs":[527,23,1]},"entrance:11145":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:1115":{"rank":551,"runs":[527,23,1]},"entrance:11158":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1116":{"rank":551,"runs":[527,23,1]},"entrance:11167":{"rank":552,"runs":[528,22,1,1]},"entrance:1117":{"rank":551,"runs":[527,23,1]},"entrance:11170":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1118":{"rank":551,"runs":[527,23,1]},"entrance:11182":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1119":{"rank":551,"runs":[527,23,1]},"entrance:11194":{"rank":560,"runs":[536,13,9,1,1]},"entrance:112":{"rank":551,"runs":[527,23,1]},"entrance:1120":{"rank":551,"runs":[527,23,1]},"entrance:11206":{"rank":562,"runs":[538,11,11,1,1]},"entrance:1121":{"rank":551,"runs":[527,23,1]},"entrance:11218":{"rank":564,"runs":[540,13,9,1,1]},"entrance:1122":{"rank":551,"runs":[527,23,1]},"entrance:1123":{"rank":551,"runs":[527,23,1]},"entrance:11230":{"rank":566,"runs":[542,15,7,1,1]},"entrance:1124":{"rank":551,"runs":[527,23,1]},"entrance:1125":{"rank":551,"runs":[527,23,1]},"entrance:1126":{"rank":551,"runs":[527,23,1]},"entrance:1127":{"rank":551,"runs":[527,23,1]},"entrance:11275":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:1128":{"rank":551,"runs":[527,23,1]},"entrance:11288":{"rank":552,"runs":[528,22,1,1]},"entrance:1129":{"rank":551,"runs":[527,23,1]},"entrance:11299":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:113":{"rank":551,"runs":[527,23,1]},"entrance:1130":{"rank":551,"runs":[527,23,1]},"entrance:1131":{"rank":551,"runs":[527,23,1]},"entrance:1132":{"rank":551,"runs":[527,23,1]},"entrance:1133":{"rank":551,"runs":[527,23,1]},"entrance:1134":{"rank":551,"runs":[527,23,1]},"entrance:1135":{"rank":551,"runs":[527,23,1]},"entrance:1136":{"rank":551,"runs":[527,23,1]},"entrance:1137":{"rank":551,"runs":[527,23,1]},"entrance:1138":{"rank":551,"runs":[527,23,1]},"entrance:11387":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:1139":{"rank":551,"runs":[527,23,1]},"entrance:114":{"rank":551,"runs":[527,23,1]},"entrance:1140":{"rank":551,"runs":[527,23,1]},"entrance:11401":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1141":{"rank":551,"runs":[527,23,1]},"entrance:11410":{"rank":552,"runs":[528,22,1,1]},"entrance:11413":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1142":{"rank":551,"runs":[527,23,1]},"entrance:11425":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1143":{"rank":551,"runs":[527,23,1]},"entrance:11437":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1144":{"rank":551,"runs":[527,23,1]},"entrance:11449":{"rank":562,"runs":[538,11,11,1,1]},"entrance:1145":{"rank":551,"runs":[527,23,1]},"entrance:1146":{"rank":551,"runs":[527,23,1]},"entrance:11461":{"rank":564,"runs":[540,13,9,1,1]},"entrance:1147":{"rank":551,"runs":[527,23,1]},"entrance:11473":{"rank":566,"runs":[541,13,5,2,2,1,1,1]},"entrance:1148":{"rank":551,"runs":[527,23,1]},"entrance:1149":{"rank":551,"runs":[527,23,1]},"entrance:115":{"rank":551,"runs":[527,23,1]},"entrance:1150":{"rank":551,"runs":[527,23,1]},"entrance:1151":{"rank":551,"runs":[527,23,1]},"entrance:11516":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:1152":{"rank":551,"runs":[527,23,1]},"entrance:1153":{"rank":551,"runs":[527,23,1]},"entrance:11532":{"rank":552,"runs":[528,22,1,1]},"entrance:1154":{"rank":551,"runs":[527,23,1]},"entrance:11543":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1155":{"rank":551,"runs":[527,23,1]},"entrance:1156":{"rank":551,"runs":[527,23,1]},"entrance:1157":{"rank":551,"runs":[527,23,1]},"entrance:1158":{"rank":551,"runs":[527,23,1]},"entrance:1159":{"rank":551,"runs":[527,23,1]},"entrance:116":{"rank":551,"runs":[527,23,1]},"entrance:1160":{"rank":551,"runs":[527,23,1]},"entrance:1161":{"rank":551,"runs":[527,23,1]},"entrance:1162":{"rank":551,"runs":[527,23,1]},"entrance:1163":{"rank":551,"runs":[527,23,1]},"entrance:11631":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:1164":{"rank":551,"runs":[527,23,1]},"entrance:11646":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1165":{"rank":551,"runs":[527,23,1]},"entrance:11655":{"rank":552,"runs":[528,22,1,1]},"entrance:11658":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1166":{"rank":551,"runs":[527,23,1]},"entrance:1167":{"rank":551,"runs":[527,23,1]},"entrance:11670":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1168":{"rank":551,"runs":[527,23,1]},"entrance:11682":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1169":{"rank":551,"runs":[527,23,1]},"entrance:11694":{"rank":562,"runs":[538,11,11,1,1]},"entrance:117":{"rank":551,"runs":[527,23,1]},"entrance:1170":{"rank":551,"runs":[527,23,1]},"entrance:11706":{"rank":564,"runs":[539,11,7,2,2,1,1,1]},"entrance:1171":{"rank":551,"runs":[527,23,1]},"entrance:11718":{"rank":566,"runs":[539,11,5,4,3,2,1,1]},"entrance:1172":{"rank":551,"runs":[527,23,1]},"entrance:1173":{"rank":551,"runs":[527,23,1]},"entrance:1174":{"rank":551,"runs":[527,23,1]},"entrance:1175":{"rank":551,"runs":[527,23,1]},"entrance:1176":{"rank":551,"runs":[527,23,1]},"entrance:11761":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:1177":{"rank":551,"runs":[527,23,1]},"entrance:11778":{"rank":552,"runs":[528,22,1,1]},"entrance:1178":{"rank":551,"runs":[527,23,1]},"entrance:11789":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1179":{"rank":551,"runs":[527,23,1]},"entrance:118":{"rank":551,"runs":[527,23,1]},"entrance:1180":{"rank":551,"runs":[527,23,1]},"entrance:1181":{"rank":551,"runs":[527,23,1]},"entrance:1182":{"rank":551,"runs":[527,23,1]},"entrance:1183":{"rank":551,"runs":[527,23,1]},"entrance:1184":{"rank":551,"runs":[527,23,1]},"entrance:1185":{"rank":551,"runs":[527,23,1]},"entrance:1186":{"rank":551,"runs":[527,23,1]},"entrance:1187":{"rank":551,"runs":[527,23,1]},"entrance:11877":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:1188":{"rank":551,"runs":[527,23,1]},"entrance:1189":{"rank":551,"runs":[527,23,1]},"entrance:11893":{"rank":554,"runs":[530,19,3,1,1]},"entrance:119":{"rank":551,"runs":[527,23,1]},"entrance:1190":{"rank":551,"runs":[527,23,1]},"entrance:11902":{"rank":552,"runs":[528,22,1,1]},"entrance:11905":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1191":{"rank":551,"runs":[527,23,1]},"entrance:11917":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1192":{"rank":551,"runs":[527,23,1]},"entrance:11929":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1193":{"rank":551,"runs":[527,23,1]},"entrance:1194":{"rank":551,"runs":[527,23,1]},"entrance:11941":{"rank":562,"runs":[537,9,9,2,2,1,1,1]},"entrance:1195":{"rank":551,"runs":[527,23,1]},"entrance:11953":{"rank":564,"runs":[537,9,7,4,3,2,1,1]},"entrance:1196":{"rank":551,"runs":[527,23,1]},"entrance:11965":{"rank":566,"runs":[537,9,6,5,5,2,1,1]},"entrance:1197":{"rank":551,"runs":[527,23,1]},"entrance:1198":{"rank":551,"runs":[527,23,1]},"entrance:1199":{"rank":551,"runs":[527,23,1]},"entrance:12":{"rank":551,"runs":[527,23,1]},"entrance:120":{"rank":551,"runs":[527,23,1]},"entrance:1200":{"rank":551,"runs":[527,23,1]},"entrance:12006":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:1201":{"rank":551,"runs":[527,23,1]},"entrance:1202":{"rank":551,"runs":[527,23,1]},"entrance:12026":{"rank":552,"runs":[528,22,1,1]},"entrance:1203":{"rank":551,"runs":[527,23,1]},"entrance:12037":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1204":{"rank":551,"runs":[527,23,1]},"entrance:1205":{"rank":551,"runs":[527,23,1]},"entrance:1206":{"rank":551,"runs":[527,23,1]},"entrance:1207":{"rank":551,"runs":[527,23,1]},"entrance:1208":{"rank":551,"runs":[527,23,1]},"entrance:1209":{"rank":551,"runs":[527,23,1]},"entrance:121":{"rank":551,"runs":[527,23,1]},"entrance:1210":{"rank":551,"runs":[527,23,1]},"entrance:1211":{"rank":551,"runs":[527,23,1]},"entrance:1212":{"rank":551,"runs":[527,23,1]},"entrance:12125":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:1213":{"rank":551,"runs":[527,23,1]},"entrance:1214":{"rank":551,"runs":[527,23,1]},"entrance:12142":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1215":{"rank":551,"runs":[527,23,1]},"entrance:12151":{"rank":552,"runs":[528,22,1,1]},"entrance:12154":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1216":{"rank":551,"runs":[527,23,1]},"entrance:12166":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1217":{"rank":551,"runs":[527,23,1]},"entrance:12178":{"rank":560,"runs":[535,11,7,2,2,1,1,1]},"entrance:1218":{"rank":551,"runs":[527,23,1]},"entrance:1219":{"rank":551,"runs":[527,23,1]},"entrance:12190":{"rank":562,"runs":[535,9,7,4,3,2,1,1]},"entrance:122":{"rank":551,"runs":[527,23,1]},"entrance:1220":{"rank":551,"runs":[527,23,1]},"entrance:12202":{"rank":564,"runs":[535,7,7,6,5,2,1,1]},"entrance:1221":{"rank":551,"runs":[527,23,1]},"entrance:12214":{"rank":566,"runs":[535,8,7,7,5,2,1,1]},"entrance:1222":{"rank":551,"runs":[527,23,1]},"entrance:1223":{"rank":551,"runs":[527,23,1]},"entrance:1224":{"rank":551,"runs":[527,23,1]},"entrance:1225":{"rank":551,"runs":[527,23,1]},"entrance:12255":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:1226":{"rank":551,"runs":[527,23,1]},"entrance:1227":{"rank":551,"runs":[527,23,1]},"entrance:12276":{"rank":552,"runs":[528,22,1,1]},"entrance:1228":{"rank":551,"runs":[527,23,1]},"entrance:12287":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1229":{"rank":551,"runs":[527,23,1]},"entrance:123":{"rank":551,"runs":[527,23,1]},"entrance:1230":{"rank":551,"runs":[527,23,1]},"entrance:1231":{"rank":551,"runs":[527,23,1]},"entrance:1232":{"rank":551,"runs":[527,23,1]},"entrance:1233":{"rank":551,"runs":[527,23,1]},"entrance:1234":{"rank":551,"runs":[527,23,1]},"entrance:1235":{"rank":551,"runs":[527,23,1]},"entrance:1236":{"rank":551,"runs":[527,23,1]},"entrance:1237":{"rank":551,"runs":[527,23,1]},"entrance:12375":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:1238":{"rank":551,"runs":[527,23,1]},"entrance:1239":{"rank":551,"runs":[527,23,1]},"entrance:12393":{"rank":554,"runs":[530,19,3,1,1]},"entrance:124":{"rank":551,"runs":[527,23,1]},"entrance:1240":{"rank":551,"runs":[527,23,1]},"entrance:12402":{"rank":552,"runs":[528,22,1,1]},"entrance:12405":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1241":{"rank":551,"runs":[527,23,1]},"entrance:12417":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:1242":{"rank":551,"runs":[527,23,1]},"entrance:12429":{"rank":560,"runs":[533,11,5,4,3,2,1,1]},"entrance:1243":{"rank":551,"runs":[527,23,1]},"entrance:1244":{"rank":551,"runs":[527,23,1]},"entrance:12441":{"rank":562,"runs":[533,9,6,5,5,2,1,1]},"entrance:1245":{"rank":551,"runs":[527,23,1]},"entrance:12453":{"rank":564,"runs":[533,8,7,7,5,2,1,1]},"entrance:1246":{"rank":551,"runs":[527,23,1]},"entrance:12465":{"rank":566,"runs":[533,10,9,5,5,2,1,1]},"entrance:1247":{"rank":551,"runs":[527,23,1]},"entrance:1248":{"rank":551,"runs":[527,23,1]},"entrance:1249":{"rank":551,"runs":[527,23,1]},"entrance:125":{"rank":551,"runs":[527,23,1]},"entrance:1250":{"rank":551,"runs":[527,23,1]},"entrance:12504":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:1251":{"rank":551,"runs":[527,23,1]},"entrance:1252":{"rank":551,"runs":[527,23,1]},"entrance:12528":{"rank":552,"runs":[528,22,1,1]},"entrance:1253":{"rank":551,"runs":[527,23,1]},"entrance:12539":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1254":{"rank":551,"runs":[527,23,1]},"entrance:1255":{"rank":551,"runs":[527,23,1]},"entrance:1256":{"rank":551,"runs":[527,23,1]},"entrance:1257":{"rank":551,"runs":[527,23,1]},"entrance:1258":{"rank":551,"runs":[527,23,1]},"entrance:1259":{"rank":551,"runs":[527,23,1]},"entrance:126":{"rank":551,"runs":[527,23,1]},"entrance:1260":{"rank":551,"runs":[527,23,1]},"entrance:1261":{"rank":551,"runs":[527,23,1]},"entrance:1262":{"rank":551,"runs":[527,23,1]},"entrance:12627":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:1263":{"rank":551,"runs":[527,23,1]},"entrance:1264":{"rank":551,"runs":[527,23,1]},"entrance:12646":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1265":{"rank":551,"runs":[527,23,1]},"entrance:12655":{"rank":552,"runs":[528,22,1,1]},"entrance:12658":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:1266":{"rank":551,"runs":[527,23,1]},"entrance:1267":{"rank":551,"runs":[527,23,1]},"entrance:12670":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:1268":{"rank":551,"runs":[527,23,1]},"entrance:12682":{"rank":560,"runs":[531,11,6,5,3,2,1,1]},"entrance:1269":{"rank":551,"runs":[527,23,1]},"entrance:12694":{"rank":562,"runs":[531,9,8,7,3,2,1,1]},"entrance:127":{"rank":551,"runs":[527,23,1]},"entrance:1270":{"rank":551,"runs":[527,23,1]},"entrance:12706":{"rank":564,"runs":[531,10,9,7,3,2,1,1]},"entrance:1271":{"rank":551,"runs":[527,23,1]},"entrance:12718":{"rank":566,"runs":[531,12,11,5,3,2,1,1]},"entrance:1272":{"rank":551,"runs":[527,23,1]},"entrance:1273":{"rank":551,"runs":[527,23,1]},"entrance:1274":{"rank":551,"runs":[527,23,1]},"entrance:1275":{"rank":551,"runs":[527,23,1]},"entrance:12757":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:1276":{"rank":551,"runs":[527,23,1]},"entrance:1277":{"rank":551,"runs":[527,23,1]},"entrance:1278":{"rank":551,"runs":[527,23,1]},"entrance:12782":{"rank":552,"runs":[528,22,1,1]},"entrance:1279":{"rank":551,"runs":[527,23,1]},"entrance:12793":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:128":{"rank":551,"runs":[527,23,1]},"entrance:1280":{"rank":551,"runs":[527,23,1]},"entrance:1281":{"rank":551,"runs":[527,23,1]},"entrance:1282":{"rank":551,"runs":[527,23,1]},"entrance:1283":{"rank":551,"runs":[527,23,1]},"entrance:1284":{"rank":551,"runs":[527,23,1]},"entrance:1285":{"rank":551,"runs":[527,23,1]},"entrance:1286":{"rank":551,"runs":[527,23,1]},"entrance:1287":{"rank":551,"runs":[527,23,1]},"entrance:1288":{"rank":551,"runs":[527,23,1]},"entrance:12881":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:1289":{"rank":551,"runs":[527,23,1]},"entrance:129":{"rank":551,"runs":[527,23,1]},"entrance:1290":{"rank":551,"runs":[527,23,1]},"entrance:1291":{"rank":551,"runs":[527,23,1]},"entrance:12910":{"rank":552,"runs":[528,22,1,1]},"entrance:1292":{"rank":551,"runs":[527,23,1]},"entrance:1293":{"rank":551,"runs":[527,23,1]},"entrance:1294":{"rank":551,"runs":[527,23,1]},"entrance:1295":{"rank":551,"runs":[527,23,1]},"entrance:1296":{"rank":551,"runs":[527,23,1]},"entrance:1297":{"rank":551,"runs":[527,23,1]},"entrance:1298":{"rank":551,"runs":[527,23,1]},"entrance:1299":{"rank":551,"runs":[527,23,1]},"entrance:13":{"rank":551,"runs":[527,23,1]},"entrance:130":{"rank":551,"runs":[527,23,1]},"entrance:1300":{"rank":551,"runs":[527,23,1]},"entrance:1301":{"rank":551,"runs":[527,23,1]},"entrance:13010":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:1302":{"rank":551,"runs":[527,23,1]},"entrance:1303":{"rank":551,"runs":[527,23,1]},"entrance:13038":{"rank":552,"runs":[528,22,1,1]},"entrance:1304":{"rank":551,"runs":[527,23,1]},"entrance:13049":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1305":{"rank":551,"runs":[527,23,1]},"entrance:1306":{"rank":551,"runs":[527,23,1]},"entrance:1307":{"rank":551,"runs":[527,23,1]},"entrance:1308":{"rank":551,"runs":[527,23,1]},"entrance:1309":{"rank":551,"runs":[527,23,1]},"entrance:131":{"rank":551,"runs":[527,23,1]},"entrance:1310":{"rank":551,"runs":[527,23,1]},"entrance:1311":{"rank":551,"runs":[527,23,1]},"entrance:1312":{"rank":551,"runs":[527,23,1]},"entrance:1313":{"rank":551,"runs":[527,23,1]},"entrance:13137":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:1314":{"rank":551,"runs":[527,23,1]},"entrance:1315":{"rank":551,"runs":[527,23,1]},"entrance:1316":{"rank":551,"runs":[527,23,1]},"entrance:13167":{"rank":552,"runs":[528,22,1,1]},"entrance:1317":{"rank":551,"runs":[527,23,1]},"entrance:1318":{"rank":551,"runs":[527,23,1]},"entrance:1319":{"rank":551,"runs":[527,23,1]},"entrance:132":{"rank":551,"runs":[527,23,1]},"entrance:1320":{"rank":551,"runs":[527,23,1]},"entrance:1321":{"rank":551,"runs":[527,23,1]},"entrance:1322":{"rank":551,"runs":[527,23,1]},"entrance:1323":{"rank":551,"runs":[527,23,1]},"entrance:1324":{"rank":551,"runs":[527,23,1]},"entrance:1325":{"rank":551,"runs":[527,23,1]},"entrance:1326":{"rank":551,"runs":[527,23,1]},"entrance:13267":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:1327":{"rank":551,"runs":[527,23,1]},"entrance:1328":{"rank":551,"runs":[527,23,1]},"entrance:1329":{"rank":551,"runs":[527,23,1]},"entrance:13296":{"rank":552,"runs":[528,22,1,1]},"entrance:133":{"rank":551,"runs":[527,23,1]},"entrance:1330":{"rank":551,"runs":[527,23,1]},"entrance:13307":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1331":{"rank":551,"runs":[527,23,1]},"entrance:1332":{"rank":551,"runs":[527,23,1]},"entrance:1333":{"rank":551,"runs":[527,23,1]},"entrance:1334":{"rank":551,"runs":[527,23,1]},"entrance:1335":{"rank":551,"runs":[527,23,1]},"entrance:1336":{"rank":551,"runs":[527,23,1]},"entrance:1337":{"rank":551,"runs":[527,23,1]},"entrance:1338":{"rank":551,"runs":[527,23,1]},"entrance:1339":{"rank":551,"runs":[527,23,1]},"entrance:13395":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:134":{"rank":551,"runs":[527,23,1]},"entrance:1340":{"rank":551,"runs":[527,23,1]},"entrance:1341":{"rank":551,"runs":[527,23,1]},"entrance:13415":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1342":{"rank":551,"runs":[527,23,1]},"entrance:1343":{"rank":551,"runs":[527,23,1]},"entrance:1344":{"rank":551,"runs":[527,23,1]},"entrance:1345":{"rank":551,"runs":[527,23,1]},"entrance:1346":{"rank":551,"runs":[527,23,1]},"entrance:1347":{"rank":551,"runs":[527,23,1]},"entrance:1348":{"rank":551,"runs":[527,23,1]},"entrance:1349":{"rank":551,"runs":[527,23,1]},"entrance:135":{"rank":551,"runs":[527,23,1]},"entrance:1350":{"rank":551,"runs":[527,23,1]},"entrance:1351":{"rank":551,"runs":[527,23,1]},"entrance:1352":{"rank":551,"runs":[527,23,1]},"entrance:13524":{"rank":571,"runs":[548,19,2,1,1]},"entrance:13525":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:13526":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:13527":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:13528":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:13529":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:1353":{"rank":551,"runs":[527,23,1]},"entrance:13530":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:13531":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:13532":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:13533":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:13534":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:13535":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1354":{"rank":551,"runs":[527,23,1]},"entrance:13545":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1355":{"rank":551,"runs":[527,23,1]},"entrance:1356":{"rank":551,"runs":[527,23,1]},"entrance:1357":{"rank":551,"runs":[527,23,1]},"entrance:1358":{"rank":551,"runs":[527,23,1]},"entrance:1359":{"rank":551,"runs":[527,23,1]},"entrance:136":{"rank":551,"runs":[527,23,1]},"entrance:1360":{"rank":551,"runs":[527,23,1]},"entrance:1361":{"rank":551,"runs":[527,23,1]},"entrance:1362":{"rank":551,"runs":[527,23,1]},"entrance:1363":{"rank":551,"runs":[527,23,1]},"entrance:1364":{"rank":551,"runs":[527,23,1]},"entrance:1365":{"rank":551,"runs":[527,23,1]},"entrance:13654":{"rank":571,"runs":[548,19,2,1,1]},"entrance:13655":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:13656":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:13657":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:13658":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:13659":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:1366":{"rank":551,"runs":[527,23,1]},"entrance:13660":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:13661":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:13662":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:13663":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:13664":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:13665":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1367":{"rank":551,"runs":[527,23,1]},"entrance:1368":{"rank":551,"runs":[527,23,1]},"entrance:1369":{"rank":551,"runs":[527,23,1]},"entrance:137":{"rank":551,"runs":[527,23,1]},"entrance:1370":{"rank":551,"runs":[527,23,1]},"entrance:1371":{"rank":551,"runs":[527,23,1]},"entrance:1372":{"rank":551,"runs":[527,23,1]},"entrance:1373":{"rank":551,"runs":[527,23,1]},"entrance:1374":{"rank":551,"runs":[527,23,1]},"entrance:1375":{"rank":551,"runs":[527,23,1]},"entrance:1376":{"rank":551,"runs":[527,23,1]},"entrance:1377":{"rank":551,"runs":[527,23,1]},"entrance:1378":{"rank":551,"runs":[527,23,1]},"entrance:1379":{"rank":551,"runs":[527,23,1]},"entrance:138":{"rank":551,"runs":[527,23,1]},"entrance:1380":{"rank":551,"runs":[527,23,1]},"entrance:1381":{"rank":551,"runs":[527,23,1]},"entrance:1382":{"rank":551,"runs":[527,23,1]},"entrance:1383":{"rank":551,"runs":[527,23,1]},"entrance:1384":{"rank":551,"runs":[527,23,1]},"entrance:1385":{"rank":551,"runs":[527,23,1]},"entrance:1386":{"rank":551,"runs":[527,23,1]},"entrance:1387":{"rank":551,"runs":[527,23,1]},"entrance:1388":{"rank":551,"runs":[527,23,1]},"entrance:1389":{"rank":551,"runs":[527,23,1]},"entrance:139":{"rank":551,"runs":[527,23,1]},"entrance:1390":{"rank":551,"runs":[527,23,1]},"entrance:1391":{"rank":551,"runs":[527,23,1]},"entrance:1392":{"rank":551,"runs":[527,23,1]},"entrance:1393":{"rank":551,"runs":[527,23,1]},"entrance:1394":{"rank":551,"runs":[527,23,1]},"entrance:1395":{"rank":551,"runs":[527,23,1]},"entrance:1396":{"rank":551,"runs":[527,23,1]},"entrance:1397":{"rank":551,"runs":[527,23,1]},"entrance:1398":{"rank":551,"runs":[527,23,1]},"entrance:1399":{"rank":551,"runs":[527,23,1]},"entrance:14":{"rank":551,"runs":[527,23,1]},"entrance:140":{"rank":551,"runs":[527,23,1]},"entrance:1400":{"rank":551,"runs":[527,23,1]},"entrance:1401":{"rank":551,"runs":[527,23,1]},"entrance:1402":{"rank":551,"runs":[527,23,1]},"entrance:1403":{"rank":551,"runs":[527,23,1]},"entrance:1404":{"rank":551,"runs":[527,23,1]},"entrance:1405":{"rank":551,"runs":[527,23,1]},"entrance:1406":{"rank":551,"runs":[527,23,1]},"entrance:1407":{"rank":551,"runs":[527,23,1]},"entrance:1408":{"rank":551,"runs":[527,23,1]},"entrance:1409":{"rank":551,"runs":[527,23,1]},"entrance:141":{"rank":551,"runs":[527,23,1]},"entrance:1410":{"rank":551,"runs":[527,23,1]},"entrance:1411":{"rank":551,"runs":[527,23,1]},"entrance:1412":{"rank":551,"runs":[527,23,1]},"entrance:1413":{"rank":551,"runs":[527,23,1]},"entrance:1414":{"rank":551,"runs":[527,23,1]},"entrance:1415":{"rank":551,"runs":[527,23,1]},"entrance:14150":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14151":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14154":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1416":{"rank":551,"runs":[527,23,1]},"entrance:1417":{"rank":551,"runs":[527,23,1]},"entrance:14179":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1418":{"rank":551,"runs":[527,23,1]},"entrance:14180":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1419":{"rank":551,"runs":[527,23,1]},"entrance:142":{"rank":551,"runs":[527,23,1]},"entrance:1420":{"rank":551,"runs":[527,23,1]},"entrance:14206":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14207":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1421":{"rank":551,"runs":[527,23,1]},"entrance:1422":{"rank":551,"runs":[527,23,1]},"entrance:1423":{"rank":551,"runs":[527,23,1]},"entrance:14230":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14231":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1424":{"rank":551,"runs":[527,23,1]},"entrance:1425":{"rank":551,"runs":[527,23,1]},"entrance:14251":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14252":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1426":{"rank":551,"runs":[527,23,1]},"entrance:14269":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1427":{"rank":551,"runs":[527,23,1]},"entrance:14270":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1428":{"rank":551,"runs":[527,23,1]},"entrance:14284":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14285":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1429":{"rank":551,"runs":[527,23,1]},"entrance:14296":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14297":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:143":{"rank":551,"runs":[527,23,1]},"entrance:1430":{"rank":551,"runs":[527,23,1]},"entrance:14305":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14306":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1431":{"rank":551,"runs":[527,23,1]},"entrance:14311":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14312":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14314":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:14315":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:1432":{"rank":551,"runs":[527,23,1]},"entrance:1433":{"rank":551,"runs":[527,23,1]},"entrance:1434":{"rank":551,"runs":[527,23,1]},"entrance:1435":{"rank":551,"runs":[527,23,1]},"entrance:14352":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1436":{"rank":551,"runs":[527,23,1]},"entrance:14367":{"rank":566,"runs":[542,15,7,1,1]},"entrance:1437":{"rank":551,"runs":[527,23,1]},"entrance:14374":{"rank":564,"runs":[533,8,8,5,4,3,1,1,1]},"entrance:14376":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:14378":{"rank":568,"runs":[532,12,12,4,3,1,1,1,1,1]},"entrance:14379":{"rank":564,"runs":[536,8,7,4,4,1,1,1,1,1]},"entrance:1438":{"rank":551,"runs":[527,23,1]},"entrance:14380":{"rank":566,"runs":[543,12,7,2,1,1]},"entrance:1439":{"rank":551,"runs":[527,23,1]},"entrance:144":{"rank":551,"runs":[527,23,1]},"entrance:1440":{"rank":551,"runs":[527,23,1]},"entrance:14401":{"rank":566,"runs":[543,8,7,4,2,1,1]},"entrance:14402":{"rank":566,"runs":[539,8,4,4,4,3,2,1,1]},"entrance:1441":{"rank":551,"runs":[527,23,1]},"entrance:14411":{"rank":566,"runs":[539,4,4,4,4,4,3,2,1,1]},"entrance:14412":{"rank":566,"runs":[535,8,8,4,4,3,2,1,1]},"entrance:1442":{"rank":551,"runs":[527,23,1]},"entrance:14422":{"rank":566,"runs":[535,8,8,4,4,3,2,1,1]},"entrance:14423":{"rank":566,"runs":[531,12,12,4,3,2,1,1]},"entrance:1443":{"rank":551,"runs":[527,23,1]},"entrance:14433":{"rank":568,"runs":[533,12,12,4,3,1,1,1,1]},"entrance:14436":{"rank":569,"runs":[530,16,16,3,1,1,1,1]},"entrance:14437":{"rank":569,"runs":[530,16,16,3,1,1,1,1]},"entrance:14438":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"entrance:14439":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"entrance:1444":{"rank":551,"runs":[527,23,1]},"entrance:14442":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"entrance:14443":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"entrance:14444":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"entrance:14445":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"entrance:14448":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:14449":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1445":{"rank":551,"runs":[527,23,1]},"entrance:14450":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:14451":{"rank":571,"runs":[548,19,2,1,1]},"entrance:14452":{"rank":566,"runs":[539,8,4,4,4,3,2,1,1]},"entrance:14453":{"rank":568,"runs":[537,8,8,7,4,1,1,1,1]},"entrance:14454":{"rank":566,"runs":[543,12,7,2,1,1]},"entrance:14455":{"rank":568,"runs":[541,11,4,4,4,1,1,1,1]},"entrance:1446":{"rank":551,"runs":[527,23,1]},"entrance:1447":{"rank":551,"runs":[527,23,1]},"entrance:1448":{"rank":551,"runs":[527,23,1]},"entrance:14481":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"entrance:14487":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"entrance:14488":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:1449":{"rank":551,"runs":[527,23,1]},"entrance:145":{"rank":551,"runs":[527,23,1]},"entrance:1450":{"rank":551,"runs":[527,23,1]},"entrance:1451":{"rank":551,"runs":[527,23,1]},"entrance:14518":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"entrance:1452":{"rank":551,"runs":[527,23,1]},"entrance:14524":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"entrance:14525":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:1453":{"rank":551,"runs":[527,23,1]},"entrance:1454":{"rank":551,"runs":[527,23,1]},"entrance:1455":{"rank":551,"runs":[527,23,1]},"entrance:14556":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"entrance:1456":{"rank":551,"runs":[527,23,1]},"entrance:14562":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"entrance:14563":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:1457":{"rank":551,"runs":[527,23,1]},"entrance:1458":{"rank":551,"runs":[527,23,1]},"entrance:1459":{"rank":551,"runs":[527,23,1]},"entrance:14594":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"entrance:146":{"rank":551,"runs":[527,23,1]},"entrance:1460":{"rank":551,"runs":[527,23,1]},"entrance:14600":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"entrance:14601":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:1461":{"rank":551,"runs":[527,23,1]},"entrance:1462":{"rank":551,"runs":[527,23,1]},"entrance:1463":{"rank":551,"runs":[527,23,1]},"entrance:14633":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"entrance:14639":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"entrance:1464":{"rank":551,"runs":[527,23,1]},"entrance:14640":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:1465":{"rank":551,"runs":[527,23,1]},"entrance:1466":{"rank":551,"runs":[527,23,1]},"entrance:1467":{"rank":551,"runs":[527,23,1]},"entrance:14672":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"entrance:14678":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"entrance:14679":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:1468":{"rank":551,"runs":[527,23,1]},"entrance:1469":{"rank":551,"runs":[527,23,1]},"entrance:147":{"rank":551,"runs":[527,23,1]},"entrance:1470":{"rank":551,"runs":[527,23,1]},"entrance:1471":{"rank":551,"runs":[527,23,1]},"entrance:14712":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"entrance:14718":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"entrance:14719":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:1472":{"rank":551,"runs":[527,23,1]},"entrance:1473":{"rank":551,"runs":[527,23,1]},"entrance:1474":{"rank":551,"runs":[527,23,1]},"entrance:1475":{"rank":551,"runs":[527,23,1]},"entrance:14752":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"entrance:14758":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"entrance:14759":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:1476":{"rank":551,"runs":[527,23,1]},"entrance:1477":{"rank":551,"runs":[527,23,1]},"entrance:1478":{"rank":551,"runs":[527,23,1]},"entrance:1479":{"rank":551,"runs":[527,23,1]},"entrance:14793":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"entrance:14799":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"entrance:148":{"rank":551,"runs":[527,23,1]},"entrance:1480":{"rank":551,"runs":[527,23,1]},"entrance:14800":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:1481":{"rank":551,"runs":[527,23,1]},"entrance:1482":{"rank":551,"runs":[527,23,1]},"entrance:1483":{"rank":551,"runs":[527,23,1]},"entrance:14834":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:1484":{"rank":551,"runs":[527,23,1]},"entrance:14840":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:14846":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:14847":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:14848":{"rank":570,"runs":[547,14,3,2,2,1,1]},"entrance:14849":{"rank":570,"runs":[545,12,2,2,2,2,2,1,1,1]},"entrance:1485":{"rank":551,"runs":[527,23,1]},"entrance:14850":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:14851":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:14852":{"rank":570,"runs":[543,10,4,4,2,2,2,1,1,1]},"entrance:14853":{"rank":570,"runs":[541,8,6,6,2,2,2,1,1,1]},"entrance:14854":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:14855":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:14856":{"rank":570,"runs":[539,8,8,6,2,2,2,1,1,1]},"entrance:14857":{"rank":570,"runs":[537,10,10,4,2,2,2,1,1,1]},"entrance:14858":{"rank":570,"runs":[533,14,14,2,2,2,1,1,1]},"entrance:14859":{"rank":570,"runs":[531,16,16,2,2,1,1,1]},"entrance:1486":{"rank":551,"runs":[527,23,1]},"entrance:14860":{"rank":570,"runs":[535,12,12,2,2,2,2,1,1,1]},"entrance:14861":{"rank":570,"runs":[533,14,14,2,2,2,1,1,1]},"entrance:14862":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:14863":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:14864":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:14865":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:14866":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:14867":{"rank":570,"runs":[539,8,8,4,4,2,2,1,1,1]},"entrance:14868":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:14869":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:1487":{"rank":551,"runs":[527,23,1]},"entrance:14870":{"rank":570,"runs":[537,10,10,4,2,2,2,1,1,1]},"entrance:14871":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:14872":{"rank":570,"runs":[539,8,8,6,2,2,2,1,1,1]},"entrance:14873":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:14874":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:14875":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:14876":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:14877":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:14878":{"rank":570,"runs":[541,8,6,6,2,2,2,1,1,1]},"entrance:14879":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:1488":{"rank":551,"runs":[527,23,1]},"entrance:14880":{"rank":570,"runs":[543,10,4,4,2,2,2,1,1,1]},"entrance:14881":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:14882":{"rank":570,"runs":[545,12,2,2,2,2,2,1,1,1]},"entrance:14883":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:14884":{"rank":570,"runs":[547,14,3,2,2,1,1]},"entrance:14885":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:1489":{"rank":551,"runs":[527,23,1]},"entrance:14896":{"rank":552,"runs":[528,22,1,1]},"entrance:149":{"rank":551,"runs":[527,23,1]},"entrance:1490":{"rank":551,"runs":[527,23,1]},"entrance:1491":{"rank":551,"runs":[527,23,1]},"entrance:1492":{"rank":551,"runs":[527,23,1]},"entrance:1493":{"rank":551,"runs":[527,23,1]},"entrance:1494":{"rank":551,"runs":[527,23,1]},"entrance:1495":{"rank":551,"runs":[527,23,1]},"entrance:1496":{"rank":551,"runs":[527,23,1]},"entrance:1497":{"rank":551,"runs":[527,23,1]},"entrance:1498":{"rank":551,"runs":[527,23,1]},"entrance:1499":{"rank":551,"runs":[527,23,1]},"entrance:15":{"rank":551,"runs":[527,23,1]},"entrance:150":{"rank":551,"runs":[527,23,1]},"entrance:1500":{"rank":551,"runs":[527,23,1]},"entrance:15004":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:1501":{"rank":551,"runs":[527,23,1]},"entrance:15016":{"rank":552,"runs":[528,22,1,1]},"entrance:1502":{"rank":551,"runs":[527,23,1]},"entrance:1503":{"rank":551,"runs":[527,23,1]},"entrance:1504":{"rank":551,"runs":[527,23,1]},"entrance:1505":{"rank":551,"runs":[527,23,1]},"entrance:1506":{"rank":551,"runs":[527,23,1]},"entrance:1507":{"rank":551,"runs":[527,23,1]},"entrance:1508":{"rank":551,"runs":[527,23,1]},"entrance:1509":{"rank":551,"runs":[527,23,1]},"entrance:151":{"rank":551,"runs":[527,23,1]},"entrance:1510":{"rank":551,"runs":[527,23,1]},"entrance:1511":{"rank":551,"runs":[527,23,1]},"entrance:1512":{"rank":551,"runs":[527,23,1]},"entrance:15126":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1513":{"rank":551,"runs":[527,23,1]},"entrance:15137":{"rank":552,"runs":[528,22,1,1]},"entrance:1514":{"rank":551,"runs":[527,23,1]},"entrance:15148":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1515":{"rank":551,"runs":[527,23,1]},"entrance:15159":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:1516":{"rank":551,"runs":[527,23,1]},"entrance:1517":{"rank":551,"runs":[527,23,1]},"entrance:15170":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:1518":{"rank":551,"runs":[527,23,1]},"entrance:15181":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:1519":{"rank":551,"runs":[527,23,1]},"entrance:15192":{"rank":562,"runs":[531,9,8,8,2,1,1,1,1]},"entrance:152":{"rank":551,"runs":[527,23,1]},"entrance:1520":{"rank":551,"runs":[527,23,1]},"entrance:15203":{"rank":564,"runs":[531,10,10,7,2,1,1,1,1]},"entrance:1521":{"rank":551,"runs":[527,23,1]},"entrance:15214":{"rank":566,"runs":[531,12,12,5,2,1,1,1,1]},"entrance:1522":{"rank":551,"runs":[527,23,1]},"entrance:15225":{"rank":568,"runs":[531,14,14,3,2,1,1,1,1]},"entrance:1523":{"rank":551,"runs":[527,23,1]},"entrance:15236":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:1524":{"rank":551,"runs":[527,23,1]},"entrance:15245":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:15247":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1525":{"rank":551,"runs":[527,23,1]},"entrance:15258":{"rank":552,"runs":[528,22,1,1]},"entrance:1526":{"rank":551,"runs":[527,23,1]},"entrance:1527":{"rank":551,"runs":[527,23,1]},"entrance:1528":{"rank":551,"runs":[527,23,1]},"entrance:1529":{"rank":551,"runs":[527,23,1]},"entrance:153":{"rank":551,"runs":[527,23,1]},"entrance:1530":{"rank":551,"runs":[527,23,1]},"entrance:1531":{"rank":551,"runs":[527,23,1]},"entrance:1532":{"rank":551,"runs":[527,23,1]},"entrance:1533":{"rank":551,"runs":[527,23,1]},"entrance:1534":{"rank":551,"runs":[527,23,1]},"entrance:1535":{"rank":551,"runs":[527,23,1]},"entrance:1536":{"rank":551,"runs":[527,23,1]},"entrance:15368":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1537":{"rank":551,"runs":[527,23,1]},"entrance:1538":{"rank":551,"runs":[527,23,1]},"entrance:15380":{"rank":552,"runs":[528,22,1,1]},"entrance:1539":{"rank":551,"runs":[527,23,1]},"entrance:15391":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:154":{"rank":551,"runs":[527,23,1]},"entrance:1540":{"rank":551,"runs":[527,23,1]},"entrance:15402":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1541":{"rank":551,"runs":[527,23,1]},"entrance:15413":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:1542":{"rank":551,"runs":[527,23,1]},"entrance:15424":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:1543":{"rank":551,"runs":[527,23,1]},"entrance:15435":{"rank":562,"runs":[533,9,6,6,3,2,1,1,1]},"entrance:1544":{"rank":551,"runs":[527,23,1]},"entrance:15446":{"rank":564,"runs":[533,8,8,7,3,2,1,1,1]},"entrance:1545":{"rank":551,"runs":[527,23,1]},"entrance:15457":{"rank":566,"runs":[533,10,10,5,3,2,1,1,1]},"entrance:1546":{"rank":551,"runs":[527,23,1]},"entrance:15468":{"rank":568,"runs":[533,12,12,3,3,2,1,1,1]},"entrance:1547":{"rank":551,"runs":[527,23,1]},"entrance:15479":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:1548":{"rank":551,"runs":[527,23,1]},"entrance:15486":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:1549":{"rank":551,"runs":[527,23,1]},"entrance:15490":{"rank":552,"runs":[528,21,1,1,1]},"entrance:155":{"rank":551,"runs":[527,23,1]},"entrance:1550":{"rank":551,"runs":[527,23,1]},"entrance:15502":{"rank":552,"runs":[528,22,1,1]},"entrance:1551":{"rank":551,"runs":[527,23,1]},"entrance:1552":{"rank":551,"runs":[527,23,1]},"entrance:1553":{"rank":551,"runs":[527,23,1]},"entrance:1554":{"rank":551,"runs":[527,23,1]},"entrance:1555":{"rank":551,"runs":[527,23,1]},"entrance:1556":{"rank":551,"runs":[527,23,1]},"entrance:1557":{"rank":551,"runs":[527,23,1]},"entrance:1558":{"rank":551,"runs":[527,23,1]},"entrance:1559":{"rank":551,"runs":[527,23,1]},"entrance:156":{"rank":551,"runs":[527,23,1]},"entrance:1560":{"rank":551,"runs":[527,23,1]},"entrance:1561":{"rank":551,"runs":[527,23,1]},"entrance:15612":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1562":{"rank":551,"runs":[527,23,1]},"entrance:15625":{"rank":552,"runs":[528,22,1,1]},"entrance:1563":{"rank":551,"runs":[527,23,1]},"entrance:15636":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1564":{"rank":551,"runs":[527,23,1]},"entrance:15647":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1565":{"rank":551,"runs":[527,23,1]},"entrance:15658":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1566":{"rank":551,"runs":[527,23,1]},"entrance:15669":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:1567":{"rank":551,"runs":[527,23,1]},"entrance:1568":{"rank":551,"runs":[527,23,1]},"entrance:15680":{"rank":562,"runs":[535,9,5,4,4,2,1,1,1]},"entrance:1569":{"rank":551,"runs":[527,23,1]},"entrance:15691":{"rank":564,"runs":[535,7,6,6,5,2,1,1,1]},"entrance:157":{"rank":551,"runs":[527,23,1]},"entrance:1570":{"rank":551,"runs":[527,23,1]},"entrance:15702":{"rank":566,"runs":[535,8,8,5,5,2,1,1,1]},"entrance:1571":{"rank":551,"runs":[527,23,1]},"entrance:15713":{"rank":568,"runs":[535,10,10,5,3,2,1,1,1]},"entrance:1572":{"rank":551,"runs":[527,23,1]},"entrance:15724":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:1573":{"rank":551,"runs":[527,23,1]},"entrance:15731":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:15735":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1574":{"rank":551,"runs":[527,23,1]},"entrance:15748":{"rank":552,"runs":[528,22,1,1]},"entrance:1575":{"rank":551,"runs":[527,23,1]},"entrance:1576":{"rank":551,"runs":[527,23,1]},"entrance:1577":{"rank":551,"runs":[527,23,1]},"entrance:1578":{"rank":551,"runs":[527,23,1]},"entrance:1579":{"rank":551,"runs":[527,23,1]},"entrance:158":{"rank":551,"runs":[527,23,1]},"entrance:1580":{"rank":551,"runs":[527,23,1]},"entrance:1581":{"rank":551,"runs":[527,23,1]},"entrance:1582":{"rank":551,"runs":[527,23,1]},"entrance:1583":{"rank":551,"runs":[527,23,1]},"entrance:1584":{"rank":551,"runs":[527,23,1]},"entrance:1585":{"rank":551,"runs":[527,23,1]},"entrance:15858":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1586":{"rank":551,"runs":[527,23,1]},"entrance:1587":{"rank":551,"runs":[527,23,1]},"entrance:15872":{"rank":552,"runs":[528,22,1,1]},"entrance:1588":{"rank":551,"runs":[527,23,1]},"entrance:15883":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1589":{"rank":551,"runs":[527,23,1]},"entrance:15894":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:159":{"rank":551,"runs":[527,23,1]},"entrance:1590":{"rank":551,"runs":[527,23,1]},"entrance:15905":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1591":{"rank":551,"runs":[527,23,1]},"entrance:15916":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1592":{"rank":551,"runs":[527,23,1]},"entrance:15927":{"rank":562,"runs":[537,9,7,2,2,2,1,1,1]},"entrance:1593":{"rank":551,"runs":[527,23,1]},"entrance:15938":{"rank":564,"runs":[537,7,7,4,4,2,1,1,1]},"entrance:1594":{"rank":551,"runs":[527,23,1]},"entrance:15949":{"rank":566,"runs":[537,7,6,6,5,2,1,1,1]},"entrance:1595":{"rank":551,"runs":[527,23,1]},"entrance:1596":{"rank":551,"runs":[527,23,1]},"entrance:15960":{"rank":568,"runs":[537,8,8,7,3,2,1,1,1]},"entrance:1597":{"rank":551,"runs":[527,23,1]},"entrance:15971":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:15976":{"rank":570,"runs":[547,8,8,3,2,1,1]},"entrance:1598":{"rank":551,"runs":[527,23,1]},"entrance:15982":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1599":{"rank":551,"runs":[527,23,1]},"entrance:15996":{"rank":552,"runs":[528,22,1,1]},"entrance:16":{"rank":551,"runs":[527,23,1]},"entrance:160":{"rank":551,"runs":[527,23,1]},"entrance:1600":{"rank":551,"runs":[527,23,1]},"entrance:1601":{"rank":551,"runs":[527,23,1]},"entrance:1602":{"rank":551,"runs":[527,23,1]},"entrance:1603":{"rank":551,"runs":[527,23,1]},"entrance:1604":{"rank":551,"runs":[527,23,1]},"entrance:1605":{"rank":551,"runs":[527,23,1]},"entrance:1606":{"rank":551,"runs":[527,23,1]},"entrance:1607":{"rank":551,"runs":[527,23,1]},"entrance:1608":{"rank":551,"runs":[527,23,1]},"entrance:1609":{"rank":551,"runs":[527,23,1]},"entrance:161":{"rank":551,"runs":[527,23,1]},"entrance:1610":{"rank":551,"runs":[527,23,1]},"entrance:16106":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1611":{"rank":551,"runs":[527,23,1]},"entrance:1612":{"rank":551,"runs":[527,23,1]},"entrance:16121":{"rank":552,"runs":[528,22,1,1]},"entrance:1613":{"rank":551,"runs":[527,23,1]},"entrance:16132":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1614":{"rank":551,"runs":[527,23,1]},"entrance:16143":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1615":{"rank":551,"runs":[527,23,1]},"entrance:16154":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1616":{"rank":551,"runs":[527,23,1]},"entrance:16165":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1617":{"rank":551,"runs":[527,23,1]},"entrance:16176":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:1618":{"rank":551,"runs":[527,23,1]},"entrance:16187":{"rank":564,"runs":[539,9,7,2,2,2,1,1,1]},"entrance:1619":{"rank":551,"runs":[527,23,1]},"entrance:16198":{"rank":566,"runs":[539,9,5,4,4,2,1,1,1]},"entrance:162":{"rank":551,"runs":[527,23,1]},"entrance:1620":{"rank":551,"runs":[527,23,1]},"entrance:16209":{"rank":568,"runs":[539,9,6,6,3,2,1,1,1]},"entrance:1621":{"rank":551,"runs":[527,23,1]},"entrance:1622":{"rank":551,"runs":[527,23,1]},"entrance:16220":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:16225":{"rank":570,"runs":[547,8,8,3,2,1,1]},"entrance:1623":{"rank":551,"runs":[527,23,1]},"entrance:16231":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1624":{"rank":551,"runs":[527,23,1]},"entrance:16246":{"rank":552,"runs":[528,22,1,1]},"entrance:1625":{"rank":551,"runs":[527,23,1]},"entrance:1626":{"rank":551,"runs":[527,23,1]},"entrance:1627":{"rank":551,"runs":[527,23,1]},"entrance:1628":{"rank":551,"runs":[527,23,1]},"entrance:1629":{"rank":551,"runs":[527,23,1]},"entrance:163":{"rank":551,"runs":[527,23,1]},"entrance:1630":{"rank":551,"runs":[527,23,1]},"entrance:1631":{"rank":551,"runs":[527,23,1]},"entrance:1632":{"rank":551,"runs":[527,23,1]},"entrance:1633":{"rank":551,"runs":[527,23,1]},"entrance:1634":{"rank":551,"runs":[527,23,1]},"entrance:1635":{"rank":551,"runs":[527,23,1]},"entrance:16356":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1636":{"rank":551,"runs":[527,23,1]},"entrance:1637":{"rank":551,"runs":[527,23,1]},"entrance:16372":{"rank":552,"runs":[528,22,1,1]},"entrance:1638":{"rank":551,"runs":[527,23,1]},"entrance:16383":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1639":{"rank":551,"runs":[527,23,1]},"entrance:16394":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:164":{"rank":551,"runs":[527,23,1]},"entrance:1640":{"rank":551,"runs":[527,23,1]},"entrance:16405":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1641":{"rank":551,"runs":[527,23,1]},"entrance:16416":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1642":{"rank":551,"runs":[527,23,1]},"entrance:16427":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:1643":{"rank":551,"runs":[527,23,1]},"entrance:16438":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:1644":{"rank":551,"runs":[527,23,1]},"entrance:16449":{"rank":566,"runs":[541,11,5,2,2,2,1,1,1]},"entrance:1645":{"rank":551,"runs":[527,23,1]},"entrance:1646":{"rank":551,"runs":[527,23,1]},"entrance:16460":{"rank":568,"runs":[541,11,4,4,3,2,1,1,1]},"entrance:1647":{"rank":551,"runs":[527,23,1]},"entrance:16471":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:16474":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:1648":{"rank":551,"runs":[527,23,1]},"entrance:16482":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1649":{"rank":551,"runs":[527,23,1]},"entrance:16498":{"rank":552,"runs":[528,22,1,1]},"entrance:165":{"rank":551,"runs":[527,23,1]},"entrance:1650":{"rank":551,"runs":[527,23,1]},"entrance:1651":{"rank":551,"runs":[527,23,1]},"entrance:1652":{"rank":551,"runs":[527,23,1]},"entrance:1653":{"rank":551,"runs":[527,23,1]},"entrance:1654":{"rank":551,"runs":[527,23,1]},"entrance:1655":{"rank":551,"runs":[527,23,1]},"entrance:1656":{"rank":551,"runs":[527,23,1]},"entrance:1657":{"rank":551,"runs":[527,23,1]},"entrance:1658":{"rank":551,"runs":[527,23,1]},"entrance:1659":{"rank":551,"runs":[527,23,1]},"entrance:166":{"rank":551,"runs":[527,23,1]},"entrance:1660":{"rank":551,"runs":[527,23,1]},"entrance:16608":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1661":{"rank":551,"runs":[527,23,1]},"entrance:1662":{"rank":551,"runs":[527,23,1]},"entrance:16625":{"rank":552,"runs":[528,22,1,1]},"entrance:1663":{"rank":551,"runs":[527,23,1]},"entrance:16636":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1664":{"rank":551,"runs":[527,23,1]},"entrance:16647":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1665":{"rank":551,"runs":[527,23,1]},"entrance:16658":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1666":{"rank":551,"runs":[527,23,1]},"entrance:16669":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1667":{"rank":551,"runs":[527,23,1]},"entrance:1668":{"rank":551,"runs":[527,23,1]},"entrance:16680":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:1669":{"rank":551,"runs":[527,23,1]},"entrance:16691":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:167":{"rank":551,"runs":[527,23,1]},"entrance:1670":{"rank":551,"runs":[527,23,1]},"entrance:16702":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:1671":{"rank":551,"runs":[527,23,1]},"entrance:16713":{"rank":568,"runs":[543,13,3,2,2,2,1,1,1]},"entrance:1672":{"rank":551,"runs":[527,23,1]},"entrance:16724":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:16727":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:1673":{"rank":551,"runs":[527,23,1]},"entrance:16735":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1674":{"rank":551,"runs":[527,23,1]},"entrance:1675":{"rank":551,"runs":[527,23,1]},"entrance:16752":{"rank":552,"runs":[528,22,1,1]},"entrance:1676":{"rank":551,"runs":[527,23,1]},"entrance:1677":{"rank":551,"runs":[527,23,1]},"entrance:1678":{"rank":551,"runs":[527,23,1]},"entrance:1679":{"rank":551,"runs":[527,23,1]},"entrance:168":{"rank":551,"runs":[527,23,1]},"entrance:1680":{"rank":551,"runs":[527,23,1]},"entrance:1681":{"rank":551,"runs":[527,23,1]},"entrance:1682":{"rank":551,"runs":[527,23,1]},"entrance:1683":{"rank":551,"runs":[527,23,1]},"entrance:1684":{"rank":551,"runs":[527,23,1]},"entrance:1685":{"rank":551,"runs":[527,23,1]},"entrance:1686":{"rank":551,"runs":[527,23,1]},"entrance:16862":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1687":{"rank":551,"runs":[527,23,1]},"entrance:1688":{"rank":551,"runs":[527,23,1]},"entrance:16880":{"rank":552,"runs":[528,22,1,1]},"entrance:1689":{"rank":551,"runs":[527,23,1]},"entrance:16891":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:169":{"rank":551,"runs":[527,23,1]},"entrance:1690":{"rank":551,"runs":[527,23,1]},"entrance:16902":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1691":{"rank":551,"runs":[527,23,1]},"entrance:16913":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1692":{"rank":551,"runs":[527,23,1]},"entrance:16924":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1693":{"rank":551,"runs":[527,23,1]},"entrance:16935":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:1694":{"rank":551,"runs":[527,23,1]},"entrance:16946":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:1695":{"rank":551,"runs":[527,23,1]},"entrance:16957":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:1696":{"rank":551,"runs":[527,23,1]},"entrance:16968":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:1697":{"rank":551,"runs":[527,23,1]},"entrance:16979":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:1698":{"rank":551,"runs":[527,23,1]},"entrance:16980":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:1699":{"rank":551,"runs":[527,23,1]},"entrance:16990":{"rank":552,"runs":[528,21,1,1,1]},"entrance:17":{"rank":551,"runs":[527,23,1]},"entrance:170":{"rank":551,"runs":[527,23,1]},"entrance:1700":{"rank":551,"runs":[527,23,1]},"entrance:17008":{"rank":552,"runs":[528,22,1,1]},"entrance:1701":{"rank":551,"runs":[527,23,1]},"entrance:1702":{"rank":551,"runs":[527,23,1]},"entrance:1703":{"rank":551,"runs":[527,23,1]},"entrance:1704":{"rank":551,"runs":[527,23,1]},"entrance:1705":{"rank":551,"runs":[527,23,1]},"entrance:1706":{"rank":551,"runs":[527,23,1]},"entrance:1707":{"rank":551,"runs":[527,23,1]},"entrance:1708":{"rank":551,"runs":[527,23,1]},"entrance:1709":{"rank":551,"runs":[527,23,1]},"entrance:171":{"rank":551,"runs":[527,23,1]},"entrance:1710":{"rank":551,"runs":[527,23,1]},"entrance:1711":{"rank":551,"runs":[527,23,1]},"entrance:17118":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1712":{"rank":551,"runs":[527,23,1]},"entrance:1713":{"rank":551,"runs":[527,23,1]},"entrance:17137":{"rank":552,"runs":[528,22,1,1]},"entrance:1714":{"rank":551,"runs":[527,23,1]},"entrance:17148":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:1715":{"rank":551,"runs":[527,23,1]},"entrance:17159":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:1716":{"rank":551,"runs":[527,23,1]},"entrance:1717":{"rank":551,"runs":[527,23,1]},"entrance:17170":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:1718":{"rank":551,"runs":[527,23,1]},"entrance:17181":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:1719":{"rank":551,"runs":[527,23,1]},"entrance:17192":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:172":{"rank":551,"runs":[527,23,1]},"entrance:1720":{"rank":551,"runs":[527,23,1]},"entrance:17203":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:1721":{"rank":551,"runs":[527,23,1]},"entrance:17214":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:1722":{"rank":551,"runs":[527,23,1]},"entrance:17225":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:1723":{"rank":551,"runs":[527,23,1]},"entrance:17236":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:17237":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:1724":{"rank":551,"runs":[527,23,1]},"entrance:17247":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1725":{"rank":551,"runs":[527,23,1]},"entrance:1726":{"rank":551,"runs":[527,23,1]},"entrance:17266":{"rank":552,"runs":[528,22,1,1]},"entrance:1727":{"rank":551,"runs":[527,23,1]},"entrance:1728":{"rank":551,"runs":[527,23,1]},"entrance:1729":{"rank":551,"runs":[527,23,1]},"entrance:173":{"rank":551,"runs":[527,23,1]},"entrance:1730":{"rank":551,"runs":[527,23,1]},"entrance:1731":{"rank":551,"runs":[527,23,1]},"entrance:1732":{"rank":551,"runs":[527,23,1]},"entrance:1733":{"rank":551,"runs":[527,23,1]},"entrance:1734":{"rank":551,"runs":[527,23,1]},"entrance:1735":{"rank":551,"runs":[527,23,1]},"entrance:1736":{"rank":551,"runs":[527,23,1]},"entrance:1737":{"rank":551,"runs":[527,23,1]},"entrance:17376":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1738":{"rank":551,"runs":[527,23,1]},"entrance:1739":{"rank":551,"runs":[527,23,1]},"entrance:174":{"rank":551,"runs":[527,23,1]},"entrance:1740":{"rank":551,"runs":[527,23,1]},"entrance:1741":{"rank":551,"runs":[527,23,1]},"entrance:1742":{"rank":551,"runs":[527,23,1]},"entrance:1743":{"rank":551,"runs":[527,23,1]},"entrance:1744":{"rank":551,"runs":[527,23,1]},"entrance:1745":{"rank":551,"runs":[527,23,1]},"entrance:1746":{"rank":551,"runs":[527,23,1]},"entrance:1747":{"rank":551,"runs":[527,23,1]},"entrance:1748":{"rank":551,"runs":[527,23,1]},"entrance:1749":{"rank":551,"runs":[527,23,1]},"entrance:17494":{"rank":571,"runs":[548,19,2,1,1]},"entrance:17495":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:17496":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:17497":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:17498":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:17499":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:175":{"rank":551,"runs":[527,23,1]},"entrance:1750":{"rank":551,"runs":[527,23,1]},"entrance:17500":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:17501":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:17502":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:17503":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:17505":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1751":{"rank":551,"runs":[527,23,1]},"entrance:1752":{"rank":551,"runs":[527,23,1]},"entrance:1753":{"rank":551,"runs":[527,23,1]},"entrance:1754":{"rank":551,"runs":[527,23,1]},"entrance:1755":{"rank":551,"runs":[527,23,1]},"entrance:1756":{"rank":551,"runs":[527,23,1]},"entrance:1757":{"rank":551,"runs":[527,23,1]},"entrance:1758":{"rank":551,"runs":[527,23,1]},"entrance:1759":{"rank":551,"runs":[527,23,1]},"entrance:176":{"rank":551,"runs":[527,23,1]},"entrance:1760":{"rank":551,"runs":[527,23,1]},"entrance:1761":{"rank":551,"runs":[527,23,1]},"entrance:1762":{"rank":551,"runs":[527,23,1]},"entrance:1763":{"rank":551,"runs":[527,23,1]},"entrance:1764":{"rank":551,"runs":[527,23,1]},"entrance:1765":{"rank":551,"runs":[527,23,1]},"entrance:1766":{"rank":551,"runs":[527,23,1]},"entrance:1767":{"rank":551,"runs":[527,23,1]},"entrance:1768":{"rank":551,"runs":[527,23,1]},"entrance:1769":{"rank":551,"runs":[527,23,1]},"entrance:177":{"rank":551,"runs":[527,23,1]},"entrance:1770":{"rank":551,"runs":[527,23,1]},"entrance:1771":{"rank":551,"runs":[527,23,1]},"entrance:1772":{"rank":551,"runs":[527,23,1]},"entrance:1773":{"rank":551,"runs":[527,23,1]},"entrance:1774":{"rank":551,"runs":[527,23,1]},"entrance:1775":{"rank":551,"runs":[527,23,1]},"entrance:1776":{"rank":551,"runs":[527,23,1]},"entrance:1777":{"rank":551,"runs":[527,23,1]},"entrance:1778":{"rank":551,"runs":[527,23,1]},"entrance:1779":{"rank":551,"runs":[527,23,1]},"entrance:178":{"rank":551,"runs":[527,23,1]},"entrance:1780":{"rank":551,"runs":[527,23,1]},"entrance:1781":{"rank":551,"runs":[527,23,1]},"entrance:1782":{"rank":551,"runs":[527,23,1]},"entrance:1783":{"rank":551,"runs":[527,23,1]},"entrance:1784":{"rank":551,"runs":[527,23,1]},"entrance:1785":{"rank":551,"runs":[527,23,1]},"entrance:1786":{"rank":551,"runs":[527,23,1]},"entrance:1787":{"rank":551,"runs":[527,23,1]},"entrance:1788":{"rank":551,"runs":[527,23,1]},"entrance:1789":{"rank":551,"runs":[527,23,1]},"entrance:179":{"rank":551,"runs":[527,23,1]},"entrance:1790":{"rank":551,"runs":[527,23,1]},"entrance:1791":{"rank":551,"runs":[527,23,1]},"entrance:1792":{"rank":551,"runs":[527,23,1]},"entrance:1793":{"rank":551,"runs":[527,23,1]},"entrance:1794":{"rank":551,"runs":[527,23,1]},"entrance:1795":{"rank":551,"runs":[527,23,1]},"entrance:1796":{"rank":551,"runs":[527,23,1]},"entrance:1797":{"rank":551,"runs":[527,23,1]},"entrance:1798":{"rank":551,"runs":[527,23,1]},"entrance:1799":{"rank":551,"runs":[527,23,1]},"entrance:18":{"rank":551,"runs":[527,23,1]},"entrance:180":{"rank":551,"runs":[527,23,1]},"entrance:1800":{"rank":551,"runs":[527,23,1]},"entrance:18000":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:1801":{"rank":551,"runs":[527,23,1]},"entrance:1802":{"rank":551,"runs":[527,23,1]},"entrance:18025":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18026":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1803":{"rank":551,"runs":[527,23,1]},"entrance:1804":{"rank":551,"runs":[527,23,1]},"entrance:18049":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1805":{"rank":551,"runs":[527,23,1]},"entrance:18050":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1806":{"rank":551,"runs":[527,23,1]},"entrance:1807":{"rank":551,"runs":[527,23,1]},"entrance:18070":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18071":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1808":{"rank":551,"runs":[527,23,1]},"entrance:18088":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18089":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1809":{"rank":551,"runs":[527,23,1]},"entrance:181":{"rank":551,"runs":[527,23,1]},"entrance:1810":{"rank":551,"runs":[527,23,1]},"entrance:18103":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18104":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1811":{"rank":551,"runs":[527,23,1]},"entrance:18115":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18116":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1812":{"rank":551,"runs":[527,23,1]},"entrance:18124":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18125":{"rank":552,"runs":[528,21,1,1,1]},"entrance:1813":{"rank":551,"runs":[527,23,1]},"entrance:18130":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18131":{"rank":552,"runs":[528,21,1,1,1]},"entrance:18132":{"rank":554,"runs":[530,19,3,1,1]},"entrance:18138":{"rank":554,"runs":[530,15,4,2,1,1,1]},"entrance:1814":{"rank":551,"runs":[527,23,1]},"entrance:18149":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:1815":{"rank":551,"runs":[527,23,1]},"entrance:18150":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:18159":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:1816":{"rank":551,"runs":[527,23,1]},"entrance:18160":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:18166":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:18167":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:1817":{"rank":551,"runs":[527,23,1]},"entrance:18170":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:18171":{"rank":556,"runs":[532,17,5,1,1]},"entrance:18174":{"rank":556,"runs":[532,13,4,4,1,1,1]},"entrance:18175":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:18178":{"rank":556,"runs":[532,13,4,4,1,1,1]},"entrance:18179":{"rank":556,"runs":[532,13,4,4,1,1,1]},"entrance:1818":{"rank":551,"runs":[527,23,1]},"entrance:18186":{"rank":560,"runs":[536,9,8,4,1,1,1]},"entrance:1819":{"rank":551,"runs":[527,23,1]},"entrance:18191":{"rank":562,"runs":[539,11,4,3,3,1,1]},"entrance:18192":{"rank":568,"runs":[544,16,4,1,1,1,1]},"entrance:18198":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:182":{"rank":551,"runs":[527,23,1]},"entrance:1820":{"rank":551,"runs":[527,23,1]},"entrance:18200":{"rank":568,"runs":[540,12,3,3,3,2,1,1,1,1,1]},"entrance:18202":{"rank":566,"runs":[542,12,5,2,1,1,1,1,1]},"entrance:1821":{"rank":551,"runs":[527,23,1]},"entrance:1822":{"rank":551,"runs":[527,23,1]},"entrance:18223":{"rank":566,"runs":[543,8,7,3,3,1,1]},"entrance:18224":{"rank":566,"runs":[538,8,4,4,3,2,2,1,1,1,1,1]},"entrance:1823":{"rank":551,"runs":[527,23,1]},"entrance:18233":{"rank":566,"runs":[539,4,4,4,4,3,3,3,1,1]},"entrance:18234":{"rank":566,"runs":[534,8,8,4,3,2,2,1,1,1,1,1]},"entrance:1824":{"rank":551,"runs":[527,23,1]},"entrance:18244":{"rank":566,"runs":[535,8,8,4,3,3,3,1,1]},"entrance:1825":{"rank":551,"runs":[527,23,1]},"entrance:18255":{"rank":568,"runs":[543,11,4,3,2,2,1,1,1]},"entrance:18256":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:18258":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:18259":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:1826":{"rank":551,"runs":[527,23,1]},"entrance:18260":{"rank":569,"runs":[543,12,3,3,3,2,1,1,1]},"entrance:18261":{"rank":569,"runs":[543,12,3,3,3,2,1,1,1]},"entrance:18264":{"rank":569,"runs":[539,8,7,7,3,2,1,1,1]},"entrance:18265":{"rank":569,"runs":[535,11,11,4,3,2,1,1,1]},"entrance:18266":{"rank":569,"runs":[539,8,7,7,3,2,1,1,1]},"entrance:18267":{"rank":569,"runs":[535,11,11,4,3,2,1,1,1]},"entrance:1827":{"rank":551,"runs":[527,23,1]},"entrance:18270":{"rank":569,"runs":[531,15,15,3,2,1,1,1]},"entrance:18271":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:18272":{"rank":569,"runs":[531,15,15,3,2,1,1,1]},"entrance:18273":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:18274":{"rank":566,"runs":[539,7,4,4,4,3,3,1,1]},"entrance:18275":{"rank":568,"runs":[539,7,6,6,4,3,1,1,1]},"entrance:18276":{"rank":566,"runs":[543,11,7,3,1,1]},"entrance:18277":{"rank":568,"runs":[535,10,10,4,3,3,1,1,1]},"entrance:1828":{"rank":551,"runs":[527,23,1]},"entrance:1829":{"rank":551,"runs":[527,23,1]},"entrance:183":{"rank":551,"runs":[527,23,1]},"entrance:1830":{"rank":551,"runs":[527,23,1]},"entrance:18303":{"rank":571,"runs":[548,19,2,1,1]},"entrance:18309":{"rank":571,"runs":[548,19,2,1,1]},"entrance:1831":{"rank":551,"runs":[527,23,1]},"entrance:18310":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:1832":{"rank":551,"runs":[527,23,1]},"entrance:1833":{"rank":551,"runs":[527,23,1]},"entrance:1834":{"rank":551,"runs":[527,23,1]},"entrance:18340":{"rank":571,"runs":[547,16,2,1,1,1,1,1,1]},"entrance:18346":{"rank":571,"runs":[547,16,2,1,1,1,1,1,1]},"entrance:18347":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:1835":{"rank":551,"runs":[527,23,1]},"entrance:1836":{"rank":551,"runs":[527,23,1]},"entrance:1837":{"rank":551,"runs":[527,23,1]},"entrance:18378":{"rank":571,"runs":[545,14,3,3,2,1,1,1,1]},"entrance:1838":{"rank":551,"runs":[527,23,1]},"entrance:18384":{"rank":571,"runs":[545,14,3,3,2,1,1,1,1]},"entrance:18385":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:1839":{"rank":551,"runs":[527,23,1]},"entrance:184":{"rank":551,"runs":[527,23,1]},"entrance:1840":{"rank":551,"runs":[527,23,1]},"entrance:1841":{"rank":551,"runs":[527,23,1]},"entrance:18416":{"rank":571,"runs":[543,12,5,5,2,1,1,1,1]},"entrance:1842":{"rank":551,"runs":[527,23,1]},"entrance:18422":{"rank":571,"runs":[543,12,5,5,2,1,1,1,1]},"entrance:18423":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:1843":{"rank":551,"runs":[527,23,1]},"entrance:1844":{"rank":551,"runs":[527,23,1]},"entrance:1845":{"rank":551,"runs":[527,23,1]},"entrance:18455":{"rank":571,"runs":[541,10,7,7,2,1,1,1,1]},"entrance:1846":{"rank":551,"runs":[527,23,1]},"entrance:18461":{"rank":571,"runs":[541,10,7,7,2,1,1,1,1]},"entrance:18462":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:1847":{"rank":551,"runs":[527,23,1]},"entrance:1848":{"rank":551,"runs":[527,23,1]},"entrance:1849":{"rank":551,"runs":[527,23,1]},"entrance:18494":{"rank":571,"runs":[539,9,9,8,2,1,1,1,1]},"entrance:185":{"rank":551,"runs":[527,23,1]},"entrance:1850":{"rank":551,"runs":[527,23,1]},"entrance:18500":{"rank":571,"runs":[539,9,9,8,2,1,1,1,1]},"entrance:18501":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:1851":{"rank":551,"runs":[527,23,1]},"entrance:1852":{"rank":551,"runs":[527,23,1]},"entrance:1853":{"rank":551,"runs":[527,23,1]},"entrance:18534":{"rank":571,"runs":[537,11,11,6,2,1,1,1,1]},"entrance:1854":{"rank":551,"runs":[527,23,1]},"entrance:18540":{"rank":571,"runs":[537,11,11,6,2,1,1,1,1]},"entrance:18541":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:1855":{"rank":551,"runs":[527,23,1]},"entrance:1856":{"rank":551,"runs":[527,23,1]},"entrance:1857":{"rank":551,"runs":[527,23,1]},"entrance:18574":{"rank":571,"runs":[535,13,13,4,2,1,1,1,1]},"entrance:1858":{"rank":551,"runs":[527,23,1]},"entrance:18580":{"rank":571,"runs":[535,13,13,4,2,1,1,1,1]},"entrance:18581":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:1859":{"rank":551,"runs":[527,23,1]},"entrance:186":{"rank":551,"runs":[527,23,1]},"entrance:1860":{"rank":551,"runs":[527,23,1]},"entrance:1861":{"rank":551,"runs":[527,23,1]},"entrance:18615":{"rank":571,"runs":[533,15,15,2,2,1,1,1,1]},"entrance:1862":{"rank":551,"runs":[527,23,1]},"entrance:18621":{"rank":571,"runs":[533,15,15,2,2,1,1,1,1]},"entrance:18622":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:1863":{"rank":551,"runs":[527,23,1]},"entrance:1864":{"rank":551,"runs":[527,23,1]},"entrance:1865":{"rank":551,"runs":[527,23,1]},"entrance:18656":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:1866":{"rank":551,"runs":[527,23,1]},"entrance:18662":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:18668":{"rank":570,"runs":[544,14,3,3,2,1,1,1,1]},"entrance:18669":{"rank":570,"runs":[542,12,5,5,2,1,1,1,1]},"entrance:1867":{"rank":551,"runs":[527,23,1]},"entrance:18670":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:18671":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:18672":{"rank":570,"runs":[540,10,7,7,2,1,1,1,1]},"entrance:18673":{"rank":570,"runs":[538,9,9,8,2,1,1,1,1]},"entrance:18674":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:18675":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:18676":{"rank":570,"runs":[536,11,11,6,2,1,1,1,1]},"entrance:18677":{"rank":570,"runs":[534,13,13,4,2,1,1,1,1]},"entrance:18678":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:18679":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:1868":{"rank":551,"runs":[527,23,1]},"entrance:18680":{"rank":570,"runs":[532,15,15,2,2,1,1,1,1]},"entrance:18681":{"rank":570,"runs":[530,17,17,2,1,1,1,1]},"entrance:18682":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:18683":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:18684":{"rank":570,"runs":[545,10,3,3,2,2,2,1,1,1]},"entrance:18685":{"rank":570,"runs":[543,8,4,4,3,3,2,1,1,1]},"entrance:18686":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:18687":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:18688":{"rank":570,"runs":[541,6,6,6,3,3,2,1,1,1]},"entrance:18689":{"rank":570,"runs":[539,8,8,4,3,3,2,1,1,1]},"entrance:1869":{"rank":551,"runs":[527,23,1]},"entrance:18690":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:18691":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:18692":{"rank":570,"runs":[537,10,10,3,3,2,2,1,1,1]},"entrance:18693":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:18694":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:18695":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:18696":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:18697":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:18698":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:18699":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:187":{"rank":551,"runs":[527,23,1]},"entrance:1870":{"rank":551,"runs":[527,23,1]},"entrance:18700":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:18701":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:18702":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:18703":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:18704":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:18705":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:18706":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:18707":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:1871":{"rank":551,"runs":[527,23,1]},"entrance:1872":{"rank":551,"runs":[527,23,1]},"entrance:1873":{"rank":551,"runs":[527,23,1]},"entrance:1874":{"rank":551,"runs":[527,23,1]},"entrance:1875":{"rank":551,"runs":[527,23,1]},"entrance:1876":{"rank":551,"runs":[527,23,1]},"entrance:1877":{"rank":551,"runs":[527,23,1]},"entrance:1878":{"rank":551,"runs":[527,23,1]},"entrance:18787":{"rank":570,"runs":[546,16,2,1,1,1,1,1,1]},"entrance:1879":{"rank":551,"runs":[527,23,1]},"entrance:188":{"rank":551,"runs":[527,23,1]},"entrance:1880":{"rank":551,"runs":[527,23,1]},"entrance:1881":{"rank":551,"runs":[527,23,1]},"entrance:1882":{"rank":551,"runs":[527,23,1]},"entrance:1883":{"rank":551,"runs":[527,23,1]},"entrance:1884":{"rank":551,"runs":[527,23,1]},"entrance:1885":{"rank":551,"runs":[527,23,1]},"entrance:18856":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1886":{"rank":551,"runs":[527,23,1]},"entrance:18865":{"rank":552,"runs":[528,22,1,1]},"entrance:18868":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1887":{"rank":551,"runs":[527,23,1]},"entrance:1888":{"rank":551,"runs":[527,23,1]},"entrance:18880":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1889":{"rank":551,"runs":[527,23,1]},"entrance:18892":{"rank":560,"runs":[536,13,9,1,1]},"entrance:189":{"rank":551,"runs":[527,23,1]},"entrance:1890":{"rank":551,"runs":[527,23,1]},"entrance:18904":{"rank":562,"runs":[538,11,11,1,1]},"entrance:1891":{"rank":551,"runs":[527,23,1]},"entrance:18916":{"rank":564,"runs":[540,13,9,1,1]},"entrance:1892":{"rank":551,"runs":[527,23,1]},"entrance:18928":{"rank":566,"runs":[542,15,7,1,1]},"entrance:1893":{"rank":551,"runs":[527,23,1]},"entrance:1894":{"rank":551,"runs":[527,23,1]},"entrance:1895":{"rank":551,"runs":[527,23,1]},"entrance:1896":{"rank":551,"runs":[527,23,1]},"entrance:1897":{"rank":551,"runs":[527,23,1]},"entrance:18973":{"rank":570,"runs":[546,16,2,1,1,1,1,1,1]},"entrance:1898":{"rank":551,"runs":[527,23,1]},"entrance:18986":{"rank":552,"runs":[528,22,1,1]},"entrance:1899":{"rank":551,"runs":[527,23,1]},"entrance:18997":{"rank":554,"runs":[530,20,3,1]},"entrance:19":{"rank":551,"runs":[527,23,1]},"entrance:190":{"rank":551,"runs":[527,23,1]},"entrance:1900":{"rank":551,"runs":[527,23,1]},"entrance:19008":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:1901":{"rank":551,"runs":[527,23,1]},"entrance:19019":{"rank":558,"runs":[531,12,4,3,3,3,1,1]},"entrance:1902":{"rank":551,"runs":[527,23,1]},"entrance:1903":{"rank":551,"runs":[527,23,1]},"entrance:19030":{"rank":560,"runs":[531,10,6,5,3,3,1,1]},"entrance:1904":{"rank":551,"runs":[527,23,1]},"entrance:1905":{"rank":551,"runs":[527,23,1]},"entrance:19052":{"rank":564,"runs":[531,10,9,6,3,3,1,1]},"entrance:1906":{"rank":551,"runs":[527,23,1]},"entrance:19063":{"rank":566,"runs":[531,12,11,4,3,3,1,1]},"entrance:1907":{"rank":551,"runs":[527,23,1]},"entrance:19074":{"rank":568,"runs":[531,14,13,3,3,2,1,1]},"entrance:1908":{"rank":551,"runs":[527,23,1]},"entrance:19085":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:1909":{"rank":551,"runs":[527,23,1]},"entrance:19099":{"rank":554,"runs":[530,19,3,1,1]},"entrance:191":{"rank":551,"runs":[527,23,1]},"entrance:1910":{"rank":551,"runs":[527,23,1]},"entrance:19108":{"rank":552,"runs":[528,22,1,1]},"entrance:1911":{"rank":551,"runs":[527,23,1]},"entrance:19111":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1912":{"rank":551,"runs":[527,23,1]},"entrance:19123":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1913":{"rank":551,"runs":[527,23,1]},"entrance:19135":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1914":{"rank":551,"runs":[527,23,1]},"entrance:19147":{"rank":562,"runs":[538,11,11,1,1]},"entrance:1915":{"rank":551,"runs":[527,23,1]},"entrance:19159":{"rank":564,"runs":[540,13,9,1,1]},"entrance:1916":{"rank":551,"runs":[527,23,1]},"entrance:1917":{"rank":551,"runs":[527,23,1]},"entrance:19171":{"rank":566,"runs":[541,13,5,2,2,1,1,1]},"entrance:1918":{"rank":551,"runs":[527,23,1]},"entrance:1919":{"rank":551,"runs":[527,23,1]},"entrance:192":{"rank":551,"runs":[527,23,1]},"entrance:1920":{"rank":551,"runs":[527,23,1]},"entrance:1921":{"rank":551,"runs":[527,23,1]},"entrance:19214":{"rank":570,"runs":[547,12,3,3,3,1,1]},"entrance:1922":{"rank":551,"runs":[527,23,1]},"entrance:1923":{"rank":551,"runs":[527,23,1]},"entrance:19230":{"rank":552,"runs":[528,22,1,1]},"entrance:1924":{"rank":551,"runs":[527,23,1]},"entrance:19241":{"rank":554,"runs":[530,20,3,1]},"entrance:1925":{"rank":551,"runs":[527,23,1]},"entrance:19252":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:1926":{"rank":551,"runs":[527,23,1]},"entrance:1927":{"rank":551,"runs":[527,23,1]},"entrance:1928":{"rank":551,"runs":[527,23,1]},"entrance:1929":{"rank":551,"runs":[527,23,1]},"entrance:193":{"rank":551,"runs":[527,23,1]},"entrance:1930":{"rank":551,"runs":[527,23,1]},"entrance:1931":{"rank":551,"runs":[527,23,1]},"entrance:1932":{"rank":551,"runs":[527,23,1]},"entrance:19329":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:1933":{"rank":551,"runs":[527,23,1]},"entrance:1934":{"rank":551,"runs":[527,23,1]},"entrance:19344":{"rank":554,"runs":[530,19,3,1,1]},"entrance:1935":{"rank":551,"runs":[527,23,1]},"entrance:19353":{"rank":552,"runs":[528,22,1,1]},"entrance:19356":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1936":{"rank":551,"runs":[527,23,1]},"entrance:19368":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1937":{"rank":551,"runs":[527,23,1]},"entrance:1938":{"rank":551,"runs":[527,23,1]},"entrance:19380":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1939":{"rank":551,"runs":[527,23,1]},"entrance:19392":{"rank":562,"runs":[538,11,11,1,1]},"entrance:194":{"rank":551,"runs":[527,23,1]},"entrance:1940":{"rank":551,"runs":[527,23,1]},"entrance:19404":{"rank":564,"runs":[539,11,7,2,2,1,1,1]},"entrance:1941":{"rank":551,"runs":[527,23,1]},"entrance:19416":{"rank":566,"runs":[539,11,5,4,3,2,1,1]},"entrance:1942":{"rank":551,"runs":[527,23,1]},"entrance:1943":{"rank":551,"runs":[527,23,1]},"entrance:1944":{"rank":551,"runs":[527,23,1]},"entrance:1945":{"rank":551,"runs":[527,23,1]},"entrance:19459":{"rank":570,"runs":[547,12,3,3,3,1,1]},"entrance:1946":{"rank":551,"runs":[527,23,1]},"entrance:1947":{"rank":551,"runs":[527,23,1]},"entrance:19476":{"rank":552,"runs":[528,22,1,1]},"entrance:1948":{"rank":551,"runs":[527,23,1]},"entrance:19487":{"rank":554,"runs":[530,20,3,1]},"entrance:1949":{"rank":551,"runs":[527,23,1]},"entrance:19498":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:195":{"rank":551,"runs":[527,23,1]},"entrance:1950":{"rank":551,"runs":[527,23,1]},"entrance:19509":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:1951":{"rank":551,"runs":[527,23,1]},"entrance:1952":{"rank":551,"runs":[527,23,1]},"entrance:1953":{"rank":551,"runs":[527,23,1]},"entrance:1954":{"rank":551,"runs":[527,23,1]},"entrance:1955":{"rank":551,"runs":[527,23,1]},"entrance:1956":{"rank":551,"runs":[527,23,1]},"entrance:1957":{"rank":551,"runs":[527,23,1]},"entrance:19575":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:1958":{"rank":551,"runs":[527,23,1]},"entrance:1959":{"rank":551,"runs":[527,23,1]},"entrance:19591":{"rank":554,"runs":[530,19,3,1,1]},"entrance:196":{"rank":551,"runs":[527,23,1]},"entrance:1960":{"rank":551,"runs":[527,23,1]},"entrance:19600":{"rank":552,"runs":[528,22,1,1]},"entrance:19603":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1961":{"rank":551,"runs":[527,23,1]},"entrance:19615":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1962":{"rank":551,"runs":[527,23,1]},"entrance:19627":{"rank":560,"runs":[536,13,9,1,1]},"entrance:1963":{"rank":551,"runs":[527,23,1]},"entrance:19639":{"rank":562,"runs":[537,9,9,2,2,1,1,1]},"entrance:1964":{"rank":551,"runs":[527,23,1]},"entrance:1965":{"rank":551,"runs":[527,23,1]},"entrance:19651":{"rank":564,"runs":[537,9,7,4,3,2,1,1]},"entrance:1966":{"rank":551,"runs":[527,23,1]},"entrance:19663":{"rank":566,"runs":[537,9,6,5,5,2,1,1]},"entrance:1967":{"rank":551,"runs":[527,23,1]},"entrance:1968":{"rank":551,"runs":[527,23,1]},"entrance:1969":{"rank":551,"runs":[527,23,1]},"entrance:197":{"rank":551,"runs":[527,23,1]},"entrance:1970":{"rank":551,"runs":[527,23,1]},"entrance:19704":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:1971":{"rank":551,"runs":[527,23,1]},"entrance:1972":{"rank":551,"runs":[527,23,1]},"entrance:19724":{"rank":552,"runs":[528,22,1,1]},"entrance:1973":{"rank":551,"runs":[527,23,1]},"entrance:19735":{"rank":554,"runs":[530,20,3,1]},"entrance:1974":{"rank":551,"runs":[527,23,1]},"entrance:19746":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:1975":{"rank":551,"runs":[527,23,1]},"entrance:19757":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:1976":{"rank":551,"runs":[527,23,1]},"entrance:19768":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:1977":{"rank":551,"runs":[527,23,1]},"entrance:1978":{"rank":551,"runs":[527,23,1]},"entrance:1979":{"rank":551,"runs":[527,23,1]},"entrance:198":{"rank":551,"runs":[527,23,1]},"entrance:1980":{"rank":551,"runs":[527,23,1]},"entrance:1981":{"rank":551,"runs":[527,23,1]},"entrance:1982":{"rank":551,"runs":[527,23,1]},"entrance:19823":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:1983":{"rank":551,"runs":[527,23,1]},"entrance:1984":{"rank":551,"runs":[527,23,1]},"entrance:19840":{"rank":554,"runs":[530,19,3,1,1]},"entrance:19849":{"rank":552,"runs":[528,22,1,1]},"entrance:1985":{"rank":551,"runs":[527,23,1]},"entrance:19852":{"rank":556,"runs":[532,17,5,1,1]},"entrance:1986":{"rank":551,"runs":[527,23,1]},"entrance:19864":{"rank":558,"runs":[534,15,7,1,1]},"entrance:1987":{"rank":551,"runs":[527,23,1]},"entrance:19876":{"rank":560,"runs":[535,11,7,2,2,1,1,1]},"entrance:1988":{"rank":551,"runs":[527,23,1]},"entrance:19888":{"rank":562,"runs":[535,9,7,4,3,2,1,1]},"entrance:1989":{"rank":551,"runs":[527,23,1]},"entrance:199":{"rank":551,"runs":[527,23,1]},"entrance:1990":{"rank":551,"runs":[527,23,1]},"entrance:19900":{"rank":564,"runs":[535,7,7,6,5,2,1,1]},"entrance:1991":{"rank":551,"runs":[527,23,1]},"entrance:19912":{"rank":566,"runs":[535,8,7,7,5,2,1,1]},"entrance:1992":{"rank":551,"runs":[527,23,1]},"entrance:1993":{"rank":551,"runs":[527,23,1]},"entrance:1994":{"rank":551,"runs":[527,23,1]},"entrance:1995":{"rank":551,"runs":[527,23,1]},"entrance:19953":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:1996":{"rank":551,"runs":[527,23,1]},"entrance:1997":{"rank":551,"runs":[527,23,1]},"entrance:19974":{"rank":552,"runs":[528,22,1,1]},"entrance:1998":{"rank":551,"runs":[527,23,1]},"entrance:19985":{"rank":554,"runs":[530,20,3,1]},"entrance:1999":{"rank":551,"runs":[527,23,1]},"entrance:19996":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:2":{"rank":551,"runs":[527,23,1]},"entrance:20":{"rank":551,"runs":[527,23,1]},"entrance:200":{"rank":551,"runs":[527,23,1]},"entrance:2000":{"rank":551,"runs":[527,23,1]},"entrance:20007":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:2001":{"rank":551,"runs":[527,23,1]},"entrance:20018":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:2002":{"rank":551,"runs":[527,23,1]},"entrance:20029":{"rank":562,"runs":[531,10,8,7,3,1,1,1]},"entrance:2003":{"rank":551,"runs":[527,23,1]},"entrance:2004":{"rank":551,"runs":[527,23,1]},"entrance:2005":{"rank":551,"runs":[527,23,1]},"entrance:2006":{"rank":551,"runs":[527,23,1]},"entrance:2007":{"rank":551,"runs":[527,23,1]},"entrance:20073":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:2008":{"rank":551,"runs":[527,23,1]},"entrance:2009":{"rank":551,"runs":[527,23,1]},"entrance:20091":{"rank":554,"runs":[530,19,3,1,1]},"entrance:201":{"rank":551,"runs":[527,23,1]},"entrance:2010":{"rank":551,"runs":[527,23,1]},"entrance:20100":{"rank":552,"runs":[528,22,1,1]},"entrance:20103":{"rank":556,"runs":[532,17,5,1,1]},"entrance:2011":{"rank":551,"runs":[527,23,1]},"entrance:20115":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:2012":{"rank":551,"runs":[527,23,1]},"entrance:20127":{"rank":560,"runs":[533,11,5,4,3,2,1,1]},"entrance:2013":{"rank":551,"runs":[527,23,1]},"entrance:20139":{"rank":562,"runs":[533,9,6,5,5,2,1,1]},"entrance:2014":{"rank":551,"runs":[527,23,1]},"entrance:2015":{"rank":551,"runs":[527,23,1]},"entrance:20151":{"rank":564,"runs":[533,8,7,7,5,2,1,1]},"entrance:2016":{"rank":551,"runs":[527,23,1]},"entrance:20163":{"rank":566,"runs":[533,10,9,5,5,2,1,1]},"entrance:2017":{"rank":551,"runs":[527,23,1]},"entrance:2018":{"rank":551,"runs":[527,23,1]},"entrance:2019":{"rank":551,"runs":[527,23,1]},"entrance:202":{"rank":551,"runs":[527,23,1]},"entrance:2020":{"rank":551,"runs":[527,23,1]},"entrance:20202":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:2021":{"rank":551,"runs":[527,23,1]},"entrance:2022":{"rank":551,"runs":[527,23,1]},"entrance:20226":{"rank":552,"runs":[528,22,1,1]},"entrance:2023":{"rank":551,"runs":[527,23,1]},"entrance:20237":{"rank":554,"runs":[530,20,3,1]},"entrance:2024":{"rank":551,"runs":[527,23,1]},"entrance:20248":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:2025":{"rank":551,"runs":[527,23,1]},"entrance:20259":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:2026":{"rank":551,"runs":[527,23,1]},"entrance:2027":{"rank":551,"runs":[527,23,1]},"entrance:20270":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:2028":{"rank":551,"runs":[527,23,1]},"entrance:20281":{"rank":562,"runs":[531,10,8,7,3,1,1,1]},"entrance:2029":{"rank":551,"runs":[527,23,1]},"entrance:20292":{"rank":564,"runs":[531,10,9,8,3,1,1,1]},"entrance:203":{"rank":551,"runs":[527,23,1]},"entrance:2030":{"rank":551,"runs":[527,23,1]},"entrance:2031":{"rank":551,"runs":[527,23,1]},"entrance:2032":{"rank":551,"runs":[527,23,1]},"entrance:20325":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:2033":{"rank":551,"runs":[527,23,1]},"entrance:2034":{"rank":551,"runs":[527,23,1]},"entrance:20344":{"rank":554,"runs":[530,19,3,1,1]},"entrance:2035":{"rank":551,"runs":[527,23,1]},"entrance:20353":{"rank":552,"runs":[528,22,1,1]},"entrance:20356":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:2036":{"rank":551,"runs":[527,23,1]},"entrance:20368":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:2037":{"rank":551,"runs":[527,23,1]},"entrance:2038":{"rank":551,"runs":[527,23,1]},"entrance:20380":{"rank":560,"runs":[531,11,6,5,3,2,1,1]},"entrance:2039":{"rank":551,"runs":[527,23,1]},"entrance:20392":{"rank":562,"runs":[531,9,8,7,3,2,1,1]},"entrance:204":{"rank":551,"runs":[527,23,1]},"entrance:2040":{"rank":551,"runs":[527,23,1]},"entrance:20404":{"rank":564,"runs":[531,10,9,7,3,2,1,1]},"entrance:2041":{"rank":551,"runs":[527,23,1]},"entrance:20416":{"rank":566,"runs":[531,12,11,5,3,2,1,1]},"entrance:2042":{"rank":551,"runs":[527,23,1]},"entrance:2043":{"rank":551,"runs":[527,23,1]},"entrance:2044":{"rank":551,"runs":[527,23,1]},"entrance:2045":{"rank":551,"runs":[527,23,1]},"entrance:20455":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:2046":{"rank":551,"runs":[527,23,1]},"entrance:2047":{"rank":551,"runs":[527,23,1]},"entrance:2048":{"rank":551,"runs":[527,23,1]},"entrance:20480":{"rank":552,"runs":[528,22,1,1]},"entrance:2049":{"rank":551,"runs":[527,23,1]},"entrance:20491":{"rank":554,"runs":[530,20,3,1]},"entrance:205":{"rank":551,"runs":[527,23,1]},"entrance:2050":{"rank":551,"runs":[527,23,1]},"entrance:20502":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:2051":{"rank":551,"runs":[527,23,1]},"entrance:20513":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:2052":{"rank":551,"runs":[527,23,1]},"entrance:20524":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:2053":{"rank":551,"runs":[527,23,1]},"entrance:20535":{"rank":562,"runs":[531,10,8,7,3,1,1,1]},"entrance:2054":{"rank":551,"runs":[527,23,1]},"entrance:20546":{"rank":564,"runs":[531,10,9,8,3,1,1,1]},"entrance:2055":{"rank":551,"runs":[527,23,1]},"entrance:20557":{"rank":566,"runs":[531,12,11,6,3,1,1,1]},"entrance:2056":{"rank":551,"runs":[527,23,1]},"entrance:2057":{"rank":551,"runs":[527,23,1]},"entrance:20579":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:2058":{"rank":551,"runs":[527,23,1]},"entrance:2059":{"rank":551,"runs":[527,23,1]},"entrance:206":{"rank":551,"runs":[527,23,1]},"entrance:2060":{"rank":551,"runs":[527,23,1]},"entrance:20608":{"rank":552,"runs":[528,22,1,1]},"entrance:2061":{"rank":551,"runs":[527,23,1]},"entrance:2062":{"rank":551,"runs":[527,23,1]},"entrance:2063":{"rank":551,"runs":[527,23,1]},"entrance:2064":{"rank":551,"runs":[527,23,1]},"entrance:2065":{"rank":551,"runs":[527,23,1]},"entrance:2066":{"rank":551,"runs":[527,23,1]},"entrance:2067":{"rank":551,"runs":[527,23,1]},"entrance:2068":{"rank":551,"runs":[527,23,1]},"entrance:2069":{"rank":551,"runs":[527,23,1]},"entrance:207":{"rank":551,"runs":[527,23,1]},"entrance:2070":{"rank":551,"runs":[527,23,1]},"entrance:20708":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:2071":{"rank":551,"runs":[527,23,1]},"entrance:2072":{"rank":551,"runs":[527,23,1]},"entrance:2073":{"rank":551,"runs":[527,23,1]},"entrance:20736":{"rank":552,"runs":[528,22,1,1]},"entrance:2074":{"rank":551,"runs":[527,23,1]},"entrance:20747":{"rank":554,"runs":[530,20,3,1]},"entrance:2075":{"rank":551,"runs":[527,23,1]},"entrance:20758":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:2076":{"rank":551,"runs":[527,23,1]},"entrance:20769":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:2077":{"rank":551,"runs":[527,23,1]},"entrance:2078":{"rank":551,"runs":[527,23,1]},"entrance:20780":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:2079":{"rank":551,"runs":[527,23,1]},"entrance:20791":{"rank":562,"runs":[531,10,8,7,3,1,1,1]},"entrance:208":{"rank":551,"runs":[527,23,1]},"entrance:2080":{"rank":551,"runs":[527,23,1]},"entrance:20802":{"rank":564,"runs":[531,10,9,8,3,1,1,1]},"entrance:2081":{"rank":551,"runs":[527,23,1]},"entrance:20813":{"rank":566,"runs":[531,12,11,6,3,1,1,1]},"entrance:2082":{"rank":551,"runs":[527,23,1]},"entrance:20824":{"rank":568,"runs":[531,14,13,4,3,1,1,1]},"entrance:2083":{"rank":551,"runs":[527,23,1]},"entrance:20835":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:2084":{"rank":551,"runs":[527,23,1]},"entrance:2085":{"rank":551,"runs":[527,23,1]},"entrance:2086":{"rank":551,"runs":[527,23,1]},"entrance:20865":{"rank":552,"runs":[528,22,1,1]},"entrance:2087":{"rank":551,"runs":[527,23,1]},"entrance:2088":{"rank":551,"runs":[527,23,1]},"entrance:2089":{"rank":551,"runs":[527,23,1]},"entrance:209":{"rank":551,"runs":[527,23,1]},"entrance:2090":{"rank":551,"runs":[527,23,1]},"entrance:2091":{"rank":551,"runs":[527,23,1]},"entrance:2092":{"rank":551,"runs":[527,23,1]},"entrance:2093":{"rank":551,"runs":[527,23,1]},"entrance:2094":{"rank":551,"runs":[527,23,1]},"entrance:2095":{"rank":551,"runs":[527,23,1]},"entrance:2096":{"rank":551,"runs":[527,23,1]},"entrance:20965":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:2097":{"rank":551,"runs":[527,23,1]},"entrance:2098":{"rank":551,"runs":[527,23,1]},"entrance:2099":{"rank":551,"runs":[527,23,1]},"entrance:20994":{"rank":552,"runs":[528,22,1,1]},"entrance:21":{"rank":551,"runs":[527,23,1]},"entrance:210":{"rank":551,"runs":[527,23,1]},"entrance:2100":{"rank":551,"runs":[527,23,1]},"entrance:21005":{"rank":554,"runs":[530,20,3,1]},"entrance:2101":{"rank":551,"runs":[527,23,1]},"entrance:21016":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:2102":{"rank":551,"runs":[527,23,1]},"entrance:21027":{"rank":558,"runs":[531,14,4,3,3,1,1,1]},"entrance:2103":{"rank":551,"runs":[527,23,1]},"entrance:21038":{"rank":560,"runs":[531,12,6,5,3,1,1,1]},"entrance:2104":{"rank":551,"runs":[527,23,1]},"entrance:21049":{"rank":562,"runs":[531,10,8,7,3,1,1,1]},"entrance:2105":{"rank":551,"runs":[527,23,1]},"entrance:2106":{"rank":551,"runs":[527,23,1]},"entrance:21060":{"rank":564,"runs":[531,10,9,8,3,1,1,1]},"entrance:2107":{"rank":551,"runs":[527,23,1]},"entrance:21071":{"rank":566,"runs":[531,12,11,6,3,1,1,1]},"entrance:2108":{"rank":551,"runs":[527,23,1]},"entrance:21082":{"rank":568,"runs":[531,14,13,4,3,1,1,1]},"entrance:2109":{"rank":551,"runs":[527,23,1]},"entrance:21093":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:211":{"rank":551,"runs":[527,23,1]},"entrance:2110":{"rank":551,"runs":[527,23,1]},"entrance:2111":{"rank":551,"runs":[527,23,1]},"entrance:21113":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2112":{"rank":551,"runs":[527,23,1]},"entrance:2113":{"rank":551,"runs":[527,23,1]},"entrance:2114":{"rank":551,"runs":[527,23,1]},"entrance:2115":{"rank":551,"runs":[527,23,1]},"entrance:2116":{"rank":551,"runs":[527,23,1]},"entrance:2117":{"rank":551,"runs":[527,23,1]},"entrance:2118":{"rank":551,"runs":[527,23,1]},"entrance:2119":{"rank":551,"runs":[527,23,1]},"entrance:212":{"rank":551,"runs":[527,23,1]},"entrance:2120":{"rank":551,"runs":[527,23,1]},"entrance:2121":{"rank":551,"runs":[527,23,1]},"entrance:2122":{"rank":551,"runs":[527,23,1]},"entrance:21222":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:21223":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:21224":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:21225":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:21226":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:21227":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:21228":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:21229":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:2123":{"rank":551,"runs":[527,23,1]},"entrance:21230":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:21231":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:21232":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:21233":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:2124":{"rank":551,"runs":[527,23,1]},"entrance:21243":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2125":{"rank":551,"runs":[527,23,1]},"entrance:2126":{"rank":551,"runs":[527,23,1]},"entrance:2127":{"rank":551,"runs":[527,23,1]},"entrance:2128":{"rank":551,"runs":[527,23,1]},"entrance:2129":{"rank":551,"runs":[527,23,1]},"entrance:213":{"rank":551,"runs":[527,23,1]},"entrance:2130":{"rank":551,"runs":[527,23,1]},"entrance:2131":{"rank":551,"runs":[527,23,1]},"entrance:2132":{"rank":551,"runs":[527,23,1]},"entrance:2133":{"rank":551,"runs":[527,23,1]},"entrance:2134":{"rank":551,"runs":[527,23,1]},"entrance:2135":{"rank":551,"runs":[527,23,1]},"entrance:21352":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:21353":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:21354":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:21355":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:21356":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:21357":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:21358":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:21359":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:2136":{"rank":551,"runs":[527,23,1]},"entrance:21360":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:21361":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:21362":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:21363":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:2137":{"rank":551,"runs":[527,23,1]},"entrance:2138":{"rank":551,"runs":[527,23,1]},"entrance:2139":{"rank":551,"runs":[527,23,1]},"entrance:214":{"rank":551,"runs":[527,23,1]},"entrance:2140":{"rank":551,"runs":[527,23,1]},"entrance:2141":{"rank":551,"runs":[527,23,1]},"entrance:2142":{"rank":551,"runs":[527,23,1]},"entrance:2143":{"rank":551,"runs":[527,23,1]},"entrance:2144":{"rank":551,"runs":[527,23,1]},"entrance:2145":{"rank":551,"runs":[527,23,1]},"entrance:2146":{"rank":551,"runs":[527,23,1]},"entrance:2147":{"rank":551,"runs":[527,23,1]},"entrance:2148":{"rank":551,"runs":[527,23,1]},"entrance:2149":{"rank":551,"runs":[527,23,1]},"entrance:215":{"rank":551,"runs":[527,23,1]},"entrance:2150":{"rank":551,"runs":[527,23,1]},"entrance:2151":{"rank":551,"runs":[527,23,1]},"entrance:2152":{"rank":551,"runs":[527,23,1]},"entrance:2153":{"rank":551,"runs":[527,23,1]},"entrance:2154":{"rank":551,"runs":[527,23,1]},"entrance:2155":{"rank":551,"runs":[527,23,1]},"entrance:2156":{"rank":551,"runs":[527,23,1]},"entrance:2157":{"rank":551,"runs":[527,23,1]},"entrance:2158":{"rank":551,"runs":[527,23,1]},"entrance:2159":{"rank":551,"runs":[527,23,1]},"entrance:216":{"rank":551,"runs":[527,23,1]},"entrance:2160":{"rank":551,"runs":[527,23,1]},"entrance:2161":{"rank":551,"runs":[527,23,1]},"entrance:2162":{"rank":551,"runs":[527,23,1]},"entrance:2163":{"rank":551,"runs":[527,23,1]},"entrance:2164":{"rank":551,"runs":[527,23,1]},"entrance:2165":{"rank":551,"runs":[527,23,1]},"entrance:2166":{"rank":551,"runs":[527,23,1]},"entrance:2167":{"rank":551,"runs":[527,23,1]},"entrance:2168":{"rank":551,"runs":[527,23,1]},"entrance:2169":{"rank":551,"runs":[527,23,1]},"entrance:217":{"rank":551,"runs":[527,23,1]},"entrance:2170":{"rank":551,"runs":[527,23,1]},"entrance:2171":{"rank":551,"runs":[527,23,1]},"entrance:2172":{"rank":551,"runs":[527,23,1]},"entrance:2173":{"rank":551,"runs":[527,23,1]},"entrance:2174":{"rank":551,"runs":[527,23,1]},"entrance:2175":{"rank":551,"runs":[527,23,1]},"entrance:2176":{"rank":551,"runs":[527,23,1]},"entrance:2177":{"rank":551,"runs":[527,23,1]},"entrance:2178":{"rank":551,"runs":[527,23,1]},"entrance:2179":{"rank":551,"runs":[527,23,1]},"entrance:218":{"rank":551,"runs":[527,23,1]},"entrance:2180":{"rank":551,"runs":[527,23,1]},"entrance:2181":{"rank":551,"runs":[527,23,1]},"entrance:2182":{"rank":551,"runs":[527,23,1]},"entrance:2183":{"rank":551,"runs":[527,23,1]},"entrance:2184":{"rank":551,"runs":[527,23,1]},"entrance:2185":{"rank":551,"runs":[527,23,1]},"entrance:21852":{"rank":554,"runs":[530,19,3,1,1]},"entrance:2186":{"rank":551,"runs":[527,23,1]},"entrance:2187":{"rank":551,"runs":[527,23,1]},"entrance:21876":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:2188":{"rank":551,"runs":[527,23,1]},"entrance:2189":{"rank":551,"runs":[527,23,1]},"entrance:219":{"rank":551,"runs":[527,23,1]},"entrance:2190":{"rank":551,"runs":[527,23,1]},"entrance:2191":{"rank":551,"runs":[527,23,1]},"entrance:2192":{"rank":551,"runs":[527,23,1]},"entrance:2193":{"rank":551,"runs":[527,23,1]},"entrance:2194":{"rank":551,"runs":[527,23,1]},"entrance:2195":{"rank":551,"runs":[527,23,1]},"entrance:2196":{"rank":551,"runs":[527,23,1]},"entrance:2197":{"rank":551,"runs":[527,23,1]},"entrance:2198":{"rank":551,"runs":[527,23,1]},"entrance:2199":{"rank":551,"runs":[527,23,1]},"entrance:22":{"rank":551,"runs":[527,23,1]},"entrance:220":{"rank":551,"runs":[527,23,1]},"entrance:2200":{"rank":551,"runs":[527,23,1]},"entrance:2201":{"rank":551,"runs":[527,23,1]},"entrance:2202":{"rank":551,"runs":[527,23,1]},"entrance:2203":{"rank":551,"runs":[527,23,1]},"entrance:2204":{"rank":551,"runs":[527,23,1]},"entrance:2205":{"rank":551,"runs":[527,23,1]},"entrance:22051":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:2206":{"rank":551,"runs":[527,23,1]},"entrance:22065":{"rank":566,"runs":[542,15,7,1,1]},"entrance:22067":{"rank":562,"runs":[539,11,4,4,2,1,1]},"entrance:2207":{"rank":551,"runs":[527,23,1]},"entrance:22072":{"rank":564,"runs":[533,8,8,5,4,3,1,1,1]},"entrance:22074":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:22076":{"rank":568,"runs":[532,10,10,4,3,3,2,1,1,1,1]},"entrance:22077":{"rank":564,"runs":[536,8,7,3,2,2,2,1,1,1,1]},"entrance:22078":{"rank":566,"runs":[543,10,7,4,1,1]},"entrance:2208":{"rank":551,"runs":[527,23,1]},"entrance:2209":{"rank":551,"runs":[527,23,1]},"entrance:22097":{"rank":566,"runs":[543,7,6,4,4,1,1]},"entrance:22098":{"rank":566,"runs":[539,6,4,4,4,4,3,1,1]},"entrance:221":{"rank":551,"runs":[527,23,1]},"entrance:2210":{"rank":551,"runs":[527,23,1]},"entrance:22107":{"rank":566,"runs":[539,4,4,4,4,4,3,2,1,1]},"entrance:22108":{"rank":566,"runs":[535,8,8,4,4,3,2,1,1]},"entrance:2211":{"rank":551,"runs":[527,23,1]},"entrance:22118":{"rank":566,"runs":[534,8,8,4,3,3,1,1,1,1,1,1]},"entrance:2212":{"rank":551,"runs":[527,23,1]},"entrance:22129":{"rank":568,"runs":[535,10,10,4,3,3,1,1,1]},"entrance:2213":{"rank":551,"runs":[527,23,1]},"entrance:22130":{"rank":568,"runs":[531,14,13,4,3,1,1,1]},"entrance:22132":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"entrance:22133":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"entrance:22134":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"entrance:22135":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"entrance:22138":{"rank":569,"runs":[540,8,6,6,3,3,1,1,1]},"entrance:22139":{"rank":569,"runs":[544,12,3,3,2,2,1,1,1]},"entrance:2214":{"rank":551,"runs":[527,23,1]},"entrance:22140":{"rank":569,"runs":[540,8,6,6,3,3,1,1,1]},"entrance:22141":{"rank":569,"runs":[544,12,3,3,2,2,1,1,1]},"entrance:22144":{"rank":569,"runs":[545,16,2,2,1,1,1,1]},"entrance:22145":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:22146":{"rank":569,"runs":[545,16,2,2,1,1,1,1]},"entrance:22147":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:22148":{"rank":566,"runs":[538,8,4,4,3,3,1,1,1,1,1,1]},"entrance:22149":{"rank":568,"runs":[539,7,6,6,4,3,1,1,1]},"entrance:2215":{"rank":551,"runs":[527,23,1]},"entrance:22150":{"rank":566,"runs":[542,12,6,1,1,1,1,1,1]},"entrance:22151":{"rank":568,"runs":[543,11,4,3,2,2,1,1,1]},"entrance:2216":{"rank":551,"runs":[527,23,1]},"entrance:2217":{"rank":551,"runs":[527,23,1]},"entrance:22177":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"entrance:2218":{"rank":551,"runs":[527,23,1]},"entrance:22183":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"entrance:22184":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:2219":{"rank":551,"runs":[527,23,1]},"entrance:222":{"rank":551,"runs":[527,23,1]},"entrance:2220":{"rank":551,"runs":[527,23,1]},"entrance:2221":{"rank":551,"runs":[527,23,1]},"entrance:22214":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"entrance:2222":{"rank":551,"runs":[527,23,1]},"entrance:22220":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"entrance:22221":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:2223":{"rank":551,"runs":[527,23,1]},"entrance:2224":{"rank":551,"runs":[527,23,1]},"entrance:2225":{"rank":551,"runs":[527,23,1]},"entrance:22252":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"entrance:22258":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"entrance:22259":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:2226":{"rank":551,"runs":[527,23,1]},"entrance:2227":{"rank":551,"runs":[527,23,1]},"entrance:2228":{"rank":551,"runs":[527,23,1]},"entrance:2229":{"rank":551,"runs":[527,23,1]},"entrance:22290":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"entrance:22296":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"entrance:22297":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:223":{"rank":551,"runs":[527,23,1]},"entrance:2230":{"rank":551,"runs":[527,23,1]},"entrance:2231":{"rank":551,"runs":[527,23,1]},"entrance:2232":{"rank":551,"runs":[527,23,1]},"entrance:22329":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"entrance:2233":{"rank":551,"runs":[527,23,1]},"entrance:22335":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"entrance:22336":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:2234":{"rank":551,"runs":[527,23,1]},"entrance:2235":{"rank":551,"runs":[527,23,1]},"entrance:2236":{"rank":551,"runs":[527,23,1]},"entrance:22368":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"entrance:2237":{"rank":551,"runs":[527,23,1]},"entrance:22374":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"entrance:22375":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:2238":{"rank":551,"runs":[527,23,1]},"entrance:2239":{"rank":551,"runs":[527,23,1]},"entrance:224":{"rank":551,"runs":[527,23,1]},"entrance:2240":{"rank":551,"runs":[527,23,1]},"entrance:22408":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"entrance:2241":{"rank":551,"runs":[527,23,1]},"entrance:22414":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"entrance:22415":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:2242":{"rank":551,"runs":[527,23,1]},"entrance:2243":{"rank":551,"runs":[527,23,1]},"entrance:2244":{"rank":551,"runs":[527,23,1]},"entrance:22448":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"entrance:2245":{"rank":551,"runs":[527,23,1]},"entrance:22454":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"entrance:22455":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:2246":{"rank":551,"runs":[527,23,1]},"entrance:2247":{"rank":551,"runs":[527,23,1]},"entrance:2248":{"rank":551,"runs":[527,23,1]},"entrance:22489":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:2249":{"rank":551,"runs":[527,23,1]},"entrance:22495":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:22496":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:225":{"rank":551,"runs":[527,23,1]},"entrance:2250":{"rank":551,"runs":[527,23,1]},"entrance:2251":{"rank":551,"runs":[527,23,1]},"entrance:2252":{"rank":551,"runs":[527,23,1]},"entrance:2253":{"rank":551,"runs":[527,23,1]},"entrance:22530":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:22536":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:2254":{"rank":551,"runs":[527,23,1]},"entrance:22542":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:22543":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:22544":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:22545":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:22546":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:22547":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:22548":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:22549":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:2255":{"rank":551,"runs":[527,23,1]},"entrance:22550":{"rank":570,"runs":[537,10,10,4,4,2,1,1,1]},"entrance:22551":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:22552":{"rank":570,"runs":[539,8,8,4,4,2,2,1,1,1]},"entrance:22553":{"rank":570,"runs":[537,10,10,4,2,2,2,1,1,1]},"entrance:22554":{"rank":570,"runs":[533,14,14,4,2,1,1,1]},"entrance:22555":{"rank":570,"runs":[530,16,16,1,1,1,1,1,1,1,1]},"entrance:22556":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:22557":{"rank":570,"runs":[532,14,14,2,1,1,1,1,1,1,1,1]},"entrance:22558":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:22559":{"rank":570,"runs":[543,6,4,4,4,4,2,1,1,1]},"entrance:2256":{"rank":551,"runs":[527,23,1]},"entrance:22560":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:22561":{"rank":570,"runs":[545,6,6,4,2,2,2,1,1,1]},"entrance:22562":{"rank":570,"runs":[541,6,6,4,4,4,2,1,1,1]},"entrance:22563":{"rank":570,"runs":[539,8,8,4,4,2,2,1,1,1]},"entrance:22564":{"rank":570,"runs":[543,6,4,4,4,4,2,1,1,1]},"entrance:22565":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:22566":{"rank":570,"runs":[537,10,10,4,4,2,1,1,1]},"entrance:22567":{"rank":570,"runs":[534,12,12,4,1,1,1,1,1,1,1,1]},"entrance:22568":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:22569":{"rank":570,"runs":[536,10,10,6,1,1,1,1,1,1,1,1]},"entrance:2257":{"rank":551,"runs":[527,23,1]},"entrance:22570":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:22571":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:22572":{"rank":570,"runs":[547,10,4,4,3,1,1]},"entrance:22573":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:22574":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:22575":{"rank":570,"runs":[538,8,8,8,1,1,1,1,1,1,1,1]},"entrance:22576":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:22577":{"rank":570,"runs":[540,10,6,6,1,1,1,1,1,1,1,1]},"entrance:22578":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:22579":{"rank":570,"runs":[542,12,4,4,1,1,1,1,1,1,1,1]},"entrance:2258":{"rank":551,"runs":[527,23,1]},"entrance:22580":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:22581":{"rank":570,"runs":[544,14,2,2,1,1,1,1,1,1,1,1]},"entrance:2259":{"rank":551,"runs":[527,23,1]},"entrance:22592":{"rank":552,"runs":[528,22,1,1]},"entrance:226":{"rank":551,"runs":[527,23,1]},"entrance:2260":{"rank":551,"runs":[527,23,1]},"entrance:2261":{"rank":551,"runs":[527,23,1]},"entrance:2262":{"rank":551,"runs":[527,23,1]},"entrance:2263":{"rank":551,"runs":[527,23,1]},"entrance:2264":{"rank":551,"runs":[527,23,1]},"entrance:2265":{"rank":551,"runs":[527,23,1]},"entrance:2266":{"rank":551,"runs":[527,23,1]},"entrance:2267":{"rank":551,"runs":[527,23,1]},"entrance:2268":{"rank":551,"runs":[527,23,1]},"entrance:2269":{"rank":551,"runs":[527,23,1]},"entrance:22691":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:227":{"rank":551,"runs":[527,23,1]},"entrance:2270":{"rank":551,"runs":[527,23,1]},"entrance:22700":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:2271":{"rank":551,"runs":[527,23,1]},"entrance:22712":{"rank":552,"runs":[528,22,1,1]},"entrance:2272":{"rank":551,"runs":[527,23,1]},"entrance:2273":{"rank":551,"runs":[527,23,1]},"entrance:2274":{"rank":551,"runs":[527,23,1]},"entrance:2275":{"rank":551,"runs":[527,23,1]},"entrance:2276":{"rank":551,"runs":[527,23,1]},"entrance:2277":{"rank":551,"runs":[527,23,1]},"entrance:2278":{"rank":551,"runs":[527,23,1]},"entrance:2279":{"rank":551,"runs":[527,23,1]},"entrance:228":{"rank":551,"runs":[527,23,1]},"entrance:2280":{"rank":551,"runs":[527,23,1]},"entrance:2281":{"rank":551,"runs":[527,23,1]},"entrance:2282":{"rank":551,"runs":[527,23,1]},"entrance:22822":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2283":{"rank":551,"runs":[527,23,1]},"entrance:22833":{"rank":552,"runs":[528,22,1,1]},"entrance:2284":{"rank":551,"runs":[527,23,1]},"entrance:22844":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:2285":{"rank":551,"runs":[527,23,1]},"entrance:22855":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:2286":{"rank":551,"runs":[527,23,1]},"entrance:22866":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:2287":{"rank":551,"runs":[527,23,1]},"entrance:22877":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:2288":{"rank":551,"runs":[527,23,1]},"entrance:22888":{"rank":562,"runs":[531,9,8,8,2,1,1,1,1]},"entrance:2289":{"rank":551,"runs":[527,23,1]},"entrance:22899":{"rank":564,"runs":[531,10,10,7,2,1,1,1,1]},"entrance:229":{"rank":551,"runs":[527,23,1]},"entrance:2290":{"rank":551,"runs":[527,23,1]},"entrance:2291":{"rank":551,"runs":[527,23,1]},"entrance:22910":{"rank":566,"runs":[531,12,12,5,2,1,1,1,1]},"entrance:2292":{"rank":551,"runs":[527,23,1]},"entrance:22921":{"rank":568,"runs":[531,14,14,3,2,1,1,1,1]},"entrance:2293":{"rank":551,"runs":[527,23,1]},"entrance:22932":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:2294":{"rank":551,"runs":[527,23,1]},"entrance:22941":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:22943":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2295":{"rank":551,"runs":[527,23,1]},"entrance:22954":{"rank":552,"runs":[528,22,1,1]},"entrance:2296":{"rank":551,"runs":[527,23,1]},"entrance:2297":{"rank":551,"runs":[527,23,1]},"entrance:2298":{"rank":551,"runs":[527,23,1]},"entrance:2299":{"rank":551,"runs":[527,23,1]},"entrance:23":{"rank":551,"runs":[527,23,1]},"entrance:230":{"rank":551,"runs":[527,23,1]},"entrance:23064":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23076":{"rank":552,"runs":[528,22,1,1]},"entrance:23087":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:2309":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23098":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:231":{"rank":551,"runs":[527,23,1]},"entrance:2310":{"rank":552,"runs":[529,21,1,1]},"entrance:23109":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:23120":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:23131":{"rank":562,"runs":[533,9,6,6,3,2,1,1,1]},"entrance:23142":{"rank":564,"runs":[533,8,8,7,3,2,1,1,1]},"entrance:23153":{"rank":566,"runs":[533,10,10,5,3,2,1,1,1]},"entrance:23164":{"rank":568,"runs":[533,12,12,3,3,2,1,1,1]},"entrance:23175":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:23182":{"rank":570,"runs":[547,10,4,4,3,1,1]},"entrance:23186":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23198":{"rank":552,"runs":[528,22,1,1]},"entrance:232":{"rank":551,"runs":[527,23,1]},"entrance:2320":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2321":{"rank":552,"runs":[529,21,1,1]},"entrance:233":{"rank":551,"runs":[527,23,1]},"entrance:23308":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23321":{"rank":552,"runs":[528,22,1,1]},"entrance:23332":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:23343":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:23354":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:23365":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:23376":{"rank":562,"runs":[535,9,5,4,4,2,1,1,1]},"entrance:23387":{"rank":564,"runs":[535,7,6,6,5,2,1,1,1]},"entrance:23398":{"rank":566,"runs":[535,8,8,5,5,2,1,1,1]},"entrance:234":{"rank":551,"runs":[527,23,1]},"entrance:23409":{"rank":568,"runs":[535,10,10,5,3,2,1,1,1]},"entrance:23420":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:23427":{"rank":570,"runs":[547,10,4,4,3,1,1]},"entrance:23431":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23444":{"rank":552,"runs":[528,22,1,1]},"entrance:2346":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2347":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2349":{"rank":552,"runs":[529,21,1,1]},"entrance:235":{"rank":551,"runs":[527,23,1]},"entrance:2350":{"rank":552,"runs":[529,21,1,1]},"entrance:23554":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23568":{"rank":552,"runs":[528,22,1,1]},"entrance:23579":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:23590":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:236":{"rank":551,"runs":[527,23,1]},"entrance:23601":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:23612":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:23623":{"rank":562,"runs":[537,9,7,2,2,2,1,1,1]},"entrance:23634":{"rank":564,"runs":[537,7,7,4,4,2,1,1,1]},"entrance:23645":{"rank":566,"runs":[537,7,6,6,5,2,1,1,1]},"entrance:23656":{"rank":568,"runs":[537,8,8,7,3,2,1,1,1]},"entrance:23667":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:23672":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:23678":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23692":{"rank":552,"runs":[528,22,1,1]},"entrance:237":{"rank":551,"runs":[527,23,1]},"entrance:2373":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2374":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2376":{"rank":552,"runs":[529,21,1,1]},"entrance:2377":{"rank":552,"runs":[529,21,1,1]},"entrance:238":{"rank":551,"runs":[527,23,1]},"entrance:23802":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23817":{"rank":552,"runs":[528,22,1,1]},"entrance:23828":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:23839":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:23850":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:23861":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:23872":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:23883":{"rank":564,"runs":[539,9,7,2,2,2,1,1,1]},"entrance:23894":{"rank":566,"runs":[539,9,5,4,4,2,1,1,1]},"entrance:239":{"rank":551,"runs":[527,23,1]},"entrance:23905":{"rank":568,"runs":[539,9,6,6,3,2,1,1,1]},"entrance:23916":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:23921":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:23927":{"rank":552,"runs":[528,21,1,1,1]},"entrance:23942":{"rank":552,"runs":[528,22,1,1]},"entrance:2397":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2398":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24":{"rank":551,"runs":[527,23,1]},"entrance:240":{"rank":551,"runs":[527,23,1]},"entrance:2400":{"rank":552,"runs":[529,21,1,1]},"entrance:2401":{"rank":552,"runs":[529,21,1,1]},"entrance:24052":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24068":{"rank":552,"runs":[528,22,1,1]},"entrance:24079":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:24090":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:241":{"rank":551,"runs":[527,23,1]},"entrance:24101":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:24112":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:24123":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:24134":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:24145":{"rank":566,"runs":[541,11,5,2,2,2,1,1,1]},"entrance:24156":{"rank":568,"runs":[541,11,4,4,3,2,1,1,1]},"entrance:24167":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:24170":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:24178":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2418":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2419":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24194":{"rank":552,"runs":[528,22,1,1]},"entrance:242":{"rank":551,"runs":[527,23,1]},"entrance:2421":{"rank":552,"runs":[529,21,1,1]},"entrance:2422":{"rank":552,"runs":[529,21,1,1]},"entrance:243":{"rank":551,"runs":[527,23,1]},"entrance:24304":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24321":{"rank":552,"runs":[528,22,1,1]},"entrance:24332":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:24343":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:24354":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:2436":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24365":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:2437":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24376":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:24387":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:2439":{"rank":552,"runs":[529,21,1,1]},"entrance:24398":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:244":{"rank":551,"runs":[527,23,1]},"entrance:2440":{"rank":552,"runs":[529,21,1,1]},"entrance:24409":{"rank":568,"runs":[543,13,3,2,2,2,1,1,1]},"entrance:24420":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:24423":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:24431":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24448":{"rank":552,"runs":[528,22,1,1]},"entrance:245":{"rank":551,"runs":[527,23,1]},"entrance:2451":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2452":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2454":{"rank":552,"runs":[529,21,1,1]},"entrance:2455":{"rank":552,"runs":[529,21,1,1]},"entrance:24558":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24576":{"rank":552,"runs":[528,22,1,1]},"entrance:24587":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:24598":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:246":{"rank":551,"runs":[527,23,1]},"entrance:24609":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:24620":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:2463":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24631":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:2464":{"rank":552,"runs":[528,21,1,1,1]},"entrance:24642":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:24653":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:2466":{"rank":552,"runs":[529,21,1,1]},"entrance:24664":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:2467":{"rank":552,"runs":[529,21,1,1]},"entrance:24675":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:24676":{"rank":570,"runs":[546,16,2,1,1,1,1,1,1]},"entrance:24686":{"rank":552,"runs":[528,21,1,1,1]},"entrance:247":{"rank":551,"runs":[527,23,1]},"entrance:24704":{"rank":552,"runs":[528,22,1,1]},"entrance:2472":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2473":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2475":{"rank":552,"runs":[529,21,1,1]},"entrance:2476":{"rank":552,"runs":[529,21,1,1]},"entrance:2478":{"rank":552,"runs":[528,21,1,1,1]},"entrance:2479":{"rank":552,"runs":[528,21,1,1,1]},"entrance:248":{"rank":551,"runs":[527,23,1]},"entrance:2481":{"rank":552,"runs":[529,21,1,1]},"entrance:2482":{"rank":552,"runs":[529,21,1,1]},"entrance:2483":{"rank":554,"runs":[529,18,2,2,1,1,1]},"entrance:2484":{"rank":552,"runs":[529,21,1,1]},"entrance:2485":{"rank":552,"runs":[529,21,1,1]},"entrance:2486":{"rank":554,"runs":[531,19,2,1,1]},"entrance:24869":{"rank":570,"runs":[546,16,2,1,1,1,1,1,1]},"entrance:249":{"rank":551,"runs":[527,23,1]},"entrance:2491":{"rank":554,"runs":[530,19,3,1,1]},"entrance:2496":{"rank":554,"runs":[530,19,3,1,1]},"entrance:24960":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25":{"rank":551,"runs":[527,23,1]},"entrance:250":{"rank":551,"runs":[527,23,1]},"entrance:2506":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:2507":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:25078":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:25079":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:25080":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:25081":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:25082":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:25083":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:25084":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:25085":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:25086":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:25087":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:25088":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:25089":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:251":{"rank":551,"runs":[527,23,1]},"entrance:2516":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:2517":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:252":{"rank":551,"runs":[527,23,1]},"entrance:2523":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:2524":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:2527":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:2528":{"rank":556,"runs":[532,17,5,1,1]},"entrance:253":{"rank":551,"runs":[527,23,1]},"entrance:2531":{"rank":556,"runs":[533,17,4,1,1]},"entrance:2537":{"rank":556,"runs":[533,17,4,1,1]},"entrance:2538":{"rank":556,"runs":[533,17,4,1,1]},"entrance:254":{"rank":551,"runs":[527,23,1]},"entrance:255":{"rank":551,"runs":[527,23,1]},"entrance:2550":{"rank":562,"runs":[539,11,6,4,1,1]},"entrance:2551":{"rank":568,"runs":[545,16,5,1,1]},"entrance:25584":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:2559":{"rank":568,"runs":[541,12,4,4,3,2,1,1]},"entrance:256":{"rank":551,"runs":[527,23,1]},"entrance:2560":{"rank":564,"runs":[533,8,8,7,4,2,1,1]},"entrance:2561":{"rank":566,"runs":[543,12,7,2,1,1]},"entrance:25617":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25618":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25638":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25639":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25656":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25657":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25671":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25672":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25683":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25684":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25692":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25693":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25698":{"rank":552,"runs":[528,21,1,1,1]},"entrance:25699":{"rank":552,"runs":[528,21,1,1,1]},"entrance:257":{"rank":551,"runs":[527,23,1]},"entrance:25700":{"rank":554,"runs":[530,19,3,1,1]},"entrance:25717":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:25718":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:25727":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:25728":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:25734":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:25735":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:25738":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:25739":{"rank":556,"runs":[532,17,5,1,1]},"entrance:25742":{"rank":556,"runs":[532,11,6,4,1,1,1]},"entrance:25743":{"rank":556,"runs":[532,18,5,1]},"entrance:25746":{"rank":556,"runs":[532,11,6,4,1,1,1]},"entrance:25747":{"rank":556,"runs":[532,11,6,4,1,1,1]},"entrance:25754":{"rank":560,"runs":[536,8,7,6,1,1,1]},"entrance:25759":{"rank":562,"runs":[539,11,5,4,1,1,1]},"entrance:25760":{"rank":568,"runs":[544,17,6,1]},"entrance:25764":{"rank":564,"runs":[533,8,7,5,5,4,1,1]},"entrance:25766":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:25768":{"rank":568,"runs":[540,12,4,3,3,1,1,1,1,1,1]},"entrance:25770":{"rank":566,"runs":[542,12,4,3,1,1,1,1,1]},"entrance:25791":{"rank":566,"runs":[543,8,7,5,1,1,1]},"entrance:25792":{"rank":566,"runs":[538,8,5,5,4,3,1,1,1]},"entrance:258":{"rank":551,"runs":[527,23,1]},"entrance:25801":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:25802":{"rank":566,"runs":[534,9,9,4,4,3,1,1,1]},"entrance:25812":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:25823":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:25824":{"rank":568,"runs":[545,15,5,1,1,1]},"entrance:25826":{"rank":569,"runs":[546,17,4,1,1]},"entrance:25827":{"rank":569,"runs":[546,17,4,1,1]},"entrance:25828":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:25829":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:25832":{"rank":569,"runs":[541,8,5,5,4,3,1,1,1]},"entrance:25833":{"rank":569,"runs":[537,9,9,4,4,3,1,1,1]},"entrance:25834":{"rank":569,"runs":[541,8,5,5,4,3,1,1,1]},"entrance:25835":{"rank":569,"runs":[537,9,9,4,4,3,1,1,1]},"entrance:25838":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:25839":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:25840":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:25841":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:25842":{"rank":566,"runs":[539,5,5,4,4,4,3,1,1]},"entrance:25843":{"rank":568,"runs":[541,7,5,4,4,4,1,1,1]},"entrance:25844":{"rank":566,"runs":[543,9,7,5,1,1]},"entrance:25845":{"rank":568,"runs":[537,8,8,5,4,3,1,1,1]},"entrance:2586":{"rank":566,"runs":[543,8,7,6,1,1]},"entrance:2587":{"rank":566,"runs":[539,8,4,4,4,3,2,1,1]},"entrance:25871":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:25877":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:25878":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:259":{"rank":551,"runs":[527,23,1]},"entrance:25908":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:25914":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:25915":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:25946":{"rank":571,"runs":[547,14,4,1,1,1,1,1,1]},"entrance:25952":{"rank":571,"runs":[547,14,4,1,1,1,1,1,1]},"entrance:25953":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:2596":{"rank":566,"runs":[539,6,4,4,4,4,3,1,1]},"entrance:2597":{"rank":566,"runs":[535,8,8,4,4,3,2,1,1]},"entrance:25984":{"rank":571,"runs":[545,12,4,3,3,1,1,1,1]},"entrance:25990":{"rank":571,"runs":[545,12,4,3,3,1,1,1,1]},"entrance:25991":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:26":{"rank":551,"runs":[527,23,1]},"entrance:260":{"rank":551,"runs":[527,23,1]},"entrance:26023":{"rank":571,"runs":[543,10,5,5,4,1,1,1,1]},"entrance:26029":{"rank":571,"runs":[543,10,5,5,4,1,1,1,1]},"entrance:26030":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:26062":{"rank":571,"runs":[541,8,7,7,4,1,1,1,1]},"entrance:26068":{"rank":571,"runs":[541,8,7,7,4,1,1,1,1]},"entrance:26069":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:2607":{"rank":566,"runs":[535,8,8,6,4,3,1,1]},"entrance:2608":{"rank":566,"runs":[531,12,12,4,3,2,1,1]},"entrance:261":{"rank":551,"runs":[527,23,1]},"entrance:26102":{"rank":571,"runs":[539,9,9,6,4,1,1,1,1]},"entrance:26108":{"rank":571,"runs":[539,9,9,6,4,1,1,1,1]},"entrance:26109":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:26142":{"rank":571,"runs":[537,11,11,4,4,1,1,1,1]},"entrance:26148":{"rank":571,"runs":[537,11,11,4,4,1,1,1,1]},"entrance:26149":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:2618":{"rank":568,"runs":[539,11,6,5,4,1,1,1]},"entrance:26183":{"rank":571,"runs":[535,13,13,4,2,1,1,1,1]},"entrance:26189":{"rank":571,"runs":[535,13,13,4,2,1,1,1,1]},"entrance:2619":{"rank":568,"runs":[543,15,4,2,1,1,1,1]},"entrance:26190":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:262":{"rank":551,"runs":[527,23,1]},"entrance:2621":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:2622":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:26224":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:2623":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:26230":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:26236":{"rank":570,"runs":[544,14,2,2,1,1,1,1,1,1,1,1]},"entrance:26237":{"rank":570,"runs":[542,12,3,3,2,2,1,1,1,1,1,1]},"entrance:26238":{"rank":570,"runs":[546,14,3,2,1,1,1,1,1]},"entrance:26239":{"rank":570,"runs":[544,12,3,3,3,2,1,1,1]},"entrance:2624":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"entrance:26240":{"rank":570,"runs":[540,10,5,5,2,2,1,1,1,1,1,1]},"entrance:26241":{"rank":570,"runs":[538,8,7,7,2,2,1,1,1,1,1,1]},"entrance:26242":{"rank":570,"runs":[542,10,5,5,3,2,1,1,1]},"entrance:26243":{"rank":570,"runs":[540,8,7,7,3,2,1,1,1]},"entrance:26244":{"rank":570,"runs":[536,9,9,6,2,2,1,1,1,1,1,1]},"entrance:26245":{"rank":570,"runs":[534,11,11,4,2,2,1,1,1,1,1,1]},"entrance:26246":{"rank":570,"runs":[538,9,9,6,3,2,1,1,1]},"entrance:26247":{"rank":570,"runs":[536,11,11,4,3,2,1,1,1]},"entrance:26248":{"rank":570,"runs":[532,13,13,2,2,2,1,1,1,1,1,1]},"entrance:26250":{"rank":570,"runs":[534,13,13,3,2,2,1,1,1]},"entrance:26251":{"rank":570,"runs":[532,15,15,3,2,1,1,1]},"entrance:26252":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:26253":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:26254":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:26255":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:26256":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:26257":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:26258":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:26259":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:26260":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:26261":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:26262":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:26263":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:26264":{"rank":570,"runs":[545,6,5,5,2,2,2,1,1,1]},"entrance:26265":{"rank":570,"runs":[543,5,5,4,4,4,2,1,1,1]},"entrance:26266":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:26267":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:26268":{"rank":570,"runs":[541,6,6,5,5,2,2,1,1,1]},"entrance:26269":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:2627":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:26270":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:26271":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:26272":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:26273":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:26274":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:26275":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:2628":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:2629":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"entrance:263":{"rank":551,"runs":[527,23,1]},"entrance:2630":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"entrance:2634":{"rank":571,"runs":[547,20,2,1,1]},"entrance:26355":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:2636":{"rank":571,"runs":[547,19,1,1,1,1,1]},"entrance:2637":{"rank":566,"runs":[539,10,4,4,4,3,1,1]},"entrance:2638":{"rank":568,"runs":[535,10,9,7,4,1,1,1]},"entrance:2639":{"rank":566,"runs":[543,14,7,1,1]},"entrance:264":{"rank":551,"runs":[527,23,1]},"entrance:2640":{"rank":568,"runs":[531,14,13,4,3,1,1,1]},"entrance:265":{"rank":551,"runs":[527,23,1]},"entrance:26501":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:26571":{"rank":554,"runs":[530,19,3,1,1]},"entrance:26580":{"rank":552,"runs":[528,22,1,1]},"entrance:26583":{"rank":556,"runs":[532,17,5,1,1]},"entrance:26595":{"rank":558,"runs":[534,15,7,1,1]},"entrance:266":{"rank":551,"runs":[527,23,1]},"entrance:26607":{"rank":560,"runs":[536,13,9,1,1]},"entrance:26619":{"rank":562,"runs":[538,11,11,1,1]},"entrance:26631":{"rank":564,"runs":[540,13,9,1,1]},"entrance:26643":{"rank":566,"runs":[541,13,4,3,2,1,1,1]},"entrance:26686":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:267":{"rank":551,"runs":[527,23,1]},"entrance:26702":{"rank":552,"runs":[528,22,1,1]},"entrance:26713":{"rank":554,"runs":[530,20,3,1]},"entrance:26724":{"rank":556,"runs":[532,18,5,1]},"entrance:2673":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:26735":{"rank":558,"runs":[533,12,5,3,2,1,1,1]},"entrance:26746":{"rank":560,"runs":[533,10,5,4,3,3,1,1]},"entrance:26757":{"rank":562,"runs":[533,8,6,5,5,3,1,1]},"entrance:26768":{"rank":564,"runs":[533,8,7,6,5,3,1,1]},"entrance:26779":{"rank":566,"runs":[533,10,9,5,4,3,1,1]},"entrance:26790":{"rank":568,"runs":[533,12,11,5,3,2,1,1]},"entrance:268":{"rank":551,"runs":[527,23,1]},"entrance:26801":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:26816":{"rank":554,"runs":[530,19,3,1,1]},"entrance:26825":{"rank":552,"runs":[528,22,1,1]},"entrance:26828":{"rank":556,"runs":[532,17,5,1,1]},"entrance:26840":{"rank":558,"runs":[534,15,7,1,1]},"entrance:26852":{"rank":560,"runs":[536,13,9,1,1]},"entrance:26864":{"rank":562,"runs":[538,11,11,1,1]},"entrance:26876":{"rank":564,"runs":[539,11,7,2,2,1,1,1]},"entrance:26888":{"rank":566,"runs":[539,11,3,2,2,2,2,2,1,1,1]},"entrance:269":{"rank":551,"runs":[527,23,1]},"entrance:26931":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:26948":{"rank":552,"runs":[528,22,1,1]},"entrance:26959":{"rank":554,"runs":[530,20,3,1]},"entrance:26970":{"rank":556,"runs":[532,18,5,1]},"entrance:26981":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:26992":{"rank":560,"runs":[533,10,5,2,2,2,2,1,1,1,1]},"entrance:27":{"rank":551,"runs":[527,23,1]},"entrance:270":{"rank":551,"runs":[527,23,1]},"entrance:27003":{"rank":562,"runs":[533,8,5,4,3,2,2,2,1,1,1]},"entrance:27014":{"rank":564,"runs":[533,6,6,5,5,2,2,2,1,1,1]},"entrance:27025":{"rank":566,"runs":[533,8,7,5,4,2,2,2,1,1,1]},"entrance:2703":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"entrance:27036":{"rank":568,"runs":[533,10,9,5,2,2,2,2,1,1,1]},"entrance:27047":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:27063":{"rank":554,"runs":[530,19,3,1,1]},"entrance:27072":{"rank":552,"runs":[528,22,1,1]},"entrance:27075":{"rank":556,"runs":[532,17,5,1,1]},"entrance:27087":{"rank":558,"runs":[534,15,7,1,1]},"entrance:27099":{"rank":560,"runs":[536,13,9,1,1]},"entrance:271":{"rank":551,"runs":[527,23,1]},"entrance:2710":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:27111":{"rank":562,"runs":[537,9,9,2,2,1,1,1]},"entrance:27123":{"rank":564,"runs":[537,9,7,4,3,2,1,1]},"entrance:27135":{"rank":566,"runs":[537,9,4,4,3,2,2,2,1,1,1]},"entrance:27176":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:27196":{"rank":552,"runs":[528,22,1,1]},"entrance:272":{"rank":551,"runs":[527,23,1]},"entrance:27207":{"rank":554,"runs":[530,20,3,1]},"entrance:27218":{"rank":556,"runs":[532,18,5,1]},"entrance:27229":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:27240":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:27251":{"rank":562,"runs":[533,8,5,4,4,2,2,1,1,1,1]},"entrance:27262":{"rank":564,"runs":[533,6,5,4,4,4,3,2,1,1,1]},"entrance:27273":{"rank":566,"runs":[533,6,5,5,4,4,4,2,1,1,1]},"entrance:27284":{"rank":568,"runs":[533,8,7,5,4,4,2,2,1,1,1]},"entrance:27295":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:273":{"rank":551,"runs":[527,23,1]},"entrance:27312":{"rank":554,"runs":[530,19,3,1,1]},"entrance:27321":{"rank":552,"runs":[528,22,1,1]},"entrance:27324":{"rank":556,"runs":[532,17,5,1,1]},"entrance:27336":{"rank":558,"runs":[534,15,7,1,1]},"entrance:27348":{"rank":560,"runs":[535,11,7,2,2,1,1,1]},"entrance:27360":{"rank":562,"runs":[535,9,7,4,3,2,1,1]},"entrance:27372":{"rank":564,"runs":[535,7,7,6,5,2,1,1]},"entrance:27384":{"rank":566,"runs":[535,7,6,6,3,2,2,2,1,1,1]},"entrance:274":{"rank":551,"runs":[527,23,1]},"entrance:2741":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"entrance:27425":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:27446":{"rank":552,"runs":[528,22,1,1]},"entrance:27457":{"rank":554,"runs":[530,20,3,1]},"entrance:27468":{"rank":556,"runs":[532,18,5,1]},"entrance:2747":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:27479":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:2748":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:27490":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:275":{"rank":551,"runs":[527,23,1]},"entrance:27501":{"rank":562,"runs":[533,10,6,5,5,1,1,1]},"entrance:27512":{"rank":564,"runs":[533,6,6,6,5,2,2,1,1,1,1]},"entrance:27523":{"rank":566,"runs":[533,6,6,5,4,4,3,2,1,1,1]},"entrance:27534":{"rank":568,"runs":[533,6,6,6,5,5,2,2,1,1,1]},"entrance:27545":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:27563":{"rank":554,"runs":[530,19,3,1,1]},"entrance:27572":{"rank":552,"runs":[528,22,1,1]},"entrance:27575":{"rank":556,"runs":[532,17,5,1,1]},"entrance:27587":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:27599":{"rank":560,"runs":[533,11,5,4,3,2,1,1]},"entrance:276":{"rank":551,"runs":[527,23,1]},"entrance:27611":{"rank":562,"runs":[533,9,6,5,5,2,1,1]},"entrance:27623":{"rank":564,"runs":[533,8,7,7,5,2,1,1]},"entrance:27635":{"rank":566,"runs":[533,8,8,5,3,2,2,2,1,1,1]},"entrance:27674":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:27698":{"rank":552,"runs":[528,22,1,1]},"entrance:277":{"rank":551,"runs":[527,23,1]},"entrance:27709":{"rank":554,"runs":[530,20,3,1]},"entrance:27720":{"rank":556,"runs":[532,18,5,1]},"entrance:27731":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:27742":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:27753":{"rank":562,"runs":[533,10,6,5,5,1,1,1]},"entrance:27764":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:27775":{"rank":566,"runs":[533,8,8,5,4,2,2,1,1,1,1]},"entrance:27786":{"rank":568,"runs":[533,8,8,5,4,3,2,2,1,1,1]},"entrance:2779":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"entrance:27797":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:278":{"rank":551,"runs":[527,23,1]},"entrance:27816":{"rank":554,"runs":[530,19,3,1,1]},"entrance:27825":{"rank":552,"runs":[528,22,1,1]},"entrance:27828":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:27840":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:2785":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:27852":{"rank":560,"runs":[531,11,6,5,3,2,1,1]},"entrance:2786":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:27864":{"rank":562,"runs":[531,9,8,7,3,2,1,1]},"entrance:27876":{"rank":564,"runs":[531,10,9,7,3,2,1,1]},"entrance:279":{"rank":551,"runs":[527,23,1]},"entrance:27927":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:27952":{"rank":552,"runs":[528,22,1,1]},"entrance:27963":{"rank":554,"runs":[530,20,3,1]},"entrance:27974":{"rank":556,"runs":[532,18,5,1]},"entrance:27985":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:27996":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:28":{"rank":551,"runs":[527,23,1]},"entrance:280":{"rank":551,"runs":[527,23,1]},"entrance:28007":{"rank":562,"runs":[533,10,6,5,5,1,1,1]},"entrance:28018":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:28029":{"rank":566,"runs":[533,10,9,6,5,1,1,1]},"entrance:28040":{"rank":568,"runs":[533,10,10,5,2,2,2,1,1,1,1]},"entrance:28051":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:28080":{"rank":552,"runs":[528,22,1,1]},"entrance:281":{"rank":551,"runs":[527,23,1]},"entrance:2818":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"entrance:28180":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:282":{"rank":551,"runs":[527,23,1]},"entrance:28208":{"rank":552,"runs":[528,22,1,1]},"entrance:28219":{"rank":554,"runs":[530,20,3,1]},"entrance:28230":{"rank":556,"runs":[532,18,5,1]},"entrance:2824":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:28241":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:2825":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:28252":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:28263":{"rank":562,"runs":[533,10,6,5,5,1,1,1]},"entrance:28274":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:28285":{"rank":566,"runs":[533,10,9,6,5,1,1,1]},"entrance:28296":{"rank":568,"runs":[533,12,11,5,4,1,1,1]},"entrance:283":{"rank":551,"runs":[527,23,1]},"entrance:28307":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:28337":{"rank":552,"runs":[528,22,1,1]},"entrance:284":{"rank":551,"runs":[527,23,1]},"entrance:28437":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:28466":{"rank":552,"runs":[528,22,1,1]},"entrance:28477":{"rank":554,"runs":[530,20,3,1]},"entrance:28488":{"rank":556,"runs":[532,18,5,1]},"entrance:28499":{"rank":558,"runs":[533,14,5,2,1,1,1,1]},"entrance:285":{"rank":551,"runs":[527,23,1]},"entrance:28510":{"rank":560,"runs":[533,12,5,4,3,1,1,1]},"entrance:28521":{"rank":562,"runs":[533,10,6,5,5,1,1,1]},"entrance:28532":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:28543":{"rank":566,"runs":[533,10,9,6,5,1,1,1]},"entrance:28554":{"rank":568,"runs":[533,12,11,5,4,1,1,1]},"entrance:28565":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:2857":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"entrance:28585":{"rank":552,"runs":[528,21,1,1,1]},"entrance:286":{"rank":551,"runs":[527,23,1]},"entrance:2863":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:2864":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:28694":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:28695":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:28696":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:28697":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:28698":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:28699":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:287":{"rank":551,"runs":[527,23,1]},"entrance:28700":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:28701":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:28702":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:28703":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:28704":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:28705":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:28715":{"rank":552,"runs":[528,21,1,1,1]},"entrance:288":{"rank":551,"runs":[527,23,1]},"entrance:28824":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:28825":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:28826":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:28827":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:28828":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:28829":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:28830":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:28831":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:28832":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:28833":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:28834":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:28835":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:289":{"rank":551,"runs":[527,23,1]},"entrance:2897":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"entrance:29":{"rank":551,"runs":[527,23,1]},"entrance:290":{"rank":551,"runs":[527,23,1]},"entrance:2903":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:2904":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:291":{"rank":551,"runs":[527,23,1]},"entrance:292":{"rank":551,"runs":[527,23,1]},"entrance:293":{"rank":551,"runs":[527,23,1]},"entrance:29348":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:2937":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"entrance:294":{"rank":551,"runs":[527,23,1]},"entrance:2943":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:2944":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:295":{"rank":551,"runs":[527,23,1]},"entrance:29521":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:29535":{"rank":566,"runs":[542,15,7,1,1]},"entrance:29537":{"rank":562,"runs":[539,11,6,4,1,1]},"entrance:29542":{"rank":564,"runs":[533,8,8,5,4,3,1,1,1]},"entrance:29544":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:29547":{"rank":564,"runs":[536,8,8,5,4,1,1,1]},"entrance:29548":{"rank":566,"runs":[543,8,7,6,1,1]},"entrance:29567":{"rank":566,"runs":[543,7,6,4,4,1,1]},"entrance:29568":{"rank":566,"runs":[539,6,4,4,4,4,3,1,1]},"entrance:29577":{"rank":566,"runs":[539,6,4,4,4,4,3,1,1]},"entrance:29578":{"rank":566,"runs":[535,8,8,6,4,3,1,1]},"entrance:29588":{"rank":566,"runs":[534,8,8,4,3,3,1,1,1,1,1,1]},"entrance:29599":{"rank":568,"runs":[537,8,8,5,4,3,1,1,1]},"entrance:296":{"rank":551,"runs":[527,23,1]},"entrance:29600":{"rank":568,"runs":[533,12,11,5,4,1,1,1]},"entrance:29602":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"entrance:29603":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"entrance:29604":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"entrance:29605":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"entrance:29608":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"entrance:29609":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:29610":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"entrance:29611":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:29614":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:29615":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:29616":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:29617":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:29618":{"rank":566,"runs":[538,8,4,4,3,3,1,1,1,1,1,1]},"entrance:29619":{"rank":568,"runs":[541,7,5,4,4,4,1,1,1]},"entrance:29620":{"rank":566,"runs":[542,12,4,3,1,1,1,1,1]},"entrance:29621":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:29647":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"entrance:29653":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"entrance:29654":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:29684":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"entrance:29690":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"entrance:29691":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:297":{"rank":551,"runs":[527,23,1]},"entrance:29722":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"entrance:29728":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"entrance:29729":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:29760":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"entrance:29766":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"entrance:29767":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:2978":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"entrance:29799":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"entrance:298":{"rank":551,"runs":[527,23,1]},"entrance:29805":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"entrance:29806":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:29838":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"entrance:2984":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:29844":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"entrance:29845":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:2985":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:29878":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"entrance:29884":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"entrance:29885":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:299":{"rank":551,"runs":[527,23,1]},"entrance:29918":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:29924":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:29925":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:29959":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:29965":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:29966":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:3":{"rank":551,"runs":[527,23,1]},"entrance:30":{"rank":551,"runs":[527,23,1]},"entrance:300":{"rank":551,"runs":[527,23,1]},"entrance:30000":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:30006":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:30012":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:30013":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:30014":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:30015":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:30016":{"rank":570,"runs":[541,6,6,6,6,2,1,1,1]},"entrance:30017":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:30018":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:30019":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:30020":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:30021":{"rank":570,"runs":[535,12,12,6,2,1,1,1]},"entrance:30022":{"rank":570,"runs":[539,8,8,6,2,2,2,1,1,1]},"entrance:30023":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:30024":{"rank":570,"runs":[532,14,14,3,1,1,1,1,1,1,1]},"entrance:30026":{"rank":570,"runs":[534,12,12,3,2,1,1,1,1,1,1,1]},"entrance:30027":{"rank":570,"runs":[532,12,12,3,3,2,1,1,1,1,1,1]},"entrance:30028":{"rank":570,"runs":[545,6,6,4,2,2,2,1,1,1]},"entrance:30029":{"rank":570,"runs":[543,6,4,4,4,4,2,1,1,1]},"entrance:30030":{"rank":570,"runs":[547,6,6,6,3,1,1]},"entrance:30031":{"rank":570,"runs":[545,6,6,4,2,2,2,1,1,1]},"entrance:30032":{"rank":570,"runs":[541,6,6,6,4,2,2,1,1,1]},"entrance:30033":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:30034":{"rank":570,"runs":[543,6,6,4,4,2,2,1,1,1]},"entrance:30035":{"rank":570,"runs":[541,6,6,6,6,2,1,1,1]},"entrance:30036":{"rank":570,"runs":[536,10,10,4,3,1,1,1,1,1,1,1]},"entrance:30037":{"rank":570,"runs":[534,10,10,4,3,3,1,1,1,1,1,1]},"entrance:30038":{"rank":570,"runs":[538,8,8,6,3,1,1,1,1,1,1,1]},"entrance:30039":{"rank":570,"runs":[536,8,8,6,3,3,1,1,1,1,1,1]},"entrance:30040":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:30041":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:30042":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:30043":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:30044":{"rank":570,"runs":[540,8,6,6,3,1,1,1,1,1,1,1]},"entrance:30045":{"rank":570,"runs":[538,8,6,6,3,3,1,1,1,1,1,1]},"entrance:30046":{"rank":570,"runs":[542,10,4,4,3,1,1,1,1,1,1,1]},"entrance:30047":{"rank":570,"runs":[540,10,4,4,3,3,1,1,1,1,1,1]},"entrance:30048":{"rank":570,"runs":[544,12,3,2,2,1,1,1,1,1,1,1]},"entrance:30049":{"rank":570,"runs":[542,12,3,3,2,2,1,1,1,1,1,1]},"entrance:30050":{"rank":570,"runs":[546,14,3,2,1,1,1,1,1]},"entrance:30051":{"rank":570,"runs":[544,14,3,3,2,1,1,1,1]},"entrance:30062":{"rank":552,"runs":[528,22,1,1]},"entrance:301":{"rank":551,"runs":[527,23,1]},"entrance:30161":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:30170":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:30182":{"rank":552,"runs":[528,22,1,1]},"entrance:3019":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"entrance:302":{"rank":551,"runs":[527,23,1]},"entrance:3025":{"rank":571,"runs":[529,19,19,1,1,1,1]},"entrance:30292":{"rank":552,"runs":[528,21,1,1,1]},"entrance:303":{"rank":551,"runs":[527,23,1]},"entrance:30303":{"rank":552,"runs":[528,22,1,1]},"entrance:3031":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:30314":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:3032":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:30325":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:3033":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:30336":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:3034":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:30347":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:3035":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:30358":{"rank":562,"runs":[531,9,8,8,2,1,1,1,1]},"entrance:3036":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:30369":{"rank":564,"runs":[531,10,10,7,2,1,1,1,1]},"entrance:3037":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:3038":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:30380":{"rank":566,"runs":[531,12,12,5,2,1,1,1,1]},"entrance:3039":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:304":{"rank":551,"runs":[527,23,1]},"entrance:3040":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:30402":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:3041":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:30411":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:30413":{"rank":552,"runs":[528,21,1,1,1]},"entrance:3042":{"rank":570,"runs":[537,10,10,4,4,2,1,1,1]},"entrance:30424":{"rank":552,"runs":[528,22,1,1]},"entrance:3043":{"rank":570,"runs":[533,14,14,2,2,2,1,1,1]},"entrance:3044":{"rank":570,"runs":[531,16,16,2,2,1,1,1]},"entrance:3045":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:3046":{"rank":570,"runs":[533,14,14,4,2,1,1,1]},"entrance:3047":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:3048":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:3049":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:305":{"rank":551,"runs":[527,23,1]},"entrance:3050":{"rank":570,"runs":[545,8,8,2,2,2,1,1,1]},"entrance:3051":{"rank":570,"runs":[541,6,6,6,6,2,1,1,1]},"entrance:3052":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:3053":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:30534":{"rank":552,"runs":[528,21,1,1,1]},"entrance:3054":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:30546":{"rank":552,"runs":[528,22,1,1]},"entrance:3055":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:30557":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:3056":{"rank":570,"runs":[535,12,12,6,2,1,1,1]},"entrance:30568":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:3057":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:30579":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:3058":{"rank":570,"runs":[537,10,10,8,2,1,1,1]},"entrance:3059":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:30590":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:306":{"rank":551,"runs":[527,23,1]},"entrance:3060":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:30601":{"rank":562,"runs":[533,9,6,6,3,2,1,1,1]},"entrance:3061":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:30612":{"rank":564,"runs":[533,8,8,7,3,2,1,1,1]},"entrance:3062":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:30623":{"rank":566,"runs":[533,10,10,5,3,2,1,1,1]},"entrance:3063":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:30634":{"rank":568,"runs":[533,10,10,3,2,2,2,2,1,1,1,1]},"entrance:3064":{"rank":570,"runs":[539,10,8,8,2,1,1,1]},"entrance:30645":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:3065":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:30652":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:30656":{"rank":552,"runs":[528,21,1,1,1]},"entrance:3066":{"rank":570,"runs":[541,12,6,6,2,1,1,1]},"entrance:30668":{"rank":552,"runs":[528,22,1,1]},"entrance:3067":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:3068":{"rank":570,"runs":[543,14,4,4,2,1,1,1]},"entrance:3069":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:307":{"rank":551,"runs":[527,23,1]},"entrance:3070":{"rank":570,"runs":[545,16,2,2,2,1,1,1]},"entrance:3072":{"rank":554,"runs":[530,19,3,1,1]},"entrance:30778":{"rank":552,"runs":[528,21,1,1,1]},"entrance:30791":{"rank":552,"runs":[528,22,1,1]},"entrance:308":{"rank":551,"runs":[527,23,1]},"entrance:30802":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:30813":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:30824":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:30835":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:30846":{"rank":562,"runs":[535,9,5,4,4,2,1,1,1]},"entrance:30857":{"rank":564,"runs":[535,7,6,6,5,2,1,1,1]},"entrance:30868":{"rank":566,"runs":[535,8,8,5,5,2,1,1,1]},"entrance:30879":{"rank":568,"runs":[535,8,8,5,2,2,2,2,1,1,1,1]},"entrance:30890":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:30897":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:309":{"rank":551,"runs":[527,23,1]},"entrance:30901":{"rank":552,"runs":[528,21,1,1,1]},"entrance:30914":{"rank":552,"runs":[528,22,1,1]},"entrance:3096":{"rank":558,"runs":[534,15,7,1,1]},"entrance:31":{"rank":551,"runs":[527,23,1]},"entrance:310":{"rank":551,"runs":[527,23,1]},"entrance:31024":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31038":{"rank":552,"runs":[528,22,1,1]},"entrance:31049":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:31060":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:31071":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:31082":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:31093":{"rank":562,"runs":[537,9,7,2,2,2,1,1,1]},"entrance:311":{"rank":551,"runs":[527,23,1]},"entrance:31104":{"rank":564,"runs":[537,7,7,4,4,2,1,1,1]},"entrance:31115":{"rank":566,"runs":[537,7,6,6,5,2,1,1,1]},"entrance:31126":{"rank":568,"runs":[537,7,6,6,2,2,2,2,1,1,1,1]},"entrance:31137":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:31142":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:31148":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31162":{"rank":552,"runs":[528,22,1,1]},"entrance:312":{"rank":551,"runs":[527,23,1]},"entrance:31272":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31287":{"rank":552,"runs":[528,22,1,1]},"entrance:31298":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:313":{"rank":551,"runs":[527,23,1]},"entrance:31309":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:31320":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:31331":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:31342":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:31353":{"rank":564,"runs":[539,9,7,2,2,2,1,1,1]},"entrance:31364":{"rank":566,"runs":[539,9,5,4,4,2,1,1,1]},"entrance:31375":{"rank":568,"runs":[539,9,4,4,2,2,2,2,1,1,1,1]},"entrance:31386":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:31391":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:31397":{"rank":552,"runs":[528,21,1,1,1]},"entrance:314":{"rank":551,"runs":[527,23,1]},"entrance:31412":{"rank":552,"runs":[528,22,1,1]},"entrance:3144":{"rank":566,"runs":[542,15,7,1,1]},"entrance:315":{"rank":551,"runs":[527,23,1]},"entrance:31522":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31538":{"rank":552,"runs":[528,22,1,1]},"entrance:31549":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:31560":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:31571":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:31582":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:31593":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:316":{"rank":551,"runs":[527,23,1]},"entrance:31604":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:31615":{"rank":566,"runs":[541,11,5,2,2,2,1,1,1]},"entrance:31626":{"rank":568,"runs":[541,11,2,2,2,2,2,2,1,1,1,1]},"entrance:31637":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:31640":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:31648":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31664":{"rank":552,"runs":[528,22,1,1]},"entrance:317":{"rank":551,"runs":[527,23,1]},"entrance:31774":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31791":{"rank":552,"runs":[528,22,1,1]},"entrance:318":{"rank":551,"runs":[527,23,1]},"entrance:31802":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:31813":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:31824":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:31835":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:31846":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:31857":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:31868":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:31879":{"rank":568,"runs":[543,13,4,2,2,1,1,1,1]},"entrance:3189":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:31890":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:31893":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:319":{"rank":551,"runs":[527,23,1]},"entrance:31901":{"rank":552,"runs":[528,21,1,1,1]},"entrance:31918":{"rank":552,"runs":[528,22,1,1]},"entrance:3192":{"rank":554,"runs":[530,19,3,1,1]},"entrance:32":{"rank":551,"runs":[527,23,1]},"entrance:320":{"rank":551,"runs":[527,23,1]},"entrance:32083":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:321":{"rank":551,"runs":[527,23,1]},"entrance:322":{"rank":551,"runs":[527,23,1]},"entrance:32229":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:323":{"rank":551,"runs":[527,23,1]},"entrance:32320":{"rank":552,"runs":[528,21,1,1,1]},"entrance:324":{"rank":551,"runs":[527,23,1]},"entrance:32438":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:32439":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:32440":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:32441":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:32442":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:32443":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:32444":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:32445":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:32446":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:32447":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:32448":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:32449":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:325":{"rank":551,"runs":[527,23,1]},"entrance:326":{"rank":551,"runs":[527,23,1]},"entrance:327":{"rank":551,"runs":[527,23,1]},"entrance:328":{"rank":551,"runs":[527,23,1]},"entrance:329":{"rank":551,"runs":[527,23,1]},"entrance:32944":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:32984":{"rank":552,"runs":[528,21,1,1,1]},"entrance:32985":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33":{"rank":551,"runs":[527,23,1]},"entrance:330":{"rank":551,"runs":[527,23,1]},"entrance:33002":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33003":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33017":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33018":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33029":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33030":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33038":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33039":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33044":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33045":{"rank":552,"runs":[528,21,1,1,1]},"entrance:33046":{"rank":554,"runs":[530,19,3,1,1]},"entrance:33063":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:33064":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:33073":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:33074":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:33080":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:33081":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:33084":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:33085":{"rank":556,"runs":[532,17,5,1,1]},"entrance:33088":{"rank":556,"runs":[532,9,8,4,1,1,1]},"entrance:33089":{"rank":556,"runs":[532,18,5,1]},"entrance:33092":{"rank":556,"runs":[532,9,8,4,1,1,1]},"entrance:33093":{"rank":556,"runs":[532,9,8,4,1,1,1]},"entrance:331":{"rank":551,"runs":[527,23,1]},"entrance:33100":{"rank":560,"runs":[536,8,8,5,1,1,1]},"entrance:33105":{"rank":562,"runs":[538,9,5,4,2,1,1,1,1]},"entrance:33106":{"rank":568,"runs":[544,15,5,2,1,1]},"entrance:33110":{"rank":564,"runs":[533,8,7,5,5,4,1,1]},"entrance:33112":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:33114":{"rank":568,"runs":[540,12,4,3,3,1,1,1,1,1,1]},"entrance:33116":{"rank":566,"runs":[542,12,6,1,1,1,1,1,1]},"entrance:3313":{"rank":554,"runs":[530,19,3,1,1]},"entrance:33137":{"rank":566,"runs":[542,8,5,5,2,1,1,1,1]},"entrance:33138":{"rank":566,"runs":[538,8,3,3,3,3,2,2,1,1,1,1]},"entrance:33147":{"rank":566,"runs":[538,5,4,4,4,3,2,2,1,1,1,1]},"entrance:33148":{"rank":566,"runs":[534,7,7,4,3,3,2,2,1,1,1,1]},"entrance:33158":{"rank":566,"runs":[534,8,8,5,3,2,2,1,1,1,1]},"entrance:33169":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:33170":{"rank":568,"runs":[543,13,3,2,2,2,1,1,1]},"entrance:33172":{"rank":569,"runs":[546,15,4,2,1,1]},"entrance:33173":{"rank":569,"runs":[546,15,4,2,1,1]},"entrance:33174":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:33175":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:33178":{"rank":569,"runs":[543,8,6,3,3,3,1,1,1]},"entrance:33179":{"rank":569,"runs":[539,7,7,6,4,3,1,1,1]},"entrance:33180":{"rank":569,"runs":[543,8,6,3,3,3,1,1,1]},"entrance:33181":{"rank":569,"runs":[539,7,7,6,4,3,1,1,1]},"entrance:33184":{"rank":569,"runs":[535,11,11,6,3,1,1,1]},"entrance:33185":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:33186":{"rank":569,"runs":[535,11,11,6,3,1,1,1]},"entrance:33187":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:33188":{"rank":566,"runs":[539,7,4,4,4,3,3,1,1]},"entrance:33189":{"rank":568,"runs":[543,7,7,4,2,2,1,1,1]},"entrance:33190":{"rank":566,"runs":[543,7,7,7,1,1]},"entrance:33191":{"rank":568,"runs":[539,7,6,6,4,3,1,1,1]},"entrance:332":{"rank":551,"runs":[527,23,1]},"entrance:33217":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:33223":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:33224":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:33254":{"rank":571,"runs":[548,15,2,2,2,1,1]},"entrance:33260":{"rank":571,"runs":[548,15,2,2,2,1,1]},"entrance:33261":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:33292":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:33298":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:33299":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:333":{"rank":551,"runs":[527,23,1]},"entrance:33330":{"rank":571,"runs":[547,12,6,1,1,1,1,1,1]},"entrance:33336":{"rank":571,"runs":[547,12,6,1,1,1,1,1,1]},"entrance:33337":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:33369":{"rank":571,"runs":[545,10,6,3,3,1,1,1,1]},"entrance:3337":{"rank":558,"runs":[534,15,7,1,1]},"entrance:33375":{"rank":571,"runs":[545,10,6,3,3,1,1,1,1]},"entrance:33376":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:334":{"rank":551,"runs":[527,23,1]},"entrance:33408":{"rank":571,"runs":[543,8,6,5,5,1,1,1,1]},"entrance:33414":{"rank":571,"runs":[543,8,6,5,5,1,1,1,1]},"entrance:33415":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:33448":{"rank":571,"runs":[541,7,7,6,6,1,1,1,1]},"entrance:33454":{"rank":571,"runs":[541,7,7,6,6,1,1,1,1]},"entrance:33455":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:33488":{"rank":571,"runs":[539,9,9,6,4,1,1,1,1]},"entrance:33494":{"rank":571,"runs":[539,9,9,6,4,1,1,1,1]},"entrance:33495":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:335":{"rank":551,"runs":[527,23,1]},"entrance:33529":{"rank":571,"runs":[537,11,11,6,2,1,1,1,1]},"entrance:33535":{"rank":571,"runs":[537,11,11,6,2,1,1,1,1]},"entrance:33536":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:33570":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:33576":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:33582":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:33583":{"rank":570,"runs":[542,12,4,4,1,1,1,1,1,1,1,1]},"entrance:33584":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:33585":{"rank":570,"runs":[544,12,3,2,2,1,1,1,1,1,1,1]},"entrance:33586":{"rank":570,"runs":[540,10,4,4,3,3,1,1,1,1,1,1]},"entrance:33587":{"rank":570,"runs":[538,8,5,5,4,4,1,1,1,1,1,1]},"entrance:33588":{"rank":570,"runs":[542,10,3,3,3,2,2,1,1,1,1,1]},"entrance:33589":{"rank":570,"runs":[540,8,5,5,3,2,2,1,1,1,1,1]},"entrance:33590":{"rank":570,"runs":[536,7,7,6,4,4,1,1,1,1,1,1]},"entrance:33591":{"rank":570,"runs":[534,9,9,4,4,4,1,1,1,1,1,1]},"entrance:33592":{"rank":570,"runs":[538,7,7,6,3,2,2,1,1,1,1,1]},"entrance:33593":{"rank":570,"runs":[536,9,9,4,3,2,2,1,1,1,1,1]},"entrance:33594":{"rank":570,"runs":[532,11,11,4,4,2,1,1,1,1,1,1]},"entrance:33596":{"rank":570,"runs":[534,11,11,3,2,2,2,1,1,1,1,1]},"entrance:33597":{"rank":570,"runs":[532,13,13,3,2,2,1,1,1,1,1]},"entrance:33598":{"rank":570,"runs":[544,10,5,3,3,2,1,1,1]},"entrance:33599":{"rank":570,"runs":[542,8,5,5,5,2,1,1,1]},"entrance:336":{"rank":551,"runs":[527,23,1]},"entrance:33600":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:33601":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:33602":{"rank":570,"runs":[540,7,7,6,5,2,1,1,1]},"entrance:33603":{"rank":570,"runs":[538,9,9,5,4,2,1,1,1]},"entrance:33604":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:33605":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:33606":{"rank":570,"runs":[536,11,11,5,2,2,1,1,1]},"entrance:33607":{"rank":570,"runs":[534,13,13,5,2,1,1,1]},"entrance:33608":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:33609":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:33610":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:33611":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:33612":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:33613":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:33614":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:33615":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:33616":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:33617":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:33618":{"rank":570,"runs":[545,7,7,2,2,2,2,1,1,1]},"entrance:33619":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:33620":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:33621":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:337":{"rank":551,"runs":[527,23,1]},"entrance:33701":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:338":{"rank":551,"runs":[527,23,1]},"entrance:33847":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:3385":{"rank":566,"runs":[542,15,7,1,1]},"entrance:339":{"rank":551,"runs":[527,23,1]},"entrance:33991":{"rank":570,"runs":[546,12,5,2,1,1,1,1,1]},"entrance:34":{"rank":551,"runs":[527,23,1]},"entrance:340":{"rank":551,"runs":[527,23,1]},"entrance:34064":{"rank":554,"runs":[530,19,3,1,1]},"entrance:34073":{"rank":552,"runs":[528,22,1,1]},"entrance:34076":{"rank":556,"runs":[532,17,5,1,1]},"entrance:34088":{"rank":558,"runs":[534,15,7,1,1]},"entrance:341":{"rank":551,"runs":[527,23,1]},"entrance:34100":{"rank":560,"runs":[536,13,9,1,1]},"entrance:34112":{"rank":562,"runs":[538,11,11,1,1]},"entrance:34124":{"rank":564,"runs":[539,11,5,4,2,1,1,1]},"entrance:34136":{"rank":566,"runs":[539,11,4,4,3,3,1,1]},"entrance:34179":{"rank":570,"runs":[546,12,5,2,1,1,1,1,1]},"entrance:34196":{"rank":552,"runs":[528,22,1,1]},"entrance:342":{"rank":551,"runs":[527,23,1]},"entrance:34207":{"rank":554,"runs":[530,20,3,1]},"entrance:34218":{"rank":556,"runs":[532,18,5,1]},"entrance:34229":{"rank":558,"runs":[534,16,7,1]},"entrance:34240":{"rank":560,"runs":[535,10,7,3,2,1,1,1]},"entrance:34251":{"rank":562,"runs":[535,8,7,4,3,3,1,1]},"entrance:34262":{"rank":564,"runs":[535,7,6,6,5,3,1,1]},"entrance:34273":{"rank":566,"runs":[535,8,7,7,4,3,1,1]},"entrance:34284":{"rank":568,"runs":[535,10,9,7,3,2,1,1]},"entrance:34295":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:343":{"rank":551,"runs":[527,23,1]},"entrance:3430":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:34311":{"rank":554,"runs":[530,19,3,1,1]},"entrance:34320":{"rank":552,"runs":[528,22,1,1]},"entrance:34323":{"rank":556,"runs":[532,17,5,1,1]},"entrance:34335":{"rank":558,"runs":[534,15,7,1,1]},"entrance:3434":{"rank":554,"runs":[530,19,3,1,1]},"entrance:34347":{"rank":560,"runs":[536,13,9,1,1]},"entrance:34359":{"rank":562,"runs":[537,9,9,2,2,1,1,1]},"entrance:34371":{"rank":564,"runs":[537,9,5,2,2,2,2,2,1,1,1]},"entrance:34383":{"rank":566,"runs":[537,9,4,3,3,2,2,2,2,1,1]},"entrance:344":{"rank":551,"runs":[527,23,1]},"entrance:34424":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:34444":{"rank":552,"runs":[528,22,1,1]},"entrance:34455":{"rank":554,"runs":[530,20,3,1]},"entrance:34466":{"rank":556,"runs":[532,18,5,1]},"entrance:34477":{"rank":558,"runs":[534,16,7,1]},"entrance:34488":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:34499":{"rank":562,"runs":[535,8,7,2,2,2,2,1,1,1,1]},"entrance:345":{"rank":551,"runs":[527,23,1]},"entrance:34510":{"rank":564,"runs":[535,7,6,4,3,2,2,2,1,1,1]},"entrance:34521":{"rank":566,"runs":[535,7,6,5,4,2,2,2,1,1,1]},"entrance:34532":{"rank":568,"runs":[535,8,7,7,2,2,2,2,1,1,1]},"entrance:34543":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:34560":{"rank":554,"runs":[530,19,3,1,1]},"entrance:34569":{"rank":552,"runs":[528,22,1,1]},"entrance:34572":{"rank":556,"runs":[532,17,5,1,1]},"entrance:34584":{"rank":558,"runs":[534,15,7,1,1]},"entrance:34596":{"rank":560,"runs":[535,11,7,2,2,1,1,1]},"entrance:346":{"rank":551,"runs":[527,23,1]},"entrance:34608":{"rank":562,"runs":[535,9,7,4,3,2,1,1]},"entrance:34620":{"rank":564,"runs":[535,7,5,4,4,2,2,2,1,1,1]},"entrance:34632":{"rank":566,"runs":[535,7,4,4,4,3,3,2,2,1,1]},"entrance:34673":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:34694":{"rank":552,"runs":[528,22,1,1]},"entrance:347":{"rank":551,"runs":[527,23,1]},"entrance:34705":{"rank":554,"runs":[530,20,3,1]},"entrance:34716":{"rank":556,"runs":[532,18,5,1]},"entrance:34727":{"rank":558,"runs":[534,16,7,1]},"entrance:34738":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:34749":{"rank":562,"runs":[535,10,7,4,3,1,1,1]},"entrance:34760":{"rank":564,"runs":[535,7,6,4,4,2,2,1,1,1,1]},"entrance:34771":{"rank":566,"runs":[535,7,4,4,4,4,3,2,1,1,1]},"entrance:34782":{"rank":568,"runs":[535,7,6,5,4,4,2,2,1,1,1]},"entrance:34793":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:348":{"rank":551,"runs":[527,23,1]},"entrance:34811":{"rank":554,"runs":[530,19,3,1,1]},"entrance:34820":{"rank":552,"runs":[528,22,1,1]},"entrance:34823":{"rank":556,"runs":[532,17,5,1,1]},"entrance:34835":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:34847":{"rank":560,"runs":[533,11,5,4,3,2,1,1]},"entrance:34859":{"rank":562,"runs":[533,9,6,5,5,2,1,1]},"entrance:34871":{"rank":564,"runs":[533,6,6,5,5,2,2,2,1,1,1]},"entrance:34883":{"rank":566,"runs":[533,6,6,5,4,3,3,2,2,1,1]},"entrance:349":{"rank":551,"runs":[527,23,1]},"entrance:34922":{"rank":570,"runs":[547,7,7,4,3,1,1]},"entrance:34946":{"rank":552,"runs":[528,22,1,1]},"entrance:34957":{"rank":554,"runs":[530,20,3,1]},"entrance:34968":{"rank":556,"runs":[532,18,5,1]},"entrance:34979":{"rank":558,"runs":[534,16,7,1]},"entrance:34990":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:35":{"rank":551,"runs":[527,23,1]},"entrance:350":{"rank":551,"runs":[527,23,1]},"entrance:35001":{"rank":562,"runs":[535,10,7,4,3,1,1,1]},"entrance:35012":{"rank":564,"runs":[535,8,7,6,5,1,1,1]},"entrance:35023":{"rank":566,"runs":[535,7,6,6,4,2,2,1,1,1,1]},"entrance:35034":{"rank":568,"runs":[535,7,6,6,4,3,2,2,1,1,1]},"entrance:35045":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:35064":{"rank":554,"runs":[530,19,3,1,1]},"entrance:35073":{"rank":552,"runs":[528,22,1,1]},"entrance:35076":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:35088":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:351":{"rank":551,"runs":[527,23,1]},"entrance:35100":{"rank":560,"runs":[531,11,6,5,3,2,1,1]},"entrance:35112":{"rank":562,"runs":[531,9,8,7,3,2,1,1]},"entrance:35175":{"rank":570,"runs":[547,7,7,4,3,1,1]},"entrance:352":{"rank":551,"runs":[527,23,1]},"entrance:35200":{"rank":552,"runs":[528,22,1,1]},"entrance:35211":{"rank":554,"runs":[530,20,3,1]},"entrance:35222":{"rank":556,"runs":[532,18,5,1]},"entrance:35233":{"rank":558,"runs":[534,16,7,1]},"entrance:35244":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:35255":{"rank":562,"runs":[535,10,7,4,3,1,1,1]},"entrance:35266":{"rank":564,"runs":[535,8,7,6,5,1,1,1]},"entrance:35277":{"rank":566,"runs":[535,8,7,7,6,1,1,1]},"entrance:35288":{"rank":568,"runs":[535,8,8,7,2,2,2,1,1,1,1]},"entrance:35299":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:353":{"rank":551,"runs":[527,23,1]},"entrance:35328":{"rank":552,"runs":[528,22,1,1]},"entrance:354":{"rank":551,"runs":[527,23,1]},"entrance:35428":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:35456":{"rank":552,"runs":[528,22,1,1]},"entrance:35467":{"rank":554,"runs":[530,20,3,1]},"entrance:35478":{"rank":556,"runs":[532,18,5,1]},"entrance:35489":{"rank":558,"runs":[534,16,7,1]},"entrance:355":{"rank":551,"runs":[527,23,1]},"entrance:35500":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:35511":{"rank":562,"runs":[535,10,7,4,3,1,1,1]},"entrance:35522":{"rank":564,"runs":[535,8,7,6,5,1,1,1]},"entrance:35533":{"rank":566,"runs":[535,8,7,7,6,1,1,1]},"entrance:35544":{"rank":568,"runs":[535,10,9,7,4,1,1,1]},"entrance:35555":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:3556":{"rank":554,"runs":[530,19,3,1,1]},"entrance:35585":{"rank":552,"runs":[528,22,1,1]},"entrance:356":{"rank":551,"runs":[527,23,1]},"entrance:35685":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:357":{"rank":551,"runs":[527,23,1]},"entrance:35714":{"rank":552,"runs":[528,22,1,1]},"entrance:35725":{"rank":554,"runs":[530,20,3,1]},"entrance:35736":{"rank":556,"runs":[532,18,5,1]},"entrance:35747":{"rank":558,"runs":[534,16,7,1]},"entrance:35758":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:35769":{"rank":562,"runs":[535,10,7,4,3,1,1,1]},"entrance:35780":{"rank":564,"runs":[535,8,7,6,5,1,1,1]},"entrance:35791":{"rank":566,"runs":[535,8,7,7,6,1,1,1]},"entrance:358":{"rank":551,"runs":[527,23,1]},"entrance:3580":{"rank":558,"runs":[534,15,7,1,1]},"entrance:35802":{"rank":568,"runs":[535,10,9,7,4,1,1,1]},"entrance:35813":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:35833":{"rank":552,"runs":[528,21,1,1,1]},"entrance:359":{"rank":551,"runs":[527,23,1]},"entrance:35942":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:35943":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:35944":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:35945":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:35946":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:35947":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:35948":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:35949":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:35950":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:35951":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:35952":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:35953":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:35963":{"rank":552,"runs":[528,21,1,1,1]},"entrance:36":{"rank":551,"runs":[527,23,1]},"entrance:360":{"rank":551,"runs":[527,23,1]},"entrance:36072":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:36073":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:36074":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:36075":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:36076":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:36077":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:36078":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:36079":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:36080":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:36081":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:36082":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:36083":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:361":{"rank":551,"runs":[527,23,1]},"entrance:362":{"rank":551,"runs":[527,23,1]},"entrance:3628":{"rank":566,"runs":[541,13,5,2,2,1,1,1]},"entrance:363":{"rank":551,"runs":[527,23,1]},"entrance:364":{"rank":551,"runs":[527,23,1]},"entrance:365":{"rank":551,"runs":[527,23,1]},"entrance:36572":{"rank":554,"runs":[530,19,3,1,1]},"entrance:36596":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:366":{"rank":551,"runs":[527,23,1]},"entrance:367":{"rank":551,"runs":[527,23,1]},"entrance:3671":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:36765":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:36779":{"rank":566,"runs":[541,13,5,2,2,1,1,1]},"entrance:3678":{"rank":554,"runs":[530,19,3,1,1]},"entrance:36781":{"rank":562,"runs":[538,10,5,4,1,1,1,1,1]},"entrance:36786":{"rank":564,"runs":[533,6,6,4,3,3,2,2,2,1,1,1]},"entrance:36788":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:36791":{"rank":564,"runs":[536,8,6,4,3,2,1,1,1,1,1]},"entrance:36792":{"rank":566,"runs":[543,8,7,6,1,1]},"entrance:368":{"rank":551,"runs":[527,23,1]},"entrance:36811":{"rank":566,"runs":[543,8,7,4,2,1,1]},"entrance:36812":{"rank":566,"runs":[539,8,4,4,4,3,2,1,1]},"entrance:36821":{"rank":566,"runs":[538,5,4,4,4,3,3,1,1,1,1,1]},"entrance:36822":{"rank":566,"runs":[534,8,8,5,3,3,1,1,1,1,1]},"entrance:36832":{"rank":566,"runs":[534,6,6,4,3,3,3,3,1,1,1,1]},"entrance:36843":{"rank":568,"runs":[539,7,6,6,4,3,1,1,1]},"entrance:36844":{"rank":568,"runs":[535,10,9,7,4,1,1,1]},"entrance:36846":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"entrance:36847":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"entrance:36848":{"rank":569,"runs":[540,7,6,6,4,3,1,1,1]},"entrance:36849":{"rank":569,"runs":[540,7,6,6,4,3,1,1,1]},"entrance:36852":{"rank":569,"runs":[544,8,7,3,2,2,1,1,1]},"entrance:36853":{"rank":569,"runs":[545,12,4,2,2,1,1,1,1]},"entrance:36854":{"rank":569,"runs":[544,8,7,3,2,2,1,1,1]},"entrance:36855":{"rank":569,"runs":[545,12,4,2,2,1,1,1,1]},"entrance:36858":{"rank":569,"runs":[546,14,4,3,1,1]},"entrance:36859":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:36860":{"rank":569,"runs":[546,14,4,3,1,1]},"entrance:36861":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:36862":{"rank":566,"runs":[538,8,3,3,3,3,2,2,1,1,1,1]},"entrance:36863":{"rank":568,"runs":[543,7,7,4,2,2,1,1,1]},"entrance:36864":{"rank":566,"runs":[542,12,5,2,1,1,1,1,1]},"entrance:36865":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:36891":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"entrance:36897":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"entrance:36898":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:369":{"rank":551,"runs":[527,23,1]},"entrance:36928":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"entrance:36934":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"entrance:36935":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:36966":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"entrance:36972":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"entrance:36973":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:37":{"rank":551,"runs":[527,23,1]},"entrance:370":{"rank":551,"runs":[527,23,1]},"entrance:37004":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"entrance:37010":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"entrance:37011":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:37043":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"entrance:37049":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"entrance:37050":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:37082":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"entrance:37088":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"entrance:37089":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:371":{"rank":551,"runs":[527,23,1]},"entrance:37122":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:37128":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:37129":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:37162":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:37168":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:37169":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:372":{"rank":551,"runs":[527,23,1]},"entrance:37203":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:37209":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:37210":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:37244":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:37250":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:37256":{"rank":570,"runs":[545,8,8,2,2,2,1,1,1]},"entrance:37257":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:37258":{"rank":570,"runs":[547,8,8,3,2,1,1]},"entrance:37259":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:37260":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:37261":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:37262":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:37263":{"rank":570,"runs":[541,8,6,6,2,2,2,1,1,1]},"entrance:37264":{"rank":570,"runs":[537,10,10,8,2,1,1,1]},"entrance:37265":{"rank":570,"runs":[534,12,12,5,1,1,1,1,1,1,1]},"entrance:37266":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:37267":{"rank":570,"runs":[536,10,10,5,2,1,1,1,1,1,1,1]},"entrance:37268":{"rank":570,"runs":[532,12,12,3,3,3,1,1,1,1,1]},"entrance:37270":{"rank":570,"runs":[534,10,10,3,3,3,2,1,1,1,1,1]},"entrance:37271":{"rank":570,"runs":[532,10,10,5,5,2,1,1,1,1,1,1]},"entrance:37272":{"rank":570,"runs":[545,8,4,4,2,2,2,1,1,1]},"entrance:37273":{"rank":570,"runs":[543,8,4,4,4,2,2,1,1,1]},"entrance:37274":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:37275":{"rank":570,"runs":[545,8,6,2,2,2,2,1,1,1]},"entrance:37276":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:37277":{"rank":570,"runs":[538,8,8,5,4,1,1,1,1,1,1,1]},"entrance:37278":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:37279":{"rank":570,"runs":[540,6,6,6,5,1,1,1,1,1,1,1]},"entrance:37280":{"rank":570,"runs":[536,8,8,4,3,3,3,1,1,1,1,1]},"entrance:37281":{"rank":570,"runs":[534,8,8,5,5,4,1,1,1,1,1,1]},"entrance:37282":{"rank":570,"runs":[538,6,6,6,3,3,3,1,1,1,1,1]},"entrance:37283":{"rank":570,"runs":[536,6,6,6,5,5,1,1,1,1,1,1]},"entrance:37284":{"rank":570,"runs":[545,8,8,2,2,2,1,1,1]},"entrance:37285":{"rank":570,"runs":[542,8,5,4,4,1,1,1,1,1,1,1]},"entrance:37286":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:37287":{"rank":570,"runs":[544,10,5,2,2,1,1,1,1,1,1,1]},"entrance:37288":{"rank":570,"runs":[540,8,4,4,3,3,3,1,1,1,1,1]},"entrance:37289":{"rank":570,"runs":[538,8,5,5,4,4,1,1,1,1,1,1]},"entrance:37290":{"rank":570,"runs":[542,10,3,3,3,2,2,1,1,1,1,1]},"entrance:37291":{"rank":570,"runs":[540,10,5,5,2,2,1,1,1,1,1,1]},"entrance:37292":{"rank":570,"runs":[544,12,3,3,3,2,1,1,1]},"entrance:37293":{"rank":570,"runs":[542,12,5,5,2,1,1,1,1]},"entrance:37294":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:37295":{"rank":570,"runs":[545,14,2,2,2,1,1,1,1,1]},"entrance:373":{"rank":551,"runs":[527,23,1]},"entrance:37306":{"rank":552,"runs":[528,22,1,1]},"entrance:374":{"rank":551,"runs":[527,23,1]},"entrance:37405":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:37414":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:37426":{"rank":552,"runs":[528,22,1,1]},"entrance:375":{"rank":551,"runs":[527,23,1]},"entrance:37536":{"rank":552,"runs":[528,21,1,1,1]},"entrance:37547":{"rank":552,"runs":[528,22,1,1]},"entrance:37558":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:37569":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:37580":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:37591":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:376":{"rank":551,"runs":[527,23,1]},"entrance:37602":{"rank":562,"runs":[531,9,8,8,2,1,1,1,1]},"entrance:37613":{"rank":564,"runs":[531,10,10,7,2,1,1,1,1]},"entrance:37646":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:37655":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:37657":{"rank":552,"runs":[528,21,1,1,1]},"entrance:37668":{"rank":552,"runs":[528,22,1,1]},"entrance:377":{"rank":551,"runs":[527,23,1]},"entrance:37778":{"rank":552,"runs":[528,21,1,1,1]},"entrance:37790":{"rank":552,"runs":[528,22,1,1]},"entrance:378":{"rank":551,"runs":[527,23,1]},"entrance:37801":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:37812":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:37823":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:37834":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:37845":{"rank":562,"runs":[533,9,6,6,3,2,1,1,1]},"entrance:37856":{"rank":564,"runs":[533,8,8,7,3,2,1,1,1]},"entrance:37867":{"rank":566,"runs":[533,8,8,3,3,2,2,2,2,1,1,1]},"entrance:37878":{"rank":568,"runs":[533,8,8,4,4,3,2,2,1,1,1,1]},"entrance:37889":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:37896":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:379":{"rank":551,"runs":[527,23,1]},"entrance:37900":{"rank":552,"runs":[528,21,1,1,1]},"entrance:37912":{"rank":552,"runs":[528,22,1,1]},"entrance:38":{"rank":551,"runs":[527,23,1]},"entrance:380":{"rank":551,"runs":[527,23,1]},"entrance:3801":{"rank":554,"runs":[530,19,3,1,1]},"entrance:38022":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38035":{"rank":552,"runs":[528,22,1,1]},"entrance:38046":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:38057":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:38068":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:38079":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:38090":{"rank":562,"runs":[535,9,5,4,4,2,1,1,1]},"entrance:381":{"rank":551,"runs":[527,23,1]},"entrance:38101":{"rank":564,"runs":[535,7,6,6,5,2,1,1,1]},"entrance:38112":{"rank":566,"runs":[535,6,6,5,3,2,2,2,2,1,1,1]},"entrance:38123":{"rank":568,"runs":[535,6,6,5,4,4,2,2,1,1,1,1]},"entrance:38134":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:38141":{"rank":570,"runs":[547,8,6,4,3,1,1]},"entrance:38145":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38158":{"rank":552,"runs":[528,22,1,1]},"entrance:382":{"rank":551,"runs":[527,23,1]},"entrance:3825":{"rank":558,"runs":[534,15,7,1,1]},"entrance:38268":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38282":{"rank":552,"runs":[528,22,1,1]},"entrance:38293":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:383":{"rank":551,"runs":[527,23,1]},"entrance:38304":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:38315":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:38326":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:38337":{"rank":562,"runs":[537,9,7,2,2,2,1,1,1]},"entrance:38348":{"rank":564,"runs":[537,7,7,4,4,2,1,1,1]},"entrance:38359":{"rank":566,"runs":[537,7,4,4,3,2,2,2,2,1,1,1]},"entrance:38370":{"rank":568,"runs":[537,7,4,4,4,4,2,2,1,1,1,1]},"entrance:38381":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:38386":{"rank":570,"runs":[547,8,8,3,2,1,1]},"entrance:38392":{"rank":552,"runs":[528,21,1,1,1]},"entrance:384":{"rank":551,"runs":[527,23,1]},"entrance:38406":{"rank":552,"runs":[528,22,1,1]},"entrance:385":{"rank":551,"runs":[527,23,1]},"entrance:38516":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38531":{"rank":552,"runs":[528,22,1,1]},"entrance:38542":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:38553":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:38564":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:38575":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:38586":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:38597":{"rank":564,"runs":[539,9,7,2,2,2,1,1,1]},"entrance:386":{"rank":551,"runs":[527,23,1]},"entrance:38608":{"rank":566,"runs":[539,9,3,2,2,2,2,2,2,1,1,1]},"entrance:38619":{"rank":568,"runs":[539,9,4,4,2,2,2,2,1,1,1,1]},"entrance:38630":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:38635":{"rank":570,"runs":[547,8,8,3,2,1,1]},"entrance:38641":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38656":{"rank":552,"runs":[528,22,1,1]},"entrance:387":{"rank":551,"runs":[527,23,1]},"entrance:3873":{"rank":566,"runs":[539,11,5,4,3,2,1,1]},"entrance:38766":{"rank":552,"runs":[528,21,1,1,1]},"entrance:38782":{"rank":552,"runs":[528,22,1,1]},"entrance:38793":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:388":{"rank":551,"runs":[527,23,1]},"entrance:38804":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:38815":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:38826":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:38837":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:38848":{"rank":564,"runs":[541,11,9,1,1,1]},"entrance:38859":{"rank":566,"runs":[541,11,4,3,2,2,1,1,1]},"entrance:38870":{"rank":568,"runs":[541,11,4,4,4,1,1,1,1]},"entrance:38881":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:38884":{"rank":570,"runs":[546,12,5,2,1,1,1,1,1]},"entrance:38892":{"rank":552,"runs":[528,21,1,1,1]},"entrance:389":{"rank":551,"runs":[527,23,1]},"entrance:38908":{"rank":552,"runs":[528,22,1,1]},"entrance:39":{"rank":551,"runs":[527,23,1]},"entrance:390":{"rank":551,"runs":[527,23,1]},"entrance:39075":{"rank":570,"runs":[546,12,5,2,1,1,1,1,1]},"entrance:391":{"rank":551,"runs":[527,23,1]},"entrance:3916":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:392":{"rank":551,"runs":[527,23,1]},"entrance:39219":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:3924":{"rank":554,"runs":[530,19,3,1,1]},"entrance:393":{"rank":551,"runs":[527,23,1]},"entrance:39365":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:394":{"rank":551,"runs":[527,23,1]},"entrance:39456":{"rank":552,"runs":[528,21,1,1,1]},"entrance:395":{"rank":551,"runs":[527,23,1]},"entrance:39574":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:39575":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:39576":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:39577":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:39578":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:39579":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:39580":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:39581":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:39582":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:39583":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:39584":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:39585":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:396":{"rank":551,"runs":[527,23,1]},"entrance:397":{"rank":551,"runs":[527,23,1]},"entrance:398":{"rank":551,"runs":[527,23,1]},"entrance:399":{"rank":551,"runs":[527,23,1]},"entrance:4":{"rank":551,"runs":[527,23,1]},"entrance:40":{"rank":551,"runs":[527,23,1]},"entrance:400":{"rank":551,"runs":[527,23,1]},"entrance:40080":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:401":{"rank":551,"runs":[527,23,1]},"entrance:40126":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40127":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40141":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40142":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40153":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40154":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40162":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40163":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40168":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40169":{"rank":552,"runs":[528,21,1,1,1]},"entrance:40170":{"rank":554,"runs":[530,19,3,1,1]},"entrance:40187":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:40188":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:40197":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:40198":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:402":{"rank":551,"runs":[527,23,1]},"entrance:40204":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:40205":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:40208":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:40209":{"rank":556,"runs":[532,17,5,1,1]},"entrance:40212":{"rank":556,"runs":[532,10,7,4,1,1,1]},"entrance:40213":{"rank":556,"runs":[532,18,5,1]},"entrance:40216":{"rank":556,"runs":[532,10,7,4,1,1,1]},"entrance:40217":{"rank":556,"runs":[532,10,7,4,1,1,1]},"entrance:40223":{"rank":560,"runs":[532,10,5,4,4,3,1,1]},"entrance:40224":{"rank":560,"runs":[536,10,8,3,1,1,1]},"entrance:40229":{"rank":562,"runs":[538,7,5,4,4,1,1,1,1]},"entrance:40230":{"rank":568,"runs":[544,13,5,4,1,1]},"entrance:40234":{"rank":564,"runs":[533,8,7,5,5,4,1,1]},"entrance:40236":{"rank":560,"runs":[536,14,9,1]},"entrance:40238":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:40239":{"rank":564,"runs":[532,8,7,7,4,1,1,1,1,1,1]},"entrance:40240":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:40261":{"rank":566,"runs":[542,8,5,4,3,1,1,1,1]},"entrance:40262":{"rank":566,"runs":[538,8,4,4,3,3,1,1,1,1,1,1]},"entrance:40271":{"rank":566,"runs":[538,5,5,5,4,4,3,1,1]},"entrance:40272":{"rank":566,"runs":[534,5,5,4,4,4,3,3,1,1,1,1]},"entrance:40282":{"rank":566,"runs":[534,9,9,5,4,3,1,1]},"entrance:40293":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:40294":{"rank":568,"runs":[541,11,4,4,3,2,1,1,1]},"entrance:40296":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:40297":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:40298":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:40299":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:403":{"rank":551,"runs":[527,23,1]},"entrance:40302":{"rank":569,"runs":[545,8,8,3,1,1,1,1,1]},"entrance:40303":{"rank":569,"runs":[541,8,5,5,4,3,1,1,1]},"entrance:40304":{"rank":569,"runs":[545,8,8,3,1,1,1,1,1]},"entrance:40305":{"rank":569,"runs":[541,8,5,5,4,3,1,1,1]},"entrance:40308":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:40309":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:40310":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:40311":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:40312":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:40313":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:40314":{"rank":566,"runs":[543,9,7,5,1,1]},"entrance:40315":{"rank":568,"runs":[541,9,4,4,4,3,1,1,1]},"entrance:40341":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:40347":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:40348":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:40378":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:40384":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:40385":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:404":{"rank":551,"runs":[527,23,1]},"entrance:40416":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:40422":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:40423":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:40454":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:40460":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:40461":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:4048":{"rank":554,"runs":[530,19,3,1,1]},"entrance:40493":{"rank":571,"runs":[547,10,8,1,1,1,1,1,1]},"entrance:40499":{"rank":571,"runs":[547,10,8,1,1,1,1,1,1]},"entrance:405":{"rank":551,"runs":[527,23,1]},"entrance:40500":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:40532":{"rank":571,"runs":[545,8,8,3,3,1,1,1,1]},"entrance:40538":{"rank":571,"runs":[545,8,8,3,3,1,1,1,1]},"entrance:40539":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:40572":{"rank":571,"runs":[543,8,6,5,5,1,1,1,1]},"entrance:40578":{"rank":571,"runs":[543,8,6,5,5,1,1,1,1]},"entrance:40579":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:406":{"rank":551,"runs":[527,23,1]},"entrance:40612":{"rank":571,"runs":[541,8,7,7,4,1,1,1,1]},"entrance:40618":{"rank":571,"runs":[541,8,7,7,4,1,1,1,1]},"entrance:40619":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:40653":{"rank":571,"runs":[539,9,9,8,2,1,1,1,1]},"entrance:40659":{"rank":571,"runs":[539,9,9,8,2,1,1,1,1]},"entrance:40660":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:40694":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:407":{"rank":551,"runs":[527,23,1]},"entrance:40700":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:40706":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:40707":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:40708":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:40709":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:40710":{"rank":570,"runs":[540,10,6,6,1,1,1,1,1,1,1,1]},"entrance:40711":{"rank":570,"runs":[538,8,6,6,3,3,1,1,1,1,1,1]},"entrance:40712":{"rank":570,"runs":[542,10,4,4,3,1,1,1,1,1,1,1]},"entrance:40713":{"rank":570,"runs":[540,8,4,4,3,3,3,1,1,1,1,1]},"entrance:40714":{"rank":570,"runs":[536,6,6,6,5,5,1,1,1,1,1,1]},"entrance:40715":{"rank":570,"runs":[534,7,7,6,6,4,1,1,1,1,1,1]},"entrance:40716":{"rank":570,"runs":[538,6,5,5,4,4,3,1,1,1,1,1]},"entrance:40717":{"rank":570,"runs":[536,7,7,4,4,4,3,1,1,1,1,1]},"entrance:40718":{"rank":570,"runs":[532,9,9,6,6,2,1,1,1,1,1,1]},"entrance:4072":{"rank":558,"runs":[534,15,7,1,1]},"entrance:40720":{"rank":570,"runs":[534,9,9,4,4,3,2,1,1,1,1,1]},"entrance:40721":{"rank":570,"runs":[532,11,11,4,4,3,1,1,1,1,1]},"entrance:40722":{"rank":570,"runs":[544,10,5,2,2,1,1,1,1,1,1,1]},"entrance:40723":{"rank":570,"runs":[542,8,5,3,3,2,2,1,1,1,1,1]},"entrance:40724":{"rank":570,"runs":[546,10,7,2,1,1,1,1,1]},"entrance:40725":{"rank":570,"runs":[544,8,7,3,3,2,1,1,1]},"entrance:40726":{"rank":570,"runs":[540,6,5,5,5,2,2,1,1,1,1,1]},"entrance:40727":{"rank":570,"runs":[538,7,7,5,4,2,2,1,1,1,1,1]},"entrance:40728":{"rank":570,"runs":[542,7,6,5,5,2,1,1,1]},"entrance:40729":{"rank":570,"runs":[540,7,7,7,4,2,1,1,1]},"entrance:40730":{"rank":570,"runs":[536,9,9,5,2,2,2,1,1,1,1,1]},"entrance:40731":{"rank":570,"runs":[534,11,11,5,2,2,1,1,1,1,1]},"entrance:40732":{"rank":570,"runs":[538,9,9,7,2,2,1,1,1]},"entrance:40733":{"rank":570,"runs":[536,11,11,7,2,1,1,1]},"entrance:40734":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:40735":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:40736":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:40737":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:40738":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:40739":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:40740":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:40741":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:40742":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:40743":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:40744":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:40745":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:408":{"rank":551,"runs":[527,23,1]},"entrance:40825":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:409":{"rank":551,"runs":[527,23,1]},"entrance:40971":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:41":{"rank":551,"runs":[527,23,1]},"entrance:410":{"rank":551,"runs":[527,23,1]},"entrance:411":{"rank":551,"runs":[527,23,1]},"entrance:41115":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:412":{"rank":551,"runs":[527,23,1]},"entrance:4120":{"rank":566,"runs":[537,9,6,5,5,2,1,1]},"entrance:41261":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:413":{"rank":551,"runs":[527,23,1]},"entrance:41335":{"rank":554,"runs":[530,19,3,1,1]},"entrance:41344":{"rank":552,"runs":[528,22,1,1]},"entrance:41347":{"rank":556,"runs":[532,17,5,1,1]},"entrance:41359":{"rank":558,"runs":[534,15,7,1,1]},"entrance:41371":{"rank":560,"runs":[536,13,9,1,1]},"entrance:41383":{"rank":562,"runs":[537,9,7,4,2,1,1,1]},"entrance:41395":{"rank":564,"runs":[537,9,5,4,4,3,1,1]},"entrance:414":{"rank":551,"runs":[527,23,1]},"entrance:41407":{"rank":566,"runs":[537,9,6,5,4,3,1,1]},"entrance:41448":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:41468":{"rank":552,"runs":[528,22,1,1]},"entrance:41479":{"rank":554,"runs":[530,20,3,1]},"entrance:41490":{"rank":556,"runs":[532,18,5,1]},"entrance:415":{"rank":551,"runs":[527,23,1]},"entrance:41501":{"rank":558,"runs":[534,16,7,1]},"entrance:41512":{"rank":560,"runs":[536,14,9,1]},"entrance:41523":{"rank":562,"runs":[537,9,8,3,2,1,1,1]},"entrance:41534":{"rank":564,"runs":[537,9,6,4,3,3,1,1]},"entrance:41545":{"rank":566,"runs":[537,9,6,5,4,3,1,1]},"entrance:41556":{"rank":568,"runs":[537,9,8,7,3,2,1,1]},"entrance:41567":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:41584":{"rank":554,"runs":[530,19,3,1,1]},"entrance:41593":{"rank":552,"runs":[528,22,1,1]},"entrance:41596":{"rank":556,"runs":[532,17,5,1,1]},"entrance:416":{"rank":551,"runs":[527,23,1]},"entrance:41608":{"rank":558,"runs":[534,15,7,1,1]},"entrance:4161":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:41620":{"rank":560,"runs":[535,11,7,2,2,1,1,1]},"entrance:41632":{"rank":562,"runs":[535,7,7,2,2,2,2,2,1,1,1]},"entrance:41644":{"rank":564,"runs":[535,7,5,4,3,2,2,2,2,1,1]},"entrance:41656":{"rank":566,"runs":[535,7,6,5,3,2,2,2,2,1,1]},"entrance:41697":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:417":{"rank":551,"runs":[527,23,1]},"entrance:41718":{"rank":552,"runs":[528,22,1,1]},"entrance:4172":{"rank":554,"runs":[530,19,3,1,1]},"entrance:41729":{"rank":554,"runs":[530,20,3,1]},"entrance:41740":{"rank":556,"runs":[532,18,5,1]},"entrance:41751":{"rank":558,"runs":[534,16,7,1]},"entrance:41762":{"rank":560,"runs":[536,14,9,1]},"entrance:41773":{"rank":562,"runs":[537,10,9,2,1,1,1,1]},"entrance:41784":{"rank":564,"runs":[537,9,6,2,2,2,2,1,1,1,1]},"entrance:41795":{"rank":566,"runs":[537,9,4,4,3,2,2,2,1,1,1]},"entrance:418":{"rank":551,"runs":[527,23,1]},"entrance:41806":{"rank":568,"runs":[537,9,6,5,2,2,2,2,1,1,1]},"entrance:41817":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:41835":{"rank":554,"runs":[530,19,3,1,1]},"entrance:41844":{"rank":552,"runs":[528,22,1,1]},"entrance:41847":{"rank":556,"runs":[532,17,5,1,1]},"entrance:41859":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:41871":{"rank":560,"runs":[533,11,5,4,3,2,1,1]},"entrance:41883":{"rank":562,"runs":[533,7,5,4,4,2,2,2,1,1,1]},"entrance:419":{"rank":551,"runs":[527,23,1]},"entrance:41907":{"rank":566,"runs":[533,6,5,5,4,4,3,2,2,1,1]},"entrance:41946":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:41970":{"rank":552,"runs":[528,22,1,1]},"entrance:41981":{"rank":554,"runs":[530,20,3,1]},"entrance:41992":{"rank":556,"runs":[532,18,5,1]},"entrance:42":{"rank":551,"runs":[527,23,1]},"entrance:420":{"rank":551,"runs":[527,23,1]},"entrance:42003":{"rank":558,"runs":[534,16,7,1]},"entrance:42014":{"rank":560,"runs":[536,14,9,1]},"entrance:42025":{"rank":562,"runs":[537,10,9,2,1,1,1,1]},"entrance:42036":{"rank":564,"runs":[537,9,8,4,3,1,1,1]},"entrance:42047":{"rank":566,"runs":[537,9,4,4,4,2,2,1,1,1,1]},"entrance:42058":{"rank":568,"runs":[537,9,4,4,4,3,2,2,1,1,1]},"entrance:42069":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:42088":{"rank":554,"runs":[530,19,3,1,1]},"entrance:42097":{"rank":552,"runs":[528,22,1,1]},"entrance:421":{"rank":551,"runs":[527,23,1]},"entrance:42100":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:42112":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:42124":{"rank":560,"runs":[531,11,6,5,3,2,1,1]},"entrance:42199":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:422":{"rank":551,"runs":[527,23,1]},"entrance:42224":{"rank":552,"runs":[528,22,1,1]},"entrance:42235":{"rank":554,"runs":[530,20,3,1]},"entrance:42246":{"rank":556,"runs":[532,18,5,1]},"entrance:42257":{"rank":558,"runs":[534,16,7,1]},"entrance:42268":{"rank":560,"runs":[536,14,9,1]},"entrance:42279":{"rank":562,"runs":[537,10,9,2,1,1,1,1]},"entrance:42290":{"rank":564,"runs":[537,9,8,4,3,1,1,1]},"entrance:423":{"rank":551,"runs":[527,23,1]},"entrance:42301":{"rank":566,"runs":[537,9,6,6,5,1,1,1]},"entrance:42312":{"rank":568,"runs":[537,9,6,6,2,2,2,1,1,1,1]},"entrance:42323":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:42352":{"rank":552,"runs":[528,22,1,1]},"entrance:424":{"rank":551,"runs":[527,23,1]},"entrance:42452":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:42480":{"rank":552,"runs":[528,22,1,1]},"entrance:42491":{"rank":554,"runs":[530,20,3,1]},"entrance:425":{"rank":551,"runs":[527,23,1]},"entrance:42502":{"rank":556,"runs":[532,18,5,1]},"entrance:42513":{"rank":558,"runs":[534,16,7,1]},"entrance:42524":{"rank":560,"runs":[536,14,9,1]},"entrance:42535":{"rank":562,"runs":[537,10,9,2,1,1,1,1]},"entrance:42546":{"rank":564,"runs":[537,9,8,4,3,1,1,1]},"entrance:42557":{"rank":566,"runs":[537,9,6,6,5,1,1,1]},"entrance:42568":{"rank":568,"runs":[537,9,8,7,4,1,1,1]},"entrance:42579":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:426":{"rank":551,"runs":[527,23,1]},"entrance:42609":{"rank":552,"runs":[528,22,1,1]},"entrance:427":{"rank":551,"runs":[527,23,1]},"entrance:42709":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:42738":{"rank":552,"runs":[528,22,1,1]},"entrance:42749":{"rank":554,"runs":[530,20,3,1]},"entrance:42760":{"rank":556,"runs":[532,18,5,1]},"entrance:42771":{"rank":558,"runs":[534,16,7,1]},"entrance:42782":{"rank":560,"runs":[536,14,9,1]},"entrance:42793":{"rank":562,"runs":[537,10,9,2,1,1,1,1]},"entrance:428":{"rank":551,"runs":[527,23,1]},"entrance:42804":{"rank":564,"runs":[537,9,8,4,3,1,1,1]},"entrance:42815":{"rank":566,"runs":[537,9,6,6,5,1,1,1]},"entrance:42826":{"rank":568,"runs":[537,9,8,7,4,1,1,1]},"entrance:42837":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:42857":{"rank":552,"runs":[528,21,1,1,1]},"entrance:429":{"rank":551,"runs":[527,23,1]},"entrance:42966":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:42967":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:42968":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:42969":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:4297":{"rank":554,"runs":[530,19,3,1,1]},"entrance:42970":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:42971":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:42972":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:42973":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:42974":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:42975":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:42976":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:42977":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:42987":{"rank":552,"runs":[528,21,1,1,1]},"entrance:43":{"rank":551,"runs":[527,23,1]},"entrance:430":{"rank":551,"runs":[527,23,1]},"entrance:43096":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:43097":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:43098":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:43099":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:431":{"rank":551,"runs":[527,23,1]},"entrance:43100":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:43101":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:43102":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:43103":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:43104":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:43105":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:43106":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:43107":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:432":{"rank":551,"runs":[527,23,1]},"entrance:4321":{"rank":558,"runs":[534,15,7,1,1]},"entrance:433":{"rank":551,"runs":[527,23,1]},"entrance:434":{"rank":551,"runs":[527,23,1]},"entrance:435":{"rank":551,"runs":[527,23,1]},"entrance:43596":{"rank":554,"runs":[530,19,3,1,1]},"entrance:436":{"rank":551,"runs":[527,23,1]},"entrance:43620":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:4369":{"rank":566,"runs":[535,8,7,7,5,2,1,1]},"entrance:437":{"rank":551,"runs":[527,23,1]},"entrance:43783":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:43797":{"rank":566,"runs":[539,11,5,4,3,2,1,1]},"entrance:43799":{"rank":562,"runs":[538,8,5,4,3,1,1,1,1]},"entrance:438":{"rank":551,"runs":[527,23,1]},"entrance:43806":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:43809":{"rank":564,"runs":[536,8,4,4,4,3,1,1,1,1,1]},"entrance:43810":{"rank":566,"runs":[543,10,7,4,1,1]},"entrance:43829":{"rank":566,"runs":[543,10,7,4,1,1]},"entrance:43830":{"rank":566,"runs":[539,10,4,4,4,3,1,1]},"entrance:43839":{"rank":566,"runs":[538,5,4,4,4,3,3,1,1,1,1,1]},"entrance:43840":{"rank":566,"runs":[534,8,8,5,3,3,1,1,1,1,1]},"entrance:43850":{"rank":566,"runs":[534,5,5,4,4,4,3,3,1,1,1,1]},"entrance:43861":{"rank":568,"runs":[541,9,4,4,4,3,1,1,1]},"entrance:43862":{"rank":568,"runs":[537,9,8,7,4,1,1,1]},"entrance:43864":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"entrance:43865":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"entrance:43866":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"entrance:43867":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"entrance:43870":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:43871":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:43872":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:43873":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:43876":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:43877":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:43878":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:43879":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:43880":{"rank":566,"runs":[538,8,5,5,4,3,1,1,1]},"entrance:43881":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:43882":{"rank":566,"runs":[543,12,7,1,1,1,1]},"entrance:43883":{"rank":568,"runs":[545,11,5,5,1,1]},"entrance:439":{"rank":551,"runs":[527,23,1]},"entrance:43909":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"entrance:43915":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"entrance:43916":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:43946":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"entrance:43952":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"entrance:43953":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:43984":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"entrance:43990":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"entrance:43991":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:44":{"rank":551,"runs":[527,23,1]},"entrance:440":{"rank":551,"runs":[527,23,1]},"entrance:44022":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"entrance:44028":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"entrance:44029":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:44061":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"entrance:44067":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"entrance:44068":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:441":{"rank":551,"runs":[527,23,1]},"entrance:4410":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:44100":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:44106":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:44107":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:44140":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:44146":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:44147":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:44180":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:44186":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:44187":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:442":{"rank":551,"runs":[527,23,1]},"entrance:4422":{"rank":554,"runs":[530,19,3,1,1]},"entrance:44221":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:44227":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:44228":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:44262":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:44268":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:44274":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:44275":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:44276":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:44277":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:44278":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:44279":{"rank":570,"runs":[539,10,8,8,2,1,1,1]},"entrance:44280":{"rank":570,"runs":[543,10,4,4,2,2,2,1,1,1]},"entrance:44281":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:44282":{"rank":570,"runs":[536,10,10,7,1,1,1,1,1,1,1]},"entrance:44283":{"rank":570,"runs":[534,10,10,5,3,3,1,1,1,1,1]},"entrance:44284":{"rank":570,"runs":[538,8,8,7,2,1,1,1,1,1,1,1]},"entrance:44285":{"rank":570,"runs":[536,8,8,5,3,3,2,1,1,1,1,1]},"entrance:44286":{"rank":570,"runs":[532,10,10,5,5,3,1,1,1,1,1]},"entrance:44288":{"rank":570,"runs":[534,8,8,5,5,3,2,1,1,1,1,1]},"entrance:44289":{"rank":570,"runs":[532,8,8,7,7,2,1,1,1,1,1,1]},"entrance:44290":{"rank":570,"runs":[545,10,4,2,2,2,2,1,1,1]},"entrance:44291":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:44292":{"rank":570,"runs":[547,10,6,3,2,1,1]},"entrance:44293":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:44294":{"rank":570,"runs":[540,7,6,6,4,1,1,1,1,1,1,1]},"entrance:44295":{"rank":570,"runs":[538,6,6,5,4,3,3,1,1,1,1,1]},"entrance:44296":{"rank":570,"runs":[542,7,6,4,4,1,1,1,1,1,1,1]},"entrance:44297":{"rank":570,"runs":[540,6,5,4,4,3,3,1,1,1,1,1]},"entrance:44298":{"rank":570,"runs":[536,6,6,5,5,4,3,1,1,1,1,1]},"entrance:44299":{"rank":570,"runs":[534,7,7,6,6,4,1,1,1,1,1,1]},"entrance:443":{"rank":551,"runs":[527,23,1]},"entrance:44300":{"rank":570,"runs":[538,6,5,5,4,4,3,1,1,1,1,1]},"entrance:44301":{"rank":570,"runs":[536,7,7,6,4,4,1,1,1,1,1,1]},"entrance:44302":{"rank":570,"runs":[544,8,7,2,2,1,1,1,1,1,1,1]},"entrance:44303":{"rank":570,"runs":[542,8,5,3,3,2,2,1,1,1,1,1]},"entrance:44304":{"rank":570,"runs":[546,10,7,2,1,1,1,1,1]},"entrance:44305":{"rank":570,"runs":[544,10,5,3,3,2,1,1,1]},"entrance:44306":{"rank":570,"runs":[540,8,5,5,3,2,2,1,1,1,1,1]},"entrance:44307":{"rank":570,"runs":[538,8,7,7,2,2,1,1,1,1,1,1]},"entrance:44308":{"rank":570,"runs":[542,10,5,5,3,2,1,1,1]},"entrance:44309":{"rank":570,"runs":[540,10,7,7,2,1,1,1,1]},"entrance:44310":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:44311":{"rank":570,"runs":[543,12,4,4,2,1,1,1,1,1]},"entrance:44312":{"rank":570,"runs":[547,12,3,3,3,1,1]},"entrance:44313":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:44324":{"rank":552,"runs":[528,22,1,1]},"entrance:444":{"rank":551,"runs":[527,23,1]},"entrance:44423":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:44432":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:44444":{"rank":552,"runs":[528,22,1,1]},"entrance:445":{"rank":551,"runs":[527,23,1]},"entrance:44554":{"rank":552,"runs":[528,21,1,1,1]},"entrance:44565":{"rank":552,"runs":[528,22,1,1]},"entrance:44576":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:44587":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:44598":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:446":{"rank":551,"runs":[527,23,1]},"entrance:44609":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:44620":{"rank":562,"runs":[531,9,8,8,2,1,1,1,1]},"entrance:44664":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:44673":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:44675":{"rank":552,"runs":[528,21,1,1,1]},"entrance:44686":{"rank":552,"runs":[528,22,1,1]},"entrance:447":{"rank":551,"runs":[527,23,1]},"entrance:44796":{"rank":552,"runs":[528,21,1,1,1]},"entrance:448":{"rank":551,"runs":[527,23,1]},"entrance:44808":{"rank":552,"runs":[528,22,1,1]},"entrance:44819":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:44830":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:44841":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:44852":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:44863":{"rank":562,"runs":[533,9,6,6,3,2,1,1,1]},"entrance:44874":{"rank":564,"runs":[533,6,6,5,3,2,2,2,2,1,1,1]},"entrance:44885":{"rank":566,"runs":[533,6,6,4,4,3,3,2,2,1,1,1]},"entrance:44896":{"rank":568,"runs":[533,6,6,6,6,3,2,2,1,1,1,1]},"entrance:449":{"rank":551,"runs":[527,23,1]},"entrance:44907":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:44914":{"rank":570,"runs":[547,10,4,4,3,1,1]},"entrance:44918":{"rank":552,"runs":[528,21,1,1,1]},"entrance:44930":{"rank":552,"runs":[528,22,1,1]},"entrance:45":{"rank":551,"runs":[527,23,1]},"entrance:450":{"rank":551,"runs":[527,23,1]},"entrance:45040":{"rank":552,"runs":[528,21,1,1,1]},"entrance:45053":{"rank":552,"runs":[528,22,1,1]},"entrance:45064":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:45075":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:45086":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:45097":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:451":{"rank":551,"runs":[527,23,1]},"entrance:45108":{"rank":562,"runs":[535,9,5,4,4,2,1,1,1]},"entrance:45119":{"rank":564,"runs":[535,5,5,4,4,2,2,2,2,1,1,1]},"entrance:45130":{"rank":566,"runs":[535,5,4,4,4,4,3,2,2,1,1,1]},"entrance:45141":{"rank":568,"runs":[535,6,6,5,4,4,2,2,1,1,1,1]},"entrance:45152":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:45159":{"rank":570,"runs":[547,10,4,4,3,1,1]},"entrance:45163":{"rank":552,"runs":[528,21,1,1,1]},"entrance:45176":{"rank":552,"runs":[528,22,1,1]},"entrance:452":{"rank":551,"runs":[527,23,1]},"entrance:45286":{"rank":552,"runs":[528,21,1,1,1]},"entrance:453":{"rank":551,"runs":[527,23,1]},"entrance:45300":{"rank":552,"runs":[528,22,1,1]},"entrance:45311":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:45322":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:45333":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:45344":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:45355":{"rank":562,"runs":[537,9,7,2,2,2,1,1,1]},"entrance:45366":{"rank":564,"runs":[537,7,5,2,2,2,2,2,2,1,1,1]},"entrance:45377":{"rank":566,"runs":[537,7,4,4,3,2,2,2,2,1,1,1]},"entrance:45388":{"rank":568,"runs":[537,7,6,6,2,2,2,2,1,1,1,1]},"entrance:45399":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:454":{"rank":551,"runs":[527,23,1]},"entrance:45404":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:45410":{"rank":552,"runs":[528,21,1,1,1]},"entrance:45424":{"rank":552,"runs":[528,22,1,1]},"entrance:4548":{"rank":554,"runs":[530,19,3,1,1]},"entrance:455":{"rank":551,"runs":[527,23,1]},"entrance:45534":{"rank":552,"runs":[528,21,1,1,1]},"entrance:45549":{"rank":552,"runs":[528,22,1,1]},"entrance:45560":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:45571":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:45582":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:45593":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:456":{"rank":551,"runs":[527,23,1]},"entrance:45604":{"rank":562,"runs":[539,11,9,1,1,1]},"entrance:45615":{"rank":564,"runs":[539,9,5,4,2,2,1,1,1]},"entrance:45626":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:45637":{"rank":568,"runs":[539,9,6,6,4,1,1,1,1]},"entrance:45648":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:45653":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:45659":{"rank":552,"runs":[528,21,1,1,1]},"entrance:45674":{"rank":552,"runs":[528,22,1,1]},"entrance:457":{"rank":551,"runs":[527,23,1]},"entrance:4572":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:458":{"rank":551,"runs":[527,23,1]},"entrance:45841":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:459":{"rank":551,"runs":[527,23,1]},"entrance:45987":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:46":{"rank":551,"runs":[527,23,1]},"entrance:460":{"rank":551,"runs":[527,23,1]},"entrance:461":{"rank":551,"runs":[527,23,1]},"entrance:46131":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:462":{"rank":551,"runs":[527,23,1]},"entrance:4620":{"rank":566,"runs":[533,10,9,5,5,2,1,1]},"entrance:46277":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:463":{"rank":551,"runs":[527,23,1]},"entrance:46368":{"rank":552,"runs":[528,21,1,1,1]},"entrance:464":{"rank":551,"runs":[527,23,1]},"entrance:46486":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:46487":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:46488":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:46489":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:46490":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:46491":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:46492":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:46493":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:46494":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:46495":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:46496":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:46497":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:465":{"rank":551,"runs":[527,23,1]},"entrance:4659":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:466":{"rank":551,"runs":[527,23,1]},"entrance:467":{"rank":551,"runs":[527,23,1]},"entrance:4674":{"rank":554,"runs":[530,19,3,1,1]},"entrance:468":{"rank":551,"runs":[527,23,1]},"entrance:469":{"rank":551,"runs":[527,23,1]},"entrance:46992":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:47":{"rank":551,"runs":[527,23,1]},"entrance:470":{"rank":551,"runs":[527,23,1]},"entrance:47043":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47044":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47055":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47056":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47064":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47065":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47070":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47071":{"rank":552,"runs":[528,21,1,1,1]},"entrance:47072":{"rank":554,"runs":[530,19,3,1,1]},"entrance:47089":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:47090":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:47099":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:471":{"rank":551,"runs":[527,23,1]},"entrance:47100":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:47106":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:47107":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:47110":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:47111":{"rank":556,"runs":[532,17,5,1,1]},"entrance:47114":{"rank":556,"runs":[532,12,5,4,1,1,1]},"entrance:47115":{"rank":556,"runs":[532,18,5,1]},"entrance:47118":{"rank":556,"runs":[532,12,5,4,1,1,1]},"entrance:47119":{"rank":556,"runs":[532,12,5,4,1,1,1]},"entrance:47126":{"rank":560,"runs":[536,12,8,1,1,1,1]},"entrance:47131":{"rank":562,"runs":[538,6,5,5,4,1,1,1,1]},"entrance:47132":{"rank":568,"runs":[544,11,6,5,1,1]},"entrance:47136":{"rank":564,"runs":[533,6,5,5,4,3,2,2,2,1,1]},"entrance:47138":{"rank":560,"runs":[536,14,9,1]},"entrance:47140":{"rank":568,"runs":[541,11,4,4,3,2,1,1,1]},"entrance:47142":{"rank":566,"runs":[543,11,7,2,1,1,1]},"entrance:47163":{"rank":566,"runs":[542,8,6,5,1,1,1,1,1]},"entrance:47164":{"rank":566,"runs":[538,8,4,4,3,3,1,1,1,1,1,1]},"entrance:47173":{"rank":566,"runs":[538,5,4,3,3,3,3,2,2,1,1,1]},"entrance:47174":{"rank":566,"runs":[534,6,6,4,3,3,3,3,1,1,1,1]},"entrance:47184":{"rank":566,"runs":[534,7,7,5,3,3,2,2,1,1,1]},"entrance:47195":{"rank":568,"runs":[543,9,5,3,2,2,2,1,1]},"entrance:47196":{"rank":568,"runs":[539,9,6,6,3,2,1,1,1]},"entrance:47198":{"rank":569,"runs":[546,11,6,4,1,1]},"entrance:47199":{"rank":569,"runs":[546,11,6,4,1,1]},"entrance:472":{"rank":551,"runs":[527,23,1]},"entrance:47200":{"rank":569,"runs":[546,11,4,4,2,1,1]},"entrance:47201":{"rank":569,"runs":[546,11,4,4,2,1,1]},"entrance:47204":{"rank":569,"runs":[545,8,8,3,1,1,1,1,1]},"entrance:47205":{"rank":569,"runs":[543,10,4,3,3,3,1,1,1]},"entrance:47206":{"rank":569,"runs":[545,8,8,3,1,1,1,1,1]},"entrance:47207":{"rank":569,"runs":[543,10,4,3,3,3,1,1,1]},"entrance:47210":{"rank":569,"runs":[539,10,7,7,3,1,1,1]},"entrance:47211":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:47212":{"rank":569,"runs":[539,10,7,7,3,1,1,1]},"entrance:47213":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:47214":{"rank":566,"runs":[538,9,4,4,3,2,2,1,1,1,1]},"entrance:47215":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:47216":{"rank":566,"runs":[543,11,7,3,1,1]},"entrance:47217":{"rank":568,"runs":[543,11,4,3,2,2,1,1,1]},"entrance:47243":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:47249":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:47250":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:47280":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:47286":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:47287":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:473":{"rank":551,"runs":[527,23,1]},"entrance:47318":{"rank":571,"runs":[548,11,4,4,2,1,1]},"entrance:47324":{"rank":571,"runs":[548,11,4,4,2,1,1]},"entrance:47325":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:47356":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:47362":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:47363":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:47395":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:474":{"rank":551,"runs":[527,23,1]},"entrance:47401":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:47402":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:47434":{"rank":571,"runs":[547,10,8,1,1,1,1,1,1]},"entrance:47440":{"rank":571,"runs":[547,10,8,1,1,1,1,1,1]},"entrance:47441":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:47474":{"rank":571,"runs":[545,10,6,3,3,1,1,1,1]},"entrance:47480":{"rank":571,"runs":[545,10,6,3,3,1,1,1,1]},"entrance:47481":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:475":{"rank":551,"runs":[527,23,1]},"entrance:47514":{"rank":571,"runs":[543,10,5,5,4,1,1,1,1]},"entrance:47520":{"rank":571,"runs":[543,10,5,5,4,1,1,1,1]},"entrance:47521":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:47555":{"rank":571,"runs":[541,10,7,7,2,1,1,1,1]},"entrance:47561":{"rank":571,"runs":[541,10,7,7,2,1,1,1,1]},"entrance:47562":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:47596":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:476":{"rank":551,"runs":[527,23,1]},"entrance:47602":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:47608":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:47609":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:47610":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:47611":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:47612":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:47613":{"rank":570,"runs":[538,8,8,8,1,1,1,1,1,1,1,1]},"entrance:47614":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:47615":{"rank":570,"runs":[540,8,6,6,3,1,1,1,1,1,1,1]},"entrance:47616":{"rank":570,"runs":[536,8,8,6,3,3,1,1,1,1,1,1]},"entrance:47617":{"rank":570,"runs":[534,8,8,5,5,4,1,1,1,1,1,1]},"entrance:47618":{"rank":570,"runs":[538,6,6,6,3,3,3,1,1,1,1,1]},"entrance:47619":{"rank":570,"runs":[536,6,6,5,5,4,3,1,1,1,1,1]},"entrance:47620":{"rank":570,"runs":[532,8,8,7,7,2,1,1,1,1,1,1]},"entrance:47622":{"rank":570,"runs":[534,7,7,6,6,3,2,1,1,1,1,1]},"entrance:47623":{"rank":570,"runs":[532,9,9,6,6,3,1,1,1,1,1]},"entrance:47624":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:47625":{"rank":570,"runs":[542,8,5,4,4,1,1,1,1,1,1,1]},"entrance:47626":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:47627":{"rank":570,"runs":[544,8,7,2,2,1,1,1,1,1,1,1]},"entrance:47628":{"rank":570,"runs":[540,6,5,4,4,3,3,1,1,1,1,1]},"entrance:47629":{"rank":570,"runs":[538,5,5,5,4,4,4,1,1,1,1,1]},"entrance:47630":{"rank":570,"runs":[542,7,6,3,3,2,2,1,1,1,1,1]},"entrance:47631":{"rank":570,"runs":[540,7,5,5,4,2,2,1,1,1,1,1]},"entrance:47632":{"rank":570,"runs":[536,7,7,5,4,4,2,1,1,1,1,1]},"entrance:47633":{"rank":570,"runs":[534,9,9,5,4,4,1,1,1,1,1]},"entrance:47634":{"rank":570,"runs":[538,7,7,7,2,2,2,1,1,1,1,1]},"entrance:47635":{"rank":570,"runs":[536,9,9,7,2,2,1,1,1,1,1]},"entrance:47636":{"rank":570,"runs":[544,9,6,3,3,2,1,1,1]},"entrance:47637":{"rank":570,"runs":[542,9,5,5,4,2,1,1,1]},"entrance:47638":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:47639":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:47640":{"rank":570,"runs":[540,9,7,7,2,2,1,1,1]},"entrance:47641":{"rank":570,"runs":[538,9,9,9,2,1,1,1]},"entrance:47642":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:47643":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:47644":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:47645":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:47646":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:47647":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:477":{"rank":551,"runs":[527,23,1]},"entrance:47727":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:478":{"rank":551,"runs":[527,23,1]},"entrance:47873":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:479":{"rank":551,"runs":[527,23,1]},"entrance:48":{"rank":551,"runs":[527,23,1]},"entrance:480":{"rank":551,"runs":[527,23,1]},"entrance:4801":{"rank":554,"runs":[530,19,3,1,1]},"entrance:48017":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:481":{"rank":551,"runs":[527,23,1]},"entrance:48163":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:482":{"rank":551,"runs":[527,23,1]},"entrance:4825":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:483":{"rank":551,"runs":[527,23,1]},"entrance:48307":{"rank":570,"runs":[546,9,8,2,1,1,1,1,1]},"entrance:48384":{"rank":554,"runs":[530,19,3,1,1]},"entrance:48393":{"rank":552,"runs":[528,22,1,1]},"entrance:48396":{"rank":556,"runs":[532,17,5,1,1]},"entrance:484":{"rank":551,"runs":[527,23,1]},"entrance:48408":{"rank":558,"runs":[534,15,7,1,1]},"entrance:48420":{"rank":560,"runs":[535,9,7,4,2,1,1,1]},"entrance:48432":{"rank":562,"runs":[535,7,7,4,4,3,1,1]},"entrance:48444":{"rank":564,"runs":[535,7,6,5,5,4,1,1]},"entrance:48456":{"rank":566,"runs":[535,8,7,7,4,3,1,1]},"entrance:48497":{"rank":570,"runs":[546,9,8,2,1,1,1,1,1]},"entrance:485":{"rank":551,"runs":[527,23,1]},"entrance:48518":{"rank":552,"runs":[528,22,1,1]},"entrance:48529":{"rank":554,"runs":[530,20,3,1]},"entrance:48540":{"rank":556,"runs":[532,18,5,1]},"entrance:48551":{"rank":558,"runs":[534,16,7,1]},"entrance:48562":{"rank":560,"runs":[536,14,9,1]},"entrance:48573":{"rank":562,"runs":[538,12,11,1]},"entrance:48584":{"rank":564,"runs":[539,11,6,3,2,1,1,1]},"entrance:48595":{"rank":566,"runs":[539,11,4,4,3,3,1,1]},"entrance:486":{"rank":551,"runs":[527,23,1]},"entrance:48606":{"rank":568,"runs":[539,11,6,5,3,2,1,1]},"entrance:48617":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:48635":{"rank":554,"runs":[530,19,3,1,1]},"entrance:48644":{"rank":552,"runs":[528,22,1,1]},"entrance:48647":{"rank":556,"runs":[532,17,5,1,1]},"entrance:48659":{"rank":558,"runs":[533,13,5,2,2,1,1,1]},"entrance:48671":{"rank":560,"runs":[533,9,5,2,2,2,2,2,1,1,1]},"entrance:48683":{"rank":562,"runs":[533,7,5,4,3,2,2,2,2,1,1]},"entrance:48695":{"rank":564,"runs":[533,6,5,5,5,2,2,2,2,1,1]},"entrance:487":{"rank":551,"runs":[527,23,1]},"entrance:48707":{"rank":566,"runs":[533,8,7,5,3,2,2,2,2,1,1]},"entrance:4873":{"rank":566,"runs":[531,12,11,5,3,2,1,1]},"entrance:48746":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:48770":{"rank":552,"runs":[528,22,1,1]},"entrance:48781":{"rank":554,"runs":[530,20,3,1]},"entrance:48792":{"rank":556,"runs":[532,18,5,1]},"entrance:488":{"rank":551,"runs":[527,23,1]},"entrance:48803":{"rank":558,"runs":[534,16,7,1]},"entrance:48814":{"rank":560,"runs":[536,14,9,1]},"entrance:48825":{"rank":562,"runs":[538,12,11,1]},"entrance:48836":{"rank":564,"runs":[539,11,8,2,1,1,1,1]},"entrance:48847":{"rank":566,"runs":[539,11,4,2,2,2,2,1,1,1,1]},"entrance:48858":{"rank":568,"runs":[539,11,4,3,2,2,2,2,1,1,1]},"entrance:48869":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:48888":{"rank":554,"runs":[530,19,3,1,1]},"entrance:48897":{"rank":552,"runs":[528,22,1,1]},"entrance:489":{"rank":551,"runs":[527,23,1]},"entrance:48900":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:48912":{"rank":558,"runs":[531,13,4,3,3,2,1,1]},"entrance:48999":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:49":{"rank":551,"runs":[527,23,1]},"entrance:490":{"rank":551,"runs":[527,23,1]},"entrance:49024":{"rank":552,"runs":[528,22,1,1]},"entrance:49035":{"rank":554,"runs":[530,20,3,1]},"entrance:49046":{"rank":556,"runs":[532,18,5,1]},"entrance:49057":{"rank":558,"runs":[534,16,7,1]},"entrance:49068":{"rank":560,"runs":[536,14,9,1]},"entrance:49079":{"rank":562,"runs":[538,12,11,1]},"entrance:49090":{"rank":564,"runs":[539,11,8,2,1,1,1,1]},"entrance:491":{"rank":551,"runs":[527,23,1]},"entrance:49101":{"rank":566,"runs":[539,11,6,4,3,1,1,1]},"entrance:49112":{"rank":568,"runs":[539,11,4,4,2,2,2,1,1,1,1]},"entrance:4912":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:49123":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:49152":{"rank":552,"runs":[528,22,1,1]},"entrance:492":{"rank":551,"runs":[527,23,1]},"entrance:49252":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:4928":{"rank":554,"runs":[530,19,3,1,1]},"entrance:49280":{"rank":552,"runs":[528,22,1,1]},"entrance:49291":{"rank":554,"runs":[530,20,3,1]},"entrance:493":{"rank":551,"runs":[527,23,1]},"entrance:49302":{"rank":556,"runs":[532,18,5,1]},"entrance:49313":{"rank":558,"runs":[534,16,7,1]},"entrance:49324":{"rank":560,"runs":[536,14,9,1]},"entrance:49335":{"rank":562,"runs":[538,12,11,1]},"entrance:49346":{"rank":564,"runs":[539,11,8,2,1,1,1,1]},"entrance:49357":{"rank":566,"runs":[539,11,6,4,3,1,1,1]},"entrance:49368":{"rank":568,"runs":[539,11,6,5,4,1,1,1]},"entrance:49379":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:494":{"rank":551,"runs":[527,23,1]},"entrance:49409":{"rank":552,"runs":[528,22,1,1]},"entrance:495":{"rank":551,"runs":[527,23,1]},"entrance:49509":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:49538":{"rank":552,"runs":[528,22,1,1]},"entrance:49549":{"rank":554,"runs":[530,20,3,1]},"entrance:49560":{"rank":556,"runs":[532,18,5,1]},"entrance:49571":{"rank":558,"runs":[534,16,7,1]},"entrance:49582":{"rank":560,"runs":[536,14,9,1]},"entrance:49593":{"rank":562,"runs":[538,12,11,1]},"entrance:496":{"rank":551,"runs":[527,23,1]},"entrance:49604":{"rank":564,"runs":[539,11,8,2,1,1,1,1]},"entrance:49615":{"rank":566,"runs":[539,11,6,4,3,1,1,1]},"entrance:49626":{"rank":568,"runs":[539,11,6,5,4,1,1,1]},"entrance:49637":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:49657":{"rank":552,"runs":[528,21,1,1,1]},"entrance:497":{"rank":551,"runs":[527,23,1]},"entrance:49766":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:49767":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:49768":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:49769":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:49770":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:49771":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:49772":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:49773":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:49774":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:49775":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:49776":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:49777":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:49787":{"rank":552,"runs":[528,21,1,1,1]},"entrance:498":{"rank":551,"runs":[527,23,1]},"entrance:49896":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:49897":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:49898":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:49899":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:499":{"rank":551,"runs":[527,23,1]},"entrance:49900":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:49901":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:49902":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:49903":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:49904":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:49905":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:49906":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:49907":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:5":{"rank":551,"runs":[527,23,1]},"entrance:50":{"rank":551,"runs":[527,23,1]},"entrance:500":{"rank":551,"runs":[527,23,1]},"entrance:501":{"rank":551,"runs":[527,23,1]},"entrance:502":{"rank":551,"runs":[527,23,1]},"entrance:503":{"rank":551,"runs":[527,23,1]},"entrance:50396":{"rank":554,"runs":[530,19,3,1,1]},"entrance:504":{"rank":551,"runs":[527,23,1]},"entrance:50420":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:505":{"rank":551,"runs":[527,23,1]},"entrance:50575":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:50589":{"rank":566,"runs":[537,9,6,5,5,2,1,1]},"entrance:50591":{"rank":562,"runs":[538,6,5,5,4,1,1,1,1]},"entrance:50596":{"rank":564,"runs":[533,6,6,4,3,3,2,2,2,1,1,1]},"entrance:50598":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:506":{"rank":551,"runs":[527,23,1]},"entrance:50600":{"rank":568,"runs":[532,11,10,4,3,2,2,1,1,1,1]},"entrance:50601":{"rank":564,"runs":[536,8,6,4,3,2,1,1,1,1,1]},"entrance:50602":{"rank":566,"runs":[543,12,7,2,1,1]},"entrance:50621":{"rank":566,"runs":[542,9,6,4,1,1,1,1,1]},"entrance:50622":{"rank":566,"runs":[538,9,4,4,3,3,1,1,1,1,1]},"entrance:50631":{"rank":566,"runs":[538,5,4,3,3,3,3,2,2,1,1,1]},"entrance:50632":{"rank":566,"runs":[534,6,6,5,3,3,3,3,1,1,1]},"entrance:50642":{"rank":566,"runs":[534,7,7,4,3,3,2,2,1,1,1,1]},"entrance:50653":{"rank":568,"runs":[543,11,4,3,2,2,1,1,1]},"entrance:50654":{"rank":568,"runs":[539,11,6,5,4,1,1,1]},"entrance:50656":{"rank":569,"runs":[540,11,6,6,3,1,1,1]},"entrance:50657":{"rank":569,"runs":[540,11,6,6,3,1,1,1]},"entrance:50658":{"rank":569,"runs":[544,11,4,3,2,2,1,1,1]},"entrance:50659":{"rank":569,"runs":[544,11,4,3,2,2,1,1,1]},"entrance:50662":{"rank":569,"runs":[545,8,8,2,2,1,1,1,1]},"entrance:50663":{"rank":569,"runs":[546,10,4,4,3,1,1]},"entrance:50664":{"rank":569,"runs":[545,8,8,2,2,1,1,1,1]},"entrance:50665":{"rank":569,"runs":[546,10,4,4,3,1,1]},"entrance:50668":{"rank":569,"runs":[546,10,7,4,1,1]},"entrance:50669":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:50670":{"rank":569,"runs":[546,10,7,4,1,1]},"entrance:50671":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:50672":{"rank":566,"runs":[538,8,4,4,3,2,2,1,1,1,1,1]},"entrance:50673":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:50674":{"rank":566,"runs":[543,10,7,3,1,1,1]},"entrance:50675":{"rank":568,"runs":[543,9,5,3,2,2,2,1,1]},"entrance:507":{"rank":551,"runs":[527,23,1]},"entrance:50701":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"entrance:50707":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"entrance:50708":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:50738":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"entrance:50744":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"entrance:50745":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:50776":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"entrance:50782":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"entrance:50783":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:508":{"rank":551,"runs":[527,23,1]},"entrance:50814":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"entrance:50820":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"entrance:50821":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:50853":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:50859":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:50860":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:50892":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:50898":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:50899":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:509":{"rank":551,"runs":[527,23,1]},"entrance:50932":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:50938":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:50939":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:50972":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:50978":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:50979":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:51":{"rank":551,"runs":[527,23,1]},"entrance:510":{"rank":551,"runs":[527,23,1]},"entrance:51013":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:51019":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:51020":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:51054":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:51060":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:51066":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:51067":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:51068":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:51069":{"rank":570,"runs":[545,12,2,2,2,2,2,1,1,1]},"entrance:51070":{"rank":570,"runs":[541,12,6,6,2,1,1,1]},"entrance:51071":{"rank":570,"runs":[538,9,8,8,1,1,1,1,1,1,1]},"entrance:51072":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:51073":{"rank":570,"runs":[540,9,6,6,2,1,1,1,1,1,1,1]},"entrance:51074":{"rank":570,"runs":[536,8,8,7,3,3,1,1,1,1,1]},"entrance:51075":{"rank":570,"runs":[534,8,8,5,5,5,1,1,1,1,1]},"entrance:51076":{"rank":570,"runs":[538,7,6,6,3,3,2,1,1,1,1,1]},"entrance:51077":{"rank":570,"runs":[536,6,6,5,5,5,2,1,1,1,1,1]},"entrance:51078":{"rank":570,"runs":[532,8,8,7,7,3,1,1,1,1,1]},"entrance:51080":{"rank":570,"runs":[534,7,7,6,6,3,2,1,1,1,1,1]},"entrance:51081":{"rank":570,"runs":[532,9,9,6,6,2,1,1,1,1,1,1]},"entrance:51082":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:51083":{"rank":570,"runs":[542,9,4,4,4,1,1,1,1,1,1,1]},"entrance:51084":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:51085":{"rank":570,"runs":[544,9,6,2,2,1,1,1,1,1,1,1]},"entrance:51086":{"rank":570,"runs":[540,7,4,4,4,3,3,1,1,1,1,1]},"entrance:51087":{"rank":570,"runs":[538,5,5,5,4,4,4,1,1,1,1,1]},"entrance:51088":{"rank":570,"runs":[542,7,6,3,3,2,2,1,1,1,1,1]},"entrance:51089":{"rank":570,"runs":[540,6,5,5,5,2,2,1,1,1,1,1]},"entrance:51090":{"rank":570,"runs":[536,7,7,4,4,4,3,1,1,1,1,1]},"entrance:51091":{"rank":570,"runs":[534,9,9,4,4,4,1,1,1,1,1,1]},"entrance:51092":{"rank":570,"runs":[538,7,7,6,3,2,2,1,1,1,1,1]},"entrance:51093":{"rank":570,"runs":[536,9,9,6,2,2,1,1,1,1,1,1]},"entrance:51094":{"rank":570,"runs":[544,8,7,3,3,2,1,1,1]},"entrance:51095":{"rank":570,"runs":[542,8,5,5,5,2,1,1,1]},"entrance:51096":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:51097":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:51098":{"rank":570,"runs":[540,8,7,7,3,2,1,1,1]},"entrance:51099":{"rank":570,"runs":[538,9,9,8,2,1,1,1,1]},"entrance:511":{"rank":551,"runs":[527,23,1]},"entrance:51100":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:51101":{"rank":570,"runs":[541,10,6,6,2,1,1,1,1,1]},"entrance:51102":{"rank":570,"runs":[545,10,3,3,2,2,2,1,1,1]},"entrance:51103":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:51104":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:51105":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:51116":{"rank":552,"runs":[528,22,1,1]},"entrance:512":{"rank":551,"runs":[527,23,1]},"entrance:51215":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:51224":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:51236":{"rank":552,"runs":[528,22,1,1]},"entrance:513":{"rank":551,"runs":[527,23,1]},"entrance:51346":{"rank":552,"runs":[528,21,1,1,1]},"entrance:51357":{"rank":552,"runs":[528,22,1,1]},"entrance:51368":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:51379":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:51390":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:514":{"rank":551,"runs":[527,23,1]},"entrance:51401":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:51456":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:51465":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:51467":{"rank":552,"runs":[528,21,1,1,1]},"entrance:51478":{"rank":552,"runs":[528,22,1,1]},"entrance:515":{"rank":551,"runs":[527,23,1]},"entrance:51588":{"rank":552,"runs":[528,21,1,1,1]},"entrance:516":{"rank":551,"runs":[527,23,1]},"entrance:51600":{"rank":552,"runs":[528,22,1,1]},"entrance:51611":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:51622":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:51633":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:51644":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:5165":{"rank":570,"runs":[547,18,3,1,1]},"entrance:51655":{"rank":562,"runs":[533,7,4,4,3,2,2,2,2,1,1,1]},"entrance:51677":{"rank":566,"runs":[533,6,6,4,4,3,3,2,2,1,1,1]},"entrance:51688":{"rank":568,"runs":[533,8,8,4,4,3,2,2,1,1,1,1]},"entrance:51699":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:517":{"rank":551,"runs":[527,23,1]},"entrance:51706":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:51710":{"rank":552,"runs":[528,21,1,1,1]},"entrance:51722":{"rank":552,"runs":[528,22,1,1]},"entrance:518":{"rank":551,"runs":[527,23,1]},"entrance:51832":{"rank":552,"runs":[528,21,1,1,1]},"entrance:51845":{"rank":552,"runs":[528,22,1,1]},"entrance:51856":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:51867":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:51878":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:51889":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:519":{"rank":551,"runs":[527,23,1]},"entrance:51900":{"rank":562,"runs":[535,7,5,2,2,2,2,2,2,1,1,1]},"entrance:51911":{"rank":564,"runs":[535,5,5,4,4,2,2,2,2,1,1,1]},"entrance:51922":{"rank":566,"runs":[535,6,6,5,3,2,2,2,2,1,1,1]},"entrance:51933":{"rank":568,"runs":[535,8,8,5,2,2,2,2,1,1,1,1]},"entrance:51944":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:51951":{"rank":570,"runs":[547,12,4,3,2,1,1]},"entrance:51955":{"rank":552,"runs":[528,21,1,1,1]},"entrance:51968":{"rank":552,"runs":[528,22,1,1]},"entrance:52":{"rank":551,"runs":[527,23,1]},"entrance:520":{"rank":551,"runs":[527,23,1]},"entrance:52078":{"rank":552,"runs":[528,21,1,1,1]},"entrance:52092":{"rank":552,"runs":[528,22,1,1]},"entrance:521":{"rank":551,"runs":[527,23,1]},"entrance:52103":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:52114":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:52125":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:52136":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:52147":{"rank":562,"runs":[537,7,7,4,2,2,1,1,1]},"entrance:52158":{"rank":564,"runs":[537,7,5,4,4,4,1,1,1]},"entrance:52169":{"rank":566,"runs":[537,7,6,6,4,3,1,1,1]},"entrance:52180":{"rank":568,"runs":[537,8,8,7,4,1,1,1,1]},"entrance:52191":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:52196":{"rank":570,"runs":[546,9,8,2,1,1,1,1,1]},"entrance:522":{"rank":551,"runs":[527,23,1]},"entrance:52202":{"rank":552,"runs":[528,21,1,1,1]},"entrance:52216":{"rank":552,"runs":[528,22,1,1]},"entrance:523":{"rank":551,"runs":[527,23,1]},"entrance:52385":{"rank":570,"runs":[546,9,8,2,1,1,1,1,1]},"entrance:524":{"rank":551,"runs":[527,23,1]},"entrance:525":{"rank":551,"runs":[527,23,1]},"entrance:52529":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:526":{"rank":551,"runs":[527,23,1]},"entrance:52675":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:527":{"rank":551,"runs":[527,23,1]},"entrance:528":{"rank":551,"runs":[527,23,1]},"entrance:52819":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:529":{"rank":551,"runs":[527,23,1]},"entrance:52965":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:53":{"rank":551,"runs":[527,23,1]},"entrance:530":{"rank":551,"runs":[527,23,1]},"entrance:53056":{"rank":552,"runs":[528,21,1,1,1]},"entrance:531":{"rank":551,"runs":[527,23,1]},"entrance:53174":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:53175":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:53176":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:53177":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:53178":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:53179":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:53180":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:53181":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:53182":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:53183":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:53184":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:53185":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:532":{"rank":551,"runs":[527,23,1]},"entrance:533":{"rank":551,"runs":[527,23,1]},"entrance:534":{"rank":551,"runs":[527,23,1]},"entrance:535":{"rank":551,"runs":[527,23,1]},"entrance:536":{"rank":551,"runs":[527,23,1]},"entrance:53680":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:537":{"rank":551,"runs":[527,23,1]},"entrance:53735":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53736":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53744":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53745":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53750":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53751":{"rank":552,"runs":[528,21,1,1,1]},"entrance:53752":{"rank":554,"runs":[530,19,3,1,1]},"entrance:53758":{"rank":554,"runs":[530,14,5,2,1,1,1]},"entrance:53769":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:53770":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:53779":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:53780":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:53786":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:53787":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:53790":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:53791":{"rank":556,"runs":[532,17,5,1,1]},"entrance:53794":{"rank":556,"runs":[532,14,4,3,1,1,1]},"entrance:53795":{"rank":556,"runs":[532,18,5,1]},"entrance:53798":{"rank":556,"runs":[532,14,4,3,1,1,1]},"entrance:53799":{"rank":556,"runs":[532,14,4,3,1,1,1]},"entrance:538":{"rank":551,"runs":[527,23,1]},"entrance:53806":{"rank":560,"runs":[536,14,9,1]},"entrance:53811":{"rank":562,"runs":[538,8,5,4,3,1,1,1,1]},"entrance:53812":{"rank":568,"runs":[544,9,8,5,1,1]},"entrance:53818":{"rank":560,"runs":[536,14,9,1]},"entrance:53820":{"rank":568,"runs":[541,9,4,4,4,3,1,1,1]},"entrance:53822":{"rank":566,"runs":[543,9,7,4,1,1,1]},"entrance:53843":{"rank":566,"runs":[543,9,7,5,1,1]},"entrance:53844":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:53853":{"rank":566,"runs":[538,5,4,4,4,3,3,1,1,1,1,1]},"entrance:53854":{"rank":566,"runs":[534,8,8,4,3,3,1,1,1,1,1,1]},"entrance:53864":{"rank":566,"runs":[534,5,5,5,4,4,3,3,1,1,1]},"entrance:53875":{"rank":568,"runs":[541,7,5,4,4,3,2,1,1]},"entrance:53876":{"rank":568,"runs":[537,8,8,7,3,2,1,1,1]},"entrance:53878":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:53879":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:53880":{"rank":569,"runs":[546,9,4,4,4,1,1]},"entrance:53881":{"rank":569,"runs":[546,9,4,4,4,1,1]},"entrance:53884":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:53885":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:53886":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:53887":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:53890":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:53891":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:53892":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:53893":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:53894":{"rank":566,"runs":[538,9,5,5,4,3,1,1]},"entrance:53895":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:53896":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:53897":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:539":{"rank":551,"runs":[527,23,1]},"entrance:53923":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:53929":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:53930":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:53960":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:53966":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:53967":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:53998":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:54":{"rank":551,"runs":[527,23,1]},"entrance:540":{"rank":551,"runs":[527,23,1]},"entrance:54004":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:54005":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:54036":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:54042":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:54043":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:54075":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:54081":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:54082":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:541":{"rank":551,"runs":[527,23,1]},"entrance:54114":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:54120":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:54121":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:54154":{"rank":571,"runs":[547,12,6,1,1,1,1,1,1]},"entrance:54160":{"rank":571,"runs":[547,12,6,1,1,1,1,1,1]},"entrance:54161":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:54194":{"rank":571,"runs":[545,12,4,3,3,1,1,1,1]},"entrance:542":{"rank":551,"runs":[527,23,1]},"entrance:54200":{"rank":571,"runs":[545,12,4,3,3,1,1,1,1]},"entrance:54201":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:5422":{"rank":570,"runs":[547,18,3,1,1]},"entrance:54235":{"rank":571,"runs":[543,12,5,5,2,1,1,1,1]},"entrance:54241":{"rank":571,"runs":[543,12,5,5,2,1,1,1,1]},"entrance:54242":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:54276":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:54282":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:54288":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:54289":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:54290":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:54291":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:54292":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:54293":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:54294":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:54295":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:54296":{"rank":570,"runs":[536,10,10,6,1,1,1,1,1,1,1,1]},"entrance:54297":{"rank":570,"runs":[534,10,10,4,3,3,1,1,1,1,1,1]},"entrance:54298":{"rank":570,"runs":[538,8,8,6,3,1,1,1,1,1,1,1]},"entrance:54299":{"rank":570,"runs":[536,8,8,4,3,3,3,1,1,1,1,1]},"entrance:543":{"rank":551,"runs":[527,23,1]},"entrance:54300":{"rank":570,"runs":[532,10,10,5,5,2,1,1,1,1,1,1]},"entrance:54302":{"rank":570,"runs":[534,8,8,5,5,3,2,1,1,1,1,1]},"entrance:54303":{"rank":570,"runs":[532,8,8,7,7,3,1,1,1,1,1]},"entrance:54304":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:54305":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:54306":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:54307":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:54308":{"rank":570,"runs":[540,6,6,6,5,1,1,1,1,1,1,1]},"entrance:54309":{"rank":570,"runs":[538,6,6,5,4,3,3,1,1,1,1,1]},"entrance:54310":{"rank":570,"runs":[542,7,6,4,4,1,1,1,1,1,1,1]},"entrance:54311":{"rank":570,"runs":[540,7,4,4,4,3,3,1,1,1,1,1]},"entrance:54312":{"rank":570,"runs":[536,6,6,5,5,5,2,1,1,1,1,1]},"entrance:54313":{"rank":570,"runs":[534,7,7,6,6,5,1,1,1,1,1]},"entrance:54314":{"rank":570,"runs":[538,7,5,5,4,4,2,1,1,1,1,1]},"entrance:54315":{"rank":570,"runs":[536,7,7,7,4,4,1,1,1,1,1]},"entrance:54316":{"rank":570,"runs":[544,9,6,2,2,1,1,1,1,1,1,1]},"entrance:54317":{"rank":570,"runs":[542,9,4,3,3,2,2,1,1,1,1,1]},"entrance:54318":{"rank":570,"runs":[546,11,6,2,1,1,1,1,1]},"entrance:54319":{"rank":570,"runs":[544,11,4,3,3,2,1,1,1]},"entrance:54320":{"rank":570,"runs":[540,9,5,5,2,2,2,1,1,1,1,1]},"entrance:54321":{"rank":570,"runs":[538,9,7,7,2,2,1,1,1,1,1]},"entrance:54322":{"rank":570,"runs":[542,11,5,5,2,2,1,1,1]},"entrance:54323":{"rank":570,"runs":[540,11,7,7,2,1,1,1]},"entrance:54324":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:54325":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:54326":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:54327":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:544":{"rank":551,"runs":[527,23,1]},"entrance:54407":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:545":{"rank":551,"runs":[527,23,1]},"entrance:54553":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:546":{"rank":551,"runs":[527,23,1]},"entrance:54697":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:547":{"rank":551,"runs":[527,23,1]},"entrance:548":{"rank":551,"runs":[527,23,1]},"entrance:54843":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:549":{"rank":551,"runs":[527,23,1]},"entrance:54987":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:55":{"rank":551,"runs":[527,23,1]},"entrance:550":{"rank":551,"runs":[527,23,1]},"entrance:551":{"rank":551,"runs":[527,23,1]},"entrance:55133":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:552":{"rank":551,"runs":[527,23,1]},"entrance:55211":{"rank":554,"runs":[530,19,3,1,1]},"entrance:55220":{"rank":552,"runs":[528,22,1,1]},"entrance:55223":{"rank":556,"runs":[532,17,5,1,1]},"entrance:55235":{"rank":558,"runs":[533,11,5,4,2,1,1,1]},"entrance:55247":{"rank":560,"runs":[533,9,5,4,4,3,1,1]},"entrance:55259":{"rank":562,"runs":[533,7,6,5,5,4,1,1]},"entrance:55271":{"rank":564,"runs":[533,8,7,5,5,4,1,1]},"entrance:55283":{"rank":566,"runs":[533,10,9,5,4,3,1,1]},"entrance:553":{"rank":551,"runs":[527,23,1]},"entrance:55322":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:55346":{"rank":552,"runs":[528,22,1,1]},"entrance:55357":{"rank":554,"runs":[530,20,3,1]},"entrance:55368":{"rank":556,"runs":[532,18,5,1]},"entrance:55379":{"rank":558,"runs":[534,16,7,1]},"entrance:55390":{"rank":560,"runs":[536,14,9,1]},"entrance:554":{"rank":551,"runs":[527,23,1]},"entrance:55401":{"rank":562,"runs":[538,12,11,1]},"entrance:55412":{"rank":564,"runs":[540,13,10,1]},"entrance:55423":{"rank":566,"runs":[541,13,4,3,2,1,1,1]},"entrance:55434":{"rank":568,"runs":[541,13,4,3,3,2,1,1]},"entrance:55445":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:55464":{"rank":554,"runs":[530,19,3,1,1]},"entrance:55473":{"rank":552,"runs":[528,22,1,1]},"entrance:55476":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:555":{"rank":551,"runs":[527,23,1]},"entrance:55575":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:556":{"rank":551,"runs":[527,23,1]},"entrance:55600":{"rank":552,"runs":[528,22,1,1]},"entrance:55611":{"rank":554,"runs":[530,20,3,1]},"entrance:55622":{"rank":556,"runs":[532,18,5,1]},"entrance:55633":{"rank":558,"runs":[534,16,7,1]},"entrance:55644":{"rank":560,"runs":[536,14,9,1]},"entrance:55655":{"rank":562,"runs":[538,12,11,1]},"entrance:55666":{"rank":564,"runs":[540,13,10,1]},"entrance:55677":{"rank":566,"runs":[541,13,6,2,1,1,1,1]},"entrance:55688":{"rank":568,"runs":[541,13,2,2,2,2,2,1,1,1,1]},"entrance:55699":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:557":{"rank":551,"runs":[527,23,1]},"entrance:5570":{"rank":552,"runs":[528,21,1,1,1]},"entrance:55728":{"rank":552,"runs":[528,22,1,1]},"entrance:558":{"rank":551,"runs":[527,23,1]},"entrance:55828":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:5583":{"rank":556,"runs":[532,17,5,1,1]},"entrance:55856":{"rank":552,"runs":[528,22,1,1]},"entrance:55867":{"rank":554,"runs":[530,20,3,1]},"entrance:55878":{"rank":556,"runs":[532,18,5,1]},"entrance:55889":{"rank":558,"runs":[534,16,7,1]},"entrance:559":{"rank":551,"runs":[527,23,1]},"entrance:55900":{"rank":560,"runs":[536,14,9,1]},"entrance:55911":{"rank":562,"runs":[538,12,11,1]},"entrance:55922":{"rank":564,"runs":[540,13,10,1]},"entrance:55933":{"rank":566,"runs":[541,13,6,2,1,1,1,1]},"entrance:55944":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:55955":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:55985":{"rank":552,"runs":[528,22,1,1]},"entrance:56":{"rank":551,"runs":[527,23,1]},"entrance:560":{"rank":551,"runs":[527,23,1]},"entrance:56085":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:561":{"rank":551,"runs":[527,23,1]},"entrance:56114":{"rank":552,"runs":[528,22,1,1]},"entrance:56125":{"rank":554,"runs":[530,20,3,1]},"entrance:56136":{"rank":556,"runs":[532,18,5,1]},"entrance:56147":{"rank":558,"runs":[534,16,7,1]},"entrance:56158":{"rank":560,"runs":[536,14,9,1]},"entrance:56169":{"rank":562,"runs":[538,12,11,1]},"entrance:56180":{"rank":564,"runs":[540,13,10,1]},"entrance:56191":{"rank":566,"runs":[541,13,6,2,1,1,1,1]},"entrance:562":{"rank":551,"runs":[527,23,1]},"entrance:56202":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:56213":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:56233":{"rank":552,"runs":[528,21,1,1,1]},"entrance:563":{"rank":551,"runs":[527,23,1]},"entrance:56342":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:56343":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:56344":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:56345":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:56346":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:56347":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:56348":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:56349":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:56350":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:56351":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:56352":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:56353":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:56363":{"rank":552,"runs":[528,21,1,1,1]},"entrance:564":{"rank":551,"runs":[527,23,1]},"entrance:56472":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:56473":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:56474":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:56475":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:56476":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:56477":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:56478":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:56479":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:56480":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:56481":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:56482":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:56483":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:565":{"rank":551,"runs":[527,23,1]},"entrance:5650":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:5655":{"rank":568,"runs":[544,17,5,1,1]},"entrance:566":{"rank":551,"runs":[527,23,1]},"entrance:567":{"rank":551,"runs":[527,23,1]},"entrance:5676":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:568":{"rank":551,"runs":[527,23,1]},"entrance:569":{"rank":551,"runs":[527,23,1]},"entrance:56972":{"rank":554,"runs":[530,19,3,1,1]},"entrance:56996":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:57":{"rank":551,"runs":[527,23,1]},"entrance:570":{"rank":551,"runs":[527,23,1]},"entrance:5700":{"rank":552,"runs":[528,21,1,1,1]},"entrance:571":{"rank":551,"runs":[527,23,1]},"entrance:57141":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:57155":{"rank":566,"runs":[535,8,7,7,5,2,1,1]},"entrance:57157":{"rank":562,"runs":[538,7,5,4,4,1,1,1,1]},"entrance:57162":{"rank":564,"runs":[533,8,8,6,3,3,1,1,1]},"entrance:57164":{"rank":560,"runs":[537,13,7,1,1,1]},"entrance:57166":{"rank":568,"runs":[532,13,12,4,4,1,1,1]},"entrance:57167":{"rank":564,"runs":[537,8,8,4,3,1,1,1,1]},"entrance:57168":{"rank":566,"runs":[543,14,7,1,1]},"entrance:57187":{"rank":566,"runs":[542,9,4,4,3,1,1,1,1]},"entrance:57188":{"rank":566,"runs":[538,9,4,4,3,3,1,1,1,1,1]},"entrance:57197":{"rank":566,"runs":[538,5,5,5,4,4,3,1,1]},"entrance:57198":{"rank":566,"runs":[534,5,5,5,4,4,3,3,1,1,1]},"entrance:572":{"rank":551,"runs":[527,23,1]},"entrance:57208":{"rank":566,"runs":[534,9,9,4,4,3,1,1,1]},"entrance:57219":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:57220":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:57222":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"entrance:57223":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"entrance:57224":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:57225":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:57228":{"rank":569,"runs":[546,8,8,4,1,1,1]},"entrance:57229":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:57230":{"rank":569,"runs":[546,8,8,4,1,1,1]},"entrance:57231":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:57234":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:57235":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:57236":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:57237":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:57238":{"rank":566,"runs":[539,8,4,4,4,3,1,1,1,1]},"entrance:57239":{"rank":568,"runs":[545,9,7,5,1,1]},"entrance:57240":{"rank":566,"runs":[543,8,7,5,1,1,1]},"entrance:57241":{"rank":568,"runs":[541,7,5,4,4,3,2,1,1]},"entrance:57267":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"entrance:57273":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"entrance:57274":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:573":{"rank":551,"runs":[527,23,1]},"entrance:57304":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"entrance:57310":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"entrance:57311":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:57342":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"entrance:57348":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"entrance:57349":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:57380":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:57386":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:57387":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:574":{"rank":551,"runs":[527,23,1]},"entrance:57419":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:57425":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:57426":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:57458":{"rank":571,"runs":[548,8,8,3,2,1,1]},"entrance:57464":{"rank":571,"runs":[548,8,8,3,2,1,1]},"entrance:57465":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:57498":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:575":{"rank":551,"runs":[527,23,1]},"entrance:57504":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:57505":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:57538":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:57544":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:57545":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:57579":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:57585":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:57586":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:576":{"rank":551,"runs":[527,23,1]},"entrance:57620":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:57626":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:57632":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:57633":{"rank":570,"runs":[543,14,4,4,2,1,1,1]},"entrance:57634":{"rank":570,"runs":[547,14,3,2,2,1,1]},"entrance:57635":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:57636":{"rank":570,"runs":[540,11,6,6,1,1,1,1,1,1,1]},"entrance:57637":{"rank":570,"runs":[538,9,6,6,3,3,1,1,1,1,1]},"entrance:57638":{"rank":570,"runs":[542,11,4,4,2,1,1,1,1,1,1,1]},"entrance:57639":{"rank":570,"runs":[540,9,4,4,3,3,2,1,1,1,1,1]},"entrance:57640":{"rank":570,"runs":[536,7,6,6,5,5,1,1,1,1,1]},"entrance:57641":{"rank":570,"runs":[534,7,7,6,6,5,1,1,1,1,1]},"entrance:57642":{"rank":570,"runs":[538,7,5,5,4,4,2,1,1,1,1,1]},"entrance:57643":{"rank":570,"runs":[536,7,7,5,4,4,2,1,1,1,1,1]},"entrance:57644":{"rank":570,"runs":[532,9,9,6,6,3,1,1,1,1,1]},"entrance:57646":{"rank":570,"runs":[534,9,9,4,4,3,2,1,1,1,1,1]},"entrance:57647":{"rank":570,"runs":[532,11,11,4,4,2,1,1,1,1,1,1]},"entrance:57648":{"rank":570,"runs":[544,11,4,2,2,1,1,1,1,1,1,1]},"entrance:57649":{"rank":570,"runs":[542,9,4,3,3,2,2,1,1,1,1,1]},"entrance:57650":{"rank":570,"runs":[546,11,6,2,1,1,1,1,1]},"entrance:57651":{"rank":570,"runs":[544,9,6,3,3,2,1,1,1]},"entrance:57652":{"rank":570,"runs":[540,7,5,5,4,2,2,1,1,1,1,1]},"entrance:57653":{"rank":570,"runs":[538,7,7,5,4,2,2,1,1,1,1,1]},"entrance:57654":{"rank":570,"runs":[542,7,6,5,5,2,1,1,1]},"entrance:57655":{"rank":570,"runs":[540,7,7,6,5,2,1,1,1]},"entrance:57656":{"rank":570,"runs":[536,9,9,4,3,2,2,1,1,1,1,1]},"entrance:57657":{"rank":570,"runs":[534,11,11,4,2,2,1,1,1,1,1,1]},"entrance:57658":{"rank":570,"runs":[538,9,9,6,3,2,1,1,1]},"entrance:57659":{"rank":570,"runs":[536,11,11,6,2,1,1,1,1]},"entrance:57660":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:57661":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:57662":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:57663":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:57664":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:57665":{"rank":570,"runs":[539,8,8,8,2,1,1,1,1,1]},"entrance:57666":{"rank":570,"runs":[543,8,4,4,3,3,2,1,1,1]},"entrance:57667":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:57668":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:57669":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:57670":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:57671":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:57682":{"rank":552,"runs":[528,22,1,1]},"entrance:577":{"rank":551,"runs":[527,23,1]},"entrance:57781":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:57790":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:578":{"rank":551,"runs":[527,23,1]},"entrance:57802":{"rank":552,"runs":[528,22,1,1]},"entrance:579":{"rank":551,"runs":[527,23,1]},"entrance:57912":{"rank":552,"runs":[528,21,1,1,1]},"entrance:57923":{"rank":552,"runs":[528,22,1,1]},"entrance:57934":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:57945":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:57956":{"rank":558,"runs":[531,13,4,4,2,1,1,1,1]},"entrance:58":{"rank":551,"runs":[527,23,1]},"entrance:580":{"rank":551,"runs":[527,23,1]},"entrance:58022":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:58031":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:58033":{"rank":552,"runs":[528,21,1,1,1]},"entrance:58044":{"rank":552,"runs":[528,22,1,1]},"entrance:5809":{"rank":571,"runs":[547,20,2,1,1]},"entrance:581":{"rank":551,"runs":[527,23,1]},"entrance:5812":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:5813":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:5814":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:5815":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:58154":{"rank":552,"runs":[528,21,1,1,1]},"entrance:5816":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:58166":{"rank":552,"runs":[528,22,1,1]},"entrance:5817":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:58177":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:5818":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:58188":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:5819":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:58199":{"rank":558,"runs":[533,13,3,2,2,2,1,1,1]},"entrance:582":{"rank":551,"runs":[527,23,1]},"entrance:5820":{"rank":571,"runs":[547,19,1,1,1,1,1]},"entrance:58210":{"rank":560,"runs":[533,9,3,2,2,2,2,2,2,1,1,1]},"entrance:58221":{"rank":562,"runs":[533,7,4,4,3,2,2,2,2,1,1,1]},"entrance:58232":{"rank":564,"runs":[533,6,6,5,3,2,2,2,2,1,1,1]},"entrance:58243":{"rank":566,"runs":[533,8,8,3,3,2,2,2,2,1,1,1]},"entrance:58254":{"rank":568,"runs":[533,10,10,3,2,2,2,2,1,1,1,1]},"entrance:58265":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:58272":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:58276":{"rank":552,"runs":[528,21,1,1,1]},"entrance:58288":{"rank":552,"runs":[528,22,1,1]},"entrance:583":{"rank":551,"runs":[527,23,1]},"entrance:58398":{"rank":552,"runs":[528,21,1,1,1]},"entrance:584":{"rank":551,"runs":[527,23,1]},"entrance:58411":{"rank":552,"runs":[528,22,1,1]},"entrance:58422":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:58433":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:58444":{"rank":558,"runs":[535,15,5,1,1,1]},"entrance:58455":{"rank":560,"runs":[535,9,5,4,2,2,1,1,1]},"entrance:58466":{"rank":562,"runs":[535,7,5,4,4,4,1,1,1]},"entrance:58477":{"rank":564,"runs":[535,6,6,5,5,4,1,1,1]},"entrance:58488":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:58499":{"rank":568,"runs":[535,10,10,5,4,1,1,1,1]},"entrance:585":{"rank":551,"runs":[527,23,1]},"entrance:58510":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:58517":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:58521":{"rank":552,"runs":[528,21,1,1,1]},"entrance:58534":{"rank":552,"runs":[528,22,1,1]},"entrance:586":{"rank":551,"runs":[527,23,1]},"entrance:587":{"rank":551,"runs":[527,23,1]},"entrance:58703":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:588":{"rank":551,"runs":[527,23,1]},"entrance:58849":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:589":{"rank":551,"runs":[527,23,1]},"entrance:58993":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:59":{"rank":551,"runs":[527,23,1]},"entrance:590":{"rank":551,"runs":[527,23,1]},"entrance:591":{"rank":551,"runs":[527,23,1]},"entrance:59139":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:592":{"rank":551,"runs":[527,23,1]},"entrance:59283":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:593":{"rank":551,"runs":[527,23,1]},"entrance:594":{"rank":551,"runs":[527,23,1]},"entrance:59429":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:595":{"rank":551,"runs":[527,23,1]},"entrance:59520":{"rank":552,"runs":[528,21,1,1,1]},"entrance:596":{"rank":551,"runs":[527,23,1]},"entrance:59638":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:59639":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:59640":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:59641":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:59642":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:59643":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:59644":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:59645":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:59646":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:59647":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:59648":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:59649":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:597":{"rank":551,"runs":[527,23,1]},"entrance:598":{"rank":551,"runs":[527,23,1]},"entrance:599":{"rank":551,"runs":[527,23,1]},"entrance:6":{"rank":551,"runs":[527,23,1]},"entrance:60":{"rank":551,"runs":[527,23,1]},"entrance:600":{"rank":551,"runs":[527,23,1]},"entrance:601":{"rank":551,"runs":[527,23,1]},"entrance:60144":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:602":{"rank":551,"runs":[527,23,1]},"entrance:60202":{"rank":552,"runs":[528,21,1,1,1]},"entrance:60203":{"rank":552,"runs":[528,21,1,1,1]},"entrance:60208":{"rank":552,"runs":[528,21,1,1,1]},"entrance:60209":{"rank":552,"runs":[528,21,1,1,1]},"entrance:60210":{"rank":554,"runs":[530,19,3,1,1]},"entrance:60216":{"rank":554,"runs":[530,16,3,2,1,1,1]},"entrance:60227":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:60228":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:60237":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:60238":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:60244":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:60245":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:60248":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:60249":{"rank":556,"runs":[532,17,5,1,1]},"entrance:60252":{"rank":556,"runs":[532,16,4,1,1,1,1]},"entrance:60253":{"rank":556,"runs":[532,18,5,1]},"entrance:60256":{"rank":556,"runs":[532,16,4,1,1,1,1]},"entrance:60257":{"rank":556,"runs":[532,16,4,1,1,1,1]},"entrance:60264":{"rank":560,"runs":[536,13,7,2,1,1]},"entrance:60269":{"rank":562,"runs":[538,10,5,4,1,1,1,1,1]},"entrance:60270":{"rank":568,"runs":[544,10,7,5,1,1]},"entrance:60274":{"rank":564,"runs":[533,6,6,5,4,3,2,2,1,1,1]},"entrance:60276":{"rank":560,"runs":[536,14,9,1]},"entrance:60278":{"rank":568,"runs":[541,7,6,4,4,3,1,1,1]},"entrance:60279":{"rank":564,"runs":[532,8,7,7,4,1,1,1,1,1,1]},"entrance:60280":{"rank":566,"runs":[543,7,7,6,1,1,1]},"entrance:603":{"rank":551,"runs":[527,23,1]},"entrance:60301":{"rank":566,"runs":[543,7,7,5,2,1,1]},"entrance:60302":{"rank":566,"runs":[539,7,4,4,4,3,2,1,1,1]},"entrance:60311":{"rank":566,"runs":[538,5,4,4,4,3,3,1,1,1,1,1]},"entrance:60312":{"rank":566,"runs":[534,8,8,4,3,3,1,1,1,1,1,1]},"entrance:60322":{"rank":566,"runs":[534,6,6,5,3,3,3,3,1,1,1]},"entrance:60333":{"rank":568,"runs":[539,6,6,5,5,3,2,1,1]},"entrance:60334":{"rank":568,"runs":[535,10,10,5,3,2,1,1,1]},"entrance:60336":{"rank":569,"runs":[546,10,7,4,1,1]},"entrance:60337":{"rank":569,"runs":[546,10,7,4,1,1]},"entrance:60338":{"rank":569,"runs":[546,7,6,4,4,1,1]},"entrance:60339":{"rank":569,"runs":[546,7,6,4,4,1,1]},"entrance:60342":{"rank":569,"runs":[546,8,7,4,2,1,1]},"entrance:60343":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:60344":{"rank":569,"runs":[546,8,7,4,2,1,1]},"entrance:60345":{"rank":569,"runs":[545,12,4,3,1,1,1,1,1]},"entrance:60348":{"rank":569,"runs":[543,14,3,3,3,1,1,1]},"entrance:60349":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:60350":{"rank":569,"runs":[543,14,3,3,3,1,1,1]},"entrance:60351":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:60352":{"rank":566,"runs":[538,9,3,3,3,3,2,2,1,1,1]},"entrance:60353":{"rank":568,"runs":[543,9,5,3,2,2,2,1,1]},"entrance:60354":{"rank":566,"runs":[542,13,5,2,1,1,1,1]},"entrance:60355":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:60381":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:60387":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:60388":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:604":{"rank":551,"runs":[527,23,1]},"entrance:60418":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:60424":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:60425":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:60456":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:60462":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:60463":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:60494":{"rank":571,"runs":[548,7,6,6,2,1,1]},"entrance:605":{"rank":551,"runs":[527,23,1]},"entrance:60500":{"rank":571,"runs":[548,7,6,6,2,1,1]},"entrance:60501":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:60533":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:60539":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:60540":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:60572":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:60578":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:60579":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:606":{"rank":551,"runs":[527,23,1]},"entrance:60612":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:60618":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:60619":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:60652":{"rank":571,"runs":[547,14,4,1,1,1,1,1,1]},"entrance:60658":{"rank":571,"runs":[547,14,4,1,1,1,1,1,1]},"entrance:60659":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:60693":{"rank":571,"runs":[545,14,3,3,2,1,1,1,1]},"entrance:60699":{"rank":571,"runs":[545,14,3,3,2,1,1,1,1]},"entrance:607":{"rank":551,"runs":[527,23,1]},"entrance:60700":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:60734":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:60740":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:60746":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:60747":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:60748":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:60749":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:60750":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:60751":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:60752":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:60753":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:60754":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:60755":{"rank":570,"runs":[534,12,12,4,1,1,1,1,1,1,1,1]},"entrance:60756":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:60757":{"rank":570,"runs":[536,10,10,4,3,1,1,1,1,1,1,1]},"entrance:60758":{"rank":570,"runs":[532,12,12,3,3,2,1,1,1,1,1,1]},"entrance:60760":{"rank":570,"runs":[534,10,10,3,3,3,2,1,1,1,1,1]},"entrance:60761":{"rank":570,"runs":[532,10,10,5,5,3,1,1,1,1,1]},"entrance:60762":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:60763":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:60764":{"rank":570,"runs":[547,7,7,4,3,1,1]},"entrance:60765":{"rank":570,"runs":[545,7,7,2,2,2,2,1,1,1]},"entrance:60766":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:60767":{"rank":570,"runs":[538,8,8,5,4,1,1,1,1,1,1,1]},"entrance:60768":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:60769":{"rank":570,"runs":[540,7,6,6,4,1,1,1,1,1,1,1]},"entrance:60770":{"rank":570,"runs":[536,8,8,5,3,3,2,1,1,1,1,1]},"entrance:60771":{"rank":570,"runs":[534,8,8,5,5,5,1,1,1,1,1]},"entrance:60772":{"rank":570,"runs":[538,7,6,6,3,3,2,1,1,1,1,1]},"entrance:60773":{"rank":570,"runs":[536,7,6,6,5,5,1,1,1,1,1]},"entrance:60774":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:60775":{"rank":570,"runs":[542,9,4,4,4,1,1,1,1,1,1,1]},"entrance:60776":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:60777":{"rank":570,"runs":[544,11,4,2,2,1,1,1,1,1,1,1]},"entrance:60778":{"rank":570,"runs":[540,9,4,4,3,3,2,1,1,1,1,1]},"entrance:60779":{"rank":570,"runs":[538,9,5,5,4,4,1,1,1,1,1]},"entrance:60780":{"rank":570,"runs":[542,11,3,3,2,2,2,1,1,1,1,1]},"entrance:60781":{"rank":570,"runs":[540,11,5,5,2,2,1,1,1,1,1]},"entrance:60782":{"rank":570,"runs":[544,13,3,3,2,2,1,1,1]},"entrance:60783":{"rank":570,"runs":[542,13,5,5,2,1,1,1]},"entrance:60784":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:60785":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:608":{"rank":551,"runs":[527,23,1]},"entrance:60865":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:609":{"rank":551,"runs":[527,23,1]},"entrance:61":{"rank":551,"runs":[527,23,1]},"entrance:610":{"rank":551,"runs":[527,23,1]},"entrance:61011":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:611":{"rank":551,"runs":[527,23,1]},"entrance:61155":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:612":{"rank":551,"runs":[527,23,1]},"entrance:613":{"rank":551,"runs":[527,23,1]},"entrance:61301":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:614":{"rank":551,"runs":[527,23,1]},"entrance:61445":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:615":{"rank":551,"runs":[527,23,1]},"entrance:61591":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:616":{"rank":551,"runs":[527,23,1]},"entrance:617":{"rank":551,"runs":[527,23,1]},"entrance:61735":{"rank":570,"runs":[546,13,4,2,1,1,1,1,1]},"entrance:618":{"rank":551,"runs":[527,23,1]},"entrance:61816":{"rank":554,"runs":[530,19,3,1,1]},"entrance:61825":{"rank":552,"runs":[528,22,1,1]},"entrance:61828":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:61840":{"rank":558,"runs":[531,11,4,4,3,3,1,1]},"entrance:61888":{"rank":566,"runs":[531,12,11,4,3,3,1,1]},"entrance:619":{"rank":551,"runs":[527,23,1]},"entrance:61927":{"rank":570,"runs":[546,13,4,2,1,1,1,1,1]},"entrance:61952":{"rank":552,"runs":[528,22,1,1]},"entrance:61963":{"rank":554,"runs":[530,20,3,1]},"entrance:61974":{"rank":556,"runs":[532,18,5,1]},"entrance:61985":{"rank":558,"runs":[534,16,7,1]},"entrance:61996":{"rank":560,"runs":[536,14,9,1]},"entrance:62":{"rank":551,"runs":[527,23,1]},"entrance:620":{"rank":551,"runs":[527,23,1]},"entrance:62007":{"rank":562,"runs":[538,12,11,1]},"entrance:62018":{"rank":564,"runs":[540,13,10,1]},"entrance:62029":{"rank":566,"runs":[542,15,8,1]},"entrance:62040":{"rank":568,"runs":[543,15,3,2,2,1,1,1]},"entrance:62051":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:62080":{"rank":552,"runs":[528,22,1,1]},"entrance:621":{"rank":551,"runs":[527,23,1]},"entrance:62180":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:622":{"rank":551,"runs":[527,23,1]},"entrance:62208":{"rank":552,"runs":[528,22,1,1]},"entrance:62219":{"rank":554,"runs":[530,20,3,1]},"entrance:62230":{"rank":556,"runs":[532,18,5,1]},"entrance:62241":{"rank":558,"runs":[534,16,7,1]},"entrance:62252":{"rank":560,"runs":[536,14,9,1]},"entrance:62263":{"rank":562,"runs":[538,12,11,1]},"entrance:62274":{"rank":564,"runs":[540,13,10,1]},"entrance:62285":{"rank":566,"runs":[542,15,8,1]},"entrance:62296":{"rank":568,"runs":[543,15,4,2,1,1,1,1]},"entrance:623":{"rank":551,"runs":[527,23,1]},"entrance:62307":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:62337":{"rank":552,"runs":[528,22,1,1]},"entrance:624":{"rank":551,"runs":[527,23,1]},"entrance:62437":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:62466":{"rank":552,"runs":[528,22,1,1]},"entrance:62477":{"rank":554,"runs":[530,20,3,1]},"entrance:62488":{"rank":556,"runs":[532,18,5,1]},"entrance:62499":{"rank":558,"runs":[534,16,7,1]},"entrance:625":{"rank":551,"runs":[527,23,1]},"entrance:62510":{"rank":560,"runs":[536,14,9,1]},"entrance:62521":{"rank":562,"runs":[538,12,11,1]},"entrance:62532":{"rank":564,"runs":[540,13,10,1]},"entrance:62543":{"rank":566,"runs":[542,15,8,1]},"entrance:62554":{"rank":568,"runs":[543,15,4,2,1,1,1,1]},"entrance:62565":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:62585":{"rank":552,"runs":[528,21,1,1,1]},"entrance:626":{"rank":551,"runs":[527,23,1]},"entrance:62694":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:62695":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:62696":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:62697":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:62698":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:62699":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:627":{"rank":551,"runs":[527,23,1]},"entrance:62700":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:62701":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:62702":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:62703":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:62704":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:62705":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:62715":{"rank":552,"runs":[528,21,1,1,1]},"entrance:628":{"rank":551,"runs":[527,23,1]},"entrance:62824":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:62825":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:62826":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:62827":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:62828":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:62829":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:62830":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:62831":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:62832":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:62833":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:62834":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:62835":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:629":{"rank":551,"runs":[527,23,1]},"entrance:63":{"rank":551,"runs":[527,23,1]},"entrance:630":{"rank":551,"runs":[527,23,1]},"entrance:6305":{"rank":552,"runs":[528,21,1,1,1]},"entrance:631":{"rank":551,"runs":[527,23,1]},"entrance:6315":{"rank":552,"runs":[529,21,1,1]},"entrance:6316":{"rank":552,"runs":[528,21,1,1,1]},"entrance:632":{"rank":551,"runs":[527,23,1]},"entrance:6326":{"rank":552,"runs":[529,21,1,1]},"entrance:633":{"rank":551,"runs":[527,23,1]},"entrance:63324":{"rank":554,"runs":[530,19,3,1,1]},"entrance:63348":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:634":{"rank":551,"runs":[527,23,1]},"entrance:63481":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:63495":{"rank":566,"runs":[533,10,9,5,5,2,1,1]},"entrance:63497":{"rank":562,"runs":[538,9,5,4,2,1,1,1,1]},"entrance:635":{"rank":551,"runs":[527,23,1]},"entrance:63502":{"rank":564,"runs":[533,8,8,6,3,3,1,1,1]},"entrance:63504":{"rank":560,"runs":[535,11,5,2,2,2,1,1,1]},"entrance:63506":{"rank":568,"runs":[532,12,11,4,2,2,1,1,1,1,1]},"entrance:63507":{"rank":564,"runs":[537,8,6,4,3,3,1,1,1]},"entrance:63508":{"rank":566,"runs":[542,13,6,1,1,1,1,1]},"entrance:63527":{"rank":566,"runs":[542,9,5,4,2,1,1,1,1]},"entrance:63528":{"rank":566,"runs":[538,9,3,3,3,3,2,2,1,1,1]},"entrance:63537":{"rank":566,"runs":[538,5,4,4,4,3,2,2,1,1,1,1]},"entrance:63538":{"rank":566,"runs":[534,7,7,5,3,3,2,2,1,1,1]},"entrance:6354":{"rank":552,"runs":[529,21,1,1]},"entrance:63548":{"rank":566,"runs":[534,8,8,4,3,2,2,1,1,1,1,1]},"entrance:6355":{"rank":552,"runs":[529,21,1,1]},"entrance:63559":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:63560":{"rank":568,"runs":[543,15,4,2,1,1,1,1]},"entrance:63562":{"rank":569,"runs":[544,15,3,2,2,1,1,1]},"entrance:63563":{"rank":569,"runs":[544,15,3,2,2,1,1,1]},"entrance:63564":{"rank":569,"runs":[545,12,4,2,2,1,1,1,1]},"entrance:63565":{"rank":569,"runs":[545,12,4,2,2,1,1,1,1]},"entrance:63568":{"rank":569,"runs":[546,8,6,4,3,1,1]},"entrance:63569":{"rank":569,"runs":[546,7,6,4,4,1,1]},"entrance:63570":{"rank":569,"runs":[546,8,6,4,3,1,1]},"entrance:63571":{"rank":569,"runs":[546,7,6,4,4,1,1]},"entrance:63574":{"rank":569,"runs":[546,11,6,4,1,1]},"entrance:63575":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:63576":{"rank":569,"runs":[546,11,6,4,1,1]},"entrance:63577":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:63578":{"rank":566,"runs":[539,6,4,4,4,3,3,1,1,1]},"entrance:63579":{"rank":568,"runs":[543,9,5,3,2,2,2,1,1]},"entrance:63580":{"rank":566,"runs":[543,7,7,6,1,1,1]},"entrance:63581":{"rank":568,"runs":[539,6,6,5,5,3,2,1,1]},"entrance:636":{"rank":551,"runs":[527,23,1]},"entrance:63607":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"entrance:63613":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"entrance:63614":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:63644":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"entrance:63650":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"entrance:63651":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:63682":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:63688":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:63689":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:637":{"rank":551,"runs":[527,23,1]},"entrance:63720":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:63726":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:63727":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:63759":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:63765":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:63766":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:63798":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:638":{"rank":551,"runs":[527,23,1]},"entrance:63804":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:63805":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:6381":{"rank":552,"runs":[529,21,1,1]},"entrance:6382":{"rank":552,"runs":[529,21,1,1]},"entrance:63838":{"rank":571,"runs":[548,7,6,6,2,1,1]},"entrance:63844":{"rank":571,"runs":[548,7,6,6,2,1,1]},"entrance:63845":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:63878":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:63884":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:63885":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:639":{"rank":551,"runs":[527,23,1]},"entrance:63919":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:63925":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:63926":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:63960":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:63966":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:63972":{"rank":570,"runs":[545,16,2,2,2,1,1,1]},"entrance:63973":{"rank":570,"runs":[542,13,4,4,1,1,1,1,1,1,1]},"entrance:63974":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:63975":{"rank":570,"runs":[544,13,2,2,2,1,1,1,1,1,1,1]},"entrance:63976":{"rank":570,"runs":[540,11,4,4,3,3,1,1,1,1,1]},"entrance:63977":{"rank":570,"runs":[538,9,5,5,4,4,1,1,1,1,1]},"entrance:63978":{"rank":570,"runs":[542,11,3,3,2,2,2,1,1,1,1,1]},"entrance:63979":{"rank":570,"runs":[540,9,5,5,2,2,2,1,1,1,1,1]},"entrance:63980":{"rank":570,"runs":[536,7,7,7,4,4,1,1,1,1,1]},"entrance:63981":{"rank":570,"runs":[534,9,9,5,4,4,1,1,1,1,1]},"entrance:63982":{"rank":570,"runs":[538,7,7,7,2,2,2,1,1,1,1,1]},"entrance:63983":{"rank":570,"runs":[536,9,9,5,2,2,2,1,1,1,1,1]},"entrance:63984":{"rank":570,"runs":[532,11,11,4,4,3,1,1,1,1,1]},"entrance:63986":{"rank":570,"runs":[534,11,11,3,2,2,2,1,1,1,1,1]},"entrance:63987":{"rank":570,"runs":[532,13,13,2,2,2,1,1,1,1,1,1]},"entrance:63988":{"rank":570,"runs":[544,11,4,3,3,2,1,1,1]},"entrance:63989":{"rank":570,"runs":[542,9,5,5,4,2,1,1,1]},"entrance:63990":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:63991":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:63992":{"rank":570,"runs":[540,7,7,7,4,2,1,1,1]},"entrance:63993":{"rank":570,"runs":[538,9,9,5,4,2,1,1,1]},"entrance:63994":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:63995":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:63996":{"rank":570,"runs":[536,11,11,4,3,2,1,1,1]},"entrance:63997":{"rank":570,"runs":[534,13,13,4,2,1,1,1,1]},"entrance:63998":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:63999":{"rank":570,"runs":[537,10,10,6,2,1,1,1,1,1]},"entrance:64":{"rank":551,"runs":[527,23,1]},"entrance:640":{"rank":551,"runs":[527,23,1]},"entrance:64000":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:64001":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:64002":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:64003":{"rank":570,"runs":[545,6,5,5,2,2,2,1,1,1]},"entrance:64004":{"rank":570,"runs":[541,6,6,6,3,3,2,1,1,1]},"entrance:64005":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:64006":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:64007":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:64008":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:64009":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:64010":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:64011":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:64022":{"rank":552,"runs":[528,22,1,1]},"entrance:6405":{"rank":552,"runs":[529,21,1,1]},"entrance:6406":{"rank":552,"runs":[529,21,1,1]},"entrance:641":{"rank":551,"runs":[527,23,1]},"entrance:64121":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:64130":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:64142":{"rank":552,"runs":[528,22,1,1]},"entrance:642":{"rank":551,"runs":[527,23,1]},"entrance:64252":{"rank":552,"runs":[528,21,1,1,1]},"entrance:6426":{"rank":552,"runs":[529,21,1,1]},"entrance:64263":{"rank":552,"runs":[528,22,1,1]},"entrance:6427":{"rank":552,"runs":[529,21,1,1]},"entrance:64274":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:64285":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:643":{"rank":551,"runs":[527,23,1]},"entrance:64362":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:64371":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:64373":{"rank":552,"runs":[528,21,1,1,1]},"entrance:64384":{"rank":552,"runs":[528,22,1,1]},"entrance:644":{"rank":551,"runs":[527,23,1]},"entrance:6444":{"rank":552,"runs":[529,21,1,1]},"entrance:6445":{"rank":552,"runs":[529,21,1,1]},"entrance:64494":{"rank":552,"runs":[528,21,1,1,1]},"entrance:645":{"rank":551,"runs":[527,23,1]},"entrance:64506":{"rank":552,"runs":[528,22,1,1]},"entrance:64517":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:64528":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:64539":{"rank":558,"runs":[533,11,4,3,2,2,1,1,1]},"entrance:64550":{"rank":560,"runs":[533,9,4,4,4,3,1,1,1]},"entrance:64561":{"rank":562,"runs":[533,7,6,6,4,3,1,1,1]},"entrance:64572":{"rank":564,"runs":[533,8,8,5,4,3,1,1,1]},"entrance:64583":{"rank":566,"runs":[533,10,10,4,3,3,1,1,1]},"entrance:6459":{"rank":552,"runs":[529,21,1,1]},"entrance:64594":{"rank":568,"runs":[533,12,12,4,3,1,1,1,1]},"entrance:646":{"rank":551,"runs":[527,23,1]},"entrance:6460":{"rank":552,"runs":[529,21,1,1]},"entrance:64605":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:64612":{"rank":570,"runs":[546,13,4,2,1,1,1,1,1]},"entrance:64616":{"rank":552,"runs":[528,21,1,1,1]},"entrance:64628":{"rank":552,"runs":[528,22,1,1]},"entrance:647":{"rank":551,"runs":[527,23,1]},"entrance:6471":{"rank":552,"runs":[529,21,1,1]},"entrance:6472":{"rank":552,"runs":[529,21,1,1]},"entrance:64799":{"rank":570,"runs":[546,13,4,2,1,1,1,1,1]},"entrance:648":{"rank":551,"runs":[527,23,1]},"entrance:6480":{"rank":552,"runs":[529,21,1,1]},"entrance:6481":{"rank":552,"runs":[529,21,1,1]},"entrance:6486":{"rank":552,"runs":[529,21,1,1]},"entrance:6487":{"rank":552,"runs":[529,21,1,1]},"entrance:6489":{"rank":552,"runs":[529,21,1,1]},"entrance:649":{"rank":551,"runs":[527,23,1]},"entrance:6490":{"rank":552,"runs":[529,21,1,1]},"entrance:6492":{"rank":554,"runs":[530,19,3,1,1]},"entrance:64943":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:6497":{"rank":554,"runs":[530,19,3,1,1]},"entrance:65":{"rank":551,"runs":[527,23,1]},"entrance:650":{"rank":551,"runs":[527,23,1]},"entrance:65089":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:651":{"rank":551,"runs":[527,23,1]},"entrance:652":{"rank":551,"runs":[527,23,1]},"entrance:65233":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:653":{"rank":551,"runs":[527,23,1]},"entrance:6537":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:65379":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:654":{"rank":551,"runs":[527,23,1]},"entrance:655":{"rank":551,"runs":[527,23,1]},"entrance:65523":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:6553":{"rank":566,"runs":[542,15,7,1,1]},"entrance:656":{"rank":551,"runs":[527,23,1]},"entrance:6562":{"rank":560,"runs":[535,12,7,2,1,1,1,1]},"entrance:6564":{"rank":568,"runs":[533,12,12,4,3,2,1,1]},"entrance:65669":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:6568":{"rank":558,"runs":[534,15,7,1,1]},"entrance:657":{"rank":551,"runs":[527,23,1]},"entrance:6575":{"rank":566,"runs":[542,15,7,1,1]},"entrance:65760":{"rank":552,"runs":[528,21,1,1,1]},"entrance:658":{"rank":551,"runs":[527,23,1]},"entrance:65878":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:65879":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:65880":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:65881":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:65882":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:65883":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:65884":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:65885":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:65886":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:65887":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:65888":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:65889":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:659":{"rank":551,"runs":[527,23,1]},"entrance:66":{"rank":551,"runs":[527,23,1]},"entrance:660":{"rank":551,"runs":[527,23,1]},"entrance:661":{"rank":551,"runs":[527,23,1]},"entrance:6612":{"rank":566,"runs":[535,8,8,4,4,3,2,1,1]},"entrance:6613":{"rank":566,"runs":[531,12,12,4,3,2,1,1]},"entrance:662":{"rank":551,"runs":[527,23,1]},"entrance:6623":{"rank":568,"runs":[531,14,13,4,3,1,1,1]},"entrance:6626":{"rank":569,"runs":[529,17,17,3,1,1,1]},"entrance:6627":{"rank":569,"runs":[530,16,16,3,1,1,1,1]},"entrance:6628":{"rank":569,"runs":[533,13,13,4,3,1,1,1]},"entrance:6629":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"entrance:663":{"rank":551,"runs":[527,23,1]},"entrance:6632":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"entrance:6633":{"rank":569,"runs":[541,12,5,5,3,1,1,1]},"entrance:6634":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"entrance:6635":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"entrance:6638":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:66384":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:6639":{"rank":571,"runs":[547,20,2,1,1]},"entrance:664":{"rank":551,"runs":[527,23,1]},"entrance:6640":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:6641":{"rank":571,"runs":[547,19,1,1,1,1,1]},"entrance:6642":{"rank":566,"runs":[539,8,4,4,4,3,2,1,1]},"entrance:6643":{"rank":568,"runs":[535,10,9,7,4,1,1,1]},"entrance:66444":{"rank":552,"runs":[528,21,1,1,1]},"entrance:66445":{"rank":552,"runs":[528,21,1,1,1]},"entrance:66446":{"rank":554,"runs":[530,19,3,1,1]},"entrance:66452":{"rank":554,"runs":[530,18,2,1,1,1,1]},"entrance:66463":{"rank":556,"runs":[531,16,3,2,1,1,1,1]},"entrance:66464":{"rank":556,"runs":[531,14,3,3,2,1,1,1]},"entrance:66473":{"rank":556,"runs":[531,12,5,3,2,1,1,1]},"entrance:66474":{"rank":556,"runs":[531,10,7,3,2,1,1,1]},"entrance:66480":{"rank":556,"runs":[531,9,8,3,2,1,1,1]},"entrance:66481":{"rank":556,"runs":[531,11,6,3,2,1,1,1]},"entrance:66484":{"rank":556,"runs":[531,13,4,3,2,1,1,1]},"entrance:66485":{"rank":556,"runs":[531,15,3,2,2,1,1,1]},"entrance:66488":{"rank":556,"runs":[532,18,5,1]},"entrance:66489":{"rank":556,"runs":[532,18,5,1]},"entrance:66492":{"rank":556,"runs":[532,18,5,1]},"entrance:66493":{"rank":556,"runs":[532,18,5,1]},"entrance:66499":{"rank":560,"runs":[533,9,5,4,4,3,1,1]},"entrance:665":{"rank":551,"runs":[527,23,1]},"entrance:66500":{"rank":560,"runs":[536,13,5,4,1,1]},"entrance:66505":{"rank":562,"runs":[539,11,5,5,1,1]},"entrance:66506":{"rank":568,"runs":[544,12,5,5,1,1]},"entrance:66510":{"rank":564,"runs":[533,8,7,6,5,3,1,1]},"entrance:66512":{"rank":560,"runs":[536,14,9,1]},"entrance:66514":{"rank":568,"runs":[541,8,5,4,4,3,1,1,1]},"entrance:66515":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:66516":{"rank":566,"runs":[543,8,7,5,1,1,1]},"entrance:66537":{"rank":566,"runs":[543,7,5,5,4,1,1]},"entrance:66538":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:66547":{"rank":566,"runs":[539,5,5,4,4,4,3,1,1]},"entrance:66548":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:66558":{"rank":566,"runs":[534,8,8,5,3,3,1,1,1,1,1]},"entrance:66569":{"rank":568,"runs":[537,8,8,5,3,3,2,1,1]},"entrance:66570":{"rank":568,"runs":[533,12,12,3,3,2,1,1,1]},"entrance:66572":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:66573":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:66574":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:66575":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:66578":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:66579":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:66580":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:66581":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:66584":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:66585":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:66586":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:66587":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:66588":{"rank":566,"runs":[538,9,4,4,3,3,1,1,1,1,1]},"entrance:66589":{"rank":568,"runs":[541,9,4,4,3,3,2,1,1]},"entrance:66590":{"rank":566,"runs":[542,13,4,3,1,1,1,1]},"entrance:66591":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:666":{"rank":551,"runs":[527,23,1]},"entrance:66617":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:66623":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:66624":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:66654":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:66660":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:66661":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:66692":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:66698":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:66699":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:667":{"rank":551,"runs":[527,23,1]},"entrance:6671":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"entrance:66730":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:66736":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:66737":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:66769":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:6677":{"rank":571,"runs":[529,19,19,1,1,1,1]},"entrance:66775":{"rank":571,"runs":[548,8,6,5,2,1,1]},"entrance:66776":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:668":{"rank":551,"runs":[527,23,1]},"entrance:66808":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:66814":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:66815":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:66848":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:66854":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:66855":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:66888":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:66894":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:66895":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:669":{"rank":551,"runs":[527,23,1]},"entrance:66929":{"rank":571,"runs":[547,16,2,1,1,1,1,1,1]},"entrance:66935":{"rank":571,"runs":[547,16,2,1,1,1,1,1,1]},"entrance:66936":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:66970":{"rank":571,"runs":[545,16,3,3,1,1,1,1]},"entrance:66976":{"rank":571,"runs":[545,16,3,3,1,1,1,1]},"entrance:66982":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:66983":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:66984":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:66985":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:66986":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:66987":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:66988":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:66989":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:66990":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:66991":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:66992":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:66993":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:66994":{"rank":570,"runs":[532,14,14,2,1,1,1,1,1,1,1,1]},"entrance:66996":{"rank":570,"runs":[534,12,12,3,2,1,1,1,1,1,1,1]},"entrance:66997":{"rank":570,"runs":[532,12,12,3,3,3,1,1,1,1,1]},"entrance:66998":{"rank":570,"runs":[545,6,5,5,2,2,2,1,1,1]},"entrance:66999":{"rank":570,"runs":[543,5,5,4,4,4,2,1,1,1]},"entrance:67":{"rank":551,"runs":[527,23,1]},"entrance:670":{"rank":551,"runs":[527,23,1]},"entrance:67000":{"rank":570,"runs":[547,7,6,5,3,1,1]},"entrance:67001":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:67002":{"rank":570,"runs":[541,6,6,5,5,2,2,1,1,1]},"entrance:67003":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:67004":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:67005":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:67006":{"rank":570,"runs":[536,10,10,5,2,1,1,1,1,1,1,1]},"entrance:67007":{"rank":570,"runs":[534,10,10,5,3,3,1,1,1,1,1]},"entrance:67008":{"rank":570,"runs":[538,8,8,7,2,1,1,1,1,1,1,1]},"entrance:67009":{"rank":570,"runs":[536,8,8,7,3,3,1,1,1,1,1]},"entrance:67010":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:67011":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:67012":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:67013":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:67014":{"rank":570,"runs":[540,9,6,6,2,1,1,1,1,1,1,1]},"entrance:67015":{"rank":570,"runs":[538,9,6,6,3,3,1,1,1,1,1]},"entrance:67016":{"rank":570,"runs":[542,11,4,4,2,1,1,1,1,1,1,1]},"entrance:67017":{"rank":570,"runs":[540,11,4,4,3,3,1,1,1,1,1]},"entrance:67018":{"rank":570,"runs":[544,13,2,2,2,1,1,1,1,1,1,1]},"entrance:67019":{"rank":570,"runs":[542,13,3,3,2,2,1,1,1,1,1]},"entrance:67020":{"rank":570,"runs":[546,15,2,2,1,1,1,1,1]},"entrance:67021":{"rank":570,"runs":[544,15,3,3,2,1,1,1]},"entrance:6708":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"entrance:671":{"rank":551,"runs":[527,23,1]},"entrance:67101":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:6714":{"rank":571,"runs":[531,17,17,2,1,1,1,1]},"entrance:6715":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:672":{"rank":551,"runs":[527,23,1]},"entrance:67247":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:673":{"rank":551,"runs":[527,23,1]},"entrance:67391":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:674":{"rank":551,"runs":[527,23,1]},"entrance:6746":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"entrance:675":{"rank":551,"runs":[527,23,1]},"entrance:6752":{"rank":571,"runs":[533,15,15,4,1,1,1,1]},"entrance:6753":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:67537":{"rank":570,"runs":[547,8,5,5,3,1,1]},"entrance:676":{"rank":551,"runs":[527,23,1]},"entrance:67681":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:677":{"rank":551,"runs":[527,23,1]},"entrance:678":{"rank":551,"runs":[527,23,1]},"entrance:67827":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:6784":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"entrance:679":{"rank":551,"runs":[527,23,1]},"entrance:6790":{"rank":571,"runs":[535,13,13,6,1,1,1,1]},"entrance:6791":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:67971":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:68":{"rank":551,"runs":[527,23,1]},"entrance:680":{"rank":551,"runs":[527,23,1]},"entrance:681":{"rank":551,"runs":[527,23,1]},"entrance:68117":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:682":{"rank":551,"runs":[527,23,1]},"entrance:68208":{"rank":552,"runs":[528,22,1,1]},"entrance:6823":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"entrance:6829":{"rank":571,"runs":[537,11,11,8,1,1,1,1]},"entrance:683":{"rank":551,"runs":[527,23,1]},"entrance:6830":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:68308":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:68336":{"rank":552,"runs":[528,22,1,1]},"entrance:68347":{"rank":554,"runs":[530,20,3,1]},"entrance:68358":{"rank":556,"runs":[532,18,5,1]},"entrance:68369":{"rank":558,"runs":[534,16,7,1]},"entrance:68380":{"rank":560,"runs":[536,14,9,1]},"entrance:68391":{"rank":562,"runs":[538,12,11,1]},"entrance:684":{"rank":551,"runs":[527,23,1]},"entrance:68402":{"rank":564,"runs":[540,13,10,1]},"entrance:68413":{"rank":566,"runs":[542,15,8,1]},"entrance:68424":{"rank":568,"runs":[544,17,6,1]},"entrance:68435":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:68465":{"rank":552,"runs":[528,22,1,1]},"entrance:685":{"rank":551,"runs":[527,23,1]},"entrance:68565":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:68594":{"rank":552,"runs":[528,22,1,1]},"entrance:686":{"rank":551,"runs":[527,23,1]},"entrance:68605":{"rank":554,"runs":[530,20,3,1]},"entrance:68616":{"rank":556,"runs":[532,18,5,1]},"entrance:6862":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"entrance:68627":{"rank":558,"runs":[534,16,7,1]},"entrance:68638":{"rank":560,"runs":[536,14,9,1]},"entrance:68649":{"rank":562,"runs":[538,12,11,1]},"entrance:68660":{"rank":564,"runs":[540,13,10,1]},"entrance:68671":{"rank":566,"runs":[542,15,8,1]},"entrance:6868":{"rank":571,"runs":[539,10,9,9,1,1,1,1]},"entrance:68682":{"rank":568,"runs":[544,17,6,1]},"entrance:6869":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:68693":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:687":{"rank":551,"runs":[527,23,1]},"entrance:68713":{"rank":552,"runs":[528,21,1,1,1]},"entrance:688":{"rank":551,"runs":[527,23,1]},"entrance:68822":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:68823":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:68824":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:68825":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:68826":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:68827":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:68828":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:68829":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:68830":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:68831":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:68832":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:68833":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:68843":{"rank":552,"runs":[528,21,1,1,1]},"entrance:689":{"rank":551,"runs":[527,23,1]},"entrance:68952":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:68953":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:68954":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:68955":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:68956":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:68957":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:68958":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:68959":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:68960":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:68961":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:68962":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:68963":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:69":{"rank":551,"runs":[527,23,1]},"entrance:690":{"rank":551,"runs":[527,23,1]},"entrance:6902":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"entrance:6908":{"rank":571,"runs":[541,12,7,7,1,1,1,1]},"entrance:6909":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:691":{"rank":551,"runs":[527,23,1]},"entrance:692":{"rank":551,"runs":[527,23,1]},"entrance:693":{"rank":551,"runs":[527,23,1]},"entrance:694":{"rank":551,"runs":[527,23,1]},"entrance:6942":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"entrance:69452":{"rank":554,"runs":[530,19,3,1,1]},"entrance:69476":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:6948":{"rank":571,"runs":[543,14,5,5,1,1,1,1]},"entrance:6949":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:695":{"rank":551,"runs":[527,23,1]},"entrance:69595":{"rank":556,"runs":[533,17,3,1,1,1]},"entrance:696":{"rank":551,"runs":[527,23,1]},"entrance:69609":{"rank":566,"runs":[531,12,11,5,3,2,1,1]},"entrance:69611":{"rank":562,"runs":[539,11,5,4,1,1,1]},"entrance:69616":{"rank":564,"runs":[533,8,8,6,3,3,1,1,1]},"entrance:69618":{"rank":560,"runs":[533,11,4,4,3,2,1,1,1]},"entrance:69620":{"rank":568,"runs":[533,12,11,4,4,1,1,1,1]},"entrance:69621":{"rank":564,"runs":[537,8,5,4,4,3,1,1,1]},"entrance:69622":{"rank":566,"runs":[542,13,4,3,1,1,1,1]},"entrance:69641":{"rank":566,"runs":[543,9,7,4,1,1,1]},"entrance:69642":{"rank":566,"runs":[538,9,5,5,4,3,1,1]},"entrance:69651":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:69652":{"rank":566,"runs":[534,9,9,5,4,3,1,1]},"entrance:69662":{"rank":566,"runs":[535,8,8,4,4,3,1,1,1,1]},"entrance:69673":{"rank":568,"runs":[545,13,5,3,1,1]},"entrance:69674":{"rank":568,"runs":[544,17,6,1]},"entrance:69676":{"rank":569,"runs":[546,17,4,1,1]},"entrance:69677":{"rank":569,"runs":[546,17,4,1,1]},"entrance:69678":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:69679":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:69682":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:69683":{"rank":569,"runs":[546,9,4,4,4,1,1]},"entrance:69684":{"rank":569,"runs":[546,8,5,4,4,1,1]},"entrance:69685":{"rank":569,"runs":[546,9,4,4,4,1,1]},"entrance:69688":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:69689":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:69690":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:69691":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:69692":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:69693":{"rank":568,"runs":[541,9,4,4,3,3,2,1,1]},"entrance:69694":{"rank":566,"runs":[543,9,7,4,1,1,1]},"entrance:69695":{"rank":568,"runs":[537,8,8,5,3,3,2,1,1]},"entrance:697":{"rank":551,"runs":[527,23,1]},"entrance:69721":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"entrance:69727":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"entrance:69728":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:69758":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:69764":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:69765":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:69796":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:698":{"rank":551,"runs":[527,23,1]},"entrance:69802":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:69803":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:6983":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"entrance:69834":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:69840":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:69841":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:69873":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:69879":{"rank":571,"runs":[548,10,5,4,2,1,1]},"entrance:69880":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:6989":{"rank":571,"runs":[545,16,3,3,1,1,1,1]},"entrance:699":{"rank":551,"runs":[527,23,1]},"entrance:6990":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:69912":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:69918":{"rank":571,"runs":[548,8,7,4,2,1,1]},"entrance:69919":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:69952":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:69958":{"rank":571,"runs":[548,9,6,4,2,1,1]},"entrance:69959":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:69992":{"rank":571,"runs":[548,11,4,4,2,1,1]},"entrance:69998":{"rank":571,"runs":[548,11,4,4,2,1,1]},"entrance:69999":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:7":{"rank":551,"runs":[527,23,1]},"entrance:70":{"rank":551,"runs":[527,23,1]},"entrance:700":{"rank":551,"runs":[527,23,1]},"entrance:70033":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:70039":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:70040":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:70074":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:70080":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:70086":{"rank":570,"runs":[544,15,2,2,1,1,1,1,1,1,1]},"entrance:70087":{"rank":570,"runs":[542,13,3,3,2,2,1,1,1,1,1]},"entrance:70088":{"rank":570,"runs":[546,15,2,2,1,1,1,1,1]},"entrance:70089":{"rank":570,"runs":[544,13,3,3,2,2,1,1,1]},"entrance:70090":{"rank":570,"runs":[540,11,5,5,2,2,1,1,1,1,1]},"entrance:70091":{"rank":570,"runs":[538,9,7,7,2,2,1,1,1,1,1]},"entrance:70092":{"rank":570,"runs":[542,11,5,5,2,2,1,1,1]},"entrance:70093":{"rank":570,"runs":[540,9,7,7,2,2,1,1,1]},"entrance:70094":{"rank":570,"runs":[536,9,9,7,2,2,1,1,1,1,1]},"entrance:70095":{"rank":570,"runs":[534,11,11,5,2,2,1,1,1,1,1]},"entrance:70096":{"rank":570,"runs":[538,9,9,7,2,2,1,1,1]},"entrance:70097":{"rank":570,"runs":[536,11,11,5,2,2,1,1,1]},"entrance:70098":{"rank":570,"runs":[532,13,13,3,2,2,1,1,1,1,1]},"entrance:701":{"rank":551,"runs":[527,23,1]},"entrance:70100":{"rank":570,"runs":[534,13,13,3,2,2,1,1,1]},"entrance:70101":{"rank":570,"runs":[532,15,15,2,2,1,1,1,1]},"entrance:70102":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:70103":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:70104":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:70105":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:70106":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:70107":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:70108":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:70109":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:70110":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:70111":{"rank":570,"runs":[535,12,12,4,2,1,1,1,1,1]},"entrance:70112":{"rank":570,"runs":[539,8,8,4,3,3,2,1,1,1]},"entrance:70113":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:70114":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:70115":{"rank":570,"runs":[543,5,5,4,4,4,2,1,1,1]},"entrance:70116":{"rank":570,"runs":[547,7,7,4,3,1,1]},"entrance:70117":{"rank":570,"runs":[545,7,5,4,2,2,2,1,1,1]},"entrance:70118":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:70119":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:70120":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:70121":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:70122":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:70123":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:70124":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:70125":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:70136":{"rank":552,"runs":[528,22,1,1]},"entrance:702":{"rank":551,"runs":[527,23,1]},"entrance:70235":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:70244":{"rank":570,"runs":[547,18,3,1,1]},"entrance:70256":{"rank":552,"runs":[528,22,1,1]},"entrance:703":{"rank":551,"runs":[527,23,1]},"entrance:7031":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:7036":{"rank":570,"runs":[545,16,2,2,2,1,1,1]},"entrance:70366":{"rank":552,"runs":[528,21,1,1,1]},"entrance:7037":{"rank":570,"runs":[543,14,4,4,2,1,1,1]},"entrance:70377":{"rank":552,"runs":[528,22,1,1]},"entrance:7038":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:70388":{"rank":554,"runs":[531,19,1,1,1,1]},"entrance:7039":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:70399":{"rank":556,"runs":[531,13,4,2,2,1,1,1,1]},"entrance:704":{"rank":551,"runs":[527,23,1]},"entrance:7040":{"rank":570,"runs":[541,12,6,6,2,1,1,1]},"entrance:7041":{"rank":570,"runs":[539,10,8,8,2,1,1,1]},"entrance:70410":{"rank":558,"runs":[531,11,4,4,4,1,1,1,1]},"entrance:7042":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:7043":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:7044":{"rank":570,"runs":[537,10,10,8,2,1,1,1]},"entrance:7045":{"rank":570,"runs":[535,12,12,6,2,1,1,1]},"entrance:70454":{"rank":566,"runs":[531,12,12,4,3,1,1,1,1]},"entrance:7046":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:70465":{"rank":568,"runs":[531,14,14,4,1,1,1,1,1]},"entrance:7047":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:70476":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:7048":{"rank":570,"runs":[533,14,14,4,2,1,1,1]},"entrance:70485":{"rank":570,"runs":[547,18,3,1,1]},"entrance:70487":{"rank":552,"runs":[528,21,1,1,1]},"entrance:7049":{"rank":570,"runs":[531,16,16,2,2,1,1,1]},"entrance:70498":{"rank":552,"runs":[528,22,1,1]},"entrance:705":{"rank":551,"runs":[527,23,1]},"entrance:7050":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:7051":{"rank":570,"runs":[533,14,14,2,2,2,1,1,1]},"entrance:7052":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:7053":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:7054":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:7055":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:7056":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:7057":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:7058":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:7059":{"rank":570,"runs":[541,6,6,6,6,2,1,1,1]},"entrance:706":{"rank":551,"runs":[527,23,1]},"entrance:7060":{"rank":570,"runs":[537,10,10,4,4,2,1,1,1]},"entrance:7061":{"rank":570,"runs":[535,12,12,4,2,2,1,1,1]},"entrance:7062":{"rank":570,"runs":[539,8,8,6,4,2,1,1,1]},"entrance:7063":{"rank":570,"runs":[537,10,10,6,2,2,1,1,1]},"entrance:7064":{"rank":570,"runs":[545,8,8,2,2,2,1,1,1]},"entrance:7065":{"rank":570,"runs":[543,8,6,4,4,2,1,1,1]},"entrance:7066":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:70669":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:7067":{"rank":570,"runs":[545,10,6,2,2,2,1,1,1]},"entrance:7068":{"rank":570,"runs":[541,8,6,6,4,2,1,1,1]},"entrance:7069":{"rank":570,"runs":[539,8,8,8,2,2,1,1,1]},"entrance:707":{"rank":551,"runs":[527,23,1]},"entrance:7070":{"rank":570,"runs":[543,10,4,4,4,2,1,1,1]},"entrance:7071":{"rank":570,"runs":[541,10,6,6,2,2,1,1,1]},"entrance:7072":{"rank":570,"runs":[545,12,4,2,2,2,1,1,1]},"entrance:7073":{"rank":570,"runs":[543,12,4,4,2,2,1,1,1]},"entrance:7074":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:7075":{"rank":570,"runs":[545,14,2,2,2,2,1,1,1]},"entrance:708":{"rank":551,"runs":[527,23,1]},"entrance:70815":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:709":{"rank":551,"runs":[527,23,1]},"entrance:70959":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:71":{"rank":551,"runs":[527,23,1]},"entrance:710":{"rank":551,"runs":[527,23,1]},"entrance:711":{"rank":551,"runs":[527,23,1]},"entrance:71105":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:712":{"rank":551,"runs":[527,23,1]},"entrance:71249":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:713":{"rank":551,"runs":[527,23,1]},"entrance:71395":{"rank":570,"runs":[547,9,5,4,3,1,1]},"entrance:714":{"rank":551,"runs":[527,23,1]},"entrance:715":{"rank":551,"runs":[527,23,1]},"entrance:71539":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:716":{"rank":551,"runs":[527,23,1]},"entrance:71685":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:717":{"rank":551,"runs":[527,23,1]},"entrance:71776":{"rank":552,"runs":[528,21,1,1,1]},"entrance:718":{"rank":551,"runs":[527,23,1]},"entrance:71894":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:71895":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:71896":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:71897":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:71898":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:71899":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:719":{"rank":551,"runs":[527,23,1]},"entrance:71900":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:71901":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:71902":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:71903":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:71904":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:71905":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:7194":{"rank":570,"runs":[547,18,3,1,1]},"entrance:72":{"rank":551,"runs":[527,23,1]},"entrance:720":{"rank":551,"runs":[527,23,1]},"entrance:721":{"rank":551,"runs":[527,23,1]},"entrance:722":{"rank":551,"runs":[527,23,1]},"entrance:723":{"rank":551,"runs":[527,23,1]},"entrance:72390":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72391":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:724":{"rank":551,"runs":[527,23,1]},"entrance:72400":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:72401":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72402":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72412":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72413":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72422":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72423":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72431":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72432":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72439":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72440":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72446":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72447":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72452":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72453":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72457":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72458":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72461":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72462":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72464":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72465":{"rank":552,"runs":[528,20,1,1,1,1]},"entrance:72466":{"rank":554,"runs":[530,20,3,1]},"entrance:725":{"rank":551,"runs":[527,23,1]},"entrance:72502":{"rank":556,"runs":[532,17,3,2,1,1]},"entrance:72503":{"rank":556,"runs":[532,18,5,1]},"entrance:72506":{"rank":556,"runs":[532,17,3,2,1,1]},"entrance:72507":{"rank":556,"runs":[532,17,3,2,1,1]},"entrance:72513":{"rank":560,"runs":[533,9,4,4,3,3,2,1,1]},"entrance:72514":{"rank":560,"runs":[536,13,6,3,1,1]},"entrance:72519":{"rank":562,"runs":[539,11,5,3,2,1,1]},"entrance:72520":{"rank":568,"runs":[544,14,5,3,1,1]},"entrance:72524":{"rank":564,"runs":[533,8,7,6,5,3,1,1]},"entrance:72526":{"rank":560,"runs":[536,14,9,1]},"entrance:72528":{"rank":568,"runs":[541,10,4,4,3,3,1,1,1]},"entrance:72529":{"rank":564,"runs":[533,8,8,7,3,2,1,1,1]},"entrance:72530":{"rank":566,"runs":[543,10,7,3,1,1,1]},"entrance:72551":{"rank":566,"runs":[543,7,6,5,3,1,1]},"entrance:72552":{"rank":566,"runs":[539,6,4,4,4,3,3,1,1,1]},"entrance:72561":{"rank":566,"runs":[539,5,4,4,4,3,3,2,1,1]},"entrance:72562":{"rank":566,"runs":[535,8,8,4,3,3,2,1,1,1]},"entrance:72572":{"rank":566,"runs":[534,8,8,5,3,3,1,1,1,1,1]},"entrance:72583":{"rank":568,"runs":[535,10,10,5,3,2,1,1,1]},"entrance:72584":{"rank":568,"runs":[531,14,14,3,2,1,1,1,1]},"entrance:72586":{"rank":569,"runs":[546,14,4,3,1,1]},"entrance:72587":{"rank":569,"runs":[546,14,4,3,1,1]},"entrance:72588":{"rank":569,"runs":[546,10,4,4,3,1,1]},"entrance:72589":{"rank":569,"runs":[546,10,4,4,3,1,1]},"entrance:72592":{"rank":569,"runs":[546,8,6,4,3,1,1]},"entrance:72593":{"rank":569,"runs":[546,12,4,3,2,1,1]},"entrance:72594":{"rank":569,"runs":[546,8,6,4,3,1,1]},"entrance:72595":{"rank":569,"runs":[546,12,4,3,2,1,1]},"entrance:72598":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:72599":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:726":{"rank":551,"runs":[527,23,1]},"entrance:72600":{"rank":569,"runs":[545,16,3,1,1,1,1,1]},"entrance:72601":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:72602":{"rank":566,"runs":[538,9,4,4,3,3,1,1,1,1,1]},"entrance:72603":{"rank":568,"runs":[539,9,6,6,3,2,1,1,1]},"entrance:72604":{"rank":566,"runs":[542,13,6,1,1,1,1,1]},"entrance:72605":{"rank":568,"runs":[543,13,3,2,2,2,1,1,1]},"entrance:72631":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:72637":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:72638":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:72668":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:72674":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:72675":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:727":{"rank":551,"runs":[527,23,1]},"entrance:72706":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:72712":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:72713":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:72744":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:72750":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:72751":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:72783":{"rank":571,"runs":[548,8,8,3,2,1,1]},"entrance:72789":{"rank":571,"runs":[548,8,8,3,2,1,1]},"entrance:72790":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:728":{"rank":551,"runs":[527,23,1]},"entrance:72822":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:72828":{"rank":571,"runs":[548,10,6,3,2,1,1]},"entrance:72829":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:72862":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:72868":{"rank":571,"runs":[548,12,4,3,2,1,1]},"entrance:72869":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:729":{"rank":551,"runs":[527,23,1]},"entrance:72902":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:72908":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:72909":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:72943":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:72949":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:72950":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:72984":{"rank":571,"runs":[547,18,1,1,1,1,1,1]},"entrance:72990":{"rank":571,"runs":[547,18,1,1,1,1,1,1]},"entrance:72996":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:72997":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:72998":{"rank":570,"runs":[547,12,3,3,3,1,1]},"entrance:72999":{"rank":570,"runs":[545,10,3,3,2,2,2,1,1,1]},"entrance:73":{"rank":551,"runs":[527,23,1]},"entrance:730":{"rank":551,"runs":[527,23,1]},"entrance:73000":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:73001":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:73002":{"rank":570,"runs":[543,8,4,4,3,3,2,1,1,1]},"entrance:73003":{"rank":570,"runs":[541,6,6,6,3,3,2,1,1,1]},"entrance:73004":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:73005":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:73006":{"rank":570,"runs":[539,8,8,4,3,3,2,1,1,1]},"entrance:73007":{"rank":570,"runs":[537,10,10,3,3,2,2,1,1,1]},"entrance:73008":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:73009":{"rank":570,"runs":[530,16,16,1,1,1,1,1,1,1,1]},"entrance:73010":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:73011":{"rank":570,"runs":[532,14,14,3,1,1,1,1,1,1,1]},"entrance:73012":{"rank":570,"runs":[545,8,5,3,2,2,2,1,1,1]},"entrance:73013":{"rank":570,"runs":[543,6,5,4,4,3,2,1,1,1]},"entrance:73014":{"rank":570,"runs":[547,8,7,3,3,1,1]},"entrance:73015":{"rank":570,"runs":[545,7,6,3,2,2,2,1,1,1]},"entrance:73016":{"rank":570,"runs":[541,6,6,5,4,3,2,1,1,1]},"entrance:73017":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:73018":{"rank":570,"runs":[543,7,4,4,4,3,2,1,1,1]},"entrance:73019":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:73020":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:73021":{"rank":570,"runs":[534,12,12,5,1,1,1,1,1,1,1]},"entrance:73022":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:73023":{"rank":570,"runs":[536,10,10,7,1,1,1,1,1,1,1]},"entrance:73024":{"rank":570,"runs":[545,9,4,3,2,2,2,1,1,1]},"entrance:73025":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:73026":{"rank":570,"runs":[547,11,4,3,3,1,1]},"entrance:73027":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:73028":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:73029":{"rank":570,"runs":[538,9,8,8,1,1,1,1,1,1,1]},"entrance:73030":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:73031":{"rank":570,"runs":[540,11,6,6,1,1,1,1,1,1,1]},"entrance:73032":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:73033":{"rank":570,"runs":[542,13,4,4,1,1,1,1,1,1,1]},"entrance:73034":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:73035":{"rank":570,"runs":[544,15,2,2,1,1,1,1,1,1,1]},"entrance:731":{"rank":551,"runs":[527,23,1]},"entrance:73115":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:7316":{"rank":552,"runs":[528,21,1,1,1]},"entrance:732":{"rank":551,"runs":[527,23,1]},"entrance:73261":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:733":{"rank":551,"runs":[527,23,1]},"entrance:734":{"rank":551,"runs":[527,23,1]},"entrance:73405":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:735":{"rank":551,"runs":[527,23,1]},"entrance:73551":{"rank":570,"runs":[547,10,5,3,3,1,1]},"entrance:736":{"rank":551,"runs":[527,23,1]},"entrance:73695":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:737":{"rank":551,"runs":[527,23,1]},"entrance:738":{"rank":551,"runs":[527,23,1]},"entrance:73841":{"rank":570,"runs":[547,9,6,3,3,1,1]},"entrance:739":{"rank":551,"runs":[527,23,1]},"entrance:73985":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:74":{"rank":551,"runs":[527,23,1]},"entrance:740":{"rank":551,"runs":[527,23,1]},"entrance:741":{"rank":551,"runs":[527,23,1]},"entrance:74131":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:742":{"rank":551,"runs":[527,23,1]},"entrance:74275":{"rank":570,"runs":[546,17,2,1,1,1,1,1]},"entrance:743":{"rank":551,"runs":[527,23,1]},"entrance:7435":{"rank":570,"runs":[547,18,3,1,1]},"entrance:74369":{"rank":552,"runs":[528,22,1,1]},"entrance:7437":{"rank":552,"runs":[528,21,1,1,1]},"entrance:744":{"rank":551,"runs":[527,23,1]},"entrance:74469":{"rank":570,"runs":[546,17,2,1,1,1,1,1]},"entrance:74498":{"rank":552,"runs":[528,22,1,1]},"entrance:745":{"rank":551,"runs":[527,23,1]},"entrance:74509":{"rank":554,"runs":[530,20,3,1]},"entrance:74520":{"rank":556,"runs":[532,18,5,1]},"entrance:74531":{"rank":558,"runs":[534,16,7,1]},"entrance:74542":{"rank":560,"runs":[536,14,9,1]},"entrance:74553":{"rank":562,"runs":[538,12,11,1]},"entrance:74564":{"rank":564,"runs":[540,13,10,1]},"entrance:74575":{"rank":566,"runs":[542,15,8,1]},"entrance:74586":{"rank":568,"runs":[544,17,6,1]},"entrance:74597":{"rank":570,"runs":[546,19,4,1]},"entrance:746":{"rank":551,"runs":[527,23,1]},"entrance:74617":{"rank":552,"runs":[528,21,1,1,1]},"entrance:747":{"rank":551,"runs":[527,23,1]},"entrance:74726":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:74727":{"rank":570,"runs":[546,19,4,1]},"entrance:74728":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:74729":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:74730":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:74731":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:74732":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:74733":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:74734":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:74735":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:74736":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:74737":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:74747":{"rank":552,"runs":[528,21,1,1,1]},"entrance:748":{"rank":551,"runs":[527,23,1]},"entrance:74856":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:74857":{"rank":570,"runs":[546,19,4,1]},"entrance:74858":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:74859":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:74860":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:74861":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:74862":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:74863":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:74864":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:74865":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:74866":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:74867":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:749":{"rank":551,"runs":[527,23,1]},"entrance:75":{"rank":551,"runs":[527,23,1]},"entrance:750":{"rank":551,"runs":[527,23,1]},"entrance:751":{"rank":551,"runs":[527,23,1]},"entrance:752":{"rank":551,"runs":[527,23,1]},"entrance:753":{"rank":551,"runs":[527,23,1]},"entrance:75380":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:754":{"rank":551,"runs":[527,23,1]},"entrance:75483":{"rank":556,"runs":[531,15,2,2,2,1,1,1,1]},"entrance:75499":{"rank":562,"runs":[539,11,5,3,2,1,1]},"entrance:755":{"rank":551,"runs":[527,23,1]},"entrance:75506":{"rank":560,"runs":[531,11,6,6,2,1,1,1,1]},"entrance:75508":{"rank":568,"runs":[533,12,11,4,3,2,1,1,1]},"entrance:75509":{"rank":564,"runs":[537,8,7,4,3,2,1,1,1]},"entrance:75510":{"rank":566,"runs":[542,13,5,2,1,1,1,1]},"entrance:75529":{"rank":566,"runs":[543,9,7,3,2,1,1]},"entrance:75530":{"rank":566,"runs":[538,9,4,4,3,2,2,1,1,1,1]},"entrance:75539":{"rank":566,"runs":[539,5,4,4,4,3,3,2,1,1]},"entrance:75540":{"rank":566,"runs":[534,8,8,5,3,2,2,1,1,1,1]},"entrance:75550":{"rank":566,"runs":[535,8,8,4,3,3,2,1,1,1]},"entrance:75561":{"rank":568,"runs":[543,13,3,2,2,2,1,1,1]},"entrance:75562":{"rank":568,"runs":[544,17,6,1]},"entrance:75564":{"rank":569,"runs":[545,16,2,2,1,1,1,1]},"entrance:75565":{"rank":569,"runs":[545,16,2,2,1,1,1,1]},"entrance:75566":{"rank":569,"runs":[546,12,4,3,2,1,1]},"entrance:75567":{"rank":569,"runs":[546,12,4,3,2,1,1]},"entrance:75570":{"rank":569,"runs":[546,8,7,4,2,1,1]},"entrance:75571":{"rank":569,"runs":[546,11,4,4,2,1,1]},"entrance:75572":{"rank":569,"runs":[546,8,7,4,2,1,1]},"entrance:75573":{"rank":569,"runs":[546,11,4,4,2,1,1]},"entrance:75576":{"rank":569,"runs":[546,15,4,2,1,1]},"entrance:75577":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:75578":{"rank":569,"runs":[546,15,4,2,1,1]},"entrance:75579":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:7558":{"rank":552,"runs":[528,21,1,1,1]},"entrance:75580":{"rank":566,"runs":[539,7,4,4,4,3,2,1,1,1]},"entrance:75581":{"rank":568,"runs":[539,9,6,6,3,2,1,1,1]},"entrance:75582":{"rank":566,"runs":[543,11,7,2,1,1,1]},"entrance:75583":{"rank":568,"runs":[535,10,10,5,3,2,1,1,1]},"entrance:756":{"rank":551,"runs":[527,23,1]},"entrance:75609":{"rank":571,"runs":[548,19,2,1,1]},"entrance:75615":{"rank":571,"runs":[548,19,2,1,1]},"entrance:75616":{"rank":570,"runs":[546,19,4,1]},"entrance:75646":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:75652":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:75653":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:7568":{"rank":554,"runs":[530,19,3,1,1]},"entrance:75684":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:75690":{"rank":571,"runs":[548,14,3,2,2,1,1]},"entrance:75691":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:757":{"rank":551,"runs":[527,23,1]},"entrance:75722":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:75728":{"rank":571,"runs":[548,12,5,2,2,1,1]},"entrance:75729":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:75761":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:75767":{"rank":571,"runs":[548,10,7,2,2,1,1]},"entrance:75768":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:758":{"rank":551,"runs":[527,23,1]},"entrance:75800":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:75806":{"rank":571,"runs":[548,9,8,2,2,1,1]},"entrance:75807":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:75840":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:75846":{"rank":571,"runs":[548,11,6,2,2,1,1]},"entrance:75847":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:75880":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:75886":{"rank":571,"runs":[548,13,4,2,2,1,1]},"entrance:75887":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:759":{"rank":551,"runs":[527,23,1]},"entrance:75921":{"rank":571,"runs":[548,15,2,2,2,1,1]},"entrance:75927":{"rank":571,"runs":[548,15,2,2,2,1,1]},"entrance:75928":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:75962":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:75968":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:75974":{"rank":570,"runs":[544,15,3,3,2,1,1,1]},"entrance:75975":{"rank":570,"runs":[542,13,5,5,2,1,1,1]},"entrance:75976":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:75977":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:75978":{"rank":570,"runs":[540,11,7,7,2,1,1,1]},"entrance:75979":{"rank":570,"runs":[538,9,9,9,2,1,1,1]},"entrance:75980":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:75981":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:75982":{"rank":570,"runs":[536,11,11,7,2,1,1,1]},"entrance:75983":{"rank":570,"runs":[534,13,13,5,2,1,1,1]},"entrance:75984":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:75985":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:75986":{"rank":570,"runs":[532,15,15,3,2,1,1,1]},"entrance:75987":{"rank":570,"runs":[530,17,17,2,1,1,1,1]},"entrance:75988":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:75989":{"rank":570,"runs":[533,14,14,2,2,1,1,1,1,1]},"entrance:75990":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:75991":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:75992":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:75993":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:75994":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:75995":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:75996":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:75997":{"rank":570,"runs":[541,6,6,5,5,2,2,1,1,1]},"entrance:75998":{"rank":570,"runs":[537,10,10,3,3,2,2,1,1,1]},"entrance:75999":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:76":{"rank":551,"runs":[527,23,1]},"entrance:760":{"rank":551,"runs":[527,23,1]},"entrance:76000":{"rank":570,"runs":[539,8,8,5,3,2,2,1,1,1]},"entrance:76001":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:76002":{"rank":570,"runs":[545,7,7,2,2,2,2,1,1,1]},"entrance:76003":{"rank":570,"runs":[543,7,5,4,4,2,2,1,1,1]},"entrance:76004":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:76005":{"rank":570,"runs":[545,9,5,2,2,2,2,1,1,1]},"entrance:76006":{"rank":570,"runs":[541,7,6,6,3,2,2,1,1,1]},"entrance:76007":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:76008":{"rank":570,"runs":[543,9,4,4,3,2,2,1,1,1]},"entrance:76009":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:76010":{"rank":570,"runs":[545,11,3,2,2,2,2,1,1,1]},"entrance:76011":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:76012":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:76013":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:76024":{"rank":552,"runs":[528,22,1,1]},"entrance:761":{"rank":551,"runs":[527,23,1]},"entrance:76123":{"rank":570,"runs":[546,19,4,1]},"entrance:76132":{"rank":570,"runs":[546,17,2,1,1,1,1,1]},"entrance:76144":{"rank":552,"runs":[528,22,1,1]},"entrance:762":{"rank":551,"runs":[527,23,1]},"entrance:763":{"rank":551,"runs":[527,23,1]},"entrance:76317":{"rank":570,"runs":[546,17,2,1,1,1,1,1]},"entrance:7634":{"rank":566,"runs":[531,12,11,5,3,2,1,1]},"entrance:764":{"rank":551,"runs":[527,23,1]},"entrance:76461":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:765":{"rank":551,"runs":[527,23,1]},"entrance:766":{"rank":551,"runs":[527,23,1]},"entrance:76607":{"rank":570,"runs":[547,13,3,3,2,1,1]},"entrance:767":{"rank":551,"runs":[527,23,1]},"entrance:76751":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:7676":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:768":{"rank":551,"runs":[527,23,1]},"entrance:7680":{"rank":552,"runs":[528,21,1,1,1]},"entrance:76897":{"rank":570,"runs":[547,9,7,3,2,1,1]},"entrance:769":{"rank":551,"runs":[527,23,1]},"entrance:7690":{"rank":554,"runs":[530,19,3,1,1]},"entrance:77":{"rank":551,"runs":[527,23,1]},"entrance:770":{"rank":551,"runs":[527,23,1]},"entrance:77041":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:771":{"rank":551,"runs":[527,23,1]},"entrance:77187":{"rank":570,"runs":[547,11,5,3,2,1,1]},"entrance:772":{"rank":551,"runs":[527,23,1]},"entrance:773":{"rank":551,"runs":[527,23,1]},"entrance:77331":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:774":{"rank":551,"runs":[527,23,1]},"entrance:77477":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:775":{"rank":551,"runs":[527,23,1]},"entrance:77568":{"rank":552,"runs":[528,21,1,1,1]},"entrance:776":{"rank":551,"runs":[527,23,1]},"entrance:77686":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:77687":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:77688":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:77689":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:77690":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:77691":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:77692":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:77693":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:77694":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:77695":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:77696":{"rank":570,"runs":[546,19,4,1]},"entrance:77697":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:777":{"rank":551,"runs":[527,23,1]},"entrance:778":{"rank":551,"runs":[527,23,1]},"entrance:779":{"rank":551,"runs":[527,23,1]},"entrance:78":{"rank":551,"runs":[527,23,1]},"entrance:780":{"rank":551,"runs":[527,23,1]},"entrance:7802":{"rank":552,"runs":[528,21,1,1,1]},"entrance:781":{"rank":551,"runs":[527,23,1]},"entrance:7813":{"rank":554,"runs":[530,19,3,1,1]},"entrance:78182":{"rank":552,"runs":[528,22,1,1]},"entrance:78183":{"rank":552,"runs":[528,22,1,1]},"entrance:78193":{"rank":552,"runs":[528,22,1,1]},"entrance:78194":{"rank":552,"runs":[528,22,1,1]},"entrance:78195":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"entrance:782":{"rank":551,"runs":[527,23,1]},"entrance:78204":{"rank":552,"runs":[528,22,1,1]},"entrance:78205":{"rank":552,"runs":[528,22,1,1]},"entrance:78214":{"rank":552,"runs":[528,22,1,1]},"entrance:78215":{"rank":552,"runs":[528,22,1,1]},"entrance:78223":{"rank":552,"runs":[528,22,1,1]},"entrance:78224":{"rank":552,"runs":[528,22,1,1]},"entrance:78231":{"rank":552,"runs":[528,22,1,1]},"entrance:78232":{"rank":552,"runs":[528,22,1,1]},"entrance:78238":{"rank":552,"runs":[528,22,1,1]},"entrance:78239":{"rank":552,"runs":[528,22,1,1]},"entrance:78244":{"rank":552,"runs":[528,22,1,1]},"entrance:78245":{"rank":552,"runs":[528,22,1,1]},"entrance:78249":{"rank":552,"runs":[528,22,1,1]},"entrance:78250":{"rank":552,"runs":[528,22,1,1]},"entrance:78253":{"rank":552,"runs":[528,22,1,1]},"entrance:78254":{"rank":552,"runs":[528,22,1,1]},"entrance:78256":{"rank":552,"runs":[528,22,1,1]},"entrance:78257":{"rank":552,"runs":[528,22,1,1]},"entrance:78258":{"rank":554,"runs":[530,19,2,1,1,1]},"entrance:78294":{"rank":556,"runs":[532,17,4,1,1,1]},"entrance:78295":{"rank":556,"runs":[532,18,5,1]},"entrance:78298":{"rank":556,"runs":[532,17,4,1,1,1]},"entrance:78299":{"rank":556,"runs":[532,17,4,1,1,1]},"entrance:783":{"rank":551,"runs":[527,23,1]},"entrance:78305":{"rank":560,"runs":[533,9,4,4,4,3,1,1,1]},"entrance:78306":{"rank":560,"runs":[536,13,8,1,1,1]},"entrance:78311":{"rank":562,"runs":[539,11,5,4,1,1,1]},"entrance:78312":{"rank":568,"runs":[544,16,5,1,1,1]},"entrance:78316":{"rank":564,"runs":[533,8,7,6,5,3,1,1]},"entrance:78318":{"rank":560,"runs":[536,14,9,1]},"entrance:78320":{"rank":568,"runs":[541,12,4,4,3,1,1,1,1]},"entrance:78321":{"rank":564,"runs":[533,8,8,7,4,1,1,1,1]},"entrance:78322":{"rank":566,"runs":[543,12,7,1,1,1,1]},"entrance:78343":{"rank":566,"runs":[543,8,7,5,1,1,1]},"entrance:78344":{"rank":566,"runs":[539,8,4,4,4,3,1,1,1,1]},"entrance:78353":{"rank":566,"runs":[539,5,4,4,4,4,3,1,1,1]},"entrance:78354":{"rank":566,"runs":[535,8,8,4,4,3,1,1,1,1]},"entrance:78364":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:78365":{"rank":566,"runs":[531,12,12,4,3,1,1,1,1]},"entrance:78375":{"rank":568,"runs":[533,12,11,5,3,2,1,1]},"entrance:78378":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:78379":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:78380":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:78381":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:78384":{"rank":569,"runs":[546,8,8,4,1,1,1]},"entrance:78385":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:78386":{"rank":569,"runs":[546,8,8,4,1,1,1]},"entrance:78387":{"rank":569,"runs":[546,12,4,4,1,1,1]},"entrance:78390":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:78391":{"rank":571,"runs":[547,20,2,1,1]},"entrance:78392":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:78393":{"rank":571,"runs":[547,20,2,1,1]},"entrance:78394":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:78395":{"rank":568,"runs":[537,9,8,7,3,2,1,1]},"entrance:78396":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:78397":{"rank":568,"runs":[541,13,4,3,3,2,1,1]},"entrance:784":{"rank":551,"runs":[527,23,1]},"entrance:78423":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:78429":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:78430":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:78460":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:78466":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:78467":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:78498":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:785":{"rank":551,"runs":[527,23,1]},"entrance:78504":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:78505":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:78536":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:78542":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:78543":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:78575":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:78581":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:78582":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:786":{"rank":551,"runs":[527,23,1]},"entrance:78614":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:78620":{"rank":571,"runs":[548,10,8,2,1,1,1]},"entrance:78621":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:78654":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:78660":{"rank":571,"runs":[548,12,6,2,1,1,1]},"entrance:78661":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:78694":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:787":{"rank":551,"runs":[527,23,1]},"entrance:78700":{"rank":571,"runs":[548,14,4,2,1,1,1]},"entrance:78701":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:78735":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:78741":{"rank":571,"runs":[548,16,2,2,1,1,1]},"entrance:78742":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:78776":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:78782":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:78788":{"rank":570,"runs":[545,14,2,2,2,1,1,1,1,1]},"entrance:78789":{"rank":570,"runs":[543,12,4,4,2,1,1,1,1,1]},"entrance:7879":{"rank":566,"runs":[533,10,9,5,5,2,1,1]},"entrance:78790":{"rank":570,"runs":[547,14,3,3,1,1,1]},"entrance:78791":{"rank":570,"runs":[545,12,3,2,2,2,1,1,1,1]},"entrance:78792":{"rank":570,"runs":[541,10,6,6,2,1,1,1,1,1]},"entrance:78793":{"rank":570,"runs":[539,8,8,8,2,1,1,1,1,1]},"entrance:78794":{"rank":570,"runs":[543,10,4,4,3,2,1,1,1,1]},"entrance:78795":{"rank":570,"runs":[541,8,6,6,3,2,1,1,1,1]},"entrance:78796":{"rank":570,"runs":[537,10,10,6,2,1,1,1,1,1]},"entrance:78797":{"rank":570,"runs":[535,12,12,4,2,1,1,1,1,1]},"entrance:78798":{"rank":570,"runs":[539,8,8,6,3,2,1,1,1,1]},"entrance:78799":{"rank":570,"runs":[537,10,10,4,3,2,1,1,1,1]},"entrance:788":{"rank":551,"runs":[527,23,1]},"entrance:78800":{"rank":570,"runs":[533,14,14,2,2,1,1,1,1,1]},"entrance:78801":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:78802":{"rank":570,"runs":[535,12,12,3,2,2,1,1,1,1]},"entrance:78803":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:78804":{"rank":570,"runs":[545,10,5,2,2,2,1,1,1,1]},"entrance:78805":{"rank":570,"runs":[543,8,5,4,4,2,1,1,1,1]},"entrance:78806":{"rank":570,"runs":[547,10,7,3,1,1,1]},"entrance:78807":{"rank":570,"runs":[545,8,7,2,2,2,1,1,1,1]},"entrance:78808":{"rank":570,"runs":[541,6,6,6,5,2,1,1,1,1]},"entrance:78809":{"rank":570,"runs":[539,8,8,5,4,2,1,1,1,1]},"entrance:78810":{"rank":570,"runs":[543,7,6,4,4,2,1,1,1,1]},"entrance:78811":{"rank":570,"runs":[541,7,6,6,4,2,1,1,1,1]},"entrance:78812":{"rank":570,"runs":[537,10,10,5,2,2,1,1,1,1]},"entrance:78813":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:78814":{"rank":570,"runs":[539,8,8,7,2,2,1,1,1,1]},"entrance:78815":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:78816":{"rank":570,"runs":[545,9,6,2,2,2,1,1,1,1]},"entrance:78817":{"rank":570,"runs":[543,9,4,4,4,2,1,1,1,1]},"entrance:78818":{"rank":570,"runs":[547,11,6,3,1,1,1]},"entrance:78819":{"rank":570,"runs":[545,11,4,2,2,2,1,1,1,1]},"entrance:78820":{"rank":570,"runs":[541,9,6,6,2,2,1,1,1,1]},"entrance:78821":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:78822":{"rank":570,"runs":[543,11,4,4,2,2,1,1,1,1]},"entrance:78823":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:78824":{"rank":570,"runs":[545,13,2,2,2,2,1,1,1,1]},"entrance:78825":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:78826":{"rank":570,"runs":[547,15,3,2,1,1,1]},"entrance:78827":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:789":{"rank":551,"runs":[527,23,1]},"entrance:78907":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:79":{"rank":551,"runs":[527,23,1]},"entrance:790":{"rank":551,"runs":[527,23,1]},"entrance:79053":{"rank":570,"runs":[547,16,3,1,1,1,1]},"entrance:791":{"rank":551,"runs":[527,23,1]},"entrance:79197":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:792":{"rank":551,"runs":[527,23,1]},"entrance:7921":{"rank":570,"runs":[547,14,4,3,1,1]},"entrance:7925":{"rank":552,"runs":[528,21,1,1,1]},"entrance:793":{"rank":551,"runs":[527,23,1]},"entrance:79343":{"rank":570,"runs":[547,12,5,3,1,1,1]},"entrance:7936":{"rank":554,"runs":[530,19,3,1,1]},"entrance:794":{"rank":551,"runs":[527,23,1]},"entrance:79487":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:795":{"rank":551,"runs":[527,23,1]},"entrance:796":{"rank":551,"runs":[527,23,1]},"entrance:79633":{"rank":570,"runs":[547,9,8,3,1,1,1]},"entrance:797":{"rank":551,"runs":[527,23,1]},"entrance:79777":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:798":{"rank":551,"runs":[527,23,1]},"entrance:799":{"rank":551,"runs":[527,23,1]},"entrance:79923":{"rank":570,"runs":[547,13,4,3,1,1,1]},"entrance:8":{"rank":551,"runs":[527,23,1]},"entrance:80":{"rank":551,"runs":[527,23,1]},"entrance:800":{"rank":551,"runs":[527,23,1]},"entrance:80067":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:801":{"rank":551,"runs":[527,23,1]},"entrance:802":{"rank":551,"runs":[527,23,1]},"entrance:80213":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:803":{"rank":551,"runs":[527,23,1]},"entrance:804":{"rank":551,"runs":[527,23,1]},"entrance:80406":{"rank":571,"runs":[547,20,2,1,1]},"entrance:80407":{"rank":570,"runs":[546,19,4,1]},"entrance:80408":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:80409":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:80410":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:80411":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:80412":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:80413":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:80414":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:80415":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:80416":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:80417":{"rank":571,"runs":[547,20,2,1,1]},"entrance:8048":{"rank":552,"runs":[528,21,1,1,1]},"entrance:805":{"rank":551,"runs":[527,23,1]},"entrance:80536":{"rank":571,"runs":[547,20,2,1,1]},"entrance:80537":{"rank":570,"runs":[546,19,4,1]},"entrance:80538":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:80539":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:80540":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:80541":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:80542":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:80543":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:80544":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:80545":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:80546":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:80547":{"rank":571,"runs":[547,20,2,1,1]},"entrance:806":{"rank":551,"runs":[527,23,1]},"entrance:8060":{"rank":554,"runs":[530,19,3,1,1]},"entrance:807":{"rank":551,"runs":[527,23,1]},"entrance:808":{"rank":551,"runs":[527,23,1]},"entrance:809":{"rank":551,"runs":[527,23,1]},"entrance:81":{"rank":551,"runs":[527,23,1]},"entrance:810":{"rank":551,"runs":[527,23,1]},"entrance:81032":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81033":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81043":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81044":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81054":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81055":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81064":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81065":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81073":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81074":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81081":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81082":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81088":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81089":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81094":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81095":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81099":{"rank":552,"runs":[528,21,1,1,1]},"entrance:811":{"rank":551,"runs":[527,23,1]},"entrance:81100":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81103":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81104":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81106":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81107":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81161":{"rank":562,"runs":[539,11,5,5,1,1]},"entrance:81170":{"rank":568,"runs":[533,12,11,5,4,1,1,1]},"entrance:81171":{"rank":564,"runs":[537,9,8,4,3,1,1,1]},"entrance:81172":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:81191":{"rank":566,"runs":[543,9,7,5,1,1]},"entrance:81192":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:812":{"rank":551,"runs":[527,23,1]},"entrance:81201":{"rank":566,"runs":[539,5,5,4,4,4,3,1,1]},"entrance:81202":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:81212":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:81213":{"rank":566,"runs":[531,12,12,4,3,1,1,1,1]},"entrance:81223":{"rank":568,"runs":[541,13,4,3,3,2,1,1]},"entrance:81224":{"rank":568,"runs":[544,17,6,1]},"entrance:81226":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:81227":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:81228":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:81229":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:81232":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:81233":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:81234":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:81235":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:81238":{"rank":569,"runs":[546,17,4,1,1]},"entrance:81239":{"rank":571,"runs":[547,20,2,1,1]},"entrance:81240":{"rank":569,"runs":[546,17,4,1,1]},"entrance:81241":{"rank":571,"runs":[547,20,2,1,1]},"entrance:81242":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:81243":{"rank":568,"runs":[537,9,8,7,3,2,1,1]},"entrance:81244":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:81245":{"rank":568,"runs":[533,12,11,5,3,2,1,1]},"entrance:8126":{"rank":566,"runs":[535,8,7,7,5,2,1,1]},"entrance:81271":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:81277":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:81278":{"rank":570,"runs":[546,19,4,1]},"entrance:813":{"rank":551,"runs":[527,23,1]},"entrance:81308":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:81314":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:81315":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:81346":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:81352":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:81353":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:81384":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:81390":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:81391":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:814":{"rank":551,"runs":[527,23,1]},"entrance:81423":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:81429":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:81430":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:81462":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:81468":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:81469":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:815":{"rank":551,"runs":[527,23,1]},"entrance:81502":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:81508":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:81509":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:81542":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:81548":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:81549":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:81583":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:81589":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:81590":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:816":{"rank":551,"runs":[527,23,1]},"entrance:81624":{"rank":571,"runs":[548,19,2,1,1]},"entrance:81630":{"rank":571,"runs":[548,19,2,1,1]},"entrance:81636":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:81637":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:81638":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:81639":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:81640":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:81641":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:81642":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:81643":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:81644":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:81645":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:81646":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:81647":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:81648":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:81649":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:81650":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:81651":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:81652":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:81653":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:81654":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:81655":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:81656":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:81657":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:81658":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:81659":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:8166":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:81660":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:81661":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:81662":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:81663":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:81664":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:81665":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:81666":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:81667":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:81668":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:81669":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:81670":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:81671":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:81672":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:81673":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:81674":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:81675":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:817":{"rank":551,"runs":[527,23,1]},"entrance:8172":{"rank":552,"runs":[528,21,1,1,1]},"entrance:81739":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:818":{"rank":551,"runs":[527,23,1]},"entrance:8184":{"rank":554,"runs":[530,19,3,1,1]},"entrance:81885":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:819":{"rank":551,"runs":[527,23,1]},"entrance:82":{"rank":551,"runs":[527,23,1]},"entrance:820":{"rank":551,"runs":[527,23,1]},"entrance:82029":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:821":{"rank":551,"runs":[527,23,1]},"entrance:82175":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:822":{"rank":551,"runs":[527,23,1]},"entrance:823":{"rank":551,"runs":[527,23,1]},"entrance:82319":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:824":{"rank":551,"runs":[527,23,1]},"entrance:82465":{"rank":570,"runs":[547,9,9,3,1,1]},"entrance:825":{"rank":551,"runs":[527,23,1]},"entrance:826":{"rank":551,"runs":[527,23,1]},"entrance:82609":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:827":{"rank":551,"runs":[527,23,1]},"entrance:82755":{"rank":570,"runs":[547,13,5,3,1,1]},"entrance:828":{"rank":551,"runs":[527,23,1]},"entrance:82899":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:829":{"rank":551,"runs":[527,23,1]},"entrance:8296":{"rank":552,"runs":[528,21,1,1,1]},"entrance:83":{"rank":551,"runs":[527,23,1]},"entrance:830":{"rank":551,"runs":[527,23,1]},"entrance:83045":{"rank":570,"runs":[547,17,3,1,1,1]},"entrance:8309":{"rank":554,"runs":[530,19,3,1,1]},"entrance:831":{"rank":551,"runs":[527,23,1]},"entrance:832":{"rank":551,"runs":[527,23,1]},"entrance:83254":{"rank":571,"runs":[547,20,2,1,1]},"entrance:83256":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:83257":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:83258":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:83259":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:83260":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:83261":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:83262":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:83263":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:83264":{"rank":570,"runs":[546,19,4,1]},"entrance:83265":{"rank":571,"runs":[547,20,2,1,1]},"entrance:833":{"rank":551,"runs":[527,23,1]},"entrance:834":{"rank":551,"runs":[527,23,1]},"entrance:835":{"rank":551,"runs":[527,23,1]},"entrance:836":{"rank":551,"runs":[527,23,1]},"entrance:837":{"rank":551,"runs":[527,23,1]},"entrance:8375":{"rank":566,"runs":[537,9,6,5,5,2,1,1]},"entrance:838":{"rank":551,"runs":[527,23,1]},"entrance:83839":{"rank":556,"runs":[532,17,5,1,1]},"entrance:83840":{"rank":556,"runs":[532,18,5,1]},"entrance:83848":{"rank":560,"runs":[533,9,5,4,4,3,1,1]},"entrance:83849":{"rank":560,"runs":[536,13,9,1,1]},"entrance:83854":{"rank":562,"runs":[539,11,5,5,1,1]},"entrance:83855":{"rank":568,"runs":[544,17,5,1,1]},"entrance:83859":{"rank":564,"runs":[533,8,7,6,5,3,1,1]},"entrance:83861":{"rank":560,"runs":[536,14,9,1]},"entrance:83863":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:83864":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:83865":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:83874":{"rank":566,"runs":[543,9,7,5,1,1]},"entrance:83875":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:83884":{"rank":566,"runs":[539,5,5,4,4,4,3,1,1]},"entrance:83885":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:83895":{"rank":566,"runs":[535,8,8,5,4,3,1,1,1]},"entrance:83896":{"rank":566,"runs":[531,12,12,4,3,1,1,1,1]},"entrance:839":{"rank":551,"runs":[527,23,1]},"entrance:83906":{"rank":568,"runs":[533,12,11,5,3,2,1,1]},"entrance:83909":{"rank":569,"runs":[546,17,4,1,1]},"entrance:83910":{"rank":569,"runs":[546,17,4,1,1]},"entrance:83911":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:83912":{"rank":569,"runs":[546,13,4,4,1,1]},"entrance:83915":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:83916":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:83917":{"rank":569,"runs":[546,9,8,4,1,1]},"entrance:83918":{"rank":569,"runs":[546,12,5,4,1,1]},"entrance:83921":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:83922":{"rank":571,"runs":[547,20,2,1,1]},"entrance:83923":{"rank":569,"runs":[546,16,4,1,1,1]},"entrance:83924":{"rank":571,"runs":[547,20,2,1,1]},"entrance:83925":{"rank":566,"runs":[539,9,4,4,4,3,1,1,1]},"entrance:83926":{"rank":568,"runs":[537,9,8,7,3,2,1,1]},"entrance:83927":{"rank":566,"runs":[543,13,7,1,1,1]},"entrance:83928":{"rank":568,"runs":[541,13,4,3,3,2,1,1]},"entrance:83954":{"rank":571,"runs":[548,19,2,1,1]},"entrance:83960":{"rank":571,"runs":[548,19,2,1,1]},"entrance:83961":{"rank":570,"runs":[529,18,17,2,1,1,1,1]},"entrance:83991":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:83997":{"rank":571,"runs":[548,17,2,2,1,1]},"entrance:83998":{"rank":570,"runs":[531,16,15,3,2,1,1,1]},"entrance:84":{"rank":551,"runs":[527,23,1]},"entrance:840":{"rank":551,"runs":[527,23,1]},"entrance:84029":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:84035":{"rank":571,"runs":[548,15,4,2,1,1]},"entrance:84036":{"rank":570,"runs":[533,14,13,5,2,1,1,1]},"entrance:84067":{"rank":571,"runs":[548,13,6,2,1,1]},"entrance:84074":{"rank":570,"runs":[535,12,11,7,2,1,1,1]},"entrance:841":{"rank":551,"runs":[527,23,1]},"entrance:84106":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:84112":{"rank":571,"runs":[548,11,8,2,1,1]},"entrance:84113":{"rank":570,"runs":[537,10,9,9,2,1,1,1]},"entrance:84145":{"rank":571,"runs":[548,10,9,2,1,1]},"entrance:8415":{"rank":570,"runs":[547,10,8,3,1,1]},"entrance:84152":{"rank":570,"runs":[539,11,8,7,2,1,1,1]},"entrance:84185":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:84191":{"rank":571,"runs":[548,12,7,2,1,1]},"entrance:84192":{"rank":570,"runs":[541,13,6,5,2,1,1,1]},"entrance:842":{"rank":551,"runs":[527,23,1]},"entrance:8421":{"rank":552,"runs":[528,21,1,1,1]},"entrance:84225":{"rank":571,"runs":[548,14,5,2,1,1]},"entrance:84232":{"rank":570,"runs":[543,15,4,3,2,1,1,1]},"entrance:84266":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:84272":{"rank":571,"runs":[548,16,3,2,1,1]},"entrance:84273":{"rank":570,"runs":[545,17,2,2,1,1,1,1]},"entrance:843":{"rank":551,"runs":[527,23,1]},"entrance:84307":{"rank":571,"runs":[548,18,2,1,1,1]},"entrance:84314":{"rank":570,"runs":[546,19,4,1]},"entrance:84319":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:84320":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:84321":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:84322":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:84323":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:84324":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:84325":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:84326":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:84327":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:84328":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:84329":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:84330":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:84331":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:84332":{"rank":570,"runs":[531,16,16,2,1,1,1,1,1]},"entrance:84333":{"rank":570,"runs":[535,12,12,3,3,2,1,1,1]},"entrance:84334":{"rank":570,"runs":[533,14,14,3,2,1,1,1,1]},"entrance:84335":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:84336":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:84337":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:84338":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:84339":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:8434":{"rank":554,"runs":[530,19,3,1,1]},"entrance:84340":{"rank":570,"runs":[539,8,8,5,5,2,1,1,1]},"entrance:84341":{"rank":570,"runs":[543,7,7,4,4,2,1,1,1]},"entrance:84342":{"rank":570,"runs":[541,7,6,6,5,2,1,1,1]},"entrance:84343":{"rank":570,"runs":[537,10,10,5,3,2,1,1,1]},"entrance:84344":{"rank":570,"runs":[535,12,12,5,2,1,1,1,1]},"entrance:84345":{"rank":570,"runs":[539,8,8,7,3,2,1,1,1]},"entrance:84346":{"rank":570,"runs":[537,10,10,7,2,1,1,1,1]},"entrance:84347":{"rank":570,"runs":[545,9,7,2,2,2,1,1,1]},"entrance:84348":{"rank":570,"runs":[543,9,5,4,4,2,1,1,1]},"entrance:84349":{"rank":570,"runs":[547,11,7,3,1,1]},"entrance:84350":{"rank":570,"runs":[545,11,5,2,2,2,1,1,1]},"entrance:84351":{"rank":570,"runs":[541,9,6,6,3,2,1,1,1]},"entrance:84352":{"rank":570,"runs":[539,9,8,8,2,1,1,1,1]},"entrance:84353":{"rank":570,"runs":[543,11,4,4,3,2,1,1,1]},"entrance:84354":{"rank":570,"runs":[541,11,6,6,2,1,1,1,1]},"entrance:84355":{"rank":570,"runs":[545,13,3,2,2,2,1,1,1]},"entrance:84356":{"rank":570,"runs":[543,13,4,4,2,1,1,1,1]},"entrance:84357":{"rank":570,"runs":[547,15,3,3,1,1]},"entrance:84358":{"rank":570,"runs":[545,15,2,2,2,1,1,1,1]},"entrance:844":{"rank":551,"runs":[527,23,1]},"entrance:845":{"rank":551,"runs":[527,23,1]},"entrance:846":{"rank":551,"runs":[527,23,1]},"entrance:847":{"rank":551,"runs":[527,23,1]},"entrance:848":{"rank":551,"runs":[527,23,1]},"entrance:849":{"rank":551,"runs":[527,23,1]},"entrance:85":{"rank":551,"runs":[527,23,1]},"entrance:850":{"rank":551,"runs":[527,23,1]},"entrance:851":{"rank":551,"runs":[527,23,1]},"entrance:852":{"rank":551,"runs":[527,23,1]},"entrance:853":{"rank":551,"runs":[527,23,1]},"entrance:854":{"rank":551,"runs":[527,23,1]},"entrance:8546":{"rank":552,"runs":[528,21,1,1,1]},"entrance:855":{"rank":551,"runs":[527,23,1]},"entrance:856":{"rank":551,"runs":[527,23,1]},"entrance:8560":{"rank":554,"runs":[530,19,3,1,1]},"entrance:857":{"rank":551,"runs":[527,23,1]},"entrance:858":{"rank":551,"runs":[527,23,1]},"entrance:859":{"rank":551,"runs":[527,23,1]},"entrance:86":{"rank":551,"runs":[527,23,1]},"entrance:860":{"rank":551,"runs":[527,23,1]},"entrance:861":{"rank":551,"runs":[527,23,1]},"entrance:862":{"rank":551,"runs":[527,23,1]},"entrance:8626":{"rank":566,"runs":[539,11,5,4,3,2,1,1]},"entrance:863":{"rank":551,"runs":[527,23,1]},"entrance:864":{"rank":551,"runs":[527,23,1]},"entrance:865":{"rank":551,"runs":[527,23,1]},"entrance:866":{"rank":551,"runs":[527,23,1]},"entrance:8664":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:867":{"rank":551,"runs":[527,23,1]},"entrance:8672":{"rank":552,"runs":[528,21,1,1,1]},"entrance:868":{"rank":551,"runs":[527,23,1]},"entrance:8686":{"rank":554,"runs":[530,19,3,1,1]},"entrance:869":{"rank":551,"runs":[527,23,1]},"entrance:87":{"rank":551,"runs":[527,23,1]},"entrance:870":{"rank":551,"runs":[527,23,1]},"entrance:871":{"rank":551,"runs":[527,23,1]},"entrance:872":{"rank":551,"runs":[527,23,1]},"entrance:873":{"rank":551,"runs":[527,23,1]},"entrance:874":{"rank":551,"runs":[527,23,1]},"entrance:875":{"rank":551,"runs":[527,23,1]},"entrance:876":{"rank":551,"runs":[527,23,1]},"entrance:877":{"rank":551,"runs":[527,23,1]},"entrance:878":{"rank":551,"runs":[527,23,1]},"entrance:879":{"rank":551,"runs":[527,23,1]},"entrance:8798":{"rank":552,"runs":[528,21,1,1,1]},"entrance:88":{"rank":551,"runs":[527,23,1]},"entrance:880":{"rank":551,"runs":[527,23,1]},"entrance:881":{"rank":551,"runs":[527,23,1]},"entrance:8813":{"rank":554,"runs":[530,19,3,1,1]},"entrance:882":{"rank":551,"runs":[527,23,1]},"entrance:883":{"rank":551,"runs":[527,23,1]},"entrance:884":{"rank":551,"runs":[527,23,1]},"entrance:885":{"rank":551,"runs":[527,23,1]},"entrance:886":{"rank":551,"runs":[527,23,1]},"entrance:887":{"rank":551,"runs":[527,23,1]},"entrance:8879":{"rank":566,"runs":[541,13,5,2,2,1,1,1]},"entrance:888":{"rank":551,"runs":[527,23,1]},"entrance:889":{"rank":551,"runs":[527,23,1]},"entrance:89":{"rank":551,"runs":[527,23,1]},"entrance:890":{"rank":551,"runs":[527,23,1]},"entrance:891":{"rank":551,"runs":[527,23,1]},"entrance:8917":{"rank":570,"runs":[547,12,6,3,1,1]},"entrance:892":{"rank":551,"runs":[527,23,1]},"entrance:8925":{"rank":552,"runs":[528,21,1,1,1]},"entrance:893":{"rank":551,"runs":[527,23,1]},"entrance:894":{"rank":551,"runs":[527,23,1]},"entrance:8940":{"rank":554,"runs":[530,19,3,1,1]},"entrance:895":{"rank":551,"runs":[527,23,1]},"entrance:896":{"rank":551,"runs":[527,23,1]},"entrance:897":{"rank":551,"runs":[527,23,1]},"entrance:898":{"rank":551,"runs":[527,23,1]},"entrance:899":{"rank":551,"runs":[527,23,1]},"entrance:9":{"rank":551,"runs":[527,23,1]},"entrance:90":{"rank":551,"runs":[527,23,1]},"entrance:900":{"rank":551,"runs":[527,23,1]},"entrance:901":{"rank":551,"runs":[527,23,1]},"entrance:902":{"rank":551,"runs":[527,23,1]},"entrance:903":{"rank":551,"runs":[527,23,1]},"entrance:904":{"rank":551,"runs":[527,23,1]},"entrance:905":{"rank":551,"runs":[527,23,1]},"entrance:9052":{"rank":552,"runs":[528,21,1,1,1]},"entrance:906":{"rank":551,"runs":[527,23,1]},"entrance:9068":{"rank":554,"runs":[530,19,3,1,1]},"entrance:907":{"rank":551,"runs":[527,23,1]},"entrance:908":{"rank":551,"runs":[527,23,1]},"entrance:909":{"rank":551,"runs":[527,23,1]},"entrance:91":{"rank":551,"runs":[527,23,1]},"entrance:910":{"rank":551,"runs":[527,23,1]},"entrance:911":{"rank":551,"runs":[527,23,1]},"entrance:912":{"rank":551,"runs":[527,23,1]},"entrance:913":{"rank":551,"runs":[527,23,1]},"entrance:9134":{"rank":566,"runs":[542,15,7,1,1]},"entrance:914":{"rank":551,"runs":[527,23,1]},"entrance:915":{"rank":551,"runs":[527,23,1]},"entrance:916":{"rank":551,"runs":[527,23,1]},"entrance:917":{"rank":551,"runs":[527,23,1]},"entrance:9170":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:918":{"rank":551,"runs":[527,23,1]},"entrance:9180":{"rank":552,"runs":[528,21,1,1,1]},"entrance:919":{"rank":551,"runs":[527,23,1]},"entrance:9196":{"rank":554,"runs":[530,19,3,1,1]},"entrance:92":{"rank":551,"runs":[527,23,1]},"entrance:920":{"rank":551,"runs":[527,23,1]},"entrance:921":{"rank":551,"runs":[527,23,1]},"entrance:922":{"rank":551,"runs":[527,23,1]},"entrance:923":{"rank":551,"runs":[527,23,1]},"entrance:924":{"rank":551,"runs":[527,23,1]},"entrance:925":{"rank":551,"runs":[527,23,1]},"entrance:926":{"rank":551,"runs":[527,23,1]},"entrance:927":{"rank":551,"runs":[527,23,1]},"entrance:928":{"rank":551,"runs":[527,23,1]},"entrance:929":{"rank":551,"runs":[527,23,1]},"entrance:93":{"rank":551,"runs":[527,23,1]},"entrance:930":{"rank":551,"runs":[527,23,1]},"entrance:9308":{"rank":552,"runs":[528,21,1,1,1]},"entrance:931":{"rank":551,"runs":[527,23,1]},"entrance:932":{"rank":551,"runs":[527,23,1]},"entrance:9325":{"rank":554,"runs":[530,19,3,1,1]},"entrance:933":{"rank":551,"runs":[527,23,1]},"entrance:934":{"rank":551,"runs":[527,23,1]},"entrance:935":{"rank":551,"runs":[527,23,1]},"entrance:936":{"rank":551,"runs":[527,23,1]},"entrance:937":{"rank":551,"runs":[527,23,1]},"entrance:938":{"rank":551,"runs":[527,23,1]},"entrance:939":{"rank":551,"runs":[527,23,1]},"entrance:9391":{"rank":566,"runs":[542,15,7,1,1]},"entrance:94":{"rank":551,"runs":[527,23,1]},"entrance:940":{"rank":551,"runs":[527,23,1]},"entrance:941":{"rank":551,"runs":[527,23,1]},"entrance:942":{"rank":551,"runs":[527,23,1]},"entrance:9427":{"rank":570,"runs":[547,16,3,2,1,1]},"entrance:943":{"rank":551,"runs":[527,23,1]},"entrance:9437":{"rank":552,"runs":[528,21,1,1,1]},"entrance:944":{"rank":551,"runs":[527,23,1]},"entrance:945":{"rank":551,"runs":[527,23,1]},"entrance:9454":{"rank":554,"runs":[530,19,3,1,1]},"entrance:946":{"rank":551,"runs":[527,23,1]},"entrance:947":{"rank":551,"runs":[527,23,1]},"entrance:948":{"rank":551,"runs":[527,23,1]},"entrance:949":{"rank":551,"runs":[527,23,1]},"entrance:95":{"rank":551,"runs":[527,23,1]},"entrance:950":{"rank":551,"runs":[527,23,1]},"entrance:951":{"rank":551,"runs":[527,23,1]},"entrance:952":{"rank":551,"runs":[527,23,1]},"entrance:953":{"rank":551,"runs":[527,23,1]},"entrance:954":{"rank":551,"runs":[527,23,1]},"entrance:955":{"rank":551,"runs":[527,23,1]},"entrance:956":{"rank":551,"runs":[527,23,1]},"entrance:9566":{"rank":552,"runs":[528,21,1,1,1]},"entrance:957":{"rank":551,"runs":[527,23,1]},"entrance:958":{"rank":551,"runs":[527,23,1]},"entrance:959":{"rank":551,"runs":[527,23,1]},"entrance:9595":{"rank":556,"runs":[532,17,5,1,1]},"entrance:96":{"rank":551,"runs":[527,23,1]},"entrance:960":{"rank":551,"runs":[527,23,1]},"entrance:961":{"rank":551,"runs":[527,23,1]},"entrance:962":{"rank":551,"runs":[527,23,1]},"entrance:963":{"rank":551,"runs":[527,23,1]},"entrance:964":{"rank":551,"runs":[527,23,1]},"entrance:965":{"rank":551,"runs":[527,23,1]},"entrance:9655":{"rank":564,"runs":[533,8,8,7,5,1,1,1]},"entrance:966":{"rank":551,"runs":[527,23,1]},"entrance:9661":{"rank":568,"runs":[544,17,5,1,1]},"entrance:967":{"rank":551,"runs":[527,23,1]},"entrance:9675":{"rank":568,"runs":[541,13,4,4,3,1,1,1]},"entrance:968":{"rank":551,"runs":[527,23,1]},"entrance:969":{"rank":551,"runs":[527,23,1]},"entrance:97":{"rank":551,"runs":[527,23,1]},"entrance:970":{"rank":551,"runs":[527,23,1]},"entrance:971":{"rank":551,"runs":[527,23,1]},"entrance:972":{"rank":551,"runs":[527,23,1]},"entrance:973":{"rank":551,"runs":[527,23,1]},"entrance:974":{"rank":551,"runs":[527,23,1]},"entrance:975":{"rank":551,"runs":[527,23,1]},"entrance:976":{"rank":551,"runs":[527,23,1]},"entrance:977":{"rank":551,"runs":[527,23,1]},"entrance:978":{"rank":551,"runs":[527,23,1]},"entrance:979":{"rank":551,"runs":[527,23,1]},"entrance:98":{"rank":551,"runs":[527,23,1]},"entrance:980":{"rank":551,"runs":[527,23,1]},"entrance:981":{"rank":551,"runs":[527,23,1]},"entrance:982":{"rank":551,"runs":[527,23,1]},"entrance:983":{"rank":551,"runs":[527,23,1]},"entrance:984":{"rank":551,"runs":[527,23,1]},"entrance:985":{"rank":551,"runs":[527,23,1]},"entrance:986":{"rank":551,"runs":[527,23,1]},"entrance:987":{"rank":551,"runs":[527,23,1]},"entrance:988":{"rank":551,"runs":[527,23,1]},"entrance:989":{"rank":551,"runs":[527,23,1]},"entrance:99":{"rank":551,"runs":[527,23,1]},"entrance:990":{"rank":551,"runs":[527,23,1]},"entrance:991":{"rank":551,"runs":[527,23,1]},"entrance:992":{"rank":551,"runs":[527,23,1]},"entrance:993":{"rank":551,"runs":[527,23,1]},"entrance:994":{"rank":551,"runs":[527,23,1]},"entrance:995":{"rank":551,"runs":[527,23,1]},"entrance:996":{"rank":551,"runs":[527,23,1]},"entrance:997":{"rank":551,"runs":[527,23,1]},"entrance:998":{"rank":551,"runs":[527,23,1]},"entrance:999":{"rank":551,"runs":[527,23,1]},"exit:10168":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:10176":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:10178":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:10179":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:10182":{"rank":573,"runs":[550,16,5,1,1]},"exit:10184":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:10185":{"rank":573,"runs":[550,14,7,1,1]},"exit:10187":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:10188":{"rank":573,"runs":[550,12,9,1,1]},"exit:10190":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:10191":{"rank":573,"runs":[550,11,10,1,1]},"exit:10193":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:10194":{"rank":573,"runs":[550,13,8,1,1]},"exit:10196":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:10197":{"rank":573,"runs":[550,15,6,1,1]},"exit:10199":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:10200":{"rank":573,"runs":[550,17,4,1,1]},"exit:10202":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:10203":{"rank":573,"runs":[550,19,2,1,1]},"exit:10205":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:10206":{"rank":573,"runs":[550,21,1,1]},"exit:10208":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:10211":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:10212":{"rank":573,"runs":[550,14,7,1,1]},"exit:10214":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:10215":{"rank":573,"runs":[550,12,9,1,1]},"exit:10217":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:10218":{"rank":573,"runs":[550,11,10,1,1]},"exit:10220":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:10221":{"rank":573,"runs":[550,13,8,1,1]},"exit:10223":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:10224":{"rank":573,"runs":[550,15,6,1,1]},"exit:10226":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:10227":{"rank":573,"runs":[550,17,4,1,1]},"exit:10229":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:10230":{"rank":573,"runs":[550,19,2,1,1]},"exit:10232":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:10233":{"rank":573,"runs":[550,21,1,1]},"exit:10235":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:10238":{"rank":571,"runs":[548,15,2,2,2,1,1]},"exit:10239":{"rank":573,"runs":[550,12,9,1,1]},"exit:10241":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:10242":{"rank":573,"runs":[550,11,10,1,1]},"exit:10244":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:10245":{"rank":573,"runs":[550,13,8,1,1]},"exit:10247":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:10248":{"rank":573,"runs":[550,15,6,1,1]},"exit:10250":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:10251":{"rank":573,"runs":[550,17,4,1,1]},"exit:10253":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:10254":{"rank":573,"runs":[550,19,2,1,1]},"exit:10256":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:10257":{"rank":573,"runs":[550,21,1,1]},"exit:10259":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:10262":{"rank":571,"runs":[548,13,4,2,2,1,1]},"exit:10263":{"rank":573,"runs":[550,11,10,1,1]},"exit:10265":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:10266":{"rank":573,"runs":[550,13,8,1,1]},"exit:10268":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:10269":{"rank":573,"runs":[550,15,6,1,1]},"exit:10271":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:10272":{"rank":573,"runs":[550,17,4,1,1]},"exit:10274":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:10275":{"rank":573,"runs":[550,19,2,1,1]},"exit:10277":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:10278":{"rank":573,"runs":[550,21,1,1]},"exit:10280":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:10283":{"rank":571,"runs":[548,11,6,2,2,1,1]},"exit:10284":{"rank":573,"runs":[550,13,8,1,1]},"exit:10286":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:10287":{"rank":573,"runs":[550,15,6,1,1]},"exit:10289":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:10290":{"rank":573,"runs":[550,17,4,1,1]},"exit:10292":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:10293":{"rank":573,"runs":[550,19,2,1,1]},"exit:10295":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:10296":{"rank":573,"runs":[550,21,1,1]},"exit:10298":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:10301":{"rank":571,"runs":[548,9,8,2,2,1,1]},"exit:10302":{"rank":573,"runs":[550,15,6,1,1]},"exit:10304":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:10305":{"rank":573,"runs":[550,17,4,1,1]},"exit:10307":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:10308":{"rank":573,"runs":[550,19,2,1,1]},"exit:10310":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:10311":{"rank":573,"runs":[550,21,1,1]},"exit:10313":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:10316":{"rank":571,"runs":[548,10,7,2,2,1,1]},"exit:10317":{"rank":573,"runs":[550,17,4,1,1]},"exit:10319":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:10320":{"rank":573,"runs":[550,19,2,1,1]},"exit:10322":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:10323":{"rank":573,"runs":[550,21,1,1]},"exit:10325":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:10328":{"rank":571,"runs":[548,12,5,2,2,1,1]},"exit:10329":{"rank":573,"runs":[550,19,2,1,1]},"exit:10331":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:10332":{"rank":573,"runs":[550,21,1,1]},"exit:10334":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:10337":{"rank":571,"runs":[548,14,3,2,2,1,1]},"exit:10338":{"rank":573,"runs":[550,21,1,1]},"exit:10340":{"rank":571,"runs":[548,19,2,1,1]},"exit:10343":{"rank":571,"runs":[548,16,2,2,1,1,1]},"exit:10346":{"rank":571,"runs":[547,18,2,2,1,1]},"exit:10348":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:10349":{"rank":567,"runs":[544,12,6,3,1,1]},"exit:10351":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:10352":{"rank":567,"runs":[540,8,4,4,3,3,3,1,1]},"exit:10354":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:10355":{"rank":567,"runs":[536,8,8,4,3,3,3,1,1]},"exit:10357":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"exit:10358":{"rank":567,"runs":[532,12,12,3,3,3,1,1]},"exit:10359":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:10361":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:10362":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:10364":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:10365":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:10367":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:10368":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:10369":{"rank":569,"runs":[546,11,4,4,2,1,1]},"exit:10371":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:10372":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:10374":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:10375":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:10376":{"rank":569,"runs":[546,8,7,4,2,1,1]},"exit:10378":{"rank":569,"runs":[546,17,4,1,1]},"exit:10379":{"rank":567,"runs":[544,15,6,1,1]},"exit:10380":{"rank":569,"runs":[546,12,4,3,2,1,1]},"exit:10381":{"rank":569,"runs":[545,16,4,2,1,1]},"exit:10385":{"rank":565,"runs":[532,10,9,7,4,1,1,1]},"exit:10387":{"rank":569,"runs":[545,16,4,2,1,1]},"exit:10391":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:10392":{"rank":565,"runs":[534,8,7,4,4,4,2,1,1]},"exit:10394":{"rank":565,"runs":[541,12,8,2,1,1]},"exit:10398":{"rank":557,"runs":[532,15,4,2,1,1,1,1]},"exit:10400":{"rank":557,"runs":[533,16,4,2,1,1]},"exit:10401":{"rank":551,"runs":[527,23,1]},"exit:10402":{"rank":553,"runs":[529,21,2,1]},"exit:10440":{"rank":561,"runs":[536,11,8,2,1,1,1,1]},"exit:10454":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:10460":{"rank":555,"runs":[532,18,3,1,1]},"exit:10478":{"rank":556,"runs":[533,17,3,1,1,1]},"exit:10479":{"rank":554,"runs":[531,19,2,1,1]},"exit:10481":{"rank":554,"runs":[531,19,2,1,1]},"exit:10484":{"rank":559,"runs":[535,13,7,1,1,1,1]},"exit:10517":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:10790":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:10864":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:10870":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:10871":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:10875":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:11024":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:11035":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:11144":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:11155":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:13010":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:13138":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:13265":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:13267":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:13276":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:13394":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:13396":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:13405":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:13524":{"rank":554,"runs":[531,19,2,1,1]},"exit:13535":{"rank":554,"runs":[531,19,2,1,1]},"exit:13654":{"rank":554,"runs":[531,19,2,1,1]},"exit:13665":{"rank":554,"runs":[531,19,2,1,1]},"exit:13666":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:13667":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:13668":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:13682":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:13684":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:13685":{"rank":553,"runs":[530,20,1,1,1]},"exit:13686":{"rank":553,"runs":[529,20,2,1,1]},"exit:13687":{"rank":553,"runs":[530,20,1,1,1]},"exit:13688":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:13689":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:13690":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:13704":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:13705":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:13706":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:13707":{"rank":553,"runs":[530,20,1,1,1]},"exit:13708":{"rank":553,"runs":[529,20,2,1,1]},"exit:13709":{"rank":553,"runs":[530,20,1,1,1]},"exit:14147":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:14149":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:14154":{"rank":571,"runs":[548,19,2,1,1]},"exit:14157":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:14160":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:14163":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:14166":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:14169":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:14172":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:14175":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:14178":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:14181":{"rank":571,"runs":[547,19,2,1,1,1]},"exit:14184":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:14187":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:14190":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:14193":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:14196":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:14199":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:14202":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:14205":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:14208":{"rank":571,"runs":[548,17,2,1,1,1,1]},"exit:14211":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:14214":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:14217":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:14220":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:14223":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:14226":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:14229":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:14232":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:14235":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:14238":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:14241":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:14244":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:14247":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:14250":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:14253":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:14256":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:14259":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:14262":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:14265":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:14268":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:14271":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:14274":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:14277":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:14280":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:14283":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:14286":{"rank":571,"runs":[548,9,9,2,1,1,1]},"exit:14289":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:14292":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:14295":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:14298":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:14301":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:14304":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:14307":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:14310":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:14313":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:14316":{"rank":571,"runs":[548,17,2,1,1,1,1]},"exit:14318":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:14319":{"rank":567,"runs":[544,15,6,1,1]},"exit:14321":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:14322":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:14324":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:14325":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:14327":{"rank":569,"runs":[534,12,12,3,3,2,1,1,1]},"exit:14328":{"rank":567,"runs":[532,12,12,3,3,3,1,1]},"exit:14329":{"rank":569,"runs":[545,17,4,1,1,1]},"exit:14331":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:14332":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:14334":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:14335":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:14337":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:14338":{"rank":567,"runs":[536,8,8,4,3,3,3,1,1]},"exit:14339":{"rank":569,"runs":[546,13,4,3,1,1,1]},"exit:14341":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:14342":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:14344":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:14345":{"rank":567,"runs":[540,8,4,4,3,3,3,1,1]},"exit:14346":{"rank":569,"runs":[546,9,7,4,1,1,1]},"exit:14348":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:14349":{"rank":567,"runs":[544,12,6,3,1,1]},"exit:14350":{"rank":569,"runs":[546,11,5,4,1,1,1]},"exit:14351":{"rank":569,"runs":[546,15,4,1,1,1,1]},"exit:14353":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:14355":{"rank":565,"runs":[536,8,7,6,5,1,1,1]},"exit:14361":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:14362":{"rank":565,"runs":[534,8,8,4,4,3,1,1,1,1]},"exit:14364":{"rank":565,"runs":[542,11,8,1,1,1,1]},"exit:14370":{"rank":557,"runs":[534,16,3,1,1,1,1]},"exit:14371":{"rank":551,"runs":[527,23,1]},"exit:14372":{"rank":553,"runs":[529,20,1,1,1,1]},"exit:14373":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:14380":{"rank":559,"runs":[535,12,7,2,1,1,1]},"exit:14392":{"rank":557,"runs":[534,16,3,1,1,1,1]},"exit:14423":{"rank":559,"runs":[531,12,5,4,3,2,1,1]},"exit:14430":{"rank":555,"runs":[532,18,3,1,1]},"exit:14434":{"rank":557,"runs":[532,15,4,2,1,1,1,1]},"exit:14449":{"rank":554,"runs":[531,19,2,1,1]},"exit:14451":{"rank":554,"runs":[531,19,2,1,1]},"exit:14481":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:14487":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:14488":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:14492":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:14561":{"rank":557,"runs":[533,14,5,2,1,1,1]},"exit:14994":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:14995":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:15004":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:15005":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:15114":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:15115":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:15124":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:15125":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:15245":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:15366":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:17494":{"rank":554,"runs":[531,19,2,1,1]},"exit:17505":{"rank":554,"runs":[531,19,2,1,1]},"exit:17507":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:17526":{"rank":553,"runs":[529,20,2,1,1]},"exit:17529":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:17548":{"rank":553,"runs":[529,20,2,1,1]},"exit:17629":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:17992":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:17993":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:17994":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:17995":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:17996":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:17997":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:17998":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:17999":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:18000":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:18003":{"rank":571,"runs":[547,17,1,1,1,1,1,1,1]},"exit:18004":{"rank":573,"runs":[550,14,7,1,1]},"exit:18006":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:18007":{"rank":573,"runs":[550,12,9,1,1]},"exit:18009":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:18010":{"rank":573,"runs":[550,11,10,1,1]},"exit:18012":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:18013":{"rank":573,"runs":[550,13,8,1,1]},"exit:18015":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:18016":{"rank":573,"runs":[550,15,6,1,1]},"exit:18018":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:18019":{"rank":573,"runs":[550,17,4,1,1]},"exit:18021":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:18022":{"rank":573,"runs":[550,19,2,1,1]},"exit:18024":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:18025":{"rank":573,"runs":[550,21,1,1]},"exit:18027":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:18030":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:18031":{"rank":573,"runs":[550,12,9,1,1]},"exit:18033":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:18034":{"rank":573,"runs":[550,11,10,1,1]},"exit:18036":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:18037":{"rank":573,"runs":[550,13,8,1,1]},"exit:18039":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:18040":{"rank":573,"runs":[550,15,6,1,1]},"exit:18042":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:18043":{"rank":573,"runs":[550,17,4,1,1]},"exit:18045":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:18046":{"rank":573,"runs":[550,19,2,1,1]},"exit:18048":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:18049":{"rank":573,"runs":[550,21,1,1]},"exit:18051":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:18054":{"rank":571,"runs":[548,13,4,2,2,1,1]},"exit:18055":{"rank":573,"runs":[550,11,10,1,1]},"exit:18057":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:18058":{"rank":573,"runs":[550,13,8,1,1]},"exit:18060":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:18061":{"rank":573,"runs":[550,15,6,1,1]},"exit:18063":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:18064":{"rank":573,"runs":[550,17,4,1,1]},"exit:18066":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:18067":{"rank":573,"runs":[550,19,2,1,1]},"exit:18069":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:18070":{"rank":573,"runs":[550,21,1,1]},"exit:18072":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:18075":{"rank":571,"runs":[548,11,4,4,2,1,1]},"exit:18076":{"rank":573,"runs":[550,13,8,1,1]},"exit:18078":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:18079":{"rank":573,"runs":[550,15,6,1,1]},"exit:18081":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:18082":{"rank":573,"runs":[550,17,4,1,1]},"exit:18084":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:18085":{"rank":573,"runs":[550,19,2,1,1]},"exit:18087":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:18088":{"rank":573,"runs":[550,21,1,1]},"exit:18090":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:18093":{"rank":571,"runs":[548,9,6,4,2,1,1]},"exit:18094":{"rank":573,"runs":[550,15,6,1,1]},"exit:18096":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:18097":{"rank":573,"runs":[550,17,4,1,1]},"exit:18099":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:18100":{"rank":573,"runs":[550,19,2,1,1]},"exit:18102":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:18103":{"rank":573,"runs":[550,21,1,1]},"exit:18105":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:18108":{"rank":571,"runs":[548,8,7,4,2,1,1]},"exit:18109":{"rank":573,"runs":[550,17,4,1,1]},"exit:18111":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:18112":{"rank":573,"runs":[550,19,2,1,1]},"exit:18114":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:18115":{"rank":573,"runs":[550,21,1,1]},"exit:18117":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:18120":{"rank":571,"runs":[548,10,5,4,2,1,1]},"exit:18121":{"rank":573,"runs":[550,19,2,1,1]},"exit:18123":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:18124":{"rank":573,"runs":[550,21,1,1]},"exit:18126":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:18129":{"rank":571,"runs":[548,12,4,3,2,1,1]},"exit:18130":{"rank":573,"runs":[550,21,1,1]},"exit:18132":{"rank":571,"runs":[548,19,2,1,1]},"exit:18135":{"rank":571,"runs":[548,14,4,2,1,1,1]},"exit:18138":{"rank":571,"runs":[547,16,4,2,1,1]},"exit:18141":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:18142":{"rank":567,"runs":[542,12,5,2,2,1,1,1,1]},"exit:18144":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:18145":{"rank":567,"runs":[538,8,4,4,3,2,2,2,1,1,1,1]},"exit:18147":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:18148":{"rank":567,"runs":[534,8,8,4,3,2,2,2,1,1,1,1]},"exit:18150":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"exit:18152":{"rank":569,"runs":[545,15,3,1,1,1,1,1,1]},"exit:18154":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:18155":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:18157":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:18158":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:18160":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:18161":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:18162":{"rank":569,"runs":[546,11,4,4,2,1,1]},"exit:18164":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:18165":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:18167":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:18168":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:18169":{"rank":569,"runs":[546,7,6,4,4,1,1]},"exit:18171":{"rank":569,"runs":[546,17,4,1,1]},"exit:18172":{"rank":567,"runs":[544,15,6,1,1]},"exit:18173":{"rank":569,"runs":[546,10,4,4,3,1,1]},"exit:18174":{"rank":569,"runs":[545,14,4,4,1,1]},"exit:18175":{"rank":569,"runs":[544,16,3,2,1,1,1,1]},"exit:18176":{"rank":569,"runs":[540,12,6,5,3,1,1,1]},"exit:18177":{"rank":565,"runs":[532,10,9,7,4,1,1,1]},"exit:18183":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:18184":{"rank":565,"runs":[534,8,7,4,4,4,2,1,1]},"exit:18186":{"rank":565,"runs":[541,10,8,4,1,1]},"exit:18192":{"rank":557,"runs":[533,16,4,2,1,1]},"exit:18193":{"rank":551,"runs":[527,23,1]},"exit:18209":{"rank":557,"runs":[533,16,4,2,1,1]},"exit:18246":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:18252":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:18270":{"rank":556,"runs":[532,15,3,2,1,1,1,1]},"exit:18276":{"rank":559,"runs":[535,11,7,3,1,1,1]},"exit:18303":{"rank":554,"runs":[530,19,3,1,1]},"exit:18309":{"rank":554,"runs":[530,19,3,1,1]},"exit:18311":{"rank":557,"runs":[531,15,3,3,2,1,1,1]},"exit:18582":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:18656":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:18662":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:18663":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:18667":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:18681":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:18778":{"rank":554,"runs":[530,19,3,1,1]},"exit:18779":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:18788":{"rank":554,"runs":[530,19,3,1,1]},"exit:18843":{"rank":554,"runs":[530,19,3,1,1]},"exit:18844":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:18853":{"rank":554,"runs":[530,19,3,1,1]},"exit:20708":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:20836":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:20965":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:21092":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:21094":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:21102":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:21103":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:21364":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:21385":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:21386":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:21405":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:21407":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:21845":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:21847":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:21852":{"rank":571,"runs":[548,19,2,1,1]},"exit:21855":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:21858":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:21861":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:21864":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:21867":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:21870":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:21873":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:21875":{"rank":573,"runs":[550,20,1,1,1]},"exit:21876":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:21879":{"rank":571,"runs":[547,17,3,2,1,1]},"exit:21882":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:21885":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:21888":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:21891":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:21894":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:21897":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:21900":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:21902":{"rank":573,"runs":[550,20,1,1,1]},"exit:21903":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:21906":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:21909":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:21912":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:21915":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:21918":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:21921":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:21924":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:21926":{"rank":573,"runs":[550,20,1,1,1]},"exit:21927":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:21930":{"rank":571,"runs":[548,13,3,3,2,1,1]},"exit:21933":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:21936":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:21939":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:21942":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:21945":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:21947":{"rank":573,"runs":[550,20,1,1,1]},"exit:21948":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:21951":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:21954":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:21957":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:21960":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:21963":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:21965":{"rank":573,"runs":[550,20,1,1,1]},"exit:21966":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:21969":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:21972":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:21975":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:21978":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:21980":{"rank":573,"runs":[550,20,1,1,1]},"exit:21981":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:21984":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:21987":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:21990":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:21992":{"rank":573,"runs":[550,20,1,1,1]},"exit:21993":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:21996":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:21999":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:22001":{"rank":573,"runs":[550,20,1,1,1]},"exit:22002":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:22005":{"rank":571,"runs":[548,13,3,3,2,1,1]},"exit:22007":{"rank":573,"runs":[550,20,1,1,1]},"exit:22008":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:22011":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:22014":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:22017":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:22018":{"rank":567,"runs":[544,15,6,1,1]},"exit:22020":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:22021":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:22023":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:22024":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:22028":{"rank":569,"runs":[545,15,4,3,1,1]},"exit:22030":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:22031":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:22033":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:22034":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:22036":{"rank":569,"runs":[536,8,8,6,2,2,2,1,1,1,1,1]},"exit:22037":{"rank":567,"runs":[534,8,8,4,3,2,2,2,1,1,1,1]},"exit:22038":{"rank":569,"runs":[546,11,4,3,3,1,1]},"exit:22040":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:22041":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:22043":{"rank":569,"runs":[540,10,4,4,2,2,2,1,1,1,1,1]},"exit:22044":{"rank":567,"runs":[538,8,4,4,3,2,2,2,1,1,1,1]},"exit:22045":{"rank":569,"runs":[546,7,7,4,3,1,1]},"exit:22047":{"rank":569,"runs":[544,14,3,2,2,1,1,1,1]},"exit:22048":{"rank":567,"runs":[542,12,5,2,2,1,1,1,1]},"exit:22049":{"rank":569,"runs":[546,11,4,3,3,1,1]},"exit:22050":{"rank":569,"runs":[545,15,2,2,1,1,1,1,1]},"exit:22052":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:22053":{"rank":565,"runs":[536,8,7,6,5,1,1,1]},"exit:22055":{"rank":569,"runs":[545,15,2,2,1,1,1,1,1]},"exit:22059":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:22062":{"rank":565,"runs":[541,11,6,2,1,1,1,1,1]},"exit:22069":{"rank":551,"runs":[527,23,1]},"exit:22071":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:22078":{"rank":559,"runs":[535,10,7,4,1,1,1]},"exit:22084":{"rank":557,"runs":[533,14,3,2,1,1,1,1,1]},"exit:22089":{"rank":557,"runs":[533,14,3,2,1,1,1,1,1]},"exit:22130":{"rank":557,"runs":[532,13,4,3,2,1,1,1]},"exit:22177":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22183":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22184":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:22257":{"rank":557,"runs":[533,12,5,4,1,1,1]},"exit:22530":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:22536":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:22690":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22691":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:22700":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:22701":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22810":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22811":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:22820":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:22821":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:22941":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:2300":{"rank":573,"runs":[550,18,3,1,1]},"exit:2301":{"rank":573,"runs":[550,16,5,1,1]},"exit:2302":{"rank":573,"runs":[550,14,7,1,1]},"exit:2303":{"rank":573,"runs":[550,12,9,1,1]},"exit:2304":{"rank":573,"runs":[550,11,10,1,1]},"exit:2305":{"rank":573,"runs":[550,13,8,1,1]},"exit:2306":{"rank":573,"runs":[550,15,6,1,1]},"exit:23062":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:2307":{"rank":573,"runs":[550,17,4,1,1]},"exit:2308":{"rank":573,"runs":[550,19,2,1,1]},"exit:2309":{"rank":573,"runs":[550,21,1,1]},"exit:2311":{"rank":573,"runs":[550,18,3,1,1]},"exit:2312":{"rank":573,"runs":[550,16,5,1,1]},"exit:2313":{"rank":573,"runs":[550,14,7,1,1]},"exit:2314":{"rank":573,"runs":[550,12,9,1,1]},"exit:2315":{"rank":573,"runs":[550,11,10,1,1]},"exit:2316":{"rank":573,"runs":[550,13,8,1,1]},"exit:2317":{"rank":573,"runs":[550,15,6,1,1]},"exit:2318":{"rank":573,"runs":[550,17,4,1,1]},"exit:2319":{"rank":573,"runs":[550,19,2,1,1]},"exit:2320":{"rank":573,"runs":[550,21,1,1]},"exit:2323":{"rank":573,"runs":[550,16,5,1,1]},"exit:2324":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:2326":{"rank":573,"runs":[550,14,7,1,1]},"exit:2327":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:2329":{"rank":573,"runs":[550,12,9,1,1]},"exit:2330":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:2332":{"rank":573,"runs":[550,11,10,1,1]},"exit:2333":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:2335":{"rank":573,"runs":[550,13,8,1,1]},"exit:2336":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:2338":{"rank":573,"runs":[550,15,6,1,1]},"exit:2339":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:2341":{"rank":573,"runs":[550,17,4,1,1]},"exit:2342":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:2344":{"rank":573,"runs":[550,19,2,1,1]},"exit:2345":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:2347":{"rank":573,"runs":[550,21,1,1]},"exit:2348":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:2351":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:2353":{"rank":573,"runs":[550,14,7,1,1]},"exit:2354":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:2356":{"rank":573,"runs":[550,12,9,1,1]},"exit:2357":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:2362":{"rank":573,"runs":[550,13,8,1,1]},"exit:2363":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:2365":{"rank":573,"runs":[550,15,6,1,1]},"exit:2366":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:2368":{"rank":573,"runs":[550,17,4,1,1]},"exit:2369":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:2371":{"rank":573,"runs":[550,19,2,1,1]},"exit:2372":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:2374":{"rank":573,"runs":[550,21,1,1]},"exit:2375":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:2378":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:2380":{"rank":573,"runs":[550,12,9,1,1]},"exit:2381":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:2386":{"rank":573,"runs":[550,13,8,1,1]},"exit:2387":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:2389":{"rank":573,"runs":[550,15,6,1,1]},"exit:2390":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:2392":{"rank":573,"runs":[550,17,4,1,1]},"exit:2393":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:2395":{"rank":573,"runs":[550,19,2,1,1]},"exit:2396":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:2398":{"rank":573,"runs":[550,21,1,1]},"exit:2399":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:2402":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:2404":{"rank":573,"runs":[550,11,10,1,1]},"exit:2405":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:2407":{"rank":573,"runs":[550,13,8,1,1]},"exit:2408":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:2410":{"rank":573,"runs":[550,15,6,1,1]},"exit:2411":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:2413":{"rank":573,"runs":[550,17,4,1,1]},"exit:2414":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:2416":{"rank":573,"runs":[550,19,2,1,1]},"exit:2417":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:2419":{"rank":573,"runs":[550,21,1,1]},"exit:2420":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:2423":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:2425":{"rank":573,"runs":[550,13,8,1,1]},"exit:2426":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:2428":{"rank":573,"runs":[550,15,6,1,1]},"exit:2429":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:2431":{"rank":573,"runs":[550,17,4,1,1]},"exit:2432":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:2434":{"rank":573,"runs":[550,19,2,1,1]},"exit:2435":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:2437":{"rank":573,"runs":[550,21,1,1]},"exit:2438":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:2441":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:2443":{"rank":573,"runs":[550,15,6,1,1]},"exit:2444":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:2446":{"rank":573,"runs":[550,17,4,1,1]},"exit:2447":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:2449":{"rank":573,"runs":[550,19,2,1,1]},"exit:2450":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:2452":{"rank":573,"runs":[550,21,1,1]},"exit:2453":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:2456":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:2458":{"rank":573,"runs":[550,17,4,1,1]},"exit:2459":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:2461":{"rank":573,"runs":[550,19,2,1,1]},"exit:2462":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:2464":{"rank":573,"runs":[550,21,1,1]},"exit:2465":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:2468":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:2470":{"rank":573,"runs":[550,19,2,1,1]},"exit:2471":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:2473":{"rank":573,"runs":[550,21,1,1]},"exit:2474":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:2477":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:2479":{"rank":573,"runs":[550,21,1,1]},"exit:2480":{"rank":571,"runs":[548,19,2,1,1]},"exit:2483":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:2486":{"rank":571,"runs":[547,20,2,1,1]},"exit:24868":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:2487":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:24878":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:2488":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:2489":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:2490":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:2491":{"rank":571,"runs":[548,19,2,1,1]},"exit:2492":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:2493":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:2494":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:24949":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:2495":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:24959":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:2496":{"rank":571,"runs":[548,19,2,1,1]},"exit:2498":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:2499":{"rank":567,"runs":[544,12,6,3,1,1]},"exit:2501":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:2502":{"rank":567,"runs":[540,8,4,4,3,3,3,1,1]},"exit:2504":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:2505":{"rank":567,"runs":[536,8,8,4,3,3,3,1,1]},"exit:2507":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"exit:2508":{"rank":567,"runs":[532,12,12,3,3,3,1,1]},"exit:2509":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:25091":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:2511":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:25113":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:2512":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:25130":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:2514":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:2515":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:2517":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:2518":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:2519":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:2521":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:2522":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:2524":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:2525":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:2526":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:2528":{"rank":569,"runs":[546,17,4,1,1]},"exit:2529":{"rank":567,"runs":[544,15,6,1,1]},"exit:2530":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:2531":{"rank":569,"runs":[545,18,4,1,1]},"exit:2532":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:2533":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:2536":{"rank":565,"runs":[534,8,8,7,4,1,1,1,1]},"exit:2542":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:2543":{"rank":565,"runs":[534,8,7,6,4,4,1,1]},"exit:2544":{"rank":565,"runs":[538,10,4,4,4,3,1,1]},"exit:2545":{"rank":565,"runs":[541,14,8,1,1]},"exit:2549":{"rank":557,"runs":[534,16,4,1,1,1]},"exit:2551":{"rank":557,"runs":[533,16,6,1,1]},"exit:2552":{"rank":551,"runs":[527,23,1]},"exit:2553":{"rank":553,"runs":[529,20,2,1,1]},"exit:25576":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:25577":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:25578":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:25579":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:25580":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:25581":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:25582":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:25583":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:25584":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:25587":{"rank":571,"runs":[545,15,3,3,1,1,1,1,1]},"exit:25588":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:25589":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:25590":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:25591":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:25592":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:25593":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:25594":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:25595":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:25598":{"rank":571,"runs":[547,15,3,1,1,1,1,1,1]},"exit:25599":{"rank":573,"runs":[550,12,9,1,1]},"exit:25601":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:25602":{"rank":573,"runs":[550,11,10,1,1]},"exit:25604":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:25605":{"rank":573,"runs":[550,13,8,1,1]},"exit:25607":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:25608":{"rank":573,"runs":[550,15,6,1,1]},"exit:25610":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:25611":{"rank":573,"runs":[550,17,4,1,1]},"exit:25613":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:25614":{"rank":573,"runs":[550,19,2,1,1]},"exit:25616":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:25617":{"rank":573,"runs":[550,21,1,1]},"exit:25619":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:25622":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:25623":{"rank":573,"runs":[550,11,10,1,1]},"exit:25625":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:25626":{"rank":573,"runs":[550,13,8,1,1]},"exit:25628":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:25629":{"rank":573,"runs":[550,15,6,1,1]},"exit:25631":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:25632":{"rank":573,"runs":[550,17,4,1,1]},"exit:25634":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:25635":{"rank":573,"runs":[550,19,2,1,1]},"exit:25637":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:25638":{"rank":573,"runs":[550,21,1,1]},"exit:25640":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:25643":{"rank":571,"runs":[548,11,6,2,2,1,1]},"exit:25644":{"rank":573,"runs":[550,13,8,1,1]},"exit:25646":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:25647":{"rank":573,"runs":[550,15,6,1,1]},"exit:25649":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:25650":{"rank":573,"runs":[550,17,4,1,1]},"exit:25652":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:25653":{"rank":573,"runs":[550,19,2,1,1]},"exit:25655":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:25656":{"rank":573,"runs":[550,21,1,1]},"exit:25658":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:25661":{"rank":571,"runs":[548,9,6,4,2,1,1]},"exit:25662":{"rank":573,"runs":[550,15,6,1,1]},"exit:25664":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:25665":{"rank":573,"runs":[550,17,4,1,1]},"exit:25667":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:25668":{"rank":573,"runs":[550,19,2,1,1]},"exit:25670":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:25671":{"rank":573,"runs":[550,21,1,1]},"exit:25673":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:25676":{"rank":571,"runs":[548,7,6,6,2,1,1]},"exit:25677":{"rank":573,"runs":[550,17,4,1,1]},"exit:25679":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:25680":{"rank":573,"runs":[550,19,2,1,1]},"exit:25682":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:25683":{"rank":573,"runs":[550,21,1,1]},"exit:25685":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:25688":{"rank":571,"runs":[548,8,6,5,2,1,1]},"exit:25689":{"rank":573,"runs":[550,19,2,1,1]},"exit:2569":{"rank":557,"runs":[533,16,6,1,1]},"exit:25691":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:25692":{"rank":573,"runs":[550,21,1,1]},"exit:25694":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:25697":{"rank":571,"runs":[548,10,6,3,2,1,1]},"exit:25698":{"rank":573,"runs":[550,21,1,1]},"exit:25700":{"rank":571,"runs":[548,19,2,1,1]},"exit:25703":{"rank":571,"runs":[548,12,6,2,1,1,1]},"exit:25706":{"rank":571,"runs":[547,14,6,2,1,1]},"exit:25709":{"rank":569,"runs":[544,12,3,3,2,2,1,1,1]},"exit:25710":{"rank":567,"runs":[542,12,3,3,2,2,1,1,1]},"exit:25712":{"rank":569,"runs":[540,8,6,6,3,3,1,1,1]},"exit:25713":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:25715":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"exit:25716":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:25718":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:25720":{"rank":569,"runs":[545,15,3,1,1,1,1,1,1]},"exit:25722":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:25723":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:25725":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:25726":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:25728":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:25729":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:25730":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:25732":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:25733":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:25735":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:25736":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:25737":{"rank":569,"runs":[546,7,6,4,4,1,1]},"exit:25739":{"rank":569,"runs":[546,17,4,1,1]},"exit:25740":{"rank":567,"runs":[544,15,6,1,1]},"exit:25741":{"rank":569,"runs":[546,8,6,4,3,1,1]},"exit:25742":{"rank":569,"runs":[545,12,6,4,1,1]},"exit:25743":{"rank":569,"runs":[545,18,5,1]},"exit:25744":{"rank":569,"runs":[540,12,6,5,3,1,1,1]},"exit:25745":{"rank":565,"runs":[532,10,9,7,4,1,1,1]},"exit:25751":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:25752":{"rank":565,"runs":[534,8,7,6,4,4,1,1]},"exit:25754":{"rank":565,"runs":[541,8,8,6,1,1]},"exit:25760":{"rank":557,"runs":[533,17,6,1]},"exit:25761":{"rank":551,"runs":[527,23,1]},"exit:25777":{"rank":557,"runs":[533,17,6,1]},"exit:25813":{"rank":559,"runs":[531,13,5,4,3,1,1,1]},"exit:25814":{"rank":555,"runs":[531,13,5,3,1,1,1]},"exit:25820":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:25838":{"rank":556,"runs":[532,13,4,3,1,1,1,1]},"exit:25844":{"rank":559,"runs":[535,9,7,5,1,1,1]},"exit:25871":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:25877":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:25916":{"rank":557,"runs":[531,13,3,3,3,2,1,1]},"exit:2604":{"rank":557,"runs":[534,16,3,2,1,1]},"exit:2608":{"rank":559,"runs":[532,12,4,4,3,2,1,1]},"exit:2609":{"rank":555,"runs":[532,18,3,1,1]},"exit:2615":{"rank":555,"runs":[532,18,3,1,1]},"exit:26150":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:2620":{"rank":553,"runs":[530,20,1,1,1]},"exit:26224":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:26230":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:2633":{"rank":556,"runs":[533,17,3,1,1,1]},"exit:2634":{"rank":554,"runs":[531,19,2,1,1]},"exit:26346":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:26356":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:2636":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:2637":{"rank":559,"runs":[532,10,4,4,4,3,1,1]},"exit:2639":{"rank":559,"runs":[536,14,7,1,1]},"exit:26411":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:26421":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:2672":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:2673":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:2674":{"rank":557,"runs":[532,14,3,2,2,2,1,1]},"exit:2710":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:2711":{"rank":557,"runs":[532,12,4,3,2,2,1,1]},"exit:28564":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:28575":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:2865":{"rank":557,"runs":[532,12,4,3,2,2,1,1]},"exit:28836":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:28858":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:2905":{"rank":557,"runs":[532,14,3,2,2,2,1,1]},"exit:29324":{"rank":571,"runs":[548,19,2,1,1]},"exit:29327":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:29330":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:29333":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:29336":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:29339":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:29342":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:29344":{"rank":573,"runs":[550,18,3,1,1]},"exit:29345":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:29347":{"rank":573,"runs":[550,20,1,1,1]},"exit:29348":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:29351":{"rank":571,"runs":[547,15,5,2,1,1]},"exit:29354":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:29357":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:29360":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:29363":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:29366":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:29369":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:29371":{"rank":573,"runs":[550,18,3,1,1]},"exit:29372":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:29374":{"rank":573,"runs":[550,20,1,1,1]},"exit:29375":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:29378":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:29381":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:29384":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:29387":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:29390":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:29393":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:29395":{"rank":573,"runs":[550,18,3,1,1]},"exit:29396":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:29398":{"rank":573,"runs":[550,20,1,1,1]},"exit:29399":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:29402":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:29405":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:29408":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:29411":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:29414":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:29416":{"rank":573,"runs":[550,18,3,1,1]},"exit:29417":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:29419":{"rank":573,"runs":[550,20,1,1,1]},"exit:29420":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:29423":{"rank":571,"runs":[548,9,5,5,2,1,1]},"exit:29426":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:29429":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:29432":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:29434":{"rank":573,"runs":[550,18,3,1,1]},"exit:29435":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:29437":{"rank":573,"runs":[550,20,1,1,1]},"exit:29438":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:29441":{"rank":571,"runs":[548,7,7,5,2,1,1]},"exit:29444":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:29447":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:29449":{"rank":573,"runs":[550,18,3,1,1]},"exit:2945":{"rank":557,"runs":[534,16,5,1,1]},"exit:29450":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:29452":{"rank":573,"runs":[550,20,1,1,1]},"exit:29453":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:29456":{"rank":571,"runs":[548,9,5,5,2,1,1]},"exit:29459":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:29461":{"rank":573,"runs":[550,18,3,1,1]},"exit:29462":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:29464":{"rank":573,"runs":[550,20,1,1,1]},"exit:29465":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:29468":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:29470":{"rank":573,"runs":[550,18,3,1,1]},"exit:29471":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:29473":{"rank":573,"runs":[550,20,1,1,1]},"exit:29474":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:29477":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:29478":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:29481":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:29484":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:29487":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:29488":{"rank":567,"runs":[544,15,6,1,1]},"exit:29490":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:29491":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:29493":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:29494":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:29496":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:29498":{"rank":569,"runs":[545,13,5,4,1,1]},"exit:29500":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:29501":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:29503":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:29504":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:29506":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:29507":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:29508":{"rank":569,"runs":[546,9,5,4,3,1,1]},"exit:29510":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:29511":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:29513":{"rank":569,"runs":[540,10,6,6,3,1,1,1,1]},"exit:29514":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:29515":{"rank":569,"runs":[546,7,5,5,4,1,1]},"exit:29517":{"rank":569,"runs":[544,14,3,2,2,1,1,1,1]},"exit:29518":{"rank":567,"runs":[542,12,3,3,2,2,1,1,1]},"exit:29519":{"rank":569,"runs":[546,11,5,4,1,1,1]},"exit:29520":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:29522":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:29523":{"rank":565,"runs":[536,8,7,6,5,1,1,1]},"exit:29525":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:29529":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:29530":{"rank":565,"runs":[533,9,9,4,4,3,1,1,1]},"exit:29532":{"rank":565,"runs":[541,11,4,4,1,1,1,1,1]},"exit:29539":{"rank":551,"runs":[527,23,1]},"exit:29541":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:29548":{"rank":559,"runs":[535,8,7,6,1,1,1]},"exit:29554":{"rank":557,"runs":[533,12,4,3,1,1,1,1,1]},"exit:29559":{"rank":557,"runs":[533,12,4,3,1,1,1,1,1]},"exit:29585":{"rank":557,"runs":[533,16,5,1,1,1]},"exit:29600":{"rank":557,"runs":[532,11,5,4,2,1,1,1]},"exit:29614":{"rank":556,"runs":[532,16,4,1,1,1,1]},"exit:29616":{"rank":556,"runs":[532,16,4,1,1,1,1]},"exit:29647":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:29653":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:29727":{"rank":557,"runs":[533,10,6,5,1,1,1]},"exit:29923":{"rank":557,"runs":[531,10,6,3,3,2,1,1]},"exit:30000":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:30160":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:30170":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:30171":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:3019":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:3025":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:3026":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:30280":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:30290":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:30291":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:3030":{"rank":553,"runs":[530,20,1,1,1]},"exit:30411":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:30532":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:3070":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:3179":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:3180":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:3181":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:32238":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:32319":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:32936":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:32937":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:32938":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:32939":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:32940":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:32941":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:32942":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:32943":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:32944":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:32947":{"rank":571,"runs":[543,13,5,5,1,1,1,1,1]},"exit:32948":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:32949":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:32950":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:32951":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:32952":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:32953":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:32954":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:32955":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:32958":{"rank":571,"runs":[545,13,3,3,3,1,1,1,1]},"exit:32959":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:32960":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:32961":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:32962":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:32963":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:32964":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:32965":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:32968":{"rank":571,"runs":[547,13,5,1,1,1,1,1,1]},"exit:32969":{"rank":573,"runs":[550,11,10,1,1]},"exit:32971":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:32972":{"rank":573,"runs":[550,13,8,1,1]},"exit:32974":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:32975":{"rank":573,"runs":[550,15,6,1,1]},"exit:32977":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:32978":{"rank":573,"runs":[550,17,4,1,1]},"exit:32980":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:32981":{"rank":573,"runs":[550,19,2,1,1]},"exit:32983":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:32984":{"rank":573,"runs":[550,21,1,1]},"exit:32986":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:32989":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:3299":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:32990":{"rank":573,"runs":[550,13,8,1,1]},"exit:32992":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:32993":{"rank":573,"runs":[550,15,6,1,1]},"exit:32995":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:32996":{"rank":573,"runs":[550,17,4,1,1]},"exit:32998":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:32999":{"rank":573,"runs":[550,19,2,1,1]},"exit:3300":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:33001":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:33002":{"rank":573,"runs":[550,21,1,1]},"exit:33004":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:33007":{"rank":571,"runs":[548,9,8,2,2,1,1]},"exit:33008":{"rank":573,"runs":[550,15,6,1,1]},"exit:3301":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:33010":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:33011":{"rank":573,"runs":[550,17,4,1,1]},"exit:33013":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:33014":{"rank":573,"runs":[550,19,2,1,1]},"exit:33016":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:33017":{"rank":573,"runs":[550,21,1,1]},"exit:33019":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:33022":{"rank":571,"runs":[548,8,7,4,2,1,1]},"exit:33023":{"rank":573,"runs":[550,17,4,1,1]},"exit:33025":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:33026":{"rank":573,"runs":[550,19,2,1,1]},"exit:33028":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:33029":{"rank":573,"runs":[550,21,1,1]},"exit:33031":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:33034":{"rank":571,"runs":[548,8,6,5,2,1,1]},"exit:33035":{"rank":573,"runs":[550,19,2,1,1]},"exit:33037":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:33038":{"rank":573,"runs":[550,21,1,1]},"exit:33040":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:33043":{"rank":571,"runs":[548,8,8,3,2,1,1]},"exit:33044":{"rank":573,"runs":[550,21,1,1]},"exit:33046":{"rank":571,"runs":[548,19,2,1,1]},"exit:33049":{"rank":571,"runs":[548,10,8,2,1,1,1]},"exit:33052":{"rank":571,"runs":[547,12,8,2,1,1]},"exit:33055":{"rank":569,"runs":[544,12,3,3,2,2,1,1,1]},"exit:33056":{"rank":567,"runs":[542,12,5,2,2,1,1,1,1]},"exit:33058":{"rank":569,"runs":[540,8,6,6,3,3,1,1,1]},"exit:33059":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:33061":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"exit:33062":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:33064":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:33066":{"rank":569,"runs":[543,13,3,3,3,1,1,1,1]},"exit:33068":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:33069":{"rank":567,"runs":[542,8,5,5,2,2,1,1,1]},"exit:33071":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:33072":{"rank":567,"runs":[538,5,4,4,4,3,2,2,2,1,1,1]},"exit:33074":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:33075":{"rank":567,"runs":[534,8,8,5,3,2,2,2,1,1,1]},"exit:33076":{"rank":569,"runs":[545,11,5,3,1,1,1,1,1]},"exit:33078":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:33079":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:33081":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:33082":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:33083":{"rank":569,"runs":[546,8,7,4,2,1,1]},"exit:33085":{"rank":569,"runs":[546,17,4,1,1]},"exit:33086":{"rank":567,"runs":[544,15,6,1,1]},"exit:33087":{"rank":569,"runs":[546,8,6,4,3,1,1]},"exit:33088":{"rank":569,"runs":[545,10,8,4,1,1]},"exit:33089":{"rank":569,"runs":[545,18,5,1]},"exit:33090":{"rank":569,"runs":[540,12,4,3,2,2,2,1,1,1,1]},"exit:33091":{"rank":565,"runs":[532,10,9,7,4,1,1,1]},"exit:33097":{"rank":563,"runs":[538,9,5,4,2,2,1,1,1]},"exit:33100":{"rank":565,"runs":[541,8,8,6,1,1]},"exit:33104":{"rank":557,"runs":[532,9,7,4,2,1,1,1]},"exit:33106":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:33107":{"rank":551,"runs":[527,23,1]},"exit:33123":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:33129":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:33160":{"rank":555,"runs":[531,11,7,3,1,1,1]},"exit:33173":{"rank":556,"runs":[532,15,4,2,1,1,1]},"exit:33184":{"rank":556,"runs":[532,11,6,3,1,1,1,1]},"exit:33223":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:33300":{"rank":557,"runs":[531,11,5,3,3,2,1,1]},"exit:33496":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:33692":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:33702":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:33757":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:33767":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:3421":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:3542":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:36572":{"rank":571,"runs":[548,19,2,1,1]},"exit:36575":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:36578":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:36581":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:36584":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:36587":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:36589":{"rank":573,"runs":[550,16,5,1,1]},"exit:36590":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:36592":{"rank":573,"runs":[550,18,3,1,1]},"exit:36593":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:36595":{"rank":573,"runs":[550,20,1,1,1]},"exit:36596":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:36599":{"rank":571,"runs":[547,13,7,2,1,1]},"exit:36602":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:36605":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:36608":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:36611":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:36614":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:36616":{"rank":573,"runs":[550,16,5,1,1]},"exit:36617":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:36619":{"rank":573,"runs":[550,18,3,1,1]},"exit:36620":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:36622":{"rank":573,"runs":[550,20,1,1,1]},"exit:36623":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:36626":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:36629":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:36632":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:36635":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:36638":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:36640":{"rank":573,"runs":[550,16,5,1,1]},"exit:36641":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:36643":{"rank":573,"runs":[550,18,3,1,1]},"exit:36644":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:36646":{"rank":573,"runs":[550,20,1,1,1]},"exit:36647":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:36650":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:36653":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:36656":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:36659":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:36661":{"rank":573,"runs":[550,16,5,1,1]},"exit:36662":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:36664":{"rank":573,"runs":[550,18,3,1,1]},"exit:36665":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:36667":{"rank":573,"runs":[550,20,1,1,1]},"exit:36668":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:36671":{"rank":571,"runs":[548,7,7,5,2,1,1]},"exit:36674":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:36677":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:36679":{"rank":573,"runs":[550,16,5,1,1]},"exit:36680":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:36682":{"rank":573,"runs":[550,18,3,1,1]},"exit:36683":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:36685":{"rank":573,"runs":[550,20,1,1,1]},"exit:36686":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:36689":{"rank":571,"runs":[548,7,7,5,2,1,1]},"exit:36692":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:36694":{"rank":573,"runs":[550,16,5,1,1]},"exit:36695":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:36697":{"rank":573,"runs":[550,18,3,1,1]},"exit:36698":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:36700":{"rank":573,"runs":[550,20,1,1,1]},"exit:36701":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:36704":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:36706":{"rank":573,"runs":[550,16,5,1,1]},"exit:36707":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:36709":{"rank":573,"runs":[550,18,3,1,1]},"exit:36710":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:36712":{"rank":573,"runs":[550,20,1,1,1]},"exit:36713":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:36716":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:36717":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:36718":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:36721":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:36722":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:36725":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:36728":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:36729":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:36731":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:36732":{"rank":567,"runs":[544,15,6,1,1]},"exit:36734":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:36735":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:36737":{"rank":569,"runs":[536,8,8,5,2,2,2,2,1,1,1,1]},"exit:36738":{"rank":567,"runs":[534,8,8,5,3,2,2,2,1,1,1]},"exit:36740":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:36742":{"rank":569,"runs":[545,11,7,4,1,1]},"exit:36744":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:36745":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:36747":{"rank":569,"runs":[540,6,5,4,4,2,2,2,1,1,1,1]},"exit:36748":{"rank":567,"runs":[538,5,4,4,4,3,2,2,2,1,1,1]},"exit:36750":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:36751":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:36752":{"rank":569,"runs":[546,7,7,4,3,1,1]},"exit:36754":{"rank":569,"runs":[544,10,5,3,2,2,1,1,1]},"exit:36755":{"rank":567,"runs":[542,8,5,5,2,2,1,1,1]},"exit:36757":{"rank":569,"runs":[540,10,6,6,3,1,1,1,1]},"exit:36758":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:36759":{"rank":569,"runs":[546,7,7,4,3,1,1]},"exit:36761":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:36762":{"rank":567,"runs":[542,12,5,2,2,1,1,1,1]},"exit:36763":{"rank":569,"runs":[545,11,5,2,2,1,1,1,1]},"exit:36764":{"rank":569,"runs":[544,14,3,2,2,1,1,1,1]},"exit:36766":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:36767":{"rank":565,"runs":[536,8,5,4,3,2,2,2,1,1,1]},"exit:36769":{"rank":569,"runs":[544,14,3,2,2,1,1,1,1]},"exit:36773":{"rank":563,"runs":[538,9,5,4,2,2,1,1,1]},"exit:36776":{"rank":565,"runs":[541,11,6,2,1,1,1,1,1]},"exit:36783":{"rank":551,"runs":[527,23,1]},"exit:36785":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:36792":{"rank":559,"runs":[535,8,7,6,1,1,1]},"exit:36798":{"rank":557,"runs":[533,10,6,3,1,1,1,1,1]},"exit:36803":{"rank":557,"runs":[533,10,6,3,1,1,1,1,1]},"exit:36829":{"rank":557,"runs":[533,14,5,2,1,1,1]},"exit:36844":{"rank":557,"runs":[532,9,7,4,2,1,1,1]},"exit:36858":{"rank":556,"runs":[532,14,4,3,1,1,1]},"exit:36860":{"rank":556,"runs":[532,14,4,3,1,1,1]},"exit:36971":{"rank":557,"runs":[533,8,8,5,1,1,1]},"exit:37244":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:37414":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:37534":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:37655":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:37776":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:39374":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:39455":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:40072":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:40073":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:40074":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:40075":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:40076":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:40077":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:40078":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:40079":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:40080":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:40083":{"rank":571,"runs":[541,11,7,7,1,1,1,1,1]},"exit:40084":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:40085":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:40086":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:40087":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:40088":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:40089":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:40090":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:40091":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:40094":{"rank":571,"runs":[543,11,5,5,3,1,1,1,1]},"exit:40095":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:40096":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:40097":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:40098":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:40099":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:40100":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:40101":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:40104":{"rank":571,"runs":[545,11,5,3,3,1,1,1,1]},"exit:40105":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:40106":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:40107":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:40108":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:40109":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:40110":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:40113":{"rank":571,"runs":[547,11,7,1,1,1,1,1,1]},"exit:40114":{"rank":573,"runs":[550,13,8,1,1]},"exit:40116":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:40117":{"rank":573,"runs":[550,15,6,1,1]},"exit:40119":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:40120":{"rank":573,"runs":[550,17,4,1,1]},"exit:40122":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:40123":{"rank":573,"runs":[550,19,2,1,1]},"exit:40125":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:40126":{"rank":573,"runs":[550,21,1,1]},"exit:40128":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:40131":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:40132":{"rank":573,"runs":[550,15,6,1,1]},"exit:40134":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:40135":{"rank":573,"runs":[550,17,4,1,1]},"exit:40137":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:40138":{"rank":573,"runs":[550,19,2,1,1]},"exit:40140":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:40141":{"rank":573,"runs":[550,21,1,1]},"exit:40143":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:40146":{"rank":571,"runs":[548,10,7,2,2,1,1]},"exit:40147":{"rank":573,"runs":[550,17,4,1,1]},"exit:40149":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:40150":{"rank":573,"runs":[550,19,2,1,1]},"exit:40152":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:40153":{"rank":573,"runs":[550,21,1,1]},"exit:40155":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:40158":{"rank":571,"runs":[548,10,5,4,2,1,1]},"exit:40159":{"rank":573,"runs":[550,19,2,1,1]},"exit:40161":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:40162":{"rank":573,"runs":[550,21,1,1]},"exit:40164":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:40167":{"rank":571,"runs":[548,10,6,3,2,1,1]},"exit:40168":{"rank":573,"runs":[550,21,1,1]},"exit:40170":{"rank":571,"runs":[548,19,2,1,1]},"exit:40173":{"rank":571,"runs":[548,10,8,2,1,1,1]},"exit:40176":{"rank":571,"runs":[547,10,10,2,1,1]},"exit:40179":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:40180":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:40182":{"rank":569,"runs":[540,8,6,6,3,3,1,1,1]},"exit:40183":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:40185":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"exit:40186":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:40188":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:40190":{"rank":569,"runs":[541,11,5,5,3,1,1,1,1]},"exit:40192":{"rank":569,"runs":[544,8,7,3,2,2,1,1,1]},"exit:40193":{"rank":567,"runs":[542,8,5,3,3,2,2,1,1]},"exit:40195":{"rank":569,"runs":[540,7,6,6,4,3,1,1,1]},"exit:40196":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:40198":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"exit:40199":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:40200":{"rank":569,"runs":[545,11,5,3,1,1,1,1,1]},"exit:40202":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:40203":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:40205":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:40206":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:40207":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:40209":{"rank":569,"runs":[546,17,4,1,1]},"exit:40210":{"rank":567,"runs":[544,15,6,1,1]},"exit:40211":{"rank":569,"runs":[546,10,4,4,3,1,1]},"exit:40212":{"rank":569,"runs":[545,10,8,4,1,1]},"exit:40213":{"rank":569,"runs":[545,18,5,1]},"exit:40214":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:40215":{"rank":565,"runs":[532,10,9,7,4,1,1,1]},"exit:40221":{"rank":563,"runs":[538,7,5,4,3,2,2,1,1]},"exit:40224":{"rank":565,"runs":[541,10,8,4,1,1]},"exit:40228":{"rank":557,"runs":[532,9,7,4,2,1,1,1]},"exit:40230":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:40231":{"rank":551,"runs":[527,23,1]},"exit:40247":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:40253":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:40284":{"rank":555,"runs":[531,9,9,3,1,1,1]},"exit:40308":{"rank":556,"runs":[532,9,8,3,1,1,1,1]},"exit:40620":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:43596":{"rank":571,"runs":[548,19,2,1,1]},"exit:43599":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:43602":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:43605":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:43608":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:43610":{"rank":573,"runs":[550,14,7,1,1]},"exit:43611":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:43613":{"rank":573,"runs":[550,16,5,1,1]},"exit:43614":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:43616":{"rank":573,"runs":[550,18,3,1,1]},"exit:43617":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:43619":{"rank":573,"runs":[550,20,1,1,1]},"exit:43620":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:43623":{"rank":571,"runs":[547,11,9,2,1,1]},"exit:43626":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:43629":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:43632":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:43635":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:43637":{"rank":573,"runs":[550,14,7,1,1]},"exit:43638":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:43640":{"rank":573,"runs":[550,16,5,1,1]},"exit:43641":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:43643":{"rank":573,"runs":[550,18,3,1,1]},"exit:43644":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:43646":{"rank":573,"runs":[550,20,1,1,1]},"exit:43647":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:43650":{"rank":571,"runs":[548,9,9,2,1,1,1]},"exit:43653":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:43656":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:43659":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:43661":{"rank":573,"runs":[550,14,7,1,1]},"exit:43662":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:43664":{"rank":573,"runs":[550,16,5,1,1]},"exit:43665":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:43667":{"rank":573,"runs":[550,18,3,1,1]},"exit:43668":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:43670":{"rank":573,"runs":[550,20,1,1,1]},"exit:43671":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:43674":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:43677":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:43680":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:43682":{"rank":573,"runs":[550,14,7,1,1]},"exit:43683":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:43685":{"rank":573,"runs":[550,16,5,1,1]},"exit:43686":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:43688":{"rank":573,"runs":[550,18,3,1,1]},"exit:43689":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:43691":{"rank":573,"runs":[550,20,1,1,1]},"exit:43692":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:43695":{"rank":571,"runs":[548,9,5,5,2,1,1]},"exit:43698":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:43700":{"rank":573,"runs":[550,14,7,1,1]},"exit:43701":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:43703":{"rank":573,"runs":[550,16,5,1,1]},"exit:43704":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:43706":{"rank":573,"runs":[550,18,3,1,1]},"exit:43707":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:43709":{"rank":573,"runs":[550,20,1,1,1]},"exit:43710":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:43713":{"rank":571,"runs":[548,9,7,3,2,1,1]},"exit:43715":{"rank":573,"runs":[550,14,7,1,1]},"exit:43716":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:43718":{"rank":573,"runs":[550,16,5,1,1]},"exit:43719":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:43721":{"rank":573,"runs":[550,18,3,1,1]},"exit:43722":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:43724":{"rank":573,"runs":[550,20,1,1,1]},"exit:43725":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:43728":{"rank":571,"runs":[548,9,9,2,1,1,1]},"exit:43729":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:43730":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:43731":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:43734":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:43735":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:43736":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:43739":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:43740":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:43743":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:43746":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:43749":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:43750":{"rank":567,"runs":[544,15,6,1,1]},"exit:43752":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:43753":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:43755":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:43756":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:43758":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:43760":{"rank":569,"runs":[545,9,9,4,1,1]},"exit:43762":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:43763":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:43765":{"rank":569,"runs":[540,6,6,6,5,3,1,1,1]},"exit:43766":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:43768":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:43769":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:43770":{"rank":569,"runs":[546,9,5,4,3,1,1]},"exit:43772":{"rank":569,"runs":[544,10,5,3,2,2,1,1,1]},"exit:43773":{"rank":567,"runs":[542,8,5,3,3,2,2,1,1]},"exit:43775":{"rank":569,"runs":[540,10,6,6,3,1,1,1,1]},"exit:43776":{"rank":567,"runs":[538,8,6,6,3,3,1,1,1]},"exit:43777":{"rank":569,"runs":[546,9,7,4,1,1,1]},"exit:43779":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:43780":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:43781":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:43782":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:43784":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:43785":{"rank":565,"runs":[536,8,4,4,3,3,2,2,1,1,1]},"exit:43787":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:43791":{"rank":563,"runs":[538,7,5,4,3,2,2,1,1]},"exit:43794":{"rank":565,"runs":[542,12,8,1,1,1]},"exit:43801":{"rank":551,"runs":[527,23,1]},"exit:43803":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:43810":{"rank":559,"runs":[535,10,7,4,1,1,1]},"exit:43816":{"rank":557,"runs":[533,8,8,3,1,1,1,1,1]},"exit:43821":{"rank":557,"runs":[533,8,8,3,1,1,1,1,1]},"exit:43847":{"rank":557,"runs":[533,12,5,4,1,1,1]},"exit:43862":{"rank":557,"runs":[532,9,7,4,2,1,1,1]},"exit:43989":{"rank":557,"runs":[533,10,6,5,1,1,1]},"exit:44105":{"rank":557,"runs":[531,10,6,3,3,2,1,1]},"exit:44432":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:44552":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:44673":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:44794":{"rank":555,"runs":[531,10,8,3,1,1,1]},"exit:46984":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:46985":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:46986":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:46987":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:46988":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:46989":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:46990":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:46991":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:46992":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:46995":{"rank":571,"runs":[539,9,9,9,1,1,1,1,1]},"exit:46996":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:46997":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:46998":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:46999":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:47000":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:47001":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:47002":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:47003":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:47006":{"rank":571,"runs":[541,9,7,7,3,1,1,1,1]},"exit:47007":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:47008":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:47009":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:47010":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:47011":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:47012":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:47013":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:47016":{"rank":571,"runs":[543,9,5,5,5,1,1,1,1]},"exit:47017":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:47018":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:47019":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:47020":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:47021":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:47022":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:47025":{"rank":571,"runs":[545,9,7,3,3,1,1,1,1]},"exit:47026":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:47027":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:47028":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:47029":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:47030":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:47033":{"rank":571,"runs":[547,9,9,1,1,1,1,1,1]},"exit:47034":{"rank":573,"runs":[550,15,6,1,1]},"exit:47036":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:47037":{"rank":573,"runs":[550,17,4,1,1]},"exit:47039":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:47040":{"rank":573,"runs":[550,19,2,1,1]},"exit:47042":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:47043":{"rank":573,"runs":[550,21,1,1]},"exit:47045":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:47048":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:47049":{"rank":573,"runs":[550,17,4,1,1]},"exit:47051":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:47052":{"rank":573,"runs":[550,19,2,1,1]},"exit:47054":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:47055":{"rank":573,"runs":[550,21,1,1]},"exit:47057":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:47060":{"rank":571,"runs":[548,12,5,2,2,1,1]},"exit:47061":{"rank":573,"runs":[550,19,2,1,1]},"exit:47063":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:47064":{"rank":573,"runs":[550,21,1,1]},"exit:47066":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:47069":{"rank":571,"runs":[548,12,4,3,2,1,1]},"exit:47070":{"rank":573,"runs":[550,21,1,1]},"exit:47072":{"rank":571,"runs":[548,19,2,1,1]},"exit:47075":{"rank":571,"runs":[548,12,6,2,1,1,1]},"exit:47078":{"rank":571,"runs":[547,12,8,2,1,1]},"exit:47081":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:47082":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:47084":{"rank":569,"runs":[540,8,4,4,3,2,2,2,1,1,1,1]},"exit:47085":{"rank":567,"runs":[538,8,4,4,3,2,2,2,1,1,1,1]},"exit:47087":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"exit:47088":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:47090":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:47092":{"rank":569,"runs":[539,9,7,7,3,1,1,1,1]},"exit:47094":{"rank":569,"runs":[544,8,7,3,2,2,1,1,1]},"exit:47095":{"rank":567,"runs":[542,8,5,5,2,2,1,1,1]},"exit:47097":{"rank":569,"runs":[540,7,6,6,4,3,1,1,1]},"exit:47098":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:47100":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"exit:47101":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:47102":{"rank":569,"runs":[543,9,5,3,3,3,1,1,1]},"exit:47104":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:47105":{"rank":567,"runs":[542,9,5,4,2,2,1,1,1]},"exit:47107":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:47108":{"rank":567,"runs":[538,9,4,4,3,2,2,2,1,1,1]},"exit:47109":{"rank":569,"runs":[545,9,7,3,1,1,1,1,1]},"exit:47111":{"rank":569,"runs":[546,17,4,1,1]},"exit:47112":{"rank":567,"runs":[544,15,6,1,1]},"exit:47113":{"rank":569,"runs":[546,12,4,3,2,1,1]},"exit:47114":{"rank":569,"runs":[545,12,6,4,1,1]},"exit:47115":{"rank":569,"runs":[545,18,5,1]},"exit:47116":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:47123":{"rank":563,"runs":[538,5,5,5,4,2,2,1,1]},"exit:47126":{"rank":565,"runs":[541,12,8,2,1,1]},"exit:47130":{"rank":557,"runs":[532,11,5,4,2,1,1,1]},"exit:47132":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:47133":{"rank":551,"runs":[527,23,1]},"exit:47149":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:47186":{"rank":555,"runs":[531,11,7,3,1,1,1]},"exit:47210":{"rank":556,"runs":[532,10,7,3,1,1,1,1]},"exit:47522":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:4910":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:50396":{"rank":571,"runs":[548,19,2,1,1]},"exit:50399":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:50402":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:50405":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:50407":{"rank":573,"runs":[550,12,9,1,1]},"exit:50408":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:50410":{"rank":573,"runs":[550,14,7,1,1]},"exit:50411":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:50413":{"rank":573,"runs":[550,16,5,1,1]},"exit:50414":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:50416":{"rank":573,"runs":[550,18,3,1,1]},"exit:50417":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:50419":{"rank":573,"runs":[550,20,1,1,1]},"exit:50420":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:50423":{"rank":571,"runs":[547,11,9,2,1,1]},"exit:50426":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:50429":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:50432":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:50434":{"rank":573,"runs":[550,12,9,1,1]},"exit:50435":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:50437":{"rank":573,"runs":[550,14,7,1,1]},"exit:50438":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:50440":{"rank":573,"runs":[550,16,5,1,1]},"exit:50441":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:50443":{"rank":573,"runs":[550,18,3,1,1]},"exit:50444":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:50446":{"rank":573,"runs":[550,20,1,1,1]},"exit:50447":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:50450":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:50453":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:50456":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:50458":{"rank":573,"runs":[550,12,9,1,1]},"exit:50459":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:50461":{"rank":573,"runs":[550,14,7,1,1]},"exit:50462":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:50464":{"rank":573,"runs":[550,16,5,1,1]},"exit:50465":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:50467":{"rank":573,"runs":[550,18,3,1,1]},"exit:50468":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:50470":{"rank":573,"runs":[550,20,1,1,1]},"exit:50471":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:50474":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:50477":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:50479":{"rank":573,"runs":[550,12,9,1,1]},"exit:50480":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:50482":{"rank":573,"runs":[550,14,7,1,1]},"exit:50483":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:50485":{"rank":573,"runs":[550,16,5,1,1]},"exit:50486":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:50488":{"rank":573,"runs":[550,18,3,1,1]},"exit:50489":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:50491":{"rank":573,"runs":[550,20,1,1,1]},"exit:50492":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:50495":{"rank":571,"runs":[548,11,5,3,2,1,1]},"exit:50497":{"rank":573,"runs":[550,12,9,1,1]},"exit:50498":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:50500":{"rank":573,"runs":[550,14,7,1,1]},"exit:50501":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:50503":{"rank":573,"runs":[550,16,5,1,1]},"exit:50504":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:50506":{"rank":573,"runs":[550,18,3,1,1]},"exit:50507":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:50509":{"rank":573,"runs":[550,20,1,1,1]},"exit:50510":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:50513":{"rank":571,"runs":[548,11,7,2,1,1,1]},"exit:50514":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:50515":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:50516":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:50517":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:50520":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:50521":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:50522":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:50523":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:50526":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:50527":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:50528":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:50531":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:50532":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:50535":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:50538":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:50539":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:50541":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:50542":{"rank":567,"runs":[544,15,6,1,1]},"exit:50544":{"rank":569,"runs":[540,9,4,4,2,2,2,2,1,1,1,1]},"exit:50545":{"rank":567,"runs":[538,9,4,4,3,2,2,2,1,1,1]},"exit:50547":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:50548":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:50550":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:50552":{"rank":569,"runs":[545,11,7,4,1,1]},"exit:50554":{"rank":569,"runs":[544,9,6,3,2,2,1,1,1]},"exit:50555":{"rank":567,"runs":[542,9,5,4,2,2,1,1,1]},"exit:50557":{"rank":569,"runs":[540,6,6,6,5,3,1,1,1]},"exit:50558":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:50560":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:50561":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:50562":{"rank":569,"runs":[546,11,4,3,3,1,1]},"exit:50564":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:50565":{"rank":567,"runs":[542,8,5,5,2,2,1,1,1]},"exit:50567":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:50568":{"rank":567,"runs":[538,8,4,4,3,2,2,2,1,1,1,1]},"exit:50569":{"rank":569,"runs":[545,9,7,2,2,1,1,1,1]},"exit:50571":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:50572":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:50573":{"rank":569,"runs":[544,10,5,3,2,2,1,1,1]},"exit:50574":{"rank":569,"runs":[540,10,6,6,3,1,1,1,1]},"exit:50576":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:50577":{"rank":565,"runs":[536,8,6,4,3,2,2,1,1,1,1]},"exit:50579":{"rank":569,"runs":[540,10,6,6,3,1,1,1,1]},"exit:50583":{"rank":563,"runs":[538,5,5,5,4,2,2,1,1]},"exit:50586":{"rank":565,"runs":[540,10,7,2,2,1,1,1,1]},"exit:50593":{"rank":551,"runs":[527,23,1]},"exit:50595":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:50602":{"rank":559,"runs":[535,12,7,2,1,1,1]},"exit:50608":{"rank":557,"runs":[533,10,6,3,1,1,1,1,1]},"exit:50613":{"rank":557,"runs":[533,10,6,3,1,1,1,1,1]},"exit:50639":{"rank":557,"runs":[533,10,6,5,1,1,1]},"exit:50654":{"rank":557,"runs":[532,11,5,4,2,1,1,1]},"exit:50781":{"rank":557,"runs":[533,12,5,4,1,1,1]},"exit:50858":{"rank":557,"runs":[531,12,4,3,3,2,1,1]},"exit:51224":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:51344":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:51465":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:51586":{"rank":555,"runs":[531,12,6,3,1,1,1]},"exit:5165":{"rank":555,"runs":[532,18,3,1,1]},"exit:5293":{"rank":555,"runs":[532,18,3,1,1]},"exit:53672":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:53673":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:53674":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:53675":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:53676":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:53677":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:53678":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:53679":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:53680":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:53683":{"rank":571,"runs":[537,11,11,7,1,1,1,1,1]},"exit:53684":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:53685":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:53686":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:53687":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:53688":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:53689":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:53690":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:53691":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:53694":{"rank":571,"runs":[539,9,9,7,3,1,1,1,1]},"exit:53695":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:53696":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:53697":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:53698":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:53699":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:53700":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:53701":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:53704":{"rank":571,"runs":[541,7,7,7,5,1,1,1,1]},"exit:53705":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:53706":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:53707":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:53708":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:53709":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:53710":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:53713":{"rank":571,"runs":[543,7,7,5,5,1,1,1,1]},"exit:53714":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:53715":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:53716":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:53717":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:53718":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:53721":{"rank":571,"runs":[545,9,7,3,3,1,1,1,1]},"exit:53722":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:53723":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:53724":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:53725":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:53728":{"rank":571,"runs":[547,11,7,1,1,1,1,1,1]},"exit:53729":{"rank":573,"runs":[550,17,4,1,1]},"exit:53731":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:53732":{"rank":573,"runs":[550,19,2,1,1]},"exit:53734":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:53735":{"rank":573,"runs":[550,21,1,1]},"exit:53737":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:53740":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:53741":{"rank":573,"runs":[550,19,2,1,1]},"exit:53743":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:53744":{"rank":573,"runs":[550,21,1,1]},"exit:53746":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:53749":{"rank":571,"runs":[548,14,3,2,2,1,1]},"exit:53750":{"rank":573,"runs":[550,21,1,1]},"exit:53752":{"rank":571,"runs":[548,19,2,1,1]},"exit:53755":{"rank":571,"runs":[548,14,4,2,1,1,1]},"exit:53758":{"rank":571,"runs":[547,14,6,2,1,1]},"exit:53761":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:53762":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:53764":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:53765":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:53767":{"rank":569,"runs":[536,10,10,4,3,3,1,1,1]},"exit:53768":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:53770":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:53772":{"rank":569,"runs":[537,9,9,7,3,1,1,1,1]},"exit:53774":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:53775":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:53777":{"rank":569,"runs":[540,7,6,6,4,3,1,1,1]},"exit:53778":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:53780":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"exit:53781":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:53782":{"rank":569,"runs":[541,7,5,5,5,3,1,1,1]},"exit:53784":{"rank":569,"runs":[544,11,4,3,2,2,1,1,1]},"exit:53785":{"rank":567,"runs":[542,9,4,3,3,2,2,1,1]},"exit:53787":{"rank":569,"runs":[540,11,6,6,3,1,1,1]},"exit:53788":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:53789":{"rank":569,"runs":[545,9,7,3,1,1,1,1,1]},"exit:53791":{"rank":569,"runs":[546,17,4,1,1]},"exit:53792":{"rank":567,"runs":[544,15,6,1,1]},"exit:53793":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:53794":{"rank":569,"runs":[545,14,4,4,1,1]},"exit:53795":{"rank":569,"runs":[545,18,5,1]},"exit:53796":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:53803":{"rank":563,"runs":[538,7,5,4,3,2,2,1,1]},"exit:53806":{"rank":565,"runs":[541,14,9,1]},"exit:53810":{"rank":557,"runs":[532,13,4,3,2,1,1,1]},"exit:53812":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:53813":{"rank":551,"runs":[527,23,1]},"exit:53829":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:53835":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:53866":{"rank":555,"runs":[531,13,5,3,1,1,1]},"exit:53890":{"rank":556,"runs":[532,12,5,3,1,1,1,1]},"exit:5420":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:54202":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:5421":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:5422":{"rank":555,"runs":[532,18,3,1,1]},"exit:5423":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:5431":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:5549":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:5550":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:5551":{"rank":555,"runs":[532,18,3,1,1]},"exit:5560":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:5561":{"rank":573,"runs":[550,18,3,1,1]},"exit:5562":{"rank":573,"runs":[550,16,5,1,1]},"exit:5563":{"rank":573,"runs":[550,14,7,1,1]},"exit:5564":{"rank":573,"runs":[550,12,9,1,1]},"exit:5566":{"rank":573,"runs":[550,13,8,1,1]},"exit:5568":{"rank":573,"runs":[550,17,4,1,1]},"exit:5569":{"rank":573,"runs":[550,19,2,1,1]},"exit:5570":{"rank":573,"runs":[550,21,1,1]},"exit:5679":{"rank":554,"runs":[531,19,2,1,1]},"exit:5680":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:5690":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:56972":{"rank":571,"runs":[548,19,2,1,1]},"exit:56975":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:56978":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:56980":{"rank":573,"runs":[550,11,10,1,1]},"exit:56981":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:56983":{"rank":573,"runs":[550,12,9,1,1]},"exit:56984":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:56986":{"rank":573,"runs":[550,14,7,1,1]},"exit:56987":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:56989":{"rank":573,"runs":[550,16,5,1,1]},"exit:56990":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:56992":{"rank":573,"runs":[550,18,3,1,1]},"exit:56993":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:56995":{"rank":573,"runs":[550,20,1,1,1]},"exit:56996":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:56999":{"rank":571,"runs":[547,13,7,2,1,1]},"exit:57002":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:57005":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:57007":{"rank":573,"runs":[550,11,10,1,1]},"exit:57008":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:57010":{"rank":573,"runs":[550,12,9,1,1]},"exit:57011":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:57013":{"rank":573,"runs":[550,14,7,1,1]},"exit:57014":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:57016":{"rank":573,"runs":[550,16,5,1,1]},"exit:57017":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:57019":{"rank":573,"runs":[550,18,3,1,1]},"exit:57020":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:57022":{"rank":573,"runs":[550,20,1,1,1]},"exit:57023":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:57026":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:57029":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:57031":{"rank":573,"runs":[550,11,10,1,1]},"exit:57032":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:57034":{"rank":573,"runs":[550,12,9,1,1]},"exit:57035":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:57037":{"rank":573,"runs":[550,14,7,1,1]},"exit:57038":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:57040":{"rank":573,"runs":[550,16,5,1,1]},"exit:57041":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:57043":{"rank":573,"runs":[550,18,3,1,1]},"exit:57044":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:57046":{"rank":573,"runs":[550,20,1,1,1]},"exit:57047":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:57050":{"rank":571,"runs":[548,13,3,3,2,1,1]},"exit:57052":{"rank":573,"runs":[550,11,10,1,1]},"exit:57053":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:57055":{"rank":573,"runs":[550,12,9,1,1]},"exit:57056":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:57058":{"rank":573,"runs":[550,14,7,1,1]},"exit:57059":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:57061":{"rank":573,"runs":[550,16,5,1,1]},"exit:57062":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:57064":{"rank":573,"runs":[550,18,3,1,1]},"exit:57065":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:57067":{"rank":573,"runs":[550,20,1,1,1]},"exit:57068":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:57071":{"rank":571,"runs":[548,13,5,2,1,1,1]},"exit:57072":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:57073":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:57074":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:57075":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:57076":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:57079":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:57080":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:57081":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:57082":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:57083":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:57086":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:57087":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:57088":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:57089":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:57092":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:57093":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:57094":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:57097":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:57098":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:57101":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:57104":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:57107":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:57108":{"rank":567,"runs":[544,15,6,1,1]},"exit:57110":{"rank":569,"runs":[540,9,6,6,3,2,1,1,1]},"exit:57111":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:57113":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:57114":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:57116":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:57118":{"rank":569,"runs":[545,13,5,4,1,1]},"exit:57120":{"rank":569,"runs":[544,9,6,3,2,2,1,1,1]},"exit:57121":{"rank":567,"runs":[542,9,4,3,3,2,2,1,1]},"exit:57123":{"rank":569,"runs":[540,6,6,6,5,3,1,1,1]},"exit:57124":{"rank":567,"runs":[538,6,6,5,4,3,3,1,1]},"exit:57126":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:57127":{"rank":567,"runs":[534,10,10,4,3,3,1,1,1]},"exit:57128":{"rank":569,"runs":[546,13,4,3,1,1,1]},"exit:57130":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:57131":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:57133":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:57134":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:57135":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:57137":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:57138":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:57139":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:57140":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:57142":{"rank":569,"runs":[532,14,13,4,3,1,1,1]},"exit:57143":{"rank":565,"runs":[538,10,7,4,3,1,1,1]},"exit:57145":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:57149":{"rank":563,"runs":[538,7,5,4,3,2,2,1,1]},"exit:57152":{"rank":565,"runs":[538,8,7,4,4,1,1,1,1]},"exit:57159":{"rank":551,"runs":[527,23,1]},"exit:57161":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:57168":{"rank":559,"runs":[535,14,8,1,1]},"exit:57174":{"rank":557,"runs":[533,12,4,3,1,1,1,1,1]},"exit:57179":{"rank":557,"runs":[533,12,4,3,1,1,1,1,1]},"exit:57220":{"rank":557,"runs":[532,13,4,3,2,1,1,1]},"exit:57347":{"rank":557,"runs":[533,14,5,2,1,1,1]},"exit:57385":{"rank":557,"runs":[531,14,3,3,2,2,1,1]},"exit:57790":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:57910":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:58031":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:5809":{"rank":554,"runs":[531,19,2,1,1]},"exit:5810":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:58152":{"rank":555,"runs":[531,14,4,3,1,1,1]},"exit:5820":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:5821":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:5822":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:5823":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:5837":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:5838":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:5839":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:5840":{"rank":553,"runs":[530,20,1,1,1]},"exit:5841":{"rank":553,"runs":[529,21,2,1]},"exit:5842":{"rank":553,"runs":[530,20,1,1,1]},"exit:5862":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:5863":{"rank":553,"runs":[529,20,1,1,1,1]},"exit:5864":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:5934":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:5936":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:5941":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:5942":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:5943":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:5944":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:6013":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:60136":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:60137":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:60138":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:60139":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:60140":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:60141":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:60142":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:60143":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:60144":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:60147":{"rank":571,"runs":[535,13,13,5,1,1,1,1,1]},"exit:60148":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:60149":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:60150":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:60151":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:60152":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:60153":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:60154":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:60155":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:60158":{"rank":571,"runs":[537,11,11,5,3,1,1,1,1]},"exit:60159":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:60160":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:60161":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:60162":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:60163":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:60164":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:60165":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:60168":{"rank":571,"runs":[539,9,9,5,5,1,1,1,1]},"exit:60169":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:60170":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:60171":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:60172":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:60173":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:60174":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:60177":{"rank":571,"runs":[541,7,7,7,5,1,1,1,1]},"exit:60178":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:60179":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:60180":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:60181":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:60182":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:60185":{"rank":571,"runs":[543,9,5,5,5,1,1,1,1]},"exit:60186":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:60187":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:60188":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:60189":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:60192":{"rank":571,"runs":[545,11,5,3,3,1,1,1,1]},"exit:60193":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:60194":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:60195":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:60198":{"rank":571,"runs":[547,13,5,1,1,1,1,1,1]},"exit:60199":{"rank":573,"runs":[550,19,2,1,1]},"exit:60201":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:60202":{"rank":573,"runs":[550,21,1,1]},"exit:60204":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:60207":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:60208":{"rank":573,"runs":[550,21,1,1]},"exit:60210":{"rank":571,"runs":[548,19,2,1,1]},"exit:60213":{"rank":571,"runs":[548,16,2,2,1,1,1]},"exit:60216":{"rank":571,"runs":[547,16,4,2,1,1]},"exit:60219":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:60220":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:60222":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:60223":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:60225":{"rank":569,"runs":[536,8,8,4,3,2,2,2,1,1,1,1]},"exit:60226":{"rank":567,"runs":[534,8,8,4,3,2,2,2,1,1,1,1]},"exit:60228":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:60230":{"rank":569,"runs":[535,11,11,5,3,1,1,1,1]},"exit:60232":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:60233":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:60235":{"rank":569,"runs":[540,7,4,4,4,2,2,2,1,1,1,1]},"exit:60236":{"rank":567,"runs":[538,5,4,4,4,3,2,2,2,1,1,1]},"exit:60238":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"exit:60239":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:60240":{"rank":569,"runs":[539,7,7,5,5,3,1,1,1]},"exit:60242":{"rank":569,"runs":[544,11,4,3,2,2,1,1,1]},"exit:60243":{"rank":567,"runs":[542,9,5,4,2,2,1,1,1]},"exit:60245":{"rank":569,"runs":[540,11,6,6,3,1,1,1]},"exit:60246":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:60247":{"rank":569,"runs":[543,9,5,3,3,3,1,1,1]},"exit:60249":{"rank":569,"runs":[546,17,4,1,1]},"exit:60250":{"rank":567,"runs":[542,13,5,2,2,1,1,1]},"exit:60251":{"rank":569,"runs":[545,13,3,3,1,1,1,1,1]},"exit:60252":{"rank":569,"runs":[545,16,4,2,1,1]},"exit:60253":{"rank":569,"runs":[545,18,5,1]},"exit:60254":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:60261":{"rank":563,"runs":[538,9,5,4,2,2,1,1,1]},"exit:60264":{"rank":565,"runs":[541,13,7,1,1,1,1]},"exit:60268":{"rank":557,"runs":[532,15,4,2,1,1,1,1]},"exit:60270":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:60271":{"rank":551,"runs":[527,23,1]},"exit:60287":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:60293":{"rank":557,"runs":[533,9,7,5,1,1,1]},"exit:60324":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:60348":{"rank":556,"runs":[532,14,3,3,1,1,1,1]},"exit:60620":{"rank":557,"runs":[531,13,3,3,3,2,1,1]},"exit:60660":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:60734":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:60740":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:60741":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:62180":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:62308":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:62437":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:62564":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:62566":{"rank":555,"runs":[531,15,3,3,1,1,1]},"exit:62575":{"rank":554,"runs":[530,14,5,1,1,1,1,1]},"exit:6272":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:6280":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:6286":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:6288":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:6293":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:6294":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:6296":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:6301":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:6302":{"rank":553,"runs":[530,20,1,1,1]},"exit:6303":{"rank":553,"runs":[530,20,1,1,1]},"exit:6304":{"rank":553,"runs":[530,20,1,1,1]},"exit:6305":{"rank":573,"runs":[550,21,1,1]},"exit:6306":{"rank":573,"runs":[550,19,2,1,1]},"exit:6307":{"rank":573,"runs":[550,17,4,1,1]},"exit:6308":{"rank":573,"runs":[550,15,6,1,1]},"exit:6309":{"rank":573,"runs":[550,13,8,1,1]},"exit:6310":{"rank":573,"runs":[550,11,10,1,1]},"exit:6311":{"rank":573,"runs":[550,12,9,1,1]},"exit:6312":{"rank":573,"runs":[550,14,7,1,1]},"exit:6313":{"rank":573,"runs":[550,16,5,1,1]},"exit:6316":{"rank":573,"runs":[550,21,1,1]},"exit:6317":{"rank":573,"runs":[550,19,2,1,1]},"exit:6318":{"rank":573,"runs":[550,17,4,1,1]},"exit:6319":{"rank":573,"runs":[550,15,6,1,1]},"exit:6320":{"rank":573,"runs":[550,13,8,1,1]},"exit:6321":{"rank":573,"runs":[550,11,10,1,1]},"exit:6322":{"rank":573,"runs":[550,12,9,1,1]},"exit:6323":{"rank":573,"runs":[550,14,7,1,1]},"exit:6324":{"rank":573,"runs":[550,16,5,1,1]},"exit:6328":{"rank":573,"runs":[550,19,2,1,1]},"exit:6329":{"rank":571,"runs":[548,19,2,1,1]},"exit:6331":{"rank":573,"runs":[550,17,4,1,1]},"exit:6332":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:63324":{"rank":571,"runs":[548,19,2,1,1]},"exit:63327":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:63329":{"rank":573,"runs":[550,13,8,1,1]},"exit:63330":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:63332":{"rank":573,"runs":[550,11,10,1,1]},"exit:63333":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:63335":{"rank":573,"runs":[550,12,9,1,1]},"exit:63336":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:63338":{"rank":573,"runs":[550,14,7,1,1]},"exit:63339":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:6334":{"rank":573,"runs":[550,15,6,1,1]},"exit:63341":{"rank":573,"runs":[550,16,5,1,1]},"exit:63342":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:63344":{"rank":573,"runs":[550,18,3,1,1]},"exit:63345":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:63347":{"rank":573,"runs":[550,20,1,1,1]},"exit:63348":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:6335":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:63351":{"rank":571,"runs":[547,15,5,2,1,1]},"exit:63354":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:63356":{"rank":573,"runs":[550,13,8,1,1]},"exit:63357":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:63359":{"rank":573,"runs":[550,11,10,1,1]},"exit:63360":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:63362":{"rank":573,"runs":[550,12,9,1,1]},"exit:63363":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:63365":{"rank":573,"runs":[550,14,7,1,1]},"exit:63366":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:63368":{"rank":573,"runs":[550,16,5,1,1]},"exit:63369":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:6337":{"rank":573,"runs":[550,13,8,1,1]},"exit:63371":{"rank":573,"runs":[550,18,3,1,1]},"exit:63372":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:63374":{"rank":573,"runs":[550,20,1,1,1]},"exit:63375":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:63378":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:6338":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:63380":{"rank":573,"runs":[550,13,8,1,1]},"exit:63381":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:63383":{"rank":573,"runs":[550,11,10,1,1]},"exit:63384":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:63386":{"rank":573,"runs":[550,12,9,1,1]},"exit:63387":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:63389":{"rank":573,"runs":[550,14,7,1,1]},"exit:63390":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:63392":{"rank":573,"runs":[550,16,5,1,1]},"exit:63393":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:63395":{"rank":573,"runs":[550,18,3,1,1]},"exit:63396":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:63398":{"rank":573,"runs":[550,20,1,1,1]},"exit:63399":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:6340":{"rank":573,"runs":[550,11,10,1,1]},"exit:63402":{"rank":571,"runs":[548,15,3,2,1,1,1]},"exit:63403":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:63404":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:63405":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:63406":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:63407":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:63408":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:6341":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:63411":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:63412":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:63413":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:63414":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:63415":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:63416":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:63419":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:63420":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:63421":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:63422":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:63423":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:63426":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:63427":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:63428":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:63429":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:6343":{"rank":573,"runs":[550,12,9,1,1]},"exit:63432":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:63433":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:63434":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:63437":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:63438":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:6344":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:63441":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:63444":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:63445":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:63447":{"rank":569,"runs":[544,13,3,2,2,2,1,1,1]},"exit:63448":{"rank":567,"runs":[542,13,5,2,2,1,1,1]},"exit:63450":{"rank":569,"runs":[540,9,6,6,3,2,1,1,1]},"exit:63451":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:63453":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:63454":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:63456":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:63458":{"rank":569,"runs":[545,15,4,3,1,1]},"exit:6346":{"rank":573,"runs":[550,14,7,1,1]},"exit:63460":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:63461":{"rank":567,"runs":[542,9,5,4,2,2,1,1,1]},"exit:63463":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:63464":{"rank":567,"runs":[538,5,4,4,4,3,2,2,2,1,1,1]},"exit:63466":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:63467":{"rank":567,"runs":[534,8,8,4,3,2,2,2,1,1,1,1]},"exit:63468":{"rank":569,"runs":[545,13,3,2,2,1,1,1,1]},"exit:6347":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:63470":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:63471":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:63473":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:63474":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:63475":{"rank":569,"runs":[544,9,6,3,2,2,1,1,1]},"exit:63477":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:63478":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:63479":{"rank":569,"runs":[540,6,6,6,5,3,1,1,1]},"exit:63480":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:63482":{"rank":569,"runs":[532,12,11,4,2,2,2,1,1,1,1]},"exit:63483":{"rank":565,"runs":[538,10,7,4,3,1,1,1]},"exit:63485":{"rank":569,"runs":[536,10,10,6,3,1,1,1,1]},"exit:63489":{"rank":563,"runs":[538,9,5,4,2,2,1,1,1]},"exit:6349":{"rank":573,"runs":[550,16,5,1,1]},"exit:63492":{"rank":565,"runs":[536,7,6,6,6,1,1,1,1]},"exit:63499":{"rank":551,"runs":[527,23,1]},"exit:6350":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:63501":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:63508":{"rank":559,"runs":[534,13,6,2,1,1,1,1]},"exit:63514":{"rank":557,"runs":[533,14,3,2,1,1,1,1,1]},"exit:63519":{"rank":557,"runs":[533,14,3,2,1,1,1,1,1]},"exit:6352":{"rank":573,"runs":[550,18,3,1,1]},"exit:6353":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:6356":{"rank":571,"runs":[547,20,2,1,1]},"exit:63560":{"rank":557,"runs":[532,15,4,2,1,1,1,1]},"exit:6358":{"rank":573,"runs":[550,17,4,1,1]},"exit:6359":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:63607":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:6361":{"rank":573,"runs":[550,15,6,1,1]},"exit:63613":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:63614":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:6362":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:6364":{"rank":573,"runs":[550,13,8,1,1]},"exit:6365":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:6367":{"rank":573,"runs":[550,11,10,1,1]},"exit:6368":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:63687":{"rank":557,"runs":[533,16,6,1,1]},"exit:6370":{"rank":573,"runs":[550,12,9,1,1]},"exit:6371":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:6373":{"rank":573,"runs":[550,14,7,1,1]},"exit:6374":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:6376":{"rank":573,"runs":[550,16,5,1,1]},"exit:6377":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:6379":{"rank":573,"runs":[550,18,3,1,1]},"exit:6380":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:6383":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:6385":{"rank":573,"runs":[550,15,6,1,1]},"exit:6386":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:6388":{"rank":573,"runs":[550,13,8,1,1]},"exit:6389":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:6391":{"rank":573,"runs":[550,11,10,1,1]},"exit:6392":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:6394":{"rank":573,"runs":[550,12,9,1,1]},"exit:6395":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:6397":{"rank":573,"runs":[550,14,7,1,1]},"exit:6398":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:6400":{"rank":573,"runs":[550,16,5,1,1]},"exit:6401":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:6403":{"rank":573,"runs":[550,18,3,1,1]},"exit:6404":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:6407":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:6409":{"rank":573,"runs":[550,13,8,1,1]},"exit:6410":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:6412":{"rank":573,"runs":[550,11,10,1,1]},"exit:64120":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:64121":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:6413":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:64130":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:64131":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:6415":{"rank":573,"runs":[550,12,9,1,1]},"exit:6416":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:6418":{"rank":573,"runs":[550,14,7,1,1]},"exit:6419":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:6421":{"rank":573,"runs":[550,16,5,1,1]},"exit:6422":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:6424":{"rank":573,"runs":[550,18,3,1,1]},"exit:64240":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:64241":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:6425":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:64250":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:64251":{"rank":554,"runs":[530,15,4,1,1,1,1,1]},"exit:6428":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:6430":{"rank":573,"runs":[550,11,10,1,1]},"exit:6431":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:6433":{"rank":573,"runs":[550,12,9,1,1]},"exit:6434":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:6436":{"rank":573,"runs":[550,14,7,1,1]},"exit:6437":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:64371":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:6439":{"rank":573,"runs":[550,16,5,1,1]},"exit:6440":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:6442":{"rank":573,"runs":[550,18,3,1,1]},"exit:6443":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:6446":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:6448":{"rank":573,"runs":[550,12,9,1,1]},"exit:6449":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:64492":{"rank":555,"runs":[531,16,3,2,1,1,1]},"exit:6451":{"rank":573,"runs":[550,14,7,1,1]},"exit:6452":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:6454":{"rank":573,"runs":[550,16,5,1,1]},"exit:6455":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:6457":{"rank":573,"runs":[550,18,3,1,1]},"exit:6458":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:6463":{"rank":573,"runs":[550,14,7,1,1]},"exit:6464":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:6466":{"rank":573,"runs":[550,16,5,1,1]},"exit:6467":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:6469":{"rank":573,"runs":[550,18,3,1,1]},"exit:6470":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:6475":{"rank":573,"runs":[550,16,5,1,1]},"exit:6476":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:6478":{"rank":573,"runs":[550,18,3,1,1]},"exit:6479":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:6482":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:6492":{"rank":571,"runs":[548,19,2,1,1]},"exit:6493":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:6494":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:6495":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:6496":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:6497":{"rank":571,"runs":[548,19,2,1,1]},"exit:6498":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:6499":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:6500":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:6501":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:6503":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:6504":{"rank":567,"runs":[544,15,6,1,1]},"exit:6507":{"rank":567,"runs":[540,11,4,4,3,3,1,1]},"exit:6509":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:6510":{"rank":567,"runs":[536,8,8,7,3,3,1,1]},"exit:6512":{"rank":569,"runs":[534,12,12,3,3,2,1,1,1]},"exit:6514":{"rank":569,"runs":[545,18,4,1,1]},"exit:6516":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:6517":{"rank":567,"runs":[544,11,6,4,1,1]},"exit:6519":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:6520":{"rank":567,"runs":[540,7,4,4,4,3,3,1,1]},"exit:6522":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:6524":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:6526":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:6527":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:6529":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:6531":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:6533":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:6535":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:6536":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:6540":{"rank":567,"runs":[544,8,7,6,1,1]},"exit:6547":{"rank":563,"runs":[540,10,7,4,1,1]},"exit:6548":{"rank":565,"runs":[534,8,8,4,4,3,2,1,1]},"exit:6549":{"rank":565,"runs":[538,7,4,4,4,4,2,1,1]},"exit:6550":{"rank":565,"runs":[542,11,8,2,1,1]},"exit:6556":{"rank":557,"runs":[534,16,3,2,1,1]},"exit:6557":{"rank":551,"runs":[527,23,1]},"exit:6558":{"rank":553,"runs":[529,20,2,1,1]},"exit:6559":{"rank":555,"runs":[532,18,3,1,1]},"exit:6566":{"rank":559,"runs":[536,14,7,1,1]},"exit:6592":{"rank":559,"runs":[532,10,4,4,4,3,1,1]},"exit:6602":{"rank":559,"runs":[532,8,6,4,4,3,1,1]},"exit:6609":{"rank":557,"runs":[533,16,6,1,1]},"exit:6613":{"rank":559,"runs":[532,12,4,4,3,2,1,1]},"exit:6620":{"rank":555,"runs":[532,18,3,1,1]},"exit:6624":{"rank":557,"runs":[534,16,4,1,1,1]},"exit:6625":{"rank":553,"runs":[530,20,1,1,1]},"exit:66376":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:66377":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:66378":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:66379":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:66380":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:66381":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:66382":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:66383":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:66384":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:66387":{"rank":571,"runs":[533,15,15,3,1,1,1,1,1]},"exit:66388":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:66389":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:6639":{"rank":554,"runs":[531,19,2,1,1]},"exit:66390":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:66391":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:66392":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:66393":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:66394":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:66395":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:66398":{"rank":571,"runs":[535,13,13,3,3,1,1,1,1]},"exit:66399":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:66400":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:66401":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:66402":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:66403":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:66404":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:66405":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:66408":{"rank":571,"runs":[537,11,11,5,3,1,1,1,1]},"exit:66409":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:6641":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:66410":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:66411":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:66412":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:66413":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:66414":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:66417":{"rank":571,"runs":[539,9,9,7,3,1,1,1,1]},"exit:66418":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:66419":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:66420":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:66421":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:66422":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:66425":{"rank":571,"runs":[541,9,7,7,3,1,1,1,1]},"exit:66426":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:66427":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:66428":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:66429":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:66432":{"rank":571,"runs":[543,11,5,5,3,1,1,1,1]},"exit:66433":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:66434":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:66435":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:66438":{"rank":571,"runs":[545,13,3,3,3,1,1,1,1]},"exit:66439":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:66440":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:66443":{"rank":571,"runs":[547,15,3,1,1,1,1,1,1]},"exit:66444":{"rank":573,"runs":[550,21,1,1]},"exit:66446":{"rank":571,"runs":[548,19,2,1,1]},"exit:66449":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:66452":{"rank":571,"runs":[547,18,2,2,1,1]},"exit:66455":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:66456":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:66458":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:66459":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:66461":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:66462":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:66464":{"rank":569,"runs":[532,14,14,3,3,1,1,1]},"exit:66466":{"rank":569,"runs":[533,13,13,3,3,1,1,1,1]},"exit:66468":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:66469":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:66471":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:66472":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:66474":{"rank":569,"runs":[536,10,10,7,3,1,1,1]},"exit:66475":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:66476":{"rank":569,"runs":[537,9,9,5,3,3,1,1,1]},"exit:66478":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:66479":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:66481":{"rank":569,"runs":[540,11,6,6,3,1,1,1]},"exit:66482":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:66483":{"rank":569,"runs":[541,9,5,5,3,3,1,1,1]},"exit:66485":{"rank":569,"runs":[544,15,3,2,2,1,1,1]},"exit:66486":{"rank":567,"runs":[542,13,3,3,2,2,1,1]},"exit:66487":{"rank":569,"runs":[545,13,3,3,1,1,1,1,1]},"exit:66488":{"rank":569,"runs":[545,18,5,1]},"exit:66489":{"rank":569,"runs":[545,18,5,1]},"exit:66490":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:66491":{"rank":565,"runs":[534,8,7,7,6,1,1,1]},"exit:66497":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:66498":{"rank":565,"runs":[533,9,8,5,5,3,1,1]},"exit:66500":{"rank":565,"runs":[541,13,5,3,1,1,1]},"exit:66504":{"rank":557,"runs":[533,17,6,1]},"exit:66507":{"rank":551,"runs":[527,23,1]},"exit:66523":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:66529":{"rank":557,"runs":[533,11,5,5,1,1,1]},"exit:66546":{"rank":561,"runs":[537,13,10,1]},"exit:66560":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:66566":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:66584":{"rank":556,"runs":[532,16,3,1,1,1,1,1]},"exit:66623":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:6671":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:6677":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:6678":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:6682":{"rank":553,"runs":[530,20,1,1,1]},"exit:66970":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:66976":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:66977":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:66981":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:67092":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:67102":{"rank":554,"runs":[530,14,5,2,1,1,1]},"exit:6715":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:6751":{"rank":557,"runs":[534,16,5,1,1]},"exit:6753":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:6789":{"rank":557,"runs":[532,14,3,2,2,2,1,1]},"exit:6828":{"rank":557,"runs":[532,12,4,3,2,2,1,1]},"exit:68308":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:68436":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:68565":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:6867":{"rank":557,"runs":[532,10,6,3,2,2,1,1]},"exit:68692":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:68694":{"rank":555,"runs":[531,17,3,1,1,1,1]},"exit:68703":{"rank":554,"runs":[530,16,3,1,1,1,1,1]},"exit:6907":{"rank":557,"runs":[532,8,8,3,2,2,1,1]},"exit:69445":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:69447":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:69452":{"rank":571,"runs":[548,19,2,1,1]},"exit:69454":{"rank":573,"runs":[550,15,6,1,1]},"exit:69455":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:69457":{"rank":573,"runs":[550,13,8,1,1]},"exit:69458":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:69460":{"rank":573,"runs":[550,11,10,1,1]},"exit:69461":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:69463":{"rank":573,"runs":[550,12,9,1,1]},"exit:69464":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:69466":{"rank":573,"runs":[550,14,7,1,1]},"exit:69467":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:69469":{"rank":573,"runs":[550,16,5,1,1]},"exit:6947":{"rank":557,"runs":[532,10,6,3,2,2,1,1]},"exit:69470":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:69472":{"rank":573,"runs":[550,18,3,1,1]},"exit:69473":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:69475":{"rank":573,"runs":[550,20,1,1,1]},"exit:69476":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:69479":{"rank":571,"runs":[547,17,3,2,1,1]},"exit:69481":{"rank":573,"runs":[550,15,6,1,1]},"exit:69482":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:69484":{"rank":573,"runs":[550,13,8,1,1]},"exit:69485":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:69487":{"rank":573,"runs":[550,11,10,1,1]},"exit:69488":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:69490":{"rank":573,"runs":[550,12,9,1,1]},"exit:69491":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:69493":{"rank":573,"runs":[550,14,7,1,1]},"exit:69494":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:69496":{"rank":573,"runs":[550,16,5,1,1]},"exit:69497":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:69499":{"rank":573,"runs":[550,18,3,1,1]},"exit:69500":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:69502":{"rank":573,"runs":[550,20,1,1,1]},"exit:69503":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:69506":{"rank":571,"runs":[548,17,2,1,1,1,1]},"exit:69507":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:69508":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:69509":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:69510":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:69511":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:69512":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:69513":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:69516":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:69517":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:69518":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:69519":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:69520":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:69521":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:69522":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:69525":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:69526":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:69527":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:69528":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:69529":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:69530":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:69533":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:69534":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:69535":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:69536":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:69537":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:69540":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:69541":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:69542":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:69543":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:69546":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:69547":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:69548":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:69551":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:69552":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:69555":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:69558":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:69561":{"rank":569,"runs":[544,13,3,2,2,2,1,1,1]},"exit:69562":{"rank":567,"runs":[542,13,3,3,2,2,1,1]},"exit:69564":{"rank":569,"runs":[540,9,6,6,3,2,1,1,1]},"exit:69565":{"rank":567,"runs":[538,9,6,6,3,3,1,1]},"exit:69567":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:69568":{"rank":567,"runs":[534,10,10,5,3,3,1,1]},"exit:69570":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:69572":{"rank":569,"runs":[545,17,4,1,1,1]},"exit:69574":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:69575":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:69577":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:69578":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:69580":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:69581":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:69582":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:69584":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:69585":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:69587":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:69588":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:69589":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:69591":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:69592":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:69593":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:69594":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"exit:69596":{"rank":569,"runs":[534,12,11,6,3,1,1,1]},"exit:69597":{"rank":565,"runs":[538,10,7,4,3,1,1,1]},"exit:69599":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"exit:69603":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:69604":{"rank":565,"runs":[534,8,8,5,4,3,1,1,1]},"exit:69606":{"rank":565,"runs":[534,8,8,7,4,1,1,1,1]},"exit:69612":{"rank":557,"runs":[534,16,4,1,1,1]},"exit:69613":{"rank":551,"runs":[527,23,1]},"exit:69615":{"rank":555,"runs":[531,18,4,1,1]},"exit:69622":{"rank":559,"runs":[532,13,4,4,3,1,1,1]},"exit:69628":{"rank":557,"runs":[534,16,4,1,1,1]},"exit:69633":{"rank":557,"runs":[534,16,4,1,1,1]},"exit:69642":{"rank":559,"runs":[532,9,5,4,4,3,1,1]},"exit:69659":{"rank":557,"runs":[533,12,5,4,1,1,1]},"exit:69663":{"rank":559,"runs":[532,13,4,4,3,1,1,1]},"exit:69674":{"rank":557,"runs":[533,17,6,1]},"exit:69721":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:69727":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:69728":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:69732":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:69957":{"rank":557,"runs":[532,9,7,4,2,1,1,1]},"exit:69997":{"rank":557,"runs":[532,11,5,4,2,1,1,1]},"exit:70038":{"rank":557,"runs":[532,13,4,3,2,1,1,1]},"exit:70074":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:70079":{"rank":557,"runs":[532,15,4,2,1,1,1,1]},"exit:70234":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:70235":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:70244":{"rank":555,"runs":[531,18,4,1,1]},"exit:70245":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:7030":{"rank":554,"runs":[529,18,2,1,1,1,1,1]},"exit:7031":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:70354":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:70355":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:7036":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:70364":{"rank":555,"runs":[531,18,4,1,1]},"exit:70365":{"rank":554,"runs":[530,17,2,1,1,1,1,1]},"exit:70485":{"rank":555,"runs":[531,18,4,1,1]},"exit:70606":{"rank":555,"runs":[531,18,4,1,1]},"exit:71694":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:71775":{"rank":554,"runs":[530,15,4,2,1,1,1]},"exit:7184":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:7185":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:7186":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:71907":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:71929":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:7193":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:7194":{"rank":555,"runs":[532,18,3,1,1]},"exit:7195":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:72029":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:72392":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:72393":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:72394":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:72395":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:72396":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:72397":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:72398":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:72399":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:72400":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:72403":{"rank":571,"runs":[531,17,17,1,1,1,1,1,1]},"exit:72404":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:72405":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:72406":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:72407":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:72408":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:72409":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:72410":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:72411":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:72414":{"rank":571,"runs":[533,15,15,3,1,1,1,1,1]},"exit:72415":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:72416":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:72417":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:72418":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:72419":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:72420":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:72421":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:72424":{"rank":571,"runs":[535,13,13,5,1,1,1,1,1]},"exit:72425":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:72426":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:72427":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:72428":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:72429":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:72430":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:72433":{"rank":571,"runs":[537,11,11,7,1,1,1,1,1]},"exit:72434":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:72435":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:72436":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:72437":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:72438":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:72441":{"rank":571,"runs":[539,9,9,9,1,1,1,1,1]},"exit:72442":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:72443":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:72444":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:72445":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:72448":{"rank":571,"runs":[541,11,7,7,1,1,1,1,1]},"exit:72449":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:72450":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:72451":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:72454":{"rank":571,"runs":[543,13,5,5,1,1,1,1,1]},"exit:72455":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:72456":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:72459":{"rank":571,"runs":[545,15,3,3,1,1,1,1,1]},"exit:72460":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:72463":{"rank":571,"runs":[547,17,1,1,1,1,1,1,1]},"exit:72466":{"rank":571,"runs":[547,20,3,1]},"exit:72469":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:72470":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:72472":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:72473":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:72475":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:72476":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:72480":{"rank":569,"runs":[531,15,15,3,1,1,1,1,1]},"exit:72482":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:72483":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:72485":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:72486":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:72488":{"rank":569,"runs":[536,8,8,7,2,2,2,1,1,1,1]},"exit:72489":{"rank":567,"runs":[534,8,8,5,3,2,2,2,1,1,1]},"exit:72490":{"rank":569,"runs":[535,11,11,5,3,1,1,1,1]},"exit:72492":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:72493":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:72495":{"rank":569,"runs":[540,11,4,4,2,2,2,1,1,1,1]},"exit:72496":{"rank":567,"runs":[538,9,4,4,3,2,2,2,1,1,1]},"exit:72497":{"rank":569,"runs":[539,9,7,7,3,1,1,1,1]},"exit:72499":{"rank":569,"runs":[544,15,3,2,2,1,1,1]},"exit:72500":{"rank":567,"runs":[542,13,5,2,2,1,1,1]},"exit:72501":{"rank":569,"runs":[543,13,3,3,3,1,1,1,1]},"exit:72502":{"rank":569,"runs":[545,17,3,1,1,1,1]},"exit:72503":{"rank":569,"runs":[545,18,5,1]},"exit:72504":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:72505":{"rank":565,"runs":[534,8,7,7,6,1,1,1]},"exit:72511":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:72514":{"rank":565,"runs":[541,13,5,3,1,1,1]},"exit:72518":{"rank":557,"runs":[533,17,6,1]},"exit:72520":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:72521":{"rank":551,"runs":[527,23,1]},"exit:72522":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:72543":{"rank":557,"runs":[533,13,5,3,1,1,1]},"exit:72569":{"rank":557,"runs":[531,15,3,3,1,1,1,1,1]},"exit:72574":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:72580":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:72599":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:72601":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:72631":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:72637":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:72984":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:72990":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:72991":{"rank":555,"runs":[531,19,4,1]},"exit:72995":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:7304":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:7305":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:7306":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:73106":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:73116":{"rank":554,"runs":[530,16,3,2,1,1,1]},"exit:7313":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:7314":{"rank":555,"runs":[532,18,3,1,1]},"exit:7315":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:7426":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:74275":{"rank":555,"runs":[529,17,3,2,1,1,1,1]},"exit:7435":{"rank":555,"runs":[532,18,3,1,1]},"exit:74467":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:74468":{"rank":555,"runs":[531,19,4,1]},"exit:74478":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:74596":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:74597":{"rank":555,"runs":[531,19,4,1]},"exit:74607":{"rank":554,"runs":[530,18,1,1,1,1,1,1]},"exit:74727":{"rank":555,"runs":[531,19,4,1]},"exit:74857":{"rank":555,"runs":[531,19,4,1]},"exit:74868":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:74887":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:74889":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:74890":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:74909":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:74911":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:75349":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:75351":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:75355":{"rank":573,"runs":[550,17,4,1,1]},"exit:75356":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:75358":{"rank":573,"runs":[550,15,6,1,1]},"exit:75359":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:75361":{"rank":573,"runs":[550,13,8,1,1]},"exit:75362":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:75364":{"rank":573,"runs":[550,11,10,1,1]},"exit:75365":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:75367":{"rank":573,"runs":[550,12,9,1,1]},"exit:75368":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:75370":{"rank":573,"runs":[550,14,7,1,1]},"exit:75371":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:75373":{"rank":573,"runs":[550,16,5,1,1]},"exit:75374":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:75376":{"rank":573,"runs":[550,18,3,1,1]},"exit:75377":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:75379":{"rank":573,"runs":[550,20,1,1,1]},"exit:75380":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:75383":{"rank":571,"runs":[547,19,2,1,1,1]},"exit:75384":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:75385":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:75386":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:75387":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:75388":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:75389":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:75390":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:75391":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:75394":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:75395":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:75396":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:75397":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:75398":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:75399":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:75400":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:75401":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:75404":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:75405":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:75406":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:75407":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:75408":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:75409":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:75410":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:75413":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:75414":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:75415":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:75416":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:75417":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:75418":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:75421":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:75422":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:75423":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:75424":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:75425":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:75428":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:75429":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:75430":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:75431":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:75434":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:75435":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:75436":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:75439":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:75440":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:75443":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:75446":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:75447":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:75449":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:75450":{"rank":567,"runs":[542,13,5,2,2,1,1,1]},"exit:75452":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:75453":{"rank":567,"runs":[538,9,4,4,3,2,2,2,1,1,1]},"exit:75455":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:75456":{"rank":567,"runs":[534,8,8,5,3,2,2,2,1,1,1]},"exit:75458":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"exit:75460":{"rank":569,"runs":[545,17,2,2,1,1,1]},"exit:75462":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:75463":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:75465":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:75466":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:75468":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:75469":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:7547":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:75470":{"rank":569,"runs":[544,13,3,2,2,2,1,1,1]},"exit:75472":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:75473":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:75475":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:75476":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:75477":{"rank":569,"runs":[540,9,6,6,3,2,1,1,1]},"exit:75479":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:75480":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:75481":{"rank":569,"runs":[536,10,10,5,3,2,1,1,1]},"exit:75482":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:75484":{"rank":569,"runs":[534,12,11,6,3,1,1,1]},"exit:75485":{"rank":565,"runs":[538,10,7,4,3,1,1,1]},"exit:75487":{"rank":569,"runs":[532,14,14,3,2,1,1,1,1]},"exit:75491":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:75494":{"rank":565,"runs":[532,10,10,7,2,1,1,1,1]},"exit:75500":{"rank":557,"runs":[532,15,2,2,2,1,1,1,1]},"exit:75501":{"rank":551,"runs":[527,23,1]},"exit:75502":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:75503":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:75521":{"rank":557,"runs":[532,15,2,2,2,1,1,1,1]},"exit:75547":{"rank":557,"runs":[533,14,5,2,1,1,1]},"exit:7556":{"rank":555,"runs":[532,18,3,1,1]},"exit:75562":{"rank":557,"runs":[533,17,6,1]},"exit:75576":{"rank":556,"runs":[532,15,4,2,1,1,1]},"exit:75577":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:75579":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:75609":{"rank":554,"runs":[531,19,2,1,1]},"exit:75615":{"rank":554,"runs":[531,19,2,1,1]},"exit:75616":{"rank":555,"runs":[531,19,4,1]},"exit:75617":{"rank":557,"runs":[530,15,4,3,2,1,1,1]},"exit:75620":{"rank":553,"runs":[529,20,2,1,1]},"exit:75962":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:75986":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:75987":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76122":{"rank":554,"runs":[531,19,2,1,1]},"exit:76123":{"rank":555,"runs":[531,19,4,1]},"exit:76124":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76125":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:76131":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:76132":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76133":{"rank":554,"runs":[531,19,2,1,1]},"exit:76242":{"rank":554,"runs":[531,19,2,1,1]},"exit:76243":{"rank":555,"runs":[531,19,4,1]},"exit:76244":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76245":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:76251":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:76252":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76253":{"rank":554,"runs":[531,19,2,1,1]},"exit:76317":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76398":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:76463":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:76544":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:7669":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:7678":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:77339":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:77420":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:77476":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:77485":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:77486":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:77557":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:77566":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:77567":{"rank":554,"runs":[530,17,2,2,1,1,1]},"exit:77696":{"rank":555,"runs":[531,19,4,1]},"exit:77699":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:77721":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:77738":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:77819":{"rank":553,"runs":[529,20,2,1,1]},"exit:77821":{"rank":553,"runs":[529,20,1,1,1,1]},"exit:7791":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:7800":{"rank":555,"runs":[530,16,2,2,2,1,1,1]},"exit:78184":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:78185":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:78186":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:78187":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:78188":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:78189":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:78190":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:78191":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:78192":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:78196":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:78197":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:78198":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:78199":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:78200":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:78201":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:78202":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:78203":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:78206":{"rank":571,"runs":[531,17,16,3,1,1,1,1]},"exit:78207":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:78208":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:78209":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:78210":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:78211":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:78212":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:78213":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:78216":{"rank":571,"runs":[533,15,14,5,1,1,1,1]},"exit:78217":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:78218":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:78219":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:78220":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:78221":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:78222":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:78225":{"rank":571,"runs":[535,13,12,7,1,1,1,1]},"exit:78226":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:78227":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:78228":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:78229":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:78230":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:78233":{"rank":571,"runs":[537,11,10,9,1,1,1,1]},"exit:78234":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:78235":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:78236":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:78237":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:78240":{"rank":571,"runs":[539,11,9,8,1,1,1,1]},"exit:78241":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:78242":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:78243":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:78246":{"rank":571,"runs":[541,13,7,6,1,1,1,1]},"exit:78247":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:78248":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:78251":{"rank":571,"runs":[543,15,5,4,1,1,1,1]},"exit:78252":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:78255":{"rank":571,"runs":[545,17,3,2,1,1,1,1]},"exit:78258":{"rank":571,"runs":[547,19,1,1,1,1,1]},"exit:78261":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:78262":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:78264":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:78265":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:78267":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:78268":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:78270":{"rank":569,"runs":[534,12,12,3,3,2,1,1,1]},"exit:78271":{"rank":567,"runs":[532,12,12,3,3,2,1,1,1]},"exit:78274":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:78275":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:78277":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:78278":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:78280":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:78281":{"rank":567,"runs":[536,8,8,5,3,3,2,1,1]},"exit:78282":{"rank":569,"runs":[533,13,12,5,3,1,1,1]},"exit:78284":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:78285":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:78287":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:78288":{"rank":567,"runs":[540,9,4,4,3,3,2,1,1]},"exit:78289":{"rank":569,"runs":[537,9,9,8,3,1,1,1]},"exit:78291":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:78292":{"rank":567,"runs":[544,13,6,2,1,1]},"exit:78293":{"rank":569,"runs":[541,13,5,4,3,1,1,1]},"exit:78294":{"rank":569,"runs":[545,17,3,1,1,1,1]},"exit:78295":{"rank":569,"runs":[545,18,5,1]},"exit:78296":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:78297":{"rank":565,"runs":[534,8,7,7,6,1,1,1]},"exit:78303":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:78304":{"rank":565,"runs":[533,8,8,5,4,3,1,1,1,1]},"exit:78306":{"rank":565,"runs":[541,13,7,1,1,1,1]},"exit:78310":{"rank":557,"runs":[533,17,6,1]},"exit:78312":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:78313":{"rank":551,"runs":[527,23,1]},"exit:78314":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:78335":{"rank":557,"runs":[533,15,5,1,1,1,1]},"exit:78372":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:78376":{"rank":557,"runs":[530,15,4,3,2,1,1,1]},"exit:78377":{"rank":553,"runs":[529,21,2,1]},"exit:78391":{"rank":554,"runs":[531,19,2,1,1]},"exit:78393":{"rank":554,"runs":[531,19,2,1,1]},"exit:78423":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:78429":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:78430":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:78467":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:78742":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:78783":{"rank":555,"runs":[531,19,4,1]},"exit:78898":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:78908":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:78963":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:78973":{"rank":554,"runs":[530,18,2,1,1,1,1]},"exit:80406":{"rank":554,"runs":[531,19,2,1,1]},"exit:80407":{"rank":555,"runs":[531,19,4,1]},"exit:80417":{"rank":554,"runs":[531,19,2,1,1]},"exit:80536":{"rank":554,"runs":[531,19,2,1,1]},"exit:80537":{"rank":555,"runs":[531,19,4,1]},"exit:80547":{"rank":554,"runs":[531,19,2,1,1]},"exit:80548":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:80568":{"rank":553,"runs":[530,20,1,1,1]},"exit:80569":{"rank":553,"runs":[530,20,1,1,1]},"exit:80570":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:80590":{"rank":553,"runs":[530,20,1,1,1]},"exit:80591":{"rank":553,"runs":[530,20,1,1,1]},"exit:80668":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:80669":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:80670":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:80741":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:81021":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:81022":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:81028":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:81029":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:81030":{"rank":553,"runs":[529,20,2,1,1]},"exit:81031":{"rank":553,"runs":[529,20,2,1,1]},"exit:81034":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:81035":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:81036":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:81037":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:81038":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:81039":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:81040":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:81041":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:81042":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:81045":{"rank":571,"runs":[548,19,2,1,1]},"exit:81046":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:81047":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:81048":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:81049":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:81050":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:81051":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:81052":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:81053":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:81056":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:81057":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:81058":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:81059":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:81060":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:81061":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:81062":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:81063":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:81066":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:81067":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:81068":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:81069":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:81070":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:81071":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:81072":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:81075":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:81076":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:81077":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:81078":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:81079":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:81080":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:81083":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:81084":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:81085":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:81086":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:81087":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:81090":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:81091":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:81092":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:81093":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:81096":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:81097":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:81098":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:81101":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:81102":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:81105":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:81108":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:81111":{"rank":569,"runs":[546,13,4,4,1,1]},"exit:81112":{"rank":567,"runs":[544,13,6,2,1,1]},"exit:81114":{"rank":569,"runs":[542,9,4,4,4,3,1,1,1]},"exit:81115":{"rank":567,"runs":[540,9,4,4,3,3,2,1,1]},"exit:81117":{"rank":569,"runs":[538,8,8,5,4,3,1,1,1]},"exit:81118":{"rank":567,"runs":[536,8,8,5,3,3,2,1,1]},"exit:81120":{"rank":569,"runs":[534,12,12,4,3,1,1,1,1]},"exit:81121":{"rank":567,"runs":[532,12,12,3,3,2,1,1,1]},"exit:81122":{"rank":569,"runs":[546,17,4,1,1]},"exit:81124":{"rank":569,"runs":[546,9,8,4,1,1]},"exit:81125":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:81127":{"rank":569,"runs":[542,8,5,4,4,3,1,1,1]},"exit:81128":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:81130":{"rank":569,"runs":[538,8,8,8,3,1,1,1,1]},"exit:81131":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:81132":{"rank":569,"runs":[542,13,4,4,3,1,1,1]},"exit:81134":{"rank":569,"runs":[546,12,5,4,1,1]},"exit:81135":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:81137":{"rank":569,"runs":[542,12,4,4,3,1,1,1,1]},"exit:81138":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:81139":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:81141":{"rank":569,"runs":[546,16,4,1,1,1]},"exit:81142":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:81143":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"exit:81145":{"rank":569,"runs":[530,16,15,3,2,1,1,1]},"exit:81146":{"rank":569,"runs":[534,12,11,6,3,1,1,1]},"exit:81147":{"rank":565,"runs":[538,10,7,4,3,1,1,1]},"exit:81149":{"rank":569,"runs":[530,16,16,3,1,1,1,1]},"exit:81153":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:81160":{"rank":557,"runs":[530,15,4,3,2,1,1,1]},"exit:81162":{"rank":557,"runs":[530,15,4,4,1,1,1,1]},"exit:81163":{"rank":551,"runs":[527,23,1]},"exit:81164":{"rank":553,"runs":[530,20,1,1,1]},"exit:81178":{"rank":557,"runs":[530,15,4,4,1,1,1,1]},"exit:81209":{"rank":557,"runs":[534,16,5,1,1]},"exit:81220":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:81224":{"rank":557,"runs":[533,17,6,1]},"exit:81225":{"rank":553,"runs":[529,21,2,1]},"exit:81238":{"rank":556,"runs":[533,17,4,1,1]},"exit:81239":{"rank":554,"runs":[531,19,2,1,1]},"exit:81241":{"rank":554,"runs":[531,19,2,1,1]},"exit:81271":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:81277":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:81278":{"rank":555,"runs":[531,19,4,1]},"exit:81315":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:81353":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:81624":{"rank":554,"runs":[531,19,2,1,1]},"exit:81630":{"rank":554,"runs":[531,19,2,1,1]},"exit:81631":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:81730":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:81740":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:81811":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:81821":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:83044":{"rank":554,"runs":[531,19,2,1,1]},"exit:83054":{"rank":554,"runs":[531,19,2,1,1]},"exit:83125":{"rank":554,"runs":[531,19,2,1,1]},"exit:83135":{"rank":554,"runs":[531,19,2,1,1]},"exit:83254":{"rank":554,"runs":[531,19,2,1,1]},"exit:83264":{"rank":555,"runs":[531,19,4,1]},"exit:83265":{"rank":554,"runs":[531,19,2,1,1]},"exit:83266":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83267":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83269":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:83283":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:83284":{"rank":553,"runs":[530,20,1,1,1]},"exit:83285":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83286":{"rank":553,"runs":[530,20,1,1,1]},"exit:83288":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83289":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83291":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:83304":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83305":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:83306":{"rank":553,"runs":[530,20,1,1,1]},"exit:83307":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83308":{"rank":553,"runs":[530,20,1,1,1]},"exit:83388":{"rank":553,"runs":[529,20,2,1,1]},"exit:83460":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83746":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83747":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:83748":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83749":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:83750":{"rank":571,"runs":[548,18,2,1,1,1]},"exit:83751":{"rank":571,"runs":[546,16,2,2,1,1,1,1,1]},"exit:83752":{"rank":571,"runs":[544,14,4,4,1,1,1,1,1]},"exit:83753":{"rank":571,"runs":[542,12,6,6,1,1,1,1,1]},"exit:83754":{"rank":571,"runs":[540,10,8,8,1,1,1,1,1]},"exit:83755":{"rank":571,"runs":[538,10,10,8,1,1,1,1,1]},"exit:83756":{"rank":571,"runs":[536,12,12,6,1,1,1,1,1]},"exit:83757":{"rank":571,"runs":[534,14,14,4,1,1,1,1,1]},"exit:83758":{"rank":571,"runs":[532,16,16,2,1,1,1,1,1]},"exit:83759":{"rank":571,"runs":[530,18,18,1,1,1,1,1]},"exit:83760":{"rank":571,"runs":[548,16,3,2,1,1]},"exit:83761":{"rank":571,"runs":[546,14,3,2,2,1,1,1,1]},"exit:83762":{"rank":571,"runs":[544,12,4,4,3,1,1,1,1]},"exit:83763":{"rank":571,"runs":[542,10,6,6,3,1,1,1,1]},"exit:83764":{"rank":571,"runs":[540,8,8,8,3,1,1,1,1]},"exit:83765":{"rank":571,"runs":[538,10,10,6,3,1,1,1,1]},"exit:83766":{"rank":571,"runs":[536,12,12,4,3,1,1,1,1]},"exit:83767":{"rank":571,"runs":[534,14,14,3,2,1,1,1,1]},"exit:83768":{"rank":571,"runs":[532,16,16,3,1,1,1,1]},"exit:83769":{"rank":571,"runs":[548,14,5,2,1,1]},"exit:83770":{"rank":571,"runs":[546,12,5,2,2,1,1,1,1]},"exit:83771":{"rank":571,"runs":[544,10,5,4,4,1,1,1,1]},"exit:83772":{"rank":571,"runs":[542,8,6,6,5,1,1,1,1]},"exit:83773":{"rank":571,"runs":[540,8,8,6,5,1,1,1,1]},"exit:83774":{"rank":571,"runs":[538,10,10,5,4,1,1,1,1]},"exit:83775":{"rank":571,"runs":[536,12,12,5,2,1,1,1,1]},"exit:83776":{"rank":571,"runs":[534,14,14,5,1,1,1,1]},"exit:83777":{"rank":571,"runs":[548,12,7,2,1,1]},"exit:83778":{"rank":571,"runs":[546,10,7,2,2,1,1,1,1]},"exit:83779":{"rank":571,"runs":[544,8,7,4,4,1,1,1,1]},"exit:83780":{"rank":571,"runs":[542,7,6,6,6,1,1,1,1]},"exit:83781":{"rank":571,"runs":[540,8,8,7,4,1,1,1,1]},"exit:83782":{"rank":571,"runs":[538,10,10,7,2,1,1,1,1]},"exit:83783":{"rank":571,"runs":[536,12,12,7,1,1,1,1]},"exit:83784":{"rank":571,"runs":[548,10,9,2,1,1]},"exit:83785":{"rank":571,"runs":[546,9,8,2,2,1,1,1,1]},"exit:83786":{"rank":571,"runs":[544,9,6,4,4,1,1,1,1]},"exit:83787":{"rank":571,"runs":[542,9,6,6,4,1,1,1,1]},"exit:83788":{"rank":571,"runs":[540,9,8,8,2,1,1,1,1]},"exit:83789":{"rank":571,"runs":[538,10,10,9,1,1,1,1]},"exit:83790":{"rank":571,"runs":[548,11,8,2,1,1]},"exit:83791":{"rank":571,"runs":[546,11,6,2,2,1,1,1,1]},"exit:83792":{"rank":571,"runs":[544,11,4,4,4,1,1,1,1]},"exit:83793":{"rank":571,"runs":[542,11,6,6,2,1,1,1,1]},"exit:83794":{"rank":571,"runs":[540,11,8,8,1,1,1,1]},"exit:83795":{"rank":571,"runs":[548,13,6,2,1,1]},"exit:83796":{"rank":571,"runs":[546,13,4,2,2,1,1,1,1]},"exit:83797":{"rank":571,"runs":[544,13,4,4,2,1,1,1,1]},"exit:83798":{"rank":571,"runs":[542,13,6,6,1,1,1,1]},"exit:83799":{"rank":571,"runs":[548,15,4,2,1,1]},"exit:83800":{"rank":571,"runs":[546,15,2,2,2,1,1,1,1]},"exit:83801":{"rank":571,"runs":[544,15,4,4,1,1,1,1]},"exit:83802":{"rank":571,"runs":[548,17,2,2,1,1]},"exit:83803":{"rank":571,"runs":[546,17,2,2,1,1,1,1]},"exit:83804":{"rank":571,"runs":[548,19,2,1,1]},"exit:83806":{"rank":569,"runs":[546,14,4,3,1,1]},"exit:83807":{"rank":567,"runs":[544,14,6,1,1,1]},"exit:83809":{"rank":569,"runs":[542,10,4,4,3,3,1,1,1]},"exit:83810":{"rank":567,"runs":[540,10,4,4,3,3,1,1,1]},"exit:83812":{"rank":569,"runs":[538,8,8,6,3,3,1,1,1]},"exit:83813":{"rank":567,"runs":[536,8,8,6,3,3,1,1,1]},"exit:83815":{"rank":569,"runs":[534,12,12,3,3,2,1,1,1]},"exit:83816":{"rank":567,"runs":[532,12,12,3,3,2,1,1,1]},"exit:83819":{"rank":569,"runs":[546,10,7,4,1,1]},"exit:83820":{"rank":567,"runs":[544,10,6,5,1,1]},"exit:83822":{"rank":569,"runs":[542,7,6,4,4,3,1,1,1]},"exit:83823":{"rank":567,"runs":[540,6,5,4,4,3,3,1,1]},"exit:83825":{"rank":569,"runs":[538,8,8,7,3,2,1,1,1]},"exit:83826":{"rank":567,"runs":[536,8,8,5,3,3,2,1,1]},"exit:83827":{"rank":569,"runs":[534,12,12,5,3,1,1,1]},"exit:83829":{"rank":569,"runs":[546,11,6,4,1,1]},"exit:83830":{"rank":567,"runs":[544,9,6,6,1,1]},"exit:83832":{"rank":569,"runs":[542,11,4,4,3,2,1,1,1]},"exit:83833":{"rank":567,"runs":[540,9,4,4,3,3,2,1,1]},"exit:83834":{"rank":569,"runs":[538,9,8,8,3,1,1,1]},"exit:83836":{"rank":569,"runs":[546,15,4,2,1,1]},"exit:83837":{"rank":567,"runs":[544,13,6,2,1,1]},"exit:83839":{"rank":569,"runs":[546,17,4,1,1]},"exit:83840":{"rank":569,"runs":[545,18,5,1]},"exit:83841":{"rank":569,"runs":[542,14,4,3,3,1,1,1]},"exit:83842":{"rank":565,"runs":[534,8,7,7,6,1,1,1]},"exit:83846":{"rank":563,"runs":[540,10,6,5,1,1]},"exit:83849":{"rank":565,"runs":[542,13,8,1,1]},"exit:83853":{"rank":557,"runs":[533,17,6,1]},"exit:83855":{"rank":557,"runs":[534,16,5,1,1]},"exit:83856":{"rank":551,"runs":[527,23,1]},"exit:83857":{"rank":553,"runs":[530,20,1,1,1]},"exit:83892":{"rank":557,"runs":[530,15,4,4,1,1,1,1]},"exit:83903":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:83907":{"rank":557,"runs":[530,15,4,3,2,1,1,1]},"exit:83908":{"rank":553,"runs":[529,21,2,1]},"exit:83922":{"rank":554,"runs":[531,19,2,1,1]},"exit:83924":{"rank":554,"runs":[531,19,2,1,1]},"exit:83954":{"rank":554,"runs":[531,19,2,1,1]},"exit:83960":{"rank":554,"runs":[531,19,2,1,1]},"exit:83961":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:83998":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:84307":{"rank":554,"runs":[529,18,2,2,1,1,1]},"exit:84314":{"rank":555,"runs":[531,19,4,1]},"exit:84359":{"rank":553,"runs":[530,20,1,1,1]},"exit:84361":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:84378":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:84379":{"rank":553,"runs":[530,20,1,1,1]},"exit:84381":{"rank":553,"runs":[530,20,1,1,1]},"exit:84383":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:84399":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:84401":{"rank":553,"runs":[530,20,1,1,1]},"exit:84479":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:84480":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:84841":{"rank":553,"runs":[529,20,2,1,1]},"exit:84842":{"rank":553,"runs":[529,20,1,1,1,1]},"exit:9297":{"rank":555,"runs":[530,15,3,2,2,1,1,1]},"exit:9555":{"rank":555,"runs":[530,17,2,2,1,1,1,1]},"exit:9684":{"rank":554,"runs":[531,19,2,1,1]},"exit:9694":{"rank":555,"runs":[532,18,2,1,1,1]},"exit:9695":{"rank":554,"runs":[531,19,1,1,1,1]},"exit:9696":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9697":{"rank":553,"runs":[530,20,1,1,1]},"exit:9698":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:9699":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:9712":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:9714":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9715":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:9716":{"rank":553,"runs":[529,21,2,1]},"exit:9719":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9738":{"rank":553,"runs":[529,20,1,1,1,1]},"exit:9746":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:9747":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9755":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:9810":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:9811":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:9816":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9817":{"rank":553,"runs":[530,20,1,1,1]},"exit:9818":{"rank":553,"runs":[530,20,1,1,1]},"exit:9819":{"rank":553,"runs":[530,20,1,1,1]},"exit:9888":{"rank":553,"runs":[529,17,3,1,1,1,1]},"exit:9890":{"rank":553,"runs":[529,18,2,1,1,1,1]},"exit:9891":{"rank":553,"runs":[529,19,1,1,1,1,1]},"exit:9955":{"rank":553,"runs":[529,17,3,1,1,1,1]}},"word_sha256":"210f747ed53b1090844e1e29dc2371d0bd4b7f0c8a381ba4e6e63a5bc250f726"}} diff --git a/references/frame-compiler/pr96/research/merged-exterior/PROOF.md b/references/frame-compiler/pr96/research/merged-exterior/PROOF.md new file mode 100644 index 0000000000..10d5394828 --- /dev/null +++ b/references/frame-compiler/pr96/research/merged-exterior/PROOF.md @@ -0,0 +1,230 @@ +# Merged auxiliary exteriors: finite certificate and scope + +## 1. Claim + +On PR79's unchanged words, data profile, endpoint copies and complex layer, +change only the endpoint frames of selected auxiliary roles, as described +below. The complete recursive profile then has the same width +W = 134,126,064 and rank deficit 1,846,900 as PR79. The accepted bit saving +is 27678860161103/(5·10^17) and + +$$ +\kappa = 55354656014473/10^{18} = 5.5354656014473\times10^{-5}. +$$ + +The next bit-saving and κ grid points at denominator 10^18 are rejected. +PR79's complete child list fails the moment at the new bit saving. All +inherited hypotheses stated in PR79's PROOF.md remain assumptions. The claim +is a finite conditional certificate only. + +## 2. Moving the exterior into an endpoint edge + +We work in the endpoint contract of the pinned upstream Section 4. Every +source, gate and sink carries an exact rational m×m frame. Each restored +auxiliary role satisfies M_out − M_in = I_m. An edge is charged by the +recursive profile of its residual M_head − M_tail. Auxiliary source frames +are free. + +Fix an axis h ∈ {23, 25} and one invocation with other-axis line projector +B = vν^T. In the inherited accounting, an auxiliary role pays for the +following residuals: + +- its local residuals Δ⊗B, profiled by the unchanged local profiler; +- its entrance from the zero frame to the first frame A_first; +- its cleanup from the last frame A_last to I_h, or side growth if it is an + output role; +- one exterior E = I − I_h⊗B, profile [h, m−2h]. + +For readability these use the axis-23 factor order; axis 25 is symmetric. + +The exterior is always the role's final residual. In stage one it is the +outer residual from I_h⊗B to the sink I. In stage two (PR29 note, +"Two stages, endpoints and the copy correction") the role starts at +D_0 = E, its gate labels contain E, and E is the exit after cleanup. + +Neither change below touches a gate frame, an XOR, or another role. + +- **Merged entrance (any role).** Replace M_in and M_out by M_in − E and + M_out − E. The endpoint identity is unchanged. + - The first residual becomes Δ_first + E. For stage one this is + A_first⊗B + E = I − (I_h − A_first)⊗B. Stage two gives the same matrix. + - The final residual E becomes zero. +- **Merged exit (non-output roles).** The inherited accounting splits the + final segment, from the last gate frame to the sink, into the cleanup and + E. Charge it instead as the one residual I − A_last⊗B. + - Output roles end with side growth, not a cleanup edge, so they keep + their charge. + +In both cases one local transition and one exterior are replaced by a +single residual I − Y with Y = X⊗B: + +- entrance: X = I_h − A_first; +- exit: X = A_last. + +X is idempotent and has rank r ≤ h. The rank of I − Y is m − r, which +equals the removed rank plus m − h. + +## 3. Corner ranks of a complementary projector (Lemma 1) + +Let Y = UW^T ∈ F^{m×m} with W^T U = I_r, so Y is idempotent of rank r, and +let M = I − Y. Write ρ(i,j) for the rank of M restricted to rows ≤ i and +columns ≥ j. Then: + +$$ +\rho(i,j)=\begin{cases} +(i-j+1)-r+\operatorname{rank}U_{i}, & j\le i+1,\\ +\operatorname{rank}\,U_{\le i}W_{\ge j}^{T}, & j\ge i+1. +\end{cases} +$$ + +*Proof.* Let G_j be the span of e_j,…,e_{m−1}. For j > i, the identity +vanishes on the corner, so M's corner equals −U_{≤i}W_{≥j}^T. For j ≤ i+1, +take the following steps. + +1. M is the projector onto ker Y = ker W^T along im Y = im U. Therefore + M(G) = (G + im Y) ∩ ker Y for every subspace G. +2. Hence dim M(G_j) = dim(G_j + im U) − r = (m−j) + rank U_{i}. +4. ρ(i,j) is the dimension of M(G_j) after deleting coordinates > i, which + is the difference of the two dimensions. ∎ + +The NE pivots of the top-row-first, rightmost-pivot elimination are exactly +the positions where the second difference + +$$ +\rho(i,j)-\rho(i-1,j)-\rho(i,j+1)+\rho(i-1,j+1) +$$ + +equals one. Maximal diagonal runs of pivots are the recursive children, as +in the inherited profiler. + +## 4. The fixed PR34 basis + +The PR34 reversed (23,25) basis gives the physical image of X⊗B the entries + +$$ +Y_{kl}=X_{\lambda(k),\lambda(l)}\,v_{o(k)}\nu_{o(l)}. +$$ + +Here λ(k) and o(k) are the local and other-axis coordinates of physical index +k = 25α + β. For axis 23, λ(k) = M_β(α) and o(k) = β; for axis 25 the roles +are swapped. For each local coordinate a, o maps {k : λ(k) = a} bijectively +onto the other axis. + +Factor X = U_X W_X^T with W_X^T U_X = I and set U = D_v Û, W = D_ν Ŵ, where +Û_k = (U_X)_{λ(k)}. Then + +$$ +W^T U = \sum_a (\nu\cdot v)\,W_{X,a}^T U_{X,a} = I. +$$ + +Every line has v = t + 3·1 > 0 and +ν = t/2 − 5/(3(n+1))·1 with all entries nonzero and ν·v = 1. Lemma 1 +therefore gives, with S = λ[0,j) and T = λ(i,m): + +- rank U_{i} = rank X[:, T]; +- rank U_{≤i} W_{≥j}^T = rank X[λ[0,i], λ[j,m)]. + +The profile is the same for every one of the N/v_h lines, so one profile per +merged edge suffices. + +Below the band j ∈ {i, i+1}, ρ is a sum of a function of i and a function of +j, so its second differences vanish. Above the band, ρ depends only on the +sets λ[0,i] and λ[j,m). Pivots there can occur only where a new local row and +a new local column first appear. The certifier evaluates the band and these +at most h² positions. It asserts that every second difference is 0 or 1 and +that there are exactly m − r pivots. + +The tests check two things against direct exact elimination of the full +physical matrix I − Y: + +- Lemma 1 on random layouts with this bijection property; +- that the identity X = I_h reproduces the inherited exterior profile + [m−2h, h]. + +## 5. Exact local ranks (Lemma 2) + +The profiler's envelope projector is A = diag(o) + UV^T/d, with U and V +integer matrices of rank at most two. Their rows depend only on whether a +coordinate is in the core, in the cover minus the core, or outside the cover. +Both choices of X therefore have the form + +$$ +X = \Delta + \sigma UV^T/d, +$$ + +with Δ a 0/1 diagonal and σ = ±1. Write k for the number of columns of U. + +For row and column sets S and T: + +- Let P = S ∩ T ∩ supp Δ, S_0 = S∖P and T_0 = T∖P. +- Let C = dI_k + σ Σ_{p∈P} V_p^T U_p. +- Let Z be a basis of ker U_{S_0} and Y a basis of ker V_{T_0}. + +Then + +$$ +\operatorname{rank}X[S,T]=|P|+\operatorname{rank}U_{S_0}+\operatorname{rank}V_{T_0}+\operatorname{rank}(Y^TCZ)-k. +$$ + +*Proof.* The bordered matrix [[Δ_{ST}, σU_S], [−V_T^T, dI]] has rank +k + rank X[S,T]; this is the Schur complement on dI. Eliminating the |P| unit +pivots of Δ leaves [[0, σU_{S_0}], [−V_{T_0}^T, C]]. + +A matrix [[0, A], [B, C]] has rank rank A + rank B + rank(Y^T C Z): reduce A +and B to full-rank blocks with invertible column and row operations, then +clear C outside the kernel directions. ∎ + +All quantities are integer vectors and at most 2×2 determinants, so every +rank is exact over Q. No modular reduction is used. + +## 6. Composition + +Each axis's selection lists the entrance roles and the exit roles. For each +selected role: + +- The unchanged inherited profiler profiles the removed local transitions, + (0 → first) or (last → I_h). The composer subtracts them from PR79's local + blocks and asserts the result is nonnegative. +- The role's exterior is removed from the bank N/v_h · R. +- Its merged edge contributes its certified runs, multiplied by N/v_h. + +The composer asserts: + +- merged rank mass = removed rank mass + (m−h) × number of merged roles; +- total rank = mW − N + L = 77,120,639,900. + +Roles, W and the deficit are unchanged. + +## 7. Finite bridge + +The largest bit child becomes 552 (it was 529). The least D with +575^D > 2·552^D is 17, so: + +- the bit halving degree becomes 17 and the product-row coefficient + 17·27 + 20·30 = 1059; +- the row stock p^2000 is replaced by p^2200, with gap + 2200 − (51/25)·1059 = 991/25 > 0; +- the suffix condition becomes b_in^{1−ε} > 8800(log_2 b_in + 8), which still + holds eventually. + +The row degree is a free stock parameter: PR29 used p^47000 and the +structured-bulk assembly p^108000. It enters only the row-product slack and +the eventual cutoffs, not κ. The inherited `validate_bridge` recomputes these +fields from maxchild and W and rejects stale values. + +## 8. Scope + +The per-role choice uses first-order profile cost and is a discovery +heuristic; only the composed exact profile is claimed. Every other +assumption is inherited unchanged, including: + +- the ordered affine residual compiler and all-size recursion; +- routing, prime selection and exact recovery; +- the fixed-tape and analytic transfer; +- the complex layer. + +There is no claim of global optimality, a full formalization or a practical +speedup. diff --git a/references/frame-compiler/pr96/research/merged-exterior/README.md b/references/frame-compiler/pr96/research/merged-exterior/README.md new file mode 100644 index 0000000000..5000b6cc59 --- /dev/null +++ b/references/frame-compiler/pr96/research/merged-exterior/README.md @@ -0,0 +1,84 @@ +# Merged auxiliary exteriors + +This finite conditional witness gives +**κ = 55354656014473/10^18 = 5.5354656014473×10^-5**, with bit saving +**27678860161103/(5·10^17)**. It is **6.9746%** above PR79's witness, which +is its base. + +**Idea.** In the inherited accounting every auxiliary role pays a separate +exterior edge I − I_h⊗B with profile [h, m−2h]. Auxiliary source frames are +free, so this residual can be merged into the role's creation edge +I − (I_h − A_first)⊗B. For a role that is not an output, it can instead be +merged into its retirement edge I − A_last⊗B. Each role takes whichever of +the three options has the lowest profile cost. Words, gates, XORs, W and the +deficit are unchanged. + +| Quantity | h23 | h25 | +|---|---:|---:| +| Auxiliary roles R | 27,297 | 35,684 | +| Merged at creation | 15,410 | 20,111 | +| Merged at retirement | 4,216 | 5,149 | +| Unchanged | 7,671 | 10,424 | +| Distinct merged edges certified | 8,537 | 10,601 | + +The first-order profile cost Σ t·n_t·ln(m/t) drops from 3.5686×10^10 to +3.3359×10^10. + +**Corner-rank lemma** ([PROOF.md](PROOF.md) §3–5). Let M = I − Y with +Y = UW^T and W^T U = I. Then the NE corner rank of M is + +- (i−j+1) − r + rank U_{i} for j ≤ i+1; +- rank U_{≤i}W_{≥j}^T for j ≥ i+1. + +In the PR34 fixed basis these reduce to ranks of local submatrices X[S,T], so +the profile is the same for every other-axis line. Each X[S,T] is a 0/1 +diagonal plus a rank ≤2 correction. Its rank is computed exactly over Q from +2×2 integer determinants, with no modular step. + +**Bridge change.** Merged edges create bit children up to **552**, above the +inherited 529. As a result: + +- the bit halving degree becomes **17** (it was 9); +- the row coefficient becomes 1059; +- the product row stock is raised from p^2000 to **p^2200**, with gap 991/25. + +This affects only the row-product slack and the eventual cutoffs, not κ +(§7). + +```sh +make merged-exterior-verify +make verify +``` + +The focused target does the following: + +1. Checks the controlled permutations against the pinned PR34 module. +2. Recomputes every candidate edge profile exactly and replays the per-role + selection. There are 24,586 candidate edges for h23 and 31,717 for h25. +3. Profiles the removed transitions with the unchanged inherited profiler. +4. Rebuilds the complete child list on top of PR79's verified profile. +5. Checks the exact and independent moment enclosures, and that the next grid + point is rejected. +6. Verifies the 47 assembly constraints and the seven margins with the + recomputed bridge. + +It takes about 4 minutes on 4 cores. + +As an additional discovery-time check, all 19,138 selected edges were compared +with direct NE elimination of the full 575×575 physical matrix for one line +modulo 2^31−1, with no mismatch. Unit tests check Lemma 1 against exact +elimination on random layouts. + +Builds on @chafreaky [#79](https://github.com/CrocSwap/integer-mult-bounds/pull/79) +and the work it composes: + +- @eumemic [#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57), [#69](https://github.com/CrocSwap/integer-mult-bounds/pull/69) +- @rohangar1 [#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59) +- @ikeboy [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62) +- @DominikScholz [#63](https://github.com/CrocSwap/integer-mult-bounds/pull/63), [#68](https://github.com/CrocSwap/integer-mult-bounds/pull/68) +- @rohanarun [#65](https://github.com/CrocSwap/integer-mult-bounds/pull/65), [#67](https://github.com/CrocSwap/integer-mult-bounds/pull/67) +- @alejandrozu [#70](https://github.com/CrocSwap/integer-mult-bounds/pull/70) +- @chafreaky [#60](https://github.com/CrocSwap/integer-mult-bounds/pull/60), [#71](https://github.com/CrocSwap/integer-mult-bounds/pull/71) + +It also uses the PR34 fixed basis (jamesyc) and the PR29 two-stage endpoint +note. The merged exteriors are by eumemic with Anthropic Claude assistance. diff --git a/references/frame-compiler/pr96/scripts/experiments/balanced_split_compose.py b/references/frame-compiler/pr96/scripts/experiments/balanced_split_compose.py new file mode 100644 index 0000000000..9f95add5ca --- /dev/null +++ b/references/frame-compiler/pr96/scripts/experiments/balanced_split_compose.py @@ -0,0 +1,182 @@ +"""Complete paid split/pair profile and PR65's exact refined balanced assembly. + +The unchanged full physical words determine every auxiliary multiplicity. +Only fixed-basis finite claims are certified; all-size transfer remains inherited. +Prepared by Chafik Boukhalfa with OpenAI Codex assistance. Apache-2.0. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True + +from copy import deepcopy +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from math import comb +from pathlib import Path +import gzip +import json + +import binary_frame_math as arithmetic +from split_pair_arithmetic import refine, audit +from balanced_split_graph import checked_manifest +from balanced_split_compiler import source_record +from pin_balanced_split_sources import required_paths + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +OUT = ROOT / 'certificates' +INHERITED = ROOT / 'references/frame-compiler/pr48' +OLD = INHERITED / 'research/copied-fixed' +BASELINE = ROOT / 'references/frame-compiler/pr65' +BASELINE_CASE = BASELINE / 'research/reordered-rank-pair' +PROFILE_BASELINE = ROOT / 'references/frame-compiler/pr71/certificates' + + +def check_sources(): + sources = source_record() + operation = ROOT / 'references/frame-compiler/pr59-split-operation' + checked_manifest(operation) + local = json.loads((ROOT/'research/balanced-split/SOURCE.json').read_text()) + assert required_paths() <= set(local['files']), 'Incomplete source/finite-input closure' + for name, digest in local['files'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest() == digest, name + engine = ROOT / 'scripts/experiments/joint_dual_reclaim_compiler.py' + assert engine.read_bytes() == (BASELINE/'scripts/experiments/rank_pair_compiler.py').read_bytes() + provenance = json.loads((ROOT/'research/balanced-split/engine-provenance.json').read_text()) + for record in provenance.values(): + assert sha256((HERE/record['portable_engine']).read_bytes()).hexdigest() == record['portable_engine_sha256'] + for name in ('binary_frame_math.py', 'binary_frame_replay.py', + 'binary_frame_profile_prepare.py', 'binary_frame_profiles.cpp'): + assert (HERE/name).read_bytes() == (BASELINE/'scripts/experiments'/name).read_bytes() + return dict(sources, split_operation=checked_manifest(operation)) + + +def profile(): + parameters = json.loads((ROOT/'research/balanced-split/parameters.json').read_text()) + a, b = 23, 25 + m, N = a*b, comb(a, 3)*comb(b, 3) + profiles = [json.loads((OUT / f'balanced-split-profiles-{h}.json').read_text()) for h in (a, b)] + words = json.loads((OUT / 'balanced-split-compiler.json').read_text()) + W = 2*N + sum(N//f['v']*f['R'] for f in profiles) + L = sum(N//f['v']*f['loss'] for f in profiles) + parts = {'data': Counter({1: 18*N, 21: 2*N, 17: 2*N, 481: 2*N}), + 'paid_endpoint_copy': Counter({1: N})} + receipts = [] + for f in profiles: + h = f['h'] + rep, bank = N//f['v'], N//f['v']*f['R'] + recorded = words['axes'][str(h)] + replay = recorded['replay'] + receipt = json.loads((OUT / f'balanced-split-transitions-{h}.json').read_text()) + for key in ('h', 'v', 'R'): + assert f[key] == receipt[key] + assert f['R'] == replay['roles'] == recorded['compiled']['roles'] == parameters['roles'][str(h)] + assert f['v'] == comb(h, 3) and f['loss'] == h*(h-1) + assert f['crt_disagreements'] == 0 and f['field_prime'] == 2**61-1 + assert sum(t*n for t, n in enumerate(f['blocks'])) == h*f['R']+f['loss'] == f['rank_sum'] == receipt['rank_mass'] == replay['rank_mass'] + assert f['blocks'][0] == 0 and f['blocks'][h] == 0 # Positive children; copied centers already included. + assert receipt['transition_events_equal_independent_xor_word_reconstruction'] + packed = (OUT / f'balanced-split-word-{h}.json.gz').read_bytes() + assert sha256(packed).hexdigest() == recorded['gzip_sha256'] + assert sha256(gzip.decompress(packed)).hexdigest() == recorded['word_sha256'] == receipt['word_sha256'] + histogram = {str(k): v for k, v in replay['histogram'].items() if int(k)} + side = replay['output_roles']-h + histogram['2'] -= side + histogram['1'] += 2*side + assert histogram == receipt['rank_histogram_with_side_growth_split_into_singletons'] + arithmetic.exactness(h) + parts[f'internal_{h}'] = Counter({t: n*rep for t, n in enumerate(f['blocks']) if t and n}) + parts[f'exterior_{h}'] = Counter({h: bank, m-2*h: bank}) + parts[f'data_growth_{h}'] = Counter({1: 2*N, h-2: 2*N}) + receipts.append(receipt) + rows = sum(parts.values(), Counter()) + mass = sum(t*n for t, n in rows.items()) + assert mass == m*W-N+L and max(rows) == 529 and all(0 < t < m for t in rows) + assert (W, mass, m*W-mass) == (parameters['W'], parameters['total_rank'], 1846900) + return dict(m=m, N=N, W=W, L=L, total_rank=mass, deficit=m*W-mass, + maxchild=max(rows), child_multiplicities=dict(sorted(rows.items())), + parts=parts, axes=profiles, words=receipts) + + + +def finite_bridge(width): + bridge = deepcopy(json.loads((OLD/'certificate.json').read_text())['finite_bridge']) + bridge['bit']['W'] = width + bridge['bit']['wire_bits'] = width.bit_length() + bridge['rows']['coefficient'] = sum(bridge[name]['halving_degree'] * bridge[name]['wire_bits'] for name in ('bit','complex')) + bridge['rows']['degree'] = 2000 + bridge['rows']['degree_gap'] = Q(bridge['rows']['degree'])-Q(51,25)*bridge['rows']['coefficient'] + bridge['rows']['suffix_slope'] = 4*bridge['rows']['degree'] + return bridge + + +def validate_bridge(bridge, width): + expected = finite_bridge(width) + for section, key in (('bit','W'), ('bit','wire_bits'), ('rows','coefficient'), + ('rows','degree'), ('rows','degree_gap'), ('rows','suffix_slope')): + assert Q(bridge[section][key]) == Q(expected[section][key]), 'Stale finite bridge: '+section+'.'+key + assert (width,bridge['bit']['wire_bits'],bridge['rows']['coefficient'],Q(bridge['rows']['degree_gap'])) == (134126064,27,843,Q(7007,25)) + return True + + +def compose(): + sources = check_sources() + parameters = json.loads((ROOT/'research/balanced-split/parameters.json').read_text()) + bit_saving, kappa = Q(parameters['bit_saving']), Q(parameters['kappa']) + denominator = parameters['grid_denominator'] + assert type(denominator) is int and denominator == 10**18 + grid = Q(1, denominator) + assert json.loads((OUT/'balanced-split-compiler.json').read_text())['source'] == source_record() + p = profile() + exact = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit_saving) + excluded = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit_saving+grid) + assert exact['upper'] < 1 < excluded['lower'] + independent = audit.independent_moment(arithmetic.js(p), bit_saving, arithmetic.js(exact['terms'])) + independent_rejected = audit.independent_moment(arithmetic.js(p), bit_saving+grid, arithmetic.js(exact['terms'])) + assert independent[1] < 1 < independent_rejected[0] + prior71 = json.loads((PROFILE_BASELINE/'split-pair-kappa.json').read_text()) + oldbit = prior71['bit'] + previous_kappa = Q(prior71['kappa']) + previous_rows = {int(t): n for t,n in oldbit['child_multiplicities'].items()} + prior71_lower = refine.exact_moment(oldbit['m'], oldbit['W'], previous_rows, bit_saving)['lower'] + assert prior71_lower > 1 and kappa > previous_kappa + bridge = finite_bridge(p['W']) + validate_bridge(bridge, p['W']) + assembled = refine.assemble(bridge, bit_saving, Q(1, 10**12), denominator) + assert assembled['kappa'] == kappa + assert all(value > 0 for value in assembled['assembly']['constraints'].values()) + assert all(value > kappa for value in assembled['assembly']['margins'].values()) + coarse_denominator = 10**11 + coarse_bit = Q(refine.floor_scaled(bit_saving, coarse_denominator), coarse_denominator) + coarse = refine.assemble(bridge, coarse_bit, Q(1, 10**12), coarse_denominator) + assert arithmetic.moment(p['m'], p['W'], p['child_multiplicities'], coarse_bit)['upper'] < 1 + result = dict( + status='Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed', + source_manifest_sha256=sha256((ROOT/'research/balanced-split/SOURCE.json').read_bytes()).hexdigest(), + kappa=kappa, bit_saving=bit_saving, bit_saving_excluded_above=bit_saving+grid, + grid_denominator=denominator, bit=dict(p, moment=exact, excluded_moment=excluded), + independent_enclosures=dict(accepted_lower=independent[0], accepted_upper=independent[1], + rejected_lower=independent_rejected[0], rejected_upper=independent_rejected[1]), + assembly=assembled['assembly'], eventual_bounds=assembled['eventual_bounds'], finite_bridge=bridge, + next_kappa=assembled['next_kappa'], next_kappa_rejection=assembled['next_kappa_rejection'], + coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr71_commit='1bef94fd40a746452548c84a4a8f8834670a3113', + pr71_kappa=previous_kappa, ratio_pr71=kappa/previous_kappa, + absolute_gain_pr71=kappa-previous_kappa, + pr71_complete_profile_exclusion_lower=prior71_lower, + full_pr71_child_list_excluded_at_new_bit_saving=True), + exactness=[arithmetic.exactness(h) for h in (23,25)], sources=sources, + dependencies=dict( + data_profile='Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries', + producer='PR62/63 interval pair assembly, selected balanced-split partition and point permutation, PR65 schedules, PR67 profile-cost reclamation, PR68 pending live controls and selected next-use scoring, PR69 balanced coarse sums, future unit completion and bounded PR70 carry exchanges; complete literal words', + geometry='Unchanged fixed-I+J original-envelope projector and CRT formulas', + proof_scope='Ordered affine residual compiler, all-size recursion, finite scalar overhead, routing, prime selection, exact recovery and fixed-tape/analytic transfer remain inherited. Arithmetic cutoffs are not full operational thresholds.')) + (OUT/'balanced-split-kappa.json').write_text(json.dumps(arithmetic.js(result), indent=2, sort_keys=True)+'\n') + print('PASS finite conditional kappa='+str(kappa)+'; bit saving='+str(bit_saving), flush=True) + return result + + +if __name__ == '__main__': + compose() diff --git a/references/frame-compiler/pr96/scripts/experiments/merged_exterior.py b/references/frame-compiler/pr96/scripts/experiments/merged_exterior.py new file mode 100644 index 0000000000..f168f6f705 --- /dev/null +++ b/references/frame-compiler/pr96/scripts/experiments/merged_exterior.py @@ -0,0 +1,284 @@ +#!/usr/bin/env python3 +"""Merged auxiliary exteriors: exact physical profiles and per-role selection. + +Each auxiliary role pays one exterior residual E = I - I_h (x) B (profile +[h, m-2h]). Because auxiliary source frames are free, E may instead be added +to the role's first residual (entrance edge I - (I_h - A_first) (x) B) or, for +a role that is not an output, to its final cleanup (exit edge I - A_last (x) B). +research/merged-exterior/PROOF.md proves that the fixed-basis profile of such +an edge depends only on ranks of local submatrices X[S, T] (Lemma 1). Every +rank here is computed exactly over Q in integer arithmetic (Lemma 2). + +Usage: merged_exterior.py OUTDIR [WORKERS] (writes merged-exterior-selection.json) +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True + +from collections import Counter +from hashlib import sha256 +from math import log +from multiprocessing import Pool +from pathlib import Path +import gzip, json, os + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +OUT = ROOT / 'certificates' +BASE = 'balanced-split' +A_, B_ = 23, 25 +M_ = A_ * B_ + + +def corner_labels(h): + """PR34 reversed (23,25) corner labels (research/copied-fixed/reversed/pr34/independent_controls.py).""" + d = 2 * h + 1; b = h + 2 + r = list(range(h)) + [h - 1] + list(range(h)) + c = list(range(h)) + [0] + list(range(h)) + return [(r[i], i % b) for i in range(d)], [(c[j], (h * b - d + j) % b) for j in range(d)] + + +def completion(h, rows, cols): + """PR34 controlled permutations M_beta: prescribed corner labels, then increasing completion.""" + b = h + 2; m = h * b; d = len(rows) + partial = [{} for _ in range(b)] + for seq, offset in [(rows, 0), (cols, m - d)]: + for k, (label, residue) in enumerate(seq): + alpha, physical = divmod(offset + k, b) + assert residue == physical + partial[residue][alpha] = label + result = [] + for prescribed in partial: + remaining = iter(sorted(set(range(h)) - set(prescribed.values()))) + result.append([prescribed[i] if i in prescribed else next(remaining) for i in range(h)]) + return result + + +PERMS = completion(A_, *corner_labels(A_)) + + +def local_index(h): + """Local coordinate of physical index i = 25*alpha + beta for the axis of dimension h.""" + if h == A_: + return [PERMS[i % B_][i // B_] for i in range(M_)] + assert h == B_ + return [i % B_ for i in range(M_)] + + +def flags(lam): + """prefix[i] = local coordinates of physical rows < i; suffix[j] = of physical columns >= j.""" + prefix = [0] + for x in lam: + prefix.append(prefix[-1] | 1 << x) + suffix = [0] * (len(lam) + 1) + for j in range(len(lam) - 1, -1, -1): + suffix[j] = suffix[j + 1] | 1 << lam[j] + return prefix, suffix + + +def projector(core, cover, h): + """Fixed-I+J envelope projector A = diag(o) + U V^T / d in exact integers. + + Same entries as binary_frame_profiles.cpp. Coordinates fall in three classes + (core, cover minus core, outside cover); U and V rows depend only on the class. + """ + full = (1 << h) - 1 + c = core.bit_count(); out = cover & ~core; nn = out.bit_count() + classes = (core, out, full & ~cover) + w = (4, 3, 3); z = (3 * (h + 1) - 10, -10, -10); o = (0, 1, 0) + if c == 3: + assert core == cover, 'three-point cores are source lines' + return classes, [(w[k],) for k in range(3)], [(z[k],) for k in range(3)], 6 * (h + 1), out + assert c in (1, 2) and core & ~cover == 0 + s = 3 - c + d = 3 * (h + 1) * (s * s + (c - 1) * nn) + U = [(o[k], w[k]) for k in range(3)] + V = [(s * z[k] - 3 * (h + 1) * (c - 1) * o[k], 3 * (h + 1) * s * o[k] + nn * z[k]) for k in range(3)] + return classes, U, V, d, out + + +def operator(core, cover, h, complement): + """X = A (mask o, +UV^T/d) or X = I - A (mask 1-o, -UV^T/d).""" + classes, U, V, d, out = projector(core, cover, h) + full = (1 << h) - 1 + return (classes, U, V, d, full & ~out, -1) if complement else (classes, U, V, d, out, 1) + + +def kernel(rows, k): + """Integer basis of {x in Q^k : r.x = 0 for every row r}, k <= 2.""" + rows = [r for r in rows if any(r)] + if not rows: + return [(1,)] if k == 1 else [(1, 0), (0, 1)] + if k == 1: + return [] + a, b = rows[0] + if any(a * y - b * x for x, y in rows[1:]): + return [] + return [(-b, a)] + + +def small_rank(M): + """Rank of an at most 2x2 integer matrix.""" + if not M or not M[0] or not any(any(r) for r in M): + return 0 + if len(M) == 2 and len(M[0]) == 2 and M[0][0] * M[1][1] - M[0][1] * M[1][0]: + return 2 + return 1 + + +def rank(X, S, T): + """Exact rank over Q of X[S, T] for X = diag(mask) + sigma U V^T / d (PROOF.md, Lemma 2).""" + classes, U, V, d, mask, sigma = X + if not S or not T: + return 0 + P = S & T & mask + S0, T0 = S & ~P, T & ~P + k = len(U[0]) + counts = [(P & cls).bit_count() for cls in classes] + C = [[d * (a == b) + sigma * sum(n * V[c][a] * U[c][b] for c, n in enumerate(counts)) + for b in range(k)] for a in range(k)] + Z = kernel([U[c] for c, cls in enumerate(classes) if S0 & cls], k) + Y = kernel([V[c] for c, cls in enumerate(classes) if T0 & cls], k) + C22 = [[sum(y[a] * C[a][b] * z[b] for a in range(k) for b in range(k)) for z in Z] for y in Y] + return P.bit_count() + (k - len(Z)) + (k - len(Y)) + small_rank(C22) - k + + +def runs(pivots): + """Maximal runs of consecutive pivots (i,j),(i+1,j+1) in row order.""" + out, run = [], 0 + for k, (i, j) in enumerate(pivots): + if k and i == pivots[k - 1][0] + 1 and j == pivots[k - 1][1] + 1: + run += 1 + else: + if run: + out.append(run) + run = 1 + if run: + out.append(run) + return sorted(out, reverse=True) + + +def merged_profile(X, h, fl): + """NE profile of I - Y, Y the physical image of the local idempotent X (x) any line (Lemma 1).""" + prefix, suffix = fl + m = len(prefix) - 1 + full = (1 << h) - 1 + cache = {} + + def R(S, T): + key = (S, T) + if key not in cache: + cache[key] = rank(X, S, T) + return cache[key] + + r = R(full, full) + + def rho(i, j): + if i < 0 or j >= m: + return 0 + if j <= i + 1: + return (i - j + 1) - r + R(prefix[j], full) + R(full, suffix[i + 1]) + return R(prefix[i + 1], suffix[j]) + + def piv(i, j): + z = rho(i, j) - rho(i - 1, j) - rho(i, j + 1) + rho(i - 1, j + 1) + assert z in (0, 1) + return z + + # Second differences vanish below the band j in {i, i+1}; above it they are + # nonzero only where a new local row and a new local column first appear. + pivots = {(i, j) for i in range(m) for j in (i, i + 1) if j < m and piv(i, j)} + rows = [i for i in range(m) if prefix[i + 1] != prefix[i]] + cols = [j for j in range(m) if suffix[j] != suffix[j + 1]] + pivots |= {(i, j) for i in rows for j in cols if j >= i + 2 and piv(i, j)} + assert len(pivots) == m - r, (len(pivots), m, r) + return m - r, runs(sorted(pivots)) + + +def local_profile(X, h): + """Inherited local NE profile of an h x h residual, with rank <= 2 charged as singletons.""" + rows = [(1 << (i + 1)) - 1 for i in range(h)] + cols = [((1 << h) - 1) & ~((1 << j) - 1) for j in range(h)] + [0] + rho = [[rank(X, rows[i], cols[j]) for j in range(h + 1)] for i in range(h)] + pivots = [(i, j) for i in range(h) for j in range(h) + if rho[i][j] - (rho[i - 1][j] if i else 0) - rho[i][j + 1] + (rho[i - 1][j + 1] if i else 0)] + rr = rank(X, (1 << h) - 1, (1 << h) - 1) + assert len(pivots) == rr + return rr, ([1] * rr if rr <= 2 else runs(pivots)) + + +def cost(blocks): + return sum(t * log(M_ / t) for t in blocks) + + +def load_word(h): + path = OUT / f'{BASE}-word-{h}.json.gz' + raw = path.read_bytes() + d = json.loads(gzip.decompress(raw)) + assert d['h'] == h + first, last = {}, {} + for s, a, b in d['events']: + first.setdefault(s, b) + last[s] = b + outputs = {s for s, g, c, t in d['outputs']} + assert sorted(first) == list(range(d['R'])) + return d, first, last, outputs, sha256(raw).hexdigest() + + +def evaluate(job): + """Exact costs for one (kind, frame) key: removed local edge, merged edge.""" + h, kind, frame, core, cover = job + if kind == 'entrance': + removed = local_profile(operator(core, cover, h, False), h) # 0 -> A_first + merged = merged_profile(operator(core, cover, h, True), h, FLAGS[h]) # I - (I - A_first) (x) B + else: + removed = local_profile(operator(core, cover, h, True), h) # A_last -> I_h + merged = merged_profile(operator(core, cover, h, False), h, FLAGS[h]) # I - A_last (x) B + return (kind, frame), removed, merged + + +FLAGS = {h: flags(local_index(h)) for h in (A_, B_)} + + +def select(h, workers): + d, first, last, outputs, digest = load_word(h) + F, R = d['frames'], d['R'] + keys = {('entrance', first[s]) for s in range(R)} | {('exit', last[s]) for s in range(R) if s not in outputs} + jobs = [(h, k, g, *F[g]) for k, g in sorted(keys)] + with Pool(workers) as pool: + result = {key: (removed, merged) for key, removed, merged in pool.map(evaluate, jobs, chunksize=8)} + exterior = cost([h, M_ - 2 * h]) + choice = {} + for s in range(R): + options = [(0.0, 'standard')] + for kind, g in (('entrance', first[s]), ('exit', last[s])): + if kind == 'exit' and s in outputs: + continue + (rr, removed), (mr, merged) = result[kind, g] + assert mr == rr + M_ - h + options.append((cost(removed) + exterior - cost(merged), kind)) + gain, kind = max(options) + if kind != 'standard' and gain > 1e-9: + choice[s] = kind + used = sorted({(choice[s], first[s] if choice[s] == 'entrance' else last[s]) for s in choice}) + return dict(h=h, R=R, word_sha256=digest, + entrance=sorted(s for s in choice if choice[s] == 'entrance'), + exit=sorted(s for s in choice if choice[s] == 'exit'), + merged_edges={f'{k}:{g}': dict(rank=result[k, g][1][0], runs=result[k, g][1][1]) for k, g in used}, + candidate_edges=len(keys)) + + +def selection(workers=None): + workers = workers or (len(os.sched_getaffinity(0)) if hasattr(os, 'sched_getaffinity') else os.cpu_count()) + return {str(h): select(h, workers) for h in (A_, B_)} + + +if __name__ == '__main__': + outdir = Path(sys.argv[1]) + record = selection(int(sys.argv[2]) if len(sys.argv) > 2 else None) + outdir.mkdir(parents=True, exist_ok=True) + (outdir / 'merged-exterior-selection.json').write_text(json.dumps(record, sort_keys=True, separators=(',', ':')) + '\n') + for h, r in record.items(): + print(f'h={h}: roles {r["R"]}, entrance {len(r["entrance"])}, exit {len(r["exit"])}, ' + f'merged edges {len(r["merged_edges"])} of {r["candidate_edges"]} candidates', flush=True) diff --git a/references/frame-compiler/pr96/scripts/experiments/merged_exterior_compose.py b/references/frame-compiler/pr96/scripts/experiments/merged_exterior_compose.py new file mode 100644 index 0000000000..b309f3006d --- /dev/null +++ b/references/frame-compiler/pr96/scripts/experiments/merged_exterior_compose.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +"""Compose the PR79 balanced-split witness with merged auxiliary exteriors. + +Each selected role loses its entrance (0 -> first frame) or final cleanup +(last frame -> I_h) local transition and its exterior [h, m-2h], and gains one +exactly profiled merged edge. The removed transitions are profiled by the +unchanged inherited profiler. Words, data, endpoint copies and the complex +layer are PR79's. The finite bridge is recomputed for the new largest child. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True + +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import json, struct, subprocess, tempfile + +import binary_frame_math as arithmetic +import balanced_split_compose as base +from split_pair_arithmetic import refine, audit +from merged_exterior import A_, B_, M_, OUT, ROOT, HERE, load_word + +ROW_DEGREE = 2200 # product row stock p^2200 (PROOF.md, section 4) + + +def removed_transitions(h, chosen): + d, first, last, outputs, digest = load_word(h) + assert digest == chosen['word_sha256'] and d['R'] == chosen['R'] + assert not set(chosen['entrance']) & set(chosen['exit']) and not set(chosen['exit']) & outputs + frames = [(0, 0, 0), (0, 0, h)] + [(c, u, 1 if c == u else u.bit_count() - c.bit_count()) for c, u in d['frames']] + removed = Counter() + for s in chosen['entrance']: + removed[0, first[s] + 2] += 1 + for s in chosen['exit']: + removed[last[s] + 2, 1] += 1 + mass = sum((frames[b][2] - frames[a][2]) * n for (a, b), n in removed.items()) + edges = Counter([f'entrance:{first[s]}' for s in chosen['entrance']] + [f'exit:{last[s]}' for s in chosen['exit']]) + return frames, removed, mass, d['v'], edges + + +def profile_removed(h, frames, removed, mass, v): + """Unchanged inherited profiler on the removed transitions only.""" + with tempfile.TemporaryDirectory(prefix='merged-exterior-') as tmp: + tmp = Path(tmp) + binary = tmp / 'profiles' + subprocess.run(['c++', '-O2', '-std=c++17', '-I', str(ROOT / 'references/frame-compiler/pr48/scripts/partial_swap'), + str(HERE / 'binary_frame_profiles.cpp'), '-o', str(binary)], check=True) + path = tmp / f'removed{h}.bin' + with path.open('wb') as f: + # R=0 and loss=mass satisfy the inherited header check sum == h*R + loss. + f.write(struct.pack('<6I2Q', h, v, 0, len(frames), len(removed), 0, mass, mass)) + for c, u, r in frames: + f.write(struct.pack('<2QI', c, u, r)) + for (a, b), n in sorted(removed.items()): + f.write(struct.pack('<2Iq', a, b, n)) + subprocess.run([str(binary), str(path)], check=True, capture_output=True, text=True) + prof = json.loads(Path(str(path) + '.profiles.json').read_text()) + assert prof['crt_disagreements'] == 0 and prof['rank_sum'] == mass + return prof['blocks'] + + +def profile(selection): + p = base.profile() # PR79 complete profile and all of its checks + m, N, W, L = p['m'], p['N'], p['W'], p['L'] + parts = {name: Counter(rows) for name, rows in p['parts'].items()} + axes = {} + for f in p['axes']: + h = f['h'] + chosen = selection[str(h)] + frames, removed, mass, v, edges = removed_transitions(h, chosen) + assert v == f['v'] + blocks = profile_removed(h, frames, removed, mass, v) + rep = N // v + internal = Counter({t: n for t, n in enumerate(f['blocks']) if n}) + internal.subtract(Counter({t: n for t, n in enumerate(blocks) if n})) + assert min(internal.values()) >= 0, 'removed more than present' + merged = Counter() + for key, count in edges.items(): + e = chosen['merged_edges'][key] + assert sum(e['runs']) == e['rank'] and len(e['runs']) and max(e['runs']) < m + for t in e['runs']: + merged[t] += count + assert set(chosen['merged_edges']) == set(edges) + roles = len(chosen['entrance']) + len(chosen['exit']) + # Each merged role trades its removed local edge and one exterior (rank m-h) for one edge. + assert sum(t * n for t, n in merged.items()) == mass + roles * (m - h) + bank = rep * (f['R'] - roles) + parts[f'internal_{h}'] = Counter({t: n * rep for t, n in internal.items() if n}) + parts[f'merged_{h}'] = Counter({t: n * rep for t, n in merged.items()}) + parts[f'exterior_{h}'] = Counter({h: bank, m - 2 * h: bank}) + axes[str(h)] = dict(R=f['R'], entrance_roles=len(chosen['entrance']), exit_roles=len(chosen['exit']), + merged_edges=len(edges), removed_rank_mass=mass, removed_blocks=blocks, + word_sha256=chosen['word_sha256']) + rows = sum(parts.values(), Counter()) + total = sum(t * n for t, n in rows.items()) + assert total == m * W - N + L == p['total_rank'] and all(0 < t < m for t in rows) + return dict(m=m, N=N, W=W, L=L, total_rank=total, deficit=m * W - total, maxchild=max(rows), + child_multiplicities=dict(sorted(rows.items())), parts=parts, axes=axes) + + +def finite_bridge(width, maxchild): + """PR79 bridge with the bit layer's largest child, halving degree and row stock updated.""" + bridge = base.finite_bridge(width) + bridge['bit']['maxchild'] = maxchild + bridge['bit']['halving_degree'] = refine.balanced.halving_degree(bridge['bit']['m'], maxchild) + coefficient = sum(bridge[k]['halving_degree'] * bridge[k]['wire_bits'] for k in ('bit', 'complex')) + bridge['rows'].update(coefficient=coefficient, degree=ROW_DEGREE, + degree_gap=ROW_DEGREE - Q(51, 25) * coefficient, suffix_slope=4 * ROW_DEGREE) + refine.balanced.validate_bridge(bridge) + return bridge + + +def best_saving(p, denominator): + """Largest grid saving whose exact upper moment is below one.""" + lo, hi = 1, denominator // 10**4 + assert refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], Q(hi, denominator))['lower'] > 1 + while hi - lo > 1: + mid = (lo + hi) // 2 + if refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], Q(mid, denominator))['upper'] < 1: + lo = mid + else: + hi = mid + return Q(lo, denominator) + + +def compose(selection): + denominator = 10**18 + grid = Q(1, denominator) + p = profile(selection) + bit = best_saving(p, denominator) + exact = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit) + excluded = refine.exact_moment(p['m'], p['W'], p['child_multiplicities'], bit + grid) + assert exact['upper'] < 1 < excluded['lower'] + js = arithmetic.js(dict(p, parts={})) + independent = audit.independent_moment(js, bit, arithmetic.js(exact['terms'])) + rejected = audit.independent_moment(js, bit + grid, arithmetic.js(exact['terms'])) + assert independent[1] < 1 < rejected[0] + bridge = finite_bridge(p['W'], p['maxchild']) + assembled = refine.assemble(bridge, bit, Q(1, 10**12), denominator) + kappa = assembled['kappa'] + assert all(value > 0 for value in assembled['assembly']['constraints'].values()) + assert all(value > kappa for value in assembled['assembly']['margins'].values()) + pr79 = json.loads((OUT / 'balanced-split-kappa.json').read_text()) + previous = Q(pr79['kappa']) + old = {int(t): n for t, n in pr79['bit']['child_multiplicities'].items()} + pr79_lower = refine.exact_moment(pr79['bit']['m'], pr79['bit']['W'], old, bit)['lower'] + assert pr79_lower > 1 and kappa > previous + return dict( + status='Finite conditional physical witness and exact balanced assembly; inherited transfer hypotheses remain assumed', + kappa=kappa, bit_saving=bit, bit_saving_excluded_above=bit + grid, grid_denominator=denominator, + bit=dict(p, moment=exact, excluded_moment=excluded), + independent_enclosures=dict(accepted_lower=independent[0], accepted_upper=independent[1], + rejected_lower=rejected[0], rejected_upper=rejected[1]), + assembly=assembled['assembly'], eventual_bounds=assembled['eventual_bounds'], finite_bridge=bridge, + next_kappa=assembled['next_kappa'], next_kappa_rejection=assembled['next_kappa_rejection'], + comparison=dict(pr79_commit='9a58e62cf9e8954a4dde3c9b1372d733c276a6d1', pr79_kappa=previous, + ratio_pr79=kappa / previous, pr79_complete_profile_exclusion_lower=pr79_lower), + selection_sha256=sha256(json.dumps(selection, sort_keys=True, separators=(',', ':')).encode()).hexdigest()) + + +if __name__ == '__main__': + outdir = Path(sys.argv[1]) + selection = json.loads((outdir / 'merged-exterior-selection.json').read_text()) + result = compose(selection) + (outdir / 'merged-exterior-kappa.json').write_text(json.dumps(arithmetic.js(result), indent=1, sort_keys=True) + '\n') + print(f'kappa {result["kappa"]} = {float(result["kappa"]):.12e}; bit saving {float(result["bit_saving"]):.12e}; ' + f'maxchild {result["bit"]["maxchild"]}; ratio to PR79 {float(result["comparison"]["ratio_pr79"]):.5f}', flush=True) diff --git a/references/frame-compiler/pr96/scripts/experiments/verify_merged_exterior.py b/references/frame-compiler/pr96/scripts/experiments/verify_merged_exterior.py new file mode 100644 index 0000000000..ba11bc6b5f --- /dev/null +++ b/references/frame-compiler/pr96/scripts/experiments/verify_merged_exterior.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Replay the merged-exterior selection, exact profiles and composition. + +Checks the controlled permutations against the pinned PR34 module, recomputes +every candidate merged and removed edge profile in exact integer arithmetic, +replays the per-role selection, recomposes the complete recursive profile on +the PR79 witness and compares both certificates. +""" +import sys +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode = True + +from hashlib import sha256 +from pathlib import Path +import importlib.util, json + +import binary_frame_math as arithmetic +from merged_exterior import OUT, PERMS, ROOT, selection +from merged_exterior_compose import compose + +GEOMETRY = ROOT / 'research/copied-fixed/reversed' + + +def check_permutations(): + """Compare with the pinned PR34 module, loaded by the inherited loader (host resource caps omitted).""" + pinned = json.loads((GEOMETRY / 'geometry-source.json').read_text())['sha256']['pr34/independent_controls.py'] + source = GEOMETRY / 'pr34/independent_controls.py' + assert sha256(source.read_bytes()).hexdigest() == pinned, 'pinned PR34 source changed' + spec = importlib.util.spec_from_file_location('merged_exterior_geometry', GEOMETRY / 'geometry.py') + geometry = importlib.util.module_from_spec(spec) + spec.loader.exec_module(geometry) + controls = geometry.load('pr34_independent_merged_exterior', source) + assert controls.completion(23, *controls.corner_labels(23)) == PERMS, 'controlled permutations differ from pinned PR34' + + +def verify(): + check_permutations() + replayed = selection() + stored = json.loads((OUT / 'merged-exterior-selection.json').read_text()) + assert replayed == stored, 'selection or exact merged profiles differ' + result = json.loads(json.dumps(arithmetic.js(compose(stored)))) + assert result == json.loads((OUT / 'merged-exterior-kappa.json').read_text()), 'composition differs' + print(f'PASS merged exteriors: kappa={result["kappa"]}; bit saving={result["bit_saving"]}; ' + f'largest child {result["bit"]["maxchild"]}', flush=True) + + +if __name__ == '__main__': + verify() diff --git a/references/frame-compiler/pr96/tests/test_merged_exterior.py b/references/frame-compiler/pr96/tests/test_merged_exterior.py new file mode 100644 index 0000000000..f50d3f9d84 --- /dev/null +++ b/references/frame-compiler/pr96/tests/test_merged_exterior.py @@ -0,0 +1,103 @@ +import random +import sys +import unittest +from fractions import Fraction as Q +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / 'scripts/experiments')) +import merged_exterior as me + + +def dense(X, h): + classes, U, V, d, mask, sigma = X + cls = [next(c for c, part in enumerate(classes) if part >> i & 1) for i in range(h)] + return [[Q(int(i == j and mask >> i & 1)) + Q(sigma * sum(a * b for a, b in zip(U[cls[i]], V[cls[j]])), d) + for j in range(h)] for i in range(h)] + + +def rational_rank(rows): + rows = [r[:] for r in rows] + rank = 0 + for c in range(len(rows[0]) if rows else 0): + p = next((k for k in range(rank, len(rows)) if rows[k][c]), None) + if p is None: + continue + rows[rank], rows[p] = rows[p], rows[rank] + for k in range(len(rows)): + if k != rank and rows[k][c]: + f = rows[k][c] / rows[rank][c] + rows[k] = [x - f * y for x, y in zip(rows[k], rows[rank])] + rank += 1 + return rank + + +def ne_runs(M): + """Top-row-first, rightmost-pivot elimination over Q.""" + M = [r[:] for r in M] + pivots = [] + for i in range(len(M)): + j = max((j for j, x in enumerate(M[i]) if x), default=None) + if j is None: + continue + pivots.append((i, j)) + for k in range(i + 1, len(M)): + if M[k][j]: + f = M[k][j] / M[i][j] + M[k] = [x - f * y for x, y in zip(M[k], M[i])] + return len(pivots), me.runs(pivots) + + +def random_frame(rng, h): + c = rng.choice((1, 2, 3)) + core = sum(1 << x for x in rng.sample(range(h), c)) + if c == 3: + return core, core + return core, core | sum(1 << x for x in rng.sample(range(h), rng.randrange(1, h - c))) + + +class MergedExteriorTest(unittest.TestCase): + def test_exact_rank_matches_rational_elimination(self): + rng = random.Random(2325) + for h in (23, 25): + for _ in range(40): + X = me.operator(*random_frame(rng, h), h, rng.random() < 0.5) + D = dense(X, h) + S = sum(1 << x for x in range(h) if rng.random() < 0.6) + T = sum(1 << x for x in range(h) if rng.random() < 0.6) + sub = [[D[i][j] for j in range(h) if T >> j & 1] for i in range(h) if S >> i & 1] + self.assertEqual(me.rank(X, S, T), rational_rank(sub) if sub and sub[0] else 0) + + def test_operators_are_idempotent(self): + rng = random.Random(7) + for h in (23, 25): + for _ in range(4): + frame = random_frame(rng, h) + for complement in (False, True): + D = dense(me.operator(*frame, h, complement), h) + self.assertEqual([[sum(D[i][k] * D[k][j] for k in range(h)) for j in range(h)] for i in range(h)], D) + + def test_lemma_profile_matches_direct_elimination(self): + """Random layouts pairing each local coordinate once with each line coordinate.""" + rng = random.Random(46) + h, n = 23, 3 + for _ in range(12): + layout = [(a, c) for a in range(h) for c in range(n)] + rng.shuffle(layout) + lam = [a for a, c in layout] + v = [rng.randrange(1, 9) for _ in range(n)] + nu0 = [rng.randrange(1, 9) for _ in range(n)] + nu = [Q(x, sum(a * b for a, b in zip(nu0, v))) for x in nu0] + X = me.operator(*random_frame(rng, h), h, rng.random() < 0.5) + D = dense(X, h) + M = [[Q(int(k == l)) - D[a][b] * v[c] * nu[e] for l, (b, e) in enumerate(layout)] + for k, (a, c) in enumerate(layout)] + self.assertEqual(me.merged_profile(X, h, me.flags(lam)), ne_runs(M)) + + def test_layout_reproduces_inherited_exterior(self): + for h in (23, 25): + identity = ((((1 << h) - 1), 0, 0), [(0,)] * 3, [(0,)] * 3, 1, (1 << h) - 1, 1) + self.assertEqual(me.merged_profile(identity, h, me.FLAGS[h]), (me.M_ - h, [me.M_ - 2 * h, h])) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr100/ARCHIVE.json b/references/signed-recursion/pr100/ARCHIVE.json new file mode 100644 index 0000000000..27af88b6cd --- /dev/null +++ b/references/signed-recursion/pr100/ARCHIVE.json @@ -0,0 +1,92 @@ +{ + "file_commits": { + "LICENSE": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "NOTICE": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "references/copied-fixed/pr34/review-balanced-transform.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "references/copied-fixed/pr34/review-bulk-resampling.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/copied-fixed/PROOF.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/copied-fixed/balanced_assembly.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/PROOF.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/README.md": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/SOURCE.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/LICENSE": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/NOTICE": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/SOURCE.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/audit.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/binary_frame_math.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/arithmetic-sources/refine.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/certificate.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/focused-validation.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/log-recovery.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/missing-log-attempt.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/moments.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/pr97-source-manifest.json": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/test_controls.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "research/deferred-balanced/verify.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "scripts/structured_bulk_assembly.py": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791" + }, + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "1c53970fb4face631a1b331ec66d33111eccd280a129f9b64c2da6df96861c3f", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/deferred-balanced/PROOF.md": "102a768aba9d9a4b3155b80dfe2d1265e8500a5ee9e5da4972225e5dbabbd5e3", + "research/deferred-balanced/README.md": "e7408608df6dae224cd4836b774795649b479a7bce72696822520c004c49744e", + "research/deferred-balanced/SOURCE.json": "a8108675f973d706679fcece22e6552e6e4cab52d9da1de7ced369d7bfc7c227", + "research/deferred-balanced/arithmetic-sources/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-balanced/arithmetic-sources/NOTICE": "f0a0aafc64143a58437c2cc68cecf2fc223a72e7922e74733f4b697415441d50", + "research/deferred-balanced/arithmetic-sources/SOURCE.json": "8032dea829a8518fbfb091cb41acb2ffd4c850802ba31f579ebc543c3913522f", + "research/deferred-balanced/arithmetic-sources/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/deferred-balanced/arithmetic-sources/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "research/deferred-balanced/arithmetic-sources/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/deferred-balanced/certificate.json": "bcf324430f7f67fd46402f0ffa47e8cccbd42af01b1844bcbc7ec8f5610b657a", + "research/deferred-balanced/focused-validation.json": "a9bcb03b18635626ad1ade4c274c785082cafcb9034ee6c16fab8cbf20d3ec33", + "research/deferred-balanced/log-recovery.json": "83bcb29165f7c3f174f61c5fc1a726e25263aedfa1b582384a41be39aaa5eae3", + "research/deferred-balanced/missing-log-attempt.json": "a4f307a4ee4f261bfa704c8f89ecbc58d2c92d9b7f58b19274afcbb16c26ad07", + "research/deferred-balanced/moments.py": "ab5c15ff5f025a9d2ed7c625bf798940f2d80cab8f44dc6a27a588ff52009851", + "research/deferred-balanced/pr97-source-manifest.json": "eca8ccc565dc6145b8da703a752f7dd54873993bb5bc7ec0c23bd6649a2ac1d0", + "research/deferred-balanced/test_controls.py": "4b73b4cc00fb9bfb57e46fbf6143df82b38cfc63f54d840830b067511be3c00a", + "research/deferred-balanced/verify.py": "5122a0899c68bb5c20055971456992087a5469cf64f2557bdeb11ffdc62fa56a", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + }, + "git_blobs": { + "LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "NOTICE": "b5656377588f29410ce427f6a345eec363d7f879", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "8f4451b67fae34ab540eb16ad836a5ab50a8921d", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "c9262e908a0ef014699d175f7bf427aed6469577", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "b0818f69e68174de819692d68bb6edc69254d491", + "references/copied-fixed/pr34/review-balanced-transform.md": "5a173f4e62ee4ec1ee39aa5d7eefdd63a652e411", + "references/copied-fixed/pr34/review-bulk-resampling.md": "9731a03fdb7a1cecaddab737545befa238cb9ad3", + "research/copied-fixed/PROOF.md": "ffbde841bd0f0c10945125137c3eb53cedc240df", + "research/copied-fixed/balanced_assembly.py": "c7fd42867d741939db6a41529bfdbb136f03191b", + "research/deferred-balanced/PROOF.md": "47380250c1bbe8e8d536c5a8478d954b95cf7af5", + "research/deferred-balanced/README.md": "e74570902d46bff0fcf31cdcec8726b00d6a010d", + "research/deferred-balanced/SOURCE.json": "b404d707f1bd52ed084d40a964ac31d1269d5168", + "research/deferred-balanced/arithmetic-sources/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "research/deferred-balanced/arithmetic-sources/NOTICE": "d5170811d5b1a8eaa19c9f68ce293c589dcbf67c", + "research/deferred-balanced/arithmetic-sources/SOURCE.json": "7c45875021e51619991476ac6890bc7b4925007e", + "research/deferred-balanced/arithmetic-sources/audit.py": "7d9949e6764c74f68aac21c9668170e4d774f699", + "research/deferred-balanced/arithmetic-sources/binary_frame_math.py": "b87855e808802c6b5dbdfb845f2328370ff8a4f0", + "research/deferred-balanced/arithmetic-sources/refine.py": "399299089e26a77a81d11365c829f4cb6cb05e49", + "research/deferred-balanced/certificate.json": "08ee7c9e3563639f968e2be642a5eb6cc7f8dba8", + "research/deferred-balanced/focused-validation.json": "d94b3e55dd35cc46524666a6d73bfc9da1b11950", + "research/deferred-balanced/log-recovery.json": "59a2433f4d8f7a1fa1dd2112f90ba92cf7d2ff19", + "research/deferred-balanced/missing-log-attempt.json": "d32c56bc28aed273b182708438b209590320d78d", + "research/deferred-balanced/moments.py": "bcecd3c5d2b4b7a06875fe4c09f02ea03ec0f84e", + "research/deferred-balanced/pr97-source-manifest.json": "3521d3c5cdba3a93b29cd7e9b2603caa37f4b705", + "research/deferred-balanced/test_controls.py": "52f77629b2f0aec3f6efb31c216f752517951840", + "research/deferred-balanced/verify.py": "0e6ae2fc8bef241c5aa95457332251299d71a750", + "scripts/structured_bulk_assembly.py": "b76f9cb5a452fb637f3a8aec0748da6d2d81968a" + }, + "head": "3dbe4e18a6a20f8115eb2f9a34a46254357d7791", + "repository": "rohanarun/integer-mult-bounds", + "scope": "Selected preserved upstream source and evidence closure. All files retain original Git bytes; file_commits identifies four historical PR97 logs recovered at the subsequent head." +} diff --git a/references/signed-recursion/pr100/LICENSE b/references/signed-recursion/pr100/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/signed-recursion/pr100/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/signed-recursion/pr100/NOTICE b/references/signed-recursion/pr100/NOTICE new file mode 100644 index 0000000000..b565637758 --- /dev/null +++ b/references/signed-recursion/pr100/NOTICE @@ -0,0 +1,304 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. diff --git a/references/signed-recursion/pr100/references/copied-fixed/pr34/ASSEMBLY_PROOF.md b/references/signed-recursion/pr100/references/copied-fixed/pr34/ASSEMBLY_PROOF.md new file mode 100644 index 0000000000..8f4451b67f --- /dev/null +++ b/references/signed-recursion/pr100/references/copied-fixed/pr34/ASSEMBLY_PROOF.md @@ -0,0 +1,165 @@ +> Current evidence: independent conditional paper acceptance at the scope in [REVIEW.md](REVIEW.md). Historical author/pending labels below describe the frozen submission; imported predecessor hypotheses remain explicit. + +# Conditional balanced composition of reversed two-stage corners + +Prepared with OpenAI assistance, 8 October 2026. This is a focused conditional paper increment with exact arithmetic. It is neither a formal verification nor an unconditional multiplication theorem or global-priority claim. + +## 1. Result, source correction and hypotheses + +The exact PR33 head used here is DominikScholz/integer-mult-bounds at e0399d0e1a222bebf72e44ad374004bbcb7f2c64. It already includes the contiguous standard-order profile 11 singletons + [43,37,1933], with bit saving 1638156876/10^14 and final saving 1638103206/10^14. Its older certificate-47-45.json remains a separate 91-singleton checkpoint with bit saving 16039/10^9. Comparing only against that older checkpoint would overstate the new contribution. The frozen source manifest gives repository, commit, path, Git blob hash and SHA-256; every downloaded file was checked against the exact Git blob. Supplier programs were read but never executed. + +There are two conclusions, with separate obligations: + +1. Keeping PR33's standard bit graph and profile unchanged, the already accepted balanced transfer yields kappa = 1638130040/10^14. +2. If the separately reviewed reversed-order common-basis theorem supplies the profile 9 singletons + [43,39,1933] at ordered dimensions (45,47), the same transfer yields kappa = 1639226629/10^14 = 0.00001639226629. + +The second result improves the pinned PR33 saving by 1123423/10^14. Its bit saving is a = 1639253501/10^14. No producer optimization from the concurrent producer lane is included. + +The assumptions are explicit. Retain the fixed finite alphabet and fixed finite number of one-dimensional tapes multiplication framework, the actual PR33/PR29 finite producer scalar identities, carrier ownership and label inclusions, arbitrary dirty-auxiliary restoration, same-common-basis local and auxiliary profiles, and arbitrary-width complete-record interchange with compact spectators. For the second conclusion also retain the new uniform reversed-order geometry theorem, including ordered contiguous pivots, simultaneous nonvanishing in the common rational family, both invocation orientations, and no uncharged reorder. The present arithmetic does not establish these geometric or circuit theorems. + +Retain the PR21 all-role complex phase circuit, its normalized error and exact-recovery interfaces, and the attributed RaD/PR23 semantic guard, arbitrary-coordinate router, balanced positional layout, phase-cell inverse and bulk-resampling constructions. The [previous balanced composition](https://github.com/jamesyc/integer-mult-bounds/blob/a2d8ac18b2c5a6ca53efa802f48e64b8140ae2d9/research/a5-blocks-28-22/COMPOSITION_PROOF.md) and [rectangular composition](https://github.com/jamesyc/integer-mult-bounds/blob/7a7fd0d463ec75e19ea60dc6eb513d3d95672865/research/rectangular-a5-extra22/ASSEMBLY_PROOF.md) supply this generic transfer under their explicit assumptions. Here we audit the changed finite graph interfaces and instantiate the transfer; we do not re-prove or rename the inherited results. + +## 2. Complete physical histogram and what reversal changes + +Put m=45*47=2115, v_h=binom(h,3), and N=v_45*v_47=230090850. The retained producer records are: + +- h=45: c=309138, q=42615, matched=5649, R=346104, loss=1980. +- h=47: c=354791, q=48692, matched=6135, R=397348, loss=2162. + +For each h, R=c+q-matched and loss=h(h-1), with no additional center roles. The source histogram H_h satisfies sum_r r H_h(r)=h R_h+2 loss_h. Let B_h=(N/v_h)R_h. Then B_45=5612076360, B_47=5638368120, + +W=2N+B_45+B_47=11710626180, +L=sum_h (N/v_h)loss_h=62784480, +s=Wm-N+2L=24767869848810, +Wm-s=104521890. + +The complete list is reconstructed from these records as follows: + +- Exterior h-bank: B_h copies of [h,m-2h]. +- Internal rank-r residual: (N/v_h)H_h(r) copies of its ordinary local profile. At r=h this is [h]; at 2r>h and r n_1 - 4N, +n_37 -> n_37 - 2N, +n_39 -> n_39 + 2N. + +Its rank change is -4N-37*2N+39*2N=0. This replacement is valid only because the separate geometric theorem realizes those matching intervals contiguously in the actual physical order. It is not justified by matching ranks, sampled pivots, or freely gathering arbitrary coordinates. + +## 3. Exact moments and justified negative conclusions + +For every positive child width t, the checker encloses log(m/t) by reducing m/t=2^k y, with 1<=y<=2, and using + +log(y)=2 sum_{j=0}^{23} z^(2j+1)/(2j+1) + tail, +z=(y-1)/(y+1), +0<=tail<=2 z^49/[49(1-z^2)]. + +Lower and upper endpoints are rounded outward on the rational 10^-12 grid. For u>=0, the upper bound is exp(u)<=1+u+u^2/[2(1-u/3)] when u<1. Indeed j!>=2*3^(j-2) for j>=2, so the positive Taylor tail is dominated termwise by that geometric series. For a lower bound use 1+u+u^2/2+u^3/6. Thus the checker proves bounds on the actual characteristic + +M(a)=sum_t [t n_t/(mW)] exp(a log(m/t)). + +It exactly reproduces the published 91-singleton and PR33 standard upper moments. At a=1639253501/10^14 the reversed moment is strictly below one, with certified gap greater than 16/10^16. At the next grid point 1639253502/10^14 its certified LOWER bound exceeds one. The standard profile likewise has a lower bound above one at its next grid point 1638156877/10^14. These are genuine grid-level exclusions for the stated histograms, not a claim inferred from a failed upper enclosure. Monotonicity of M, because 0=s_c+E. + +The accepted completed-child induction A(e)<=max_r A(r floor(e/m_c))+s_c floor(e/m_c)+E consequently retains A(e)<=2Be. With the disjoint outer selected pieces and individual work, A_layer2r^D and failure one exponent lower. The role counts satisfy W<2^34 and W_c<2^41. Reversal or the data regrouping changes neither maximum nor role count. + +For global call width U<=C p, reserve the PRODUCT + +Q=W^[16 ceil(log2 U)] W_c^[544 ceil(log2 U)]. + +A complex ancestor retains its own split while a bit adapter runs, so using the maximum rather than the product is invalid. When p>=C and log2 p>=25, + +log2 Q <= (16*34+544*41)*(51/25) log2 p +=22848*(51/25) log2 p <47000 log2 p. + +The strict degree gap is 9752/25. Thus p^47000 complete rows suffice. Apply exact individual phase kernels to a physically preceding prefix of ceil(log2 Q) selected positions and retain those whole chunks. If the root is shorter, use the elementary fallback. Otherwise pad once to Q ceil(R/Q)<2R. Descendant splits cut complete rows whose active, compact-control and spectator fields remain complete. Completed all-role maps return padded zero rows to zero; remove padding only at completed boundaries. No suffix is moved into this prefix for free. + +The two-stage paid correction copies one existing complete role stream, applies its width-one bit child, XORs into the other data stream, and erases the copy. Its O(V/W) ordinary work and one recursive child are already in the list. Process it sequentially with its existing row fields: it adds a fixed parked stream to the depth-first stack, not an independent row-index family. No new row divisor or padding is introduced. Dirty-scratch restoration and the final full interchange are the retained topology theorem, required in both orientations. Accordingly the original complete-row proof applies without multiplying Q by a fictitious correction reservoir. + +A sufficient row-suffix inequality is b_input^(1-epsilon)>188000(log2 b_input+8). It is checked with the actual degree47000, rather than inherited by numerical substitution. + +## 6. Reuse of the accepted balanced transfer, with changed-interface audit + +The accepted balanced proof permits any bit graph having the complete-word, both-orientation, dirty-scratch contract just checked and a strict characteristic exponent a. Its implementation processes each long FFT axis's extra top bit individually, then partitions the common named low positions into complete groups of widths K_j in [K,2K), K=floor(d^c). Every axis in one call supplies the same K_j. The axis-major/group-major permutation and its inverse use the paid arbitrary-coordinate router, including its untouched spectator, three-reservoir matching split, active-masked shears and current-address repair. It is not a free relabeling or the older slower sequential-transpose implementation. + +The bit substitution is valid because that router and the bulk mover call only the bit interchange contract on complete records with arbitrary complete spectators. Each current rectangle is [P] x [2^K_j]^(d-1) x [S]. Supplied widths K_j>=K satisfy lower compact tests; K_j<2K changes upper bounds by a fixed constant. The row prefix remains disjoint from front/back control fields; complete-row splitting does not cut those fields. Semantic precision depends on selected axes, not unused within-chunk coordinates. These are the same hypotheses used in the accepted transfer; the exact new stock was established in section5. + +Named FFT level order, twiddle exponents and frequency significance remain unchanged. The inverse recovers lower named coordinates before their inverse twiddles. The physical forward alignment is L_new B F-, the pointwise product uses that same alignment, and inverse alignment is F+ B^-1 L_new^-1. Original prime-box ordering and final normalization are retained. The extra individual top work costs O(T p d), uses p+d+O(1)=O(p) bits and contributes at most d guard bits. + +The same global rounded H, exact diagonal one, inverse row norm<=8p and gap>=1/(8p) are retained. With alpha^2=Theta(p^r), w^2=O(p^(1-r)); the normalization gamma=d(2alpha^2+ceil(log2(32p))+1) still requires epsilon+r<1. The phase-cell inverse uses conventional unconditional multiplication for its small convolutions. Its principal windows restrict this same H with artificial-boundary distance>=512p^2 w and complementary period>w. The bulk mover keeps L>=p^8, halo4096p^3, persistent L+2A target windows, current-small-field-only padding, alternating overlap tapes, ordered pages and axis-completed cropping. Its total tensor volume is <2T, and its cost remains + +O(Tp[p^(1-a) polylog p + d polylog p + d p^delta + w^2 p^delta + d w^2 p^delta/L]) + n^o(1). + +None of these maps or physical period cuts depend on the new data-corner partition. Distinct-prime packing 12d^23h/4 + +provide strict small-field, normalization and compact-geometry gaps. Reservation gap c-q=h/4 is positive. The checker tests all47 retained strict conditions: internal/leaf/reservation exponents, lambda ordering, compact geometry, semantic guard, record suffix, short-record fallback epsilon>a, phase-cell separation epsilon>(1-r)/2, alpha/delta ranges, scalar charge, actual product stock and all seven margins above kappa. + +For the reversed graph, + +G=819626750497541119748501639253501 / 50000819626750498360746499000000000000, +kappa=1639226629/10^14, +G-kappa=45758854322893654446028229 / 5000081962675049836074649900000000000000 >9*10^-15. + +This fixed positive gap absorbs the retained logarithmic factors asymptotically. A sufficient common numeric checkpoint is log2(input bit length)>=14000000000000. Exact compressed power checks cover the actual row suffix, compact width, alpha, periods and stopped leaves at this checkpoint and its next five doublings. For a denominator k, the check deliberately uses the affine right-hand side at Z+k against 2^floor(Z/k). This controls the whole interval [Z,Z+k). On each subsequent interval the lower bound doubles, while its positive affine right-hand side increases at most linearly in the interval index; 2^j>=j+1 proves dominance for every real z>=Z. Thus the checkpoints are supported by an all-size argument, not treated as an extrapolation from six samples. Prime/native-setup, catalogue and recovery thresholds remain additional requirements; this is not a practical input-size cutoff. + +Negative controls reject the old nonlinear guard, the old separate movement exposures, the original-prefix charge, beta1/10, and the next kappa grid point. In particular the original prefix saving1-epsilon(1+c) is below kappa: the balanced construction is essential, rather than an unearned change to an inequality. Within this declared balanced interface the constraints imply kappaq and the layer requires qq also implies +the scoped supremum a/(1+2a). These ceilings concern the declared +interfaces and family, not every integer-multiplication algorithm. + +## Explicit strict parameter rows + +Put h=2^-20 for the conservative rows or h=2^-64 for tight rows, and +q=a(1-2h). Both use + +``` +beta=1/2, lambda=(tau+lambda_prime)/2, +G=epsilon*q, r=(G+1-epsilon)/2, delta=h/8. +``` + +For the balanced prefix use c=q+h/4 and +epsilon=(1-h)/(1+q). Then 1-epsilon-G=h and +1-epsilon-r=h/2. All Gaussian, normalization, scalar, reservation and +K-geometry gaps are positive. Its tight witness fails the old prefix +estimate, as expected, so the accepted changed balanced layout is a +real dependency for this nearly limiting row. + +For the original prefix use c=q(1+h) and +epsilon=(1-h)/(1+c+q). Then g1-G=h. This yields a slightly weaker tight +witness without using the changed balanced prefix: + +``` +kappa = 31825109738378631871480198698537 / 10^40. +``` + +It still exceeds 2^-29 and gives more than 38.343505708889917 times +83/10^12. All four rows include explicit negative controls showing +that both old nonadjacent synthetic routing and old separate resampling +exposure estimates reject their kappa. These margins are changed by the +new constructions, not by rounding the old estimate more favorably. + +## Cutoffs and exact certificates + +The [adapter](../code/downstream_semantic_bulk_assembly.py) passes 40 +strict slacks per row and 41 for the tight balanced row. It rechecks +accepted source hashes, primitive counts/logarithms and the complete +old generic parameter, margin, recurrence, constraint and cutoff fields. +It links the separately executed semantic and microbox controls. + +| Prefix / backoff | Common numeric log2(b_input) cutoff | +|---|---:| +| Original conservative | 6318904795106457857 | +| Balanced conservative | 1096435801950785 | +| Original tight | 6318880703414745665 | +| Balanced tight | 258254417031933722624 | + +The tight balanced cutoff is dominated by gamma's tiny but strict +scaling gap. The original tight row is dominated by its small-c compact +control width. Each row also has explicit alpha, guard, phase-cell, +K-geometry, router reservoir and microbox-period comparisons. Prime +existence, initial padded-size bounds, logarithmic absorption and +catalogue/descriptor domination retain additional eventual thresholds. +These astronomical asymptotic cutoffs do not describe a feasible finite +multiplier. + +Small c makes the exponent in the usual compact comparison approximately +twenty billion. The source never expands that power as an integer. +Its exact certificate compares the exponent to bit_length(rhs): +2^exponent>=2^bit_length(rhs)>rhs. The same compressed integer proof +handles the microbox-period comparison. Rational inequalities and +integer bit lengths are exact; there is no floating threshold or +unverifiable numerical approximation. + +## Evidence and completed independent transfer + +- [Exact prospective run](../runs/20261008T024753Z-downstream-semantic-bulk472985/), + 0.270 wrapper seconds, one admitted and released CPU slot. +- [Linear guard proof](downstream-semantic-child-guard.md) and + [semantic controls](../runs/20261008T024303Z-downstream-semantic-guard/). +- [Local principal inverse proof](downstream-microbox-resampling.md) and + [microbox controls](../runs/20261008T022641Z-downstream-microbox-locality/). +- [Independent complete bulk review](review-bulk-resampling.md) with + joined mixed-radix stream controls and boundary counterexamples. +- [Independent strict assembly review](review-semantic-bulk-assembly.md), + [run032240Z for R472985](../runs/20261008T032240Z-review-semantic-bulk472985/). +- [Current accepted finite compositions](downstream-structured450-compositions.md). + +The microbox proof explicitly uses the same global rounded H, sufficient +complement at artificial endpoints and retained original period cuts. +Its factor pages are scanned sequentially and reused across spectator +fields; random access is not free. Source halos pad to target L using +T/S<2; target halo duplication uses the separate constant-overlap bound. +Only one small field is temporarily padded for a transpose, rather than +all d halo fields. The completed independent review accepts these +all-size arguments and checks every retained exact assembly inequality, +five additional Gaussian/router conditions and longer primitive-log +enclosures. The originally prospective source and certificate retain +their historical status strings and unchanged bytes; acceptance is a +separate follow-up record. Novelty and a universal optimum are unclaimed. diff --git a/references/signed-recursion/pr100/references/copied-fixed/pr34/review-arbitrary-routing.md b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-arbitrary-routing.md new file mode 100644 index 0000000000..b0818f69e6 --- /dev/null +++ b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-arbitrary-routing.md @@ -0,0 +1,127 @@ +# Independent review of arbitrary-source compact routing + +Reviewed on 2026-10-08 against the original conditional address-movement +interface at CrocSwap/integer-mult-bounds commit +`bcd4ebde8692383539f8a48734e5fbf3a18a32c2`, the independently reviewed compact +control interface at `6e564879f51ae16f23d392e9e196c605f36d90df`, and the new +[routing argument](compact-arbitrary-source-routing.md). The executed producer +source is `ad6aafb2c1bd89e5b333bbcabd5460600f3f24737649ea2e7cd06986635bb297`. +This is a positive transfer review of a new movement argument, conditional on +the retained original equal-width chunk interchange. It does not certify an +unconditional multiplication algorithm, arbitrary computed-key sorting, or +the proposed bulk resampling replacement. + +## Algebra and exceptional addresses + +The active-mask qualification is necessary and sufficient for the stated +simultaneous shear. In the four-update identity, the packed control updates +are masked as well as the two target updates. On a good address each used +control digit avoids its top value and each target guard absorbs the bounded +signed displacement. Therefore one completed identity restores every control +digit and every target guard, while changing exactly its active target +parities. Sources outside the simultaneous target set are unchanged even if +they occupy another target's guard or an inactive selected position. Reading +those sources only between completed identities consequently gives the same +load and unload value. Dirty temporary fields are permitted. + +Every actual modular rotation remains a bijection on all addresses: its +offset is determined by fields preceding its target. The inverse must run +the reversed operations and recompute each control from the current address. +Treating controls as their original values would be invalid on bad addresses. +The ideal shear fixes the bad predicate because it fixes guards and temporary +digits. Since the actual bijection agrees with it on the good set, both good +and bad sets are invariant. The independently inherited correction +`T(S^-1(current_address))` is therefore a permutation of precisely the bad +holes, with distinct destination keys. No good payload is corrected. + +The bound `p*(2*2^-G+8*2^(G-K)) <= 5/(128*p^3)`, with +`G=4*ceil(log2(p))+6` and `K=64G`, is a local union bound for each invocation. +It does not require a small union over the entire recursive program. The +original two-piece rotation scans, amortized counters and fixed-tape radix +repair are retained. Descriptor/key arithmetic is charged once per complete +record or controlling fiber, not once per payload bit. Every fiber contains +at least one enlarged record, so at most M such charges occur. A +superpolynomial enlarged record absorbs the polynomial per-record work. + +## Complete coordinate permutations and short coefficient records + +For `n>=64G`, `H=ceil(n/K)*G<=n/32` makes all nine scratch fields disjoint. +The three matching cohorts avoid, respectively, reservoirs R0, R1 and R2. +The last cohort meets both of the first two disjoint reservoirs and hence +cannot meet the third. Original equal-H interchanges place the chosen +reservoir at the two front fields and the back field; reversing those +interchanges restores all original coordinate names. A matching swap is +the three directional XOR shears, each with disjoint complete source and +target sets. Residue classes use O(K) compact calls, and the final incomplete +guard segment uses O(K) exact elementary XORs. The two-involution cycle +factorization then implements any supplied coordinate permutation. + +Elementary XORs do not use an unpaid arbitrary-prefix descriptor oracle. +Original width-one placements expose source and target at the first two +slots; the fixed four-quarter CNOT permutes complete suffix blocks, and the +placements are undone. This costs O(V) under the original block-counter +interface, regardless of record width. Thus the small-n fallback and the +incomplete-guard contribution are bounded by volume times a polylogarithm. +The full cost is `O(V*n^tau*polylog(p)+poly(p))`, with the explicit additive +term paying a polynomial-size supplied map and parameter preparation. + +The short-record spectator step is essential for CRT and resampling. +For `n>3*ell`, the first, second and last disjoint ell-bit fields supply +three matching cohorts. Moving the unused field to the suffix enlarges a +record by `2^ell` without adding coordinates or stream volume. Each class +avoids its entire spectator field. Taking the third field at the actual +suffix makes the placements legal also when `3*ella`. +The intended full tensor volume absorbs the explicit polynomial setup term. +No newly proved router is used to construct its own paid spectator records. + +## Independent finite controls + +[review_arbitrary_routing.py](../code/review_arbitrary_routing.py) imports no +producer. It follows every original field placement and restoration, +three-shear matching, two-involution permutation, packed modular rotation, +current-control inverse and pointwise exceptional correction. The +[fresh run](../runs/20261008T023243Z-review-arbitrary-routing/) passed: + +- All 4,280 payload-address permutations for every one of 152 permutations + on two through five coordinate bits. +- 450 complete routing probes in nine larger and boundary layouts, including + the `n=3*ell`, `3*ell+1`, `n=9H` and small-prefix fallback interfaces. +- 55,170 compact invocations, 110,340 actual inverse compositions, 36,461 + nontrivial corrections, 35,400 dirty-field invocations, 570 sources at + inactive selected positions and 29,600 sources inside active guards. +- 428,712 original chunk interchanges and 112,024 elementary four-quarter + CNOTs, with all named coordinates restored to their intended positions. + +Seed 211, Python 3.14.4, one worker. The external timed run used 2.51 seconds +and 22,216 KiB peak RSS. Certificate SHA256: +`8de361d30dce8801a629d8613b5b8e6ea0149c634e8de4af19b7d01eb715cbbd`. +Reviewer source SHA256: +`c73182a04a6a08d75632aa74f122df2ac2dd7b6deb8dbcb5b42087cb553f94b1`. + +Large probes are exact individual address operators, not exhaustive +`2^512`-record stream executions. Pointwise correction here is complemented +by the producer's complete small-stream stable-radix controls. Neither +finite experiment proves the all-size tape cost: the explicit scan, record +and density arguments above supply that transfer. The larger cases use +small G to exercise exceptional behavior rather than model an asymptotic +precision cutoff. + +## Conclusion and reproduction + +The arbitrary-source router has a valid conditional algebra, layout and +fixed-tape cost argument after the explicit active mask, suffix spectator +convention and additive polynomial setup qualifications. No remaining +structural counterexample was found. Its legitimate application is one +known coordinate permutation on a complete binary rectangle. Replacing d +separate Gaussian exposures additionally requires the independent analytic +and tape review of the proposed bulk microbox construction. No literature +novelty claim is made. + +Run `python3 -B code/review_arbitrary_routing.py --output ` from +the topic directory. This uses only Python's standard library; the exact +executed command, versions, input identities, source digests, log location +and reservation release are retained in the run protocol. Original inputs +and the executed sources were not changed. diff --git a/references/signed-recursion/pr100/references/copied-fixed/pr34/review-balanced-transform.md b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-balanced-transform.md new file mode 100644 index 0000000000..5a173f4e62 --- /dev/null +++ b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-balanced-transform.md @@ -0,0 +1,197 @@ +# Independent balanced transform review + +The balanced positional layout has a valid conditional transfer to the +previously reviewed compact synthetic transform. The extra top bit of each +long axis costs one bit move; the common low bits are partitioned into +balanced chunks with no low-bit prefix phase. The resulting complete cost is + +``` +O(T p [d + p K^(tau-1) + ell d^lambda_prime]). +``` + +This changes the prefix margin from `1-epsilon*(1+c)` to `1-epsilon`. +The condition `epsilon*(1+c)<1` remains a geometric feasibility condition +for `K=o(ell)`. Its gap no longer has to exceed kappa. The conclusion +depends on the accepted original arbitrary-gap chunk interchange, compact +movement/layout/repair proof, phase inverse, finite primitives, and complete +conditional multiplication interfaces. It is not a formal verification of +a fixed-tape multiplication machine and does not claim novelty. + +## Positional layout and actual movement + +Set `n=ell-1` and `q=floor(n/K)>=1`. Write `n=qL+t`, `0<=t x M a0 y -> y M a0 x` exchanges the +whole left block a0x and right block y. The other orientation is +`x M b0 y -> b0 x M y -> b0 y M x`. The bit move and the equal-width +swap may cross the spectator gap and preserve its order. Their inverses +in reverse chronological order restore all slots. Both operations use +the original interfaces, rather than a proposed new routing lemma. +The cost is O(V K^tau) per transposition, with V the current full volume. +Using `(d-1)ell=O(p)`, the total order/restoration cost is +O(V p K^(tau-1)); the extra top-bit cost is O(Vd). + +## Uniform compact layer and complete fields + +Within one common transform round, all participating chunks belong to +one group and have the *same supplied width* K_j. The round does not +mix different column widths. Its complete rectangular index set is +`[P] x [2^K_j]^(d-1) x [S]`. The selected bits have one common offset. +Both previous/following groups and the prefix are spectators. + +The original compact theorem is written for `K=floor(d^c)`. Its proof +extends uniformly to `floor(d^c)<=K_j<2floor(d^c)` by reading K_j as a +supplied round parameter. All lower width tests, including the guard and +superlogarithmic condition, follow from K_j>=K. All upper tests have at +most a fixed factor two, and `(d-1)K_j<= (d-1)ell=O(p)`. The number of +reserved complete chunks, `ceil(2dG/K_j)+ceil(dG/K_j)`, only decreases +as the supplied width increases. The row-index chunks are still disjoint +from both front fields and the back field; every role contains the whole +within-row address space after cyclic row splitting. Scratch restoration, +pointwise alignment and deletion of completed padded zero rows are the +same as in [the independent compact review](review-compact-controls.md). +The graph dependency depth and scalar guard depend on the selected axes, +not on the number of unused bit slots in a chunk. + +The positional map can be generated from the axis-length flags and +`n,q,L,t` without an arbitrary table of O(p) separately encoded names. +A current round header needs only the group index, width, offset and the +fixed complete-field lengths. Each such descriptor has O(p) bits. An +implementation may also construct an O(p log p) named-slot table on a +work band as polynomial setup; it need not treat that whole table as a +constant-field address descriptor. Both versions use a fixed number of +tapes and the existing superpolynomial polynomial-record suffix absorbs +the permitted polynomial setup. This avoids interpreting a change of +labels as an uncharged arbitrary global bit permutation. + +## Fourier convention, precision and inverse + +Process the extra top round on long axes individually, then all common +named levels `h=ell-2,...,0` in decreasing order. Slot `(i,h)` retains +frequency significance `a_i-1-h`, with a_i the actual long/short axis +bit width. At each forward round the lower named input bits form +`k_i=sum_(v4a the complex +guard has fixed headroom as c tends to one and epsilon tends to one-half. +The exact supremum difference is `a^2/[2*(2+a)]`, only about 2.5e-18 +for the current promoted bit input. This is a small changed-layout gain. +It is neither a universal exponent ceiling nor a major new multiplication +bound by itself. + +The tight parameter choice uses geometric backoff 2^-64. Its explicit +numeric condition `log2(b_input)>=3*2^64` is enormous, but finite and +legitimate for the asymptotic statement. The conservative choice has a +much smaller backoff-dependent cutoff. Both retain separate eventual +prime, strict-logarithm absorption and polynomial-record domination +thresholds. A new general routing hypothesis requires its own review; +it is not used by this balanced result. + +## Independent composed arithmetic + +[review_balanced_assembly.py](../code/review_balanced_assembly.py) +imports only previously independent reviewer count/logarithm routines. +It recomputes finite bit and complex counts, uses longer rational logarithm +enclosures to certify both chosen savings, and independently reconstructs +all 37 saved strict slacks, the guard constants, seven margins, selected +minimum, kappa rounding and six numeric cutoff obligations. It also ties +the saved bit/complex promotion metadata to the already accepted generic +compact review and checks every executed source hash. No producer is +imported and no large finite graph is replayed for this arithmetic check. + +[Run 20261008T020903Z](../runs/20261008T020903Z-review-balanced-assembly473026/) +passes both conservative and tight R473026+h28 rows. The tight result is + +``` +kappa = 15911230743666875756818042088353 / 10^40. +``` + +Its common numeric log2(b_input) cutoff is 55340232221128654848; the +conservative row's cutoff is 15083685472. In both rows the old prefix +margin is strictly smaller than kappa. Thus the claim requires this changed +layout proof rather than tighter arithmetic applied to the preceding cost +bound. The only active exponent margin is the compact layer. The scoped +upper a/2 uses an independently certified upper enclosure of the bit +saving, and both strict witnesses lie below it. + +The exact review used Python 3.14.4, one process, 0.12 seconds measured +by time -v and 23,352 KiB peak RSS. The reservation was released immediately +after completion. All inputs, executed versions, portable ordered commands +and compact output hashes are preserved in the run protocol. The compact +real-logarithm width test uses the repaired denominator `32L+192`, with +`ceil(log2(6b_input))<=L+4`; the explicit compact cutoff remains 577. diff --git a/references/signed-recursion/pr100/references/copied-fixed/pr34/review-bulk-resampling.md b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-bulk-resampling.md new file mode 100644 index 0000000000..9731a03fdb --- /dev/null +++ b/references/signed-recursion/pr100/references/copied-fixed/pr34/review-bulk-resampling.md @@ -0,0 +1,247 @@ +# Independent review of local bulk resampling and tape transfer + +The combination of [the principal-window analytic construction](downstream-microbox-resampling.md) +and [the complete tape schedule](bulk-resampling-tape-transfer.md) has a +positive conditional transfer review. The arbitrary-source router and the +phase-cell scalar solver are separately reviewed dependencies. The new +construction replaces d separate full-width axis exposures by a constant +number of full routing scales and O(d) moves of polynomial-size local +fields. This report does not promote a numerical multiplication exponent; +strict assembly arithmetic is a separate check. + +Review date 2026-10-08. Original retained input: +`bcd4ebde8692383539f8a48734e5fbf3a18a32c2`; compact-control input: +`6e564879f51ae16f23d392e9e196c605f36d90df`. Historical campaign deadline +08:25:21 UTC is retained in earlier identities; the same campaign was +subsequently authorized through 10:00:00 UTC. No inputs, completed sources +or previous experiment identities were replaced. The result remains +conditional on the original chunk/phase and scalar interfaces; it is not +an unconditional integer-multiplication theorem or a novelty claim. + +## One global matrix and principal-window accuracy + +All windows restrict the SAME globally fixed rounded H. Its diagonal is +exactly one; its off-diagonal cyclic halfwidth is w, its row gap is at +least `1/(8p)`, and its inverse norm is at most `8p`. Global within-cell +weights and Toeplitz coefficients are not locally rerounded. These +properties follow from the accepted phase inverse construction; merely +having a row-dominant matrix with another diagonal would not justify the +Neumann series in `H-I`. + +With `F=H-I`, the conservative gap `g=1/(16p)` gives +`||F||<=1-g`. For a core row farther than Jw from a principal interval's +artificial ends, each path in the first J powers stays within that +interval. Therefore their core rows agree exactly after zero extension. +Two Neumann tails give + +``` +||R H^-1-R H_I^-1 P_I|| <= 2*(1-g)^J/g + <= 32p*2^(-J/(16p)). +``` + +This is a row-norm bound for arbitrary signed complex inputs. With +`J=512p^2`, it is below `2^-16p` for p>100. The independent resolvent +bound `||H^-1-N^-1||<=32p^2*e_p`, where +`e_p=p*2^(16p+7)*2^-32768p+2^-46p`, is smaller still. + +Two period qualifications are essential. First, `|I|w`, implied here by +`s>2*(L+2A+2w)`, excludes such endpoint coupling. Second, a lifted +constant phase can join the last and first physical cells, but their +cross-cut entry in H was separately rounded. The local partition must +preserve the ORIGINAL physical period cut, even if unwrapped `q_j-j` +agrees across it. The reviewed construction now explicitly does both. + +## Local arithmetic and normalized tensor maps + +Intersect a window with original global cells. Its at most two clipped +endpoint pieces have all vertices designated boundary when their length +is at most4w. Otherwise retain the first and last w vertices. Preserving +the physical period cut adds at most O(w) boundary vertices. Every +remaining interior is a principal Toeplitz block with the same global +similarity weights; different interiors do not interact. + +The inherited Schur elimination retains the diagonal-dominance gap and +does not increase row norm. Boundary fill connects only the two groups +of one interior or neighboring groups, giving bandwidth O(w). Thus the +accepted Gohberg-Semencul, directed Schur rounding, banded LU, reciprocal +and local residual proofs apply. They are bounds in row norms, not sums +over all cells; there is no omitted factor proportional to the line or +window count. Empty interiors are skipped. For M window indices, + +``` +n_boundary <= 4*M*w/d+12w, +online line cost = O((M+M*w^2/d+w^2)*p^(1+delta)). +``` + +The retained error `2^(64p)*p^64*2^-32768p` is far below one p-grid unit. +Short convolution lengths are at most `4d+1`, with O(p)-bit retained +factors and an unconditional conventional multiplier. Exact rational +factor construction is polynomial in t and p and remains `n^o(1)` +under the retained axis-size relation. No stronger multiplication result +being proved by this campaign is used to multiply those local operands. + +Set `j_scale=ceil(log2(32p))` and `D_normalized=D/2^(2u)`. The local +compression `D_normalized H_I^-1 C/2^j_scale` has norm at most1/4, +and the true global normalized compression at most1/8. Selection C +has norm one and uses only the supplied target halo by definition of I. +Comparing restricted local products with global tensor products therefore +adds at most the sum of one-axis row errors. Early core cropping is done +ONLY in the completed axis. Other axes retain their own input halos until +their maps are applied. No intermediate boundary output is supplied as a +purported global halo value, so a halo refresh is unnecessary. + +Expansion uses positive restricted Gaussian rows and norm below3/4. +The actual short chirp blocks retain the original global s,t and ratio, +with only the requested local outputs; they do not chirp an entire p^8 +tile using unbounded diagonal weights. Their O(p)-bit per-block descriptor +work is absorbed in the block's O(block_length*p) scans. The local tile +contains many short blocks. Source omissions are beyond the existing +O(p) Gaussian radius, so the accepted tail bound applies. Together with +componentwise directed truncation and the local inverse bounds, the +original loose tensor interface `d*p^2*2^-p` and gamma normalization remain +valid. Approximate maps have sufficient norm headroom to retain disk +outputs; no unnormalized large intermediate is passed as a disk input. + +## Fractional cores, two different volume bounds + +Take `L=2^ceil(8*log2(p))` and `A=4096p^3`. The target cores are +`[kL,(k+1)L)`, with corresponding source cores +`J_k=[floor(kL/rho),floor((k+1)L/rho))`. They partition the source period +in exact increasing order. Selecting nearest q indices from target halo +`[kL-A,(k+1)L+A)` gives source I with endpoints + +``` +ceil((2*(kL-A)-1)*s/(2t)), +ceil((2*((k+1)*L+A)-1)*s/(2t)). +``` + +This also fixes ties and wrapping endpoints. Each core has source distance +at least `A/2-3>512p^3` from its artificial cuts. The near-one constraint +gives `L-|J_k|>=L/(8d)-1`, while `L>=64dA` ensures the full source halo +fits in L. Padding each source halo to L therefore produces exactly T +records, governed by the retained `T/S<2`. It does not double every +source interval. + +Target halo fields instead have persistent length `L+2A`; their exact +tensor volume is `T*(1+2A/L)^D<2T`. Only the CURRENT local field is +temporarily padded to its next binary length for a move, and its added +zeros are removed before the next axis. Simultaneously rounding all halo +fields to2L would introduce2^D volume and is invalid. All these +inequalities hold uniformly for eventual p>100 and d<=p; finite exact +integer controls include p=101,127,256,1023. + +## Ordered scans, catalogs and final row order + +The small complete-field move has a direct fixed-tape construction. +Transpose `[B]x[2]x[R]` by scanning complete R-blocks onto two parity +tapes and concatenating them. Its inverse interleaves the two complete +halves. Repeat on most significant then subsequent bits, inside the +preceding-bit fibers. This preserves internal significance and B order. +It costs O(log(p)*V) for a polynomial-size field, across arbitrary +complete mixed-radix spectators. Rewinds are within the current work +fiber and cost its volume. A line map changing its field length uses +the new field's transpose on return, not an inversion with stale names. + +For halo duplication, starts and ends are monotone. One initial bounded +set of current-fiber scans retains the periodic head/tail; it does not +rescan the entire tensor for each window. Emit the first window while +mirroring its next overlap. Each later window first writes that saved +overlap, then reads the new source portion, mirroring its tail on the +other of TWO overlap tapes. Core spacing greater than twice the halo +ensures the next saved tail lies in this newly read portion. Thus no FIFO +shift, repeated whole-window read or random source seek is needed. +Head resets and mirrored copies are proportional to written traffic. + +The binary global gather and its inverse use the independently reviewed +coordinate router, with paid untouched spectator records. All other +passes move only short local fields. After exposing axis i's short field, +its global j row is increasing before a complete spectator suffix. Source +embedding zeros can be removed, monotone I windows emitted and padded, +then the short field returned. Coarse `k_i` stays in its original order. +For compression the same procedure emits target halos before any inverse. + +Factor catalogs follow `[A_prefix]x[k_i]x[B_suffix]`. Scan k_i in order +for each A_prefix; retain its page across B_suffix and all inner lines; +rewind at the next A_prefix. The page has +`O((L+L*w^2/d+w^2)*p)` bits. Per-line page scans are part of the line +solve cost. Copying an entire page or doing polynomial metadata work per +origin is absorbed by the other complete inner fields, at least +`L^(D-1)` records. Here retained D=d-1 tends to infinity for fixed +epsilon>0; this is not a claim about an isolated one-axis short-record +contract. The page catalogue is a sequential tape, not random memory. + +Final source assembly exposes `[k_i,local_i]`, copies only the first +`|J_k|` complete suffix blocks from each tile in k order, appends zeros +to t_i, and splits the now ordinary increasing global j field into its +coarse and low bits. Returning those low bits leaves the canonical +binary microbox layout. After the inverse gather, fixed-cut scans remove +the global j>=s_i zeros. This restores the original prime-box row order +and normalization without a large mixed-radix transpose. + +## Cost, independent evidence and scope + +Summing the local line cost over each axis and the halo volume gives + +``` +O(Tp*[p^tau*polylog(p)+d*polylog(p) + +d*p^delta+w^2*p^delta+d*w^2*p^delta/L]) ++ polynomial(t,p) setup. +``` + +The first term pays the constant number of large router calls. Embedding, +small-field exposure, periodic halos, core crops, factor traffic and ordered +assembly contribute the displayed short passes. `w^2=O(p^(1-r))`; setup +is negligible under the retained axis sizes. A fixed collection of tapes +and bounded current work fibers suffices. The changed movement margin is +a, while the Gaussian margins `1-epsilon-delta` and `r-delta` remain. +Every recurrence, guard, normalization, compact reservation and eventual +prime capacity condition must still be checked in the final assembly. + +[review_bulk_resampling.py](../code/review_bulk_resampling.py) imports no +producer. It executes small-field complete-block split/interleave moves, +alternating-buffer monotone halo emission, source zero embedding, +fractional source padding, local selector lines, early core cropping, +sequential page visits and final source assembly. The global gather models +the separately accepted router contract. Selector maps check exact payload +provenance and order; they do not simulate true Gaussian arithmetic. + +The [fresh joined run](../runs/20261008T030514Z-review-bulk-resampling/) +passed all84,824 complete output records in six two/three-axis expansion +and compression schedules. It performed124 binary split passes,135 +interleave passes,58 small-field moves,11 current-field-only paddings, +76 halo rows,280,744 monotonically new records,12,584 mirrored overlap +records,76 sequential page visits and14,400 local lines. Arbitrary +prefix and coefficient-suffix cardinalities, wrapping windows and unequal +source cores are included. The largest persistent halo volume was46,656 +against target32,768, and temporary one-field padding82,944; the latter +is a constant work-volume factor, not persistent2^D growth. Independent +wrapped short-path checks cover1,242 exact entries. + +Python3.14.4, one worker,0.79 seconds,28,592 KiB maximum RSS. Source +SHA256 `c05c41f3fcec2f845043c4b00fd8c939d516f8ea3826a0112228ad625aa1f39f`; +certificate `f3883ec3404b1bebbea2c2b6e8961de1e9fb958e10ce5b8da27a0e086931b5a4`. +Small fixtures satisfy their actual halo-fit, overlap and capacity tests; +they are not numerical simulations of the enormous asymptotic halo. +The all-size analytic proof and accepted Gaussian solver supply accuracy. + +[review_bulk_boundary_negatives.py](../code/review_bulk_boundary_negatives.py) +and its [fresh run](../runs/20261008T031019Z-review-bulk-boundary-negatives/) +retain four exact negatives: insufficient complement gap, merging across +the original phase period cut, cropping an unprocessed axis's halo, and +simultaneous binary padding. The latter two give respectively1/16 versus +zero for a tensor core, and256T versus a near-one persistent halo volume. +These controls distinguish the repaired construction from plausible +invalid variants. Certificate +`b01739e355f97d122a4d0bdd6e9523af51bb63839065c860003f6185ea164560`. + +The positive conclusion is a written all-size conditional transfer backed +by independent finite operator and ordering controls, not formal machine +verification. No remaining structural counterexample was found after +the explicit endpoint and layout repairs. Strict composed arithmetic is +the next review step. Reproduce the two scripts with `python3 -B +code/.py --output ` from the topic directory; +the standard library suffices. Exact commands, hashes, logs, version and +owned reservation release are retained in the run protocols. diff --git a/references/signed-recursion/pr100/research/copied-fixed/PROOF.md b/references/signed-recursion/pr100/research/copied-fixed/PROOF.md new file mode 100644 index 0000000000..ffbde841bd --- /dev/null +++ b/references/signed-recursion/pr100/research/copied-fixed/PROOF.md @@ -0,0 +1,433 @@ +# Reordered exclusion sums reduce retained scratch roles + +Conditional witness, prepared locally on 8 October 2026 with OpenAI Codex assistance. + +Under the base theorem and the retained analytic and fixed finite-alphabet, +fixed multitape interfaces, the construction below gives + +\[ +T(n)=O\bigl(n(\log n)^{1-\kappa}\bigr),\qquad +\boxed{\kappa=\frac{411862541}{10000000000000}=0.0000411862541>2^{-15}.} +\] + +This is **7.0971766%** above icekylinx's PR #36 witness, +**0.4657951%** above our published PR #43 witness, and +**0.4388585%** above our published PR #46 witness 4.10062945e-5. +It is also **0.3293163%** above Rohan Arun's contemporaneous PR #47 +hill-climbed witness 4.105106623e-5, pinned at +117caf164e3b235ef20188aa2dc1b49617e9255c for comparison only. +The power-of-two corollary remains 2^-15; 2^-14 is not reached. +These compare asymptotic exponent savings, not running times. Finite +certification does not formally verify the full multiplication theorem. + +## Increment and exact local identity + +Change the construction of each local leave-one-out vector in both +exclusion graphs. Sort the input summands by increasing source-support +size, breaking ties by increasing support bitmask at h=23 and decreasing +support bitmask at h=25. Build the existing prefix/suffix sums in that +order, then restore the original indexing of the leave-one-out outputs. +At h=23 also fold ordinary totals in reverse input order; h=25 retains +PR #46's decreasing (support size, support bitmask) total ordering. + +For disjoint source sums v_0,...,v_(n-1), let pi be the chosen permutation. +The prefix/suffix construction returns, at sorted position i, +P_i+S_i = sum_{ji} v_(pi(j)). Returning that value +at original position pi(i) is exactly sum_{k != pi(i)} v_k. The total +is unchanged. All additions have disjoint source supports; interning equal +supports only reuses equal sums. The restored indexing is essential. +This establishes the local linear identity independently of which sort +order happens to improve the cost. The full scalar audit checks every +original-index output and every disjoint addition after global sharing. + +The two addition counts stay 37098 and 49119. New weighted carrier +matchings retain 6002 and 7715 carriers, versus 5749 and 7565 in #46. +Consequently R_23 falls by 253 to 36432, R_25 falls by 150 to 48329, +and the physical wire count falls by 253*2300+150*1771=847550 to 177530859. +This is a changed finite network, not an adjustment of assembly parameters. +Every selected carrier is checked for actual operand use, uniqueness, +causal order and nested frames, and its complete physical timeline is replayed. + +A bounded search examined 80 graph configurations and two matching objectives +per graph: first-order block entropy and the recursive cost at #46's bit +saving. `search-record.json` records the exact rational candidate scores. +Rohan Arun's #44 weighted matching method, with his disclosed Anthropic +Claude assistance, supplies the discovery optimizer and replay profiler. +The newly selected carrier-use lists belong to the changed graphs here; +#44's lists are not substituted into them. Floating-point search only +proposes finite lists; no floating-point value or optimality assertion is +trusted by the exact certificate. No global optimality claim is made. + +The exact lower moment of #46's complete network exceeds one at the new +bit saving, while the changed network's exact upper moment is below one. +The bit-network recurrence remains the binding component; the inherited +complex saving 717/10^7 retains headroom. The assembly margin is slightly +below the bit saving because of its strict balancing constraints. + +## What changes, and what is reused + +Use RaD / hipotures's PR #41 alternating pair order: in the h-point graph, +form consecutive pairs excluding the common point, reverse the pair list +for odd common points, and append leftover points. The changed total and +leave-one-out rules above modify both scalar DAGs; their exact hashes are +recorded in `scalar-23.json` and `scalar-25.json`. `changed_graph.py` remains +a specialization of the pinned original generators. No sampled search +statistic is a certificate input. + +Use the **original envelope labels**, both fixed local bases I+J, and our +new pinned weighted matching. Original labels have the +explicit low-rank projector formula from icekylinx PR #32 and Dominik +Scholz PR #35. The pinned selected carriers satisfy every legality check; all selected uses are independently +recounted. Both complete fixed profiles are recomputed from these changed +DAGs and actual matching uses, rather than substituting PR #40's profiles. + +Retain icekylinx PR #36's copied centers, paid endpoint correction and +complex circuit. Use James Chang PR #34 / Rohan Arun PR #37's reversed +dimensions (23,25) and balanced transfer. Rohan Arun PR #39/#40 supplies +the modular data-corner method and the contemporaneous both-fixed baseline. +For all 4,073,300 actual triple pairs our full data profile is **9 singletons ++21+17+481**. The primary prime certifies 4,073,290 pairs and direct rational +elimination certifies the remaining ten. Every pair and every paid endpoint +is included. + +An exact lower moment bound rejects the complete PR #40 network and the +stronger published PR #41 generic alternating network at our new bit +saving. The improvement therefore changes the finite construction; it is +not merely a tighter choice of assembly parameters. + +## Scalar identity, labels, and restored scratch + +Index source lines by triples of an h-point set and use rational address +metric \(G_h=I-J/9\). Triple indicators have norm two and inner product +\(|S\cap T|-1\). The changed, independently replayed exclusion producer and point totals implement +the scalar identity \([|S\cap T|=1]+|S\cap T|=[S=T]\) over bit payloads. +Its source injection, reversible mixer, and scatter satisfy \(JLV=I\). +For arbitrary old auxiliary vector z, the chronological word +\(L,J,L^{-1},V,L,J,L^{-1},V\) scatters +\(JLz+JL(z+Vx)=x\) and restores z. The payload field is \(\mathbb F_2\); +the address projectors are over \(\mathbb Q\), subsequently reduced modulo +an eligible odd prime. These two fields must not be identified. + +For common core C and cover M, the original envelope is + +\[ +E(C,M)=\{x:\operatorname{supp}x\subseteq M, + x_i=t\ (i\in C),\ \sum_i x_i=3t\}. +\] + +An addition has c=|C| in {1,2} and dimension |M|-c. Every envelope lies +in \(U_i=\{x:\sum_jx_j=3x_i\}\) for some i in C, where +\(x^tG_hx=\sum_{j\ne i}x_j^2\); hence it is nondegenerate. Every operand +and matched continuation has nested envelopes. Side outputs omit the two +non-common coordinates of the target triple and are orthogonal to that line. +Retained totals have envelope \(U_i\), of rank h-1. + +The full generator checks these properties. A separate dense-bitset pass +expands every addition into global triple supports, checks disjointness and +every output, and independently replays the actual matched use records. +Matching joins an addition's carrier to a later compatible operand/output use. +Each donor and recipient use occurs at most once. Designated output-use +carriers remain distinct terminals: no center copy bypasses a later producer +consumer. This is the compiler's retained terminal contract. + +| h | triples v | additions c | output uses q | matches | roles R | loss ell | +|---|---:|---:|---:|---:|---:|---:| +| 25 | 2300 | 49119 | 6925 | 7715 | 48329 | 600 | +| 23 | 1771 | 37098 | 5336 | 6002 | 36432 | 506 | + +Here \(R=c+q-\mathrm{matches}\), \(\ell=h(h-1)\). + +A separate physical compiler, adapted with attribution from PR #41, +constructs every role trajectory directly from binary DAG and selected +use records. Original rational envelope bases replace positive-label +inputs. It checks all input/output coefficients, frame containments, +terminal-role uniqueness, reverse-complement incidences and the copied +rank histogram. Its actual XOR word is then applied to the **complete +formal basis** of inputs, outputs and all dirty auxiliaries: 39,974 basis +vectors at h=23 and 52,929 at h=25, with 311,830 and 412,792 elementary +operations respectively. Both forward and reverse-complement words give +the required shear and restore every auxiliary exactly. This is full +finite linear verification over F2, not random dirty-state sampling. +The rational address projectors and their compiled contiguous profiles +are checked separately below. + + +PR #36's copied-center identity is valid for these original labels. In a +forward invocation, replace an original center's path U→0→F by a paid +rank-r transform U→0 on a copy, supplying all read-only scatter uses, and +the original's direct U→F path of rank h-r. In the reverse complementary +invocation, the original goes 0→U-perp; its paid transformed copy goes +U-perp→F for the early reads. Both schedules deliver precisely the old +read value and the old cleanup value. Arbitrary dirty auxiliaries therefore +still cancel. Every copy is a complete existing role stream of volume V/W; +copy, read, erase and parking are charged linear passes on fixed work tapes. +There is no new independent row index. In both directions r=h-1, so each +center replaces one full h-block by a singleton and **retains** its +transformed-copy profile. Its rank mass drops by h-1, not by 2(h-1). + +The two scalar shears give \((x,y)\mapsto(y,x+y)\). With PR #36's data +and auxiliary frames, their outputs are \(A=Fy,B=Fx+Ey\), where +\(F=D_I,T=D_U,E=D_{I-U}=TF\), and U is the tensor product of two triple +lines. Retain A, transform a copy by the rank-one T, and XOR it into B. +The result is \((Fy,Fx)\). Undoing the bank exchange gives full interchange +on the data; every restored auxiliary has endpoint product F. All N paid +rank-one endpoint corrections are separate from the center copies. + +## One fixed compatible basis + +With physical coordinate \(i=b\alpha+\beta\), use +\(K=T_2(I_a\otimes L_b)\), where +\(T_2(x\otimes e_\beta)=M_\beta L_ax\otimes e_\beta\). +Use the actual controlled permutations certified by the imported PR #34 +all-weight geometry, transferred by PR #37. At a=23,b=25 the first and +last d=47 row and inverse-column labels are +R=[0,...,22;22;0,...,22], C=[0,...,22;0;0,...,22]. +The 25 completed permutations are explicitly checked. + +For each source triple indicator t and normalized dual phi, +L_ht=t+3*1 and phi L_h^{-1}=t^t/2-5*1^t/[3(h+1)]. +All coordinates are nonzero. The first-h/last-h corner of each local tensor +residual is a nonzero diagonal row/column scaling of its full conjugated +local matrix. It contains its entire rank, so the entire ordered local +profile transfers. `geometry()` checks the actual contractions, auxiliary +restrictions, and physical offsets. The auxiliary exterior profiles are +(23,529) and (25,525); data growth profiles are (1,21) and (1,23). + +The null projector of (I-P) tensor (I-Q) has rank d=a+b-1=47. +Its image consists of u tensor v+p tensor w modulo (cp,-cv). +After dividing row evaluations by nonzero p_r v_beta, the first-d +restrictions form a bipartite incidence tree on a+b vertices. So do the +last-d dual restrictions. Leaf elimination proves both have rank d. +Their product is therefore an invertible null corner for every fixed +source pair, regardless of whether our modular test succeeds. + +The rescaled null-corner entry is +x_{R_i}[R_i=C_j]+y_{i mod b}[i mod b=(m-d+j) mod b]-1, +where x=1/(p*xi), y=1/(v*nu). At I+J these values are +x_in=3(h+1)/(2(3(h+1)-10)), x_out=-(h+1)/5. +The imported exact all-weight rank cuts prove the zeros for the prescribed +ordered pivots. Our C++ replay then tests every actual source pair modulo +the trial-division-proved prime 1000003. A nonzero pivot proves rational +nonvanishing. Arithmetic in that sweep is entirely integral with 64-bit +products bounded by prime squared. For each of the ten failures, +`data_recovery.py` starts again from the rational corner entries and +performs exact Fraction elimination through all 47 prescribed pivots. +Every pivot is nonzero and all 346 required ordered zeros hold for each +pair. The certificate includes all 470 rational pivot values. The row and +column restrictions are explicitly compared with the inherited geometry. +A residue zero therefore does not become a rational-zero assertion. + +All 47 prescribed pivots succeed on 4,073,290 pairs. The two contiguous +blocks occupy rows 1..21 / columns 553..573 and rows 28..44 / columns +530..546. The remaining nine pivots are singletons. The exact rational +recovery certifies the same two contiguous blocks for the ten other pairs. +In all cases the +large-projector Schur identity supplies the middle block 47..527 of width +481. No separated pivots are gathered and no source pair is discarded. +The full producer independently regenerates and compares every record; +checks of saved counts alone are not the nonvanishing proof. + +## Exact internal pivot certificates + +Put O=M\C, n=|O|, c=|C|, s=3-c, d=s²+(c-1)n, +\(w=\mathbf1_C+3\mathbf1\), \(z=3(h+1)\mathbf1_C-10\mathbf1\). +For the conjugated envelope projector A, the inherited explicit formula is + +\[ +3(h+1)d(A-\Delta_O) +=s\mathbf1_Oz^t+3(h+1)s w\mathbf1_O^t+n wz^t +-3(h+1)(c-1)\mathbf1_O\mathbf1_O^t. +\] + +One derivation starts with columns \(e_j+\mathbf1_C/(3-c)\), j in O. +Their Gram matrix is \(I+(c-1)J/(3-c)^2\); its inverse and conjugation +by I+J give the formula. `audit.py` independently checks the defining +properties: image contained in E, identity on an E basis, and self-adjointness +in \(G'=I-(9h+19)J/[9(h+1)^2]\). It checks all 90 core/cover size cases +at both dimensions. Since I+J and G commute with coordinate permutations, +these canonical cases cover every core/cover arrangement. Source triple +projectors are separately normalized and checked exactly. + +Every actual transition is a 0/1 diagonal mask plus a correction of rank +at most two (single frame, complement, same-core difference), three +(source growth), or four (core-two to core-one growth). These exhaust the +checked nested incidences. For c=1 the correction is a sum with column +span generated by w and the outside indicator; a same-core difference +has the same form with the difference of outside indicators. For c=2, + +\[ +A=\Delta_O+\frac{wz^t}{3(h+1)} +-\frac{(w-\mathbf1_O)(z-3(h+1)\mathbf1_O)^t}{3(h+1)(n+1)}. +\] + +The constant rank-one term cancels in same-core differences, leaving two +rank-one terms. Nested masks have only 0/1 differences. The source-growth +and changing-core bounds follow by adding correction ranks. + +Let \(Z=3h-7\), \(B_0=(4h-2)Z+27(h+1)\), +\(D=3(h+1)(h-1)^2\), \(B=2(h-1)B_0\). +Each constituent denominator is 3(h+1)d with d≤h-1; for source lines d=2. +The actual common denominator of two terms is ≤D and each multiplier +is ≤h-1. Every correction numerator is therefore bounded by B. +For correction rank r, any square minor, times its actual common denominator +to power r, is an integer of absolute value at most + +\[ +\mathcal B_r=\sum_{j=0}^r\binom hj j!B^jD^{r-j}. +\] + +Expansion by correction columns proves this: terms with more than r such +columns vanish; mask columns fix their rows. Use \(p_1=2^{61}-1\) for +rank-two cases and \(p_1p_2p_3\), with \(p_2=2^{31}-1,p_3=2^{19}-1\), +for the other cases. Lucas–Lehmer verifies primality and all denominators +are invertible. The exact bounds are: + +| h | B₂ | B₃ | B₄ | +|---|---:|---:|---:| +| 23 | 38218181861376 | 219993996697351151616 | 1206074983422622280129445888 | +| 25 | 75405344477184 | 613343016893987684352 | 4772090401825349199521120256 | + +Both B₂ values are below p₁; B₃ and B₄ are below +\(p_1p_2p_3=2596143476298333157846630848266239\). +Thus each northeast-corner rank over Q equals the maximum of its modular +ranks: an alleged larger minor vanishing at all selected primes must be +zero by the strict numerator bound. Nonzero modular minors are nonzero +over Q. This certifies zeros as well as nonzeros, without a probabilistic +rank assumption. Consecutive increasing pivots are compiled by the retained +lower-triangular partial-swap conjugation into one contiguous recursive call. + +The profiler reconstructs 68,025 distinct matrices at h=23 and 91,415 at +h=25. Of these, 5,379 and 7,186 respectively use all three primes; no +modular profiles disagree. The checked-in complete block lists have old +rank masses 838948 and 1209425. Subtract h full h-blocks and add h +singletons for copied centers; the new masses are 838442 and 1208825. + +## Complete cost and exact witness + +Put \(N=v_av_b=4073300\), \(B_a=v_bR_a=83793600\), +\(B_b=v_aR_b=85590659\), \(W=2N+B_a+B_b=177530859\), +\(L=v_b\ell_a+v_a\ell_b=2226400\), m=575. +The disjoint classes are: + +| Class | Multiplicity | Recursive widths | +|---|---:|---| +| First auxiliary exterior | B_a | 23,529 | +| Second auxiliary exterior | B_b | 25,525 | +| Every data macro | 2*4073300 | 9 singletons,21,17,481 | +| h=25 internals | v_a | Complete certified copied fixed profile | +| h=23 internals | v_b | Complete certified copied fixed profile | +| h=25 data growth | 2N | 1,23 | +| h=23 data growth | 2N | 1,21 | +| Paid endpoint correction | N | 1 | + +Their weighted rank is exactly +\(s=Wm-N+L=102078397025\); the deficit is 1846900. +Every width is at most 5292.2480\cdot10^{-14}. +\] + +The geometric requirement is still positive: +1-epsilon(1+c)=eta-epsilon*eta/4>3 eta/4; it is not itself a cost margin +in this balanced physical layout. Negative controls reject the old prefix, +old nonlinear guard, and old separate exposure charges at these parameters. +Exact cutoff checks retain padding across whole intervals, product row +stock, and the additional prime/native-setup/recovery thresholds. These +strict positive gaps absorb fixed polylogarithms. The paper's fixed-machine +extension below an eventual cutoff gives the claimed conditional exponent. + +## Review boundary and attribution + +The weakest steps requiring expert mathematical review are the inherited +ordered-affine partial-swap compiler and its fixed-tape cost, copied-stream +parking and complete spectators at every recursive call, the balanced positional-layout transfer, the translation +from fixed local pivot profiles into the common ambient basis, and the +semantic/bulk Gaussian and exact-recovery interfaces. The finite checks +support those arguments; they do not replace them. The common eligible +address prime and full all-size machine are specified by the retained +existence/setup arguments, not materialized here. The optional Lean extension was not implemented; no Lean build or full +formal verification is claimed. + +Direct construction credits: **Rohan Arun, PR #44, with Anthropic Claude +assistance** (weighted matching discovery method and replay profiler); **RaD / hipotures, PR #41** (changed scalar +DAGs, alternating point order, and independent role-compiler checker), **icekylinx, PR #36** (copied centers, complex +network, assembly integration), **Dominik Scholz, PR #35** (two fixed factors, +tree argument, dimension-specific CRT method), **icekylinx, PR #32** +(fixed I+J projectors/profiler), **Zhihao Chen / jacklightChen, PR #29** +(compatible two-stage tensor construction), **Aurel Prosz / Paureel** +(two-stage topology and paid endpoint copy), **Swapnil Jain** (linked +two-stage development), **Rohan Arun, PR #25/#31** (first data block and +ordered corner methods), and **Dominik Scholz, PR #33** (dimension adaptation). + +Retained interfaces: **icekylinx, PR #10/#18/#24**; **Zhihao Chen, +PR #7/#16/#21/#23**; **RaD / hipotures, PR #20** and its pinned semantic, +routing, Gaussian inverse and bulk work; **eumemic, PR #3/#5/#6/#13**; +**Bortlesboat / Andrew Barnes, PR #2**; **dleen / David Leen, PR #4**; +**Douglas Colkitt**, **OpenAI**, and **David Harvey and Joris van der Hoeven**. +The reversed geometry is credited to **James Chang / jamesyc, PR #34** +and **Rohan Arun, PR #37**. **Rohan Arun, PR #39/#40/#42** supplies the +modular data-corner method and contemporaneous both-fixed comparison. +**Dominik Scholz, PR #38** independently composed both fixed factors with +copied centers. The balanced physical assembly and its arithmetic are imported from PR #34/#37, +with the RaD source reports preserved. +All original notices, licenses and assistance disclosures are retained. + +Source pins are in `SOURCE.json`. Run `make copied-fixed-verify` for full +new producer, independent algebra and exact-certificate checks, and +`make verify` for the integrated repository suite. This increment targets PR #46 commit +`71b6c960c89295e952522dd44111df9cfc51ae90`; its full inherited base is pinned +PR #36 commit `11817ccacb564bb7f98789c20dc11d3fece207e3`. diff --git a/references/signed-recursion/pr100/research/copied-fixed/balanced_assembly.py b/references/signed-recursion/pr100/research/copied-fixed/balanced_assembly.py new file mode 100644 index 0000000000..c7fd42867d --- /dev/null +++ b/references/signed-recursion/pr100/research/copied-fixed/balanced_assembly.py @@ -0,0 +1,196 @@ +"""Exact, import-safe balanced copied-center semantic assembly arithmetic. + +The PR36 copied-center guard uses E=64*(W+m+G+1)^3, including G. +Its complex saving is 717/10^7. All balanced parameter formulas are unchanged. + +Adapted from Zhihao Chen PR23/29 semantic assembly (Apache-2.0), RaD's +balanced transform / arbitrary routing / bulk resampling composition, and +jamesyc PR34's check_composition.py at 7fecbe3. PR34 source is research/reversed-two-stage/check_composition.py in that +pinned upstream commit. Original parameterized transcription by the +research workers is in rectangular-dimensions/next/assembly_parameterized.py. + +This checks arithmetic, not physical corner existence, producer correctness, +or inherited all-size tape/analytic hypotheses. No imports execute producers, +parse argv, read files, change globals, or mutate the supplied finite bridge. +""" +from fractions import Fraction as Q + + +class InvalidAssembly(AssertionError): + """A named exact input validation or strict inequality failed.""" + + +def require(condition, message): + if not condition: + raise InvalidAssembly(message) + + +def rational(value): + # Fraction(float) silently preserves binary floating error; forbid it. + require(type(value) in (int, str, Q), 'expected integer or exact rational string/Fraction') + return Q(value) + + +def integer(value): + x = rational(value) + require(x.denominator == 1, 'nonintegral graph constant') + return x.numerator + + +def ceil(value): + return -(-value.numerator // value.denominator) + + +def halving_degree(m, child): + require(0 < child < m, 'child must strictly contract') + degree = 1 + while m**degree <= 2 * child**degree: + degree += 1 + return degree + + +def validate_bridge(finite_bridge): + """Recompute rather than trust stored semantic and product-stock totals. + + scalar_group_upper remains a supplied, proof-certified local scalar upper + charge. Its producer provenance is external to this arithmetic interface. + """ + result = {} + for name in ('bit', 'complex'): + data = finite_bridge[name] + m, W, child = (integer(data[k]) for k in ('m', 'W', 'maxchild')) + require(m > 1 and W > 0, 'positive arity and role volume required') + degree, bits = halving_degree(m, child), W.bit_length() + require(integer(data['halving_degree']) == degree, name + ' stale halving degree') + require(integer(data['wire_bits']) == bits, name + ' stale role logarithm') + result[name] = dict(m=m, W=W, maxchild=child, + halving_degree=degree, wire_bits=bits) + phase = finite_bridge['complex'] + s, scalar = (integer(phase[k]) for k in ('s', 'scalar_group_upper')) + m, W, child = (result['complex'][k] for k in ('m', 'W', 'maxchild')) + require(0 < s < m*W and scalar > 0, 'invalid complex rank/scalar bound') + E = 64*(W+m+scalar+1)**3 + B = s+E + literal = 2*scalar*W**2+8*s+4*W+4+32*m + C0 = 32*m*B**2 + semantic = dict(E=E, B=B, C0=C0, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-child)-(s+E)) + require(E > literal and semantic['induction_gap'] >= 0 and C0 > 2*B+18, + 'semantic completed-child bound failed') + for key, value in semantic.items(): + require(rational(finite_bridge['semantic'][key]) == value, + 'stale semantic constant: '+key) + result['complex'].update(s=s, scalar_group_upper=scalar) + result['semantic'] = semantic + rows = finite_bridge['rows'] + coefficient = sum(result[name]['halving_degree']*result[name]['wire_bits'] + for name in ('bit', 'complex')) + degree = integer(rows['degree']) + gap = degree-Q(51,25)*coefficient + require(degree > 0 and gap > 0, 'insufficient product row degree') + expected = dict(coefficient=coefficient, degree=degree, + degree_gap=gap, suffix_slope=4*degree) + for key, value in expected.items(): + require(rational(rows[key]) == value, 'stale product row constant: '+key) + result['rows'] = expected + return result + + +def assembly(finite_bridge, a_bit, kappa, beta=Q(1,20), h=Q(1,10**12), + a_complex=Q(717,10**7), *, original_prefix=False, + old_guard=False, old_exposures=False): + """Return 47 strict slacks and seven margins, or raise InvalidAssembly. + + The three keyword switches are negative controls: they impose the old + prefix, nonlinear guard, or old separate movement charges at these SAME + balanced parameters. They do not silently optimize an alternative family. + """ + f = validate_bridge(finite_bridge) + a, b, kappa, beta, h = map(rational, (a_bit,a_complex,kappa,beta,h)) + require(0 < h < Q(1,2) and kappa > 0, 'positive backoff and saving required') + tau, sigma = 1-a, 1-b + q = a*(1-2*h) + require(1+q != 0, 'undefined balanced epsilon') + lp, c, eps = 1-q, q+h/4, (1-h)/(1+q) + lam = (tau+lp)/2 + G = eps*q + r, delta = (G+1-eps)/2, h/8 + C1 = Q(19991,10000) if old_guard else Q(1) + margins = dict(g1=1-eps, g2=a, g3=G, g4=a, + g5=min(1-eps-delta,r-delta), g6=1-eps-delta, g7=eps) + if original_prefix: + margins['g1'] = 1-eps*(1+c) + if old_exposures: + margins.update(g2=eps*c*a, g4=a*(1-eps)) + internal = tau+(1-beta)*max(sigma-tau,Q(0)) + leaf = sigma+beta*(1-sigma) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=eps, epsilon_below_one=1-eps, guard_width=1-eps*C1, + K_geometry=1-eps*(1+c), K_dominates_log=eps*c, + record_suffix=1-eps, phase_local=1-eps-delta, phase_boundary=r-delta, + gamma_sublinear=1-eps-r, cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=eps-a, + small_field_exposure=1-eps-G, artificial_boundary=8-eps+r-delta-G, + literal_scalar_guard=Q(f['semantic']['strict_literal_gap']), + row_product_gap=f['rows']['degree_gap']) + slacks.update({name+'_above_kappa': value-kappa for name,value in margins.items()}) + require(len(slacks) == 47 and len(margins) == 7, 'constraint list incomplete') + failed = {name:str(value) for name,value in slacks.items() if value <= 0} + require(not failed, str(failed)) + require(min(margins.values()) == G, 'unexpected controlling margin') + require(1-eps-G == h and 1-eps-r == h/2, 'balanced identities failed') + require(1-eps*(1+c) == h-eps*h/4, 'geometric identity failed') + parameters = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta,h=h, + q=q,c=c,epsilon=eps,lambda_=lam,lambda_prime=lp,alpha_squared_power=r, + delta=delta,C0=f['semantic']['C0'],C1=C1,kappa=kappa) + return dict(parameters=parameters,constraints=slacks,margins=margins, + minimum_margin=G,absorption_gap=G-kappa,scoped_limit=a/(1+a), + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c),finite_bridge=f) + + +def cutoffs(finite_bridge, result): + """PR34 sufficient numeric comparisons, retaining its all-interval padding. + + These are eventual arithmetic thresholds, not practical running times or + substitutes for additional native setup / prime / recovery thresholds. + """ + f = validate_bridge(finite_bridge) + p = result['parameters'] + e,c,r,beta = (p[k] for k in ('epsilon','c','alpha_squared_power','beta')) + ka,km,kb,ks = (ceil(1/x) for x in (r,e*c,1-e,e*beta)) + C0 = f['semantic']['C0'] + largest = max(f['bit']['m'],f['complex']['m']) + cuts = dict(guard=ceil(Q((2*C0).bit_length())/(1-e)), + normalization=ceil(7/(1-e-r)), alpha=16*ka*ka+1, compact=64*km*km+1, + geometry=ceil(3/(1-e*(1+c))),phase_cell=ceil(9/(e-(1-r)/2)), + period=128*kb*kb+1,stopped_leaf=ks*(4*largest).bit_length(),log_p=25,reservoir=14) + common = max(cuts.values()) + require(common >= max(2*ka,2*km,2*kb,25), 'cutoff does not cover monotone regime') + checkpoints=[] + for j in range(6): + z=common*2**j + powers=dict(alpha=(z//ka,8*(z+ka)+64),compact=(z//km,32*(z+km)+192), + period=(z//kb,16*(z+kb)+56), + rows=(z//kb,f['rows']['suffix_slope']*(z+kb+8)), + leaf=(z//ks,4*largest)) + require(all(lhs >= rhs.bit_length() for lhs,rhs in powers.values()), + 'compressed-power threshold failed') + checkpoints.append(dict(log2_input=z,powers={name:dict(exponent=lhs,rhs=rhs, + rhs_bits=rhs.bit_length()) for name,(lhs,rhs) in powers.items()})) + return dict(cutoff_log2_input=cuts,common_cutoff=common,power_checkpoints=checkpoints, + all_interval_argument='For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). ' + 'Successive intervals double LHS; the positive affine RHS grows at most ' + 'linearly, so 2^j >= j+1 proves persistence.', + additional_eventual_conditions=['BHP prime threshold and distinct-prime packing', + 'Fixed rational basis, eligible common prime and native table setup', + 'Catalogue/descriptor domination, logarithm absorption, exact recovery'], + practical_runtime_claim=False) diff --git a/references/signed-recursion/pr100/research/deferred-balanced/PROOF.md b/references/signed-recursion/pr100/research/deferred-balanced/PROOF.md new file mode 100644 index 0000000000..47380250c1 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/PROOF.md @@ -0,0 +1,68 @@ +# Transfer argument and exact refinement + +## Fixed physical inputs + +PR97 at `f5f9c56e637463cac1e300d1589ccf42838f688a`, by Zhihao Chen, integrates Swapnil Jain's pinned round7 bit and round6 complex networks. We retain its full physical word, stable ordering of commuting fan gates, reflection rules, entrance gauges, tensor connectors, copied centers, signed shear word, translation and inverse rank-one correction. The proofs in `../deferred-signed/PROOF.md` remain required. In particular ordinary-input identity alone would not suffice: arbitrary dirty restoration, common-frame incidence and complete complex output phases are required. + +The complete finite triples (m,W,s) remain + + bit: (529, 108516254, 57403754177), + complex: (576, 207387136, 119453132304). + +Every child multiplicity is read from the unchanged literal ledgers. There is no endpoint merging or removal of intermediate gates. The scalar charge G, semantic envelope E=64(W+m+G+1)^3, C0, C1=1, halving degrees and product row stock are those regenerated by PR97's actual compiler/interface calculation. `validate_bridge` independently recomputes those quantities after adding the explicit wire-bit and scalar-bound fields its interface requires. + +## Sharper moment enclosures + +For a complete child histogram n_t, use + + M(a)=Σ_t n_t t/(mW) · exp(a log(m/t)). + +The retained PR65 enclosure computes log through a rational atanh series with a geometric tail and directed rounding. For 0≤u≤v<1, the degree-eight Taylor polynomial at u is a lower bound. At v, the first omitted term divided by 1−v/10 bounds the tail, because every subsequent term ratio is at most v/10. Directed rounding to denominator 10^40 preserves these inequalities. + +The independent audit uses reduction by 3/2, sixty atanh terms, and a degree-twelve exponential series with twice the first omitted term as its upper tail. Its logarithm interval must lie inside the primary interval. Both methods prove the accepted moment below one and reject the next 10^-18 saving grid point. Function bodies are preserved without changes from PR65 snapshots and checked against them. + +For the bit histogram this gives + + a = 15995753310011/250000000000000000. + +The stronger complex moment is also audited, but the assembly deliberately retains PR97's already certified b=36926111/500000000000. This separates the improvement from any changed complex-network saving. The complete paid histograms are the inputs, not a lower cost inferred from a heuristic. + +## Original-prefix transfer + +First retain PR97's exact parameter family and all its cost margins. Take η=10^-12 and β=1/10. Set q=a(1−2η), c=q(1+η), ε=(1−η)/(1+c+q), and use PR97's remaining formulas unchanged. Its original assembly accepts + + κ_original = 15993706658873/250000000000000000. + +This improves the published number without changing the positional-layout argument. The stronger bit moment and smaller positive backoff change only eventual thresholds. All forty-seven strict constraints and seven margins are recomputed; the positive gaps absorb the same eventual logarithmic factors. + +## Balanced positional transfer + +The stronger result additionally invokes the balanced physical layout retained in `../copied-fixed/PROOF.md`, its pinned PR34/RaD sources, and `balanced_assembly.py`. This is an extra inherited construction, not an algebraic omission of the old prefix work. + +Process the extra top bit of each long FFT axis individually. Use common named low-coordinate groups with widths K_j∈[K,2K), rather than repeating each full prefix separately for every group. The resulting extra work is O(Tpd), with margin 1−ε. The full axis-major/group-major permutation and its inverse are performed by the paid arbitrary-coordinate router. Bulk Gaussian gathers and inverses retain the bit saving a. Whole active, control, row and spectator fields remain complete, with FFT level/twiddle order and forward/inverse alignment preserved. The geometric inequality 1−ε(1+c)>0 remains necessary even though it is not this layout's prefix-work cost margin. + +PR97 supplies the interfaces this outer layout requires. Its bit word implements the complete shear on ordinary and arbitrary dirty inputs and has the stated full paid profile. Its corrected signed complex endpoint proof gives the same completed C^tensor-u contract on every returned role, including scratch and temporary copies. Thus the semantic row bound and C1=1 apply to completed children. Coordinate routing carries every phase/address descriptor with its complete field; it does not erase the translation or discard a signed correction. The changed local arities 529 and 576 enter the regenerated halving and row-stock calculation, not the outer FFT regrouping argument. No local gate is reordered or crossed by this transfer. + +With η=10^-12 and β=1/10, take + + q=a(1−2η), c=q+η/4, ε=(1−η)/(1+q), + λ=(1−a+1−q)/2, λ'=1−q, + g=εq, r=(g+1−ε)/2, δ=η/8. + +The seven margins are + + 1−ε, a, g, a, min(1−ε−δ,r−δ), 1−ε−δ, ε. + +Their minimum is g. The exact identities 1−ε−g=η and 1−ε(1+c)=η−εη/4>0 retain both the work and geometric gaps. The complex leaf condition (1−β)b>a remains strict. The validated semantic scalar bound and row-product gap are unchanged. All forty-seven constraints, seven margins and eventual cutoff comparisons accept + + κ = 63978919675787/10^18, + +and reject its next 10^-18 grid point. Imposing the original prefix margin at these balanced parameters is a rejecting negative control: the stronger result is explicitly conditional on the additional balanced-layout transfer. + +## Provenance and limits + +The original PR97 manifest is preserved as `pr97-source-manifest.json`. Four unavailable historical log artifacts are reproduced by running their unchanged scripts; fresh timings, hashes and exit statuses are preserved. Only their manifest entries may change, and no mathematical input or implementation byte may change. A passing new log is not represented as the missing original log when its time-stamped bytes differ. + +All-size ordered-frame compilation, common-basis existence, effective setup, routing, exact recovery, fixed alphabet/tape simulation and analytic transfer remain inherited hypotheses. The finite checks support the explicit instance and interface conditions; they do not prove those hypotheses. There is no claim of global optimality, a new formal Lean theorem or practical speedup. + +Zhihao Chen's physical-interface and signed-phase contributions, Swapnil Jain's networks, and the balanced transfer and exact arithmetic contributors are credited specifically in README.md and retained source notices. This refinement and composition were prepared by Rohan Arun with OpenAI Codex assistance. diff --git a/references/signed-recursion/pr100/research/deferred-balanced/README.md b/references/signed-recursion/pr100/research/deferred-balanced/README.md new file mode 100644 index 0000000000..e74570902d --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/README.md @@ -0,0 +1,31 @@ +# Balanced transfer of the deferred signed networks + +Conditional **κ = 63978919675787/10¹⁸ = 6.3978919675787×10⁻⁵**, **0.0204901262% above PR97's stated bound**. This composes Zhihao Chen's PR97 integration of Swapnil Jain's physical networks with the balanced positional layout already retained in this repository, and sharper exact moment enclosures. + +Two results are certified separately: + +| Transfer | κ | +|---|---:| +| PR97 as published | 6.3965813×10⁻⁵ | +| Same original-prefix transfer, refined moments/backoff | 6.3974826635492×10⁻⁵ | +| Inherited balanced positional transfer | **6.3978919675787×10⁻⁵** | + +The bit saving becomes **15995753310011/250000000000000000**. The complex saving used by the assembly remains PR97's **36926111/500000000000**. No gate, frame, endpoint, phase correction or child multiplicity changes. Both tensor connectors, copied centers, gauged exits and the inverse rank-one phase correction remain fully charged. + +The balanced result uses an additional inherited layout argument: group common low-coordinate FFT axes after handling their extra top bits, using the paid coordinate router and retaining complete spectator/control/row fields. Its prefix-work margin is 1−ε. The original 1−ε(1+c) remains a positive geometric requirement. A negative control rejects imposing the original prefix cost at the stronger balanced parameters. This is a physical transfer hypothesis, not a deletion of an accounting term; see [PROOF.md](PROOF.md). + +The imported PR97 checkout omitted four logs that its manifest required. Fresh frame, lifted, staircase and negative-control replays recover those artifacts. The original manifest and expected hashes are preserved here; only the corresponding log hashes are refreshed. Original physical and analytic source bytes are unchanged. The original failed invocation and fresh replay receipts are retained, without representing it as a passing run. + +Draft: independent focused integration PASSED in 29.631 seconds, including both complete physical ledgers, tensor/signed controls, dense complex identity and exact assembly. Two independent moment enclosures, next-grid tests, 47 strict constraints, seven margins and six adversarial controls pass. The full repository rerun remains pending. A first attempt stopped because SymPy was absent; installing the upstream-pinned SymPy 1.14.0 resolved that setup failure. + +```sh +python3 -m pip install sympy==1.14.0 +python3 research/deferred-balanced/verify.py --replay-own +python3 research/deferred-balanced/test_controls.py +python3 research/deferred-balanced/verify.py --replay +make verify +``` + +**Credit:** Zhihao Chen (jacklightChen) supplies the explicit reflected schedules, commuting fan-order clarification, nonzero entrance/exit gauge proof, signed complex phase controls and correction, and integration with retained semantic interfaces, with Codex assistance. Swapnil Jain supplies the deferred readouts, V leaves, lifted frames, paired complex producer, flag/staircase family and frozen inputs, retaining the original Claude disclosure. The balanced layout is inherited from James Chang/PR34, RaD/hipotures and subsequent contributors; exact refinement follows PR65. Also credit Avi Eisenberg/ikeboy, icekylinx, Aurel Prosz/Paureel, Chafik Boukhalfa, Dominik Scholz, Rohan Arun and all original authors. Licenses and source notices are preserved. + +This composition was prepared by Rohan Arun with OpenAI Codex assistance. All-size compiler, routing, recovery, fixed-tape and analytic hypotheses remain assumptions. There is no unconditional theorem, new Lean proof, practical speedup or global-optimality claim. diff --git a/references/signed-recursion/pr100/research/deferred-balanced/SOURCE.json b/references/signed-recursion/pr100/research/deferred-balanced/SOURCE.json new file mode 100644 index 0000000000..b404d707f1 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/SOURCE.json @@ -0,0 +1,169 @@ +{ + "upstream_commit": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "files": { + ".github/workflows/deferred-balanced.yml": "83196b79a6b7e3ebc81251de6cbd7f134a2f9b0f94a953a4a232ca0b5d47e997", + ".github/workflows/verify.yml": "f167d3877ffd324cc920b0373101fca29a72def7684de1824a40c627acf204ba", + "Makefile": "d3da97587cfa850d826bbb450f13121ff46e4e87bc91681e669279557562494a", + "README.md": "5fe2101e1bd639a1739e4986c807f3a659b463a8a5873126e11727e8e63298a1", + "certificates/joint-dual-kappa.json": "6dff7f3bd3bf149714e9f161892c944d8788d0894ff0c4056610a3283368253e", + "certificates/joint-dual-validation.json": "9af3bb95c2dacb7ffb410936f284ca5b0c288fc8ce492a97b349161dfc978113", + "references/copied-fixed/pr34/ASSEMBLY_PROOF.md": "88bdd35ac089891dcbd47fb7fb76418c785e6004902f7a987aad571e0a4eea51", + "references/copied-fixed/pr34/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/copied-fixed/pr34/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/copied-fixed/pr34/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/copied-fixed/pr34/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "research/copied-fixed/PROOF.md": "142326b82ea68e274b3495551b38005b7f1d5e0310219ed10ab5afc8d79a30f8", + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/deferred-balanced/PROOF.md": "102a768aba9d9a4b3155b80dfe2d1265e8500a5ee9e5da4972225e5dbabbd5e3", + "research/deferred-balanced/README.md": "e7408608df6dae224cd4836b774795649b479a7bce72696822520c004c49744e", + "research/deferred-balanced/__pycache__/verify.cpython-311.pyc": "4e42bbc99966fb25fe01fc69f48533d5f42ca86df7fee9f65198c156922d87d1", + "research/deferred-balanced/arithmetic-sources/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-balanced/arithmetic-sources/NOTICE": "f0a0aafc64143a58437c2cc68cecf2fc223a72e7922e74733f4b697415441d50", + "research/deferred-balanced/arithmetic-sources/SOURCE.json": "8032dea829a8518fbfb091cb41acb2ffd4c850802ba31f579ebc543c3913522f", + "research/deferred-balanced/arithmetic-sources/audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "research/deferred-balanced/arithmetic-sources/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "research/deferred-balanced/arithmetic-sources/refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "research/deferred-balanced/certificate.json": "bcf324430f7f67fd46402f0ffa47e8cccbd42af01b1844bcbc7ec8f5610b657a", + "research/deferred-balanced/focused-validation.json": "a9bcb03b18635626ad1ade4c274c785082cafcb9034ee6c16fab8cbf20d3ec33", + "research/deferred-balanced/log-recovery.json": "83bcb29165f7c3f174f61c5fc1a726e25263aedfa1b582384a41be39aaa5eae3", + "research/deferred-balanced/missing-log-attempt.json": "a4f307a4ee4f261bfa704c8f89ecbc58d2c92d9b7f58b19274afcbb16c26ad07", + "research/deferred-balanced/moments.py": "ab5c15ff5f025a9d2ed7c625bf798940f2d80cab8f44dc6a27a588ff52009851", + "research/deferred-balanced/pr97-source-manifest.json": "eca8ccc565dc6145b8da703a752f7dd54873993bb5bc7ec0c23bd6649a2ac1d0", + "research/deferred-balanced/test_controls.py": "4b73b4cc00fb9bfb57e46fbf6143df82b38cfc63f54d840830b067511be3c00a", + "research/deferred-balanced/verify.py": "5122a0899c68bb5c20055971456992087a5469cf64f2557bdeb11ffdc62fa56a", + "research/deferred-signed/PROOF.md": "cf5cced8cecace5f4308647523bc86a0869daeb1aa49c382bec03411674a1741", + "research/deferred-signed/README.md": "b1d761d02a5bb3413f705c9fac321a96e9b42f4bfd949c175131af97316b7463", + "research/deferred-signed/SOURCE.json": "eb52b52e24f2af236cade852de44c44280c8597e0d21be4fa1d404b09392f174", + "research/deferred-signed/VALIDATION.json": "c267be2b45769619b1fcb078b5aaa40f24ce1f0345161d180f138d297cd19264", + "research/deferred-signed/check_complex_identity.py": "8a31abe1d46ab3aa76b954cb87004e28d4974cce5eea2dea17d6283992902e7d", + "research/deferred-signed/round6-complex-interface-controls.json": "7f4375ff2baefd6455d5353968d4c1a38666cda7f417ebd21286f09e16131d22", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "db1d41515236c2710b4caeb22d91eea63cf1deeb0d659346d0661da71ed07baa", + "research/deferred-signed/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/round6_complex_literal_ledger.py": "a1384fb5283d9d11775942b91e31887fa05ddcd50c6a50fa3f11902b32f73c36", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "bcf0623dc4eab9fdb858f4375a5a183b72b150853e8da030005d8fcd0b83f2ae", + "research/deferred-signed/round7-literal-ledger/result.json": "65343d92f68d0d7756bb4c5adbdcb43171b00ce7fa7398e951245cf2ab119c0f", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "8383f9afa241ad495941b3d724286f0d94e4c4adee71d8ea744d88d813acec4c", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "0e3b13922295c0ece6e6354d7ba93529b3c51e70ece15a20d089f65f134e33b7", + "research/deferred-signed/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/swapnil-round7/.gitignore": "e4142bca62926744f1a60693914db92bb41be0b9ea4fbd4dd73e3af2178b0c8b", + "research/deferred-signed/swapnil-round7/IMPORT.json": "4b5f15981e846084b6def674ce0903c2d4ef0c930ea0c40093a2a8584164102d", + "research/deferred-signed/swapnil-round7/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-signed/swapnil-round7/Makefile": "42714be051b771e6ea414d3f7da4b9beb93990d5d6e1521dc665b3b2718a888a", + "research/deferred-signed/swapnil-round7/NOTICE": "058a663112e633ab5349ce33b6119bacca2b9fd6c0a89918c4c0435d6dd7a008", + "research/deferred-signed/swapnil-round7/README.md": "07409d6f8ca1becb0cf1f7bf7f485b879bfb53663c93becefc8f4e44de6f50b9", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "f102b238e86a650190e2c94232fbafd3f50d30693151019a7d7b5b4addf620fd", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "bbd2333d9049b8f42565e2b24d6faa5c69fcc4e67b873a7bef1f6e607e4979f4", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "9f712eb870cfad37af333acefce5162754f85087afc9647e2d86b30a70ba5c03", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "ca659ffa1dccdb05ebbcb95c8ca6342704bcc98656a57be9a05aa71faafe0bdb", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "648168584f12381f1756156aea22a3fff108b94de36c62652b75558b81c0a118", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "35cbcff404998f4e66c026e98c72f895bd8f8f2b90ba8d60b390af1d150b2cf7", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "2a76b1ce513c08d408a7524d825e922cc7a3939a772237d3a08f9683f2235289", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "cc56ddcff426818b0fb096a47f837fceb98b928d31c428f6dccaca53aff4b3c7", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "cb33411a0b9b552ec881b884498567997c10f9cb9d63cb7d5a864277ccebdfb0", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "3c1181d1e3b6a55d8092d39e37c7b0ef712d8ace0b76dc8f493578bef6006eae", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "f9ddc6c33dda1abdaf05d0fff651d02e9a04557ebbb1b8da11d4d6de8de08d91", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "76b35a0fdb1bf1926325bf33648dbae3e0de34699ce6dd1e95a23a09f762cd44", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "ffb5ac42a64969dae7d19012e5102d7aeb66c3eee529bde9812bd182cb9eafa1", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "b1e790d7a268716b62d19f1e6617b9f55f81bbfbd0c474a3a0801918b5ba6a7b", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "056ca643666dff4405eecfb6f0f8a33da3a50244c65d9bc2e28fa95ea32956e1", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "c4b0d8b9cdb7dceb881747826356fb6eedd5ad465c483ed7cda0ba2a8d2d90d4", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "dbfa0844ff605abfe386f30f3bf9859c3f1b040eae019e184668c82439d788d1", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "4edb0206c6f44081c1be434a529fce3527a46a35fee3e874a97898d60eabbe20", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "499e4f7ea700a917e7c3991b91ac99e1b0eb7eb51fb6d362b395d0056b64bdee", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "90703356b485a21bbcf2f4dca9c1cc7109767a16afd2a04ac113b2c6e1d569ce", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "f1a2ff1e6aa68e3052d77d664744d85ac76c31f7b779bd66be018ee82ea0aec7", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "ef9c47f92ef46aa7f701493aab95d65f930d4d31db214bc83b683cf7ddb7868b", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "688e609cc0adbfba17dd74984d382121ce6741afc7e2da548ee553ea15c4d3c9", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "c31a321e28556c9d9cb3397e48292e8ecefc0b08e233243d7849bd585213af65", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "8f9bb3c2e7037e5c601b740e195cc5207bf3eec906fdea9c6f4ee73a7ca98da0", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "a246d8d4b4d110125406648f9fb49725894c3652102049caf3555ab191fc0e7b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "6931781fc7097daf44327de262ef9df68d95f3ebab3b2a6c22422066c1e7ea1a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "a1c5fa749b41d483dafb66d7ba56d2e77a8735befbbcac8391b8e1d8ce1ee2d3", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "0c1da25c545e1e7cdd6eca5140579a6b6273789de39171487624c7ff6490dec6", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "ef301c65851d91dc7ea0e920b33de4d36ee1249f768a504c8e5b3a29dd4abf7c", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "6ae9a08122efbad803b375dd5696485c6911ff799111dcf09811fd88bcc71539", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "de3fb97184ac8a9a654190023913b1eb2158a8ff70bb069ec8353092e6483de9", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "7312be680d8026b5b9730a7e531f7a2cc6a7d445a65d14bb18ec4e3c2f393f1a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "75362c04f5fd538dc8491b913d89cba7d9c30933b9e475372e75a79ce56353bd", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "e703992629634ff50337828d6fc1ec23daf2bc1e5f742adb62878fe3a5a85951", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "b15adc5aa1ea5761fb7dd5873c4dd44d28f15705c6ab2b1df87d3bd4b69e9a77", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "73281a2fe6506cf17934497a476e2fff97bf994b1b950e0f735b3dfd6510916b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "92465c6b1fb5f4830d56af1d54222f917cab8cbfd67b1eb4e707dc0d8c5076a8", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "f4c5d20e62967a2a7484bea59f44366daa82ca4c169691e9003e7fee76273c2b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "aa4205b2c59bb50faaff2f01bac8fb9b62dbb855638ea8cde678f801de30ad08", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "b3b6df4f3d024aba1de9b54903a41e4163feb397f0e412d3c9c60f7558204b5d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "a8cda0c24718980bd02b7983d340b0b97ce91f2241b81ef4127042ba81932847", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "4ca6b15fa6cf799b7252d9a70d5c66dcbe86f3cc16b03b7c6f03ccda66df41be", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "ff0f0515eda0f4dc995d07436e65663c553bfa01748fa2eeec96dcee8d0a34c3", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "1cdb902014b3c9d2a72deda999905dd04fbd555f7813d4664ca0e16355b42fdc", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "98c8b33d5761a6135238983a05b81a4250c0a9f02979096ae110d1104c77970d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "e97ec987bd20d86e73c92f940f2ba2650f39209db14dc5f00b88436481fa4e28", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "bb45184861572975a9d9f9d3f515c9897794a30fdab4efd81b074da16629ac56", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "27a4b348551cb8cce209864c08096230dba5e9f4ab04e469fcfedb61bca9b78a", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "fc897ba78f0b4e429104bef7e15d728c9095f1b948f9e51b76252a368819631d", + "research/deferred-signed/swapnil-round7/lean/dump.py": "5cd0ec7494bbe5441c44ab6b9f2155172e1e9a75852ecdcd7aef0ebc5a36d11f", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "f32e6de60a389803f2226b2229944404ea9e09a9291f83c8eefae54b2dc158f2", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "068cfb9e4139ddbcff8d3b987b92415ed0ddee20e5a4ccdf2fed5c116d52834e", + "research/deferred-signed/swapnil-round7/lean/gen.py": "e4c7051a4051989bb659553884773d06dd3f09e34ba2710ad5142b702294cfc4", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "88e0befd88833b9c67f84a2cfcb47f07101c95a2aa4d72b8a72df837cb954168", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "e1d955df15523fd0f83c82e2a4bc080bf378ee50deb3003fce4771ac30f4ed26", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "8fd0abe6c230980b9a0c4a175e06ca1808b0fe5ead0cf9f268496111c2e11d2c", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "942a4369dd843736732a5ec27a1616e3ae1c2f2f8cc00b67e4a88759548a15e0", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "7b7fe97b021e00bfb2139d15e41be9ba8579803884ac2082c2b7f6ab53879aba", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "31e7ef597a439945fd74fcfb0d8fc8fdc01d0baa7d00f69caf9aab66c7c93dc5", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "953963b0a986bed4ac7c5c8d0ec0cd593f6525691bec9ea55a058d60669ec411", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "838204a16fff7dc4bc575107a5745ba28d93f4928b7e1a9100ba2c12f7b63b8d", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "0f00ee0558ca661e4a793322e6336d9a6189f7d8e1be4e90be6232bb9327d59f", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "f82e5ff671a7532308c0b4e5424f76a80653e0d170779b27c9e72b3c8311de21", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "1f3eab33880c137591b6f984aa3220ca8fbc1e833a91c2aeea430f3c62580b74", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "cce6dcb88dc507c679691786909251cf79f681c673716c89524a15dbc1e97436", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "0f7725b97b6c85adc6fc38045703ca39b52ddfa9e76d14e446dbe948c47faae8", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "dbce6f0d3cc3cbd076686f2adf4a592fac8850abc0fd718a0933694770e9167c", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "53deb36c0f5daffc68ee02dabf189d2700f39a2bb3f01b55c663c49cd315b9ae", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "a6113295a7af30b581d1230e630bba3dc7759be7807d8b2628aeaca31cddf441", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "6c948d995fdc60df70a36f1fe658b9dd06960fafd48badfce2144fc764a3d2b9", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "f1d65865357b535ddd4d98b0f3bfc1947b9a434993e7c5ba1536d3a62439948f", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "6f858bb8b601967e45f73eafe698cf8c5f0417182a8b1c1541c1e96b7a0f5107", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "93710f045ab8e8c0d4881380368405214484759e63f9f933a5c5c0f85871bd4c", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "9f39eeda5fed8920fffaa3309df3531e1ff3a30c3b8659745ab583012e0669ec", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "27a91fe1fab8a0171ec59edf697c0e41fd5747792a0385e2e9f3b38beaa5b91a", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "f038a6cb823711434620412753b885962613c377cf1d0568ff6f20be09edf8d9", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "0fe5d5597c9925921979d22654ec60d45049178e423f1a54fdd63e3fe5853da3", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "49fb7c2bd29bd714929e4397ea9e11a0b5e258be8ef665e33d573faded600479", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "7d9af1fb8b48c4eae029e2b37daf460c8cb727308ed840b0197f40593b618886", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "b21bc2654452b04f8404670c42adc9fcd8e46ede578b5cb0aa88c7243a89ad20", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "cd0c77f9e6af31fa8a6c4efe27cfca200183322cf9128e4c6ed1d675cd0c52c4", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "58bd299b361c8119c2ffa1381582346ef8f1a0cf448d847c19ec9bdbe19f78c3", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "c0e988d363f9d989275693b340e97b59dc16e4d8835e1e9ea3d4c589da277a0f", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "8cc1b358bd92a31d454c7dc9a2739d1d9cb53f19e3f88035aa4cd6babf11cb77", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "04201d7df9fe95f10859d482a2386b65fdcba5f8d7347e7837866de88ff75de4", + "research/deferred-signed/validation-prior/frames-replay.log": "84e3ee79790324e85aec86ccd757ded05e8a73f62e72e322df4bb6ffffeade9c", + "research/deferred-signed/validation-prior/lifted-replay.log": "139ca8c580d4da85c8593645ecff4659124fc5924b33c9d0919df9e8b78f2c14", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "b973d467d949912edc1cf65ee22703f9692431de72e3d87d82f442a6f7a61a1c", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "e10abe35cc8b536d78eda3e234ef48a6a7e49019893ec3d920779f2ac66443fd", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/validation-prior/stair-replay.log": "8a7cad5cb0ff905203c46da45642224d178cfd8c9d7d97a1502f1195705f0231", + "research/deferred-signed/validation-prior/stair_control-replay.log": "82bf3dda4e3f5ec4e3ca796a5544364e2864a28a877642773132e902da4755d6", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "1bcd74316f11ebc2c36f0c9b5638f314a3982c97e96c572816602087169f0e42", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "92567c2050caeaf987358acee5dde5d8610e0f12bff6385899e3c043d6cefb89", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "bb9488bd2c19423e4ccff4cd8e5052f0848a5b107a133a31179c020d26a7465e", + "research/deferred-signed/verify.py": "cebcddbdfc553c37da7ab6b66b7e94c1dcd0610b82e79453ed937831c400c418", + "research/joint-dual/SOURCE.json": "0f2bc2e6d72534ab3884d050abdc328b112cbc4296e6cc04516f65ab87ee96b2", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + } +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/LICENSE b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/NOTICE b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/NOTICE new file mode 100644 index 0000000000..d5170811d5 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/NOTICE @@ -0,0 +1,343 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Aligned split-pair composition (2026-10-08) +------------------------------------------ +Avi Eisenberg: PR62 interval strips and core-aware pair assembly. Dominik +Scholz with OpenAI assistance: PR63 ranked-frame composition and PR68 pending +live-carrier controls. Rohan Arun with OpenAI assistance: PR65 region schedules +and refined exact arithmetic, and PR67 all-rank profile-cost selection and +its profile oracle. Rohan Garg / rohangar1 +with substantial OpenAI Codex assistance: PR59 split-pair operation. Eumemic +with substantial OpenAI Codex assistance: PR57 joint reversible compiler and +independent physical-word/profile checks. Chafik Boukhalfa with OpenAI Codex +assistance: PR60 ranked reclamation and this selected [1,1,2] split vector, +aligned common-point permutation, next-use profile score, composition and +certification package. +The complete PR65 baseline words, profiles and arithmetic, plus 43 original +source/provenance files, are preserved under references/frame-compiler/pr65. +The original PR59 split operation and notices are separately preserved. +PR67's compiler/oracle and baseline profile, and PR68's compiler/driver/proof, +retain their original bytes, licenses and notices in their own archives. +All previous notices and mathematical dependencies remain applicable. + +Balanced coarse split composition (2026-10-08) +--------------------------------------------- +Eumemic / @eumemic supplied PR69's balanced coarse sums, with OpenAI Codex +assistance. Alejandro Zarzuelo Urdiales / @alejandrozu supplied PR70's bounded +carry-exchange strategy with the AI disclosures retained in the source archive. +Chafik Boukhalfa / @chafreaky, with OpenAI Codex assistance, selected the row/ +half-plane coarse rules, future-compatible unit completion, exact integer-price +carry adaptation, composition and this certificate package. The PR71 anchored +split vector, schedules, arithmetic, pending controls and their contributor +chain are retained as credited above. Original PR69/70 sources, licenses and +notices and the complete published PR71 baseline are preserved under +references/frame-compiler. All earlier notices remain applicable. + +Indexed two-cycle composition (2026-10-08): Chafik Boukhalfa with OpenAI Codex assistance. Thomas DiFiore (@tomdif, PR74) supplied exact node ordering and coordinate relabeling, including the selected h25 permutation. Rohan Arun (@rohanarun, PR78) supplied the coordinate-flag search idea. Balanced multi-splits, exact retired/pending indices, bounded two-cycles, late-output routing and selected-coordinate certification compose inherited PR57/59/60/62/63/65/67/68/69/70/71/79 work. All original authorship, Apache-2.0 and AI disclosures remain in unchanged contributor archives. + +Final frame composition: Chafik Boukhalfa with OpenAI Codex assistance. Rank-preserving tie orders extend Thomas DiFiore PR74; coordinate-aware oracle pricing is adapted from Rohan Arun PR82. Three-donor cycles extend the credited bounded carrier exchange strategy. All earlier authors, OpenAI/manuscript, Apache-2.0 and AI-assistance notices remain attached in preserved archives. + +Aligned frame composition: Chafik Boukhalfa with OpenAI Codex assistance. Thomas DiFiore PR74 supplies aligned firstK partitions, multi-pair anchoring, depth-dependent coarse sums and the selected coordinate maps. The previously credited R10 compiler composes these with the selected pricing and three-cycle settings. The additive Lean arithmetic companion was prepared with OpenAI assistance; all previous author, Apache-2.0, OpenAI/manuscript and AI-assistance notices remain attached. diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/SOURCE.json b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/SOURCE.json new file mode 100644 index 0000000000..7c45875021 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/SOURCE.json @@ -0,0 +1,9 @@ +{ + "origin_pr95_commit": "ea640ec01daf16ebe9d3d0a6ca9e47bd7f8b7dd8", + "files": { + "refine.py": "e0488c919e76850313ff93d7da704a7fcc14a316eee2cac81e2b8dff9c145b5d", + "audit.py": "aa297fffcdaa133f5dee17d97fac72aa5ba2cf943da5a8a5e3f4d62f6f0a7f79", + "binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0" + }, + "extraction": "Function bodies floor_scaled, ceiling_scaled, exact_moment from refine.py; log_interval and independent_moment from audit.py are unchanged." +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/audit.py b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/audit.py new file mode 100644 index 0000000000..7d9949e676 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/audit.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +"""Independent exact enclosure, assembly and negative-control verification.""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path +import refine + +ROOT = refine.ROOT +HERE = Path(__file__).resolve().parent + + +def log_interval(x): + """Atanh expansion with independent 3/2 reduction and 60 exact terms.""" + assert x >= 1 + k = 0 + while x > Q(3, 2): + x /= Q(3, 2) + k += 1 + def small(y): + z = (y-1)/(y+1) + power, total = z, Q() + for j in range(60): + total += power/Q(2*j+1) + power *= z*z + return 2*total, 2*total+2*power/(121*(1-z*z)) + lo, hi = small(x) + blo, bhi = small(Q(3, 2)) + return lo+k*blo, hi+k*bhi + + +def independent_moment(profile, saving, recorded_terms): + low, high = Q(), Q() + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + for t, n in sorted(rows.items()): + lo, hi = log_interval(Q(profile['m'], t)) + recorded = recorded_terms[str(t)] + assert Q(recorded['log_lower']) <= lo <= hi <= Q(recorded['log_upper']) + u, v = lo*saving, hi*saving + assert 0 < u <= v < Q(1, 1000) + # Directed rounding of input logs bounds rational denominator sizes. + u = Q(refine.floor_scaled(u, 10**40), 10**40) + v = Q(refine.ceiling_scaled(v, 10**40), 10**40) + tlo, thi = Q(1), Q(1) + elo, ehi = Q(1), Q(1) + for j in range(1, 13): + tlo, thi = tlo*u/j, thi*v/j + elo, ehi = elo+tlo, ehi+thi + # First omitted term is degree13; subsequent ratios <1/2. + ehi += 2*thi*v/13 + weight = Q(t*n, profile['m']*profile['W']) + low += weight*Q(refine.floor_scaled(elo, 10**40), 10**40) + high += weight*Q(refine.ceiling_scaled(ehi, 10**40), 10**40) + return low, high + + +def audit(certificate): + profile_path = ROOT/certificate['profile_path'] + assert sha256(profile_path.read_bytes()).hexdigest() == certificate['profile_sha256'] + for name, digest in certificate['source_sha256'].items(): + assert sha256((ROOT/name).read_bytes()).hexdigest() == digest, name + source = json.loads(profile_path.read_text()) + p = source['bit'] + assert sum(int(t)*n for t, n in p['child_multiplicities'].items()) == p['total_rank'] + accepted = independent_moment(p, Q(certificate['bit_saving']), certificate['accepted_moment']['terms']) + rejected = independent_moment(p, Q(certificate['next_bit_saving']), certificate['accepted_moment']['terms']) + assert accepted[1] < 1 < rejected[0] + controls = {} + for name, variant in [('preferred', certificate['preferred']), ('coarse_grid_control', certificate['coarse_grid_control'])]: + params = variant['assembly']['parameters'] + result = refine.balanced.assembly(source['finite_bridge'], Q(params['a_bit']), Q(params['kappa']), h=Q(params['h'])) + assert refine.arithmetic.js(result) == variant['assembly'] + assert len(result['constraints']) == 47 and len(result['margins']) == 7 + assert all(v > 0 for v in result['constraints'].values()) + for label, kwargs in [('next_grid', dict(kappa=Q(variant['next_kappa']))), + ('zero_backoff', dict(h=Q())), + ('original_prefix', dict(original_prefix=True)), + ('old_guard', dict(old_guard=True)), + ('old_exposures', dict(old_exposures=True))]: + call = dict(a_bit=Q(params['a_bit']), kappa=Q(params['kappa']), h=Q(params['h'])) + call.update(kwargs) + try: + refine.balanced.assembly(source['finite_bridge'], **call) + except refine.balanced.InvalidAssembly as error: + controls[name+'/'+label] = str(error) + else: + raise AssertionError('Negative control accepted: '+name+'/'+label) + next_a = Q(certificate['next_bit_saving']) + best = Q(certificate['preferred']['kappa']) + cap = next_a/(1+next_a) + assert cap > best + return dict(status='PASS', independent_log_base='3/2', independent_log_terms=60, + independent_exp_degree=12, independent_tail='twice first omitted term', + independent_accepted_gap=1-accepted[1], independent_rejected_gap=rejected[0]-1, + variants_reassembled=2, constraints_each=47, margins_each=7, controls=controls, + fixed_profile_balanced_family_kappa_strict_upper=cap, + remaining_possible_parameter_gain_upper=cap-best) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--certificate', type=Path, default=HERE/'certificate.json') + parser.add_argument('--receipt', type=Path, default=HERE/'audit-receipt.json') + parser.add_argument('--record', action='store_true') + args = parser.parse_args() + result = refine.arithmetic.js(audit(json.loads(args.certificate.read_text()))) + if args.record: + args.receipt.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.receipt.read_text()), 'Independent receipt changed' + print('PASS independent logarithm/exponential enclosures; 47 strict constraints; seven margins; ten assembly negative controls') + + +if __name__ == '__main__': + main() diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/binary_frame_math.py b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/binary_frame_math.py new file mode 100644 index 0000000000..b87855e808 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/binary_frame_math.py @@ -0,0 +1,87 @@ +"""Exact rational helpers extracted without body changes from pinned PR48 verify.py. +Credits: icekylinx PR32/36, Dominik Scholz PR35, Zhihao Chen PR29/23, +Paureel/Aurel Prosz, Swapnil Jain, Rohan Arun PR25/31, RaD/hipotures, +Chafik Boukhalfa and inherited notices in references/frame-compiler/pr48. +Prepared with OpenAI Codex assistance; no formal theorem claim. +""" +from fractions import Fraction as Q +from functools import lru_cache +from math import comb, factorial, isqrt, prod + +def js(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):js(v)for k,v in x.items()} + if isinstance(x,(list,tuple)):return [js(v)for v in x] + return x + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def mersenne(exponent): + require(exponent >= 3 and all(exponent % d for d in range(2, isqrt(exponent)+1)), + 'Composite Lucas-Lehmer exponent') + p = 2**exponent - 1 + s = 4 + for _ in range(exponent - 2): + s = (s*s-2) % p + require(s == 0, 'Lucas-Lehmer failed') + return p + + +def exactness(h): + require(h in (23, 25), 'Uncertified dimension') + primes = [mersenne(e) for e in (61, 31, 19)] + Z = 3*h-7 + B0 = (4*h-2)*Z + 27*(h+1) + D = 3*(h+1)*(h-1)**2 + B = 2*(h-1)*B0 + bounds = {r: sum(comb(h,j)*factorial(j)*B**j*D**(r-j) + for j in range(r+1)) for r in (2,3,4)} + require(bounds[2] < primes[0], 'Rank-two minor modulus insufficient') + require(max(bounds[3],bounds[4]) < prod(primes), 'CRT minor modulus insufficient') + require(3*(h+1)*(h-1) < min(primes), 'Denominator may vanish') + return dict(h=h, primes=primes, prime_product=prod(primes), + single_numerator_bound=B0, common_denominator_bound=D, + correction_numerator_bound=B, minor_bounds=bounds, + modulus_gaps={2: primes[0]-bounds[2], + 3: prod(primes)-bounds[3],4: prod(primes)-bounds[4]}) + + +@lru_cache(None) +def logs(x): + x = Q(x) + require(x >= 1, 'Log domain') + k = 0 + while x > 2: + x /= 2 + k += 1 + def small(y): + z = (y-1)/(y+1) + lo = 2*sum((z**(2*j+1)/Q(2*j+1) for j in range(32)), Q()) + return lo, lo+2*z**65/(65*(1-z*z)) + lo,hi = small(x) + lo2,hi2 = small(Q(2)) + lo,hi = lo+k*lo2,hi+k*hi2 + scale = 10**30 + return Q((lo*scale).numerator//(lo*scale).denominator,scale), \ + Q(-(-(hi*scale).numerator//(hi*scale).denominator),scale) + + +def moment(m,W,rows,saving): + require(type(saving) is Q and 0 < saving < 1, 'Exact positive saving required') + lower,upper = Q(),Q() + enclosure = {} + for t,n in sorted(rows.items()): + require(type(t) is int and type(n) is int and 00, 'Invalid child') + lo,hi = logs(Q(m,t)) + u,v = saving*lo,saving*hi + require(0 <= u <= v < 1, 'Exponential enclosure domain') + weight = Q(t*n,m*W) + lower += weight*(1+u+u*u/2+u*u*u/6) + upper += weight*(1+v+v*v/(2*(1-v/3))) + enclosure[t] = dict(lower=lo,upper=hi) + return dict(saving=saving,exponent=1-saving,lower=lower,upper=upper, + strict_gap=1-upper,logarithms=enclosure) + diff --git a/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/refine.py b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/refine.py new file mode 100644 index 0000000000..399299089e --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/arithmetic-sources/refine.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3 +"""Exact arithmetic screen of the reordered rank-pair complete physical profile. + +Uses PR63's paid profile, inherited PR48 logarithm enclosures and balanced +assembly (PR34 and successors). New directed Taylor bounds are documented in +this file. Prepared with OpenAI assistance. Inherited licenses apply. +Physical linkage is checked by the parent verifier; no full theorem or practical speedup claim is implied. +""" +import sys +sys.dont_write_bytecode = True +if sys.flags.optimize: + raise ValueError('Assertions must remain enabled') +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import importlib.util +import json +from math import factorial +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(ROOT/'scripts/experiments')) +import binary_frame_math as arithmetic +spec = importlib.util.spec_from_file_location('inherited_assembly', ROOT/'references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py') +balanced = importlib.util.module_from_spec(spec) +spec.loader.exec_module(balanced) + + +def floor_scaled(x, denominator): + return (x * denominator).numerator // (x * denominator).denominator + + +def ceiling_scaled(x, denominator): + return -floor_scaled(-x, denominator) + + +def exact_moment(m, width, rows, saving, degree=8, rounding=10**40): + """Bound sum n*t/(mW)*exp(saving*log(m/t)) entirely in Q. + + At 0 <= u <= v < 1, S_d(u) is a lower bound for exp(u). + The tail at v has first term v^(d+1)/(d+1)!; successive ratios + are at most v/(d+2). Thus S_d(v)+first/(1-v/(d+2)) is upper. + Directed rounding per exp bound preserves both inequalities. + The inherited logarithm helper encloses log(m/t) rationally. + """ + assert type(saving) is Q and 0 < saving < 1 and degree >= 1 + lo, hi = Q(), Q() + terms = {} + for t, count in sorted(rows.items()): + assert type(t) is int and type(count) is int and 0 < t < m and count > 0 + loglo, loghi = arithmetic.logs(Q(m, t)) + u, v = saving*loglo, saving*loghi + assert 0 <= u <= v < 1 + lower = sum((u**j / factorial(j) for j in range(degree+1)), Q()) + upper = sum((v**j / factorial(j) for j in range(degree+1)), Q()) + upper += v**(degree+1)/factorial(degree+1)/(1-v/Q(degree+2)) + lower = Q(floor_scaled(lower, rounding), rounding) + upper = Q(ceiling_scaled(upper, rounding), rounding) + weight = Q(t*count, m*width) + lo += weight*lower + hi += weight*upper + terms[t] = dict(weight=weight, log_lower=loglo, log_upper=loghi, + exp_lower=lower, exp_upper=upper) + return dict(saving=saving, lower=lo, upper=hi, strict_gap=1-hi, + degree=degree, rounding_denominator=rounding, terms=terms) + + +def assemble(bridge, saving, h, denominator): + preliminary = balanced.assembly(bridge, saving, Q(1, denominator), h=h) + kappa = Q(ceiling_scaled(preliminary['minimum_margin'], denominator)-1, denominator) + accepted = balanced.assembly(bridge, saving, kappa, h=h) + assert len(accepted['constraints']) == 47 and len(accepted['margins']) == 7 + assert all(v > 0 for v in accepted['constraints'].values()) + assert all(v > kappa for v in accepted['margins'].values()) + try: + balanced.assembly(bridge, saving, kappa+Q(1, denominator), h=h) + except balanced.InvalidAssembly as error: + rejected = str(error) + else: + raise AssertionError('Next kappa grid unexpectedly passes') + return dict(kappa=kappa, assembly=accepted, + next_kappa=kappa+Q(1, denominator), next_kappa_rejection=rejected, + eventual_bounds=balanced.cutoffs(bridge, accepted)) + + +def build_certificate(profile_path, denominator=10**18, h=Q(1, 10**12)): + profile_path = profile_path.resolve() + source = json.loads(profile_path.read_text()) + profile = source['bit'] + bridge = source['finite_bridge'] + m, width = profile['m'], profile['W'] + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + assert sum(t*n for t, n in rows.items()) == profile['total_rank'] + assert bridge['bit']['W'] == width + low, high = 1, floor_scaled(Q(717, 10**7), denominator) + assert exact_moment(m, width, rows, Q(low, denominator))['upper'] < 1 + assert exact_moment(m, width, rows, Q(high, denominator))['lower'] > 1 + steps = 0 + while low+1 < high: + mid = (low+high)//2 + test = exact_moment(m, width, rows, Q(mid, denominator)) + if test['upper'] < 1: + low = mid + elif test['lower'] > 1: + high = mid + else: + raise ArithmeticError('Rational bounds inconclusive: increase enclosure precision') + steps += 1 + saving = Q(low, denominator) + accepted = exact_moment(m, width, rows, saving) + rejected = exact_moment(m, width, rows, Q(high, denominator)) + assert accepted['upper'] < 1 < rejected['lower'] + preferred = assemble(bridge, saving, h, denominator) + coarse_denom = 10**11 + coarse_bit = Q(floor_scaled(saving, coarse_denom), coarse_denom) + assert exact_moment(m, width, rows, coarse_bit)['upper'] < 1 + coarse = assemble(bridge, coarse_bit, h, coarse_denom) + inherited_coarse = arithmetic.moment(m, width, rows, coarse_bit) + inherited_next = arithmetic.moment(m, width, rows, coarse_bit+Q(1, coarse_denom)) + assert inherited_coarse['upper'] < 1 < inherited_next['lower'] + coarse['original_enclosure_control'] = dict(accepted_upper=inherited_coarse['upper'], + next_bit_lower=inherited_next['lower']) + # Same coarse grid/backoff as PR63 separates the structural gain from + # the additional precision refinement suggested by the PR61 precedent. + prior = Q(source['kappa']) + paths = (Path(__file__), Path(__file__).with_name('audit.py'), + ROOT/'scripts/experiments/binary_frame_math.py', Path(balanced.__file__)) + return dict(status='Exact finite conditional screen; physical linkage checked by parent verifier', + profile_path=str(profile_path.relative_to(ROOT)), + profile_sha256=sha256(profile_path.read_bytes()).hexdigest(), + source_sha256={str(path.relative_to(ROOT)):sha256(path.read_bytes()).hexdigest() for path in paths}, + grid_denominator=denominator, binary_search_steps=steps, bit_saving=saving, + next_bit_saving=Q(high, denominator), accepted_moment=accepted, rejected_moment=rejected, + preferred=preferred, coarse_grid_control=dict(bit_saving=coarse_bit, **coarse), + comparison=dict(pr63_kappa=prior, kappa=preferred['kappa'], + difference=preferred['kappa']-prior, + structural_gain_on_original_grid=coarse['kappa']-prior, + additional_precision_gain=preferred['kappa']-coarse['kappa']), + proof_limits=['The complete physical profile is supplied; independent word and CRT replay are parent-verifier responsibilities.', + 'The rational logarithm and exponential enclosure derivations are documented in README.md, not formally mechanized.', + 'All-size compiler, routing, recovery, prime-selection and fixed-tape transfer remain inherited.', + 'Neither global optimality nor measured practical speedup is claimed.']) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--profile', type=Path, default=Path(__file__).resolve().parent.parent/'paired-candidate.json') + parser.add_argument('--certificate', type=Path, default=Path(__file__).with_name('certificate.json')) + parser.add_argument('--record', action='store_true', help='Regenerate certificate instead of comparing with recorded result') + args = parser.parse_args() + result = arithmetic.js(build_certificate(args.profile)) + if args.record: + args.certificate.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + assert result == json.loads(args.certificate.read_text()), 'Arithmetic certificate changed' + print(json.dumps(dict(status='PASS exact arithmetic', bit_saving=result['bit_saving'], + kappa=result['preferred']['kappa'], constraints=47, margins=7, + next_grid_controls='PASS', comparison=result['comparison']), indent=2)) + + +if __name__ == '__main__': + main() diff --git a/references/signed-recursion/pr100/research/deferred-balanced/certificate.json b/references/signed-recursion/pr100/research/deferred-balanced/certificate.json new file mode 100644 index 0000000000..08ee7c9e35 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/certificate.json @@ -0,0 +1,923 @@ +{ + "status": "Focused physical integration and exact arithmetic passed; full repository verification pending", + "pr97": "63965813/1000000000000", + "original_reproduced": true, + "bit": { + "saving": "15995753310011/250000000000000000", + "moment": { + "saving": "15995753310011/250000000000000000", + "lower": "612739999999999999984606802297318203744105597/612740000000000000000000000000000000000000000", + "upper": "8103486499999999999796424960382033763180232047/8103486500000000000000000000000000000000000000", + "strict_gap": "203575039617966236819767953/8103486500000000000000000000000000000000000000", + "degree": 8, + "rounding_denominator": 10000000000000000000000000000000000000000, + "terms": { + "1": { + "weight": "41497/1409302", + "log_lower": "313549421592914969080675283181/50000000000000000000000000000", + "log_upper": "6270988431858299381613505663621/1000000000000000000000000000000", + "exp_lower": "10004013172420898473905497207517958204303/10000000000000000000000000000000000000000", + "exp_upper": "5002006586210449236952748603758979425909/5000000000000000000000000000000000000000" + }, + "3": { + "weight": "1149/16206973", + "log_lower": "5172376143190189690218260426697/1000000000000000000000000000000", + "log_upper": "2586188071595094845109130213349/500000000000000000000000000000", + "exp_lower": "5001654994896646328494774304121426286123/5000000000000000000000000000000000000000", + "exp_upper": "10003309989793292656989548608242853213601/10000000000000000000000000000000000000000" + }, + "5": { + "weight": "500/16206973", + "log_lower": "2330775259712099503506373165197/500000000000000000000000000000", + "log_upper": "932310103884839801402549266079/200000000000000000000000000000", + "exp_lower": "10002983045325542341589895833404795786741/10000000000000000000000000000000000000000", + "exp_upper": "5001491522662771170794947916702398213639/5000000000000000000000000000000000000000" + }, + "7": { + "weight": "7077/16206973", + "log_lower": "4325078282802986076508152920177/1000000000000000000000000000000", + "log_upper": "2162539141401493038254076460089/500000000000000000000000000000", + "exp_lower": "1000276769834737988643722706135961161749/1000000000000000000000000000000000000000", + "exp_upper": "62517298114671124290232669133497576611/62500000000000000000000000000000000000" + }, + "9": { + "weight": "3879/16206973", + "log_lower": "162950554180883199952920607591/40000000000000000000000000000", + "log_upper": "254610240907629999926438449361/62500000000000000000000000000", + "exp_lower": "10002606856592431811758184343685810338987/10000000000000000000000000000000000000000", + "exp_upper": "5001303428296215905879092171842905489569/5000000000000000000000000000000000000000" + }, + "11": { + "weight": "15818/16206973", + "log_lower": "774618631811985767510312417131/200000000000000000000000000000", + "log_upper": "484136644882491104693945260707/125000000000000000000000000000", + "exp_lower": "10002478428788486231512637673155033920677/10000000000000000000000000000000000000000", + "exp_upper": "2500619607197121557878159418288758640191/2500000000000000000000000000000000000000" + }, + "13": { + "weight": "7943/16206973", + "log_lower": "741207814879352529112003644411/200000000000000000000000000000", + "log_upper": "463254884299595330695002277757/125000000000000000000000000000", + "exp_lower": "2000474303326351674793075711374368901281/2000000000000000000000000000000000000000", + "exp_upper": "10002371516631758373965378556871845146453/10000000000000000000000000000000000000000" + }, + "15": { + "weight": "33660/16206973", + "log_lower": "3562938230756089315617501093471/1000000000000000000000000000000", + "log_upper": "111341819711127791113046909171/31250000000000000000000000000", + "exp_lower": "5001139967552812919269856164886753153371/5000000000000000000000000000000000000000", + "exp_upper": "2000455987021125167707942465954701389353/2000000000000000000000000000000000000000" + }, + "17": { + "weight": "40681/16206973", + "log_lower": "3437775087802083301363971045747/1000000000000000000000000000000", + "log_upper": "859443771950520825340992761437/250000000000000000000000000000", + "exp_lower": "625137489626099821455982588761389311877/625000000000000000000000000000000000000", + "exp_upper": "10002199834017597143295721420182229630037/10000000000000000000000000000000000000000" + }, + "18": { + "weight": "1386/704651", + "log_lower": "3380616673962134689405783068317/1000000000000000000000000000000", + "log_upper": "1690308336981067344702891534159/500000000000000000000000000000", + "exp_lower": "10002163254363829548523885925993232469881/10000000000000000000000000000000000000000", + "exp_upper": "10002163254363829548523885925993233109879/10000000000000000000000000000000000000000" + }, + "19": { + "weight": "8797/16206973", + "log_lower": "831637363172964730401119557933/250000000000000000000000000000", + "log_upper": "3326549452691858921604478231733/1000000000000000000000000000000", + "exp_lower": "400085146124112330352284707253443043581/400000000000000000000000000000000000000", + "exp_upper": "10002128653102808258807117681336076729517/10000000000000000000000000000000000000000" + }, + "21": { + "weight": "40950/16206973", + "log_lower": "1613232997067438192556453841627/500000000000000000000000000000", + "log_upper": "645293198826975277022581536651/200000000000000000000000000000", + "exp_lower": "10002064603264214139444190210536606776947/10000000000000000000000000000000000000000", + "exp_upper": "10002064603264214139444190210536607416929/10000000000000000000000000000000000000000" + }, + "23": { + "weight": "17301/704651", + "log_lower": "313549421592914969080675283181/100000000000000000000000000000", + "log_upper": "3135494215929149690806752831811/1000000000000000000000000000000", + "exp_lower": "10002006384931424584571002025389045103251/10000000000000000000000000000000000000000", + "exp_upper": "400080255397256983382840081015561829729/400000000000000000000000000000000000000" + }, + "439": { + "weight": "33803/704651", + "log_lower": "186489018783128031620293533877/1000000000000000000000000000000", + "log_upper": "93244509391564015810146766939/500000000000000000000000000000", + "exp_lower": "5000059661002730311719548484543972173391/5000000000000000000000000000000000000000", + "exp_upper": "500005966100273031171954848454397249331/500000000000000000000000000000000000000" + }, + "483": { + "weight": "363321/704651", + "log_lower": "22742944551431673576538712861/250000000000000000000000000000", + "log_upper": "18194355641145338861230970289/200000000000000000000000000000", + "exp_lower": "5000029103327147073215819628005368356749/5000000000000000000000000000000000000000", + "exp_upper": "10000058206654294146431639256010737353333/10000000000000000000000000000000000000000" + }, + "485": { + "weight": "74690/16206973", + "log_lower": "8683954092081618489602470869/100000000000000000000000000000", + "log_upper": "86839540920816184896024708691/1000000000000000000000000000000", + "exp_lower": "5000027781354662560423317517462673775389/5000000000000000000000000000000000000000", + "exp_upper": "10000055562709325120846635034925348190613/10000000000000000000000000000000000000000" + }, + "487": { + "weight": "23863/16206973", + "log_lower": "82724308775709590883594832369/1000000000000000000000000000000", + "log_upper": "8272430877570959088359483237/100000000000000000000000000000", + "exp_lower": "5000026464822756785788341527713443185429/5000000000000000000000000000000000000000", + "exp_upper": "2500013232411378392894170763856721752673/2500000000000000000000000000000000000000" + }, + "489": { + "weight": "40587/16206973", + "log_lower": "78625942383427356153328060577/1000000000000000000000000000000", + "log_upper": "39312971191713678076664030289/500000000000000000000000000000", + "exp_lower": "10000050307373666465556394477023351659817/10000000000000000000000000000000000000000", + "exp_upper": "2500012576843416616389098619255838074913/2500000000000000000000000000000000000000" + }, + "491": { + "weight": "80524/16206973", + "log_lower": "14908860812755760575863067721/200000000000000000000000000000", + "log_upper": "37272152031889401439657669303/500000000000000000000000000000", + "exp_lower": "10000047695805682958561919747446881441149/10000000000000000000000000000000000000000", + "exp_upper": "10000047695805682958561919747446882080983/10000000000000000000000000000000000000000" + }, + "493": { + "weight": "1972/16206973", + "log_lower": "14095851563121854836139802677/200000000000000000000000000000", + "log_upper": "35239628907804637090349506693/500000000000000000000000000000", + "exp_lower": "10000045094854536635637753320810020319089/10000000000000000000000000000000000000000", + "exp_upper": "10000045094854536635637753320810020958923/10000000000000000000000000000000000000000" + }, + "495": { + "weight": "45045/16206973", + "log_lower": "8303833661201135020039034823/125000000000000000000000000000", + "log_upper": "13286133857921816032062455717/200000000000000000000000000000", + "exp_lower": "10000042504434258111036599019287835427691/10000000000000000000000000000000000000000", + "exp_upper": "2500010626108564527759149754821959016881/2500000000000000000000000000000000000000" + }, + "497": { + "weight": "2485/16206973", + "log_lower": "3899900360104415948668649229/62500000000000000000000000000", + "log_upper": "12479681152334131035739677533/200000000000000000000000000000", + "exp_lower": "1000003992445991797897422427187150206959/1000000000000000000000000000000000000000", + "exp_upper": "625002495278744873685889016991968919339/625000000000000000000000000000000000000" + }, + "499": { + "weight": "159181/16206973", + "log_lower": "11676467221356143265682905127/200000000000000000000000000000", + "log_upper": "14595584026695179082103631409/250000000000000000000000000000", + "exp_lower": "1000003735484761010674576044009794717937/1000000000000000000000000000000000000000", + "exp_upper": "10000037354847610106745760440097947819203/10000000000000000000000000000000000000000" + }, + "501": { + "weight": "18036/16206973", + "log_lower": "54382330773434582958509649953/1000000000000000000000000000000", + "log_upper": "27191165386717291479254824977/500000000000000000000000000000", + "exp_lower": "2500008698878608815496652583190701426991/2500000000000000000000000000000000000000", + "exp_upper": "10000034795514435261986610332762806347797/10000000000000000000000000000000000000000" + }, + "503": { + "weight": "58348/16206973", + "log_lower": "3149891359910010949671534249/62500000000000000000000000000", + "log_upper": "10079652351712035038948909597/200000000000000000000000000000", + "exp_lower": "2000006449275697013218056681183800154553/2000000000000000000000000000000000000000", + "exp_upper": "5000016123189242533045141702959500706299/5000000000000000000000000000000000000000" + }, + "505": { + "weight": "14140/16206973", + "log_lower": "46430002582939556128548063481/1000000000000000000000000000000", + "log_upper": "23215001291469778064274031741/500000000000000000000000000000", + "exp_lower": "5000014853679413133008681746391370254577/5000000000000000000000000000000000000000", + "exp_upper": "10000029707358826266017363492782741148987/10000000000000000000000000000000000000000" + }, + "507": { + "weight": "169845/16206973", + "log_lower": "42477428267116218111285543567/1000000000000000000000000000000", + "log_upper": "2654839266694763631955346473/62500000000000000000000000000", + "exp_lower": "10000027178375485316944682011852080473133/10000000000000000000000000000000000000000", + "exp_upper": "5000013589187742658472341005926040556483/5000000000000000000000000000000000000000" + }, + "509": { + "weight": "48864/16206973", + "log_lower": "963510382694415969466045189/25000000000000000000000000000", + "log_upper": "38540415307776638778641807561/1000000000000000000000000000000", + "exp_lower": "5000012329674716634205935036344720009297/5000000000000000000000000000000000000000", + "exp_upper": "10000024659349433268411870072689440658427/10000000000000000000000000000000000000000" + }, + "511": { + "weight": "46501/16206973", + "log_lower": "17309420827297473708022031369/500000000000000000000000000000", + "log_upper": "34618841654594947416044062739/1000000000000000000000000000000", + "exp_lower": "5000011075101285473412017299915896091379/5000000000000000000000000000000000000000", + "exp_upper": "1000002215020257094682403459983179282259/1000000000000000000000000000000000000000" + }, + "513": { + "weight": "15390/16206973", + "log_lower": "7678146671882461854685630241/250000000000000000000000000000", + "log_upper": "6142517337505969483748504193/200000000000000000000000000000", + "exp_lower": "2500004912714428606841144014454986479363/2500000000000000000000000000000000000000", + "exp_upper": "2000003930171542885472915211563989311457/2000000000000000000000000000000000000000" + }, + "515": { + "weight": "230205/16206973", + "log_lower": "1341076559728161812207200767/50000000000000000000000000000", + "log_upper": "26821531194563236244144015341/1000000000000000000000000000000", + "exp_lower": "40000068644954323154245436738621630381/40000000000000000000000000000000000000", + "exp_upper": "10000017161238580788561359184655408235083/10000000000000000000000000000000000000000" + }, + "517": { + "weight": "91509/16206973", + "log_lower": "22945557349870250730611415883/1000000000000000000000000000000", + "log_upper": "5736389337467562682652853971/250000000000000000000000000000", + "exp_lower": "10000014681269774142932775376801892790473/10000000000000000000000000000000000000000", + "exp_upper": "2000002936253954828586555075360378686061/2000000000000000000000000000000000000000" + }, + "519": { + "weight": "418314/16206973", + "log_lower": "1192784293275671455297502391/62500000000000000000000000000", + "log_upper": "19084548692410743284760038257/1000000000000000000000000000000", + "exp_lower": "2000002442175354387463579975687633293623/2000000000000000000000000000000000000000", + "exp_upper": "10000012210876771937317899878438167107947/10000000000000000000000000000000000000000" + }, + "521": { + "weight": "2016791/16206973", + "log_lower": "7619195052466231762304978551/500000000000000000000000000000", + "log_upper": "15238390104932463524609957103/1000000000000000000000000000000", + "exp_lower": "500000487499295575833357236615703112389/500000000000000000000000000000000000000", + "exp_upper": "2500002437496477879166786183078515721903/2500000000000000000000000000000000000000" + }, + "523": { + "weight": "683561/16206973", + "log_lower": "11406967793376480803362486707/1000000000000000000000000000000", + "log_upper": "2851741948344120200840621677/250000000000000000000000000000", + "exp_lower": "200000145970487538904734561199859787879/200000000000000000000000000000000000000", + "exp_upper": "5000003649262188472618364029996495016891/5000000000000000000000000000000000000000" + }, + "525": { + "weight": "837900/16206973", + "log_lower": "3795084633337817955694508401/500000000000000000000000000000", + "log_upper": "7590169266675635911389016803/1000000000000000000000000000000", + "exp_lower": "10000004856420186079292102971003602299417/10000000000000000000000000000000000000000", + "exp_upper": "10000004856420186079292102971003602939249/10000000000000000000000000000000000000000" + }, + "527": { + "weight": "927520/16206973", + "log_lower": "946970829234263858701680301/250000000000000000000000000000", + "log_upper": "757576663387411086961344241/200000000000000000000000000000", + "exp_lower": "625000151475136117848899354670582025333/625000000000000000000000000000000000000", + "exp_upper": "10000002423602177885582389674729313045159/10000000000000000000000000000000000000000" + } + } + }, + "rejected_lower": "324139460000000000110498335337353111003912373023/324139460000000000000000000000000000000000000000", + "independent": [ + "162069729999999999995928499207640670214307053837/162069730000000000000000000000000000000000000000", + "10129358124999999999745531200477541888396216689/10129358125000000000000000000000000000000000000" + ] + }, + "complex": { + "saving": "73861113860817/1000000000000000000", + "moment": { + "saving": "73861113860817/1000000000000000000", + "lower": "73774079999999999988126396711902563649020957253/73774080000000000000000000000000000000000000000", + "upper": "59019263999999999990501117369522055278996734169/59019264000000000000000000000000000000000000000", + "strict_gap": "9498882630477944721003265831/59019264000000000000000000000000000000000000000", + "degree": 8, + "rounding_denominator": 10000000000000000000000000000000000000000, + "terms": { + "1": { + "weight": "45655/29509632", + "log_lower": "3178053830347945619646941601297/500000000000000000000000000000", + "log_upper": "1271221532139178247858776640519/200000000000000000000000000000", + "exp_lower": "1000469579409546515114026718835254611767/1000000000000000000000000000000000000000", + "exp_upper": "10004695794095465151140267188352546887159/10000000000000000000000000000000000000000" + }, + "2": { + "weight": "13241/7377408", + "log_lower": "1132592096027189185975330216227/200000000000000000000000000000", + "log_upper": "353935030008496620617290692571/62500000000000000000000000000", + "exp_lower": "5002091800284905401841450366759692527543/5000000000000000000000000000000000000000", + "exp_upper": "5002091800284905401841450366759692902403/5000000000000000000000000000000000000000" + }, + "3": { + "weight": "781/614784", + "log_lower": "5257495372027781547898637965671/1000000000000000000000000000000", + "log_upper": "657186921503472693487329745709/125000000000000000000000000000", + "exp_lower": "5001941999360007087694221125675585359813/5000000000000000000000000000000000000000", + "exp_upper": "5001941999360007087694221125675585732029/5000000000000000000000000000000000000000" + }, + "4": { + "weight": "13211/7377408", + "log_lower": "4969813299576000620459418959677/1000000000000000000000000000000", + "log_upper": "2484906649788000310229709479839/500000000000000000000000000000", + "exp_lower": "5001835716633031980302756445064039979983/5000000000000000000000000000000000000000", + "exp_upper": "1250458929158257995075689111266010087773/1250000000000000000000000000000000000000" + }, + "5": { + "weight": "425/307392", + "log_lower": "4746669748261790864693123869367/1000000000000000000000000000000", + "log_upper": "593333718532723858086640483671/125000000000000000000000000000", + "exp_lower": "1250438319725132186056114034608299472989/1250000000000000000000000000000000000000", + "exp_upper": "2500876639450264372112228069216599131247/2500000000000000000000000000000000000000" + }, + "6": { + "weight": "6821/4918272", + "log_lower": "4564348191467836238481405844213/1000000000000000000000000000000", + "log_upper": "2282174095733918119240702922107/500000000000000000000000000000", + "exp_lower": "5001685923377238799290324012417882644717/5000000000000000000000000000000000000000", + "exp_upper": "2000674369350895519716129604967153205969/2000000000000000000000000000000000000000" + }, + "7": { + "weight": "133/153696", + "log_lower": "88203950232811558683770609183/20000000000000000000000000000", + "log_upper": "4410197511640577934188530459151/1000000000000000000000000000000", + "exp_lower": "156300905493792987329030115275286729961/156250000000000000000000000000000000000", + "exp_upper": "2000651590320550237811585475523670291499/2000000000000000000000000000000000000000" + }, + "8": { + "weight": "1663/1229568", + "log_lower": "4276666119016055311042186838219/1000000000000000000000000000000", + "log_upper": "213833305950802765552109341911/50000000000000000000000000000", + "exp_lower": "10003159292182882183164291272695354524933/10000000000000000000000000000000000000000", + "exp_upper": "10003159292182882183164291272695355264641/10000000000000000000000000000000000000000" + }, + "9": { + "weight": "3/6404", + "log_lower": "4158883083359671856503392728749/1000000000000000000000000000000", + "log_upper": "3327106466687737485202714183/800000000000000000000000000", + "exp_lower": "625192016825925315670035474893381859063/625000000000000000000000000000000000000", + "exp_upper": "5001536134607402525360283799147055242259/5000000000000000000000000000000000000000" + }, + "10": { + "weight": "545/461088", + "log_lower": "4053522567701845555275891747909/1000000000000000000000000000000", + "log_upper": "405352256770184555527589174791/100000000000000000000000000000", + "exp_lower": "5001497212579363316386137294771178098743/5000000000000000000000000000000000000000", + "exp_upper": "2500748606289681658193068647385589234213/2500000000000000000000000000000000000000" + }, + "11": { + "weight": "143/307392", + "log_lower": "989553096974380173807984906157/250000000000000000000000000000", + "log_upper": "3958212387897520695231939624629/1000000000000000000000000000000", + "exp_lower": "10002924007166259209102003393679969520803/10000000000000000000000000000000000000000", + "exp_upper": "10002924007166259209102003393679970260061/10000000000000000000000000000000000000000" + }, + "12": { + "weight": "3395/2459136", + "log_lower": "774240202181578185812834744551/200000000000000000000000000000", + "log_upper": "967800252726972732266043430689/250000000000000000000000000000", + "exp_lower": "10002859721008720842944301283510226019913/10000000000000000000000000000000000000000", + "exp_upper": "625178732563045052684018830219389172443/625000000000000000000000000000000000000" + }, + "13": { + "weight": "13/25616", + "log_lower": "947789575808588625810098940257/250000000000000000000000000000", + "log_upper": "3791158303234354503240395761029/1000000000000000000000000000000", + "exp_lower": "500140029192064230368425047353549717881/500000000000000000000000000000000000000", + "exp_upper": "10002800583841284607368500947070995096731/10000000000000000000000000000000000000000" + }, + "14": { + "weight": "357/204928", + "log_lower": "929262582770158156192824584423/250000000000000000000000000000", + "log_upper": "3717050331080632624771298337693/1000000000000000000000000000000", + "exp_lower": "312585807240246634237968094389552814023/312500000000000000000000000000000000000", + "exp_upper": "2500686457921973073903744755116422696949/2500000000000000000000000000000000000000" + }, + "15": { + "weight": "2995/4918272", + "log_lower": "729611491918736234659575726489/200000000000000000000000000000", + "log_upper": "1824028729796840586648939316223/500000000000000000000000000000", + "exp_lower": "10002694858921946230328648913194470839541/10000000000000000000000000000000000000000", + "exp_upper": "10002694858921946230328648913194471578559/10000000000000000000000000000000000000000" + }, + "16": { + "weight": "3215/1844352", + "log_lower": "3583518938456110001624954716761/1000000000000000000000000000000", + "log_upper": "1791759469228055000812477358381/500000000000000000000000000000", + "exp_lower": "5001323588659461550670997115029129017929/5000000000000000000000000000000000000000", + "exp_upper": "5001323588659461550670997115029129387421/5000000000000000000000000000000000000000" + }, + "17": { + "weight": "42823/29509632", + "log_lower": "44036178957995939488054357309/12500000000000000000000000000", + "log_upper": "3522894316639675159044348584721/1000000000000000000000000000000", + "exp_lower": "5001301193772359689029663666781021739517/5000000000000000000000000000000000000000", + "exp_upper": "10002602387544719378059327333562044217989/10000000000000000000000000000000000000000" + }, + "18": { + "weight": "2061/409856", + "log_lower": "346573590279972654708616060729/100000000000000000000000000000", + "log_upper": "3465735902799726547086160607291/1000000000000000000000000000000", + "exp_lower": "625160009925375874809965168250698870797/625000000000000000000000000000000000000", + "exp_upper": "10002560158806013996959442692011182671683/10000000000000000000000000000000000000000" + }, + "19": { + "weight": "665/307392", + "log_lower": "1705834340764725389642427885353/500000000000000000000000000000", + "log_upper": "3411668681529450779284855770707/1000000000000000000000000000000", + "exp_lower": "10002520214010004244488179704191378862181/10000000000000000000000000000000000000000", + "exp_upper": "2500630053502501061122044926047844900273/2500000000000000000000000000000000000000" + }, + "20": { + "weight": "14065/3688704", + "log_lower": "3360375387141900245858659626451/1000000000000000000000000000000", + "log_upper": "840093846785475061464664906613/250000000000000000000000000000", + "exp_lower": "2000496463747037268143107258067230377017/2000000000000000000000000000000000000000", + "exp_upper": "10002482318735186340715536290336152623979/10000000000000000000000000000000000000000" + }, + "22": { + "weight": "119669/14754816", + "log_lower": "326506520733757538581470750317/100000000000000000000000000000", + "log_upper": "3265065207337575385814707503171/1000000000000000000000000000000", + "exp_lower": "10002411904347790033018354421730583519147/10000000000000000000000000000000000000000", + "exp_upper": "10002411904347790033018354421730584258013/10000000000000000000000000000000000000000" + }, + "23": { + "weight": "31211/9836544", + "log_lower": "3220613444766741548487130370783/1000000000000000000000000000000", + "log_upper": "100644170148960673390222824087/31250000000000000000000000000", + "exp_lower": "2500594765978958790407937288603574282901/2500000000000000000000000000000000000000", + "exp_upper": "10002379063915835161631749154414297870459/10000000000000000000000000000000000000000" + }, + "24": { + "weight": "1/1229568", + "log_lower": "3178053830347945619646941601297/1000000000000000000000000000000", + "log_upper": "1589026915173972809823470800649/500000000000000000000000000000", + "exp_lower": "10002347621481401578662995980050743568051/10000000000000000000000000000000000000000", + "exp_upper": "625146726342587598666437248753171519181/625000000000000000000000000000000000000" + }, + "529": { + "weight": "133837/3688704", + "log_lower": "85119228837591857680377538973/1000000000000000000000000000000", + "log_upper": "42559614418795928840188769487/500000000000000000000000000000", + "exp_lower": "5000031435104080754234445797365787294647/5000000000000000000000000000000000000000", + "exp_upper": "10000062870208161508468891594731575327911/10000000000000000000000000000000000000000" + }, + "552": { + "weight": "141473/153696", + "log_lower": "21279807209397964420094384743/500000000000000000000000000000", + "log_upper": "42559614418795928840188769487/1000000000000000000000000000000", + "exp_lower": "1250003929381834077640113981125547255157/1250000000000000000000000000000000000000", + "exp_upper": "10000031435054672621120911849004378779871/10000000000000000000000000000000000000000" + } + } + }, + "rejected_lower": "32788480000000000001628525426084135433614750929/32788480000000000000000000000000000000000000000", + "independent": [ + "5901926399999999999050111736952205461114916909/5901926400000000000000000000000000000000000000", + "73774079999999999988126396711902568263951215949/73774080000000000000000000000000000000000000000" + ] + }, + "same_interface": { + "kappa": "15993706658873/250000000000000000", + "assembly": { + "parameters": { + "a_bit": "15995753310011/250000000000000000", + "a_complex": "36926111/500000000000", + "tau": "249984004246689989/250000000000000000", + "sigma": "499963073889/500000000000", + "eta": "1/1000000000000", + "beta": "1/10", + "q": "7997876654989504246689989/125000000000000000000000000000", + "c": "7997876654997502123344978504246689989/125000000000000000000000000000000000000000", + "epsilon": "124999999999875000000000000000000000000000/125015995753309987006370034967504246689989", + "lambda_": "249984004246690004995753310011/250000000000000000000000000000", + "lambda_prime": "124992002123345010495753310011/125000000000000000000000000000", + "alpha_squared_power": "11996815044984256370034983500000000000/125015995753309987006370034967504246689989", + "delta": "1/8000000000000", + "C0": 2090135102911687858875668254443756303224353080986127099065008128, + "C1": 1, + "kappa": "15993706658873/250000000000000000" + }, + "strict_constraints": { + "bit_positive": "15995753310011/250000000000000000", + "complex_above_bit": "2467302189989/250000000000000000", + "complex_below_one_over32": "15588073889/500000000000", + "beta_positive": "1/10", + "beta_below_one": "9/10", + "leaf_saving_above_bit": "620996639989/250000000000000000", + "q_positive": "7997876654989504246689989/125000000000000000000000000000", + "q_below_internal": "15995753310011/125000000000000000000000000000", + "q_below_leaf": "310498320010495753310011/125000000000000000000000000000", + "c_positive": "7997876654997502123344978504246689989/125000000000000000000000000000000000000000", + "c_below_one": "124992002123345002497876655021495753310011/125000000000000000000000000000000000000000", + "q_below_reservations": "7997876654989504246689989/125000000000000000000000000000000000000000", + "lambda_above_tau": "15995753310011/250000000000000000000000000000", + "lambda_above_sigma": "2467302190004995753310011/250000000000000000000000000000", + "lambda_above_internal": "15995753310011/250000000000000000000000000000", + "lambda_prime_above_lambda": "15995753310011/250000000000000000000000000000", + "compact_leaf": "310498320010495753310011/125000000000000000000000000000", + "compact_reservations": "7997876654989504246689989/125000000000000000000000000000000000000000", + "lambda_prime_below_one": "7997876654989504246689989/125000000000000000000000000000", + "epsilon_positive": "124999999999875000000000000000000000000000/125015995753309987006370034967504246689989", + "epsilon_below_one": "15995753434987006370034967504246689989/125015995753309987006370034967504246689989", + "guard_width": "15995753434987006370034967504246689989/125015995753309987006370034967504246689989", + "K_geometry": "7997876779997502123344986502123344978504246689989/125015995753309987006370034967504246689989000000000000", + "K_dominates_log": "7997876654989504246689981002123345010495753310011/125015995753309987006370034967504246689989000000000000", + "record_suffix": "15995753434987006370034967504246689989/125015995753309987006370034967504246689989", + "phase_local": "127966027354880055206969753027603484944495753310011/1000127966026479896050960279740033973519912000000000000", + "phase_boundary": "95974520234858055206969880993629965032495753310011/1000127966026479896050960279740033973519912000000000000", + "gamma_sublinear": "3998938390002749999999984004246689989/125015995753309987006370034967504246689989", + "cell_above_band": "124996001061484997250000000015995753310011/250031991506619974012740069935008493379978", + "prime_interval_packing": "15995753434987006370034967504246689989/125015995753309987006370034967504246689989", + "alpha_positive": "11996815044984256370034983500000000000/125015995753309987006370034967504246689989", + "alpha_below_one": "125003998938265002749999999984004246689989/125015995753309987006370034967504246689989", + "alpha_below_one_fourth": "124968008493130049980889895033504246689989/500063983013239948025480139870016986759956", + "delta_positive": "1/8000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "short_record_fallback": "31248000274940874670655933513112226658133184909362672820121/31253998938327496751592508741876061672497250000000000000000", + "small_field_exposure": "7997876780005499999999968008493379978/125015995753309987006370034967504246689989", + "artificial_boundary": "7001055719719834174411928927805299391644240495753310011/1000127966026479896050960279740033973519912000000000000", + "literal_scalar_guard": "336613066185957958324613300156", + "row_product_gap": "23733/25", + "original_prefix_above_kappa": "31254022901821933090202809720170478933890127603/31253998938327496751592508741876061672497250000000000000000", + "coordinate_movement_above_kappa": "1023325569/125000000000000000", + "compact_phase_layer_above_kappa": "23963494436338610300978294417261392877603/31253998938327496751592508741876061672497250000000000000000", + "bulk_exposure_above_kappa": "1023325569/125000000000000000", + "Gaussian_arithmetic_above_kappa": "999734593593961596203495245722909882809909552330721353/31253998938327496751592508741876061672497250000000000000000", + "scalar_work_above_kappa": "1999469191094649096203491246784582380059909552330721353/31253998938327496751592508741876061672497250000000000000000", + "dimension_above_kappa": "31248000530805004647370985686464671973475544417261392877603/31253998938327496751592508741876061672497250000000000000000" + }, + "margins": { + "original_prefix": "7997876779997502123344986502123344978504246689989/125015995753309987006370034967504246689989000000000000", + "coordinate_movement": "15995753310011/250000000000000000", + "compact_phase_layer": "7997876654981506370034999495753310011/125015995753309987006370034967504246689989", + "bulk_exposure": "15995753310011/250000000000000000", + "Gaussian_arithmetic": "95974520234858055206969880993629965032495753310011/1000127966026479896050960279740033973519912000000000000", + "scalar_work": "127966027354880055206969753027603484944495753310011/1000127966026479896050960279740033973519912000000000000", + "dimension": "124999999999875000000000000000000000000000/125015995753309987006370034967504246689989" + }, + "minimum_margin": "7997876654981506370034999495753310011/125015995753309987006370034967504246689989", + "absorption_gap": "23963494436338610300978294417261392877603/31253998938327496751592508741876061672497250000000000000000", + "recurrence": { + "internal": "249984004246689989/250000000000000000", + "leaf": "4999667665001/5000000000000", + "reservations": "124992002123345002497876655021495753310011/125000000000000000000000000000000000000000" + } + } + }, + "balanced_interface": { + "kappa": "63978919675787/1000000000000000000", + "assembly": { + "parameters": { + "a_bit": "15995753310011/250000000000000000", + "a_complex": "36926111/500000000000", + "tau": "249984004246689989/250000000000000000", + "sigma": "499963073889/500000000000", + "beta": "1/10", + "h": "1/1000000000000", + "q": "7997876654989504246689989/125000000000000000000000000000", + "c": "7997876686239504246689989/125000000000000000000000000000", + "epsilon": "124999999999875000000000000000/125007997876654989504246689989", + "lambda_": "249984004246690004995753310011/250000000000000000000000000000", + "lambda_prime": "124992002123345010495753310011/125000000000000000000000000000", + "alpha_squared_power": "15995753434971010616724988495753310011/250015995753309979008493379978000000000000", + "delta": "1/8000000000000", + "C0": 2090135102911687858875668254443756303224353080986127099065008128, + "C1": "1", + "kappa": "63978919675787/1000000000000000000" + }, + "constraints": { + "a_positive": "15995753310011/250000000000000000", + "a_below_b": "2467302189989/250000000000000000", + "b_below_one_over32": "15588073889/500000000000", + "beta_positive": "1/10", + "beta_below_one": "9/10", + "phase_leaf_above_bit": "620996639989/250000000000000000", + "q_positive": "7997876654989504246689989/125000000000000000000000000000", + "q_below_internal": "15995753310011/125000000000000000000000000000", + "q_below_leaf": "310498320010495753310011/125000000000000000000000000000", + "c_positive": "7997876686239504246689989/125000000000000000000000000000", + "c_below_one": "124992002123313760495753310011/125000000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "lambda_above_tau": "15995753310011/250000000000000000000000000000", + "lambda_above_sigma": "2467302190004995753310011/250000000000000000000000000000", + "lambda_above_internal": "15995753310011/250000000000000000000000000000", + "lambda_prime_above_lambda": "15995753310011/250000000000000000000000000000", + "compact_leaf": "310498320010495753310011/125000000000000000000000000000", + "compact_reservations": "1/4000000000000", + "lambda_prime_below_one": "7997876654989504246689989/125000000000000000000000000000", + "epsilon_positive": "124999999999875000000000000000/125007997876654989504246689989", + "epsilon_below_one": "7997876779989504246689989/125007997876654989504246689989", + "guard_width": "7997876779989504246689989/125007997876654989504246689989", + "K_geometry": "93757997876686239504246689989/125007997876654989504246689989000000000000", + "K_dominates_log": "7997876686231506370003749495753310011/125007997876654989504246689989000000000000", + "record_suffix": "7997876779989504246689989/125007997876654989504246689989", + "phase_local": "63983014114908036096864922495753310011/1000063983013239916033973519912000000000000", + "phase_boundary": "12796602722975208918048992895753310011/200012796602647983206794703982400000000000", + "gamma_sublinear": "1/2000000000000", + "cell_above_band": "249999999999624992002123345010495753310011/500031991506619958016986759956000000000000", + "prime_interval_packing": "7997876779989504246689989/125007997876654989504246689989", + "alpha_positive": "15995753434971010616724988495753310011/250015995753309979008493379978000000000000", + "alpha_below_one": "249999999999875007997876654989504246689989/250015995753309979008493379978000000000000", + "alpha_below_one_fourth": "62488003184892523741506620006004246689989/250015995753309979008493379978000000000000", + "delta_positive": "1/8000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "short_record_fallback": "31248000402872936647891932787544667362672820121/31251999469163747376061672497250000000000000000", + "small_field_exposure": "1/1000000000000", + "artificial_boundary": "7000511864107294352265418124264512740069967/1000063983013239916033973519912000000000000", + "literal_scalar_guard": "336613066185957958324613300156", + "row_product_gap": "23733/25", + "g1_above_kappa": "125008042821180894473069300221403657/125007997876654989504246689989000000000000000000", + "g2_above_kappa": "4093564257/1000000000000000000", + "g3_above_kappa": "44944525904968822610232403657/125007997876654989504246689989000000000000000000", + "g4_above_kappa": "4093564257/1000000000000000000", + "g5_above_kappa": "46878044148271526032915118978278657/125007997876654989504246689989000000000000000000", + "g6_above_kappa": "109382043086599020785038463972778657/125007997876654989504246689989000000000000000000", + "g7_above_kappa": "124992002123220018538574490905473069300221403657/125007997876654989504246689989000000000000000000" + }, + "margins": { + "g1": "7997876779989504246689989/125007997876654989504246689989", + "g2": "15995753310011/250000000000000000", + "g3": "7997876654981506370034999495753310011/125007997876654989504246689989000000000000", + "g4": "15995753310011/250000000000000000", + "g5": "12796602722975208918048992895753310011/200012796602647983206794703982400000000000", + "g6": "63983014114908036096864922495753310011/1000063983013239916033973519912000000000000", + "g7": "124999999999875000000000000000/125007997876654989504246689989" + }, + "minimum_margin": "7997876654981506370034999495753310011/125007997876654989504246689989000000000000", + "absorption_gap": "44944525904968822610232403657/125007997876654989504246689989000000000000000000", + "scoped_limit": "15995753310011/250015995753310011", + "recurrence": { + "internal": "249984004246689989/250000000000000000", + "leaf": "4999667665001/5000000000000", + "reservations": "124992002123313760495753310011/125000000000000000000000000000" + }, + "finite_bridge": { + "bit": { + "m": 529, + "W": 108516254, + "maxchild": 527, + "halving_degree": 183, + "wire_bits": 27 + }, + "complex": { + "m": 576, + "W": 207387136, + "maxchild": 552, + "halving_degree": 17, + "wire_bits": 28, + "s": 119453132304, + "scalar_group_upper": 1531908928 + }, + "semantic": { + "E": 336744839227731659319724974144, + "B": 336744839227731659439178106448, + "C0": 2090135102911687858875668254443756303224353080986127099065008128, + "C1": 1, + "literal_charge": 131773041773700995111673988, + "strict_literal_gap": 336613066185957958324613300156, + "induction_gap": 15827007443703387993641371003056 + }, + "rows": { + "coefficient": 5417, + "degree": 12000, + "degree_gap": "23733/25", + "suffix_slope": 48000 + } + } + }, + "bridge": { + "bit": { + "m": 529, + "W": 108516254, + "maxchild": 527, + "halving_degree": 183, + "wire_bits": 27 + }, + "complex": { + "m": 576, + "W": 207387136, + "s": 119453132304, + "maxchild": 552, + "halving_degree": 17, + "wire_bits": 28, + "scalar_group_upper": 1531908928 + }, + "semantic": { + "E": 336744839227731659319724974144, + "literal_charge": 131773041773700995111673988, + "strict_literal_gap": 336613066185957958324613300156, + "B": 336744839227731659439178106448, + "C0": 2090135102911687858875668254443756303224353080986127099065008128, + "C1": 1, + "induction_gap": 15827007443703387993641371003056 + }, + "rows": { + "coefficient": 5417, + "degree": 12000, + "degree_gap": "23733/25", + "suffix_slope": 48000 + } + }, + "eventual_bounds": { + "cutoff_log2_input": { + "guard": 3313592, + "normalization": 14000000000000, + "alpha": 3909250577, + "compact": 15637002305, + "geometry": 3999914696592, + "phase_cell": 19, + "period": 31274004609, + "stopped_leaf": 132, + "log_p": 25, + "reservoir": 14 + }, + "common_cutoff": 14000000000000, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 895656068, + "rhs": 112000000125112, + "rhs_bits": 47 + }, + "compact": { + "exponent": 895656068, + "rhs": 448000000500384, + "rhs_bits": 49 + }, + "period": { + "exponent": 895656068, + "rhs": 224000000250152, + "rhs_bits": 48 + }, + "rows": { + "exponent": 895656068, + "rhs": 672000000750672000, + "rhs_bits": 60 + }, + "leaf": { + "exponent": 1272727272727, + "rhs": 2304, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1791312136, + "rhs": 224000000125112, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1791312136, + "rhs": 896000000500384, + "rhs_bits": 50 + }, + "period": { + "exponent": 1791312136, + "rhs": 448000000250152, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1791312136, + "rhs": 1344000000750672000, + "rhs_bits": 61 + }, + "leaf": { + "exponent": 2545454545454, + "rhs": 2304, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 3582624272, + "rhs": 448000000125112, + "rhs_bits": 49 + }, + "compact": { + "exponent": 3582624272, + "rhs": 1792000000500384, + "rhs_bits": 51 + }, + "period": { + "exponent": 3582624272, + "rhs": 896000000250152, + "rhs_bits": 50 + }, + "rows": { + "exponent": 3582624272, + "rhs": 2688000000750672000, + "rhs_bits": 62 + }, + "leaf": { + "exponent": 5090909090909, + "rhs": 2304, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 7165248544, + "rhs": 896000000125112, + "rhs_bits": 50 + }, + "compact": { + "exponent": 7165248544, + "rhs": 3584000000500384, + "rhs_bits": 52 + }, + "period": { + "exponent": 7165248544, + "rhs": 1792000000250152, + "rhs_bits": 51 + }, + "rows": { + "exponent": 7165248544, + "rhs": 5376000000750672000, + "rhs_bits": 63 + }, + "leaf": { + "exponent": 10181818181818, + "rhs": 2304, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 14330497089, + "rhs": 1792000000125112, + "rhs_bits": 51 + }, + "compact": { + "exponent": 14330497089, + "rhs": 7168000000500384, + "rhs_bits": 53 + }, + "period": { + "exponent": 14330497089, + "rhs": 3584000000250152, + "rhs_bits": 52 + }, + "rows": { + "exponent": 14330497089, + "rhs": 10752000000750672000, + "rhs_bits": 64 + }, + "leaf": { + "exponent": 20363636363636, + "rhs": 2304, + "rhs_bits": 12 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 28660994178, + "rhs": 3584000000125112, + "rhs_bits": 52 + }, + "compact": { + "exponent": 28660994178, + "rhs": 14336000000500384, + "rhs_bits": 54 + }, + "period": { + "exponent": 28660994178, + "rhs": 7168000000250152, + "rhs_bits": 53 + }, + "rows": { + "exponent": 28660994178, + "rhs": 21504000000750672000, + "rhs_bits": 65 + }, + "leaf": { + "exponent": 40727272727272, + "rhs": 2304, + "rhs_bits": 12 + } + } + } + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "practical_runtime_claim": false + } + }, + "balanced_gain_percent": "13106675787/639658130000" +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/focused-validation.json b/references/signed-recursion/pr100/research/deferred-balanced/focused-validation.json new file mode 100644 index 0000000000..d94b3e55dd --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/focused-validation.json @@ -0,0 +1,47 @@ +{ + "scope": "Focused physical integration and exact arithmetic; full make verify pending", + "success": { + "state": "passed", + "pid": 93734, + "started_at": "2026-10-08T22:56:08.510201+00:00", + "scope": "Full PR97 own physical ledgers plus refined arithmetic and controls", + "returncode": 0, + "stages": [ + { + "args": [ + "research/deferred-balanced/verify.py", + "--replay-own" + ], + "returncode": 0 + }, + { + "args": [ + "research/deferred-balanced/test_controls.py" + ], + "returncode": 0 + } + ], + "elapsed_seconds": 29.630554914474487, + "completed_at": "2026-10-08T22:56:38.140768+00:00", + "log_sha256": "bb13b4e13e8598ff6e22c5b4cdb5819c0ea77e687bb9eeaa5bcd82b57f98dc7e" + }, + "setup_failure": { + "state": "failed", + "pid": 93563, + "started_at": "2026-10-08T22:55:37.989633+00:00", + "scope": "Full PR97 own physical ledgers plus refined arithmetic and controls", + "returncode": 1, + "stages": [ + { + "args": [ + "research/deferred-balanced/verify.py", + "--replay-own" + ], + "returncode": 1 + } + ], + "elapsed_seconds": 8.426129817962646, + "completed_at": "2026-10-08T22:55:46.415776+00:00", + "log_sha256": "244fb82de9ef315f0f079afea1121fd3f164551ad327616703f3d0a031ec966a" + } +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/log-recovery.json b/references/signed-recursion/pr100/research/deferred-balanced/log-recovery.json new file mode 100644 index 0000000000..59a2433f4d --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/log-recovery.json @@ -0,0 +1,71 @@ +{ + "status": "passed", + "upstream_commit": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "stages": [ + { + "state": "passed", + "name": "frames", + "pid": 92574, + "args": [ + "independent/deferred-readout/check_frames.py", + "23" + ], + "started_at": "2026-10-08T22:49:14.001870+00:00", + "source_sha256": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "returncode": 0, + "negative_control_seen": true, + "elapsed_seconds": 194.12285780906677, + "log_sha256": "84e3ee79790324e85aec86ccd757ded05e8a73f62e72e322df4bb6ffffeade9c", + "completed_at": "2026-10-08T22:52:28.116722+00:00" + }, + { + "state": "passed", + "name": "lifted", + "pid": 92575, + "args": [ + "independent/deferred-readout/check_lifted.py", + "23" + ], + "started_at": "2026-10-08T22:49:13.999304+00:00", + "source_sha256": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "returncode": 0, + "negative_control_seen": true, + "elapsed_seconds": 269.4332263469696, + "log_sha256": "139ca8c580d4da85c8593645ecff4659124fc5924b33c9d0919df9e8b78f2c14", + "completed_at": "2026-10-08T22:53:43.427163+00:00" + }, + { + "state": "passed", + "name": "stair", + "pid": 92576, + "args": [ + "independent/deferred-readout/check_stair.py", + "23" + ], + "started_at": "2026-10-08T22:49:14.001622+00:00", + "source_sha256": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "returncode": 0, + "negative_control_seen": true, + "elapsed_seconds": 1.4779088497161865, + "log_sha256": "8a7cad5cb0ff905203c46da45642224d178cfd8c9d7d97a1502f1195705f0231", + "completed_at": "2026-10-08T22:49:15.471257+00:00" + }, + { + "state": "passed", + "name": "stair_control", + "pid": 92577, + "args": [ + "independent/deferred-readout/check_stair.py", + "23", + "--control" + ], + "started_at": "2026-10-08T22:49:14.001929+00:00", + "source_sha256": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "returncode": 0, + "negative_control_seen": true, + "elapsed_seconds": 1.217188835144043, + "log_sha256": "82bf3dda4e3f5ec4e3ca796a5544364e2864a28a877642773132e902da4755d6", + "completed_at": "2026-10-08T22:49:15.210581+00:00" + } + ] +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/missing-log-attempt.json b/references/signed-recursion/pr100/research/deferred-balanced/missing-log-attempt.json new file mode 100644 index 0000000000..d32c56bc28 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/missing-log-attempt.json @@ -0,0 +1,11 @@ +{ + "state": "failed", + "pid": 92244, + "started_at": "2026-10-08T22:47:15.683765+00:00", + "tested_upstream": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "scope": "Independent PR97 interface replay and original arithmetic", + "returncode": 1, + "elapsed_seconds": 0.0770869255065918, + "completed_at": "2026-10-08T22:47:15.760858+00:00", + "log_sha256": "8317828daa4e7d8a115f78191649f0d3b359ff95e15f6a9b41b127c95b2113a3" +} \ No newline at end of file diff --git a/references/signed-recursion/pr100/research/deferred-balanced/moments.py b/references/signed-recursion/pr100/research/deferred-balanced/moments.py new file mode 100644 index 0000000000..bcecd3c5d2 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/moments.py @@ -0,0 +1,91 @@ +"""Exact and independent moment functions extracted without body changes from PR65. +Source snapshots and hashes are retained in arithmetic-sources/. +Credits: Rohan Arun, Dominik Scholz, icekylinx, Zhihao Chen, RaD and prior authors. +""" +import sys +if sys.flags.optimize:raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from fractions import Fraction as Q +from math import factorial +from pathlib import Path +sys.path.insert(0,str(Path(__file__).resolve().parent/'arithmetic-sources')) +import binary_frame_math as arithmetic +refine=sys.modules[__name__] + +def floor_scaled(x, denominator): + return (x * denominator).numerator // (x * denominator).denominator + +def ceiling_scaled(x, denominator): + return -floor_scaled(-x, denominator) + +def exact_moment(m, width, rows, saving, degree=8, rounding=10**40): + """Bound sum n*t/(mW)*exp(saving*log(m/t)) entirely in Q. + + At 0 <= u <= v < 1, S_d(u) is a lower bound for exp(u). + The tail at v has first term v^(d+1)/(d+1)!; successive ratios + are at most v/(d+2). Thus S_d(v)+first/(1-v/(d+2)) is upper. + Directed rounding per exp bound preserves both inequalities. + The inherited logarithm helper encloses log(m/t) rationally. + """ + assert type(saving) is Q and 0 < saving < 1 and degree >= 1 + lo, hi = Q(), Q() + terms = {} + for t, count in sorted(rows.items()): + assert type(t) is int and type(count) is int and 0 < t < m and count > 0 + loglo, loghi = arithmetic.logs(Q(m, t)) + u, v = saving*loglo, saving*loghi + assert 0 <= u <= v < 1 + lower = sum((u**j / factorial(j) for j in range(degree+1)), Q()) + upper = sum((v**j / factorial(j) for j in range(degree+1)), Q()) + upper += v**(degree+1)/factorial(degree+1)/(1-v/Q(degree+2)) + lower = Q(floor_scaled(lower, rounding), rounding) + upper = Q(ceiling_scaled(upper, rounding), rounding) + weight = Q(t*count, m*width) + lo += weight*lower + hi += weight*upper + terms[t] = dict(weight=weight, log_lower=loglo, log_upper=loghi, + exp_lower=lower, exp_upper=upper) + return dict(saving=saving, lower=lo, upper=hi, strict_gap=1-hi, + degree=degree, rounding_denominator=rounding, terms=terms) + +def log_interval(x): + """Atanh expansion with independent 3/2 reduction and 60 exact terms.""" + assert x >= 1 + k = 0 + while x > Q(3, 2): + x /= Q(3, 2) + k += 1 + def small(y): + z = (y-1)/(y+1) + power, total = z, Q() + for j in range(60): + total += power/Q(2*j+1) + power *= z*z + return 2*total, 2*total+2*power/(121*(1-z*z)) + lo, hi = small(x) + blo, bhi = small(Q(3, 2)) + return lo+k*blo, hi+k*bhi + +def independent_moment(profile, saving, recorded_terms): + low, high = Q(), Q() + rows = {int(t): n for t, n in profile['child_multiplicities'].items()} + for t, n in sorted(rows.items()): + lo, hi = log_interval(Q(profile['m'], t)) + recorded = recorded_terms[str(t)] + assert Q(recorded['log_lower']) <= lo <= hi <= Q(recorded['log_upper']) + u, v = lo*saving, hi*saving + assert 0 < u <= v < Q(1, 1000) + # Directed rounding of input logs bounds rational denominator sizes. + u = Q(refine.floor_scaled(u, 10**40), 10**40) + v = Q(refine.ceiling_scaled(v, 10**40), 10**40) + tlo, thi = Q(1), Q(1) + elo, ehi = Q(1), Q(1) + for j in range(1, 13): + tlo, thi = tlo*u/j, thi*v/j + elo, ehi = elo+tlo, ehi+thi + # First omitted term is degree13; subsequent ratios <1/2. + ehi += 2*thi*v/13 + weight = Q(t*n, profile['m']*profile['W']) + low += weight*Q(refine.floor_scaled(elo, 10**40), 10**40) + high += weight*Q(refine.ceiling_scaled(ehi, 10**40), 10**40) + return low, high diff --git a/references/signed-recursion/pr100/research/deferred-balanced/pr97-source-manifest.json b/references/signed-recursion/pr100/research/deferred-balanced/pr97-source-manifest.json new file mode 100644 index 0000000000..3521d3c5cd --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/pr97-source-manifest.json @@ -0,0 +1,144 @@ +{ + "base_main": "56b66d58297deca1d7dd130247d720e960f77a37", + "foreign_head": "741e7aa078392553815df7926ee17ac5e25a8c38", + "files": { + ".github/workflows/verify.yml": "f167d3877ffd324cc920b0373101fca29a72def7684de1824a40c627acf204ba", + "Makefile": "d3da97587cfa850d826bbb450f13121ff46e4e87bc91681e669279557562494a", + "README.md": "5fe2101e1bd639a1739e4986c807f3a659b463a8a5873126e11727e8e63298a1", + "research/deferred-signed/PROOF.md": "cf5cced8cecace5f4308647523bc86a0869daeb1aa49c382bec03411674a1741", + "research/deferred-signed/README.md": "b1d761d02a5bb3413f705c9fac321a96e9b42f4bfd949c175131af97316b7463", + "research/deferred-signed/check_complex_identity.py": "8a31abe1d46ab3aa76b954cb87004e28d4974cce5eea2dea17d6283992902e7d", + "research/deferred-signed/round6-complex-interface-controls.json": "7f4375ff2baefd6455d5353968d4c1a38666cda7f417ebd21286f09e16131d22", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "db1d41515236c2710b4caeb22d91eea63cf1deeb0d659346d0661da71ed07baa", + "research/deferred-signed/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/round6_complex_literal_ledger.py": "a1384fb5283d9d11775942b91e31887fa05ddcd50c6a50fa3f11902b32f73c36", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "bcf0623dc4eab9fdb858f4375a5a183b72b150853e8da030005d8fcd0b83f2ae", + "research/deferred-signed/round7-literal-ledger/result.json": "65343d92f68d0d7756bb4c5adbdcb43171b00ce7fa7398e951245cf2ab119c0f", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "8383f9afa241ad495941b3d724286f0d94e4c4adee71d8ea744d88d813acec4c", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "0e3b13922295c0ece6e6354d7ba93529b3c51e70ece15a20d089f65f134e33b7", + "research/deferred-signed/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/swapnil-round7/.gitignore": "e4142bca62926744f1a60693914db92bb41be0b9ea4fbd4dd73e3af2178b0c8b", + "research/deferred-signed/swapnil-round7/IMPORT.json": "4b5f15981e846084b6def674ce0903c2d4ef0c930ea0c40093a2a8584164102d", + "research/deferred-signed/swapnil-round7/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-signed/swapnil-round7/Makefile": "42714be051b771e6ea414d3f7da4b9beb93990d5d6e1521dc665b3b2718a888a", + "research/deferred-signed/swapnil-round7/NOTICE": "058a663112e633ab5349ce33b6119bacca2b9fd6c0a89918c4c0435d6dd7a008", + "research/deferred-signed/swapnil-round7/README.md": "07409d6f8ca1becb0cf1f7bf7f485b879bfb53663c93becefc8f4e44de6f50b9", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "f102b238e86a650190e2c94232fbafd3f50d30693151019a7d7b5b4addf620fd", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "bbd2333d9049b8f42565e2b24d6faa5c69fcc4e67b873a7bef1f6e607e4979f4", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "9f712eb870cfad37af333acefce5162754f85087afc9647e2d86b30a70ba5c03", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "ca659ffa1dccdb05ebbcb95c8ca6342704bcc98656a57be9a05aa71faafe0bdb", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "648168584f12381f1756156aea22a3fff108b94de36c62652b75558b81c0a118", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "35cbcff404998f4e66c026e98c72f895bd8f8f2b90ba8d60b390af1d150b2cf7", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "2a76b1ce513c08d408a7524d825e922cc7a3939a772237d3a08f9683f2235289", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "cc56ddcff426818b0fb096a47f837fceb98b928d31c428f6dccaca53aff4b3c7", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "cb33411a0b9b552ec881b884498567997c10f9cb9d63cb7d5a864277ccebdfb0", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "3c1181d1e3b6a55d8092d39e37c7b0ef712d8ace0b76dc8f493578bef6006eae", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "f9ddc6c33dda1abdaf05d0fff651d02e9a04557ebbb1b8da11d4d6de8de08d91", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "76b35a0fdb1bf1926325bf33648dbae3e0de34699ce6dd1e95a23a09f762cd44", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "ffb5ac42a64969dae7d19012e5102d7aeb66c3eee529bde9812bd182cb9eafa1", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "b1e790d7a268716b62d19f1e6617b9f55f81bbfbd0c474a3a0801918b5ba6a7b", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "056ca643666dff4405eecfb6f0f8a33da3a50244c65d9bc2e28fa95ea32956e1", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "c4b0d8b9cdb7dceb881747826356fb6eedd5ad465c483ed7cda0ba2a8d2d90d4", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "dbfa0844ff605abfe386f30f3bf9859c3f1b040eae019e184668c82439d788d1", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "4edb0206c6f44081c1be434a529fce3527a46a35fee3e874a97898d60eabbe20", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "499e4f7ea700a917e7c3991b91ac99e1b0eb7eb51fb6d362b395d0056b64bdee", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "90703356b485a21bbcf2f4dca9c1cc7109767a16afd2a04ac113b2c6e1d569ce", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "f1a2ff1e6aa68e3052d77d664744d85ac76c31f7b779bd66be018ee82ea0aec7", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "ef9c47f92ef46aa7f701493aab95d65f930d4d31db214bc83b683cf7ddb7868b", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "688e609cc0adbfba17dd74984d382121ce6741afc7e2da548ee553ea15c4d3c9", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "c31a321e28556c9d9cb3397e48292e8ecefc0b08e233243d7849bd585213af65", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "8f9bb3c2e7037e5c601b740e195cc5207bf3eec906fdea9c6f4ee73a7ca98da0", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "a246d8d4b4d110125406648f9fb49725894c3652102049caf3555ab191fc0e7b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "6931781fc7097daf44327de262ef9df68d95f3ebab3b2a6c22422066c1e7ea1a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "a1c5fa749b41d483dafb66d7ba56d2e77a8735befbbcac8391b8e1d8ce1ee2d3", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "0c1da25c545e1e7cdd6eca5140579a6b6273789de39171487624c7ff6490dec6", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "ef301c65851d91dc7ea0e920b33de4d36ee1249f768a504c8e5b3a29dd4abf7c", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "6ae9a08122efbad803b375dd5696485c6911ff799111dcf09811fd88bcc71539", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "de3fb97184ac8a9a654190023913b1eb2158a8ff70bb069ec8353092e6483de9", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "7312be680d8026b5b9730a7e531f7a2cc6a7d445a65d14bb18ec4e3c2f393f1a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "75362c04f5fd538dc8491b913d89cba7d9c30933b9e475372e75a79ce56353bd", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "e703992629634ff50337828d6fc1ec23daf2bc1e5f742adb62878fe3a5a85951", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "b15adc5aa1ea5761fb7dd5873c4dd44d28f15705c6ab2b1df87d3bd4b69e9a77", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "73281a2fe6506cf17934497a476e2fff97bf994b1b950e0f735b3dfd6510916b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "92465c6b1fb5f4830d56af1d54222f917cab8cbfd67b1eb4e707dc0d8c5076a8", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "f4c5d20e62967a2a7484bea59f44366daa82ca4c169691e9003e7fee76273c2b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "aa4205b2c59bb50faaff2f01bac8fb9b62dbb855638ea8cde678f801de30ad08", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "b3b6df4f3d024aba1de9b54903a41e4163feb397f0e412d3c9c60f7558204b5d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "a8cda0c24718980bd02b7983d340b0b97ce91f2241b81ef4127042ba81932847", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "4ca6b15fa6cf799b7252d9a70d5c66dcbe86f3cc16b03b7c6f03ccda66df41be", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "ff0f0515eda0f4dc995d07436e65663c553bfa01748fa2eeec96dcee8d0a34c3", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "1cdb902014b3c9d2a72deda999905dd04fbd555f7813d4664ca0e16355b42fdc", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "98c8b33d5761a6135238983a05b81a4250c0a9f02979096ae110d1104c77970d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "e97ec987bd20d86e73c92f940f2ba2650f39209db14dc5f00b88436481fa4e28", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "bb45184861572975a9d9f9d3f515c9897794a30fdab4efd81b074da16629ac56", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "27a4b348551cb8cce209864c08096230dba5e9f4ab04e469fcfedb61bca9b78a", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "fc897ba78f0b4e429104bef7e15d728c9095f1b948f9e51b76252a368819631d", + "research/deferred-signed/swapnil-round7/lean/dump.py": "5cd0ec7494bbe5441c44ab6b9f2155172e1e9a75852ecdcd7aef0ebc5a36d11f", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "f32e6de60a389803f2226b2229944404ea9e09a9291f83c8eefae54b2dc158f2", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "068cfb9e4139ddbcff8d3b987b92415ed0ddee20e5a4ccdf2fed5c116d52834e", + "research/deferred-signed/swapnil-round7/lean/gen.py": "e4c7051a4051989bb659553884773d06dd3f09e34ba2710ad5142b702294cfc4", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "88e0befd88833b9c67f84a2cfcb47f07101c95a2aa4d72b8a72df837cb954168", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "e1d955df15523fd0f83c82e2a4bc080bf378ee50deb3003fce4771ac30f4ed26", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "8fd0abe6c230980b9a0c4a175e06ca1808b0fe5ead0cf9f268496111c2e11d2c", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "942a4369dd843736732a5ec27a1616e3ae1c2f2f8cc00b67e4a88759548a15e0", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "7b7fe97b021e00bfb2139d15e41be9ba8579803884ac2082c2b7f6ab53879aba", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "31e7ef597a439945fd74fcfb0d8fc8fdc01d0baa7d00f69caf9aab66c7c93dc5", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "953963b0a986bed4ac7c5c8d0ec0cd593f6525691bec9ea55a058d60669ec411", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "838204a16fff7dc4bc575107a5745ba28d93f4928b7e1a9100ba2c12f7b63b8d", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "0f00ee0558ca661e4a793322e6336d9a6189f7d8e1be4e90be6232bb9327d59f", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "f82e5ff671a7532308c0b4e5424f76a80653e0d170779b27c9e72b3c8311de21", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "1f3eab33880c137591b6f984aa3220ca8fbc1e833a91c2aeea430f3c62580b74", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "cce6dcb88dc507c679691786909251cf79f681c673716c89524a15dbc1e97436", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "0f7725b97b6c85adc6fc38045703ca39b52ddfa9e76d14e446dbe948c47faae8", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "dbce6f0d3cc3cbd076686f2adf4a592fac8850abc0fd718a0933694770e9167c", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "53deb36c0f5daffc68ee02dabf189d2700f39a2bb3f01b55c663c49cd315b9ae", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "a6113295a7af30b581d1230e630bba3dc7759be7807d8b2628aeaca31cddf441", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "6c948d995fdc60df70a36f1fe658b9dd06960fafd48badfce2144fc764a3d2b9", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "f1d65865357b535ddd4d98b0f3bfc1947b9a434993e7c5ba1536d3a62439948f", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "6f858bb8b601967e45f73eafe698cf8c5f0417182a8b1c1541c1e96b7a0f5107", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "93710f045ab8e8c0d4881380368405214484759e63f9f933a5c5c0f85871bd4c", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "9f39eeda5fed8920fffaa3309df3531e1ff3a30c3b8659745ab583012e0669ec", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "27a91fe1fab8a0171ec59edf697c0e41fd5747792a0385e2e9f3b38beaa5b91a", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "f038a6cb823711434620412753b885962613c377cf1d0568ff6f20be09edf8d9", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "0fe5d5597c9925921979d22654ec60d45049178e423f1a54fdd63e3fe5853da3", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "49fb7c2bd29bd714929e4397ea9e11a0b5e258be8ef665e33d573faded600479", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "7d9af1fb8b48c4eae029e2b37daf460c8cb727308ed840b0197f40593b618886", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "b21bc2654452b04f8404670c42adc9fcd8e46ede578b5cb0aa88c7243a89ad20", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "cd0c77f9e6af31fa8a6c4efe27cfca200183322cf9128e4c6ed1d675cd0c52c4", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "58bd299b361c8119c2ffa1381582346ef8f1a0cf448d847c19ec9bdbe19f78c3", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "c0e988d363f9d989275693b340e97b59dc16e4d8835e1e9ea3d4c589da277a0f", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "8cc1b358bd92a31d454c7dc9a2739d1d9cb53f19e3f88035aa4cd6babf11cb77", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "04201d7df9fe95f10859d482a2386b65fdcba5f8d7347e7837866de88ff75de4", + "research/deferred-signed/validation-prior/frames-replay.log": "3895170eb8078f6d7c9f0d814f54cc24b01309abcbe183a361d101e634a99998", + "research/deferred-signed/validation-prior/lifted-replay.log": "e24e6b3e793f49808dc14c36799a11140938d6fb53ba7bdce92a99f89b277671", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "b973d467d949912edc1cf65ee22703f9692431de72e3d87d82f442a6f7a61a1c", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "e10abe35cc8b536d78eda3e234ef48a6a7e49019893ec3d920779f2ac66443fd", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/validation-prior/stair-replay.log": "8a7cad5cb0ff905203c46da45642224d178cfd8c9d7d97a1502f1195705f0231", + "research/deferred-signed/validation-prior/stair_control-replay.log": "82bf3dda4e3f5ec4e3ca796a5544364e2864a28a877642773132e902da4755d6", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "1bcd74316f11ebc2c36f0c9b5638f314a3982c97e96c572816602087169f0e42", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "92567c2050caeaf987358acee5dde5d8610e0f12bff6385899e3c043d6cefb89", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "bb9488bd2c19423e4ccff4cd8e5052f0848a5b107a133a31179c020d26a7465e", + "research/deferred-signed/verify.py": "cebcddbdfc553c37da7ab6b66b7e94c1dcd0610b82e79453ed937831c400c418", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d", + "research/deferred-signed/VALIDATION.json": "c267be2b45769619b1fcb078b5aaa40f24ce1f0345161d180f138d297cd19264", + "research/joint-dual/SOURCE.json": "0f2bc2e6d72534ab3884d050abdc328b112cbc4296e6cc04516f65ab87ee96b2", + "certificates/joint-dual-kappa.json": "6dff7f3bd3bf149714e9f161892c944d8788d0894ff0c4056610a3283368253e", + "certificates/joint-dual-validation.json": "9af3bb95c2dacb7ffb410936f284ca5b0c288fc8ce492a97b349161dfc978113" + } +} diff --git a/references/signed-recursion/pr100/research/deferred-balanced/test_controls.py b/references/signed-recursion/pr100/research/deferred-balanced/test_controls.py new file mode 100644 index 0000000000..52f77629b2 --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/test_controls.py @@ -0,0 +1,26 @@ +import sys +if sys.flags.optimize:raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +import unittest,copy,json +from fractions import Fraction as Q +import verify as v +class Controls(unittest.TestCase): + def test_old_prefix_rejected_at_balanced_parameters(self): + c=v.rational(v.upstream.read(v.HERE/'certificate.json'));f,_=v.bridge() + with self.assertRaises(v.balanced.InvalidAssembly):v.balanced.assembly(f,c['bit']['saving'],c['balanced_interface']['kappa'],beta=Q(1,10),h=Q(1,10**12),a_complex=Q(36926111,500000000000),original_prefix=True) + def test_changed_scalar_charge_rejected(self): + f,_=v.bridge();f['complex']['scalar_group_upper']-=1 + with self.assertRaises(v.balanced.InvalidAssembly):v.balanced.validate_bridge(f) + def test_inadequate_row_stock_rejected(self): + f,_=v.bridge();f['rows']['degree']=1 + with self.assertRaises(v.balanced.InvalidAssembly):v.balanced.validate_bridge(f) + def test_zero_backoff_rejected(self): + c=v.rational(v.upstream.read(v.HERE/'certificate.json'));f,_=v.bridge() + with self.assertRaises(v.balanced.InvalidAssembly):v.balanced.assembly(f,c['bit']['saving'],c['balanced_interface']['kappa'],h=Q(),a_complex=Q(36926111,500000000000)) + def test_too_large_stopped_leaf_rejected(self): + c=v.rational(v.upstream.read(v.HERE/'certificate.json'));f,_=v.bridge() + with self.assertRaises(v.balanced.InvalidAssembly):v.balanced.assembly(f,c['bit']['saving'],c['balanced_interface']['kappa'],beta=Q(1,2),h=Q(1,10**12),a_complex=Q(36926111,500000000000)) + def test_overstated_exponent_rejected(self): + c=v.upstream.read(v.HERE/'certificate.json');c['balanced_interface']['kappa']='1/100' + with self.assertRaises(AssertionError):v.exact(c) +if __name__=='__main__':unittest.main() diff --git a/references/signed-recursion/pr100/research/deferred-balanced/verify.py b/references/signed-recursion/pr100/research/deferred-balanced/verify.py new file mode 100644 index 0000000000..0e6ae2fc8b --- /dev/null +++ b/references/signed-recursion/pr100/research/deferred-balanced/verify.py @@ -0,0 +1,107 @@ +"""Exact refinement of PR97 and transfer to the inherited balanced layout. +Zhihao Chen and Swapnil Jain supply all physical networks and signed interfaces. +This composition: Rohan Arun with OpenAI Codex assistance; Apache-2.0. +""" +import sys +if sys.flags.optimize:raise ValueError('Assertions must remain enabled') +sys.dont_write_bytecode=True +from pathlib import Path +from fractions import Fraction as Q +from hashlib import sha256 +import ast,json,copy,importlib.util,subprocess +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1];PARENT=ROOT/'research/deferred-signed' +import moments +def load(name,path): + spec=importlib.util.spec_from_file_location(name,path);module=importlib.util.module_from_spec(spec);sys.modules[name]=module;spec.loader.exec_module(module);return module +upstream=load('deferred97_verifier',PARENT/'verify.py') +original=load('deferred97_original_assembly',ROOT/'scripts/structured_bulk_assembly.py') +balanced=load('deferred_balanced_assembly',ROOT/'research/copied-fixed/balanced_assembly.py') +js=moments.arithmetic.js + +def rational(x): + if isinstance(x,dict):return {k:rational(y)for k,y in x.items()} + if isinstance(x,list):return [rational(y)for y in x] + if isinstance(x,str): + try:return Q(x) + except ValueError:return x + return x + +def required(): + return set(json.loads((PARENT/'SOURCE.json').read_text())['files'])|{ + 'research/deferred-signed/SOURCE.json','research/copied-fixed/balanced_assembly.py', + 'research/copied-fixed/PROOF.md','.github/workflows/deferred-balanced.yml'}|{str(p.relative_to(ROOT)) for p in (ROOT/'references/copied-fixed/pr34').rglob('*') if p.is_file()}|{ + str(p.relative_to(ROOT))for p in HERE.rglob('*')if p.is_file()and p!=HERE/'SOURCE.json'and p!=HERE/'validation.json'} + +def sources(): + upstream.verify_pins() + c=json.loads((HERE/'SOURCE.json').read_text());assert required()<=set(c['files']) + for name,digest in c['files'].items():assert sha256((ROOT/name).read_bytes()).hexdigest()==digest,name + # Only unavailable log artifacts may differ from the original PR97 manifest. + before=json.loads((HERE/'pr97-source-manifest.json').read_text());after=json.loads((PARENT/'SOURCE.json').read_text());assert set(before['files'])==set(after['files']) + receipt=json.loads((HERE/'log-recovery.json').read_text());assert receipt['status']=='passed' + replaced={f'research/deferred-signed/validation-prior/{stage["name"]}-replay.log':stage for stage in receipt['stages']} + for name,digest in before['files'].items(): + if name in replaced: + assert replaced[name]['returncode']==0 and after['files'][name]==replaced[name]['log_sha256'] + else:assert after['files'][name]==digest,('changed original input',name) + # Exact function bodies are copied, not silently rewritten arithmetic. + def bodies(path): + text=path.read_text();return {n.name:ast.get_source_segment(text,n)for n in ast.parse(text).body if isinstance(n,ast.FunctionDef)} + actual=bodies(HERE/'moments.py') + for file,names in [('refine.py',('floor_scaled','ceiling_scaled','exact_moment')),('audit.py',('log_interval','independent_moment'))]: + expected=bodies(HERE/'arithmetic-sources'/file) + for name in names:assert actual[name]==expected[name],name + +def physical_profiles(): + bit=upstream.read(PARENT/'round7-literal-ledger/result.json');cx=upstream.read(PARENT/'round6-complex-literal-ledger/result.json') + assert all(bit[k]for k in('complete_forward_F2','complete_reflected_F2','reflected_frame_continuity','histogram_matches_external')) + assert all(cx[k]for k in('actual_forward_equal_frames','reflected_continuity','actual_geometry_passed','histogram_matches_pinned')) + H={int(t):n for t,n in bit['histogram'].items()};C={int(t):n for t,n in cx['full_histogram'].items()} + assert sum(t*n for t,n in H.items())==57403754177 and sum(t*n for t,n in C.items())==119453132304 + return H,C + +def bridge(): + c=rational(upstream.read(PARENT/'round7-balanced-assembly-candidate.json'));f=copy.deepcopy(c['bridge']) + for kind in('bit','complex'):f[kind]['wire_bits']=f[kind]['W'].bit_length() + f['complex']['scalar_group_upper']=c['scalar_group_bound'] + f['semantic']['induction_gap']=2*f['semantic']['B']*(f['complex']['m']-f['complex']['maxchild'])-f['complex']['s']-f['semantic']['E'] + f['rows']['suffix_slope']=4*f['rows']['degree'] + balanced.validate_bridge(f) + return f,c + +def exact(certificate=None): + raw=certificate or upstream.read(HERE/'certificate.json');c=rational(raw);H,C=physical_profiles();f,prior=bridge();grid=Q(1,10**18) + assert original.assembly(Q(31987,500000000),Q(36926111,500000000000),prior['bridge'],Q(63965813,10**12),eta=Q(1,10**8),beta=Q(1,10))==prior['assembly'] + for key,m,W,rows in [('bit',529,108516254,H),('complex',576,207387136,C)]: + a=c[key]['saving'];accepted=moments.exact_moment(m,W,rows,a);rejected=moments.exact_moment(m,W,rows,a+grid) + assert accepted['upper']<10 for x in result['constraints'].values()) and all(x>c['balanced_interface']['kappa']for x in result['margins'].values()) + try:balanced.assembly(f,a,c['balanced_interface']['kappa']+grid,beta=Q(1,10),h=eta,a_complex=ac) + except balanced.InvalidAssembly:pass + else:raise AssertionError('next grid accepted') + assert c['same_interface']['kappa']>c['pr97'] and c['balanced_interface']['kappa']>c['same_interface']['kappa'] + assert c['balanced_gain_percent']==100*(c['balanced_interface']['kappa']/c['pr97']-1) + print('PASS two independent complete moments; original-interface kappa',c['same_interface']['kappa'],'balanced kappa',c['balanced_interface']['kappa'],'47 constraints, seven margins and next grids',flush=True) + return result + +if __name__=='__main__': + import argparse + p=argparse.ArgumentParser();p.add_argument('--replay',action='store_true');p.add_argument('--replay-own',action='store_true');args=p.parse_args();sources() + command=[sys.executable,str(PARENT/'verify.py')] + if args.replay:command.append('--replay') + elif args.replay_own:command.append('--replay-own') + subprocess.run(command,check=True) + exact() diff --git a/references/signed-recursion/pr100/scripts/structured_bulk_assembly.py b/references/signed-recursion/pr100/scripts/structured_bulk_assembly.py new file mode 100644 index 0000000000..b76f9cb5a4 --- /dev/null +++ b/references/signed-recursion/pr100/scripts/structured_bulk_assembly.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +"""Copyright 2026 icekylinx. Apache-2.0. +Substantial OpenAI GPT-6 Astra and Codex assistance. + +Exact finite bridge and assembly for the round-three networks. + +Adapted parameter calculation and semantic/product-row proof from PR23, +Zhihao Chen (jacklightChen), which attributes routing, phase-cell inverse +and bulk resampling to the RaD project (hipotures), commit +45d9b60355872041f9275f77c057514def0d45bc. This file does not regenerate, +audit, or substitute for the finite-network or analytic source proofs. +""" +from fractions import Fraction as Q + +def js(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):js(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [js(v) for v in x] + return x + +def halving(m,r): + assert 0=s+E and 2*B+18Q(coeff*51,25) + return dict(bit=dict(m=bit_m,W=bit_W,maxchild=bit_maxchild, + halving_degree=db,wire_bits=wb), + complex=dict(m=m,W=W,s=s,maxchild=r,halving_degree=dc, + wire_bits=wc,scalar_terms=scalar_terms,scalar_group_upper=G), + semantic=dict(E=E,literal_charge=charge,strict_literal_gap=E-charge, + B=B,C0=C0,C1=1,induction_gap=2*B*(m-r)-s-E), + rows=dict(coefficient=coeff,degree=degree,suffix_slope=4*degree, + degree_gap=Q(degree)-Q(coeff*51,25), + contract='W_complex^D_complex * W_bit^D_bit; preceding row prefix, single complete-row padding, nested bit stock restored')) + +def assembly(bit_saving,complex_saving,bridge,kappa,eta=Q(1,10**8),beta=Q(1,4)): + a,b=bit_saving,complex_saving + tau,sigma=1-a,1-b + q=a*(1-2*eta); lp=1-q; lam=(tau+lp)/2 + c=q*(1+eta); eps=(1-eta)/(1+c+q) + minimum=eps*q; r=(minimum+1-eps)/2; delta=eta/8 + internal=tau+(1-beta)*max(sigma-tau,Q(0));leaf=sigma+beta*(1-sigma) + margins=dict(original_prefix=1-eps*(1+c),coordinate_movement=a, + compact_phase_layer=minimum,bulk_exposure=a, + Gaussian_arithmetic=min(1-eps-delta,r-delta), + scalar_work=1-eps-delta,dimension=eps) + slacks=dict(bit_positive=a,complex_above_bit=b-a, + complex_below_one_over32=Q(1,32)-b,beta_positive=beta, + beta_below_one=1-beta,leaf_saving_above_bit=(1-beta)*b-a, + q_positive=q,q_below_internal=1-internal-q,q_below_leaf=1-leaf-q, + c_positive=c,c_below_one=1-c,q_below_reservations=c-q, + lambda_above_tau=lam-tau,lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal,lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf,compact_reservations=lp-(1-c), + lambda_prime_below_one=q,epsilon_positive=eps,epsilon_below_one=1-eps, + guard_width=1-eps,K_geometry=1-eps*(1+c),K_dominates_log=eps*c, + record_suffix=1-eps,phase_local=1-eps-delta,phase_boundary=r-delta, + gamma_sublinear=1-eps-r,cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps,alpha_positive=r,alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r,delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta,short_record_fallback=eps-a, + small_field_exposure=1-eps-minimum, + artificial_boundary=8-eps+r-delta-minimum, + literal_scalar_guard=Q(bridge['semantic']['strict_literal_gap']), + row_product_gap=bridge['rows']['degree_gap']) + slacks.update({name+'_above_kappa':val-kappa for name,val in margins.items()}) + assert all(v>0 for v in slacks.values()),{k:str(v) for k,v in slacks.items() if v<=0} + assert min(margins.values())==minimum + assert margins['original_prefix']-minimum==eta + return dict(parameters=dict(a_bit=a,a_complex=b,tau=tau,sigma=sigma, + eta=eta,beta=beta,q=q,c=c,epsilon=eps,lambda_=lam, + lambda_prime=lp,alpha_squared_power=r,delta=delta, + C0=bridge['semantic']['C0'],C1=1,kappa=kappa), + strict_constraints=slacks,margins=margins,minimum_margin=minimum, + absorption_gap=minimum-kappa, + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c)) diff --git a/references/signed-recursion/pr97/.github/workflows/verify.yml b/references/signed-recursion/pr97/.github/workflows/verify.yml new file mode 100644 index 0000000000..ce8ea60b2f --- /dev/null +++ b/references/signed-recursion/pr97/.github/workflows/verify.yml @@ -0,0 +1,66 @@ +name: Verify research artifacts + +on: + push: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + python-version: ['3.11', '3.13', '3.14'] + group: [community, producers, certificates, ternary, research, tests, strips, clones, positive, joint, pair, deferred-signed] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + with: + python-version: ${{ matrix.python-version }} + - name: Install headers for the exact enlarged-frame profiler + if: matrix.group == 'positive' + run: | + if ! test -f /usr/include/boost/multiprecision/cpp_int.hpp; then + sudo apt-get update + sudo apt-get install -y libboost-dev + fi + - name: Install exact rational tensor control dependency + if: matrix.group == 'deferred-signed' + run: python -m pip install sympy==1.14.0 + - name: Check arithmetic, source hashes, finite identities, and patches + run: make verify-${{ matrix.group }} + - name: Require reproducible certificates and patches + run: git diff --exit-code + + formal: + runs-on: ubuntu-24.04 + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + package: [historical, gaussian, matrix] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + with: + python-version: '3.13' + - name: Install elan; each project pins its Lean toolchain + run: | + curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/leanprover/elan/0e36a07b9bbcc5381fa6250df109f9a4f94d7bac/elan-init.sh -o /tmp/elan-init.sh + sh /tmp/elan-init.sh -y --default-toolchain none + echo "$HOME/.elan/bin" >> "$GITHUB_PATH" + - name: Fetch pinned Mathlib build cache + if: matrix.package == 'historical' + working-directory: formal/lean + run: lake exe cache get + - name: Check formal package and theorem axiom dependencies + run: make formal-${{ matrix.package }}-verify diff --git a/references/signed-recursion/pr97/ARCHIVE.json b/references/signed-recursion/pr97/ARCHIVE.json new file mode 100644 index 0000000000..a412a1d135 --- /dev/null +++ b/references/signed-recursion/pr97/ARCHIVE.json @@ -0,0 +1,434 @@ +{ + "file_commits": { + ".github/workflows/verify.yml": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "LICENSE": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "Makefile": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "NOTICE": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "certificates/joint-dual-kappa.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "certificates/joint-dual-validation.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/PROOF.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/SOURCE.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/VALIDATION.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/check_complex_identity.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round6-complex-interface-controls.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round6_complex_interface_controls.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round6_complex_literal_ledger.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7-literal-ledger/result.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7_literal_frame_ledger.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/.gitignore": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/IMPORT.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/LICENSE": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/Makefile": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/NOTICE": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/dump.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/gen.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/frames-replay.log": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "research/deferred-signed/validation-prior/lifted-replay.log": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/stair-replay.log": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "research/deferred-signed/validation-prior/stair_control-replay.log": "e15350b66e4bf796153a68c240a6cc1b788abe3e", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/deferred-signed/verify.py": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "research/joint-dual/SOURCE.json": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "scripts/structured_bulk_assembly.py": "f5f9c56e637463cac1e300d1589ccf42838f688a" + }, + "files": { + ".github/workflows/verify.yml": "f167d3877ffd324cc920b0373101fca29a72def7684de1824a40c627acf204ba", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "d3da97587cfa850d826bbb450f13121ff46e4e87bc91681e669279557562494a", + "NOTICE": "1c53970fb4face631a1b331ec66d33111eccd280a129f9b64c2da6df96861c3f", + "README.md": "5fe2101e1bd639a1739e4986c807f3a659b463a8a5873126e11727e8e63298a1", + "certificates/joint-dual-kappa.json": "6dff7f3bd3bf149714e9f161892c944d8788d0894ff0c4056610a3283368253e", + "certificates/joint-dual-validation.json": "9af3bb95c2dacb7ffb410936f284ca5b0c288fc8ce492a97b349161dfc978113", + "research/deferred-signed/PROOF.md": "cf5cced8cecace5f4308647523bc86a0869daeb1aa49c382bec03411674a1741", + "research/deferred-signed/README.md": "b1d761d02a5bb3413f705c9fac321a96e9b42f4bfd949c175131af97316b7463", + "research/deferred-signed/SOURCE.json": "eca8ccc565dc6145b8da703a752f7dd54873993bb5bc7ec0c23bd6649a2ac1d0", + "research/deferred-signed/VALIDATION.json": "c267be2b45769619b1fcb078b5aaa40f24ce1f0345161d180f138d297cd19264", + "research/deferred-signed/check_complex_identity.py": "8a31abe1d46ab3aa76b954cb87004e28d4974cce5eea2dea17d6283992902e7d", + "research/deferred-signed/round6-complex-interface-controls.json": "7f4375ff2baefd6455d5353968d4c1a38666cda7f417ebd21286f09e16131d22", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "db1d41515236c2710b4caeb22d91eea63cf1deeb0d659346d0661da71ed07baa", + "research/deferred-signed/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/round6_complex_literal_ledger.py": "a1384fb5283d9d11775942b91e31887fa05ddcd50c6a50fa3f11902b32f73c36", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "bcf0623dc4eab9fdb858f4375a5a183b72b150853e8da030005d8fcd0b83f2ae", + "research/deferred-signed/round7-literal-ledger/result.json": "65343d92f68d0d7756bb4c5adbdcb43171b00ce7fa7398e951245cf2ab119c0f", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "8383f9afa241ad495941b3d724286f0d94e4c4adee71d8ea744d88d813acec4c", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "0e3b13922295c0ece6e6354d7ba93529b3c51e70ece15a20d089f65f134e33b7", + "research/deferred-signed/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/swapnil-round7/.gitignore": "e4142bca62926744f1a60693914db92bb41be0b9ea4fbd4dd73e3af2178b0c8b", + "research/deferred-signed/swapnil-round7/IMPORT.json": "4b5f15981e846084b6def674ce0903c2d4ef0c930ea0c40093a2a8584164102d", + "research/deferred-signed/swapnil-round7/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-signed/swapnil-round7/Makefile": "42714be051b771e6ea414d3f7da4b9beb93990d5d6e1521dc665b3b2718a888a", + "research/deferred-signed/swapnil-round7/NOTICE": "058a663112e633ab5349ce33b6119bacca2b9fd6c0a89918c4c0435d6dd7a008", + "research/deferred-signed/swapnil-round7/README.md": "07409d6f8ca1becb0cf1f7bf7f485b879bfb53663c93becefc8f4e44de6f50b9", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "f102b238e86a650190e2c94232fbafd3f50d30693151019a7d7b5b4addf620fd", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "bbd2333d9049b8f42565e2b24d6faa5c69fcc4e67b873a7bef1f6e607e4979f4", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "9f712eb870cfad37af333acefce5162754f85087afc9647e2d86b30a70ba5c03", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "ca659ffa1dccdb05ebbcb95c8ca6342704bcc98656a57be9a05aa71faafe0bdb", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "648168584f12381f1756156aea22a3fff108b94de36c62652b75558b81c0a118", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "35cbcff404998f4e66c026e98c72f895bd8f8f2b90ba8d60b390af1d150b2cf7", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "2a76b1ce513c08d408a7524d825e922cc7a3939a772237d3a08f9683f2235289", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "cc56ddcff426818b0fb096a47f837fceb98b928d31c428f6dccaca53aff4b3c7", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "cb33411a0b9b552ec881b884498567997c10f9cb9d63cb7d5a864277ccebdfb0", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "3c1181d1e3b6a55d8092d39e37c7b0ef712d8ace0b76dc8f493578bef6006eae", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "f9ddc6c33dda1abdaf05d0fff651d02e9a04557ebbb1b8da11d4d6de8de08d91", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "76b35a0fdb1bf1926325bf33648dbae3e0de34699ce6dd1e95a23a09f762cd44", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "ffb5ac42a64969dae7d19012e5102d7aeb66c3eee529bde9812bd182cb9eafa1", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "b1e790d7a268716b62d19f1e6617b9f55f81bbfbd0c474a3a0801918b5ba6a7b", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "056ca643666dff4405eecfb6f0f8a33da3a50244c65d9bc2e28fa95ea32956e1", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "c4b0d8b9cdb7dceb881747826356fb6eedd5ad465c483ed7cda0ba2a8d2d90d4", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "dbfa0844ff605abfe386f30f3bf9859c3f1b040eae019e184668c82439d788d1", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "4edb0206c6f44081c1be434a529fce3527a46a35fee3e874a97898d60eabbe20", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "499e4f7ea700a917e7c3991b91ac99e1b0eb7eb51fb6d362b395d0056b64bdee", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "90703356b485a21bbcf2f4dca9c1cc7109767a16afd2a04ac113b2c6e1d569ce", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "f1a2ff1e6aa68e3052d77d664744d85ac76c31f7b779bd66be018ee82ea0aec7", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "ef9c47f92ef46aa7f701493aab95d65f930d4d31db214bc83b683cf7ddb7868b", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "688e609cc0adbfba17dd74984d382121ce6741afc7e2da548ee553ea15c4d3c9", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "c31a321e28556c9d9cb3397e48292e8ecefc0b08e233243d7849bd585213af65", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "8f9bb3c2e7037e5c601b740e195cc5207bf3eec906fdea9c6f4ee73a7ca98da0", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "a246d8d4b4d110125406648f9fb49725894c3652102049caf3555ab191fc0e7b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "6931781fc7097daf44327de262ef9df68d95f3ebab3b2a6c22422066c1e7ea1a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "a1c5fa749b41d483dafb66d7ba56d2e77a8735befbbcac8391b8e1d8ce1ee2d3", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "0c1da25c545e1e7cdd6eca5140579a6b6273789de39171487624c7ff6490dec6", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "ef301c65851d91dc7ea0e920b33de4d36ee1249f768a504c8e5b3a29dd4abf7c", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "6ae9a08122efbad803b375dd5696485c6911ff799111dcf09811fd88bcc71539", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "de3fb97184ac8a9a654190023913b1eb2158a8ff70bb069ec8353092e6483de9", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "7312be680d8026b5b9730a7e531f7a2cc6a7d445a65d14bb18ec4e3c2f393f1a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "75362c04f5fd538dc8491b913d89cba7d9c30933b9e475372e75a79ce56353bd", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "e703992629634ff50337828d6fc1ec23daf2bc1e5f742adb62878fe3a5a85951", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "b15adc5aa1ea5761fb7dd5873c4dd44d28f15705c6ab2b1df87d3bd4b69e9a77", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "73281a2fe6506cf17934497a476e2fff97bf994b1b950e0f735b3dfd6510916b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "92465c6b1fb5f4830d56af1d54222f917cab8cbfd67b1eb4e707dc0d8c5076a8", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "f4c5d20e62967a2a7484bea59f44366daa82ca4c169691e9003e7fee76273c2b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "aa4205b2c59bb50faaff2f01bac8fb9b62dbb855638ea8cde678f801de30ad08", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "b3b6df4f3d024aba1de9b54903a41e4163feb397f0e412d3c9c60f7558204b5d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "a8cda0c24718980bd02b7983d340b0b97ce91f2241b81ef4127042ba81932847", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "4ca6b15fa6cf799b7252d9a70d5c66dcbe86f3cc16b03b7c6f03ccda66df41be", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "ff0f0515eda0f4dc995d07436e65663c553bfa01748fa2eeec96dcee8d0a34c3", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "1cdb902014b3c9d2a72deda999905dd04fbd555f7813d4664ca0e16355b42fdc", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "98c8b33d5761a6135238983a05b81a4250c0a9f02979096ae110d1104c77970d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "e97ec987bd20d86e73c92f940f2ba2650f39209db14dc5f00b88436481fa4e28", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "bb45184861572975a9d9f9d3f515c9897794a30fdab4efd81b074da16629ac56", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "27a4b348551cb8cce209864c08096230dba5e9f4ab04e469fcfedb61bca9b78a", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "fc897ba78f0b4e429104bef7e15d728c9095f1b948f9e51b76252a368819631d", + "research/deferred-signed/swapnil-round7/lean/dump.py": "5cd0ec7494bbe5441c44ab6b9f2155172e1e9a75852ecdcd7aef0ebc5a36d11f", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "f32e6de60a389803f2226b2229944404ea9e09a9291f83c8eefae54b2dc158f2", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "068cfb9e4139ddbcff8d3b987b92415ed0ddee20e5a4ccdf2fed5c116d52834e", + "research/deferred-signed/swapnil-round7/lean/gen.py": "e4c7051a4051989bb659553884773d06dd3f09e34ba2710ad5142b702294cfc4", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "88e0befd88833b9c67f84a2cfcb47f07101c95a2aa4d72b8a72df837cb954168", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "e1d955df15523fd0f83c82e2a4bc080bf378ee50deb3003fce4771ac30f4ed26", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "8fd0abe6c230980b9a0c4a175e06ca1808b0fe5ead0cf9f268496111c2e11d2c", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "942a4369dd843736732a5ec27a1616e3ae1c2f2f8cc00b67e4a88759548a15e0", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "7b7fe97b021e00bfb2139d15e41be9ba8579803884ac2082c2b7f6ab53879aba", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "31e7ef597a439945fd74fcfb0d8fc8fdc01d0baa7d00f69caf9aab66c7c93dc5", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "953963b0a986bed4ac7c5c8d0ec0cd593f6525691bec9ea55a058d60669ec411", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "838204a16fff7dc4bc575107a5745ba28d93f4928b7e1a9100ba2c12f7b63b8d", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "0f00ee0558ca661e4a793322e6336d9a6189f7d8e1be4e90be6232bb9327d59f", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "f82e5ff671a7532308c0b4e5424f76a80653e0d170779b27c9e72b3c8311de21", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "1f3eab33880c137591b6f984aa3220ca8fbc1e833a91c2aeea430f3c62580b74", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "cce6dcb88dc507c679691786909251cf79f681c673716c89524a15dbc1e97436", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "0f7725b97b6c85adc6fc38045703ca39b52ddfa9e76d14e446dbe948c47faae8", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "dbce6f0d3cc3cbd076686f2adf4a592fac8850abc0fd718a0933694770e9167c", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "53deb36c0f5daffc68ee02dabf189d2700f39a2bb3f01b55c663c49cd315b9ae", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "a6113295a7af30b581d1230e630bba3dc7759be7807d8b2628aeaca31cddf441", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "6c948d995fdc60df70a36f1fe658b9dd06960fafd48badfce2144fc764a3d2b9", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "f1d65865357b535ddd4d98b0f3bfc1947b9a434993e7c5ba1536d3a62439948f", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "6f858bb8b601967e45f73eafe698cf8c5f0417182a8b1c1541c1e96b7a0f5107", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "93710f045ab8e8c0d4881380368405214484759e63f9f933a5c5c0f85871bd4c", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "9f39eeda5fed8920fffaa3309df3531e1ff3a30c3b8659745ab583012e0669ec", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "27a91fe1fab8a0171ec59edf697c0e41fd5747792a0385e2e9f3b38beaa5b91a", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "f038a6cb823711434620412753b885962613c377cf1d0568ff6f20be09edf8d9", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "0fe5d5597c9925921979d22654ec60d45049178e423f1a54fdd63e3fe5853da3", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "49fb7c2bd29bd714929e4397ea9e11a0b5e258be8ef665e33d573faded600479", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "7d9af1fb8b48c4eae029e2b37daf460c8cb727308ed840b0197f40593b618886", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "b21bc2654452b04f8404670c42adc9fcd8e46ede578b5cb0aa88c7243a89ad20", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "cd0c77f9e6af31fa8a6c4efe27cfca200183322cf9128e4c6ed1d675cd0c52c4", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "58bd299b361c8119c2ffa1381582346ef8f1a0cf448d847c19ec9bdbe19f78c3", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "c0e988d363f9d989275693b340e97b59dc16e4d8835e1e9ea3d4c589da277a0f", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "8cc1b358bd92a31d454c7dc9a2739d1d9cb53f19e3f88035aa4cd6babf11cb77", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "04201d7df9fe95f10859d482a2386b65fdcba5f8d7347e7837866de88ff75de4", + "research/deferred-signed/validation-prior/frames-replay.log": "3895170eb8078f6d7c9f0d814f54cc24b01309abcbe183a361d101e634a99998", + "research/deferred-signed/validation-prior/lifted-replay.log": "e24e6b3e793f49808dc14c36799a11140938d6fb53ba7bdce92a99f89b277671", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "b973d467d949912edc1cf65ee22703f9692431de72e3d87d82f442a6f7a61a1c", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "e10abe35cc8b536d78eda3e234ef48a6a7e49019893ec3d920779f2ac66443fd", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/validation-prior/stair-replay.log": "8a7cad5cb0ff905203c46da45642224d178cfd8c9d7d97a1502f1195705f0231", + "research/deferred-signed/validation-prior/stair_control-replay.log": "82bf3dda4e3f5ec4e3ca796a5544364e2864a28a877642773132e902da4755d6", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "1bcd74316f11ebc2c36f0c9b5638f314a3982c97e96c572816602087169f0e42", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "92567c2050caeaf987358acee5dde5d8610e0f12bff6385899e3c043d6cefb89", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "bb9488bd2c19423e4ccff4cd8e5052f0848a5b107a133a31179c020d26a7465e", + "research/deferred-signed/verify.py": "cebcddbdfc553c37da7ab6b66b7e94c1dcd0610b82e79453ed937831c400c418", + "research/joint-dual/SOURCE.json": "0f2bc2e6d72534ab3884d050abdc328b112cbc4296e6cc04516f65ab87ee96b2", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + }, + "git_blobs": { + ".github/workflows/verify.yml": "ce8ea60b2f076d0a6dab692fce97eb62ab652052", + "LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "Makefile": "76be64f26f3a41be8ce293985ea5af80b9e28c1c", + "NOTICE": "b5656377588f29410ce427f6a345eec363d7f879", + "README.md": "6422615ac285ba86c1a157676880ca95764d9c82", + "certificates/joint-dual-kappa.json": "b2ca936d420bd817d303caa2f9c375a55baafc21", + "certificates/joint-dual-validation.json": "a7cc93a3bd2b92dbf2469c641e4eb553f2c44036", + "research/deferred-signed/PROOF.md": "d96717353e80003b5c43c45e966c3afb87c17387", + "research/deferred-signed/README.md": "58791689052f575743783a830ce7a2638968bd91", + "research/deferred-signed/SOURCE.json": "3521d3c5cdba3a93b29cd7e9b2603caa37f4b705", + "research/deferred-signed/VALIDATION.json": "a221c78912e406d2535f5a9ceee58f94999c7eb8", + "research/deferred-signed/check_complex_identity.py": "833fbded74951c775043573f19f5288e8f7c2de3", + "research/deferred-signed/round6-complex-interface-controls.json": "bda184640fd3c74440262da306ba9b91bdf5c57c", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "b52fceb9147dad059cf8db5888b2a98035f8e33c", + "research/deferred-signed/round6_complex_interface_controls.py": "7a84af93ed875da010ad7c8dc89c0e78d9e0873c", + "research/deferred-signed/round6_complex_literal_ledger.py": "9f1b5b3e3a4daa1f42ae29af073fc07661880095", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "b34f25ad511f42a43038a2917223a5b2edab19b9", + "research/deferred-signed/round7-literal-ledger/result.json": "b6449a74d8689a0ed294b14713e0e78ce577e24f", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "a121d26ca3d51d231b73cc7bde67a277ff29cc22", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "f0230cc0a436be82cb66b80624677b6b5be211eb", + "research/deferred-signed/round7_literal_frame_ledger.py": "aa0de9ed8a4467008200617e74dd7c8a5b1d370a", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "2db779468c4f67a72b2ecf2d715fd6bea81ef946", + "research/deferred-signed/swapnil-round7/.gitignore": "fcaeafddb14b5916950724f02f3be328f0c36ddf", + "research/deferred-signed/swapnil-round7/IMPORT.json": "0167c6fda13daee13d1bbf9b885e13bb09d90aaa", + "research/deferred-signed/swapnil-round7/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "research/deferred-signed/swapnil-round7/Makefile": "fdff0234e8d7adbc975c8487e7fb6a17820518df", + "research/deferred-signed/swapnil-round7/NOTICE": "be2e7e5a9838fe7e284aff3babc864455c2281d2", + "research/deferred-signed/swapnil-round7/README.md": "09708066640450a0aea89976579b5aba82098ac1", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "68b0dcd2192d3c3055b6db68ab46ff7cfe25c3f0", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "c290bc5431382e6af840895e6892fba1dc165c7a", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "cb94268721cc71fe42eb54c76b43fff566492d37", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "7aa9fb30817c371cc2b9a717965925168bf18e96", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "ff5bd622016110694ff79aa283e25b52953d8832", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "39b1289de2bedc139ebb8adfd9781ca9dbc9b5a5", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "a03f30c451a2baf59a69f8d5b30d12687f9ffdfc", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "0706f9d115468ca9314c47503b190346be67a0c9", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "65a2e177778547c4029570aee05237d1e69dcf3d", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "827f07e6b5be63d903f8f5becc1a57cf99355db0", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "4e212f628196ee434aa67b09a1cedcd8d4d72e85", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "a87f969d341e04fa60fd48eff7cbd639bda955b1", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "94339ac381b3a3eea3f5edfb0638bbd06d617282", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "95a5da44ed26c34d3cb8dec581894a873ab5ade3", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "53e00de297d6f693c19c88425292647f594dac63", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "103bbb7d271c2bfd05206a35aabd14986eaf9c0e", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "5b04ed68ec9fb3c66bdd96025d14ed3dcb2a1458", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "ec70ed13a59851c16202665dd34f667fde54708d", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "d0d0594e2dee738f64401face0007501c9ccb4b9", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "2a625732bb10238aeb2d0f256dabd794b276262b", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "ae6a68014ad822a09a729fc06f89a2375730a65e", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "ca684ec9badd9f4305d584f4786f6042d35b87e3", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "965b9101c68167a245b17bbdf49f884b2f62d5db", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "bb6879adcd3b2a0c78afba69ea05ed154e4b786b", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "45126062136d58f2d4fedcf549f40cd95d456c7f", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "30fc761818781e881962cbab3efcb0547e1173a1", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "10d2110f9bf25a857f5b7fef76bb95fa367d3eac", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "fe438f91656df7dc6b236d7b2000261282776228", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "f22b6998f9415dd0b081a146f00e5c30065d6689", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "4a19240e2fe5f55891d842fd451bd0cb24e4ae76", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "d3d1dea1a9a42601410fb5cd3edc5888d63d217b", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "7db40994e4d74afe191c3fd8ac5c9acc9b438eeb", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "b77bb4861c38b731e5b41a17af8fc1b63b56ec42", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "a81cbaa61e2c09075f900546ec46833103b77ac1", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "536b9b40604d1391582b5e86ccc6aac64dc236d7", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "9908b695e021f9069123e2bf15095caf1ccae337", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "31c8130c5946574fd6996a56dac246ee688bffb1", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "1d0c379fb8490f6f51717888da5904c9c1168e44", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "aa9f0200ad5fc1f51ecdb9e257d397fcb3cc25c0", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "390bb577fd4ec1fa774ded95887ce5855adc17e7", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "5dc785f5a0075dfe23d4b9d70056a6cc6c96f9a6", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "7f95483f148e9022245b3240659478c66ed5df00", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "eac7e283d2ad8484d4f0718ba455304035a5440d", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "5e8157d957e67293c66f6793911ef77cf6581135", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "f2c4ece08c01503a9ef42f67081b3abe0aab9321", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "9113ef8fe31f59ed446658e856318e03f44f062e", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "b5dd1bef63c86ab9acf49e9093fff704267ebd39", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "f2ac3d9eb82c2428f1ec23c8a071bfbc387e4ad7", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "810144541f6811b2407df94b5ca95deb25f6ff6d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "a6143f138385df59b936814ec33b4bb6611330ec", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "98893c5a204513a784e783a5fd25b16570a75f39", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "69862f57d00c67c575e51be323b2db351796172a", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "c514c372102a9ae4189bd573f6fb0d276fc54f1e", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "86df1026f34ea313176aa06fe264d3e6b6469875", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "c82f44c84acc59f4ac0f4b2cf16e6c2815acbe04", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "d08377f94ea85799a1aadac6aef69df4607297fe", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "7ab495d87c762cfc00e485711d5f5d58d97e3fc1", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "2577a55fb158a46bb7c82db5e7f53587c5b5e91b", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "50514f86023fd1e948dd9bf9c9be2ec11d12e166", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "b523099790aadab761c9a7a1085583f988d16d9b", + "research/deferred-signed/swapnil-round7/lean/dump.py": "dcc74f0aa73809eed6a1b60b6a4630945864e964", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "564d980dd46da700b9cef392e8273bb2f02b6cc4", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "44046768cb7bd1a34158321385f0ebad726a968d", + "research/deferred-signed/swapnil-round7/lean/gen.py": "a19afaa20c5024ff12f9f57252d49832906dbf44", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "d04e8b717dda125c010e7d1717f68530c79b03a6", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "d6b584964eadbbadc12a2b79bfa9dc9eaafdcbd3", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "830484689b2a0801992ce6b6e884014bc9c933fe", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "65b9e9129a5c4ebe205c0c971f8559a571808b95", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "cdcc820c95c9aa984a703460a968421bb37189a0", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "76c91c10c96bbb0432f7f4996c5734e5eee0b956", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "3b6dab87052c5c941a38e857d9caba60423c944a", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "331789a6f16c5aef87a37eedef147a3146450b86", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "5647021edd381d28fbb44ced0f8f7bcfcdeaa72f", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "319f6447632924760047f4a49d0f070a3094de37", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "74d1f9a16673bb2b6258028a4259df7f0be67b35", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "09ad215ccf3876d604fbbea1f25e772cd63e875b", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "2c77009e0119100371d9546519f9fa06e5fe814f", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "71c743a58a3d7027b865572f8bb2c5f6afe8c9db", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "c5a9fa429bd88f7134eadf5c85eb7ce39c573e28", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "5f6b2c6910563bf534f43d308d57679a90f10033", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "73403788933bd05b3d3d117a09a38ca519c85482", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "aeb3e6f6c4490a097e82763517005519ed9fba3d", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "32c0058d832b43cb95e288467e152f72ca6083ac", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "13d2316ee5bf9a01514855267dee54ae583111a4", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "b1e4281c733dc395155c4547ffc50a7b3a87fd2a", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "b4c481350ad8890d479fdcf954f79a04c15cd548", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "447418acb431af6110b10f62f9581378cf24f1bf", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "089cbec2bd30dc5d5384b88cf1fd2bf2e5594a1c", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "a9876c9fc01ca077dcaf13b095019357560ffd6c", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "33116082d2d11bbcfa0144c54dda5c6b8fb42e1c", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "68bb03e902271d87c59a102e0a83205d87cc870e", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "f88e4647631a1b525faac9151fa76f0534edfd15", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "5af8799c2c1df73d277b3ca38dabc1b9d8b64b05", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "ad6d0de81e1c3cdc38f860b28619be93f597f475", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "a4412d43150ccb76e8cef7947a8e6f7cf3165ea5", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "0d53f10d142b7ce4c567b0b0169b1ca9103713ee", + "research/deferred-signed/validation-prior/frames-replay.log": "91ed178ab909b031d91bbcd0ffebff3d48e92b66", + "research/deferred-signed/validation-prior/lifted-replay.log": "a9cffb331521b6aa0f12d81f97343e95926fb7e7", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "7a84af93ed875da010ad7c8dc89c0e78d9e0873c", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "269d26c42193642091ac51f1760c345fef6b7601", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "f82253aa70a818b5ae59c51f1da56021d1a207a9", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "aa0de9ed8a4467008200617e74dd7c8a5b1d370a", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "2db779468c4f67a72b2ecf2d715fd6bea81ef946", + "research/deferred-signed/validation-prior/stair-replay.log": "0d208c40c9aa9546442181099aefd54a791eaf97", + "research/deferred-signed/validation-prior/stair_control-replay.log": "7f630e6363bbd92ffe0110d7d72107f5469ac356", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "3fc62f301d4f50d680cfbfe9417c4f2ed7e02b26", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "ac62a25d8caf1b992a85f0ea3c61f2686a864ecf", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "869231d71d1f1298ed521fa643d9989bfdb2633b", + "research/deferred-signed/verify.py": "b3536e65e5ecb3222acf1c0e92d7ed330eed20cb", + "research/joint-dual/SOURCE.json": "67b7f0d8786f13859aeb5c110b1ba3dab9bffb27", + "scripts/structured_bulk_assembly.py": "b76f9cb5a452fb637f3a8aec0748da6d2d81968a" + }, + "head": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "repository": "jacklightChen/integer-mult-bounds", + "scope": "Selected preserved upstream source and evidence closure. All files retain original Git bytes; file_commits identifies four historical PR97 logs recovered at the subsequent head." +} diff --git a/references/signed-recursion/pr97/LICENSE b/references/signed-recursion/pr97/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/signed-recursion/pr97/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/signed-recursion/pr97/Makefile b/references/signed-recursion/pr97/Makefile new file mode 100644 index 0000000000..76be64f26f --- /dev/null +++ b/references/signed-recursion/pr97/Makefile @@ -0,0 +1,438 @@ +.PHONY: verify note audit-note tuned-note reuse-note incidence-note dag-note shared-point-note paired-note compact-note complex-note ternary-note fetch +.DEFAULT_GOAL := verify + +.PHONY: community-audit-check +community-audit-check: + python3 scripts/audit_community_candidate.py --check docs/research/community-audit-arithmetic.json + +.PHONY: community-followup-check +community-followup-check: + python3 scripts/audit_followup_candidate.py --candidate-root . --check docs/research/community-followup-arithmetic.json + +.PHONY: verify-community verify-producers verify-certificates verify-ternary verify-tests +# CI runs these in separate checkouts. Keep local verification sequential: +# different groups regenerate certificates that another group may read. +verify: + $(MAKE) verify-community + $(MAKE) verify-producers + $(MAKE) verify-certificates + $(MAKE) verify-ternary + $(MAKE) verify-research + $(MAKE) verify-strips + $(MAKE) verify-clones + $(MAKE) verify-positive + $(MAKE) verify-joint + $(MAKE) verify-pair + $(MAKE) deferred-signed-verify + $(MAKE) verify-tests + +verify-community: community-audit-check community-followup-check copied-reversed-producer copied-reversed-check copied-fixed-reversed-producer copied-fixed-reversed-check + $(MAKE) copied-fixed-verify + $(MAKE) climbed-48-verify + +verify-producers: + $(MAKE) copied-centers-verify + $(MAKE) structured-bulk-verify + $(MAKE) endpoint-gauge-producer endpoint-gauge-certificate + $(MAKE) partial-swap-producer partial-swap-certificate + +verify-certificates: + python3 scripts/prime_field_network.py + python3 scripts/complex_network.py + python3 scripts/fast_gaussian.py + $(MAKE) batched-certificate batched-patch + python3 scripts/certify.py + python3 scripts/search_network.py + python3 scripts/make_patch.py + python3 scripts/nonadjacent.py + python3 scripts/make_nonadjacent_patch.py + python3 scripts/tune_routing.py + python3 scripts/research_networks.py + python3 scripts/search_network_variants.py + python3 scripts/block_label_targets.py + python3 scripts/audit_block_labels.py + python3 scripts/audit_additive_labels.py + python3 scripts/small_block_witness.py + python3 scripts/incidence_network.py + python3 scripts/make_incidence_patch.py + python3 scripts/search_incidence_partitions.py + python3 scripts/dag_network.py + python3 scripts/make_dag_patch.py + python3 scripts/shared_point_network.py + python3 scripts/make_shared_point_patch.py + python3 scripts/paired_network.py + python3 scripts/make_paired_patch.py + python3 scripts/prepare_layers.py + python3 scripts/audit_sparse_fusion.py + python3 scripts/audit_fused_block.py + python3 scripts/audit_short_guards.py + python3 scripts/audit_gather_schedules.py + python3 scripts/audit_coded_carries.py + python3 scripts/audit_cancellation.py + python3 scripts/audit_joint_frames.py + python3 scripts/audit_compact_controls.py + python3 scripts/compact_control_layer.py + python3 scripts/make_compact_control_patch.py + python3 scripts/audit_scratch_pooling.py + python3 scripts/reuse_network.py + python3 scripts/make_reuse_patch.py + +verify-ternary: + python3 scripts/complex_compression.py + python3 scripts/make_complex_compression_patch.py + python3 scripts/audit_ternary_side.py + python3 scripts/make_ternary_patch.py + +verify-tests: + python3 scripts/run_isolated_tests.py + git apply --check --directory=upstream patches/frozen-154.patch + git apply --check --directory=upstream patches/balanced-153.patch + git apply --check --directory=upstream patches/same-network-129.patch + git apply --check --directory=upstream patches/h46-111.patch + git apply --check --directory=upstream patches/h46-109.patch + git apply --check --directory=upstream patches/h46-108.patch + git apply --check --directory=upstream patches/h46-rational.patch + git apply --check --directory=upstream patches/nonadjacent-layout.patch + git apply --check --directory=upstream patches/frozen-nonadjacent-107.patch + git apply --check --directory=upstream patches/h46-nonadjacent-78.patch + git apply --check --directory=upstream patches/h46-nonadjacent-76.patch + git apply --check --directory=upstream patches/h46-shared-side-75.patch + git apply --check --directory=upstream patches/h46-incidence-67.patch + git apply --check --directory=upstream patches/h46-dag-63.patch + git apply --check --directory=upstream patches/h46-shared-point.patch + git apply --check --directory=upstream patches/h50-paired-59.patch + git apply --check --directory=upstream patches/compact-control-34.patch + git apply --check --directory=upstream patches/complex-compression-31.patch + git apply --check --directory=upstream patches/ternary-30.patch + git apply --check --directory=upstream patches/batched-23.patch + +note: + mkdir -p artifacts + tectonic --outdir artifacts notes/parameter-note.tex + +audit-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/nonadjacent-axis-note.tex + +tuned-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/routing-tuned-note.tex + +reuse-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/stage-reuse-note.tex + +incidence-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/incidence-note.tex + +dag-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/dag-note.tex + +shared-point-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/shared-point-note.tex + +paired-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/paired-note.tex + +compact-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/compact-control-note.tex + +complex-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/complex-compression-note.tex + +ternary-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/ternary-note.tex + +fetch: + python3 scripts/fetch_upstream.py + +.PHONY: batched-certificate batched-patch batched-note +PDFLATEX ?= pdflatex +TEX_ENGINE ?= pdflatex +TECTONIC ?= tectonic + +batched-certificate: + python3 scripts/controlled_bit_rank_moment.py --output certificates/controlled-bit-rank-moment.json > /dev/null + python3 scripts/batched_network.py --output certificates/batched-network.json --summary + +batched-patch: + python3 scripts/make_batched_patch.py + +batched-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/batched-23-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex +endif + +.PHONY: partial-swap-producer partial-swap-certificate partial-swap-note +partial-swap-producer: + python3 scripts/partial_swap_producer.py + +partial-swap-certificate: + python3 scripts/partial_swap_network.py + +partial-swap-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/partial-swap-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex +endif + +.PHONY: endpoint-gauge-producer endpoint-gauge-certificate endpoint-gauge-note +endpoint-gauge-producer: + python3 scripts/endpoint_gauge_producer.py + +endpoint-gauge-certificate: + python3 scripts/endpoint_gauge_network.py + +endpoint-gauge-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/endpoint-gauge-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex +endif + +.PHONY: endpoint-gauge-verify +endpoint-gauge-verify: endpoint-gauge-producer endpoint-gauge-certificate + python3 -m unittest discover -s tests -p 'test_endpoint_gauge.py' -v + +.PHONY: structured-bulk-producer structured-bulk-certificate structured-bulk-verify structured-bulk-note +structured-bulk-producer: + python3 scripts/structured_bulk_producer.py + +structured-bulk-certificate: + python3 scripts/structured_bulk_network.py + +structured-bulk-verify: structured-bulk-producer structured-bulk-certificate + +structured-bulk-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/structured-bulk-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex +endif + +.PHONY: copied-centers-producer copied-centers-certificate copied-centers-verify +copied-centers-producer: + python3 scripts/copied_centers_producer.py + +copied-centers-certificate: + python3 scripts/copied_centers_network.py + +copied-centers-verify: copied-centers-producer copied-centers-certificate + +.PHONY: copied-reversed-check copied-reversed-producer +copied-reversed-check: + python3 research/copied-reversed/geometry.py + python3 research/copied-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_reversed.py' -v + +copied-reversed-producer: + mkdir -p build/copied-reversed/producer + python3 scripts/copied_centers_producer.py --work-dir build/copied-reversed/producer --output build/copied-reversed/producer.json + + +.PHONY: copied-fixed-reversed-check copied-fixed-reversed-producer +copied-fixed-reversed-check: + python3 research/copied-fixed-reversed/geometry.py --full + python3 research/copied-fixed-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_fixed_reversed.py' + +copied-fixed-reversed-producer: + mkdir -p build/copied-fixed-reversed/producer + python3 research/copied-fixed-reversed/producer.py --work-dir build/copied-fixed-reversed/producer --output build/copied-fixed-reversed/producer.json + python3 research/copied-fixed-reversed/review/fixed25_copied_crt_audit.py --work-dir build/copied-fixed-reversed/producer --record build/copied-fixed-reversed/producer.json --profiler-source research/copied-fixed-reversed/full_profiles25.cpp --output build/copied-fixed-reversed/crt-audit.json + + +.PHONY: copied-fixed-verify copied-fixed-producer copied-fixed-check +copied-fixed-producer: + python3 research/copied-fixed/producer.py + +copied-fixed-check: + python3 research/copied-fixed/audit.py + python3 research/copied-fixed/verify.py --output research/copied-fixed/certificate.json + python3 -m unittest discover -s tests -p 'test_copied_fixed.py' -v + +copied-fixed-verify: copied-fixed-producer copied-fixed-check + +.PHONY: climbed-48-verify climbed-48-producer climbed-48-check +climbed-48-producer: + python3 research/climbed-48/producer.py + +climbed-48-check: + python3 research/climbed-48/witness.py --output research/climbed-48/certificate.json + python3 -m unittest discover -s tests -p 'test_climbed_48.py' -v + +climbed-48-verify: climbed-48-producer climbed-48-check + +.PHONY: formal-verify formal-historical-verify formal-gaussian-verify +formal-verify: formal-historical-verify formal-gaussian-verify + +formal-historical-verify: + cd formal/lean && lake build + python3 scripts/check_lean_axioms.py --project formal/lean --audit formal/lean/AuditAll.lean + python3 formal/lean/sources.py + python3 formal/open-prs/drift_A.py + python3 formal/open-prs/drift_B.py --selftest + python3 formal/open-prs/drift_C.py + mkdir -p build/formal + python3 formal/circuit/export_paired.py build/formal/paired50.json + python3 -I formal/circuit/check_paired.py build/formal/paired50.json + +formal-gaussian-verify: + $(MAKE) -C research/gaussian-parity-synthesis verify + python3 scripts/check_lean_axioms.py --project research/gaussian-parity-synthesis --audit research/gaussian-parity-synthesis/AuditAll.lean + +.PHONY: verify-research +# Historical finite searches; no current witness or production certificates change. +verify-research: + python3 scripts/audit_bit_compression.py + python3 scripts/audit_mixed_point.py + python3 scripts/audit_early_sharing.py + python3 scripts/audit_split_centers.py + python3 scripts/audit_stage_pair.py + python3 scripts/audit_block_carry.py + python3 scripts/audit_joint_return.py + python3 scripts/audit_cyclic_topology.py + python3 scripts/audit_fano_completion.py + python3 scripts/audit_fano_permutation.py + python3 scripts/audit_rank_product_core.py + python3 scripts/audit_stronger_screens.py + python3 scripts/audit_subset_cores.py + python3 scripts/audit_cube_cores.py + python3 scripts/audit_single_intersection.py + python3 scripts/audit_shared_core.py + python3 scripts/audit_general_guard.py + python3 scripts/audit_disjoint_tensor.py + python3 scripts/audit_core_limits.py + python3 scripts/audit_affine_vectors.py + python3 scripts/audit_block_core.py + python3 scripts/audit_complex_centers.py + python3 scripts/audit_inplace_side.py + python3 scripts/audit_quadratic_affine.py + python3 scripts/audit_signed_sparse.py + python3 scripts/audit_positive_side.py + python3 scripts/audit_parity_side.py + python3 scripts/audit_prime_subset_limits.py +.PHONY: skip-frame-verify +skip-frame-verify: + python3 scripts/experiments/verify_skip_frame.py + + +.PHONY: joint-dual-verify +joint-dual-verify: + python3 scripts/experiments/verify_joint_dual.py + python3 -m unittest discover -s tests -p 'test_joint_reclaim.py' -v + + +.PHONY: skip-strips-verify skip-strips-producer skip-strips-check +skip-strips-producer: + python3 research/skip-strips/producer.py + +skip-strips-check: + python3 research/skip-strips/audit.py + python3 research/skip-strips/verify.py --output research/skip-strips/certificate.json + cd research/skip-strips && python3 -m unittest discover -s ../../tests -p 'test_skip_strips.py' -v + +skip-strips-verify: skip-strips-producer skip-strips-check + +.PHONY: positive-skip-verify positive-skip-build positive-skip-check +positive-skip-build: + python3 scripts/audit_positive_skip_exact.py + +positive-skip-check: + python3 research/positive-skip/witness.py --output research/positive-skip/certificate.json + python3 -m unittest discover -s tests -p 'test_positive_skip.py' -v + +positive-skip-verify: positive-skip-build positive-skip-check + +.PHONY: split-skip-producer split-skip-check split-skip-verify +split-skip-producer: + python3 research/split-skip/producer.py --work-dir build/split-skip --output build/split-skip-receipt.json + +split-skip-check: + python3 research/split-skip/witness.py + python3 research/split-skip/independent_arithmetic.py + python3 -m unittest discover -s tests -p 'test_split_skip.py' -v + +split-skip-verify: split-skip-producer split-skip-check + +.PHONY: skip-suffix-verify skip-suffix-producer skip-suffix-check +skip-suffix-producer: + python3 research/skip-suffix/producer.py + +skip-suffix-check: + python3 research/skip-suffix/audit.py + python3 research/skip-suffix/verify.py --output research/skip-suffix/certificate.json + cd research/skip-suffix && python3 -m unittest discover -s ../../tests -p 'test_skip_suffix.py' -v + +skip-suffix-verify: skip-suffix-producer skip-suffix-check + +.PHONY: skip-clones-verify skip-clones-producer skip-clones-check +skip-clones-producer: + python3 research/skip-clones/producer.py + +skip-clones-check: + python3 research/skip-clones/witness.py --output research/skip-clones/certificate.json + python3 -m unittest discover -s tests -p 'test_skip_clones.py' -v + +skip-clones-verify: skip-clones-producer skip-clones-check + +.PHONY: verify-strips verify-clones verify-positive verify-joint formal-matrix-verify +verify-strips: skip-strips-verify skip-suffix-verify +verify-clones: skip-clones-verify split-skip-verify +verify-positive: positive-skip-verify +verify-joint: skip-frame-verify joint-dual-verify + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + +formal-verify: formal-matrix-verify +formal-matrix-verify: + mkdir -p build + cd research/matrix-exponent-synthesis && lake build + python3 scripts/check_lean_axioms.py --project research/matrix-exponent-synthesis --audit research/matrix-exponent-synthesis/AuditAll.lean + python3 research/matrix-exponent-synthesis/run_checks.py --work "$$(mktemp -d build/matrix-synthesis.XXXXXX)" + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: pair-assembly-verify pair-assembly-producer pair-assembly-check +pair-assembly-producer: + python3 research/pair-assembly/producer.py + +pair-assembly-check: + python3 research/pair-assembly/audit.py + python3 research/pair-assembly/verify.py --output research/pair-assembly/certificate.json + python3 research/pair-assembly/frame/frame_verify.py + cd research/pair-assembly && python3 -m unittest discover -s ../../tests -p 'test_pair_assembly.py' -v + +pair-assembly-verify: pair-assembly-producer pair-assembly-check + +.PHONY: verify-pair +verify-pair: pair-assembly-verify + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: deferred-signed-verify verify-deferred-signed +deferred-signed-verify: + python3 research/deferred-signed/verify.py + +verify-deferred-signed: + python3 research/deferred-signed/verify.py --replay diff --git a/references/signed-recursion/pr97/NOTICE b/references/signed-recursion/pr97/NOTICE new file mode 100644 index 0000000000..b565637758 --- /dev/null +++ b/references/signed-recursion/pr97/NOTICE @@ -0,0 +1,304 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. diff --git a/references/signed-recursion/pr97/README.md b/references/signed-recursion/pr97/README.md new file mode 100644 index 0000000000..6422615ac2 --- /dev/null +++ b/references/signed-recursion/pr97/README.md @@ -0,0 +1,160 @@ +# A sharper exponent for integer multiplication + +**Community research maintained by Douglas Colkitt — conditional on the original +OpenAI #109 framework.** + +The reviewed community witness gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\boxed{\kappa=\frac{25508460085039}{500000000000000000} +=5.1016920170078\times10^{-5}>2^{-15}}. +$$ + +This is **23.71% above the preceding PR #49 release** and remains below 2^-14. +It is an improvement in the asymptotic exponent saving, not a measured runtime +speedup. The model and general reduction are inherited from OpenAI's +[*Integer multiplication below n log n*](https://github.com/openai/math/tree/adc7f1241b42e322a6451854ab7e4b4c146bf78a/preprints/Integer-multiplication-below-n-log-n-September-23-2026). + +**[Maintainer review and contribution ledger](docs/research/community-round2-review.md)** · +[Finite circuit proof](research/pair-assembly/PROOF.md) · +[Selected parameter certificate](research/matrix-exponent-synthesis/candidate/arithmetic.json) · +[Independent arithmetic check](docs/research/community-pair-arithmetic.json) + +## What changed + +**Avi Eisenberg's interval strips and core-aware pair assembly (#62)** arrange +additions to allow more physical wire reuse. Combined with **eumemic's joint +frame compiler (#57)**, this yields the strongest finite network in this batch. +**Alejandro Zarzuelo Urdiales's exact parameter refinement and scoped Lean +certificate (#61)** supply the selected numerical value. + +The bit network has m=575 and 137,151,806 physical roles; its certified recursive +saving is 102039046058023/2000000000000000000. The complex network retains saving +717/10^7. All recursive children, workspace restoration, copied centers and +endpoint costs remain charged. The seven final exponent margins are strictly positive. + +The preceding combination of Avi's skip-prefix strips (#53), **Rohan Gupta's +dual-suffix layout (#55)**, eumemic's compiler and **Chafik Boukhalfa's composition +and ranked reclamation (#58/#60)** is also fully retained and reviewed. + +Other reviewed contributions are retained even when their numerical witnesses +are superseded: **RaD's enlarged-frame and clone machinery (#51)**, **Rohan Arun's +positive-frame composition and order searches (#52/#56)**, **Rohan Gupta's parallel +order search (#50)**, **Chafik's original-envelope clones (#54)**, and **Rohan Garg's +split-pair recursion (#59)**. The review records the exact validation scope of each. + +## Attribution + +The names below identify GitHub contributors; they are not verified Twitter handles. + +- **[Avi Eisenberg (ikeboy)](https://github.com/ikeboy):** skip-prefix and interval strips, core-aware pair assembly ([#53](https://github.com/CrocSwap/integer-mult-bounds/pull/53), [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62)). +- **[Rohan Gupta (gupt1156)](https://github.com/gupt1156):** dual-suffix strips and parallel order improvements ([#50](https://github.com/CrocSwap/integer-mult-bounds/pull/50), [#55](https://github.com/CrocSwap/integer-mult-bounds/pull/55)). +- **[eumemic](https://github.com/eumemic):** joint frame compilation and paid reclamation ([#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57)); earlier complex circuits, Gaussian resampling and source frames. +- **[Chafik Boukhalfa (chafreaky)](https://github.com/chafreaky):** exact recovery, independent checkers, reordered sums, paid clones and joint-compiler composition/refinement ([#43/#46/#48/#54/#58/#60](docs/research/community-round2-review.md)). +- **[Rohan Arun (rohanarun)](https://github.com/rohanarun):** corner geometry, fixed-basis composition, weighted matching, order searches and positive-frame composition ([#49](https://github.com/CrocSwap/integer-mult-bounds/pull/49), [#52](https://github.com/CrocSwap/integer-mult-bounds/pull/52), [#56](https://github.com/CrocSwap/integer-mult-bounds/pull/56)). +- **[Rohan Garg (rohangar1)](https://github.com/rohangar1):** split-pair recursion, order refinement and paid-clone composition ([#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59)). +- **[Alejandro Zarzuelo Urdiales (alejandrozu)](https://github.com/alejandrozu):** Gaussian parity and finite tensor proofs, matrix/search tools, exact refinement and scoped Lean arithmetic ([#45](https://github.com/CrocSwap/integer-mult-bounds/pull/45), [#61](https://github.com/CrocSwap/integer-mult-bounds/pull/61)). +- **[RaD project (hipotures)](https://github.com/hipotures):** semantic precision, routing, phase-cell inversion, bulk resampling, alternating producers, physical compiler and enlarged-frame/clone machinery ([#41](https://github.com/CrocSwap/integer-mult-bounds/pull/41), [#51](https://github.com/CrocSwap/integer-mult-bounds/pull/51)). +- **icekylinx:** recursive batching, partial swaps, fixed projector profiles, copied retained centers and the selected complex construction. +- **Zhihao Chen (jacklightChen):** controlled bases, translated frames, semantic/bulk compatibility and two-stage integration. +- **James Chang (jamesyc):** reversed two-stage geometry and exact controls. +- **Aurel Prosz (Paureel) and Swapnil Jain:** attributed two-stage development and paid copied-stream endpoints. +- **Dominik Scholz:** dimension, parameter and fixed-basis refinements. +- **Ryan S (princezuda):** historical Lean certificates, algebraic contracts and independent circuit checks ([#26](https://github.com/CrocSwap/integer-mult-bounds/pull/26)). +- **Andrew Barnes (Bortlesboat) and David Leen (dleen):** aligned pairing, retained totals and sharing. + +The [full contribution record](CONTRIBUTORS.md) credits incorporated, parallel, +superseded and pending work separately. Douglas Colkitt maintains the project, +original research, review and integration, with OpenAI Codex assistance. +OpenAI's original manuscript and Harvey–van der Hoeven's analytic work retain +their attribution. Contributor-specific AI disclosures remain in [NOTICE](NOTICE). + +## Evidence and limits + +The [round-two review](docs/research/community-round2-review.md) extends the +[previous follow-up audit](docs/research/community-followup-review.md) and +[PR #39 transfer review](docs/research/community-final-audit.md). The original +#109 framework and retained all-size interfaces remain assumptions. This is not +full formal verification, independent human peer review, a worldwide priority +claim, or a practical multiplication benchmark. + +Fresh checks cover complete emitted words and dirty basis vectors, physical +frame transitions, exact fixed-basis profiles, all 4,073,300 data pairs for the +retained geometry, and independent rational recurrence/assembly arithmetic. +The formal packages verify their stated finite/arithmetic contracts. PR #61's +integrated axiom audit contains 169 distinct declarations, including 11 concrete +frontier theorems; its input rows are bound to the replayed finite profile. +They do not formalize the whole multiplication algorithm. + +The [review receipt](docs/research/community-round2-validation.json) distinguishes +fresh maintainer checks from contributor-supplied evidence. Earlier witnesses, +patches and attribution remain available. Submissions after #62 are outside this checkpoint's review; exact reviewed heads +are recorded in the ledger. + +## Reproduce + +```sh +make verify-pair +make verify-joint +make verify-positive +make formal-matrix-verify +# Complete arithmetic, producer, historical and unit-test suite: +make verify +``` + +Python 3.11+, a C++17 compiler and Boost headers are required for the full +arithmetic suite. The formal targets use their pinned Lean versions. See +[reproduction details](docs/reproducibility.md) and [CI layout](docs/ci-verification.md). + +## Historical witnesses and independent patches + + +Each patch applies independently to the **unmodified** pinned source; they are +alternatives, not a sequence to apply together. The +[result history](docs/research/result-history.md) records the earlier mechanisms +and scoped ceilings. The [preserved research index](docs/research/preserved-research.md) +collects the intermediate compression, routing, Fano, and core searches, including +scoped negative results and reproducible certificates. + +| Patch | Conditional saving | Scope | +| --- | --- | --- | +| [frozen-154](patches/frozen-154.patch) | `2^-154` | Original network and recurrence exponents | +| [balanced-153](patches/balanced-153.patch) | `2^-153` | Balanced assembly parameters | +| [same-network-129](patches/same-network-129.patch) | `2^-129` | Original network, sharper recurrence comparison | +| [h46-111](patches/h46-111.patch) | `2^-111` | Smaller network, dyadic parameters | +| [h46-109](patches/h46-109.patch) | `2^-109` | Rational recurrence saving, strict final margin | +| [h46-108](patches/h46-108.patch) | `2^-108` | Variable stopping exponent | +| [h46-rational](patches/h46-rational.patch) | `5.8e-33` | Strongest supplied parameter-only witness | +| [nonadjacent-layout](patches/nonadjacent-layout.patch) | Original parameters retained | Routing proof and revised layout cost only | +| [frozen-nonadjacent-107](patches/frozen-nonadjacent-107.patch) | `2^-107` | Direct routing, original network and recurrence exponents | +| [h46-nonadjacent-78](patches/h46-nonadjacent-78.patch) | `2^-78` | Direct routing with the h = 46 network | +| [h46-nonadjacent-76](patches/h46-nonadjacent-76.patch) | `2^-76` | Direct routing with tuned dimension and stopping parameters | +| [h46-shared-side-75](patches/h46-shared-side-75.patch) | `2^-75` | Stage-1/stage-3 side-role sharing, routing, and parameter tuning | +| [h46-incidence-67](patches/h46-incidence-67.patch) | `2^-67` | Rectangle incidence circuits, full auxiliary sharing, routing, and parameter tuning | +| [h46-dag-63](patches/h46-dag-63.patch) | `2^-63` | Shared intermediate sums and reversible role allocation | +| [h46-shared-point](patches/h46-shared-point.patch) | `13*2^-66` | Cross-group sharing | +| [h50-paired-59](patches/h50-paired-59.patch) | `2^-59` | Paired sums, stopped guard and tighter Gaussian setup | +| **[compact-control-34](patches/compact-control-34.patch)** | **`83/10^12 > 2^-34`** | **Compact controls, complete reservations, local repair and separate complex arity** | +| [complex-compression-31](patches/complex-compression-31.patch) | `2^-31` | Weighted complex circuits, binary phase frames and complete auxiliary sharing | +| **[ternary-30](patches/ternary-30.patch)** | **`2^-30`** | **Ternary five-subset circuit, rational frames and fixed-alphabet interchange** | + +## Citation and license + +Use [CITATION.cff](CITATION.cff), cite the individual contributions used and +include the repository version or commit. [CONTRIBUTORS.md](CONTRIBUTORS.md), +[NOTICE](NOTICE) and source-specific manifests preserve the dependency credits. + +The project is [Apache-2.0](LICENSE). Bundled RaD sources retain their separate +CC0 license and notices. The pinned original OpenAI manuscript remains unchanged +under `upstream/`; its source hashes are in [upstream/manifest.json](upstream/manifest.json). +This project is not an official OpenAI release or endorsement. + +## Additional conditional interface audit + +[Deferred endpoints and signed complex transfer](research/deferred-signed/README.md) +provides an independently audited integration of pinned Swapnil round7/round6 +networks with the retained main assembly, certifying `kappa=63965813/10^12 > 2^-14`. +The [proof](research/deferred-signed/PROOF.md) states the inherited analytic and +fixed-tape conditions and distinguishes this contribution from the maintainer-reviewed +release and the external author's different assembly. No global priority claim is made. diff --git a/references/signed-recursion/pr97/certificates/joint-dual-kappa.json b/references/signed-recursion/pr97/certificates/joint-dual-kappa.json new file mode 100644 index 0000000000..b2ca936d42 --- /dev/null +++ b/references/signed-recursion/pr97/certificates/joint-dual-kappa.json @@ -0,0 +1,894 @@ +{ + "assembly": { + "absorption_gap": "7401662048960220224568349/2500119118508849761762982300000000000000", + "constraints": { + "K_dominates_log": "70069711455672143807544257786481/1470658305005205742213519000000000000", + "K_geometry": "18751191185094747617629823/25001191185088497617629823000000000000", + "a_below_b": "1202629823/50000000000000", + "a_positive": "2382370177/50000000000000", + "alpha_below_one": "49999999999975001191185088497617629823/50002382370176995235259646000000000000", + "alpha_below_one_fourth": "12498213222342254764740353997617629823/50002382370176995235259646000000000000", + "alpha_positive": "2382370201994044074557502382370177/50002382370176995235259646000000000000", + "artificial_boundary": "1400076235845938851101863937492852889469/200009529480707980941038584000000000000", + "b_below_one_over32": "311783/10000000", + "beta_below_one": "19/20", + "beta_positive": "1/20", + "c_below_one": "24998808814905252382370177/25000000000000000000000000", + "c_positive": "1191185094747617629823/25000000000000000000000000", + "cell_above_band": "49999999999924998808814911502382370177/100004764740353990470519292000000000000", + "compact_leaf": "511689911502382370177/25000000000000000000000000", + "compact_reservations": "1/4000000000000", + "delta_below_one_eighth": "999999999999/8000000000000", + "delta_positive": "1/8000000000000", + "epsilon_below_one": "1191185113497617629823/25001191185088497617629823", + "epsilon_positive": "24999999999975000000000000/25001191185088497617629823", + "g1_above_kappa": "2507520780557809981987550649/2500119118508849761762982300000000000000", + "g2_above_kappa": "227017/100000000000000", + "g3_above_kappa": "7401662048960220224568349/2500119118508849761762982300000000000000", + "g4_above_kappa": "227017/100000000000000", + "g5_above_kappa": "1889892662979557761771373423/5000238237017699523525964600000000000000", + "g6_above_kappa": "4390011781488407523534355723/5000238237017699523525964600000000000000", + "g7_above_kappa": "2499880881488657759017575509981987550649/2500119118508849761762982300000000000000", + "gamma_sublinear": "1/2000000000000", + "guard_width": "1191185113497617629823/25001191185088497617629823", + "lambda_above_internal": "2382370177/50000000000000000000000000", + "lambda_above_sigma": "1202629823002382370177/50000000000000000000000000", + "lambda_above_tau": "2382370177/50000000000000000000000000", + "lambda_prime_above_lambda": "2382370177/50000000000000000000000000", + "lambda_prime_below_one": "1191185088497617629823/25000000000000000000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "phase_boundary": "1905896156594997022628302382370177/40001905896141596188207716800000000000", + "phase_leaf_above_bit": "1023379823/50000000000000", + "phase_local": "9529480882979749853495502382370177/200009529480707980941038584000000000000", + "prime_interval_packing": "1191185113497617629823/25001191185088497617629823", + "q_below_internal": "2382370177/25000000000000000000000000", + "q_below_leaf": "511689911502382370177/25000000000000000000000000", + "q_below_reservations": "1/4000000000000", + "q_positive": "1191185088497617629823/25000000000000000000000000", + "record_suffix": "1191185113497617629823/25001191185088497617629823", + "row_product_gap": "6548/25", + "short_record_fallback": "1249940437906481169876170023160259011329/1250059559254424880881491150000000000000", + "small_field_exposure": "1/1000000000000" + }, + "finite_bridge": { + "bit": { + "W": 150167598, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "margins": { + "g1": "1191185113497617629823/25001191185088497617629823", + "g2": "2382370177/50000000000000", + "g3": "1191185088496426444734502382370177/25001191185088497617629823000000000000", + "g4": "2382370177/50000000000000", + "g5": "1905896156594997022628302382370177/40001905896141596188207716800000000000", + "g6": "9529480882979749853495502382370177/200009529480707980941038584000000000000", + "g7": "24999999999975000000000000/25001191185088497617629823" + }, + "minimum_margin": "1191185088496426444734502382370177/25001191185088497617629823000000000000", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": "1", + "a_bit": "2382370177/50000000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "2382370201994044074557502382370177/50002382370176995235259646000000000000", + "beta": "1/20", + "c": "1191185094747617629823/25000000000000000000000000", + "delta": "1/8000000000000", + "epsilon": "24999999999975000000000000/25001191185088497617629823", + "h": "1/1000000000000", + "kappa": "4764513337/100000000000000", + "lambda_": "49997617629823002382370177/50000000000000000000000000", + "lambda_prime": "24998808814911502382370177/25000000000000000000000000", + "q": "1191185088497617629823/25000000000000000000000000", + "sigma": "9999283/10000000", + "tau": "49997617629823/50000000000000" + }, + "recurrence": { + "internal": "49997617629823/50000000000000", + "leaf": "199986377/200000000", + "reservations": "24998808814905252382370177/25000000000000000000000000" + }, + "scoped_limit": "2382370177/50002382370177" + }, + "bit": { + "L": 2226400, + "N": 4073300, + "W": 150167598, + "axes": [ + { + "R": 30688, + "blocks": [ + 0, + 295165, + 23116, + 14929, + 8678, + 7127, + 5614, + 5667, + 3833, + 3467, + 2468, + 2252, + 1541, + 1251, + 796, + 569, + 351, + 170, + 88, + 0, + 6, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6119, + "distinct_matrices": 59806, + "field_prime": 2305843009213693951, + "frames": 36628, + "h": 23, + "loss": 506, + "rank_sum": 706330, + "v": 1771 + }, + { + "R": 40338, + "blocks": [ + 0, + 392264, + 31696, + 17641, + 10483, + 10153, + 8131, + 7789, + 5284, + 5101, + 3815, + 3775, + 2524, + 2199, + 1587, + 1270, + 833, + 615, + 403, + 158, + 86, + 0, + 6, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8164, + "distinct_matrices": 80519, + "field_prime": 2305843009213693951, + "frames": 48677, + "h": 25, + "loss": 600, + "rank_sum": 1009050, + "v": 2300 + } + ], + "child_multiplicities": { + "1": 1467264944, + "10": 12432765, + "11": 11865125, + "12": 8014304, + "13": 6771729, + "14": 4641377, + "15": 3557870, + "16": 2282543, + "17": 9626765, + "18": 916113, + "19": 279818, + "2": 109300416, + "20": 166106, + "21": 16346100, + "22": 10626, + "23": 78773275, + "25": 71438598, + "3": 65578911, + "4": 38524793, + "481": 8146600, + "5": 34373063, + "525": 71438598, + "529": 70582400, + "6": 27312201, + "7": 26828419, + "8": 18173864, + "9": 17007971 + }, + "deficit": 1846900, + "excluded_above_lower": "12013407840000034617567119163331256900156106920131838221089028243144481748920822043062786157678234846850265579427770519315398464959457497921/12013407840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "m": 575, + "maxchild": 529, + "moment": { + "exponent": "49997617629823/50000000000000", + "logarithms": { + "1": { + "lower": "3177185020398675220004135749131/500000000000000000000000000000", + "upper": "6354370040797350440008271498263/1000000000000000000000000000000" + }, + "10": { + "lower": "2025892473901652377995140021789/500000000000000000000000000000", + "upper": "4051784947803304755990280043579/1000000000000000000000000000000" + }, + "11": { + "lower": "3956474767998979895946327920297/1000000000000000000000000000000", + "upper": "1978237383999489947973163960149/500000000000000000000000000000" + }, + "12": { + "lower": "3869463391009350129778562018423/1000000000000000000000000000000", + "upper": "483682923876168766222320252303/125000000000000000000000000000" + }, + "13": { + "lower": "3789420683335813703954784056697/1000000000000000000000000000000", + "upper": "1894710341667906851977392028349/500000000000000000000000000000" + }, + "14": { + "lower": "3715312711182091825485686633361/1000000000000000000000000000000", + "upper": "1857656355591045912742843316681/500000000000000000000000000000" + }, + "15": { + "lower": "3646319839695140374012266928113/1000000000000000000000000000000", + "upper": "1823159919847570187006133464057/500000000000000000000000000000" + }, + "16": { + "lower": "3581781318557569202339343012429/1000000000000000000000000000000", + "upper": "358178131855756920233934301243/100000000000000000000000000000" + }, + "17": { + "lower": "3521156696741134359758736880389/1000000000000000000000000000000", + "upper": "352115669674113435975873688039/100000000000000000000000000000" + }, + "18": { + "lower": "3463998282901185747800548902959/1000000000000000000000000000000", + "upper": "43299978536264821847506861287/12500000000000000000000000000" + }, + "19": { + "lower": "1704965530815454989999622033187/500000000000000000000000000000", + "upper": "27279448493047279839993952531/8000000000000000000000000000" + }, + "2": { + "lower": "1415305715059351282647759844201/250000000000000000000000000000", + "upper": "1132244572047481026118207875361/200000000000000000000000000000" + }, + "20": { + "lower": "83965944181083986164326198053/25000000000000000000000000000", + "upper": "3358637767243359446573047922121/1000000000000000000000000000000" + }, + "21": { + "lower": "413730950384240930438459189737/125000000000000000000000000000", + "upper": "3309847603073927443507673517897/1000000000000000000000000000000" + }, + "22": { + "lower": "3263327587439034586529095798839/1000000000000000000000000000000", + "upper": "81583189685975864663227394971/25000000000000000000000000000" + }, + "23": { + "lower": "804718956217050187300379666613/250000000000000000000000000000", + "upper": "3218875824868200749201518666453/1000000000000000000000000000000" + }, + "25": { + "lower": "313549421592914969080675283181/100000000000000000000000000000", + "upper": "3135494215929149690806752831811/1000000000000000000000000000000" + }, + "3": { + "lower": "262787887606462037430651313067/50000000000000000000000000000", + "upper": "5255757752129240748613026261341/1000000000000000000000000000000" + }, + "4": { + "lower": "2484037839838729910586903627673/500000000000000000000000000000", + "upper": "4968075679677459821173807255347/1000000000000000000000000000000" + }, + "481": { + "lower": "35700554138317851917337677133/200000000000000000000000000000", + "upper": "89251385345794629793344192833/500000000000000000000000000000" + }, + "5": { + "lower": "1186233032090812516351878041259/250000000000000000000000000000", + "upper": "4744932128363250065407512165037/1000000000000000000000000000000" + }, + "525": { + "lower": "22742944551431673576538712861/250000000000000000000000000000", + "upper": "18194355641145338861230970289/200000000000000000000000000000" + }, + "529": { + "lower": "41690804469525529197382917321/500000000000000000000000000000", + "upper": "83381608939051058394765834643/1000000000000000000000000000000" + }, + "6": { + "lower": "4562610571569295439195794139881/1000000000000000000000000000000", + "upper": "2281305285784647719597897069941/500000000000000000000000000000" + }, + "7": { + "lower": "4408459891742037134902918754819/1000000000000000000000000000000", + "upper": "220422994587101856745145937741/50000000000000000000000000000" + }, + "8": { + "lower": "66795757798711164246196486467/15625000000000000000000000000", + "upper": "4274928499117514511756575133889/1000000000000000000000000000000" + }, + "9": { + "lower": "4157145463461131057217781024417/1000000000000000000000000000000", + "upper": "2078572731730565528608890512209/500000000000000000000000000000" + } + }, + "lower": "62569832499999899392275603731346766293953892347319528338377823689752779896809682699447926388641079802045017133374639615259668355101510629421/62569832500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "saving": "2382370177/50000000000000", + "strict_gap": "11248867897494845154891616121507648616029613798440244185600293734158263471617895676562393874205254253352374095904292375982443200389619751303283058885104343049812602560376157687920356349498145019467835124267960389791949480785895219534410086752610528496134981522766250605114200251247969178843023677633856349737858770092708283505242367600087389364016809162679682458221432506278877797422951185004774111384821544516902846815234697572379959639575748613883959126826966162116613130203803323770502839316680667407764292282559257298313634149693862264726732391016108266044220827816842982914767591124205865555732949411372727996669364946168248395305817029141575234927075027601369437530312274421681476392032478597100484064587308366564085204755540290294812766390136319278613531681584095568938797541348129806431224326074338320940219050008521642096161157760090511466937206498307246648019142090943579110089990942176492580691186069735381757561740899141495335329988406298036751085645385267568665135857509434544222774840769081484278851183254316788634771117029868233066945076374751682789648696704418170063047301632250489972041706333573467636583496462339503300059359507449846849085637706753621681105559375517879190265604985785301/7050475645855995397025483461334456166981237862846688196471908484762912208008806020683917988298778241533610179304376114677682493311558334116187495793656825188715429015995328839820256326968903045866574892756408694428082170705820435817293637840564169558735565723764467285553252163860919946593506200786792091475161832030913828716223573529590557555706373324456970673381354988972608732444407003283260500452980328336627387325938246083357180980042422170879181796262719216857978142285190365015473768076339250172763941264273951943209448095547763578705649431386152540772394084295310824464899755119870728403759576423382217762396079827245331057707978205396706742444461439537569722671077298352299420691971976875381381069063781241162303496177416827419420810821194231108853454341880715317843591148089909389441183600491563517314289610544194921141807691944224364000661563194585266717981805641123189055036121883003314772817119623816812367109358126179032965274056696625280360755536918776214113298628832007250770173939148554039327367458738263836709977430218558546568129230209383274676654149524170503299996024654761763663441726531600935892812764509314700488044567006537928183588756592093308675253000000000000000000000000000000000000000000000", + "upper": "7050475645855984148157585966489301275365116355198072166858110044518726607715071862420446370403101679139735974050122762303586589019182351672987106173905521905656543911652279027217695950811215125510225394611389226592957902745430643867812851945344635148648813113235971150571729397610314832393254952817613248451484198174564090857453480821307052313338773237067606656572192309290150511011900724405463077501795323562516002504393729180510365745344849790919542220514105332898851315319028248402343564273015479669924624583606544178917165536290465265071499737523887814040003068187044780244071938276887813636168452217516662029446668454517334388343032037148311436627432297962334795596049696982861890379697555193904989036585184140678238908869050263334216055280903936296087064205561436704311909563994340450643642252361757086089963536205873980922757683422582267839503803104073799780775307333876541035894030939424204682826177447324231675923288390797275403533157555129945030767130620739463027653243564438585634316429714009816552526689656779557858794175901769911797012200341150207731577774772487713651299320236591700616140094281110963851106430935847063904548104667034628124229249142246459589615293246378318894440624482120809734395014214699/7050475645855995397025483461334456166981237862846688196471908484762912208008806020683917988298778241533610179304376114677682493311558334116187495793656825188715429015995328839820256326968903045866574892756408694428082170705820435817293637840564169558735565723764467285553252163860919946593506200786792091475161832030913828716223573529590557555706373324456970673381354988972608732444407003283260500452980328336627387325938246083357180980042422170879181796262719216857978142285190365015473768076339250172763941264273951943209448095547763578705649431386152540772394084295310824464899755119870728403759576423382217762396079827245331057707978205396706742444461439537569722671077298352299420691971976875381381069063781241162303496177416827419420810821194231108853454341880715317843591148089909389441183600491563517314289610544194921141807691944224364000661563194585266717981805641123189055036121883003314772817119623816812367109358126179032965274056696625280360755536918776214113298628832007250770173939148554039327367458738263836709977430218558546568129230209383274676654149524170503299996024654761763663441726531600935892812764509314700488044567006537928183588756592093308675253000000000000000000000000000000000000000000000" + }, + "parts": { + "data": { + "1": 73319400, + "17": 8146600, + "21": 8146600, + "481": 8146600 + }, + "data_growth_23": { + "1": 8146600, + "21": 8146600 + }, + "data_growth_25": { + "1": 8146600, + "23": 8146600 + }, + "exterior_23": { + "23": 70582400, + "529": 70582400 + }, + "exterior_25": { + "25": 71438598, + "525": 71438598 + }, + "internal_23": { + "1": 678879500, + "10": 5676400, + "11": 5179600, + "12": 3544300, + "13": 2877300, + "14": 1830800, + "15": 1308700, + "16": 807300, + "17": 391000, + "18": 202400, + "2": 53166800, + "20": 13800, + "21": 52900, + "3": 34336700, + "4": 19959400, + "5": 16392100, + "6": 12912200, + "7": 13034100, + "8": 8815900, + "9": 7974100 + }, + "internal_25": { + "1": 694699544, + "10": 6756365, + "11": 6685525, + "12": 4470004, + "13": 3894429, + "14": 2810577, + "15": 2249170, + "16": 1475243, + "17": 1089165, + "18": 713713, + "19": 279818, + "2": 56133616, + "20": 152306, + "22": 10626, + "23": 44275, + "3": 31242211, + "4": 18565393, + "5": 17980963, + "6": 14400001, + "7": 13794319, + "8": 9357964, + "9": 9033871 + }, + "paid_endpoint_copy": { + "1": 4073300 + } + }, + "total_rank": 86344521950, + "words": [ + { + "R": 30688, + "copied_centers": 23, + "distinct_transitions": 116867, + "frames": 36628, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 52653, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "2": 32919, + "21": 27, + "22": 23, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331 + }, + "rank_mass": 706330, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "c83396d1ea5427eed332c45931d59ed0c8ea5eae23d16e0ea909854d41796d1e" + }, + { + "R": 40338, + "copied_centers": 25, + "distinct_transitions": 155235, + "frames": 48677, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 68402, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "2": 43162, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860 + }, + "rank_mass": 1009050, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "6f6dca829728cb01e6c425ada5878884b13bc6362e0ae2144347bde8a5852dbf" + } + ] + }, + "bit_saving": "2382370177/50000000000000", + "bit_saving_excluded_above": "952948071/20000000000000", + "comparison": { + "absolute_gain_pr57": "47535473/50000000000000", + "absolute_gain_pr58": "13777647/100000000000000", + "next_dyadic_reached": false, + "next_kappa_grid_rejected": true, + "pr48_kappa": "411862541/10000000000000", + "pr53_kappa": "140567/3125000000", + "pr54_claimed_kappa": "141532521/3125000000000", + "pr57_exclusion_lower": "37373865926770942159707184306911595810153068533362487492202378826323366811849201648233884715609887474608142528318795265032041655488927125257/37373850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pr57_kappa": "4669442391/100000000000000", + "pr58_commit": "bc2f7ed4c20dc18898305ab17165c0c995cbb804", + "pr58_exclusion_lower": "352953457772844733624423882261598145683419237923805904604166830371689327798919104195102399813801144393990139677678408846728723011183623070513/352953435937500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pr58_kappa": "475073569/10000000000000", + "ratio_pr53": "4764513337/4498144000", + "ratio_pr54": "4764513337/4529040672", + "ratio_pr57": "4764513337/4669442391", + "ratio_pr58": "4764513337/4750735690" + }, + "dependencies": { + "data_profile": "Unchanged inherited all-pairs data profile: 9 singletons +21+17+481; ten exact rational recoveries", + "geometry": "Unchanged fixed-I+J original-envelope projector and CRT formulas", + "producer": "Unchanged PR55 dual-skip graph; PR58 joint compilation with descending current frame rank for retired-slot selection; complete serialized physical words", + "proof_scope": "Ordered affine residual compiler, fixed-tape recursion, finite scalar overhead, balanced transfer, analytic/routing/recovery interfaces remain inherited." + }, + "eventual_bounds": { + "additional_eventual_conditions": [ + "BHP prime threshold and distinct-prime packing", + "Fixed rational basis, eligible common prime and native table setup", + "Catalogue/descriptor domination, logarithm absorption, exact recovery" + ], + "all_interval_argument": "For [Z,Z+k), bound RHS at Z+k and LHS at floor(Z/k). Successive intervals double LHS; the positive affine RHS grows at most linearly, so 2^j >= j+1 proves persistence.", + "common_cutoff": 14000000000000, + "cutoff_log2_input": { + "alpha": 7048609937, + "compact": 28194439745, + "geometry": 3999936474164, + "guard": 4659448, + "log_p": 25, + "normalization": 14000000000000, + "period": 56388879489, + "phase_cell": 19, + "reservoir": 14, + "stopped_leaf": 252 + }, + "power_checkpoints": [ + { + "log2_input": 14000000000000, + "powers": { + "alpha": { + "exponent": 667016056, + "rhs": 112000000167976, + "rhs_bits": 47 + }, + "compact": { + "exponent": 667016056, + "rhs": 448000000671840, + "rhs_bits": 49 + }, + "leaf": { + "exponent": 666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 667016056, + "rhs": 224000000335880, + "rhs_bits": 48 + }, + "rows": { + "exponent": 667016056, + "rhs": 112000000167976000, + "rhs_bits": 57 + } + } + }, + { + "log2_input": 28000000000000, + "powers": { + "alpha": { + "exponent": 1334032112, + "rhs": 224000000167976, + "rhs_bits": 48 + }, + "compact": { + "exponent": 1334032112, + "rhs": 896000000671840, + "rhs_bits": 50 + }, + "leaf": { + "exponent": 1333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 1334032112, + "rhs": 448000000335880, + "rhs_bits": 49 + }, + "rows": { + "exponent": 1334032112, + "rhs": 224000000167976000, + "rhs_bits": 58 + } + } + }, + { + "log2_input": 56000000000000, + "powers": { + "alpha": { + "exponent": 2668064224, + "rhs": 448000000167976, + "rhs_bits": 49 + }, + "compact": { + "exponent": 2668064224, + "rhs": 1792000000671840, + "rhs_bits": 51 + }, + "leaf": { + "exponent": 2666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 2668064224, + "rhs": 896000000335880, + "rhs_bits": 50 + }, + "rows": { + "exponent": 2668064224, + "rhs": 448000000167976000, + "rhs_bits": 59 + } + } + }, + { + "log2_input": 112000000000000, + "powers": { + "alpha": { + "exponent": 5336128448, + "rhs": 896000000167976, + "rhs_bits": 50 + }, + "compact": { + "exponent": 5336128448, + "rhs": 3584000000671840, + "rhs_bits": 52 + }, + "leaf": { + "exponent": 5333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 5336128448, + "rhs": 1792000000335880, + "rhs_bits": 51 + }, + "rows": { + "exponent": 5336128448, + "rhs": 896000000167976000, + "rhs_bits": 60 + } + } + }, + { + "log2_input": 224000000000000, + "powers": { + "alpha": { + "exponent": 10672256896, + "rhs": 1792000000167976, + "rhs_bits": 51 + }, + "compact": { + "exponent": 10672256896, + "rhs": 7168000000671840, + "rhs_bits": 53 + }, + "leaf": { + "exponent": 10666666666666, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 10672256896, + "rhs": 3584000000335880, + "rhs_bits": 52 + }, + "rows": { + "exponent": 10672256896, + "rhs": 1792000000167976000, + "rhs_bits": 61 + } + } + }, + { + "log2_input": 448000000000000, + "powers": { + "alpha": { + "exponent": 21344513792, + "rhs": 3584000000167976, + "rhs_bits": 52 + }, + "compact": { + "exponent": 21344513792, + "rhs": 14336000000671840, + "rhs_bits": 54 + }, + "leaf": { + "exponent": 21333333333333, + "rhs": 3136, + "rhs_bits": 12 + }, + "period": { + "exponent": 21344513792, + "rhs": 7168000000335880, + "rhs_bits": 53 + }, + "rows": { + "exponent": 21344513792, + "rhs": 3584000000167976000, + "rhs_bits": 62 + } + } + } + ], + "practical_runtime_claim": false + }, + "exactness": [ + { + "common_denominator_bound": 34848, + "correction_numerator_bound": 274032, + "h": 23, + "minor_bounds": { + "2": 38218181861376, + "3": 219993996697351151616, + "4": 1206074983422622280129445888 + }, + "modulus_gaps": { + "2": 2305804791031832575, + "3": 2596143476298113163849933497114623, + "4": 2596142270223349735224350718820351 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 6228 + }, + { + "common_denominator_bound": 44928, + "correction_numerator_bound": 353568, + "h": 25, + "minor_bounds": { + "2": 75405344477184, + "3": 613343016893987684352, + "4": 4772090401825349199521120256 + }, + "modulus_gaps": { + "2": 2305767603869216767, + "3": 2596143476297719814829736860581887, + "4": 2596138704207931332497431327145983 + }, + "prime_product": 2596143476298333157846630848266239, + "primes": [ + 2305843009213693951, + 2147483647, + 524287 + ], + "single_numerator_bound": 7366 + } + ], + "finite_bridge": { + "bit": { + "W": 150167598, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "kappa": "4764513337/100000000000000", + "local_source_sha256": { + "scripts/experiments/binary_frame_compiler.py": "bc6910c8bbe8224285164323d3c06e9035ad3eaa55416abc2867ae0066454a0c", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_compiler.py": "853d3fc4a740c5b74c23b3a6af5d4dc9b41fb38e9b55678539a7e0ee71947c13", + "scripts/experiments/joint_dual_compose.py": "741900aa6f69c0e3458700f3b534334269004ad80c50405ecfeda18e6d3f2800", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_joint_dual_sources.py": "4d31cc0e38b7902709ca5f8f714cba109760d2592346dd7f8dc0b900a2d9fe00", + "scripts/experiments/verify_joint_dual.py": "7a31bba1e9c0ded32ae285df2ca9bc91ef20c330f6789fdba361876f3c7a1985" + }, + "source_manifest_sha256": "0f2bc2e6d72534ab3884d050abdc328b112cbc4296e6cc04516f65ab87ee96b2", + "sources": [ + { + "files": { + "research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" + }, + "head": "b7194b8586844956904b33e9fe18f0c75606c11b", + "scope": "Unmodified producer inputs for experimental frame compiler; attribution retained in each file", + "source_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/48" + }, + { + "author": "Rohan Gupta / gupt1156 with Anthropic Claude assistance", + "commit": "03e991aa79f9df1a935726213bb6a8631cd0d823", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "40a3066696e0de23e46b565460d19e85b435990ba837da5c1ca925335f4ba829", + "research/skip-suffix/skip_graph.py": "7c4781dcc3c134befd8abf295d1e71a99fbbe932112fb56bd5d36e79896ca5f7" + }, + "shared_dependency_manifest": "../pr48/SOURCE.json", + "shared_dependency_manifest_sha256": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "upstream": "https://github.com/CrocSwap/integer-mult-bounds/pull/55" + }, + { + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "commit": "bc2f7ed4c20dc18898305ab17165c0c995cbb804", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "42190595687521b47eb45231d85e3dcb09ae6359d8a232bc7250824d5076ccc9", + "README.md": "da14f42ddaad466799dd8944e2a05cf8f8f4ced392513d0198553e1f587fa7ef", + "certificates/joint-dual-kappa.json": "c05631d319c71ca6c91e8422cee9d617d9b0056ebf971db8282b041613b09025", + "certificates/joint-dual-repository-validation.json": "a8caabfc0a475a6c2deaeafec5b141825d1359fb9cebb35939ef97c7a1315cd6", + "research/joint-dual/PROOF.md": "dccf893d6f6e8be7d40192b7976aa6712a32d7573e382c16056b703c29780b0d", + "research/joint-dual/README.md": "0f991088d65eb1d528b986568c3ddfe0f072d1f53837e046de8148dfb098e561", + "research/joint-dual/SOURCE.json": "7af117467d06baf9b073a081e62f928e4a06b074c1274f2479587e3400b428d8" + }, + "repository_validation_commit": "96c52fb81cab6e714768e00ca33ca7f004ebcac4", + "scope": "Complete byte-identical PR58 comparison certificate and source/proof provenance at the tested construction commit; repository-validation receipt from the separately pinned receipt-only head. Historical source and physical-word closure remains available at the ancestor construction commit.", + "upstream": "https://github.com/CrocSwap/integer-mult-bounds/pull/58" + } + ], + "status": "Conditional exact fixed-basis moment and balanced assembly; inherited transfer hypotheses remain assumed" +} diff --git a/references/signed-recursion/pr97/certificates/joint-dual-validation.json b/references/signed-recursion/pr97/certificates/joint-dual-validation.json new file mode 100644 index 0000000000..a7cc93a3bd --- /dev/null +++ b/references/signed-recursion/pr97/certificates/joint-dual-validation.json @@ -0,0 +1,237 @@ +{ + "axes": { + "23": { + "profile": { + "R": 30688, + "blocks": [ + 0, + 295165, + 23116, + 14929, + 8678, + 7127, + 5614, + 5667, + 3833, + 3467, + 2468, + 2252, + 1541, + 1251, + 796, + 569, + 351, + 170, + 88, + 0, + 6, + 23, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 6119, + "distinct_matrices": 59806, + "field_prime": 2305843009213693951, + "frames": 36628, + "h": 23, + "loss": 506, + "rank_sum": 706330, + "v": 1771 + }, + "replay": { + "elementary_xors": 112534, + "full_basis_vectors": 34230, + "h": 23, + "histogram": { + "0": 121045, + "1": 42027, + "2": 38232, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "21": 27, + "22": 23 + }, + "output_roles": 5336, + "rank_mass": 706330, + "roles": 30688, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 474930 + }, + "transitions": { + "R": 30688, + "copied_centers": 23, + "distinct_transitions": 116867, + "frames": 36628, + "h": 23, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 52653, + "2": 32919, + "3": 6306, + "4": 18054, + "5": 8192, + "6": 4437, + "7": 1089, + "8": 3900, + "9": 331, + "10": 2566, + "11": 385, + "12": 2901, + "13": 115, + "14": 3245, + "15": 544, + "16": 1935, + "17": 187, + "18": 8185, + "19": 4473, + "21": 27, + "22": 23 + }, + "rank_mass": 706330, + "singles": 15939, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 1771, + "word_sha256": "c83396d1ea5427eed332c45931d59ed0c8ea5eae23d16e0ea909854d41796d1e" + } + }, + "25": { + "profile": { + "R": 40338, + "blocks": [ + 0, + 392264, + 31696, + 17641, + 10483, + 10153, + 8131, + 7789, + 5284, + 5101, + 3815, + 3775, + 2524, + 2199, + 1587, + 1270, + 833, + 615, + 403, + 158, + 86, + 0, + 6, + 25, + 0, + 0 + ], + "crt_disagreements": 0, + "crt_matrices": 8164, + "distinct_matrices": 80519, + "field_prime": 2305843009213693951, + "frames": 48677, + "h": 25, + "loss": 600, + "rank_sum": 1009050, + "v": 2300 + }, + "replay": { + "elementary_xors": 148820, + "full_basis_vectors": 44938, + "h": 25, + "histogram": { + "0": 159745, + "1": 54602, + "2": 50062, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25 + }, + "output_roles": 6925, + "rank_mass": 1009050, + "roles": 40338, + "status": "independent serialized word, exact frames, full input and dirty basis both orientations PASS", + "word_length": 627480 + }, + "transitions": { + "R": 40338, + "copied_centers": 25, + "distinct_transitions": 155235, + "frames": 48677, + "h": 25, + "rank_histogram_with_side_growth_split_into_singletons": { + "1": 68402, + "2": 43162, + "3": 8295, + "4": 24232, + "5": 10287, + "6": 4330, + "7": 1843, + "8": 5262, + "9": 860, + "10": 3073, + "11": 85, + "12": 3381, + "13": 310, + "14": 3389, + "15": 113, + "16": 4218, + "17": 630, + "18": 2510, + "19": 369, + "20": 10763, + "21": 5705, + "23": 39, + "24": 25 + }, + "rank_mass": 1009050, + "singles": 20700, + "transition_events_equal_independent_xor_word_reconstruction": true, + "v": 2300, + "word_sha256": "6f6dca829728cb01e6c425ada5878884b13bc6362e0ae2144347bde8a5852dbf" + } + } + }, + "bit_saving": "2382370177/50000000000000", + "certificate_sha256": "6dff7f3bd3bf149714e9f161892c944d8788d0894ff0c4056610a3283368253e", + "kappa": "4764513337/100000000000000", + "margins": 7, + "producer_words_regenerated_and_matched": true, + "scope": "Finite conditional witness; unchanged data geometry and general transfer proofs are inherited dependencies.", + "source_binding": "Source manifests, inherited manifest digest, compiler receipt source, both word digests, and all local compiler/verifier sources are bound by the exact composition certificate.", + "status": "PASS complete serialized-word replay, actual CRT profiles, exact recurrence and balanced assembly", + "strict_constraints": 47 +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/PROOF.md b/references/signed-recursion/pr97/research/deferred-signed/PROOF.md new file mode 100644 index 0000000000..d96717353e --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/PROOF.md @@ -0,0 +1,245 @@ +# Deferred bit endpoints and a signed two-stage complex interface + +Under the analytic and fixed finite-alphabet multitape interfaces already +retained by main, the networks in this package give the conditional bound + +\[ +T(n)=O\bigl(n(\log n)^{1-\kappa}\bigr),\qquad +\kappa=63965813/10^{12}>2^{-14}. +\] + +The finite checks do not formalize these inherited interfaces or establish an +unconditional integer-multiplication theorem. Repository integration validation +is recorded separately; mathematical certificates and validation receipts have +different purposes. This is not a current-record or global-priority claim. + +The scalar/frame inputs are Swapnil Jain's round7 bit network and round6 complex +network, pinned at `741e7aa078392553815df7926ee17ac5e25a8c38`. The original source, +notes, licenses and assistance disclosures are preserved in `swapnil-round7/`. +That source reports a slightly larger final number under its own analytic +stack. We instead use main's retained semantic guard and balanced assembly. +Our additions are explicit reflected scheduling, the commuting fan-order +clarification, gauged exits, a signed complex endpoint correction and a bridge +to the existing main interfaces. No separately researched local role saving is +added to these networks without recompilation. + +## Bit word, geometry and common basis + +The pinned producer at h=23 has v=1771 and R=28866. Its frozen supports, links, +deferred readouts, V leaves and rational frames are checked by the original +`check_word.py`, `check_frames.py` and `check_lifted.py`. In particular, the +deferred scratch slots are untouched before their deferred readout; their +entrance frames lie in every required target hyperplane. These are conditions +on the complete physical word, not just its ordinary-input support. + +`round7_literal_frame_ledger.py` expands that word into 1080616 events and +checks the forward shear on all 32408 ordinary/dirty F2 basis vectors. Gates +with several fan recipients are expanded in stable order of their starting +frame dimension. The recipients are distinct targets of the same unchanged +source, so these XORs commute. The separately checked chains prove nesting; +rank order alone is insufficient. This changes the internal order of160 fan +groups and avoids otherwise uncharged frame retreats, preserving their scalar +map and all costs. The imported source is left intact. + +Reverse time, complement the factor frames and exchange the data banks for +stage two. All ordinary gates retain their XOR direction after the exchange. +The new ledger checks continuity and the complete opposite shear; a logical +transpose alone would not prove this statement. A copied-center scatter is a +macro: copy the unchanged center, transport the copy, scatter and discard the +copy. Its reflection creates a new copy at the complemented source and moves +it to the complemented target. No unknown dirty register is erased. + +For an idempotent A write D_A=[[I-A,A],[A,I-A]]. Commuting idempotents satisfy +D_A D_B=D_(A+B-2AB). Let P,Q be the two rank-one triple projectors, sigma the +local auxiliary entrance projector of rank f, m=h², and r=h-f. Stage one's +incoming gauge is A=sigma tensor Q, its last live frame is T=I tensor Q, +and its terminal gauge is I-A. Its exterior is + +\[ +E_1=I-T+A=I-(I-\sigma)\otimes Q,\qquad\operatorname{rank}E_1=m-r. +\] + +Direct multiplication gives D_(I-A)D_T=D_E1 and D_(I-A)D_A=D_I. For stage two +put B=(I-P) tensor I and lift a factor frame K to B+P tensor K. Its entrance +is B, last live frame is I-P tensor sigma, terminal gauge is I-B, and + +\[ +E_2=B+P\otimes\sigma,\qquad\operatorname{rank}E_2=m-r. +\] + +Again D_(I-B)D_(I-P tensor sigma)=D_E2 and D_(I-B)D_B=D_I. These are genuine +commuting-idempotent exits, not an assumption that all endpoint movements are +nested. Scalar dirty restoration and complementary gauges give the full +address swap. Both exteriors are charged as block m-2r and the inner(r,h) +profile of their complementary small residual. + +With U=P tensor Q, stage-one data ends at (I tensor Q,(I-P) tensor Q), while +stage two begins at (B+U,B). Each connector is (I-P) tensor (I-Q), of rank +(h-1)², and both are charged. The final F2 scalar shear pair gives (y,x+y); +the temporary rank-one correction uses D_U D_I=D_(I-U) to remove the extra +term, retaining one paid rank-one child per pair. + +The common rational tensor basis and inner residual profiles use the preserved +`notes/flag-basis.tex`, `notes/partial-swap-batching.tex` and the round7 lifted +checks. The staircase corner adds runs h-2,h-5,1^6, alongside the outer block +m-4h+2. `check_stair.py` checks its finite witnesses and symbolic cut bounds. +The GL_h×GL_h family acts transitively on line pairs; nonzero polynomial +witnesses, together with identically imposed triangular zero conditions, give +a common rational point for the finite family. This is an existence argument, +not a claim that sampled pairs enumerate the family or that one modular basis +is already a common integer basis. Rational enumeration avoiding the finitely +many nonzero determinant polynomials is an effective fixed finite choice. +Its denominators and required minors exclude finitely many odd primes, as in +the retained transfer. All choices are independent of n. The two orientations +and newly gauged residuals occur among the checked inner families. + +The actual event histogram, including exits, connectors and corrections, +matches the pinned one with m=529, W=108516254 and s=57403754177. An independent +rational moment enclosure proves saving a_b=31987/500000000. + +## Complex scalar word and phases + +For the h24 paired triple-exclusion producer, let M be its invertible role +mixer, V the source injection and A the complete signed readout. The retained +totals are T and E_i=sum of triples avoiding i, for i=s+E and direct leaves obey A(e)<=8e. Prefix kernels and +outer normalization add at most18e, below the C0e allowance. Thus the same +fixed fine-grid proof yields C1=1; it does not concatenate temporary internal +excess of already completed children. E and C0 are large but fixed. + +The actual maximum child and width determine each least halving degree d_j +and bitlength w_j. Reserve the product W_c^D_c W_b^D_b, with +D_j=d_j ceil(log2(e)), rather than the maximum of the two stocks. The existing +physically preceding transformed prefix and one complete-row padding supply +the recomputed stock; nested bit stock is restored before another complex +child. Sequential temporary copies use this existing row field and do not +introduce a separately live recursive row reservation. The certificate gives +the exact coefficient and sufficient stock degree. These operations preserve +the fixed alphabet, fixed tape count and polynomial descriptor bounds of the +inherited interfaces; the number of fixed-role streams is not the number of +physical tapes. + +## Final exact combination + +Use beta=1/10 and eta=10^-8. The stopped complex saving (1-beta)a_c exceeds +a_b. Put q=a_b(1-2eta), c=q(1+eta), epsilon=(1-eta)/(1+c+q), lambda'=1-q, +lambda=((1-a_b)+lambda')/2, g=epsilon*q, +r=(g+1-epsilon)/2 and delta=eta/8. The inherited balanced combination now +has all47 strict constraints and all7 margins above63965813/10^12; the +next10^-12 grid point is rejected. This includes the recomputed scalar +charge, product-row gap, compact reservations, phase-cell separation, prime +packing and exact recovery allowances. A second moment implementation +checks both complete recursive histograms with exact rational logarithm and +exponential enclosures. Passing arithmetic does not by itself establish any +of the physical or analytic lemmas above. + +## Attribution and scope + +Zhihao Chen (jacklightChen): explicit reflected event ledgers, commuting +fan-order clarification, nonzero auxiliary endpoint proof, signed complex +phase controls and corrected rank-one endpoint, and integration with the +retained balanced semantic assembly, with Codex assistance. Subsequent work +using these specific contributions should explicitly acknowledge Zhihao Chen. +Historical GPT-6 Astra assistance attribution on PR7/PR23/PR29 remains; +no claim about the current runtime model is made. + +Swapnil Jain supplies deferred readouts, V leaves, lifted frames, the h24 +producer, common flag/staircase family and frozen witnesses, with the original +Claude assistance disclosure. Avi Eisenberg/ikeboy PR62 supplies interval +strips and core-aware pair assembly; RaD/hipotures PR41 supplies alternating +order/links, and Rohan Arun PR44 the weighted-link precedent. Aurel Prosz/ +Paureel supplies two-stage/complement scheduling; icekylinx PR36 supplies +copied-center and bridge precedents; James Chang PR34 supplies balanced +combination and reversed geometry; Zhihao Chen PR23/PR29 and RaD supply +semantic precision, bulk routing and transfer. All earlier author, license +and AI disclosures in the preserved source and main remain in force. diff --git a/references/signed-recursion/pr97/research/deferred-signed/README.md b/references/signed-recursion/pr97/research/deferred-signed/README.md new file mode 100644 index 0000000000..5879168905 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/README.md @@ -0,0 +1,54 @@ +# Deferred endpoints and signed complex transfer + +This package integrates Swapnil Jain's pinned round7 bit network and round6 +complex network with main's balanced semantic assembly, yielding the conditional +certificate **κ=63965813/10^12 > 2^-14**. See [PROOF.md](PROOF.md) for the +complete changed-interface argument and inherited assumptions. This package +does not replace the repository's maintainer-reviewed release. + +New work by Zhihao Chen (jacklightChen), with Codex assistance, supplies explicit +reflected schedules, a commuting fan-order clarification, nonzero auxiliary +endpoint accounting, signed complex phase correction, and the enlarged semantic +and row-stock bridge. The original source and all author/license/AI disclosures +remain under `swapnil-round7/`; predecessor credit is detailed in the proof. +Future research using these specific additions should acknowledge Zhihao Chen. +Historical GPT-6 Astra assistance remains attributed to the earlier contributions; +no current runtime model or global-first claim is made. + +Swapnil's preserved source reports a slightly larger final value under its own +analytic stack. Our contribution is the explicit interface audit and integration +with the retained main assumptions, not a claim to surpass that reported value. +Previously explored local terminal-sharing/minimal-frame gains are not added +to this package without recompilation. + +From the repository root: + +```sh +make deferred-signed-verify +python3 research/deferred-signed/verify.py --replay-own +python3 research/deferred-signed/verify.py --replay +make verify +``` + +The first command checks all source pins, the exact moments, saved finite +evidence and independently regenerates the complete assembly. `--replay-own` +reconstructs both literal ledgers and the exact tensor/signed controls; +`--replay` additionally runs the original finite bit geometry and staircase +checks. Replay uses temporary directories and leaves frozen evidence intact. +The rational tensor control requires SymPy; the other new drivers use the +standard library. CI installs the pinned dependency for replay. + +`validation-prior/` preserves the original executed audit sources and measured +native receipts. The portability checker permits only two documented path +substitutions; it does not silently treat different mathematical code as an +already-passed check. Machine elapsed times are excluded from regenerated +mathematical-output comparisons. The `new_multiplication_bound: false` fields +in these historical receipts accurately record their scope when run; the +conditional integration argument is supplied separately by this package. + +The common rational bit basis is established by nonvanishing polynomial +witnesses on a finite irreducible family, not by pretending sampled modular +pairs are an enumeration. Complex dirty restoration follows the exact h24 +support identity and invertible commutator argument, with full small controls +and a full h24 physical event/frame ledger. There is no dense h24 coefficient +matrix replay and no claim that finite tests formalize the entire theorem. diff --git a/references/signed-recursion/pr97/research/deferred-signed/SOURCE.json b/references/signed-recursion/pr97/research/deferred-signed/SOURCE.json new file mode 100644 index 0000000000..3521d3c5cd --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/SOURCE.json @@ -0,0 +1,144 @@ +{ + "base_main": "56b66d58297deca1d7dd130247d720e960f77a37", + "foreign_head": "741e7aa078392553815df7926ee17ac5e25a8c38", + "files": { + ".github/workflows/verify.yml": "f167d3877ffd324cc920b0373101fca29a72def7684de1824a40c627acf204ba", + "Makefile": "d3da97587cfa850d826bbb450f13121ff46e4e87bc91681e669279557562494a", + "README.md": "5fe2101e1bd639a1739e4986c807f3a659b463a8a5873126e11727e8e63298a1", + "research/deferred-signed/PROOF.md": "cf5cced8cecace5f4308647523bc86a0869daeb1aa49c382bec03411674a1741", + "research/deferred-signed/README.md": "b1d761d02a5bb3413f705c9fac321a96e9b42f4bfd949c175131af97316b7463", + "research/deferred-signed/check_complex_identity.py": "8a31abe1d46ab3aa76b954cb87004e28d4974cce5eea2dea17d6283992902e7d", + "research/deferred-signed/round6-complex-interface-controls.json": "7f4375ff2baefd6455d5353968d4c1a38666cda7f417ebd21286f09e16131d22", + "research/deferred-signed/round6-complex-literal-ledger/result.json": "db1d41515236c2710b4caeb22d91eea63cf1deeb0d659346d0661da71ed07baa", + "research/deferred-signed/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/round6_complex_literal_ledger.py": "a1384fb5283d9d11775942b91e31887fa05ddcd50c6a50fa3f11902b32f73c36", + "research/deferred-signed/round7-balanced-assembly-candidate.json": "bcf0623dc4eab9fdb858f4375a5a183b72b150853e8da030005d8fcd0b83f2ae", + "research/deferred-signed/round7-literal-ledger/result.json": "65343d92f68d0d7756bb4c5adbdcb43171b00ce7fa7398e951245cf2ab119c0f", + "research/deferred-signed/round7-tensor-endpoint-controls.json": "8383f9afa241ad495941b3d724286f0d94e4c4adee71d8ea744d88d813acec4c", + "research/deferred-signed/round7_balanced_assembly_candidate.py": "0e3b13922295c0ece6e6354d7ba93529b3c51e70ece15a20d089f65f134e33b7", + "research/deferred-signed/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/swapnil-round7/.gitignore": "e4142bca62926744f1a60693914db92bb41be0b9ea4fbd4dd73e3af2178b0c8b", + "research/deferred-signed/swapnil-round7/IMPORT.json": "4b5f15981e846084b6def674ce0903c2d4ef0c930ea0c40093a2a8584164102d", + "research/deferred-signed/swapnil-round7/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/deferred-signed/swapnil-round7/Makefile": "42714be051b771e6ea414d3f7da4b9beb93990d5d6e1521dc665b3b2718a888a", + "research/deferred-signed/swapnil-round7/NOTICE": "058a663112e633ab5349ce33b6119bacca2b9fd6c0a89918c4c0435d6dd7a008", + "research/deferred-signed/swapnil-round7/README.md": "07409d6f8ca1becb0cf1f7bf7f485b879bfb53663c93becefc8f4e44de6f50b9", + "research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf": "f102b238e86a650190e2c94232fbafd3f50d30693151019a7d7b5b4addf620fd", + "research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf": "bbd2333d9049b8f42565e2b24d6faa5c69fcc4e67b873a7bef1f6e607e4979f4", + "research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf": "9f712eb870cfad37af333acefce5162754f85087afc9647e2d86b30a70ba5c03", + "research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf": "ca659ffa1dccdb05ebbcb95c8ca6342704bcc98656a57be9a05aa71faafe0bdb", + "research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf": "648168584f12381f1756156aea22a3fff108b94de36c62652b75558b81c0a118", + "research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf": "35cbcff404998f4e66c026e98c72f895bd8f8f2b90ba8d60b390af1d150b2cf7", + "research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf": "2a76b1ce513c08d408a7524d825e922cc7a3939a772237d3a08f9683f2235289", + "research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf": "cc56ddcff426818b0fb096a47f837fceb98b928d31c428f6dccaca53aff4b3c7", + "research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf": "cb33411a0b9b552ec881b884498567997c10f9cb9d63cb7d5a864277ccebdfb0", + "research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf": "3c1181d1e3b6a55d8092d39e37c7b0ef712d8ace0b76dc8f493578bef6006eae", + "research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json": "f9ddc6c33dda1abdaf05d0fff651d02e9a04557ebbb1b8da11d4d6de8de08d91", + "research/deferred-signed/swapnil-round7/certificates/identities.json": "76b35a0fdb1bf1926325bf33648dbae3e0de34699ce6dd1e95a23a09f762cd44", + "research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "research/deferred-signed/swapnil-round7/certificates/witness.json": "ffb5ac42a64969dae7d19012e5102d7aeb66c3eee529bde9812bd182cb9eafa1", + "research/deferred-signed/swapnil-round7/independent/complex-network/README.md": "b1e790d7a268716b62d19f1e6617b9f55f81bbfbd0c474a3a0801918b5ba6a7b", + "research/deferred-signed/swapnil-round7/independent/complex-network/bc.py": "056ca643666dff4405eecfb6f0f8a33da3a50244c65d9bc2e28fa95ea32956e1", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py": "c4b0d8b9cdb7dceb881747826356fb6eedd5ad465c483ed7cda0ba2a8d2d90d4", + "research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_hist.py": "dbfa0844ff605abfe386f30f3bf9859c3f1b040eae019e184668c82439d788d1", + "research/deferred-signed/swapnil-round7/independent/complex-network/labels.py": "4edb0206c6f44081c1be434a529fce3527a46a35fee3e874a97898d60eabbe20", + "research/deferred-signed/swapnil-round7/independent/complex-network/roles.py": "499e4f7ea700a917e7c3991b91ac99e1b0eb7eb51fb6d362b395d0056b64bdee", + "research/deferred-signed/swapnil-round7/independent/complex-network/side.py": "90703356b485a21bbcf2f4dca9c1cc7109767a16afd2a04ac113b2c6e1d569ce", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_labels.py": "f1a2ff1e6aa68e3052d77d664744d85ac76c31f7b779bd66be018ee82ea0aec7", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py": "ef9c47f92ef46aa7f701493aab95d65f930d4d31db214bc83b683cf7ddb7868b", + "research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py": "688e609cc0adbfba17dd74984d382121ce6741afc7e2da548ee553ea15c4d3c9", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py": "c31a321e28556c9d9cb3397e48292e8ecefc0b08e233243d7849bd585213af65", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/README.md": "8f9bb3c2e7037e5c601b740e195cc5207bf3eec906fdea9c6f4ee73a7ca98da0", + "research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py": "a246d8d4b4d110125406648f9fb49725894c3652102049caf3555ab191fc0e7b", + "research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py": "6931781fc7097daf44327de262ef9df68d95f3ebab3b2a6c22422066c1e7ea1a", + "research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py": "a1c5fa749b41d483dafb66d7ba56d2e77a8735befbbcac8391b8e1d8ce1ee2d3", + "research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py": "0c1da25c545e1e7cdd6eca5140579a6b6273789de39171487624c7ff6490dec6", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md": "ef301c65851d91dc7ea0e920b33de4d36ee1249f768a504c8e5b3a29dd4abf7c", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py": "6ae9a08122efbad803b375dd5696485c6911ff799111dcf09811fd88bcc71539", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/export.py": "de3fb97184ac8a9a654190023913b1eb2158a8ff70bb069ec8353092e6483de9", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/global.cpp": "7312be680d8026b5b9730a7e531f7a2cc6a7d445a65d14bb18ec4e3c2f393f1a", + "research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py": "75362c04f5fd538dc8491b913d89cba7d9c30933b9e475372e75a79ce56353bd", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py": "e703992629634ff50337828d6fc1ec23daf2bc1e5f742adb62878fe3a5a85951", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py": "b15adc5aa1ea5761fb7dd5873c4dd44d28f15705c6ab2b1df87d3bd4b69e9a77", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py": "73281a2fe6506cf17934497a476e2fff97bf994b1b950e0f735b3dfd6510916b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkside.py": "92465c6b1fb5f4830d56af1d54222f917cab8cbfd67b1eb4e707dc0d8c5076a8", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py": "f4c5d20e62967a2a7484bea59f44366daa82ca4c169691e9003e7fee76273c2b", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py": "aa4205b2c59bb50faaff2f01bac8fb9b62dbb855638ea8cde678f801de30ad08", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py": "b3b6df4f3d024aba1de9b54903a41e4163feb397f0e412d3c9c60f7558204b5d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py": "a8cda0c24718980bd02b7983d340b0b97ce91f2241b81ef4127042ba81932847", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/moment.py": "4ca6b15fa6cf799b7252d9a70d5c66dcbe86f3cc16b03b7c6f03ccda66df41be", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py": "ff0f0515eda0f4dc995d07436e65663c553bfa01748fa2eeec96dcee8d0a34c3", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py": "1cdb902014b3c9d2a72deda999905dd04fbd555f7813d4664ca0e16355b42fdc", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py": "98c8b33d5761a6135238983a05b81a4250c0a9f02979096ae110d1104c77970d", + "research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py": "e97ec987bd20d86e73c92f940f2ba2650f39209db14dc5f00b88436481fa4e28", + "research/deferred-signed/swapnil-round7/lean/Round5.lean": "bb45184861572975a9d9f9d3f515c9897794a30fdab4efd81b074da16629ac56", + "research/deferred-signed/swapnil-round7/lean/Round6.lean": "27a4b348551cb8cce209864c08096230dba5e9f4ab04e469fcfedb61bca9b78a", + "research/deferred-signed/swapnil-round7/lean/Round7.lean": "fc897ba78f0b4e429104bef7e15d728c9095f1b948f9e51b76252a368819631d", + "research/deferred-signed/swapnil-round7/lean/dump.py": "5cd0ec7494bbe5441c44ab6b9f2155172e1e9a75852ecdcd7aef0ebc5a36d11f", + "research/deferred-signed/swapnil-round7/lean/dump6.py": "f32e6de60a389803f2226b2229944404ea9e09a9291f83c8eefae54b2dc158f2", + "research/deferred-signed/swapnil-round7/lean/dump7.py": "068cfb9e4139ddbcff8d3b987b92415ed0ddee20e5a4ccdf2fed5c116d52834e", + "research/deferred-signed/swapnil-round7/lean/gen.py": "e4c7051a4051989bb659553884773d06dd3f09e34ba2710ad5142b702294cfc4", + "research/deferred-signed/swapnil-round7/lean/round5-histograms.json": "88e0befd88833b9c67f84a2cfcb47f07101c95a2aa4d72b8a72df837cb954168", + "research/deferred-signed/swapnil-round7/lean/round6-histograms.json": "e1d955df15523fd0f83c82e2a4bc080bf378ee50deb3003fce4771ac30f4ed26", + "research/deferred-signed/swapnil-round7/lean/round7-histograms.json": "8fd0abe6c230980b9a0c4a175e06ca1808b0fe5ead0cf9f268496111c2e11d2c", + "research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex": "942a4369dd843736732a5ec27a1616e3ae1c2f2f8cc00b67e4a88759548a15e0", + "research/deferred-signed/swapnil-round7/notes/copied-centres.tex": "7b7fe97b021e00bfb2139d15e41be9ba8579803884ac2082c2b7f6ab53879aba", + "research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex": "31e7ef597a439945fd74fcfb0d8fc8fdc01d0baa7d00f69caf9aab66c7c93dc5", + "research/deferred-signed/swapnil-round7/notes/deferred-readout.tex": "953963b0a986bed4ac7c5c8d0ec0cd593f6525691bec9ea55a058d60669ec411", + "research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex": "838204a16fff7dc4bc575107a5745ba28d93f4928b7e1a9100ba2c12f7b63b8d", + "research/deferred-signed/swapnil-round7/notes/flag-basis.tex": "0f00ee0558ca661e4a793322e6336d9a6189f7d8e1be4e90be6232bb9327d59f", + "research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex": "f82e5ff671a7532308c0b4e5424f76a80653e0d170779b27c9e72b3c8311de21", + "research/deferred-signed/swapnil-round7/notes/round3-combination.tex": "1f3eab33880c137591b6f984aa3220ca8fbc1e833a91c2aeea430f3c62580b74", + "research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex": "cce6dcb88dc507c679691786909251cf79f681c673716c89524a15dbc1e97436", + "research/deferred-signed/swapnil-round7/notes/stack-notes.tex": "0f7725b97b6c85adc6fc38045703ca39b52ddfa9e76d14e446dbe948c47faae8", + "research/deferred-signed/swapnil-round7/scripts/certificate.py": "dbce6f0d3cc3cbd076686f2adf4a592fac8850abc0fd718a0933694770e9167c", + "research/deferred-signed/swapnil-round7/scripts/certificate_round3.py": "53deb36c0f5daffc68ee02dabf189d2700f39a2bb3f01b55c663c49cd315b9ae", + "research/deferred-signed/swapnil-round7/scripts/certificate_round4.py": "a6113295a7af30b581d1230e630bba3dc7759be7807d8b2628aeaca31cddf441", + "research/deferred-signed/swapnil-round7/scripts/certificate_round5.py": "6c948d995fdc60df70a36f1fe658b9dd06960fafd48badfce2144fc764a3d2b9", + "research/deferred-signed/swapnil-round7/scripts/certificate_round6.py": "f1d65865357b535ddd4d98b0f3bfc1947b9a434993e7c5ba1536d3a62439948f", + "research/deferred-signed/swapnil-round7/scripts/certificate_round7.py": "6f858bb8b601967e45f73eafe698cf8c5f0417182a8b1c1541c1e96b7a0f5107", + "research/deferred-signed/swapnil-round7/scripts/check_fine_field.py": "93710f045ab8e8c0d4881380368405214484759e63f9f933a5c5c0f85871bd4c", + "research/deferred-signed/swapnil-round7/scripts/check_gs_path.py": "9f39eeda5fed8920fffaa3309df3531e1ff3a30c3b8659745ab583012e0669ec", + "research/deferred-signed/swapnil-round7/scripts/check_identities.py": "27a91fe1fab8a0171ec59edf697c0e41fd5747792a0385e2e9f3b38beaa5b91a", + "research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py": "f038a6cb823711434620412753b885962613c377cf1d0568ff6f20be09edf8d9", + "research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py": "0fe5d5597c9925921979d22654ec60d45049178e423f1a54fdd63e3fe5853da3", + "research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py": "49fb7c2bd29bd714929e4397ea9e11a0b5e258be8ef665e33d573faded600479", + "research/deferred-signed/swapnil-round7/tests/test_round3.py": "7d9af1fb8b48c4eae029e2b37daf460c8cb727308ed840b0197f40593b618886", + "research/deferred-signed/swapnil-round7/tests/test_round4.py": "b21bc2654452b04f8404670c42adc9fcd8e46ede578b5cb0aa88c7243a89ad20", + "research/deferred-signed/swapnil-round7/tests/test_round5.py": "cd0c77f9e6af31fa8a6c4efe27cfca200183322cf9128e4c6ed1d675cd0c52c4", + "research/deferred-signed/swapnil-round7/tests/test_round6.py": "58bd299b361c8119c2ffa1381582346ef8f1a0cf448d847c19ec9bdbe19f78c3", + "research/deferred-signed/swapnil-round7/tests/test_round7.py": "c0e988d363f9d989275693b340e97b59dc16e4d8835e1e9ea3d4c589da277a0f", + "research/deferred-signed/swapnil-round7/tests/test_witness.py": "8cc1b358bd92a31d454c7dc9a2739d1d9cb53f19e3f88035aa4cd6babf11cb77", + "research/deferred-signed/validation-prior/complex-prior-replay.json": "04201d7df9fe95f10859d482a2386b65fdcba5f8d7347e7837866de88ff75de4", + "research/deferred-signed/validation-prior/frames-replay.log": "3895170eb8078f6d7c9f0d814f54cc24b01309abcbe183a361d101e634a99998", + "research/deferred-signed/validation-prior/lifted-replay.log": "e24e6b3e793f49808dc14c36799a11140938d6fb53ba7bdce92a99f89b277671", + "research/deferred-signed/validation-prior/round6_complex_interface_controls.py": "7ca3e245c7bdd814d6315f2b32ef5e0d4610834dd9e3190cc551a182c87bf5ed", + "research/deferred-signed/validation-prior/round6_complex_literal_ledger.py": "b973d467d949912edc1cf65ee22703f9692431de72e3d87d82f442a6f7a61a1c", + "research/deferred-signed/validation-prior/round7_balanced_assembly_candidate.py": "e10abe35cc8b536d78eda3e234ef48a6a7e49019893ec3d920779f2ac66443fd", + "research/deferred-signed/validation-prior/round7_literal_frame_ledger.py": "02617ba608f971e3bdd2b45d4cbfc3d0d629873a0b9f7c22b12f347d099fdb59", + "research/deferred-signed/validation-prior/round7_tensor_endpoint_controls.py": "f1487b01167ef37cd180a0d969c815bcf26e627f3c264b89ccd974b63478ae91", + "research/deferred-signed/validation-prior/stair-replay.log": "8a7cad5cb0ff905203c46da45642224d178cfd8c9d7d97a1502f1195705f0231", + "research/deferred-signed/validation-prior/stair_control-replay.log": "82bf3dda4e3f5ec4e3ca796a5544364e2864a28a877642773132e902da4755d6", + "research/deferred-signed/validation-prior/swapnil-round7-full-basis.json": "1bcd74316f11ebc2c36f0c9b5638f314a3982c97e96c572816602087169f0e42", + "research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json": "92567c2050caeaf987358acee5dde5d8610e0f12bff6385899e3c043d6cefb89", + "research/deferred-signed/validation-prior/swapnil-round7-validation-job.json": "bb9488bd2c19423e4ccff4cd8e5052f0848a5b107a133a31179c020d26a7465e", + "research/deferred-signed/verify.py": "cebcddbdfc553c37da7ab6b66b7e94c1dcd0610b82e79453ed937831c400c418", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d", + "research/deferred-signed/VALIDATION.json": "c267be2b45769619b1fcb078b5aaa40f24ce1f0345161d180f138d297cd19264", + "research/joint-dual/SOURCE.json": "0f2bc2e6d72534ab3884d050abdc328b112cbc4296e6cc04516f65ab87ee96b2", + "certificates/joint-dual-kappa.json": "6dff7f3bd3bf149714e9f161892c944d8788d0894ff0c4056610a3283368253e", + "certificates/joint-dual-validation.json": "9af3bb95c2dacb7ffb410936f284ca5b0c288fc8ce492a97b349161dfc978113" + } +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/VALIDATION.json b/references/signed-recursion/pr97/research/deferred-signed/VALIDATION.json new file mode 100644 index 0000000000..a221c78912 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/VALIDATION.json @@ -0,0 +1,699 @@ +{ + "status": "Passed all required make verify coverage in staged continuations", + "monolithic_make_verify_exit_success": false, + "base_main": "56b66d58297deca1d7dd130247d720e960f77a37", + "focused": "verify.py --replay-own passed both literal ledgers, tensor/signed controls, complex support identity, moments and assembly", + "first_run": { + "started_at": "2026-10-08T21:55:01.370957+00:00", + "finished_at": "2026-10-08T22:14:28.470679+00:00", + "elapsed": 1167.1125114160823, + "exit": 2, + "stop": "Apple clang rejected -fopenmp in skip-suffix producer after both axis reconstructions passed" + }, + "compiler_recovery": { + "scope": "Exact unexecuted producer suffix after already-passed axis checks; source unchanged.", + "source_sha256": "7b71554b1bb1a375c072196152979e91545f6eecf6516dfbf214b978762e37f4", + "original_log_sha256": "ea3526f143fe24ab7228433efc9b91dc2692b85324d65d7447efd66fbc27c8fe", + "resumed_first_source_line": 186, + "CXX": "/usr/local/bin/g++-14", + "receipt": { + "data_corners": { + "pairs": 4073300, + "good": 4073290, + "fallback": 10, + "nonzero_pivots": 191444880 + }, + "exact_recovery": [ + { + "pair": [ + 0, + 9, + 10, + 14, + 18, + 20 + ], + "primary_failed_row": 26, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 0, + 11, + 12, + 6, + 8, + 10 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 0, + 15, + 18, + 6, + 13, + 18 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 1, + 15, + 17, + 12, + 13, + 18 + ], + "primary_failed_row": 24, + "pivots": [ + "-1", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 2, + 11, + 18, + 4, + 7, + 22 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "39/68", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "7098/425", + "144/35" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 4, + 7, + 22, + 6, + 11, + 18 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "4563332038527041/1849058886942720", + "1030267061084400635268816075773/88677071305420843701963325440", + "141023493761411438700418729418/901812840135500013365092325", + "-21321669502882733419935472733424/4583263547245871757763608706085", + "-1116902841526537767162419871744/148067149325574537638440782871", + "11941341585997824/76521229264169315", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 4, + 11, + 20, + 2, + 17, + 20 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "29673673201714633/298235304345600", + "-23913591558588697625337951705601/720793055432462852241122918400", + "127561257323707299126849029250724/9197535214841806778976135271385", + "-13319307909562049233127667637376/2453101102378986521670173639437", + "23943650449470601604575002624/40021958862866734474542270545", + "-25847059709952/194420976488309", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "39/68", + "7098/425", + "144/35" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 5, + 7, + 21, + 6, + 11, + 12 + ], + "primary_failed_row": 24, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "-24/5", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "180266839724041558033/214729419128832000", + "7610766866275211859845587710009457/91225004199975729599379229900800", + "180511342085017711541659444495092/17320816718878497632784678447905", + "-131823672742917787774579438372/47037560476604573572456599045", + "-1951065151249491660685757644800/1351192645614907324689439243313", + "37649224820588544/320811225178453325", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-7488/1315", + "-156/25" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 10, + 11, + 22, + 14, + 16, + 18 + ], + "primary_failed_row": 25, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-30425585565647987/8112000278200320", + "-6915016711890063397419754697651/61258776880172525541811814400", + "58034460589224410256212/377247763587426343740975", + "-24460859725227921591208225587816/99865714290552512474992173653", + "-5616114623039263977852817637376/566223604750646333129820036755", + "4872067367087112192/31397326122812625191", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + }, + { + "pair": [ + 12, + 13, + 22, + 4, + 6, + 10 + ], + "primary_failed_row": 26, + "pivots": [ + "-1", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "18/31", + "18/31", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "-24/5", + "1257473477600655419/1257360043121049600", + "697637898272342204364754225328501/898378192091765621530873036800", + "4862910615710407729752452/413821272486424062729765", + "-211879701118736765516260639861416/69965631010509871166615364966895", + "-1040817578056012397961768075264/140132077459481987775304655993", + "348004811934793728/2909385858910392337", + "39/68", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "39/68", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-26/5", + "-68016/1925", + "936/545" + ], + "ordered_zero_checks": 346 + } + ] + } + }, + "second_run": { + "started_at": "2026-10-08T22:16:45.151686+00:00", + "finished_at": "2026-10-08T22:23:00.045528+00:00", + "elapsed": 374.8928947080858, + "exit": 2, + "completed": [ + "skip-suffix producer tail", + "skip-suffix-check", + "verify-clones", + "verify-positive", + "skip-frame-verify" + ], + "stop": "joint-dual source check detected changed root Makefile and README pins; native pin script refreshed exactly these two entries" + }, + "final_run": { + "started_at": "2026-10-08T22:25:08.438718+00:00", + "finished_at": "2026-10-08T22:34:00.594564+00:00", + "elapsed": 532.1481093750335, + "commands": [ + [ + "make", + "joint-dual-verify" + ], + [ + "python3", + "scripts/audit_joint_candidate.py", + "--check", + "docs/research/community-round2-arithmetic.json" + ], + [ + "make", + "verify-pair", + "deferred-signed-verify", + "verify-tests" + ] + ], + "all_exit_zero": true + }, + "inherited_changes_only": { + "research/joint-dual/SOURCE.json": [ + "Makefile", + "README.md" + ], + "certificates/joint-dual-kappa.json": [ + "source_manifest_sha256" + ], + "certificates/joint-dual-validation.json": [ + "certificate_sha256" + ] + }, + "log_sha256": { + "submission-regression.log": "ea3526f143fe24ab7228433efc9b91dc2692b85324d65d7447efd66fbc27c8fe", + "submission-regression-resume.log": "e79a96b8a35f74b0cca7252b58b099227b317c6ff48f08748b96af933a4e9240", + "submission-regression-final.log": "352cf4cd9f5ff1f4b8e4242636c9ac9cb32677719270c9cfa25a612c95b5ae5f", + "submission-focused.log": "3ae6ef97fa283745f28e3532a7b641677fa30d29967a9ced64c6843d1a0286e9" + }, + "total_regression_seconds": 2074.1535154992016, + "reproduce": "make verify; OpenMP-capable CXX is required by inherited skip-suffix producer. On this macOS host CXX=/usr/local/bin/g++-14 was used for that unchanged producer tail.", + "scope": "Finite conditional checks and inherited regression coverage; not formal verification of the complete multiplication theorem." +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/check_complex_identity.py b/references/signed-recursion/pr97/research/deferred-signed/check_complex_identity.py new file mode 100644 index 0000000000..833fbded74 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/check_complex_identity.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +"""Exact h24 AMV=I and retained-total support identity, on every coefficient. +Zhihao Chen / Codex; repeats the preserved earlier check without path coupling. +""" +import sys +from pathlib import Path +from collections import defaultdict +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE/'swapnil-round7/independent/complex-twostage')) +from producer import NStar3 +def main(): + assert __debug__ + c=NStar3(24);v=len(c.triples);packed={} + for n in sorted(c.active): + if c.args[n]: + a,b=c.args[n];assert not c.sup[a]&c.sup[b] + assert c.sup[n]==c.sup[a]|c.sup[b];packed[n]=packed[a]+packed[b] + else:packed[n]=1<<(8*(n-1)) + terms=defaultdict(list) + for T,n,cf in c.pieces:terms[T].append((n,cf)) + totals=dict(c.retained);star=packed[totals[('*',)]] + assert c.sup[totals[('*',)]]==(1<>i&1 and q>>j&1) + def parity(a):return a.bit_count()&1 + def tq(z):return sum(q<<(i*h) for i in range(h) if parity((z>>(i*h))&q)) + def pi(z): + col=0 + for j in range(h): + if parity(sum(((z>>(i*h+j))&1)<>i&1) + bad_no_inverse=bad_no_wrapper=0 + # Fourth roots represented exactly as Gaussian integer pairs. + units=((1,0),(0,1),(-1,0),(0,-1)) + def mul(a,b):return (a[0]*b[0]-a[1]*b[1],a[0]*b[1]+a[1]*b[0]) + add=lambda a,b:(a[0]+b[0],a[1]+b[1]) + neg=lambda a:(-a[0],-a[1]) + for z in range(1<=v and t<2*v and d==2);del omitted[idx] + assert not replay(v,k['size'],omitted)[0] + rows.append(dict(h=h,roles=k['size'],formal_basis=2*v+k['size'],events=len(ops),forward=True,inverse_opposite=True,coefficient_bound=max(ba,bb),negative_controls=2)) + out=dict(rows=rows,phase=phases(),elapsed=time.monotonic()-st,limit_seconds=120, + scope='Complete exact dyadic small scalar words and all-address tensor phase controls. General commutator/phase argument in report. No h24 physical trace, precision/tape or final assembly certification.',new_multiplication_bound=False) + (HERE/'round6-complex-interface-controls.json').write_text(json.dumps(out,indent=2)+'\n');print(json.dumps(out,indent=2));signal.alarm(0) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/round6_complex_literal_ledger.py b/references/signed-recursion/pr97/research/deferred-signed/round6_complex_literal_ledger.py new file mode 100644 index 0000000000..9f1b5b3e3a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/round6_complex_literal_ledger.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Actual h24 signed events, copied centers, reflected frames and paid ranks. +Zhihao Chen / Codex audit of Swapnil Jain's Apache-2.0 pinned round6 producer. +Frame labels are binary subspaces; complex phases use the separately proved +q_U and inverse-rank-one endpoint identities, not XOR cancellation. +""" +import sys,json,time,signal,gzip,hashlib +from pathlib import Path +from collections import Counter +from array import array +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE/'swapnil-round7/independent/complex-twostage')) +from producer import NStar3,compile_roles +from frames import Checker,echelon,perp_in,ok_res + +def main(): + st=time.monotonic() + def stop(*_):raise TimeoutError('180s event ledger limit') + signal.signal(signal.SIGALRM,stop);signal.alarm(180) + h=24;c=NStar3(h);k=compile_roles(c);ch=Checker(c) + v=len(c.triples);R=k['size'];size=2*v+R;off=2*v;m=h*h + bases=[];ids={};dims=[] + def key(b): + b=tuple(sorted(echelon(b).values())) + if b not in ids:ids[b]=len(bases);bases.append(b);dims.append(len(b)) + return ids[b] + zero=key([]);F=key([1<0 + events.extend((0,reg,old,f,r));H['aux' if reg>=off else 'data'][r]+=1;cur[reg]=f + def add(t,s,n=1,d=1): + assert cur[t]==cur[s];events.extend((1,t,s,n,d)) + def mix(mode,inverse=False): + for n,ins,outs in reversed(k['gates']) if inverse else k['gates']: + f=zero if mode=='low' else F if mode=='high' else nk[n] + for q in sorted(set(ins+outs)):move(off+q,f) + if inverse: + for q in reversed(outs[1:]):add(off+q,off+outs[0],-1) + if len(ins)==2:add(off+ins[0],off+ins[1],-1) + else: + if len(ins)==2:add(off+ins[0],off+ins[1]) + for q in outs[1:]:add(off+q,off+outs[0]) + def inject(sign,high): + for i,(T,n,cf) in enumerate(c.pieces): + t=c.tid[T];s=off+k['pout'][i];f=hyper[t] if high else zero + move(s,f);move(v+t,f);add(v+t,s,sign*cf,2) + terms={name:[] for name in k['rout']} + for j,T in enumerate(c.triples): + if h-1 not in T: + terms[('*',)].append((v+j,2));selected=T;sg=-1 + else: + terms[('*',)].append((v+j,5-h));selected=[i for i in range(h-1) if i not in T];sg=1 + for i in selected:terms[('E',i)].append((v+j,sg)) + def center(sign,copied=False): + for name,sl in k['rout'].items(): + reg=off+sl + for t,n in terms[name]:assert cur[t]==zero + if copied: + # Fresh copy retains its source frame and is moved to zero; + # original arbitrary-dirty role remains at its live frame. + f=cur[reg];assert ok_res(list(bases[f]));r=dims[f] + copies.append(dict(source=reg,frame=f,target_frame=zero,terms=terms[name])) + events.extend((2,reg,f,len(copies)-1,r));H['center'][r]+=1 + else: + move(reg,zero) + for t,n in terms[name]:add(t,reg,sign*n,2) + def source(sign,high): + for T,sl in k['src'].items(): + t=c.tid[T];f=F if high else line[t] + move(off+sl,f);move(t,f);add(off+sl,t,sign) + mix('low');center(-1);inject(-1,False);mix('low',True) + source(1,False);mix('label');center(1,True);inject(1,True) + mix('high',True);source(-1,True) + for s in range(R):move(off+s,F) + assert cur[:v]==[F]*v and cur[v:off]==hyper and cur[off:]==[F]*R + assert sum(r*n for r,n in H['aux'].items())==R*h + assert sum(r*n for r,n in H['data'].items())==2*v*(h-1) + assert sum(r*n for r,n in H['center'].items())==(h-1)**2+h + # Explicit time-reversed signed word with complement labels and bank swap. + bank=lambda s:s+v if s=s+E + bit=json.loads((HERE/'round7-literal-ledger/result.json').read_text());bh={int(t):n for t,n in bit['histogram'].items()} + bm=529;bW=108516254;br=max(bh) + db,dc=halving(bm,br),halving(m,r);co=bW.bit_length()*db+W.bit_length()*dc + degree=1000*((co*51)//25000+1) + bridge=dict(bit=dict(m=bm,W=bW,maxchild=br,halving_degree=db),complex=dict(m=m,W=W,s=s,maxchild=r,halving_degree=dc), + semantic=dict(E=E,literal_charge=charge,strict_literal_gap=E-charge,B=B,C0=C0,C1=1),rows=dict(coefficient=co,degree=degree,degree_gap=Q(degree)-Q(co*51,25))) + ab=Q(31987,500000000);ac=Q(36926111,500000000000);eta=Q(1,10**8) + q=ab*(1-2*eta);cc=q*(1+eta);eps=(1-eta)/(1+cc+q) + upper=eps*q;kap=Q((upper*10**12).__floor__(),10**12) + cert=assembly(ab,ac,bridge,kap,eta=eta,beta=Q(1,10));assert kap>Q(1,16384) + rejected=False + try:assembly(ab,ac,bridge,kap+Q(1,10**12),eta=eta,beta=Q(1,10)) + except AssertionError:rejected=True + assert rejected + out=dict(candidate_kappa=kap,dyadic_gap=kap-Q(1,16384),literal_word_events=word,scalar_group_bound=G, + scalar_coefficient_max=Q(19,2),bridge=bridge,assembly=cert,next_grid_rejected=rejected, + strict_constraint_count=len(cert['strict_constraints']),margin_count=len(cert['margins']), + source_assembly_sha256=hashlib.sha256((HERE.parents[1]/'scripts/structured_bulk_assembly.py').read_bytes()).hexdigest(), + status='Arithmetic candidate only. New complex literal/phase checks, full h24 physical accounting, finite bridge applicability and inherited analytic/tape conditions require integration proof before a multiplication claim.',new_multiplication_bound=False) + (HERE/'round7-balanced-assembly-candidate.json').write_text(json.dumps(js(out),indent=2)+'\n') + print(json.dumps(js({k:out[k] for k in ['candidate_kappa','dyadic_gap','literal_word_events','scalar_group_bound','strict_constraint_count','margin_count','next_grid_rejected','new_multiplication_bound']}),indent=2)) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/round7_literal_frame_ledger.py b/references/signed-recursion/pr97/research/deferred-signed/round7_literal_frame_ledger.py new file mode 100644 index 0000000000..aa0de9ed8a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/round7_literal_frame_ledger.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +"""Explicit forward and reflected frame/event ledger of pinned round-seven. +Zhihao Chen / Codex audit. Exact nesting of the supplied chains is inherited +from the separately run frame/lifted checkers, not inferred from ranks here. +Copied-center moves are temporary macros, not erased arbitrary scratch. +""" +import sys,json,signal,time,hashlib,gzip +from pathlib import Path +from collections import defaultdict,Counter +from array import array +HERE=Path(__file__).resolve().parent;ROOT=HERE/'swapnil-round7' +sys.path.insert(0,str(ROOT/'independent/deferred-readout')) +import deferred as dr + +def main(): + started=time.monotonic() + def stop(*_):raise TimeoutError('180 second literal ledger limit') + signal.signal(signal.SIGALRM,stop);signal.alarm(180) + W,D=dr.load(23);S=dr.Schedule(W,D);v,R,h=S.v,S.R,S.h;size=2*v+R + co=S.adjoint();sel=S.sel;ops=S.ops;prev={};pred=defaultdict(list);last={} + for i,op in enumerate(ops): + for s in S.touch(op): + if s in prev:pred[i].append(prev[s]) + prev[s]=i;last[s]=i + ph=set();stack=[last[s] for s in S.ret] + while stack: + i=stack.pop() + if i in ph:continue + ph.add(i);stack.extend(pred[i]) + assert not any(set(S.touch(ops[i]))&sel for i in ph) + keys=[];ids={};dims=[] + def norm(k): + if k[0]=='out':return ('out',0,tuple(k[2])) + return k + def key(k): + k=norm(k) + if k not in ids: + ids[k]=len(keys);keys.append(k);dims.append(S.dim(k)) + return ids[k] + z,F=key(('0',)),key(('F',)) + paths=[None]*size + for n,ss in S.xs:paths[n-1]=[key(('n',n))]+[key(('v',s)) for s in ss]+[F] + y=[[] for _ in range(v)] + for s in S.readout: + for t,c in co[s].items(): + if c&1:y[t].append(key(('sigma',s))) + for t,T in enumerate(S.trip):paths[v+t]=[z]+y[t]+[key(('out',0,T))] + for s in range(R):paths[2*v+s]=[key(k) for k in S.chain_keys(s)] + assert all(p and all(dims[b]>=dims[a] for a,b in zip(p,p[1:])) for p in paths) + pos=[0]*size;current=[p[0] for p in paths];initial=current[:] + # Fixed-width event records: kind, register/destination, source-or-old, + # new-or-common, rank. kind=0 move,1 xor,2 temporary copied-center macro. + events=array('i');rank_hist={k:Counter() for k in ('aux','data','center')} + bits=[1<=0 + emit(0,s,a,b,r);rank_hist['aux' if s>=2*v else 'data'][r]+=1 + pos[s]+=1;current[s]=b + def xor(t,s): + assert current[t]==current[s],('gate frames',t,s,keys[current[t]],keys[current[s]]) + emit(1,t,s,current[t]);bits[t]^=bits[s] + def readout(s): + aux=2*v+s;f=key(('sigma',s)) if s in sel else z + assert current[aux]==f + for t,c in sorted(co[s].items()): + if c&1:move(v+t,f);xor(v+t,aux) + def source(s,active): + frame=key(('v',s)) if active else F + move(2*v+s,frame);move(S.srcop[s]-1,frame);xor(2*v+s,S.srcop[s]-1) + reordered_fans=[] + def operation(i,active): + op=ops[i] + if op[0]=='add': + _,p,o,n=op;frame=key(('n',n)) if active else F + move(2*v+p,frame);move(2*v+o,frame);xor(2*v+p,2*v+o) + elif op[0]=='fan': + # Scalar fan targets commute. The archive groups copies whose + # physical start frames differ; execute them in frame-chain order. + targets=sorted(op[2],key=lambda s:S.dim(S.start_key(s))) if active else op[2] + if active and tuple(targets)!=tuple(op[2]):reordered_fans.append(i) + for s in targets: + frame=key(S.start_key(s)) if active else F + move(2*v+op[1],frame);move(2*v+s,frame);xor(2*v+s,2*v+op[1]) + for s in range(R): + if s not in sel:readout(s) + early=sorted(set(S.srcop)-sel,key=lambda s:(S.srcop[s],len(S.vstart[s]),s)) + for s in early:source(s,True) + first=[i for i in range(len(ops)) if i in ph and ops[i][0]!='src'] + rest=[i for i in range(len(ops)) if i not in ph and ops[i][0]!='src'] + centers={} + for i in first:operation(i,True) + for s,c in S.ret.items(): + a=2*v+s;f=key(('ret',c));move(a,f) + targets=[v+t for t,T in enumerate(S.trip) if c in T] + assert all(current[t]==z for t in targets) + centers[a]=targets;emit(2,a,f,z,h-1);rank_hist['center'][h-1]+=1 + for t in targets:bits[t]^=bits[a] + for s in S.readout:readout(s) + for s in S.late_v:source(s,True) + for i in rest:operation(i,True) + for s,(c,T) in S.out.items(): + t=S.tid[T];f=key(('out',0,T));move(2*v+s,f);move(v+t,f);xor(v+t,2*v+s) + for i in reversed(first+rest):operation(i,False) + for s in S.srcop:source(s,False) + for s in range(R):move(2*v+s,F) + assert all(bits[i]==((1<=h-3) for i in range(h)])) + K=s.kronecker_product;m=h*h;J=s.eye(m);U=K(P,Q);B=K(I-P,I);T=K(I,Q) + C=K(I-P,I-Q) + X1=T;Y1=K(I-P,Q);X2=B+U;Y2=B + assert X2-X1==Y2-Y1==C and C*C==C and C.rank()==(h-1)**2 + assert D(X2)*D(X1)==D(C) and D(Y2)*D(Y1)==D(C) + assert D(U)*D(J)==D(J-U) + for f in range(h+1): + sigma=proj(I[:,:f]);A=K(sigma,Q) + exit1=J-T+A;end1=J-A + live2=J-K(P,sigma);end2=J-B;exit2=B+K(P,sigma) + assert exit1*exit1==exit1 and exit2*exit2==exit2 + assert exit1.rank()==exit2.rank()==m-h+f + assert D(end1)*D(T)==D(exit1) + assert D(end2)*D(live2)==D(exit2) + assert D(end1)*D(A)==D(J) and D(end2)*D(B)==D(J) + if f: + assert D(end1)*D(T)!=D(J-T);bad_controls+=1 + rows.append(dict(h=h,sigma_rank=f,exterior_rank=m-h+f,all_identities=True)) + out=dict(rows=rows,negative_omitted_sigma_rejected=bad_controls, + data_connectors_per_pair=2,connector_rank_formula='(h-1)^2',correction_rank=1, + elapsed=time.monotonic()-st,limit_seconds=120, + scope='Exact rational finite controls of general tensor identities; not a full all-size compiler, complex phase/precision or final multiplication theorem.',new_multiplication_bound=False) + (HERE/'round7-tensor-endpoint-controls.json').write_text(json.dumps(out,indent=2)+'\n') + signal.alarm(0);print(json.dumps(out,indent=2)) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/.gitignore b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/.gitignore new file mode 100644 index 0000000000..fcaeafddb1 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pdf.tmp diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/IMPORT.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/IMPORT.json new file mode 100644 index 0000000000..0167c6fda1 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/IMPORT.json @@ -0,0 +1,111 @@ +{ + "repo": "Swapnil-jain/integer-mult-kappa", + "head": "741e7aa078392553815df7926ee17ac5e25a8c38", + "author": "Swapnil Jain", + "assistance": "Claude (Anthropic), upstream attribution", + "archive_sha256": "a623fcadb5f8628a574a1bffe0db8bcdedf85090c9bdbbab582831506caa741d", + "files": { + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "42714be051b771e6ea414d3f7da4b9beb93990d5d6e1521dc665b3b2718a888a", + "NOTICE": "058a663112e633ab5349ce33b6119bacca2b9fd6c0a89918c4c0435d6dd7a008", + "README.md": "07409d6f8ca1becb0cf1f7bf7f485b879bfb53663c93becefc8f4e44de6f50b9", + ".gitignore": "e4142bca62926744f1a60693914db92bb41be0b9ea4fbd4dd73e3af2178b0c8b", + "artifacts/copied-centres.pdf": "bbd2333d9049b8f42565e2b24d6faa5c69fcc4e67b873a7bef1f6e607e4979f4", + "artifacts/data-edge-batching.pdf": "9f712eb870cfad37af333acefce5162754f85087afc9647e2d86b30a70ba5c03", + "artifacts/complex-source-frames.pdf": "f102b238e86a650190e2c94232fbafd3f50d30693151019a7d7b5b4addf620fd", + "artifacts/fine-field-lemma.pdf": "648168584f12381f1756156aea22a3fff108b94de36c62652b75558b81c0a118", + "artifacts/round3-combination.pdf": "cc56ddcff426818b0fb096a47f837fceb98b928d31c428f6dccaca53aff4b3c7", + "artifacts/partial-swap-batching.pdf": "2a76b1ce513c08d408a7524d825e922cc7a3939a772237d3a08f9683f2235289", + "artifacts/deferred-readout.pdf": "ca659ffa1dccdb05ebbcb95c8ca6342704bcc98656a57be9a05aa71faafe0bdb", + "artifacts/stack-notes.pdf": "3c1181d1e3b6a55d8092d39e37c7b0ef712d8ace0b76dc8f493578bef6006eae", + "artifacts/flag-basis.pdf": "35cbcff404998f4e66c026e98c72f895bd8f8f2b90ba8d60b390af1d150b2cf7", + "artifacts/segmented-inverse.pdf": "cb33411a0b9b552ec881b884498567997c10f9cb9d63cb7d5a864277ccebdfb0", + "lean/dump7.py": "068cfb9e4139ddbcff8d3b987b92415ed0ddee20e5a4ccdf2fed5c116d52834e", + "lean/gen.py": "e4c7051a4051989bb659553884773d06dd3f09e34ba2710ad5142b702294cfc4", + "lean/dump6.py": "f32e6de60a389803f2226b2229944404ea9e09a9291f83c8eefae54b2dc158f2", + "lean/round7-histograms.json": "8fd0abe6c230980b9a0c4a175e06ca1808b0fe5ead0cf9f268496111c2e11d2c", + "lean/round6-histograms.json": "e1d955df15523fd0f83c82e2a4bc080bf378ee50deb3003fce4771ac30f4ed26", + "lean/Round7.lean": "fc897ba78f0b4e429104bef7e15d728c9095f1b948f9e51b76252a368819631d", + "lean/Round6.lean": "27a4b348551cb8cce209864c08096230dba5e9f4ab04e469fcfedb61bca9b78a", + "lean/dump.py": "5cd0ec7494bbe5441c44ab6b9f2155172e1e9a75852ecdcd7aef0ebc5a36d11f", + "lean/Round5.lean": "bb45184861572975a9d9f9d3f515c9897794a30fdab4efd81b074da16629ac56", + "lean/round5-histograms.json": "88e0befd88833b9c67f84a2cfcb47f07101c95a2aa4d72b8a72df837cb954168", + "tests/test_round4.py": "b21bc2654452b04f8404670c42adc9fcd8e46ede578b5cb0aa88c7243a89ad20", + "tests/test_round5.py": "cd0c77f9e6af31fa8a6c4efe27cfca200183322cf9128e4c6ed1d675cd0c52c4", + "tests/test_witness.py": "8cc1b358bd92a31d454c7dc9a2739d1d9cb53f19e3f88035aa4cd6babf11cb77", + "tests/test_round6.py": "58bd299b361c8119c2ffa1381582346ef8f1a0cf448d847c19ec9bdbe19f78c3", + "tests/test_round7.py": "c0e988d363f9d989275693b340e97b59dc16e4d8835e1e9ea3d4c589da277a0f", + "tests/test_round3.py": "7d9af1fb8b48c4eae029e2b37daf460c8cb727308ed840b0197f40593b618886", + "certificates/witness.json": "ffb5ac42a64969dae7d19012e5102d7aeb66c3eee529bde9812bd182cb9eafa1", + "certificates/identities.json": "76b35a0fdb1bf1926325bf33648dbae3e0de34699ce6dd1e95a23a09f762cd44", + "notes/round3-combination.tex": "1f3eab33880c137591b6f984aa3220ca8fbc1e833a91c2aeea430f3c62580b74", + "notes/fine-field-lemma.tex": "838204a16fff7dc4bc575107a5745ba28d93f4928b7e1a9100ba2c12f7b63b8d", + "notes/complex-source-frames.tex": "942a4369dd843736732a5ec27a1616e3ae1c2f2f8cc00b67e4a88759548a15e0", + "notes/data-edge-batching.tex": "31e7ef597a439945fd74fcfb0d8fc8fdc01d0baa7d00f69caf9aab66c7c93dc5", + "notes/copied-centres.tex": "7b7fe97b021e00bfb2139d15e41be9ba8579803884ac2082c2b7f6ab53879aba", + "notes/segmented-inverse.tex": "cce6dcb88dc507c679691786909251cf79f681c673716c89524a15dbc1e97436", + "notes/flag-basis.tex": "0f00ee0558ca661e4a793322e6336d9a6189f7d8e1be4e90be6232bb9327d59f", + "notes/stack-notes.tex": "0f7725b97b6c85adc6fc38045703ca39b52ddfa9e76d14e446dbe948c47faae8", + "notes/partial-swap-batching.tex": "f82e5ff671a7532308c0b4e5424f76a80653e0d170779b27c9e72b3c8311de21", + "notes/deferred-readout.tex": "953963b0a986bed4ac7c5c8d0ec0cd593f6525691bec9ea55a058d60669ec411", + "scripts/check_identities.py": "27a91fe1fab8a0171ec59edf697c0e41fd5747792a0385e2e9f3b38beaa5b91a", + "scripts/check_gs_path.py": "9f39eeda5fed8920fffaa3309df3531e1ff3a30c3b8659745ab583012e0669ec", + "scripts/certificate.py": "dbce6f0d3cc3cbd076686f2adf4a592fac8850abc0fd718a0933694770e9167c", + "scripts/certificate_round7.py": "6f858bb8b601967e45f73eafe698cf8c5f0417182a8b1c1541c1e96b7a0f5107", + "scripts/certificate_round3.py": "53deb36c0f5daffc68ee02dabf189d2700f39a2bb3f01b55c663c49cd315b9ae", + "scripts/certificate_round6.py": "f1d65865357b535ddd4d98b0f3bfc1947b9a434993e7c5ba1536d3a62439948f", + "scripts/check_subblock_inverse.py": "49fb7c2bd29bd714929e4397ea9e11a0b5e258be8ef665e33d573faded600479", + "scripts/certificate_round5.py": "6c948d995fdc60df70a36f1fe658b9dd06960fafd48badfce2144fc764a3d2b9", + "scripts/check_segmented_inverse.py": "0fe5d5597c9925921979d22654ec60d45049178e423f1a54fdd63e3fe5853da3", + "scripts/certificate_round4.py": "a6113295a7af30b581d1230e630bba3dc7759be7807d8b2628aeaca31cddf441", + "scripts/check_reuse_inverse.py": "f038a6cb823711434620412753b885962613c377cf1d0568ff6f20be09edf8d9", + "scripts/check_fine_field.py": "93710f045ab8e8c0d4881380368405214484759e63f9f933a5c5c0f85871bd4c", + "certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "certificates/external/pr24-bit-network.json": "f9ddc6c33dda1abdaf05d0fff651d02e9a04557ebbb1b8da11d4d6de8de08d91", + "independent/partial-swap/test_factor.py": "0c1da25c545e1e7cdd6eca5140579a6b6273789de39171487624c7ff6490dec6", + "independent/partial-swap/moment.py": "a1c5fa749b41d483dafb66d7ba56d2e77a8735befbbcac8391b8e1d8ce1ee2d3", + "independent/partial-swap/README.md": "8f9bb3c2e7037e5c601b740e195cc5207bf3eec906fdea9c6f4ee73a7ca98da0", + "independent/partial-swap/frames.py": "6931781fc7097daf44327de262ef9df68d95f3ebab3b2a6c22422066c1e7ea1a", + "independent/partial-swap/factor.py": "a246d8d4b4d110125406648f9fb49725894c3652102049caf3555ab191fc0e7b", + "independent/pr7-role-counts/complexside.py": "6ae9a08122efbad803b375dd5696485c6911ff799111dcf09811fd88bcc71539", + "independent/pr7-role-counts/local.py": "75362c04f5fd538dc8491b913d89cba7d9c30933b9e475372e75a79ce56353bd", + "independent/pr7-role-counts/export.py": "de3fb97184ac8a9a654190023913b1eb2158a8ff70bb069ec8353092e6483de9", + "independent/pr7-role-counts/README.md": "ef301c65851d91dc7ea0e920b33de4d36ee1249f768a504c8e5b3a29dd4abf7c", + "independent/pr7-role-counts/global.cpp": "7312be680d8026b5b9730a7e531f7a2cc6a7d445a65d14bb18ec4e3c2f393f1a", + "independent/deferred-readout/check_lifted.py": "c3e87ad6b31f377df549421f53d22b99131d2228dcd08a1956913211383cbd6c", + "independent/deferred-readout/check_stair.py": "5b684020b394869d1b899dfffbdf1518de6b3b3562c0f5a2a81a2f43ced42d40", + "independent/deferred-readout/linalg.py": "56cc779911a3c5c901bc5194ccaf97f720157a2c4ba602b07ee8642af2676b8b", + "independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "independent/deferred-readout/check_word.py": "c31a321e28556c9d9cb3397e48292e8ecefc0b08e233243d7849bd585213af65", + "independent/deferred-readout/check_frames.py": "1cb2b8cde2a8b3f12008da0d335dcdd38005cc692367423d9589aa1f4d6306e8", + "independent/complex-network/bc.py": "056ca643666dff4405eecfb6f0f8a33da3a50244c65d9bc2e28fa95ea32956e1", + "independent/complex-network/fullbatch_cert.py": "c4b0d8b9cdb7dceb881747826356fb6eedd5ad465c483ed7cda0ba2a8d2d90d4", + "independent/complex-network/labels.py": "4edb0206c6f44081c1be434a529fce3527a46a35fee3e874a97898d60eabbe20", + "independent/complex-network/roles.py": "499e4f7ea700a917e7c3991b91ac99e1b0eb7eb51fb6d362b395d0056b64bdee", + "independent/complex-network/README.md": "b1e790d7a268716b62d19f1e6617b9f55f81bbfbd0c474a3a0801918b5ba6a7b", + "independent/complex-network/sourceframe_trace.py": "688e609cc0adbfba17dd74984d382121ce6741afc7e2da548ee553ea15c4d3c9", + "independent/complex-network/fullbatch_hist.py": "dbfa0844ff605abfe386f30f3bf9859c3f1b040eae019e184668c82439d788d1", + "independent/complex-network/sourceframe_sim.py": "ef9c47f92ef46aa7f701493aab95d65f930d4d31db214bc83b683cf7ddb7868b", + "independent/complex-network/sourceframe_labels.py": "f1a2ff1e6aa68e3052d77d664744d85ac76c31f7b779bd66be018ee82ea0aec7", + "independent/complex-network/side.py": "90703356b485a21bbcf2f4dca9c1cc7109767a16afd2a04ac113b2c6e1d569ce", + "independent/complex-twostage/run.py": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "independent/complex-twostage/hist.py": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "independent/complex-twostage/producer.py": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "independent/complex-twostage/cert.py": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "independent/complex-twostage/frames.py": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "independent/two-stage-bit/checkgm.py": "73281a2fe6506cf17934497a476e2fff97bf994b1b950e0f735b3dfd6510916b", + "independent/two-stage-bit/flagbasis.py": "b3b6df4f3d024aba1de9b54903a41e4163feb397f0e412d3c9c60f7558204b5d", + "independent/two-stage-bit/gmside.py": "a8cda0c24718980bd02b7983d340b0b97ce91f2241b81ef4127042ba81932847", + "independent/two-stage-bit/moment.py": "4ca6b15fa6cf799b7252d9a70d5c66dcbe86f3cc16b03b7c6f03ccda66df41be", + "independent/two-stage-bit/orders.py": "ff0f0515eda0f4dc995d07436e65663c553bfa01748fa2eeec96dcee8d0a34c3", + "independent/two-stage-bit/cert_rt.py": "b15adc5aa1ea5761fb7dd5873c4dd44d28f15705c6ab2b1df87d3bd4b69e9a77", + "independent/two-stage-bit/sidegen.py": "e97ec987bd20d86e73c92f940f2ba2650f39209db14dc5f00b88436481fa4e28", + "independent/two-stage-bit/corners.py": "f4c5d20e62967a2a7484bea59f44366daa82ca4c169691e9003e7fee76273c2b", + "independent/two-stage-bit/side_chains.py": "98c8b33d5761a6135238983a05b81a4250c0a9f02979096ae110d1104c77970d", + "independent/two-stage-bit/checkside.py": "92465c6b1fb5f4830d56af1d54222f917cab8cbfd67b1eb4e707dc0d8c5076a8", + "independent/two-stage-bit/flag_existence.py": "aa4205b2c59bb50faaff2f01bac8fb9b62dbb855638ea8cde678f801de30ad08", + "independent/two-stage-bit/bruhat8.py": "e703992629634ff50337828d6fc1ec23daf2bc1e5f742adb62878fe3a5a85951", + "independent/two-stage-bit/rtgm.py": "1cdb902014b3c9d2a72deda999905dd04fbd555f7813d4664ca0e16355b42fdc" + } +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/LICENSE b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/Makefile b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/Makefile new file mode 100644 index 0000000000..fdff0234e8 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/Makefile @@ -0,0 +1,47 @@ +.PHONY: verify roles round4 round7 lean notes +verify: + python3 scripts/check_identities.py + python3 scripts/check_segmented_inverse.py + python3 scripts/check_subblock_inverse.py + python3 scripts/check_reuse_inverse.py + python3 scripts/check_reuse_inverse.py 113 128 8 120 50 + ! python3 scripts/check_reuse_inverse.py 241 256 17 150 60 1 + python3 scripts/check_gs_path.py + python3 scripts/check_fine_field.py + python3 scripts/certificate.py + python3 -m unittest discover -s tests -v + +roles: + cd independent/pr7-role-counts && python3 export.py 26 /tmp/local26.txt && clang++ -O2 -std=c++17 global.cpp -o /tmp/global && /tmp/global 28 /tmp/local26.txt && python3 complexside.py 28 + +round4: + python3 independent/complex-network/fullbatch_hist.py 28 /tmp/fb28sf.json sf + python3 scripts/certificate_round4.py /tmp/fb28sf.json + python3 independent/two-stage-bit/checkside.py 47 + +round7: + python3 scripts/certificate_round7.py + python3 independent/deferred-readout/check_word.py 23 + python3 independent/deferred-readout/check_frames.py 23 + python3 independent/deferred-readout/check_lifted.py 23 + python3 independent/deferred-readout/check_stair.py 23 + python3 independent/deferred-readout/check_stair.py 23 --control | grep -q 'certified=False' + +lean: + python3 lean/gen.py + lean lean/Round5.lean + python3 lean/gen.py round6-histograms.json Round6.lean + lean lean/Round6.lean + python3 lean/dump7.py + python3 lean/gen.py round7-histograms.json Round7.lean + lean lean/Round7.lean + +notes: + tectonic -X compile --outdir artifacts notes/segmented-inverse.tex + tectonic -X compile --outdir artifacts notes/stack-notes.tex + tectonic -X compile --outdir artifacts notes/fine-field-lemma.tex + tectonic -X compile --outdir artifacts notes/partial-swap-batching.tex + tectonic -X compile --outdir artifacts notes/round3-combination.tex + tectonic -X compile --outdir artifacts notes/data-edge-batching.tex + tectonic -X compile --outdir artifacts notes/complex-source-frames.tex + tectonic -X compile --outdir artifacts notes/deferred-readout.tex diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/NOTICE b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/NOTICE new file mode 100644 index 0000000000..be2e7e5a98 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/NOTICE @@ -0,0 +1,36 @@ +Past the a_b/2 ceiling for integer multiplication +Copyright 2026 Swapnil Jain + +This work builds on, and does not modify, the following: + +- OpenAI, "Integer multiplication below n log n" (September 23, 2026), pinned at + commit adc7f1241b42e322a6451854ab7e4b4c146bf78a of github.com/openai/math. +- Douglas Colkitt, github.com/CrocSwap/integer-mult-bounds (Apache-2.0), commit + 6e564879f51ae16f23d392e9e196c605f36d90df: compact controls and the conditional + 83/10^12 witness. +- Prior published results this witness assumes and cites (citations of prior work, + not collaborators), from open pull requests on that repository: + #3 and #5 (eumemic: compressed complex network, fast Gaussian resampling), + #4 (dleen), #6 (eumemic), #7 (Zhihao Chen / jacklightChen: ternary five-subset + networks, a_b = 3/(4*10^8), a_c = 39/10^9), + #10 (icekylinx: batched recursion, controlled projector basis, whole-residual + complex children, Gaussian input-error correction), + #13 (eumemic: auxiliary source frames, third whole-residual complex class), + #15 (eumemic, head a17cab3: full complex batching of every residual rank), + #18 (icekylinx, head f2ab41a: partial-swap networks, producers and common rational basis), + #21 (jacklightChen, head 5ba6cf0: translated partial-swap frames; it also contains, independently + and earlier in public, the complex source-frame translation we use), + #16 (jacklightChen: nested controlled bases) and #29 (jacklightChen: controlled inner basis compiling local + edges as blocks), related to our flag basis and side-role batching, which were developed independently, + #36 (icekylinx: copied retained centres, used on both our interchanges in rounds six and seven), + #62 (ikeboy: interval strips and core-aware pair assembly; its producer builds our round-seven side program), + #41 (RaD / hipotures: the alternating order and links, used in that side program), + #44 (rohanarun: weighted matching, which our moment-weighted choice of links follows), + #24 (icekylinx, head ed90fd9: endpoint-gauge bit network; certificates/external/pr24-bit-network.json + extracts its published counts and child-width multiplicities, Apache-2.0). +- Aurel Prosz (Paureel), github.com/Paureel/integer-mult-bounds commit c82d09e: + the two-stage motif with partial-swap frames and charged endpoint correction, and its complement-frame + construction, which our lifted frames follow in round seven. + +Research, implementation and drafting were done with assistance from Claude +(Anthropic). AI assistance is not independent review. diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/README.md b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/README.md new file mode 100644 index 0000000000..0970806664 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/README.md @@ -0,0 +1,211 @@ +# Integer multiplication: a conditional witness above 2^-14 + +**Conditional research draft by Swapnil Jain.** + +This draft builds on OpenAI's *Integer multiplication below n log n* and on Douglas +Colkitt's [integer-mult-bounds](https://github.com/CrocSwap/integer-mult-bounds). In +that model (a fixed finite alphabet and a fixed number of one-dimensional tapes), +it gives the conditional witness + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\boxed{\kappa=\frac{1599247689723}{2.5\times10^{16}}\approx6.39699\times10^{-5}>2^{-14}}. +$$ + +That is about 1.74 times our round-six witness `3.66657e-5`, 4.13 times our round-five witness `1.54788e-5`, +5.34 times our round-four witness `1.19722e-5`, and about 8500 times our first witness `7499/10^12`. These figures +compare asymptotic exponents, not practical runtimes. + +## Round seven + +`scripts/certificate_round7.py` rebuilds the bit side's child-width histogram from a frozen schedule +(`certificates/round7/`, about 2.3 MB compressed) and certifies it; the complex side is round six's. The bit side at +`h = 23` (`notes/deferred-readout.tex`): + +- **PR #62's producer** (interval strips and core-aware pair assembly), with PR #41's alternating order and links + and a moment-weighted choice of links after PR #44's weighted matching, builds the side program + (`R = 28866` slots). +- **Lifted frames and late copies.** Every addition acts at `M_n = span(n) + (U_n cap F_j)`, after Paureel's + complement-frame construction, and a node with several free uses copies itself late, at the intersection of the + frames of its remaining users, so the copy starts higher up its chain. +- **Deferred readouts (B-defer).** The second pass of stage one runs in two phases: first everything the retained + totals need (their copies then read every target at `0`), then every slot that phase did not touch reads its + garbage out at a nonzero frame `sigma_u` inside its start frame and every target's `t_T^perp`. Only the order of + the word changes; it is still a mirror. Readouts go in increasing `dim sigma_u`, which keeps every target's frame + sequence nested. +- **V leaves.** Each use of a leaf gets its own `V` gate on the data wire `X_S`, as a late copy there: the use slot + starts at the intersection `s_i` of the frames of the remaining uses, and the deferred `V` gates follow in + increasing dimension. + +The rank sum is exactly round six's budget `s = Wm - N + L`. With the staircase data-entrance corner (runs +`h-2, h-5, 1^6`) this certifies `a_b = 31987/(5*10^8)` and `kappa = 1599247689723/(2.5*10^16)`; with the +round-six entrance corner, `a_b = 12599/(2*10^8)` and `kappa = 6299103187973/10^17 > 2^-14`. + +The checks are standard-library Python, one process each (`make round7`, about 25 minutes and at most 1.2 GB of memory): + +- `independent/deferred-readout/check_word.py` replays the reordered word over F2 and over Z with arbitrary + scratch, checks that the schedule computes the side DAG, the phase split and the ordering rule, with negative + controls; +- `check_frames.py` rebuilds every frame exactly over Q and checks the deferred and V-leaf frames, the nesting of + every target and data chain in time order, G-nondegeneracy, the side lemma on every new high-rank step, and the + histogram, with negative controls; +- `check_lifted.py` checks the base side program: DAG, compilation, dirty-scratch replay, exact frame dimensions, + nesting facts, G-nondegeneracy and the side lemma on all of its high-rank steps; +- `check_stair.py` certifies the staircase entrance corner at the same integer point. + +Stage two is the complement time-reversal of stage one, as in round six; this is assumed, not machine-checked. The +moment certificates and both assemblies are also checked in Lean 4's kernel (`lean/Round7.lean`, `make lean`). + +## Round six (previous witness, `3666565558019/10^17`) + +`scripts/certificate_round6.py` (bit side) and `independent/complex-twostage/` (complex side) assemble the witness: + +- **Copied centres** (`notes/copied-centres.tex`), after PR #36's copied retained-centre schedule. A centre must be + read at `D0` by the second scatter and then gathered at `D1`; instead, a temporary copy goes down to `D0` for the + reads and is erased, and the original never leaves `D1`. Each centre loses one rank-`h` return per stage, the rank + budget becomes `s = Wm - N + L`, and the deficit `v(v - 2h^2)` is positive at much smaller `h`. On our bit + interchange (flag basis, gm side circuit, side roles batched one level down, data-entrance run) this certifies + `a_b = 34919/10^9` at `h = 25`. +- **Retained point totals** replace the direct centre wires: each total is a side role built from existing side + nodes, its copy pays rank `h-1` and the original rank `1`, so the loss per centre drops from `h` to `h-1` and the + centre roles leave `W` (`independent/two-stage-bit/rtgm.py`). This certifies `a_b = 36667/10^9` at `h = 23`. +- **The two-stage complex interchange** with our pair-exclusion producer, copied retained centres, complex data-edge + batching and every residual batched as one whole-residual child, certifies `a_c = 36926111/(5*10^11)` at `h = 24` + (`cd independent/complex-twostage && python3 run.py 24`: rank sum exact, labels 0 bad, `a_c >= 73861113/10^12`). + +The bit side binds: `kappa = 3666565558019/10^17`. Both moment certificates and the assembly are also checked in +Lean 4's kernel (`lean/Round6.lean`, `make lean`), as in round five. + +## Round five (previous witness, `309575208081/(2*10^16)`) + +`scripts/certificate_round5.py` assembles the witness from our own two-stage bit interchange (Paureel's +two-stage motif), with no outside bit network: + +- **A common flag basis** (`notes/flag-basis.tex`). One rational basis makes the corners of every auxiliary and + centre edge of the two-stage motif lower triangular, in both stages at once, so each role's `h` corner + transpositions become one contiguous run instead of `h` singleton calls. The same basis gives the data edges + their batched profiles one level down, including one run of width `h-2` inside the data-entrance corner (a + triangular corner plus a rank-one term). `independent/two-stage-bit/flagbasis.py` checks every edge class + exactly, and `flag_existence.py` checks the nonvanishing conditions at the working dimensions `h = 46, 47`. +- **A cheaper side circuit** (`independent/two-stage-bit/gmside.py`): a global matching of the points shares + pair sums and exclusion chains between centres, cutting the side roles at `h = 47` from 418678 to 403248; + `checkgm.py` re-derives every support and output exactly. +- PR #7's complex network, fully batched with complex source frames, as in round four. + +- **Side roles batched one level down.** In the flag basis every side-role edge has the form `pi (x) P_b`, whose + profile is that of the `h x h` idempotent `pi`: an edge of rank `r > h/2` becomes `h-r` singletons and one + block of width `2r-h`. `independent/two-stage-bit/side_chains.py` derives every side role's frame chain from + the compiled side program. + +The two moment certificates are also checked in Lean 4's kernel (`lean/Round5.lean`, `make lean`, core Lean +only): both child-width histograms sum to their total rank, the rational upper bounds on `ln(m/w)` are computed from +their series, the moment bound holds at the claimed savings, and the assembly (every constraint row and cost margin of +`scripts/certificate_round3.py`, with the guard constant bounded through the same ln series) gives the headline +`kappa`. The analytic facts behind those bounds (the atanh +tail and `(m/w)^a <= 1/(1 - a ln(m/w))`) are stated premises, not formalised. + +Together these certify `a_b = 15479/10^9` at `h = 47` and `kappa = 309575208081/(2*10^16) > 2^-16`. + +## Round four (previous witness, `59861145819/(5*10^15)`) + +`scripts/certificate_round4.py` assembles the witness from: + +- the stack below, which drives `eps` toward 1 (the bit side binds); +- PR #24's endpoint-gauge bit network, built on PR #18's partial-swap networks. We take its published + counts and child-width multiplicities (`certificates/external/pr24-bit-network.json`), check the rank sum + and deficit, and certify `a_b = 4788949/(4*10^11)` with our own moment bisection; +- PR #7's complex network at `h=28`, fully batched, with **complex source frames** + (`notes/complex-source-frames.tex`): starting each stage-two auxiliary role in the phase frame of `D0` + merges its entrance and exit into one child of rank `m-h`. Our histogram certifies + `a_c = 4079603/(2.5*10^11)`, more than the bit side needs. PR #21 contains the same translation, + independently and in a more complete form. + +The same script also reports a witness using only our own bit side: the two-stage interchange with +**data-edge batching** (`notes/data-edge-batching.tex`, `independent/two-stage-bit`). Both stage-two data +entrances have idempotent difference `Q1 (x) Q2`, of rank `(h-1)^2 > m/2`, so the partial-swap batching +lemma applies to them too; at `h=47` this certifies `a_b = 10033/10^9` and `kappa = 1003289933971/10^17`. + +## Round three (previous witness, `13086957581/(3.125*10^15)`) + +`notes/round3-combination.tex` assembles the witness from four components: + +- the stack below, which drives `eps` toward 1; +- a batched two-stage bit interchange, using the partial-swap batching lemma in + `notes/partial-swap-batching.tex` (`a_b = 22157/(5*10^9)`); +- PR #7's complex network at `h=28`, fully batched as in PR #15 (every residual edge is one + whole-residual child), rebuilt and certified independently in `independent/complex-network` + (`a_c = 1048009/(2.5*10^11)`; this side binds); +- a coefficient-depth guard that needs no path-topology assumption. + +`scripts/certificate_round3.py` checks every row and constraint exactly. + +## The ceiling and how this gets past it + +After the recent pull requests, every witness is capped at about half the +bit-network saving, `kappa < a_b/2`. Three costs each tie a saving to either the +number of axes `d` or the axis width `l`, and `d*l ~ log n`: + +- the butterflies save on `d`; +- the chunk layout and the axis layout save on `l`. + +On top of that, the Gaussian precision budget `~8d^2` must fit in `O(log n)`. + +Five changes remove those caps. + +| Change | What it does | Note | +| --- | --- | --- | +| D. Longer digits | Digits of `(log n)^(1+x)` bits separate the precision budget from the address length. The volume stays `Theta(n)`. | `notes/stack-notes.tex` §1 | +| B. Segmented inverse | Inside any wrap-free block, the Gaussian correction `N` is exactly `D_c T_c D_c^{-1}` for any centre `c`, and every `T_c` is a geometric rescaling of one Toeplitz matrix. Recentred sub-blocks keep the chirp precision bounded. Gohberg–Semencul inverts each block, and Woodbury couples the cuts and wraps. With oversampling `1/(4 d L^eps)`, this replaces PR #5's `O(d)` Neumann terms per output (its counts are at most `30d`; the burn-in alone is about `1/theta = 4d`) with `O(1)` work per output. | `notes/segmented-inverse.tex` | +| C. One chunk per axis | `K = l - 1` is possible once compact controls remove the `K^tau` factor. The transform layout then needs no exchanges. | `notes/stack-notes.tex` §2 | +| A. Fine-bit exposure | Only `O(log L)` low bits of an axis move innermost for resampling. The line passes stream over slabs. | `notes/stack-notes.tex` §3 | +| E'. Permuted selected-bit swaps | Colkitt's selected-bit addition with a permuted pairing reverses the CRT axis order at cost `l (d log p)^tau`. | `notes/stack-notes.tex` §4 | + +Only the combination moves the headline. D alone, for example, leaves PR #5's +Gaussian row capping `eps < 1/2`. The binding constraint is now the butterfly row, +`eps(1-lambda')`, at `eps = 0.9999`. + +## Evidence and scope + +| Component | Evidence | +| --- | --- | +| Parameters, margins, side constraints | Exact rational certificate (`scripts/certificate.py`) with negative controls | +| Closed form `X = n(n+2 beta_j)`, segment and recentred factorisations, cross-wrap bound `X >= 2` | Exact rational checks on five `(s,t)` pairs (`scripts/check_identities.py`) | +| Segmented inverse | Written proof (`notes/segmented-inverse.tex`); 260-digit comparisons against a direct solve, with cyclic indices, for whole segments (`scripts/check_segmented_inverse.py`), recentred sub-blocks (`scripts/check_subblock_inverse.py`), and the reuse path, which uses one stored inverse rescaled per block, elimination without pivoting, and a fixed-point negative control that must fail (`scripts/check_reuse_inverse.py`) | +| A, C, D, E' | Written arguments, each attacked by a refute-by-default check, with the resulting fixes in the notes | +| Prior results from PR #3, #5 and #7 on integer-mult-bounds (networks, chirped Gaussian lemma) | Assumed, and unmerged there. We recomputed PR #7's W, m, N, L, s, eta and their complex counterparts exactly from its formulas. An independent re-implementation (`independent/pr7-role-counts`, `make roles`) reproduces its h=28 role counts, 11840940 and 93838, exactly. The finite-alphabet version of the interchange lemmas that its ternary payloads need is proved in `notes/stack-notes.tex`, Appendix A. | +| Partial-swap batching (bit side) | Written proof (`notes/partial-swap-batching.tex`); exact Bruhat profiles on random, sparse and adversarial idempotents, and two-stage frames at h=6,7,8 (`independent/partial-swap`) | +| Fully batched complex saving | Independent rebuild of PR #7's producer, exact label checks (0 bad edges at h=28), the residual rank of every edge with an exact sum check against s, and a certified moment bisection (`independent/complex-network`) | +| PR #24's bit network | Its published counts and child-width multiplicities, pinned by commit and SHA-256; we check that the widths sum to the total rank, the deficit, and that every child is narrower than m, and certify the moment ourselves. We also re-derived its frame identities and confirmed it is compatible with our stack (separate bit and complex arities, crude guard, payload and prime choice); its producers and common basis are assumed | +| Data-edge batching (bit side) | Written proof (`notes/data-edge-batching.tex`): closed form `Q1 (x) Q2` checked in exact rationals; corners invertible under one common basis for every auxiliary edge and every data pair at h=6,7,8 (all 3136 pairs at h=8, `corners.py`); exact Bruhat profiles (`bruhat8.py`) | +| Two-stage side circuit at h=47 | Our generator (`independent/two-stage-bit/sidegen.py`) reproduces the published h=32 count, 123157, and an exact checker (`checkside.py`) verifies supports, disjoint children, common points and every output at h=28 to 50; `moment.py` builds the child histogram role by role and checks it sums to s | +| Complex source frames | Written proof (`notes/complex-source-frames.tex`); exact label and phase checks of every endpoint case (`independent/complex-network/sourceframe_labels.py`); a three-stage scalar simulation of PR #7's network with source frames, arbitrary scratch and a negative control (`sourceframe_sim.py`); the histogram option `sf` keeps the exact rank sum s | +| Round-seven bit side (deferred readouts, V leaves, lifted frames, late copies) | Frozen schedule and frames (`certificates/round7/`); stdlib replays over F2 and Z with arbitrary scratch, exact frame checks over Q, side lemma at one integer point, histogram rebuilt from the schedule, negative controls (`independent/deferred-readout/`); Lean kernel check of the moment certificates and assembly. Stage two as the complement time-reversal of stage one is assumed | +| Topology-free guard | Written argument (docstring of `scripts/certificate_round3.py`); the witness is stated with this guard | +| Prior results from PR #10, #13 and #15, and the two-stage motif | Assumed. We reproduced their rank moments, certified at least PR #15's fully batched saving from our own histogram, and found controlled-basis witnesses for PR #10 at h=8 to 14 | +| Full upstream multiplication theorem | Assumed | +| Independent review / formalisation | Not supplied | + +## Reproduce + +Requires Python 3.9 or newer, standard library only. + +```sh +python3 independent/complex-network/fullbatch_hist.py 28 /tmp/fb28sf.json sf # ~4 min +python3 scripts/certificate_round4.py /tmp/fb28sf.json +python3 independent/two-stage-bit/checkside.py 47 +make verify # exact checks, numerical inverse checks, certificate, tests +make roles # independent recount of PR #7's role counts (clang++, ~1 GB) +make round7 # round-seven certificate and checks (~25 min) +make lean # Lean 4 kernel checks of rounds five to seven +make notes # PDF notes (tectonic) +``` + +The PDFs are in `artifacts/`. + +## Attribution + +Author: **Swapnil Jain**. Research, implementation and drafting were done with +assistance from Claude (Anthropic). This builds on OpenAI's manuscript and Douglas +Colkitt's framework. It also uses published results from open pull requests on +Colkitt's repository, cited in `NOTICE`; those are citations of prior work, not +collaborators. Licensed under Apache-2.0. diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf new file mode 100644 index 0000000000..68b0dcd219 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/complex-source-frames.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf new file mode 100644 index 0000000000..c290bc5431 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/copied-centres.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf new file mode 100644 index 0000000000..cb94268721 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/data-edge-batching.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf new file mode 100644 index 0000000000..7aa9fb3081 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/deferred-readout.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf new file mode 100644 index 0000000000..ff5bd62201 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/fine-field-lemma.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf new file mode 100644 index 0000000000..39b1289de2 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/flag-basis.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf new file mode 100644 index 0000000000..a03f30c451 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/partial-swap-batching.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf new file mode 100644 index 0000000000..0706f9d115 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/round3-combination.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf new file mode 100644 index 0000000000..65a2e17777 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/segmented-inverse.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf new file mode 100644 index 0000000000..827f07e6b5 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/artifacts/stack-notes.pdf differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json new file mode 100644 index 0000000000..4e212f6281 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/external/pr24-bit-network.json @@ -0,0 +1,138 @@ +{ + "source": { + "repository": "github.com/CrocSwap/integer-mult-bounds pull request #24 (icekylinx)", + "commit": "ed90fd940279c336ebc45968631bdebfb087b505", + "file": "certificates/endpoint-gauge-network.json", + "sha256": "0ccbc892174915e3a7559cc116eaf42b288dae4d933b1332520e0710ffff5f96", + "license": "Apache-2.0", + "extract": "bit side: counts and child-width multiplicities only" + }, + "counts": { + "B1": 4680040601600, + "B2": 4642714752000, + "B3": 4813691904000, + "E": 133651302400, + "L": 113840729600, + "N": 198959488000, + "W": 9854325632000, + "deficit": 170237516800, + "dimensions": [ + 32, + 30, + 40 + ], + "m": 38400, + "singletons": 629339590854400, + "total_rank": 378405934031283200 + }, + "child_width_multiplicities": [ + [ + 1, + 629339590854400 + ], + [ + 2, + 520055584000 + ], + [ + 4, + 535654515200 + ], + [ + 6, + 537511296000 + ], + [ + 8, + 583899225600 + ], + [ + 10, + 550774176000 + ], + [ + 12, + 522502086400 + ], + [ + 14, + 617933335200 + ], + [ + 16, + 644506096800 + ], + [ + 18, + 763624344000 + ], + [ + 20, + 652872441600 + ], + [ + 22, + 689629485600 + ], + [ + 24, + 1691371634400 + ], + [ + 26, + 1558994438400 + ], + [ + 28, + 1018295520000 + ], + [ + 30, + 5192627235200 + ], + [ + 32, + 342595792000 + ], + [ + 34, + 1125691840000 + ], + [ + 36, + 283134656000 + ], + [ + 38, + 796643456000 + ], + [ + 40, + 134456806400 + ], + [ + 838, + 397918976000 + ], + [ + 882, + 397918976000 + ], + [ + 36402, + 397918976000 + ], + [ + 38256, + 4680040601600 + ], + [ + 38320, + 133651302400 + ], + [ + 38340, + 4642714752000 + ] + ] +} \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/identities.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/identities.json new file mode 100644 index 0000000000..a87f969d34 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/identities.json @@ -0,0 +1,62 @@ +[ + { + "s": 113, + "t": 128, + "theta": "15/113", + "checks": { + "closed_form": 20340, + "segment": 2226, + "cross": 18114, + "recentred": 4914 + }, + "min_cross_exponent": "228/113" + }, + { + "s": 241, + "t": 256, + "theta": "15/241", + "checks": { + "closed_form": 43380, + "segment": 10896, + "cross": 32484, + "recentred": 28620 + }, + "min_cross_exponent": "484/241" + }, + { + "s": 1009, + "t": 1024, + "theta": "15/1009", + "checks": { + "closed_form": 181620, + "segment": 139770, + "cross": 41850, + "recentred": 411030 + }, + "min_cross_exponent": "2020/1009" + }, + { + "s": 1019, + "t": 1024, + "theta": "5/1019", + "checks": { + "closed_form": 183420, + "segment": 169470, + "cross": 13950, + "recentred": 505650 + }, + "min_cross_exponent": "2040/1019" + }, + { + "s": 4093, + "t": 4096, + "theta": "3/4093", + "checks": { + "closed_form": 736740, + "segment": 728370, + "cross": 8370, + "recentred": 2183454 + }, + "min_cross_exponent": "8188/4093" + } +] \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz new file mode 100644 index 0000000000..4a4431bd42 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/deferred_23.json.gz differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz new file mode 100644 index 0000000000..3d86f83b87 Binary files /dev/null and b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/round7/witness_23.json.gz differ diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/witness.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/witness.json new file mode 100644 index 0000000000..94339ac381 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/certificates/witness.json @@ -0,0 +1,32 @@ +{ + "kappa": "7499/1000000000000", + "kappa_float": 7.499e-09, + "min_margin": "374952501/50000000000000000", + "gap": "2501/50000000000000000", + "binding": "simultaneous butterflies", + "c1": "24189/10000", + "constraints": { + "lambda above tau, sigma, chi": "1/10000000000000", + "lambda_prime above lambda": "1/10000000000000", + "lambda_prime above leaf": "60001/5000000000000", + "lambda_prime below one": "37499/5000000000000", + "guard: eps C1 < 1 + x": "158134189/100000000", + "precision: 2 eps + y < 1 + x": "10003/10000", + "sub-block coupling: y >= eps": "1", + "reservations below layer: (2eps-1)/eps < lambda_prime": "4999625047499/49995000000000000", + "record regime: eps < 1": "1/10000", + "delta < 1/8": "124999/1000000", + "prime intervals via PNT: eps < 1": "1/10000" + }, + "margins": { + "prefix moves and top individual round": "1/10000", + "simultaneous butterflies": "374952501/50000000000000000", + "fine-bit exposures (A)": "3/31250", + "Gaussian maps (B)": "3/31250", + "chirps, twists, scalar products": "3/31250", + "packed polynomial products": "9999/10000", + "individually processed reserved axes": "3/31250", + "CRT axis reversal, best of E and pairwise swaps": "29997/4000000000000" + }, + "assumptions": "PR #7 networks (a_b=3/(4*10^8), a_c=39/10^9); pinned upstream interfaces" +} \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/README.md b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/README.md new file mode 100644 index 0000000000..95a5da44ed --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/README.md @@ -0,0 +1,22 @@ +# Fully batched complex saving of the PR #7 network + +An independent rebuild of the complex side used by the round-three witness: + +- `side.py`: the PR #7 complex producer (pieces, pair stars, optional PR #4 retained totals). +- `labels.py`: exact binary label checks over F2^h for every edge of the producer. +- `roles.py`: role-level compile (addition, piece and retained-total slots). +- `fullbatch_hist.py`: the three-stage invocation schedule with h+1 centre wires; it records the rank of + every nonzero residual edge and checks that the ranks sum to s exactly. +- `fullbatch_cert.py`: treats every residual edge as one whole-residual child (PR #15's full batching), + certifies a_c by exact bisection on the moment equation with certified upper bounds on ln (`bc.py`), + reports the path bound, and evaluates kappa with `scripts/certificate_round3.py`. + +```sh +python3 fullbatch_hist.py 28 /tmp/fb28.json # ~4 min; label check, ranks, sum_ok +python3 fullbatch_cert.py /tmp/fb28.json +``` + +At h=28 (m = 21952, R = 93867 with the centre wires, s = 45772350635112192) the labels check has 0 bad +edges, the rank sum equals s, and the certified saving is a_c = 1048009/(2.5*10^11) ~ 4.192e-6. With the +batched two-stage bit interchange (a_b = 22157/(5*10^9)) this gives kappa = 13086957581/(3.125*10^15) +~ 4.1878e-6 under both guards, with the simultaneous butterflies binding. diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/bc.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/bc.py new file mode 100644 index 0000000000..53e00de297 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/bc.py @@ -0,0 +1,21 @@ +"""Certified bounds on exp and ln, in exact rationals.""" +from fractions import Fraction as Q +from math import comb +from decimal import Decimal as D, getcontext +getcontext().prec = 80 + +def exp_lower(U, k=10, terms=30): + # positive Taylor partial sum of exp(U/2^k), squared k times, rounded down: rigorous lower bound + x = U / 2**k; s = Q(0); t = Q(1) + for j in range(1, terms): s += t; t = t * x / j + for _ in range(k): + s = s * s; s = Q(s.numerator * 10**40 // s.denominator, 10**40) + return s + +def ln_upper(x, rel=Q(1, 10**9)): + # rational U with exp(U) > x (so U > ln x), within ~rel of ln x + lx = D(x.numerator).ln() - D(x.denominator).ln() + den = 10**12 + U = Q(int(lx * den) + 1, den) * (1 + rel) + assert exp_lower(U) > x + return U diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py new file mode 100644 index 0000000000..103bbb7d27 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/fullbatch_cert.py @@ -0,0 +1,41 @@ +"""Certified fully batched complex saving from a residual histogram, and kappa on our stack with the +batched two-stage bit interchange (a_b = 22157/(5*10^9)).""" +import sys, json, math, os +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE); sys.path.insert(0, os.path.join(HERE, '..', '..', 'scripts')) +from fractions import Fraction as Q +from bc import ln_upper, exp_lower +from certificate_round3 import evaluate + +def ln_up(x): # certified U > ln x, tight + return ln_upper(Q(x), rel=Q(1,10**13)) + +def cert(hist,W,m,s,grid=10**12): + ws=[(Q(r*c,W*m), ln_up(Q(m,r))) for r,c in hist.items()] + assert sum(r*c for r,c in hist.items())==s + mom=lambda a: sum(w/(1-a*U) for w,U in ws) + lo,hi=0,10**8 + assert mom(Q(hi,grid))>1 + while hi-lo>1: + mid=(lo+hi)//2 + if all(Q(mid,grid)*U<1 for _,U in ws) and mom(Q(mid,grid))<1: lo=mid + else: hi=mid + return Q(lo,grid), 1-mom(Q(lo,grid)) + +def sqrt_up(x,g=10**12): + n=math.isqrt(x.numerator*g*g//x.denominator)+1; r=Q(n,g); assert r*r>x; return r + +def path_bound(m,h,A): + q=m+6*h; assert Adim: s.desc.append(o-dim) + s.dim[r]=dim + +def invocation(c,k,dims,stage,inverse,sf=False): + h=c.h; m=h**3; v=len(c.triples); R=k['size'] + x={t:i for i,t in enumerate(c.triples)}; y={t:v+i for i,t in enumerate(c.triples)} + side=lambda sl:2*v+sl + ncent=h+1 + cent=tuple(range(2*v+R,2*v+R+ncent)) + a=h**(stage-1); low,high=(a-1)*h,a*h + tr=Trace([a]*v+[a-1]*v+[h if stage==3 else 0]*(R+ncent)) + # Source frames (stage two only, notes/complex-source-frames.tex): an auxiliary role starts in D0, of dim + # low, and its exit child to the sink wt+q_D0 has rank (m+low) - last dim. Input-pivot slots are left + # at source 0: their first stage-two gate is the copy in the data frame, not a frame above D0, so + # starting them at D0 would charge a descent and break the rank sum. + keep=set(k['src'].values())|set(k['rout'].values()) + sfr={2*v+sl for sl in range(R) if sf and stage==2 and sl not in keep} + for r in sfr: tr.dim[r]=low + pieces={t:[] for t in c.triples} + for i,sl in k['pout'].items(): pieces[c.pieces[i][0]].append(side(sl)) + def mix(md,rev=False): + for n,ins,outs in (reversed(k['gates']) if rev else k['gates']): + f={'low':low,'high':high,'label':low+dims[n],'complement':high-dims[n]}[md] + tr.gate([side(q) for q in ins+outs],f) + def inject(b,f): + for t in c.triples: tr.gate([b[t]]+pieces[t],f) + def copy(b,f): + for t,sl in k['src'].items(): tr.gate((b[t],side(sl)),f) + def central(b,f): tr.gate(tuple(b.values())+cent,f) + if True: + if not inverse: + mix('low'); inject(y,low); mix('low',True); central(y,low) + copy(x,low+1); central(x,high); central(y,low) + mix('label'); inject(y,high-1); mix('high',True) + central(x,high); copy(x,high) + else: + copy(y,a-1); central(y,low); mix('low'); inject(x,low+1) + mix('complement',True); central(x,high); central(y,low) + copy(y,high-1); central(x,high); mix('high'); inject(x,high) + mix('high',True) + for r in x.values(): tr.gate((r,),high) + for r in y.values(): tr.gate((r,),high-1) + for r in range(2*v,len(tr.dim)): tr.gate((r,),(m+low) if r in sfr else (h if stage==1 else m)) + return tr.hist, tr.desc + +def run(h,sf=False): + c=Side(h) + k=compile_roles(c); ch=Checker(c); chk=ch.run() + dims={n:len(ch.label(n)) for n in c.active} + H=Counter(); D=[] + for st,inv in ((1,False),(2,True),(3,False)): + hh,dd=invocation(c,k,dims,st,inv,sf); H.update(hh); D.append(sorted(Counter(dd).items())) + v=len(c.triples); m=h**3; N=v**3; Rb=k['size']+h+1 + loss=h*(h+1) + W=2*N+2*v*v*Rb; L=3*v*v*loss; s=W*m-2*N+2*L + hist={r:n*v*v for r,n in sorted(H.items())} + tot=sum(r*n for r,n in hist.items()) + return dict(h=h,checker=chk,R=Rb,W=W,s=s,m=m,sum_ok=(tot==s),tot=tot,desc=D,hist=hist) + +if __name__=='__main__': + h=int(sys.argv[1]); out=sys.argv[2] if len(sys.argv)>2 else f'/tmp/fullbatch_hist_{h}.json' + r=run(h,sf=len(sys.argv)>3 and sys.argv[3]=='sf') + json.dump({**r,'hist':{str(a):b for a,b in r['hist'].items()}},open(out,'w')) + print({k:v for k,v in r.items() if k!='hist'}); print(r['hist']) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/labels.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/labels.py new file mode 100644 index 0000000000..ec70ed13a5 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/labels.py @@ -0,0 +1,94 @@ +"""Exact binary label checks over F2^h (dot product) for a Side circuit. +labels: input -> ; node whose triples share one common pair and >=2 triples +-> span of its indicators (pair-star label); otherwise coordinate space of covered points.""" +import sys +from side import Side + +def echelon(vs): + b={} + for x in vs: + for p,y in b.items(): + if x&p: x^=y + if not x: continue + p=x&-x + for q in list(b): + if b[q]&p: b[q]^=x + b[p]=x + return b +def red(b,x): + for p,y in b.items(): + if x&p: x^=y + return x +def dot(a,b): return bin(a&b).count('1')&1 +def perp_in(V,U): + """basis of V ∩ U^perp (V,U lists of basis vectors)""" + k=len(U); rows=[] + for i,v in enumerate(V): + rows.append((sum(dot(v,u)<>i&1: x^=v + out.append(x) + return out +def nondeg(B): + g=[sum(dot(a,b)<=2: B=list(echelon([s.tvec(i) for i in idx]).values()); assert len(B)==len(idx) + else: X=c.cover(n); B=[1<

>p&1] + B=sorted(echelon(B).values()); assert nondeg(B); s.lab[n]=B; return B + def edge(s,U,V): + key=(tuple(U),tuple(V)) + if key not in s.cache: + bV=echelon(V); good=all(red(bV,u)==0 for u in U) + s.cache[key]=good and ok_res(perp_in(V,U)) + return s.cache[key] + def run(s): + c=s.c; bad=0; n_e=0 + F=[1<

) perp ( (x) L (x) ), +so D0 = V(0), D1 = V(F). For an aux role with source frame q_D0 and sink frame wt + q_D0: + entrance q_{V(L1)} - q_D0 should equal q_{(x)L1(x)} (rank dim L1) + exit wt + q_D0 - q_{V(L2)} should equal q_G, G = D0 perp V(L2)^perp (rank m - dim L2) +G must be nondegenerate and nonalternating (orthonormal basis). Checked at random y, plus ranks.""" +import sys, random +from itertools import combinations +h = int(sys.argv[1]); m = h**3; rnd = random.Random(h) +def idx(i, j, k): return (i * h + j) * h + k +def tens(a, b, c): # bit vectors over F_2^h -> F_2^m + x = 0 + for i in range(h): + if a >> i & 1: + for j in range(h): + if b >> j & 1: + for k in range(h): + if c >> k & 1: x |= 1 << idx(i, j, k) + return x +def dot(x, y): return bin(x & y).count('1') & 1 +def span_basis(vs): + b = {} + for x in vs: + for piv, y in b.items(): + if x >> piv & 1: x ^= y + if x: + piv = x.bit_length() - 1 + for q in list(b): + if b[q] >> piv & 1: b[q] ^= x + b[piv] = x + return list(b.values()) +class Proj: + """orthogonal projection onto span(basis) for the dot form; asserts nondegenerate""" + def __init__(s, B): + s.B = B; n = len(B) + G = [sum(dot(a, b) << j for j, b in enumerate(B)) | (1 << (n + i)) for i, a in enumerate(B)] + for col in range(n): # invert Gram (symmetric) by Gauss-Jordan + r = next((r for r in range(col, n) if G[r] >> col & 1), None) + assert r is not None, 'degenerate' + G[col], G[r] = G[r], G[col] + for rr in range(n): + if rr != col and G[rr] >> col & 1: G[rr] ^= G[col] + s.Gi = [g >> n for g in G] + def __call__(s, x): + c = sum(dot(b, x) << j for j, b in enumerate(s.B)); out = 0 + for i, b in enumerate(s.B): + if bin(s.Gi[i] & c).count('1') & 1: out ^= b + return out +def q(P, x): return bin(P(x)).count('1') % 4 +def perp(B, n=m): + """basis of complement of span(B) in F_2^m (B nondegenerate): kernel of x -> (b.x)""" + rows = list(B); piv = [] + # solve: vectors x with b.x=0 for all b; use reduced rows + R = span_basis(rows); pivs = {r.bit_length() - 1: r for r in R} + out = [] + for f in range(n): + if f in pivs: continue + x = 1 << f + for pv, r in pivs.items(): + if dot(r, x): x ^= 1 << pv # r has its leading bit pv; adjust coordinate pv + out.append(x) + assert all(dot(r, x) == 0 for r in R for x in out) and len(out) == n - len(R) + return out +T = [sum(1 << i for i in t) for t in combinations(range(h), 3)] +Fh = (1 << h) - 1 +units = [1 << i for i in range(h)] +ok = True +for trial in range(3): + tA, tB = rnd.choice(T), rnd.choice(T) + Aperp = [u ^ (tA if dot(u, tA) else 0) for u in units] # spans t_A^perp (h-1 dim) + Aperp = span_basis(Aperp) + D0 = span_basis([tens(a, u, tB) for a in Aperp for u in units]); assert len(D0) == (h - 1) * h + t = rnd.choice(T); tperp = span_basis([u ^ (t if dot(u, t) else 0) for u in units]) + cases = {'L=F (generic aux)': units, 'L=t^perp (piece)': tperp, 'L=0 (retained)': [], 'L=': [t]} + PD0 = Proj(D0) + ys = [rnd.getrandbits(m) for _ in range(20)] + for name, L in cases.items(): + E = [tens(tA, l, tB) for l in L] + V = D0 + E + PV = Proj(V); PE = Proj(E) if E else (lambda x: 0) + G = span_basis(D0 + perp(V)); PG = Proj(G) + nonalt = any(dot(g, g) for g in G) + ent = all((q(PV, y) - q(PD0, y) - (q(PE, y) if E else 0)) % 4 == 0 for y in ys) + ex = all((bin(y).count('1') + q(PD0, y) - q(PV, y) - q(PG, y)) % 4 == 0 for y in ys) + print(h, trial, name, 'dimV', len(V), 'entrance rank', len(E), 'entrance phase ok', ent, + '| exit rank dim G', len(G), '= m-dimL', len(G) == m - len(L), 'nondeg+nonalt', nonalt, + 'exit phase ok', ex, flush=True) + ok &= ent and ex and nonalt and len(G) == m - len(L) +print('ALL OK', ok) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py new file mode 100644 index 0000000000..ca684ec9ba --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_sim.py @@ -0,0 +1,157 @@ +"""Three-stage scalar simulation of the complex exchange with auxiliary source frames (PR #7 network). + +Network: side.Side(h) with roles.compile_roles, plus h+1 centre wires, under the PR #7 schedule +(fullbatch_hist.invocation): forward L,-J,L^-1,-R,V,G,R,L,J,L^-1,G^-1,V^-1 gives y <- y+x, the inverse +V,G,L,-J,L^-1,-R,G^-1,V^-1,R,L,J,L^-1 gives x <- x-y; stages forward/inverse/forward give the exchange. + +All phase frames D_phi = H^(x)m diag(i^phi) H^(x)m are diagonal in the Hadamard basis and every gate is a +scalar combination of wires, so the network is checked pointwise at a random y in F_2^m (m = h^3), exactly +mod p = 2^64-59 with i = sqrt(-1). Each gate gets an independent random common phase, data endpoints get +random phases and scratch is arbitrary. Scratch endpoints: + stage-1/3 banks (shared between the stages), centre wires, input-pivot and retained slots: source 0, sink wt + other stage-two side roles: source q_D0, sink wt + q_D0, with D0 = t_A^perp (x) F (x) +Pass: every scratch wire leaves as i^wt times its physical input, X -> -Y and Y -> X with the endpoint phases. +Usage: python3 sourceframe_sim.py h [seeds] (run beside side.py and roles.py).""" +import os, sys, random +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from side import Side +from roles import compile_roles + +p = (1 << 64) - 59 +g = next(a for a in range(2, 100) if pow(a, (p - 1) // 2, p) == p - 1) +IU = pow(g, (p - 1) // 4, p); assert IU * IU % p == p - 1 +IP = [pow(IU, k, p) for k in range(4)] +HALF = pow(2, p - 2, p) + + +def par(x): return bin(x).count('1') & 1 + + +def qD0(h, y, tA, tB): + """wt(P_D0 y) mod 4 for D0 = t_A^perp (x) F (x) ; y[i][j] is an h-bit int over the third index.""" + tot = 0 + for j in range(h): + z = sum(par(y[i][j] & tB) << i for i in range(h)) + if par(z & tA): z ^= tA # project along the first index onto t_A^perp + tot += 3 * bin(z).count('1') # each surviving (i,j) carries t_B, of weight 3 + return tot % 4 + + +class Invocation: + """Framed scalar operations on one bank: side slots 0..R-1, centre wires R..R+h (index R+h is '*').""" + + def __init__(s, c, k, rnd): + s.c, s.k, s.rnd, s.h, s.R = c, k, rnd, c.h, k['size'] + s.pieces = {t: [] for t in c.triples} + for i, sl in k['pout'].items(): + S, _, cf = c.pieces[i]; s.pieces[S].append((sl, cf * HALF % p)) # side map weights are +-1/2 + s.cent = {i: [t for t in c.triples if i in t] for i in range(s.h)} + + def gate(s, cells): + """Bring every (values, key, frames) cell to one fresh random common phase.""" + ph = s.rnd.randrange(4) + for val, key, fr in cells: + d = (ph - fr[key]) % 4 + if d: val[key] = val[key] * IP[d] % p + fr[key] = ph + + def L(s, b, sign): + r, rf = b + for n, ins, outs in (s.k['gates'] if sign > 0 else reversed(s.k['gates'])): + s.gate([(r, q, rf) for q in set(ins + outs)]) + if sign > 0: + if len(ins) == 2: r[ins[0]] = (r[ins[0]] + r[ins[1]]) % p + for o in outs[1:]: r[o] = (r[o] + r[outs[0]]) % p + else: + for o in outs[1:]: r[o] = (r[o] - r[outs[0]]) % p + if len(ins) == 2: r[ins[0]] = (r[ins[0]] - r[ins[1]]) % p + + def J(s, b, tgt, sg): # one injection gate per target + r, rf = b; tv, tf = tgt + for S, terms in s.pieces.items(): + if not terms: continue + s.gate([(r, sl, rf) for sl, _ in terms] + [(tv, S, tf)]) + tv[S] = (tv[S] + sg * sum(cf * r[sl] for sl, cf in terms)) % p + + def V(s, b, src, sg): # copy gates + r, rf = b; xv, xf = src + for t, sl in s.k['src'].items(): + s.gate([(r, sl, rf), (xv, t, xf)]); r[sl] = (r[sl] + sg * xv[t]) % p + + def central(s, b, d): # one central gate: all of one data bank and every centre wire + r, rf = b; dv, df = d + s.gate([(dv, t, df) for t in s.c.triples] + [(r, s.R + i, rf) for i in range(s.h + 1)]) + + def G(s, b, src, sg): + r = b[0]; xv = src[0]; s.central(b, src) + for i in range(s.h): r[s.R + i] = (r[s.R + i] + sg * sum(xv[t] for t in s.cent[i])) % p + r[s.R + s.h] = (r[s.R + s.h] + sg * sum(xv.values())) % p + + def Rc(s, b, tgt, sg): + r = b[0]; tv = tgt[0]; s.central(b, tgt) + for t in s.c.triples: + tv[t] = (tv[t] + sg * (sum(r[s.R + i] for i in t) - r[s.R + s.h]) * HALF) % p + + def forward(s, b, x, y): + s.L(b, 1); s.J(b, y, -1); s.L(b, -1); s.Rc(b, y, -1); s.V(b, x, 1); s.G(b, x, 1) + s.Rc(b, y, 1); s.L(b, 1); s.J(b, y, 1); s.L(b, -1); s.G(b, x, -1); s.V(b, x, -1) + + def inverse(s, b, y, x): + s.V(b, y, 1); s.G(b, y, 1); s.L(b, 1); s.J(b, x, -1); s.L(b, -1); s.Rc(b, x, -1) + s.G(b, y, -1); s.V(b, y, -1); s.Rc(b, x, 1); s.L(b, 1); s.J(b, x, 1); s.L(b, -1) + + +def run(c, k, seed, src_frame=True, sink_ok=True): + """Returns (data ok, scratch ok, invocations with nonzero q_D0, stage-two invocations).""" + rnd = random.Random(seed); h = c.h; T = c.triples; tm = {t: sum(1 << q for q in t) for t in T} + y = [[rnd.getrandbits(h) for _ in range(h)] for _ in range(h)] + wt = sum(bin(y[i][j]).count('1') for i in range(h) for j in range(h)) % 4 + I = Invocation(c, k, rnd); W = k['size'] + h + 1 + keep = set(k['src'].values()) | set(k['rout'].values()) | set(range(k['size'], W)) + keys = [(a, b, d) for a in T for b in T for d in T] + X = {a: rnd.randrange(p) for a in keys}; Y = {a: rnd.randrange(p) for a in keys} + Xf = {a: rnd.randrange(4) for a in keys}; Yf = {a: rnd.randrange(4) for a in keys} + X0, Y0, Xf0, Yf0 = dict(X), dict(Y), dict(Xf), dict(Yf) + psiX = {a: rnd.randrange(4) for a in keys}; psiY = {a: rnd.randrange(4) for a in keys} + + def bank(ph): + v = [rnd.randrange(p) for _ in range(W)]; return [v, list(ph), list(v)] + b1 = {(A, B): bank([0] * W) for A in T for B in T} + q0 = {(A, B): qD0(h, y, tm[A], tm[B]) for A in T for B in T} + b2 = {AB: bank([0 if (sl in keep or not src_frame) else q for sl in range(W)]) for AB, q in q0.items()} + + def stage(st, fixed, bk, inv): + key = [lambda t: (t,) + fixed, lambda t: (fixed[0], t, fixed[1]), lambda t: fixed + (t,)][st] + xv = {t: X[key(t)] for t in T}; xf = {t: Xf[key(t)] for t in T} + yv = {t: Y[key(t)] for t in T}; yf = {t: Yf[key(t)] for t in T} + if inv: I.inverse(bk[:2], (yv, yf), (xv, xf)) + else: I.forward(bk[:2], (xv, xf), (yv, yf)) + for t in T: X[key(t)], Xf[key(t)], Y[key(t)], Yf[key(t)] = xv[t], xf[t], yv[t], yf[t] + + partner = lambda t: tuple(sorted((q + 1) % h for q in t)) # stage-three reuse of the stage-one banks + for A in T: + for B in T: stage(0, (A, B), b1[A, B], False) + for A in T: + for B in T: stage(1, (A, B), b2[A, B], True) + for A in T: + for B in T: stage(2, (B, partner(A)), b1[A, B], False) + + def sink(val, fr, i, target): return val[i] * IP[(target - fr[i]) % 4] % p + ok_s = all(sink(v, f, i, wt) == v0[i] * IP[wt] % p for v, f, v0 in b1.values() for i in range(W)) + for AB, (v, f, v0) in b2.items(): + framed = lambda i: src_frame and sink_ok and i not in keep + ok_s &= all(sink(v, f, i, (wt + q0[AB]) % 4 if framed(i) else wt) == v0[i] * IP[wt] % p for i in range(W)) + ok_d = all(sink(X, Xf, a, psiX[a]) == (-Y0[a] * IP[(psiX[a] - Yf0[a]) % 4]) % p and + sink(Y, Yf, a, psiY[a]) == X0[a] * IP[(psiY[a] - Xf0[a]) % 4] % p for a in keys) + return ok_d, ok_s, sum(1 for q in q0.values() if q), len(q0) + + +if __name__ == '__main__': + h = int(sys.argv[1]); seeds = int(sys.argv[2]) if len(sys.argv) > 2 else 3 + c = Side(h); k = compile_roles(c) + print('h', h, 'side roles', k['size'], 'centre wires', h + 1, 'source-framed per invocation', + k['size'] - len(set(k['src'].values()) | set(k['rout'].values())), flush=True) + for seed in range(seeds): + print('seed', seed, 'source frames: (data ok, scratch ok, nonzero q_D0, invocations)', run(c, k, seed), flush=True) + print('negative control, sink wt only (scratch must fail):', run(c, k, 100, sink_ok=False), flush=True) + print('baseline, no source frames (must pass):', run(c, k, 101, src_frame=False), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py new file mode 100644 index 0000000000..965b9101c6 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-network/sourceframe_trace.py @@ -0,0 +1,159 @@ +"""Stage-two label check of the source-frame lemma on the PR #7 complex network (Side(h), h+1 centre wires). + +Traces every side role and centre wire through the stage-two (inverse) PR #7 schedule, assigning each gate its +binary frame (PR #7 construction, frames section), with a1 = A, a3 = B fixed: + D(U) = (t_A^perp (x) F (x) ) perp ( (x) U (x) ), D0 = D(0); + copy y a-1 uses the physical Y frame t_A^perp (x) (x) . +Every frame's dimension is checked against fullbatch_hist's. For each distinct (first, last) label pair of a +source-framed role it checks in F_2^m: D0 subset of both, entrance phase q_U - q_D0 = q_{L1} (rank dim L1), +exit phase wt + q_D0 - q_V = q_G with G = D0 + V^perp of dim m - dim L2, nondegenerate and nonalternating. +Input-pivot slots must fail D0 subset first label (the reason they are excluded). Usage: labcheck_pr7.py h.""" +import os, sys, random +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from side import Side +from labels import Checker +from roles import compile_roles + +h = int(sys.argv[1]); m = h ** 3; rnd = random.Random(h) +def idx(i, j, k): return (i * h + j) * h + k +def tens(a, b, c): + x = 0 + for i in range(h): + if a >> i & 1: + for j in range(h): + if b >> j & 1: + for k in range(h): + if c >> k & 1: x |= 1 << idx(i, j, k) + return x +def dot(x, y): return bin(x & y).count('1') & 1 +def span_basis(vs): + b = {} + for x in vs: + for piv, y in b.items(): + if x >> piv & 1: x ^= y + if x: + piv = x.bit_length() - 1 + for q in list(b): + if b[q] >> piv & 1: b[q] ^= x + b[piv] = x + return b +def contains(big, small): + b = span_basis(big) + for x in small: + for piv, y in b.items(): + if x >> piv & 1: x ^= y + if x: return False + return True +class Proj: + def __init__(s, B): + s.B = B; n = len(B) + G = [sum(dot(a, b) << j for j, b in enumerate(B)) | (1 << (n + i)) for i, a in enumerate(B)] + for col in range(n): + r = next((r for r in range(col, n) if G[r] >> col & 1), None) + assert r is not None, 'degenerate' + G[col], G[r] = G[r], G[col] + for rr in range(n): + if rr != col and G[rr] >> col & 1: G[rr] ^= G[col] + s.Gi = [g >> n for g in G] + def __call__(s, x): + c = sum(dot(b, x) << j for j, b in enumerate(s.B)); out = 0 + for i, b in enumerate(s.B): + if bin(s.Gi[i] & c).count('1') & 1: out ^= b + return out +def q(P, x): return bin(P(x)).count('1') % 4 +def perp(B): + R = list(span_basis(B).items()); out = [] + pivs = {pv for pv, _ in R} + for f in range(m): + if f in pivs: continue + x = 1 << f + for pv, r in R: + if dot(r, x): x ^= 1 << pv + out.append(x) + return out +def _perp_small(U): + rows = list(span_basis(U).items()); out = [] + pivs = {pv for pv, _ in rows} + for f in range(h): + if f in pivs: continue + x = 1 << f + for pv, r in rows: + if dot(r, x): x ^= 1 << pv + out.append(x) + return out + +c = Side(h); k = compile_roles(c); ch = Checker(c); assert ch.run()['bad'] == 0 +R = k['size']; F = [1 << i for i in range(h)]; a = h; low, high = (a - 1) * h, a * h +lab = {n: ch.label(n) for n in c.active} +# trace: frame descriptors ('U', basis tuple) or ('Ydata', T); dims checked against fullbatch_hist +first = {}; last = {} +def touch(slot, desc, dim): + got = (low + len(span_basis(list(desc[1])))) if desc[0] == 'U' else a - 1 + assert got == dim, (desc, got, dim) + first.setdefault(slot, desc); last[slot] = desc +U = lambda B: ('U', tuple(sorted(span_basis(list(B)).values()))) +cent = range(R, R + h + 1) +pieces = {t: [] for t in c.triples} +for i, sl in k['pout'].items(): pieces[c.pieces[i][0]].append(sl) +def mix(md, rev=False): + for n, ins, outs in (reversed(k['gates']) if rev else k['gates']): + L = {'low': [], 'high': F, 'complement': _perp_small(lab[n])}[md] + dim = {'low': low, 'high': high, 'complement': high - len(lab[n])}[md] + for sl in set(ins + outs): touch(sl, U(L), dim) +def inject(f, line): + for t in c.triples: + tm = sum(1 << q for q in t) + for sl in pieces[t]: touch(sl, U([tm] if line else F), f) +def copy_y(f, data): + for t, sl in k['src'].items(): + tm = sum(1 << q for q in t) + touch(sl, ('Ydata', t) if data else U(_perp_small([tm])), f) +def central(L, f): + for sl in cent: touch(sl, U(L), f) +# stage-two inverse schedule, exactly as fullbatch_hist.invocation(inverse=True) +copy_y(a - 1, True); central([], low); mix('low'); inject(low + 1, True) +mix('complement', True); central(F, high); central([], low) +copy_y(high - 1, False); central(F, high); mix('high'); inject(high, False) +mix('high', True) + +keep = set(k['src'].values()) | set(k['rout'].values()) | set(cent) +framed = [sl for sl in range(R) if sl not in keep] +pairs = {} +for sl in framed: pairs.setdefault((first[sl], last[sl]), []).append(sl) +src_firsts = {first[sl][0] for sl in k['src'].values()} +print('h', h, 'roles', R, 'source-framed', len(framed), 'distinct (first,last) label pairs', len(pairs), + 'input-pivot first frames', src_firsts, flush=True) + +T3 = [sum(1 << i for i in t) for t in c.triples] +ok = True +for trial in range(3): + tA, tB = rnd.choice(T3), rnd.choice(T3) + Aperp = list(span_basis([u ^ (tA if dot(u, tA) else 0) for u in F]).values()) + D0 = list(span_basis([tens(x, u, tB) for x in Aperp for u in F]).values()); assert len(D0) == low + PD0 = Proj(D0) + def space(desc): + if desc[0] == 'Ydata': + tm = sum(1 << q for q in desc[1]); return [tens(x, tm, tB) for x in Aperp], None + E = [tens(tA, l, tB) for l in desc[1]]; return D0 + E, E + ys = [rnd.getrandbits(m) for _ in range(20)] + for (f, l), sls in pairs.items(): + Uf, E1 = space(f); Vl, E2 = space(l) + inc = contains(Uf, D0) and contains(Vl, D0) + PU, PV = Proj(list(span_basis(Uf).values())), Proj(list(span_basis(Vl).values())) + PE = Proj(E1) if E1 else (lambda x: 0) + Gs = list(span_basis(D0 + perp(Vl)).values()); PG = Proj(Gs) + ent = all((q(PU, y) - q(PD0, y) - q(PE, y)) % 4 == 0 for y in ys) + ex = all((bin(y).count('1') + q(PD0, y) - q(PV, y) - q(PG, y)) % 4 == 0 for y in ys) + nonalt = any(dot(x, x) for x in Gs); rk = len(Gs) == m - len(E2) + print(' trial', trial, 'first dim L1', len(E1), 'last dim L2', len(E2), 'roles', len(sls), + '| D0 in both', inc, 'entrance ok', ent, 'exit ok', ex, 'exit rank', len(Gs), 'm-dimL2', rk, + 'nonalt', nonalt, flush=True) + ok &= inc and ent and ex and nonalt and rk + # excluded roles: an input pivot's first stage-two label must not contain D0 + sp, _ = space(first[k['src'][c.triples[0]]]) + neg = not contains(sp, D0); print(' trial', trial, 'input-pivot first label excludes D0 (expected):', neg) + ok &= neg + # centre wires: first D0, last D1 as well (they keep source 0 regardless) + cf = {(first[s], last[s]) for s in cent}; print(' centre (first,last) dims', + [(len(x[1]), len(y[1])) for x, y in cf]) +print('ALL OK', ok) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py new file mode 100644 index 0000000000..bb6879adcd --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/cert.py @@ -0,0 +1,44 @@ +"""Certified complex saving a_c from a residual histogram {rank r: count n_r}, exact rationals only. + +Moment condition (PR #10 batched recursion, sigma = 1 - a): sum_r n_r r^sigma / (W m^sigma) < 1. +Write it as M(a) = sum_r w_r (m/r)^a, w_r = r n_r / (W m) (so sum_r w_r = s/(W m) < 1). +We bound (m/r)^a <= exp(a U_r) with a rational U_r >= ln(m/r), and exp(x) <= 1 + x + x^2/2 + x^3/(6(1 - x/4)) +for 0 <= x < 4 (the Taylor tail sum_{j>=3} x^j/j! is dominated by the geometric series x^3/6 sum (x/4)^i). +ln upper bounds: ln y = k ln 2 + ln(y/2^k), y/2^k in [1, 2); ln z = 2 atanh((z-1)/(z+1)), atanh truncated after +K odd terms with the tail bounded by u^(2K+1) / ((2K+1)(1-u^2)); every term is exact, rounded up to 10^-40. +a_c = largest grid point a with M(a) < 1 (binary search; M is increasing in a). +Usage: imported by run.py (cert(hist, W, m) -> (a_c, 1 - M(a_c))).""" +from fractions import Fraction as Q + +PREC = 10 ** 40 + +def up(x): return Q(-((-x.numerator * PREC) // x.denominator), PREC) # round up to the 10^-40 grid + +def atanh_up(u, K=40): + s = Q(0); p = u + for k in range(K): s += p / (2 * k + 1); p *= u * u + return s + p / ((2 * K + 1) * (1 - u * u)) # p = u^(2K+1) + +LN2 = up(2 * atanh_up(Q(1, 3))) + +def ln_up(y): + y = Q(y); assert y >= 1 + k = 0 + while y >= 2: y /= 2; k += 1 + return up(k * LN2 + 2 * atanh_up((y - 1) / (y + 1))) + +def exp_up(x): + assert 0 <= x < 4 + return 1 + x + x * x / 2 + x ** 3 / (6 * (1 - x / 4)) + +def moment(ws, a): return sum(w * exp_up(a * U) for w, U in ws) + +def cert(hist, W, m, grid=10 ** 12): + ws = [(Q(r * n, W * m), ln_up(Q(m, r))) for r, n in hist.items()] + lo, hi = 0, grid // 1000 # a < 10^-3 (far above any saving here) + assert moment(ws, Q(hi, grid)) > 1 + while hi - lo > 1: + mid = (lo + hi) // 2 + if moment(ws, Q(mid, grid)) < 1: lo = mid + else: hi = mid + a = Q(lo, grid); return a, 1 - moment(ws, a) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py new file mode 100644 index 0000000000..4512606213 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/frames.py @@ -0,0 +1,92 @@ +"""Binary frame labels of the complex producer over F2^h with the dot product, and the residual checks. + +Label of a node (a subspace of F2^h, h = points): an input triple t -> ; a node whose >= 2 triples share a common +pair -> span of their indicator vectors; otherwise the coordinate space of the covered points. +A frame change U -> V is a valid whole-residual child iff U, V are nested and the residual (larger ∩ smaller^perp) +is nondegenerate and nonalternating (has an orthonormal basis). The checker verifies, for every active node, + - the label itself as the entry residual from the low frame 0 (also: the copied-centre COPY transform L -> 0), + - its complement in F = F2^h as the exit residual to the high frame (also: the copied-centre DIRECT move L -> F), + - every producer edge (argument label -> node label) and piece edge (node label -> t_S^perp). +Two-stage lifts preserve this: stage-one frames are L (x) t, stage-two frames D0 + t (x) L, D0 = t^perp (x) F; for a +weight-3 triple t (t.t = 1, odd weight) the lifted residual R (x) t, resp. t (x) R, is nondegenerate and +nonalternating iff R is (Gram matrix is unchanged; wt(r (x) t) = 3 wt(r) is odd iff wt(r) is). +Usage: python3 frames.py 24 (prints edges checked and bad count)""" +import sys + + +def echelon(vs): + b = {} + for x in vs: + for p, y in b.items(): + if x & p: x ^= y + if not x: continue + p = x & -x + for q in list(b): + if b[q] & p: b[q] ^= x + b[p] = x + return b +def red(b, x): + for p, y in b.items(): + if x & p: x ^= y + return x +def dot(a, b): return bin(a & b).count('1') & 1 +def perp_in(V, U): + """basis of span(V) ∩ U^perp.""" + rows = [(sum(dot(v, u) << j for j, u in enumerate(U)), 1 << i) for i, v in enumerate(V)] + for col in range(len(U)): + bit = 1 << col + idx = next((i for i, (a, _) in enumerate(rows) if a & bit), None) + if idx is None: continue + pa, pb = rows.pop(idx) + rows = [(a ^ pa, b ^ pb) if a & bit else (a, b) for a, b in rows] + out = [] + for a, b in rows: + x = 0 + for i, v in enumerate(V): + if b >> i & 1: x ^= v + out.append(x) + return out +def nondeg(B): + return len(echelon([sum(dot(a, b) << j for j, b in enumerate(B)) for a in B])) == len(B) +def ok_res(R): + """nondegenerate and nonalternating (some odd-weight vector), i.e. an orthonormal basis exists.""" + return (not R) or (nondeg(R) and any(bin(x).count('1') & 1 for x in R)) + + +class Checker: + def __init__(s, c): s.c = c; s.h = c.h; s.cache = {}; s.lab = {} + def tvec(s, i): return sum(1 << p for p in s.c.triples[i]) + def label(s, n): + if n in s.lab: return s.lab[n] + c = s.c; sp = c.sup[n]; idx = [] + while sp: + lo = sp & -sp; idx.append(lo.bit_length() - 1); sp ^= lo + if len(idx) == 1: B = [s.tvec(idx[0])] + else: + common = set(c.triples[idx[0]]) + for i in idx[1:]: common &= set(c.triples[i]) + if len(common) >= 2: B = list(echelon([s.tvec(i) for i in idx]).values()); assert len(B) == len(idx) + else: X = c.cover(n); B = [1 << p for p in range(s.h) if X >> p & 1] + B = sorted(echelon(B).values()); s.lab[n] = B; return B + def edge(s, U, V): + key = (tuple(U), tuple(V)) + if key not in s.cache: + bV = echelon(V) + s.cache[key] = all(red(bV, u) == 0 for u in U) and ok_res(perp_in(V, U)) + return s.cache[key] + def run(s): + c = s.c; bad = 0; n_e = 0; F = [1 << p for p in range(s.h)] + for n in c.active: + L = s.label(n) + n_e += 2; bad += (not (nondeg(L) and ok_res(L))) + (not ok_res(perp_in(F, L))) # entry / exit residuals + if c.args[n]: + for a in c.args[n]: + n_e += 1; bad += not s.edge(s.label(a), L) + for S, n, _ in c.pieces: + n_e += 1; bad += not s.edge(s.label(n), perp_in(F, [sum(1 << p for p in S)])) + return dict(edges=n_e, bad=bad, labels=len(s.lab)) + + +if __name__ == '__main__': + from producer import NStar3 + for h in map(int, sys.argv[1:]): print(h, Checker(NStar3(h)).run(), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py new file mode 100644 index 0000000000..30fc761818 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/hist.py @@ -0,0 +1,109 @@ +"""Residual-rank histogram of the two-stage complex network (m = h^2) on the NStar3 producer with retained totals, +optionally with copied retained centres; every nonzero residual is one whole-residual child (full batching). + +Network. Each stage runs v = C(h,3) invocations of the producer's role network on a bank of R auxiliary roles. +Forward invocation (y <- y + x), single-factor frame dims (low 0, high h, label = dim of the node label): + mix(low) sret(low) inject(low) mix(low,rev) copy(line=1) mix(label) sret(low) inject(t^perp=h-1) mix(high,rev) copy(F=h) + mix = every addition gate on its role slots; inject = pieces into y[t]; copy = x[t] into its source slot; + sret = the retained-total scatter into y[S] (reads the h retained roles). +Stage 1: forward per fixed a2, frames L (x) t_a2, dim = d. Stage 2: the inverse (op list and gates reversed, labels +complemented in F) per fixed a1, frames D0 + t_a1 (x) L^perp, dim = m - d; source = Y, target = X. +Endpoints: every auxiliary role 0 -> ... -> m per invocation (arbitrary scratch restored); X: U (dim 1) -> m, +Y: 0 -> m-1; plus one rank-one endpoint-correction child per data pair. Frames are nested along every role +(frames.py, and the explicit simulation), so each edge's rank is the dimension difference. +Copied centres (PR #36 lemma): in the second sret (forward op 6, stage-two op 3) each retained role is read from a +transformed copy; the original moves directly from its previous frame p to its next frame q. The copy is charged +|p - lo| in stage 1 (copy made before the original moves) and |q - lo| in stage 2 (original moves first). +Total rank s = W m - N + 2L, or W m - N + L with copies, W = 2N + 2vR, L = 2v((h-1)^2 + h), N = v^2. +Usage: python3 hist.py 24 copy (prints the histogram and the sum check)""" +import sys +from collections import Counter +from producer import NStar3, compile_roles + +DESIG = 6 # index of the copied scatter op in the forward op list + + +def label_dims(c): + """dim of the frame label of every active node, from supports: 1 for an input; the number of triples when + they share a common pair; else the number of covered points (see frames.Checker.label).""" + out = {} + for n in c.active: + sp = c.sup[n]; k = bin(sp).count('1') + if k == 1: out[n] = 1; continue + common = (1 << c.h) - 1; i = 0 + while sp: + if sp & 1: common &= sum(1 << p for p in c.triples[i]) + sp >>= 1; i += 1 + out[n] = k if bin(common).count('1') >= 2 else bin(c.cover(n)).count('1') + return out + + +def forward_ops(c, kk, dl): + """list of ops; op = list of (roles, single-factor dim). Roles: ('s', slot), ('x', t), ('y', t).""" + h = c.h; T = c.triples + pieces = {t: [] for t in T} + for i, sl in kk['pout'].items(): pieces[c.pieces[i][0]].append(sl) + rout = kk['rout'] + def mix(mode, rev=False): + g = list(reversed(kk['gates'])) if rev else kk['gates'] + return [(tuple(('s', q) for q in set(ins + outs)), {'low': 0, 'high': h}.get(mode, dl.get(n))) for n, ins, outs in g] + def sret(): + out = [] + for S in T: # the retained totals that the scatter identity uses for y[S] + names = [('*',)] + ([('E', i) for i in S] if h - 1 not in S else [('E', i) for i in range(h - 1) if i not in S]) + out.append((tuple([('y', S)] + [('s', rout[nm]) for nm in names]), 0)) + return out + inject = lambda d: [(tuple([('y', t)] + [('s', q) for q in pieces[t]]), d) for t in T if pieces[t]] + copy = lambda d: [((('x', t), ('s', sl)), d) for t, sl in kk['src'].items()] + return [mix('low'), sret(), inject(0), mix('low', True), copy(1), mix('label'), sret(), inject(h - 1), + mix('high', True), copy(h)] + + +def build(h, copied): + c = NStar3(h); kk = compile_roles(c); dl = label_dims(c) + T = c.triples; v = len(T); m = h * h; N = v * v; R = kk['size'] + f = forward_ops(c, kk, dl) + r = [[(roles, h - d) for roles, d in reversed(op)] for op in reversed(f)] + ret = {('s', q) for q in kk['rout'].values()} + H = Counter(); data = {} + for stage, ops, lift, desig in ((1, f, lambda d: d, DESIG), (2, r, lambda d: m - h + d, len(f) - 1 - DESIG)): + cur = {}; dd = {}; pend = set(); done = set(); Hs = Counter() + for oi, op in enumerate(ops): + for roles, d in op: + D = lift(d) + for ro in roles: + if ro[0] in ('x', 'y'): dd.setdefault(ro, []).append(D); continue + p = cur.get(ro, 0) + if copied and ro in ret and oi == desig: + # one copy per retained role serves all of this op's scatter reads + if ro not in done: + done.add(ro) + if stage == 1: Hs[abs(p - D)] += p != D # copy made at p, original stays at p + else: pend.add(ro); lo2 = D # copy charged once q is known + continue + if ro in pend: # stage 2: q = this frame + pend.discard(ro); Hs[abs(lo2 - D)] += lo2 != D + if p != D: Hs[abs(p - D)] += 1 + cur[ro] = D + assert len(cur) == R and not pend + for ro, p in cur.items(): Hs[m - p] += p != m # auxiliary endpoint: full frame + for k_, n_ in Hs.items(): H[k_] += v * n_ # dims do not depend on the fixed index + data[stage] = dd + # data pairs (a1, a2): X = stage-1 'x' of a1 then stage-2 target ('y') of a2; Y = stage-1 'y' then stage-2 'x' + p1 = Counter((tuple(data[1].get(('x', t), [])), tuple(data[1].get(('y', t), []))) for t in T) + p2 = Counter((tuple(data[2].get(('y', t), [])), tuple(data[2].get(('x', t), []))) for t in T) + for (x1, y1), n1 in p1.items(): + for (x2, y2), n2 in p2.items(): + for sq in ([1, *x1, *x2, m], [0, *y1, *y2, m - 1]): + for a, b in zip(sq, sq[1:]): + if a != b: H[abs(b - a)] += n1 * n2 + H[1] += N # endpoint correction children + W = 2 * N + 2 * v * R; L = 2 * v * ((h - 1) ** 2 + h); s = W * m - N + (L if copied else 2 * L) + tot = sum(k_ * n_ for k_, n_ in H.items()) + return dict(h=h, v=v, m=m, N=N, R=R, W=W, L=L, s=s, hist={k_: n_ for k_, n_ in sorted(H.items()) if n_}, sum=tot, sum_ok=tot == s, + maxrank=max(H), c=c) + + +if __name__ == '__main__': + h = int(sys.argv[1]); copied = len(sys.argv) > 2 and sys.argv[2] == 'copy' + d = build(h, copied); d.pop('c'); print(d) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py new file mode 100644 index 0000000000..10d2110f9b --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/producer.py @@ -0,0 +1,233 @@ +"""NStar3: the pair-exclusion complex side producer with retained totals (h even). + +An addition circuit over the binomial(h,3) triple inputs x_t. It emits signed pieces (S, node, coef) whose +half-weighted sum, plus the retained-total scatter, is x_S, and retains the h totals +E_i = sum_{t not containing i} x_t (i < h-1) and T = sum_t x_t. Nodes are interned by their support (set of +triples), so an equal sum is never built twice. Structure: + triple() recursive triple exclusion over point pairs (groups), giving every 'exclusion' sum + sum_{t disjoint from S} x_t for |S| <= 3; + block() pair-exclusion block (one point excluded, one pair excluded), with an 8-addition 3-point base; + stars minus pieces from group-level leave-one-out vectors shared across pairs (two_vec). +Usage: python3 producer.py 24 (prints the circuit size R)""" +import sys +from itertools import combinations +from collections import defaultdict +sys.setrecursionlimit(10000) + + +class NStar3: + def __init__(s, h, base=4): + assert h % 2 == 0 and h >= 8, 'groups are point pairs: h even, h >= 8' + s.h = h; s.base = base + s.triples = list(combinations(range(h), 3)); s.tid = {t: i for i, t in enumerate(s.triples)} + s.sup = [0]; s.args = [None]; s.look = {} # node 0 is the empty sum; node i+1 is input triple i + for i, t in enumerate(s.triples): s.sup.append(1 << i); s.args.append(None) + s.cov = {}; s.pieces = []; s.retained = []; s.twos = {} + s.top = True + w = {t: s.tid[t] + 1 for t in s.triples} + s.results = s.triple(list(range(h)), w) + for S in s.triples: s.emit(S, s.results[S], 1) + for i in range(h - 1): s.retained.append((('E', i), s.results[(i,)])) + s.retained.append((('*',), s.results[()])) + s.star_pieces() + s.prune() + + # node store: interned by support; a sum of two nodes must not share triples (no cancellation) + def add(s, a, b): + if not a: return b + if not b: return a + assert not s.sup[a] & s.sup[b], 'cancellation' + key = s.sup[a] | s.sup[b]; n = s.look.get(key) + if n is None: + n = len(s.sup); s.look[key] = n; s.sup.append(key); s.args.append((a, b)) + return n + def total(s, vals): + if not vals: return 0 + if len(vals) == 1: return vals[0] + k = len(vals) // 2 + return s.add(s.total(vals[:k]), s.total(vals[k:])) + def vector(s, vals): + """total and all leave-one-out sums, by prefix/suffix chains.""" + n = len(vals); pre = [0] + for x in vals: pre.append(s.add(pre[-1], x)) + suf = [0] * (n + 1) + for i in range(n - 1, -1, -1): suf[i] = s.add(vals[i], suf[i + 1]) + return pre[-1], [s.add(pre[i], suf[i + 1]) for i in range(n)] + def grouping(s, pts): return [pts[i:i + 2] for i in range(0, len(pts), 2)] + def x(s, *p): return s.tid[tuple(sorted(p))] + 1 + + # pair-exclusion block: total, one point excluded, one pair excluded --------------------------- + def block(s, points, edges, weights): + T = s.total; A = s.add + if len(points) == 3: # 8-addition base: the three pair sums share q1, q2, q3 + p1, p2, p3 = points; e = lambda a, b: edges[tuple(sorted((a, b)))]; wt = weights + q1 = A(e(p2, p3), wt[p2]); q2 = A(e(p1, p3), wt[p3]); q3 = A(e(p1, p2), wt[p1]) + O = {p1: A(q1, wt[p3]), p2: A(q2, wt[p1]), p3: A(q3, wt[p2])} + tot = A(O[p1], A(q3, e(p1, p3))) + return tot, O, {(p1, p2): wt[p3], (p1, p3): wt[p2], (p2, p3): wt[p1]} + if len(points) <= 4: + tot = lambda om: T([x for p, x in edges.items() if not set(p) & set(om)] + [x for p, x in weights.items() if p not in om]) + return tot(()), {a: tot((a,)) for a in points}, {(a, b): tot((a, b)) for a, b in combinations(points, 2)} + groups = s.grouping(points); ng = len(groups); e = lambda a, b: edges[tuple(sorted((a, b)))] + coarse = {(i, j): T([e(a, b) for a in groups[i] for b in groups[j]]) for i, j in combinations(range(ng), 2)} + wt = {i: T([weights[a] for a in g] + [e(a, b) for a, b in combinations(g, 2)]) for i, g in enumerate(groups)} + total, outside, far = s.block(list(range(ng)), coarse, wt) + strips = {}; sums = {} + for i, g in enumerate(groups): + other = [j for j in range(ng) if j != i] + for a in g: + carry = T([weights[u] for u in g if u != a]) + vals = [T([e(u, v) for u in g if u != a for v in groups[j]]) for j in other] + st, one = s.vector([carry] + vals) + strips[a] = {j: z for j, z in zip(other, one[1:])}; sums[a] = st + out = {}; single = {a: s.add(outside[i], sums[a]) for i, g in enumerate(groups) for a in g} + for i, g in enumerate(groups): + for a, b in combinations(g, 2): out[a, b] = outside[i] + for i, j in combinations(range(ng), 2): + for a in groups[i]: + left = s.add(far[i, j], strips[a][j]) + for b in groups[j]: + cross = T([e(u, v) for u in groups[i] if u != a for v in groups[j] if v != b]) + out[a, b] = s.add(left, s.add(strips[b][i], cross)) + return total, single, out + + # recursive triple exclusion --------------------------------------------------------------------- + def triple(s, pts, w): + top = s.top; s.top = False + T = s.total + subsets = [c for k in range(4) for c in combinations(pts, k)] + if len(pts) <= s.base: + return {c: T([v for t, v in w.items() if not set(c) & set(t)]) for c in subsets} + groups = s.grouping(pts); ng = len(groups) + gof = {u: i for i, g in enumerate(groups) for u in g} + cp = defaultdict(list) + for t, v in w.items(): cp[tuple(sorted({gof[u] for u in t}))].append(v) + coarse = {c: T(xs) for c, xs in cp.items() if not (top and len(c) == 2)} + if top: + # a two-group coarse item is the union of two free star prefixes {u,v,pu},{u,v,pv} + for (i, j) in [c for c in cp if len(c) == 2]: + (i0, i1), (j0, j1) = groups[i], groups[j] + coarse[i, j] = s.add(s.add(s.x(i0, j0, i1), s.x(i0, j0, j1)), s.add(s.x(i1, j1, i0), s.x(i1, j1, j0))) + oc = s.triple(list(range(ng)), coarse) + one = {} + for u in pts: + g = gof[u]; others = [j for j in range(ng) if j != g] + pieces = defaultdict(list) + for t, v in w.items(): + if u not in t: continue + rest = [a for a in t if a != u] + if any(gof[a] == g for a in rest): continue + pieces[tuple(sorted({gof[a] for a in rest}))].append(v) + coeff = {c: T(xs) for c, xs in pieces.items()} + edges = {c: coeff.get(c, 0) for c in combinations(others, 2)} + weights = {j: coeff.get((j,), 0) for j in others} + tot, single, pair = s.block(others, edges, weights) + const = coeff.get((), 0) + one[u] = {(): s.add(const, tot)} + one[u].update({(j,): s.add(const, x) for j, x in single.items()}) + one[u].update({c: s.add(const, x) for c, x in pair.items()}) + two = {} + for u, v in combinations(pts, 2): + i, j = gof[u], gof[v] + if i == j: continue + others = [k for k in range(ng) if k not in (i, j)] + vals = [T([w.get(tuple(sorted((u, v, a))), 0) for a in groups[k]]) for k in others] + tot, leave = s.vector([w.get((u, v), 0)] + vals) + two[u, v] = {(): tot} | {(k,): x for k, x in zip(others, leave[1:])} + res = {} + for ex in subsets: + E = set(ex); G = tuple(sorted({gof[a] for a in E})) + surv = [u for i in G for u in groups[i] if u not in E] + pc = {(): oc[G]} + for u in surv: pc[u,] = one[u][tuple(i for i in G if i != gof[u])] + for u, v in combinations(surv, 2): pc[u, v] = two[u, v][tuple(i for i in G if i not in (gof[u], gof[v]))] + if len(surv) == 3: + pc[tuple(surv)] = w.get(tuple(surv), 0) + a, b, c = surv; order = [(), (a,), (b,), (a, b), (c,), (a, c), (b, c), (a, b, c)] + else: order = [c for k in range(len(surv) + 1) for c in combinations(surv, k)] + res[ex] = T([pc[c] for c in order]) + return res + + # minus pieces (pair stars) from shared group-level leave-one-out vectors ----------------------- + def two_vec(s, u, v): + """leave-one-group-out vector of star(u,v) over groups other than g(u), g(v).""" + key = (min(u, v), max(u, v)) + if key in s.twos: return s.twos[key] + h = s.h; ng = (h + 1) // 2 + others = [k for k in range(ng) if k not in (u // 2, v // 2)] + vals = [s.total([s.x(u, v, a) for a in range(2 * k, min(2 * k + 2, h))]) for k in others] + tot, leave = s.vector(vals) + r = {(): tot} | {(k,): x for k, x in zip(others, leave)} + s.twos[key] = r; return r + def star_pieces(s): + # star(u,v) minus {c} = {u,v,c'} + B_k with B_k = two[u,v](k) + PP_uv, shared by {u,v,c} and {u,v,c'} + h = s.h + for a, b in combinations(range(h), 2): + tw = s.two_vec(a, b) + if a // 2 == b // 2: + for c in range(h): + if c // 2 == a // 2: continue + S = tuple(sorted((a, b, c))) + s.emit(S, s.x(a, b, c ^ 1), -1); s.emit(S, tw[(c // 2,)], -1) + continue + pa, pb = a ^ 1, b ^ 1 + PP = s.add(s.x(a, b, pa), s.x(a, b, pb)) + for c in range(h): + if c in (a, b): continue + S = tuple(sorted((a, b, c))) + if c == pa: s.emit(S, s.x(a, b, pb), -1); s.emit(S, tw[()], -1) + elif c == pb: s.emit(S, s.x(a, b, pa), -1); s.emit(S, tw[()], -1) + else: s.emit(S, s.x(a, b, c ^ 1), -1); s.emit(S, s.add(tw[(c // 2,)], PP), -1) + + def cover(s, n): + """bitmask of the points covered by the triples of node n.""" + if n not in s.cov: + sp = s.sup[n]; m = 0 + while sp: + lo = sp & -sp; m |= sum(1 << p for p in s.triples[lo.bit_length() - 1]); sp ^= lo + s.cov[n] = m + return s.cov[n] + def emit(s, S, n, coef): + # a piece whose cover together with S is every point would need a full label: split it into its arguments + if not n: return + Sm = sum(1 << p for p in S) + if s.cover(n) | Sm == (1 << s.h) - 1: + a, b = s.args[n]; s.emit(S, a, coef); s.emit(S, b, coef) + else: s.pieces.append((S, n, coef)) + def prune(s): + s.active = set(); st = [n for _, n, _ in s.pieces] + [n for _, n in s.retained] + while st: + n = st.pop() + if n in s.active: continue + s.active.add(n) + if s.args[n]: st.extend(s.args[n]) + s.additions = sum(1 for n in s.active if s.args[n]) + s.roles = s.additions + len(s.pieces) + len(s.retained) # R: one role slot per use of a node + + +def compile_roles(c): + """Role slots: every node gets one output slot per user (gate argument, piece, retained total).""" + users = {x: [] for x in c.active} + for n in sorted(c.active): + if c.args[n]: + for pos, x in enumerate(c.args[n]): users[x].append(('g', n, pos)) + for i, (_, n, _) in enumerate(c.pieces): users[n].append(('p', i)) + for name, n in c.retained: users[n].append(('r', name)) + edge = {}; src = {}; pout = {}; rout = {}; gates = []; size = 0 + for n in sorted(c.active): + if c.args[n]: ins = (edge[n, 0], edge[n, 1]); piv = ins[0] + else: piv = size; size += 1; ins = (piv,); src[c.triples[n - 1]] = piv + outs = (piv,) + tuple(range(size, size + len(users[n]) - 1)); size += len(users[n]) - 1 + assert len(set(ins)) == len(ins) and set(ins) & set(outs) == {piv} + gates.append((n, ins, outs)) + for u, sl in zip(users[n], outs): + if u[0] == 'g': edge[u[1], u[2]] = sl + elif u[0] == 'p': pout[u[1]] = sl + else: rout[u[1]] = sl + assert size == c.roles + return dict(size=size, gates=gates, src=src, pout=pout, rout=rout) + + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + c = NStar3(h); print(dict(h=h, v=len(c.triples), additions=c.additions, pieces=len(c.pieces), R=c.roles), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py new file mode 100644 index 0000000000..fe438f9165 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/complex-twostage/run.py @@ -0,0 +1,23 @@ +"""Round-six complex saving: two-stage complex network, NStar3 producer with retained totals, copied retained +centres, full batching. Prints the circuit size, the frame/label check (0 bad), the histogram sum check (== s), +the largest child (crude guard needs <= m - 1) and the certified a_c; writes the histogram to hist_.json. +Usage: python3 run.py 24""" +import sys, json, time +from hist import build +from frames import Checker +from cert import cert + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + t0 = time.time() + d = build(h, copied=True); c = d.pop('c') + print(dict(h=h, v=d['v'], m=d['m'], R=d['R'], W=d['W'], s=d['s'], hist_sum=d['sum'], sum_ok=d['sum_ok'], + maxrank=d['maxrank'], guard_ok=d['maxrank'] <= d['m'] - 1), flush=True) + ch = Checker(c); dims = {n: len(ch.label(n)) for n in c.active} + from hist import label_dims + assert dims == label_dims(c), 'histogram label dims differ from the explicit labels' + print('labels', ch.run(), flush=True) + a, gap = cert(d['hist'], d['W'], d['m']) + print(dict(a_c=str(a), a_c_float=float(a), moment_gap=float(gap), secs=round(time.time() - t0)), flush=True) + json.dump(dict(h=h, m=d['m'], W=d['W'], s=d['s'], hist={str(k): n for k, n in d['hist'].items()}), + open(f'hist_{h}.json', 'w')) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py new file mode 100644 index 0000000000..f22b6998f9 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_frames.py @@ -0,0 +1,262 @@ +"""Round-seven check, part 2 (stdlib only): every frame of the reordered word, exactly over Q. + +The base frames (lifted node frames M_n, late-copy intersections, root frames t_T^perp and U_c) are rebuilt from the +witness with check_lifted.py's exact machinery. The design-B frames (deferred readout frames sigma_u, V-leaf starts +s_i) are the primitive integer bases of the data file. Checked: + X. the frame dimensions recorded in the data file (node frames, late-copy intersections) equal the exact ones; every + slot's node list moves along slot successors of the witness (gate uses and links, for which check_lifted.py proves + nesting), its first node is where its start says, its last node reaches its root frame directly; + Q. sigma_u <= F0(u) (the slot's start frame); sigma_u <= t_T^perp for every target of u (Z supports, a superset of + the F2 supports); on every y_T the deferred levels are nested in time order (readout order); t_S <= s_i <= N_i + (the first frame of the use); every X_S chain , early V frames, deferred V frames, F is nested in time order; + G = I - J/9 nondegenerate on every new frame (Gram determinant nonzero mod a prime, so nonzero over Z); + S. side lemma at check_lifted's integer point (U, V of point(h, 1), the point of check_stair.py too): every distinct + high-rank step (2r > h) of the reordered word that check_lifted.py does not already cover (slot starts, gauged + corners sigma_u -> F, y_T and X_S chain steps, base steps that only the new schedule uses) has the generic + north-east pivots under both conjugations, mod 2^31-1; + F. the child-width histogram rebuilt from the exact dimensions (Z and F2 y supports), rank sum s = W m - N + L, + moment certificate and kappa, with the round-six and the staircase entrance corners; + N. negative controls: reversed readout order, readouts at F0(u) instead of sigma_u, perturbed sigma frames, X_S + chains with the deferred V gates first, side lemma with U = V = I. +Usage: python3 check_frames.py [h]""" +import sys, os, time, random +from fractions import Fraction as Fr +from math import gcd +from collections import Counter, defaultdict +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path[:0] = [HERE, os.path.join(HERE, '..', '..', 'scripts'), os.path.join(HERE, '..', 'two-stage-bit')] +import check_lifted as cl +import deferred as dr +from linalg import null_exact, rank_mod, inv_mod_matrix, rightmost_pivots, predicted, Q31, Echelon + +T0 = time.time() +def log(*a): print('[%5.0fs]' % (time.time() - T0), *a, flush=True) +OK = {} +def report(name, ok): + OK[name] = bool(ok); log('%-100s %s' % (name, 'PASS' if ok else 'FAIL')) + + +def prim(r): + r = [Fr(x) for x in r]; den = 1 + for x in r: den = den * x.denominator // gcd(den, x.denominator) + z = [int(x * den) for x in r]; g = 0 + for x in z: g = gcd(g, x) + return [x // g for x in z] if g else z + + +class ModQ7(cl.ModQ): + """check_lifted's mod-q frames, extended by the design-B frames ('sigma', s) and ('v', s) (integer bases).""" + def __init__(self, fr, ld, extra, control=False): + super().__init__(fr, ld, control); self.extra = extra + + def basis(self, key): + if key[0] in ('sigma', 'v') and key not in self.bcache: + E = Echelon(self.q) + for r in self.extra[key]: E.insert([x % self.q for x in r]) + if len(E.rows) != len(self.extra[key]): self.dimfail += 1 + self.bcache[key] = E.rows + return super().basis(key) + + +def main(h=23): + W, D = dr.load(h); S = dr.Schedule(W, D); trip = S.trip; tv = lambda T: [int(q in T) for q in range(h)] + FULL = [[int(i == j) for j in range(h)] for i in range(h)] + pr = cl.Prog(W); bas, dn = cl.spans(pr); users = cl.users_of(pr, dn) + fr = cl.Frames(pr, dn, bas, users); fr.cobases(); d, _ = fr.dims(); ld, _ = cl.late_frames(fr, pr, users) + log('exact base frames: %d node frames (%d lifted), %d late-copy intersections' % (len(d), len(pr.j), len(ld))) + + # ------------------------------------------------------------------ X. recorded dims, slot paths + okd = all(S.node_dims[n] == d[n] for n in pr.act) and len(S.node_dims) == len(pr.act) + okd &= all(S.late_dims[n, lt] == ld[('c', n, lt)] for (n, lt) in S.late_dims) and len(S.late_dims) == len(ld) + report('X. recorded frame dims == exact dims (%d node frames, %d late-copy intersections)' % (len(d), len(ld)), okd) + def ukey(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else cl.root_key(u) + badp = 0 + for s in range(S.R): + hl = S.hold[s] + for a, b in zip(hl, hl[1:]): badp += b not in fr.succ[a] + root = [k for k in S.chain_keys(s) if k[0] in ('out', 'ret')] + if root: badp += fr.rid[root[0]] not in fr.droots[hl[-1]] + st = S.start[s] + if st[0] == 'fresh': # a copy starts at the use it serves + nxt = ('n', hl[1]) if len(hl) > 1 else root[0] + badp += ukey(hl[0], st[2]) != nxt + report('X. every slot moves along slot successors of the witness, starts at its use, ends at its root (%d slots)' % S.R, + badp == 0) + + # ------------------------------------------------------------------ exact frames + _eb = {} + def exact(key): + if key not in _eb: + k = key[0] + if k == 'sigma': B = S.sigma[key[1]] + elif k == 'v': B = S.vstart[key[1]] + elif k == '0': B = [] + elif k == 'F': B = FULL + elif k == 'c': + n, lt = key[1], key[2] + B = exact(ukey(n, lt[-1])) + for kk in reversed(lt[:-1]): B = fr.intersect_exact(exact(ukey(n, kk)), B) + B = [prim(r) for r in B]; assert len(B) == ld[key] + else: B = [prim(r) for r in fr.exact_basis(key)] + _eb[key] = B + return _eb[key] + _nz = {} + def nullZ(B): + kb = tuple(map(tuple, B)) + if kb not in _nz: _nz[kb] = [prim(z) for z in null_exact(B, h)] if B else FULL + return _nz[kb] + def inside(A, B): + if not A or len(B) == h: return True + return all(sum(a * z for a, z in zip(ra, rz)) == 0 for ra in A for rz in nullZ(B)) + def nondeg(B, p=Q31): # det(9 B G B^T) != 0 mod p => != 0 over Z + if not B or len(B) == h: return True + sm = [sum(b) for b in B] + Gr = [[9 * sum(x * y for x, y in zip(a, b)) - sa * sb for b, sb in zip(B, sm)] for a, sa in zip(B, sm)] + return rank_mod(Gr, p) == len(B) + gout = {T: [9 * x - 3 for x in tv(T)] for T in trip} + tperp = lambda T: ('out', T[0], T) # t_T^perp is the root frame of every output (c, T) + + # ------------------------------------------------------------------ Q. exact facts + indep = all(rank_mod(B, Q31) == len(B) for B in list(S.sigma.values()) + list(S.vstart.values())) + report('Q. sigma_u and s_i bases independent (rank mod 2^31-1 == row count; %d + %d frames, max |entry| %d)' % ( + len(S.sigma), len(S.vstart), max(abs(x) for B in list(S.sigma.values()) + list(S.vstart.values()) for r in B for x in r)), indep) + sel = S.readout; F0 = {s: S.start_key(s) for s in range(S.R)} + report('Q. sigma_u <= F0(u) exactly (%d deferred slots)' % len(sel), all(inside(S.sigma[s], exact(F0[s])) for s in sel)) + CZ = S.adjoint(); CF = [{t: 1 for t, x in dd.items() if x % 2} for dd in CZ] + capbad = sum(1 for s in sel for t in CZ[s] if any(sum(a * g for a, g in zip(r, gout[trip[t]])) for r in S.sigma[s])) + report('Q. sigma_u <= t_T^perp exactly for every Z-support target (a superset of the F2 targets)', capbad == 0) + def ychains(co, order, frame=lambda s: S.sigma[s], limit=None): + byT = defaultdict(list) + for s in order: + for t in co[s]: byT[t].append(s) + bad = 0; levels = {} + for t, ss in list(byT.items())[:limit]: + seq = [frame(s) for s in ss] + for A, B in zip(seq, seq[1:]): + if A is B: continue + if len(A) > len(B) or not inside(A, B): bad += 1 + lv = [] + for s in ss: + if not lv or S.f[lv[-1]] != S.f[s]: lv.append(s) + levels[t] = lv + return bad, levels + bZ, levZ = ychains(CZ, sel); bF, levF = ychains(CF, sel) + report('Q. deferred levels on every y_T nested in time order, exactly (Z targets %d bad, F2 targets %d bad)' % (bZ, bF), + bZ == 0 and bF == 0) + nd = sum(1 for B in list(S.sigma.values()) + list(S.vstart.values()) if not nondeg(B)) + report('Q. G nondegenerate on every sigma_u and s_i (Gram det != 0 mod 2^31-1 => over Z)', nd == 0) + bad_t = bad_n = 0 + for s, n in S.srcop.items(): + bad_t += not inside([tv(trip[n - 1])], S.vstart[s]) + N1 = S.chain_keys(s)[2] # first frame of the use after its start + bad_n += not inside(S.vstart[s], exact(N1)) + report('Q. V leaves exactly: t_S <= s_i (%d bad), s_i <= N_i, the first frame of the use (%d bad), %d slots' % ( + bad_t, bad_n, len(S.srcop)), bad_t == bad_n == 0) + def xchains(order_fn): + bad = 0; steps = [] + for n, us in S.xs: + seq = [[tv(trip[n - 1])]] + [S.vstart[s] for s in order_fn(us)] + [FULL] + keys = [('n', n)] + [('v', s) for s in order_fn(us)] + [('F',)] + for (A, ka), (B, kb) in zip(zip(seq, keys), zip(seq[1:], keys[1:])): + if len(A) > len(B) or not inside(A, B): bad += 1 + steps.append(keys) + return bad, steps + bx, xkeys = xchains(lambda us: us) + report('Q. X_S chains nested exactly in time order (, early V gates, deferred V gates, F; %d leaves)' % len(S.xs), bx == 0) + + # ------------------------------------------------------------------ S. side lemma on the new high-rank steps + ops0, chains0, _, R0 = cl.compile_(pr, dn, users) + def dimof0(k): + if k == ('0',): return 0 + if k == ('F',): return h + if k[0] in ('out', 'ret'): return h - 1 + if k[0] == 'c': return ld[k] + return d[k[1]] + _, base_steps = cl.chain_steps(chains0, dimof0, h) + base_frames = {k for e in base_steps for k in e} + def dimx(k): return len(exact(k)) if k[0] in ('sigma', 'v') else dimof0(k) + new = {} + def add_chain(keys, kind): + prev = keys[0]; pd = dimx(prev) + for k in keys[1:]: + dk = dimx(k) + if dk > pd: + if (prev, k) not in base_steps and 2 * (dk - pd) > h: new.setdefault((prev, k), (dk - pd, kind)) + prev, pd = k, dk + else: prev = k + for s in range(S.R): + add_chain(S.chain_keys(s), 'slot') + if S.f[s]: add_chain([('sigma', s), ('F',)], 'corner') + for t, lv in levZ.items(): + add_chain([('0',)] + [('sigma', s) for s in lv] + [tperp(trip[t])], 'ydata') + for t, lv in levF.items(): + add_chain([('0',)] + [('sigma', s) for s in lv] + [tperp(trip[t])], 'ydata') + for keys in xkeys: add_chain(keys, 'xdata') + extra = {('sigma', s): B for s, B in S.sigma.items()}; extra.update({('v', s): B for s, B in S.vstart.items()}) + mq = ModQ7(fr, ld, extra) + used = {k for e in new for k in e} - base_frames + ndq = sum(1 for k in used if not mq.nondeg(k)) + report('S. frames used only by the new steps: %d, G-degenerate mod 2^31-1 %d, reduction dimension mismatches %d' % ( + len(used), ndq, mq.dimfail), ndq == 0 and mq.dimfail == 0) + pr_ = predicted(h); q = mq.q + def lemma(items, m): + bad = 0 + for (A, B), (r, _) in items: + QA, QB = m.conjugated(A), m.conjugated(B) + for t in range(2): + a, b = QA[t], QB[t] + M = [[(b[i * h + c] - a[i * h + c]) % q for c in range(h)] for i in range(h)] + if rightmost_pivots(M, q) != pr_[r]: bad += 1 + return bad + items = sorted(new.items(), key=lambda e: (str(e[0][1]), str(e[0][0]))) + badL = lemma(items, mq) + report('S. side lemma (generic NE pivots, both conjugations, mod 2^31-1) on all %d new high-rank steps %s' % ( + len(items), dict(Counter(k for _, k in new.values()))), badL == 0) + + # ------------------------------------------------------------------ F. histogram from exact dims + import moment + from certificate_round3 import evaluate + def dim_exact(k): return dimx(k) + rk = dr.chain_ranks(S, dim_exact) + xd = S.xdata(lambda s: len(exact(('v', s)))) + okx = all(sum(x) == h - 1 for x in xd) + ylZ = S.ylevels(CZ); ylF = {t: sorted({S.f[s] for s in sel if t in CF[s]}) for t in range(S.v)} + res = {} + for corner_name, corner in (('round-six corner', dr.ROUND6_CORNER(h)), ('staircase corner', dr.STAIRCASE_CORNER(h))): + for yname, yl in (('Z', ylZ), ('F2', ylF)): + c = dr.histogram(S, rk, yl, xd, corner) + rs = sum(w * n for w, n in c['hist'].items()) + a, _ = moment.certify(c) + k = evaluate(a, Fr(36926111, 5 * 10**11), Fr(1, 1000), 'crude', m_c=576, s_c=119453132304) + res[corner_name, yname] = (a, k['kappa'], k['ok'], rs == c['s'] and max(c['hist']) < c['m']) + for corner_name in ('round-six corner', 'staircase corner'): + (aZ, kZ, oZ, sZ), (aF, kF, oF, sF) = res[corner_name, 'Z'], res[corner_name, 'F2'] + report('F. %s: rank sum == s (Z and F2 y supports), a_b = %s (%.6e), kappa = %s (%.7e) ok=%s, F2 a_b = %s' % ( + corner_name, aZ, float(aZ), kZ, float(kZ), oZ, aF), sZ and sF and oZ and oF and okx) + report('F. claims: a_b 12599/200000000, kappa 6299103187973/10^17; staircase a_b 31987/500000000, kappa 1599247689723/(2.5*10^16)', + res['round-six corner', 'Z'][:2] == (Fr(12599, 200000000), Fr(6299103187973, 10**17)) and + res['staircase corner', 'Z'][:2] == (Fr(31987, 500000000), Fr(1599247689723, 25 * 10**15))) + + # ------------------------------------------------------------------ N. negative controls + bZr, _ = ychains(CZ, list(reversed(sel))) + report('N. NEG reversed readout order breaks the y_T chains (%d bad)' % bZr, bZr > 0) + bF0, _ = ychains(CF, sorted(sel, key=lambda s: (dimx(F0[s]), s)), frame=lambda s: exact(F0[s]), limit=300) + report('N. NEG readouts at F0(u) instead of sigma_u break the y_T chains (%d breaks on 300 targets)' % bF0, bF0 > 0) + rng = random.Random(5); pert = tot = 0 + for s in [s for s in sel if dimx(F0[s]) < h][:200]: + B = [r[:] for r in S.sigma[s]]; B[0] = [x + rng.randint(1, 3) for x in B[0]]; tot += 1 + pert += not inside(B, exact(F0[s])) + report('N. NEG perturbed sigma frames fail sigma <= F0 (%d / %d)' % (pert, tot), tot and pert >= 0.9 * tot) + early = set(S.srcop) - S.sel + bxr, _ = xchains(lambda us: [s for s in us if s not in early] + [s for s in us if s in early]) + report('N. NEG deferred V gates before the early ones break the X_S chains (%d bad)' % bxr, bxr > 0) + mq0 = ModQ7(fr, ld, extra, control=True) + badc = lemma(items[:300], mq0) + report('N. NEG side lemma with U = V = I fails (%d / %d)' % (badc, 2 * min(300, len(items))), badc > 0) + log('ALL %s' % ('PASS' if all(OK.values()) else 'FAIL: ' + str([k for k, x in OK.items() if not x]))) + return all(OK.values()) + + +if __name__ == '__main__': + sys.exit(0 if main(int(sys.argv[1]) if len(sys.argv) > 1 else 23) else 1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py new file mode 100644 index 0000000000..4a19240e2f --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_lifted.py @@ -0,0 +1,677 @@ +"""Release check (stdlib only) of the lifted-frame + late-copy bit side program, stacked with the staircase corner. + +Input: certificates/round7/witness_.json.gz: the side DAG (leaves = triples of [h], additions), outputs (c, T), +retained totals, links (donor x -> use (y, k)), the flag matrix F (integer h x h), the lift index j(n) of every +lifted addition and the late-copy decisions (early users, ordered late users) per node. + +What is checked, from the witness alone: + A. DAG semantics: disjoint supports; output (c,T) support = {S : c in S, S cap T = {c}}; retained = star(c). + B. Compile: one slot per role, schedule order (dim span, id), links hand the donor's non-pivot slot to the linked + use; late copies: the pivot of n climbs C_1 <= ... <= C_k (C_i = frames of users late[i:] intersected) and the + copy for late user i is a gate (pivot, fresh slot) at C_i, placed in time as LATE as possible (just before the + first of: its user's gate, the pivot's consumer gate, the next copy's slot). R = adds + outputs + retained - links. + C. Dirty-scratch replay of the compiled program: word L J L^-1 V L J L^-1 V^-1 and its mirror, arbitrary scratch, + over F2 and over Z, reads at the slot's last touch and at the end; targets must receive J L V x exactly + (DAG values) and every slot is restored; over F2 every target also receives exactly x_T. + D. Frames (exact over Q). Frame of addition n: M_n = span(n) + (U_n cap F_j(n)), U_n = common kernel of the root + covectors reachable from n ((9I-J) t_T for an output to Y_T, 1 - 3 e_c for a retained use of c), F_j = first j + rows of F. Nesting is a THEOREM given the combinatorial facts checked here: + j(n) <= j(t) on every slot successor pair n -> t; span(x) <= span(t) on every link pair (exact); + span(n) <= every root frame n reaches directly (exact integer dot products); F invertible. + Then U_n <= U_t, so M_n <= M_t, M_n <= U_n <= every reachable root frame, and every late-copy frame C_i + (an intersection of frames that all contain M_n) is nested. Dimensions (exact, see linalg.py): + dim M_n = rank[span(n); F_j] - rank(K_n F_j^T) (modular law; span(n) <= U_n; K_n spans the root covectors), + with ranks by mod-p + Hadamard certificates, Bareiss when the mod-p rank is not full; late-copy intersections by + exact Fraction bases. Rank of every chain step = difference of dimensions (nested), histogram vs claim. + E. Frame reductions mod q = 2^31-1 (dimension-matched, so they are the reductions of the rational frames), + G = I - J/9 nondegenerate on every frame of every step (Gram matrix invertible mod q => over Q), and the side + lemma at ONE integer point (U, V of point_UV(h, 1), the random stream of independent/two-stage-bit/flag_existence.py): for every distinct step A -> B of + rank r with 2r > h (retained copy edges 0 -> U_c included), U^T (P_B - P_A) U^-T and V^T (..) V^-T have the + generic north-east pivots of f_r. (NE ranks mod q <= over Q <= f_r, so equality mod q proves it over Q.) + F. Certificate: rt_histogram with the round-6 entrance corner and with the staircase corner (m-4h+2, h-2, h-5, 1^6), + rank sum == s, moment.certify (exact), kappa = certificate_round3.evaluate(a_b, round-6 complex values). +Negative controls (CONTROL=1): see controls(). +Usage: python3 check_lifted.py h [--no-generic]""" +import sys, os, json, random, time +from itertools import combinations +from collections import Counter, OrderedDict +from fractions import Fraction as Fr +from array import array +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +from linalg import * + +T0 = time.time() +def load_witness(h): + import gzip + with gzip.open(os.path.join(HERE, '..', '..', 'certificates', 'round7', 'witness_%d.json.gz' % h), 'rt') as fh: + return json.load(fh) + + +def log(*a): + print('[%5.0fs]' % (time.time() - T0), *a, flush=True) + + +# ----------------------------------------------------------------------------------------------- A. DAG +class Prog: + def __init__(self, W): + self.W = W; h = self.h = W['h'] + self.trip = list(combinations(range(h), 3)); v = self.v = len(self.trip) + self.args = {int(n): (tuple(a) if a else None) for n, a in W['args'].items()} + self.act = sorted(self.args) + for n in self.act: + if self.args[n] is None: assert 1 <= n <= v and tuple(W['leaf'][str(n)]) == self.trip[n - 1] + else: assert all(a < n and a in self.args for a in self.args[n]), n + self.sup = {} + for n in self.act: + if self.args[n] is None: self.sup[n] = 1 << (n - 1) + else: + a, b = self.args[n]; assert not self.sup[a] & self.sup[b], 'overlapping supports' + self.sup[n] = self.sup[a] | self.sup[b] + self.outputs = {(c, tuple(T)): n for c, T, n in W['outputs']} + self.retained = {c: n for c, n in W['retained']} + star = [sum(1 << i for i, t in enumerate(self.trip) if q in t) for q in range(h)] + assert len(self.outputs) == 3 * v and len(self.retained) == h + for (c, T), n in self.outputs.items(): + A, B = [q for q in T if q != c]; assert c in T and self.sup[n] == star[c] & ~star[A] & ~star[B] + for c, n in self.retained.items(): assert self.sup[n] == star[c] + roots = set(self.outputs.values()) | set(self.retained.values()); reach = set(); st = list(roots) + while st: + n = st.pop() + if n in reach: continue + reach.add(n) + if self.args[n]: st.extend(self.args[n]) + assert reach == set(self.act), 'inactive nodes in witness' + self.mL = {x: (y, k) for x, y, k in W['links']} + self.j = {int(n): j for n, j in W['j'].items()} + self.late = {int(n): (list(e), list(l)) for n, (e, l) in W['late'].items()} + self.F = W['flag'] + + +def trow(h, S): return [int(q in S) for q in range(h)] + + +def spans(pr): + """independent triple subsets (exact: 0/1 rows with three ones, every minor < 3^(h/2) < Q31) and dims.""" + h = pr.h; assert 3 ** h < Q31 ** 2 + bas = {}; dn = {} + for n in pr.act: + if pr.args[n] is None: bas[n] = (n - 1,); dn[n] = 1; continue + a, b = pr.args[n]; E = Echelon(Q31); keep = [] + for i in bas[a] + bas[b]: + if len(E) == h: break + if E.insert(trow(h, pr.trip[i])): keep.append(i) + bas[n] = tuple(keep); dn[n] = len(keep) + return bas, dn + + +def users_of(pr, dn): + key = lambda n: (dn[n], n); users = {n: [] for n in pr.act} + for n in sorted(pr.act, key=key): + if pr.args[n]: + for pos, x in enumerate(pr.args[n]): users[x].append(('gate', n, pos)) + for (c, T), n in sorted(pr.outputs.items()): users[n].append(('out', (c, T))) + for c, n in sorted(pr.retained.items()): users[n].append(('ret', c)) + return users + + +# ----------------------------------------------------------------------------------------------- B. compile +def root_key(u): return ('out',) + u[1] if u[0] == 'out' else ('ret', u[1]) + + +def compile_(pr, dn, users, late=True, defer=True, tamper=None): + """returns ops (scalar program), chains (frame keys per slot), reads, R. tamper: negative-control hooks.""" + key = lambda n: (dn[n], n); order = sorted(pr.act, key=key); gpos = {n: i for i, n in enumerate(order)} + linked = {r: x for x, r in pr.mL.items()} + chains = []; edge = {}; reads = []; ops = []; deferred = [] + def new(first): chains.append(list(first)); return len(chains) - 1 + def assign(s, n, k): + u = users[n][k] + if u[0] == 'gate': edge[u[1], u[2]] = s + else: + chains[s] += [root_key(u), ('F',)] + reads.append((s, [u[1][1]] if u[0] == 'out' else [T for T in pr.trip if u[1] in T])) + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + for n in order: + if pr.args[n] is None: + piv = new([('0',), ('n', n)]); ops.append(('src', piv, n, n)) + else: + a, b = pr.args[n]; sa, sb = edge.pop((n, 0)), edge.pop((n, 1)) + if n in pr.mL and pr.mL[n][0] == a: sa, sb = sb, sa # the linked operand stays on the non-pivot + piv, oth = sa, sb + chains[piv].append(('n', n)); chains[oth].append(('n', n)); ops.append(('add', piv, oth, n)) + if n in pr.mL: y, k = pr.mL[n]; assign(oth, y, k) + else: chains[oth].append(('F',)) + ks = [k for k in range(len(users[n])) if (n, k) not in linked] + if late and n in pr.late: + early, lt = pr.late[n]; assert sorted(early + lt) == ks, ('bad late decision', n) + else: early, lt = ks[1:], [ks[0]] + for k in early: + f = new([('0',), ('n', n)]); ops.append(('copy', piv, f, n)); assign(f, n, k) + for i, k in enumerate(lt): + Ck = ufr(n, k) if i == len(lt) - 1 else ('c', n, tuple(lt[i:])) + if tamper == 'nointersect' and i < len(lt) - 1: Ck = ufr(n, k) + chains[piv].append(Ck) + if i < len(lt) - 1: + f = new([('0',), Ck]); deferred.append((n, i, f, k, lt[-1])); assign(f, n, k) + k = lt[-1] + if users[n][k][0] == 'gate': edge[users[n][k][1], users[n][k][2]] = piv + else: assign(piv, n, k) + assert not edge + # place deferred copies: as late as possible, in order, before the user's gate and the pivot consumer's gate + INF = len(order); byn = {} + for (n, i, f, k, kl) in deferred: byn.setdefault(n, []).append((i, f, k, kl)) + ins = {} + for n, lst in byn.items(): + lst.sort(); D = [] + for i, f, k, kl in lst: + u, ul = users[n][k], users[n][kl] + d = min(gpos[u[1]] if u[0] == 'gate' else INF, gpos[ul[1]] if ul[0] == 'gate' else INF) + D.append(d) + for t in range(len(D) - 2, -1, -1): D[t] = min(D[t], D[t + 1]) + for (i, f, k, kl), d in zip(lst, D): + if not defer: d = gpos[n] + 1 # immediate copy (still a valid program) + if tamper == 'aftercons' and n == tamper_node[0] and i == 0: + ul = users[n][kl]; d = gpos[ul[1]] + 1 # copy AFTER the pivot was consumed + ins.setdefault(d, []).append((n, i, f)) + pivslot = {} + for o in ops: + if o[0] in ('src', 'add'): pivslot[o[3]] = o[1] + out = [] + for o in ops: + if o[0] in ('src', 'add'): + for (n, i, f) in sorted(ins.get(gpos[o[3]], []), key=lambda z: (gpos[z[0]], z[1])): + out.append(('copy', pivslot[n], f, n)) + out.append(o) + for (n, i, f) in sorted(ins.get(INF, []) + [z for d, zs in ins.items() if d > INF for z in zs], key=lambda z: (gpos[z[0]], z[1])): + out.append(('copy', pivslot[n], f, n)) + if tamper == 'dropcopy': + idx = next(i for i, o in enumerate(out) if o[0] == 'copy' and o[3] in pr.late); out.pop(idx) + R = len(chains); adds = sum(1 for n in pr.act if pr.args[n]) + assert R == adds + len(pr.outputs) + len(pr.retained) - len(pr.mL), 'role count' + return out, chains, reads, R + +tamper_node = [None] + + +# ----------------------------------------------------------------------------------------------- C. replay +def replay(pr, ops, reads, R, ring, rng, mirror=False, midread=True): + trip, v = pr.trip, pr.v; tid = {T: i for i, T in enumerate(trip)} + mod = (lambda z: z & 1) if ring == 2 else (lambda z: z) + last = {} + for i, o in enumerate(ops): + last[o[1]] = i + if o[0] != 'src': last[o[2]] = i + readers = {} + for s, Ts in reads: readers.setdefault(last[s] if midread else len(ops) - 1, []).append((s, Ts)) + x = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a0 = [rng.randrange(-10**6, 10**6) for _ in range(R)]; y0 = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a = list(a0); y = list(y0); src = [(o[1], o[2]) for o in ops if o[0] == 'src'] + def L(sg=None): + for i, o in enumerate(ops): + if o[0] == 'add': a[o[1]] += a[o[2]] + elif o[0] == 'copy': a[o[2]] += a[o[1]] + if sg is not None: + for s, Ts in readers.get(i, ()): + for T in Ts: y[tid[T]] += sg * a[s] + def Li(): + for o in reversed(ops): + if o[0] == 'add': a[o[1]] -= a[o[2]] + elif o[0] == 'copy': a[o[2]] -= a[o[1]] + def V(sg): + for s, n in src: a[s] += sg * x[n - 1] + if not mirror: L(-1); Li(); V(+1); L(+1); Li(); V(-1) + else: V(+1); L(+1); Li(); V(-1); L(-1); Li() + if any(mod(p - q) for p, q in zip(a, a0)): return False + val = {} + for n in pr.act: val[n] = x[n - 1] if pr.args[n] is None else val[pr.args[n][0]] + val[pr.args[n][1]] + want = list(y0) + for (c, T), n in pr.outputs.items(): want[tid[T]] += val[n] + for c, n in pr.retained.items(): + for T in trip: + if c in T: want[tid[T]] += val[n] + if any(mod(p - q) for p, q in zip(y, want)): return False + if ring == 2 and any(mod(y[i] - y0[i] - x[i]) for i in range(v)): return False + return True + + +# ----------------------------------------------------------------------------------------------- D. frames +class Frames: + def __init__(self, pr, dn, bas, users): + self.pr = pr; self.dn = dn; self.bas = bas; self.users = users; h = self.h = pr.h + self.rootcov = {} + for (c, T) in pr.outputs: self.rootcov[('out', c, T)] = [9 * int(q in T) - 3 for q in range(h)] + for c in pr.retained: self.rootcov[('ret', c)] = [1 - 3 * int(q == c) for q in range(h)] + rid = {k: i for i, k in enumerate(sorted(self.rootcov))}; self.rkeys = sorted(self.rootcov) + self.rid = rid + # slot successors (same for base and late compile: every free use of n is reached by one slot from n, + # a donor's non-pivot slot goes on to its linked use) and direct roots + linked = {r: x for x, r in pr.mL.items()} + self.succ = {n: set() for n in pr.act}; self.droots = {n: set() for n in pr.act} + def to(n, use): + if use[0] == 'gate': self.succ[n].add(use[1]) + else: self.droots[n].add(rid[root_key(use)]) + for n in pr.act: + for k, u in enumerate(users[n]): + if (n, k) not in linked: to(n, u) + if n in pr.mL: y, k = pr.mL[n]; to(n, users[y][k]) + + def check_structure(self): + """combinatorial / exact facts behind the nesting theorem.""" + pr, h = self.pr, self.h; bad_j = bad_link = bad_root = 0 + J = lambda n: self.pr.j.get(n, 0) + for n in pr.act: + if pr.args[n] is None: assert J(n) == 0 + for t in self.succ[n]: + if J(n) > J(t): bad_j += 1 + for x, (y, k) in pr.mL.items(): # span(x) <= span(linked use target) + u = self.users[y][k] + if u[0] == 'gate': + t = u[1]; E = Echelon(Q31) + for i in self.bas[t]: E.insert(trow(h, pr.trip[i])) + if not all(E.contains(trow(h, pr.trip[i])) for i in self.bas[x]): bad_link += 1 + for n in pr.act: # span(n) <= direct root frames + for r in self.droots[n]: + g = self.rootcov[self.rkeys[r]] + if any(sum(gq * tq for gq, tq in zip(g, trow(h, pr.trip[i]))) for i in self.bas[n]): bad_root += 1 + # F invertible over Q (a nonzero determinant mod a prime) + F_ok = rank_mod(self.pr.F, Q31) == h + return bad_j, bad_link, bad_root, F_ok + + def cobases(self): + """K_n: independent subset of the root covectors reachable from n, spanning all of them over Q + (selection mod M127, valid by the Hadamard certificate on root covectors).""" + pr, h = self.pr, self.h + rows = [self.rootcov[k] for k in self.rkeys] + mx = max(sum(x * x for x in r) for r in rows); assert mx ** h < M127 ** 2, 'Hadamard bound for K' + key = lambda n: (self.dn[n], n); K = {} + for n in sorted(pr.act, key=key, reverse=True): + cand = sorted(self.droots[n]); srcs = sorted((K[t] for t in self.succ[n]), key=len, reverse=True) + cap = h - self.dn[n] # span(n) <= U_n + if not cand and len(srcs) == 1: K[n] = srcs[0]; continue + E = Echelon(M127); keep = [] + seq = list(srcs[0]) if srcs else [] + for r in seq: E.insert(rows[r]); keep.append(r) # srcs[0] is already independent + for lst in [cand] + srcs[1:]: + for r in lst: + if len(keep) >= cap: break + if E.insert(rows[r]): keep.append(r) + K[n] = tuple(keep) + self.K = K + return K + + def dims(self): + """exact dim of every addition frame M_n.""" + pr, h = self.pr, self.h; F = pr.F; d = dict(self.dn); stats = Counter() + rows = [self.rootcov[k] for k in self.rkeys] + self.KF = {} + for n, j in pr.j.items(): + Fj = F[:j]; K = [rows[r] for r in self.K[n]] + KF = [[sum(a * b for a, b in zip(kr, fr)) for fr in Fj] for kr in K] + SF = [trow(h, pr.trip[i]) for i in self.bas[n]] + Fj + r1 = self._rank(SF, min(len(SF), h), stats, 'SF'); r2 = self._rank(KF, min(len(K), j), stats, 'KF') + d[n] = r1 - r2; self.KF[n] = (r2, KF) + assert self.dn[n] <= d[n] <= h - len(K) + self.d = d + return d, stats + + @staticmethod + def _rank(M, full, stats, tag): + if not M or full == 0: return 0 + r = rank_mod(M, Q31) + if r == full: stats[tag + ' full mod q'] += 1; return r # rank mod q <= rank over Q <= full + if hadamard_ok(M, M521): stats[tag + ' M521'] += 1; return rank_mod(M, M521) + stats[tag + ' Bareiss'] += 1; return rank_exact(M) + + # exact rational bases, used for the late-copy intersections + def exact_basis(self, key): + pr, h = self.pr, self.h + if key[0] in ('out', 'ret'): + return null_exact([self.rootcov[key]], h) + n = key[1] + S = [trow(h, pr.trip[i]) for i in self.bas[n]] + j = pr.j.get(n, 0) + if not j: return S + _, KF = self.KF[n]; F = pr.F[:j] + X = null_exact(KF, j) if KF else [[int(i == t) for t in range(j)] for i in range(j)] + vecs = S + [[sum(c * F[i][q] for i, c in enumerate(x)) for q in range(h)] for x in X] + # independent subset: rows independent mod q are independent over Q; d of them span M_n (dim M_n = d exactly) + E = Echelon(Q31); out = [] + for vv in vecs: + if E.insert(vv): out.append(vv) + assert len(out) == self.d[n], ('exact basis dim', n, len(out), self.d[n]) + return out + + def intersect_exact(self, A, B): + h = self.h + if not A or not B: return [] + # z = (x, y): x A = y B <=> [A; -B]^T z = 0 + M = [[A[i][q] for i in range(len(A))] + [-B[i][q] for i in range(len(B))] for q in range(h)] + Z = null_exact(M, len(A) + len(B)) + # A and B are bases, so z -> x A is injective on the null space: the images are a basis of A cap B + return [[sum(z[i] * A[i][q] for i in range(len(A))) for q in range(h)] for z in Z] + + +def late_frames(fr, pr, users): + """exact dims of every late-copy intersection frame ('c', n, late users).""" + cache = {}; dims = {} + def eb(k): + if k not in cache: cache[k] = fr.exact_basis(k) + return cache[k] + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + for n, (early, lt) in pr.late.items(): + for i in range(len(lt) - 1): + B = eb(ufr(n, lt[-1])) + for k in reversed(lt[i:-1]): B = fr.intersect_exact(eb(ufr(n, k)), B) + dims[('c', n, tuple(lt[i:]))] = len(B) + return dims, cache + + +def chain_steps(chains, dimof, h): + rk = Counter(); steps = {} + for ch in chains: + prev = ch[0]; pd = dimof(prev) + for k in ch[1:]: + dk = dimof(k) + assert dk >= pd, ('decreasing chain', prev, k, pd, dk) + if dk > pd: rk[dk - pd] += 1; steps[prev, k] = dk - pd; prev, pd = k, dk + else: prev = k # equal dims, nested => equal frames + assert pd == h + return rk, steps + + +# ----------------------------------------------------------------------------------------------- E. mod-q frames, side lemma +def point_UV(h, seed): + """the U, V drawn by independent/two-stage-bit/flag_existence.py with this seed (same random stream).""" + CR = 10**6; rng = random.Random(seed) + nz = lambda: rng.choice([-1, 1]) * rng.randint(1, CR) + for b in range(h): + for i in range(h): + for jj in range(h): + if i <= b and jj <= b: nz() + for b in range(h): + for i in range(h): + for jj in range(h): + if i >= b and jj >= b: nz() + U = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] + V = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] + return U, V + + +class ModQ: + def __init__(self, fr, latedims, control=False): + self.fr = fr; self.h = h = fr.h; self.q = q = Q31; self.latedims = latedims + U, V = point_UV(h, 1) + if control: U = [[int(i == k) for k in range(h)] for i in range(h)]; V = [r[:] for r in U] + self.conj = [] + for A in (U, V): + Ai = inv_mod_matrix(A, q); assert Ai is not None + self.conj.append(([list(c) for c in zip(*A)], Ai)) # columns of A, rows of A^-1 + self.inv9 = pow(9, q - 2, q); self.bcache = {}; self.qcache = OrderedDict(); self.cap = 6000 + self.degenerate = 0; self.dimfail = 0 + + def basis(self, key): + if key in self.bcache: return self.bcache[key] + fr, h, q = self.fr, self.h, self.q; pr = fr.pr + if key == ('0',): B = [] + elif key == ('F',): B = [[int(i == t) for t in range(h)] for i in range(h)] + elif key[0] in ('out', 'ret'): B = null_mod([fr.rootcov[key]], h, q) + elif key[0] == 'c': + n, lt = key[1], key[2] + B = None + for k in lt: + u = fr.users[n][k]; kk = ('n', u[1]) if u[0] == 'gate' else root_key(u) + Bk = self.basis(kk) + B = Bk if B is None else self._cap(B, Bk) + if len(B) != self.latedims[key]: self.dimfail += 1 + else: + n = key[1]; S = [trow(h, pr.trip[i]) for i in fr.bas[n]]; j = pr.j.get(n, 0) + E = Echelon(q) + for r in S: E.insert(r) + if j: + r2, KF = fr.KF[n] + if KF and rank_mod(KF, q) != r2: self.dimfail += 1 + X = null_mod(KF, j, q) if KF else [[int(i == t) for t in range(j)] for i in range(j)] + Fj = pr.F[:j] + for x in X: E.insert([sum(c * Fj[i][t] for i, c in enumerate(x)) % q for t in range(h)]) + B = E.rows + if len(B) != fr.d[n]: self.dimfail += 1 + self.bcache[key] = B + return B + + def _cap(self, A, B): + q, h = self.q, self.h + if not A or not B: return [] + M = [[A[i][t] for i in range(len(A))] + [(-B[i][t]) % q for i in range(len(B))] for t in range(h)] + Z = null_mod(M, len(A) + len(B), q); E = Echelon(q) + for z in Z: E.insert([sum(z[i] * A[i][t] for i in range(len(A))) % q for t in range(h)]) + return E.rows + + def gram_inv(self, B): + q = self.q; BG = [[(x - sum(b) * self.inv9) % q for x in b] for b in B] + Gr = [[sum(x * y for x, y in zip(bg, c)) % q for c in B] for bg in BG] + return BG, inv_mod_matrix(Gr, q) + + def nondeg(self, key): + B = self.basis(key) + if not B or len(B) == self.h: return True + return self.gram_inv(B)[1] is not None + + def conjugated(self, key): + """(U^T P U^-T, V^T P V^-T) for the G-orthogonal projector P onto the frame, flattened.""" + if key in self.qcache: self.qcache.move_to_end(key); return self.qcache[key] + h, q = self.h, self.q; B = self.basis(key) + if not B: out = (array('q', [0] * h * h),) * 2 + elif len(B) == h: I = array('q', [int(i == t) for i in range(h) for t in range(h)]); out = (I, I) + else: + BG, Gi = self.gram_inv(B) + if Gi is None: raise ZeroDivisionError(key) + res = [] + for Acols, Ai in self.conj: + LU = [[sum(x * y for x, y in zip(ac, b)) % q for b in B] for ac in Acols] # A^T B^T (h x d) + RU = [[sum(x * y for x, y in zip(bg, ai)) % q for ai in Ai] for bg in BG] # B G A^-T (d x h) + Mi = matmul(Gi, RU, q) + Mt = list(zip(*Mi)) + res.append(array('q', [sum(x * y for x, y in zip(l, c)) % q for l in LU for c in Mt])) + out = tuple(res) + self.qcache[key] = out + if len(self.qcache) > self.cap: self.qcache.popitem(last=False) + return out + + +def side_lemma(mq, steps, h, retained): + q = mq.q; pr_ = predicted(h); E = dict((k, r) for k, r in steps.items() if 2 * r > h) + for c in retained: E[('0',), ('ret', c)] = h - 1 # retained copy edges 0 -> U_c + keys = sorted(E, key=lambda e: (str(e[1]), str(e[0]))) # group by target frame (cache reuse) + bad = 0; n = 0 + for (A, B) in keys: + r = E[A, B]; QA, QB = mq.conjugated(A), mq.conjugated(B) + for t in range(2): + a, b = QA[t], QB[t] + M = [[(b[i * h + c] - a[i * h + c]) % q for c in range(h)] for i in range(h)] + if rightmost_pivots(M, q) != pr_[r]: bad += 1 + n += 1 + if n % 5000 == 0: log(' side lemma %d/%d, failures %d' % (n, len(keys), bad)) + return bad, len(keys) + + +# ----------------------------------------------------------------------------------------------- F. certificate +K_REPO = os.path.normpath(os.path.join(HERE, '..', '..')) +sys.path[:0] = [K_REPO + '/scripts', K_REPO + '/independent/two-stage-bit'] + + +def inner_children(r, h): return [1] * (h - r) + [2 * r - h] if 2 * r > h else [1] * r + + +def rt_histogram(h, R, rk, corner): + """cert_rt.rt_histogram with the data-entrance corner profile 'corner' (round six: [h-2] + [1]*(h+1)).""" + from math import comb + v, m = comb(h, 3), h * h; N = v * v; A = v * R; H = Counter() + assert sum(r * n for r, n in rk.items()) == h * R and sum(corner) == 2 * h - 1 + for _ in range(2): + H[m - 2 * h] += A; H[h] += A + for r, n in rk.items(): + for w in inner_children(r, h): H[w] += v * n + for w in inner_children(h - 1, h): H[w] += v * h + H[m - 4 * h + 2] += 2 * N + for w in corner: H[w] += 2 * N + for _ in range(2): H[h - 2] += 2 * N; H[1] += 2 * N + H[1] += N + W = 2 * N + 2 * A; L = 2 * v * h * (h - 1); s = W * m - N + L + H = {w: c for w, c in H.items() if c} + assert sum(w * c for w, c in H.items()) == s and max(H) <= m - 1 + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=H) + + +def certificate(h, R, rk): + import moment + from certificate_round3 import evaluate + out = {} + for name, corner in (('round6 corner', [h - 2] + [1] * (h + 1)), ('staircase', [h - 2, h - 5] + [1] * 6)): + c = rt_histogram(h, R, rk, corner) + if c['W'] * c['m'] <= c['s']: out[name] = ('no deficit', c['s']); continue + a, root = moment.certify(c) + k = evaluate(a, Fr(36926111, 5 * 10**11), Fr(1, 1000), 'crude', m_c=576, s_c=119453132304) + out[name] = (a, root, c['s'], c['W'], k['kappa'], k['ok']) + return out + + +# ----------------------------------------------------------------------------------------------- main +def main(h, generic=True, control=False): + W = load_witness(h) + pr = Prog(W); log('h=%d: A. DAG semantics OK (%d nodes, %d additions, %d links, %d lifted, %d late)' % ( + h, len(pr.act), sum(1 for n in pr.act if pr.args[n]), len(pr.mL), len(pr.j), len(pr.late))) + bas, dn = spans(pr); users = users_of(pr, dn) + ops, chains, reads, R = compile_(pr, dn, users) + log('B. compiled: R=%d (claimed %d), ops %d, late copies %d' % (R, W['claimed']['R'], len(ops), + sum(len(l) - 1 for _, l in pr.late.values()))) + assert R == W['claimed']['R'] + rng = random.Random(h) + res = {(ring, mir, mid): all(replay(pr, ops, reads, R, ring, rng, mir, mid) for _ in range(2)) + for ring in (2, 0) for mir in (False, True) for mid in (True, False)} + log('C. dirty-scratch replay (F2/Z x word/mirror x midread/endread): %s' % ('ALL OK' if all(res.values()) else res)) + fr = Frames(pr, dn, bas, users) + bj, bl, br, Fok = fr.check_structure() + log('D. nesting facts: j-monotone failures %d, link span failures %d, root containment failures %d, F invertible %s' + % (bj, bl, br, Fok)) + fr.cobases(); log(' co-bases K_n done') + d, st = fr.dims(); log(' lifted frame dims exact: %s' % dict(st)) + nU = sum(1 for n in pr.j if d[n] == h - len(fr.K[n])) + log(' every lifted frame is the largest admissible frame U_n: %s (%d / %d; the flag only switches span -> U_n)' + % (nU == len(pr.j), nU, len(pr.j))) + ld, ecache = late_frames(fr, pr, users); log(' late-copy intersections exact: %d frames' % len(ld)) + def dimof(k): + if k == ('0',): return 0 + if k == ('F',): return h + if k[0] in ('out', 'ret'): return h - 1 + if k[0] == 'c': return ld[k] + return d[k[1]] + rk, steps = chain_steps(chains, dimof, h) + claimed = Counter({int(r): c for r, c in W['claimed']['rk'].items()}) + log(' chain steps: sum of ranks %d = h R %d: %s; histogram equals claim: %s; distinct steps %d (2r>h: %d)' % ( + sum(r * c for r, c in rk.items()), h * R, sum(r * c for r, c in rk.items()) == h * R, rk == claimed, + len(steps), sum(1 for r in steps.values() if 2 * r > h))) + out = dict(h=h, R=R, replay=all(res.values()), struct=(bj, bl, br, Fok), hist_ok=rk == claimed, rk=rk) + if generic: + mq = ModQ(fr, ld, control) + frames_used = {k for e in steps for k in e} | {('ret', c) for c in pr.retained} + nd = sum(1 for k in frames_used if not mq.nondeg(k)) + log('E. frames used %d: G-degenerate %d, reduction dimension mismatches %d' % (len(frames_used), nd, mq.dimfail)) + bad, ne = side_lemma(mq, steps, h, pr.retained) + log(' side lemma at one integer point%s: failures %d over %d distinct high-rank steps x 2 conjugations' % ( + ' (CONTROL U=V=I)' if control else '', bad, ne)) + out.update(degenerate=nd, dimfail=mq.dimfail, side_bad=bad, side_n=ne) + for name, val in certificate(h, R, rk).items(): + if val[0] == 'no deficit': log('F. %s: no deficit at this h (s=%d), certificate n/a' % (name, val[1])); continue + a, root, s, Wr, kap, ok = val + log('F. %s: s=%d W=%d a_b=%s (%.6e, root %.6e) kappa=%s (%.7e) ok=%s' % (name, s, Wr, a, float(a), root, kap, + float(kap), ok)) + out[name] = (a, kap, ok) + return out, pr, dn, users + + + + +# ----------------------------------------------------------------------------------------------- negative controls +def controls(h, nsample=40): + """Each must FAIL (or differ) for the check to have teeth: + (a) one late copy moved to just after its pivot's consumer gate: replay must fail; + (b) one late copy dropped: replay must fail; + (c) pivot chain without intersections (C_i := frame of user i alone): exhibit non-nested consecutive pivot frames; + (d) M_n rebuilt from an independent flag F' on targets strictly between span and U (vacuous for this + witness: every lifted frame equals U_n, so the flag is only a switch and nesting needs no common flag); + (e) side lemma at U = V = I on the first high-rank steps: generic pivots must fail; + (f) no late copies (lifted frames only): histogram must change.""" + W = load_witness(h) + pr = Prog(W); bas, dn = spans(pr); users = users_of(pr, dn); rng = random.Random(7) + key = lambda n: (dn[n], n); linked = {r: x for x, r in pr.mL.items()} + cand = [n for n, (e, lt) in pr.late.items() if users[n][lt[-1]][0] == 'gate'] + fails = 0; tried = 0 + for n in cand[:nsample]: + tamper_node[0] = n; ops, ch, rd, R = compile_(pr, dn, users, tamper='aftercons') + ok = all(replay(pr, ops, rd, R, ring, rng) for ring in (2, 0)); tried += 1; fails += not ok + log('(a) late copy moved after the pivot consumer: replay failed %d / %d (must be all)' % (fails, tried)) + ops, ch, rd, R = compile_(pr, dn, users, tamper='dropcopy') + log('(b) one late copy dropped: replay correct %s (must be False)' % all(replay(pr, ops, rd, R, ring, rng) for ring in (2, 0))) + fr = Frames(pr, dn, bas, users); fr.cobases(); d, _ = fr.dims(); d = dict(d); ld, _ = late_frames(fr, pr, users) + mq = ModQ(fr, ld) + def inside(A, B): + E = Echelon(mq.q) + for r in mq.basis(B): E.insert(r) + return all(E.contains(r) for r in mq.basis(A)) + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + bad = tot = 0 + for n, (e, lt) in pr.late.items(): + for i in range(len(lt) - 1): + tot += 1; bad += not inside(ufr(n, lt[i]), ufr(n, lt[i + 1])) + log('(c) pivot chain through user frames without intersections: non-nested consecutive frames %d / %d ' + '(the intersections are needed)' % (bad, tot)) + # (d) the common flag is essential: rebuild M_n with an independent flag F' (same j(n)) and test M_n <= M_t + pairs = [(n, t) for n in pr.j for t in fr.succ[n] if pr.j.get(t, 0) > 0 and dn[t] < d[t] < h - len(fr.K[t])] + rng.shuffle(pairs); bad = tot = 0; r2 = random.Random(99) + Fp = [[r2.randint(-50, 50) for _ in range(h)] for _ in range(h)] + for n, t in pairs[:nsample]: + j = pr.j[n]; K = [fr.rootcov[fr.rkeys[r]] for r in fr.K[n]] + KF = [[sum(a * b for a, b in zip(kr, fl)) for fl in Fp[:j]] for kr in K] + if KF and rank_mod(KF, mq.q) != fr._rank(KF, min(len(K), j), Counter(), 'KF'): continue + X = null_mod(KF, j, mq.q) if KF else [[int(i == c) for c in range(j)] for i in range(j)] + E = Echelon(mq.q) + for r in mq.basis(('n', t)): E.insert(r) + vecs = [[sum(c * Fp[i][q] for i, c in enumerate(x)) % mq.q for q in range(h)] for x in X] + tot += 1; bad += not all(E.contains(v) for v in vecs) + log("(d) M_n rebuilt with an independent flag F': M_n not inside M_t on %d / %d lifted successor pairs (targets strictly between span and U)" % (bad, tot)) + ops, chains, reads, R = compile_(pr, dn, users) + fr2 = Frames(pr, dn, bas, users); fr2.cobases(); d2, _ = fr2.dims(); ld2, _ = late_frames(fr2, pr, users) + dimof = lambda k: 0 if k == ('0',) else h if k == ('F',) else h - 1 if k[0] in ('out', 'ret') else ld2[k] if k[0] == 'c' else d2[k[1]] + rk, steps = chain_steps(chains, dimof, h) + mqs = ModQ(fr2, ld2); smp = list(steps); random.Random(5).shuffle(smp); nb = 0 + for A, B in smp[:3000]: + E = Echelon(mqs.q) + for r in mqs.basis(B): E.insert(r) + nb += not all(E.contains(r) for r in mqs.basis(A)) + log('(g) sanity (positive): 3000 sampled chain steps A -> B with A inside B mod q: failures %d' % nb) + mq0 = ModQ(fr2, ld2, control=True); pr_ = predicted(h); hi = [(e, r) for e, r in steps.items() if 2 * r > h][:300] + nb = 0 + for (A, B), r in hi: + QA, QB = mq0.conjugated(A), mq0.conjugated(B) + M = [[(QB[0][i * h + c] - QA[0][i * h + c]) % mq0.q for c in range(h)] for i in range(h)] + nb += rightmost_pivots(M, mq0.q) != pr_[r] + log('(e) side lemma with U = V = I: failures %d / %d (must be most)' % (nb, len(hi))) + ops, chains0, reads, R = compile_(pr, dn, users, late=False) + rk0, _ = chain_steps(chains0, dimof, h) + log('(f) without late copies: histogram differs %s; certificate %s' % (rk0 != rk, {k: v[0] for k, v in certificate(h, R, rk0).items()})) + + +if __name__ == '__main__': + h = int(sys.argv[1]) + if '--controls' in sys.argv: controls(h) + else: + out = main(h, generic='--no-generic' not in sys.argv)[0] + ok = out['replay'] and out['struct'][:3] == (0, 0, 0) and out['struct'][3] and out['hist_ok'] + ok &= out.get('degenerate', 0) == 0 and out.get('dimfail', 0) == 0 and out.get('side_bad', 0) == 0 + ok &= all(v[2] for k, v in out.items() if k in ('round6 corner', 'staircase')) + log('ALL %s' % ('PASS' if ok else 'FAIL')) + sys.exit(0 if ok else 1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py new file mode 100644 index 0000000000..d3d1dea1a9 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_stair.py @@ -0,0 +1,194 @@ +"""Staircase data-entrance corner certificate (stdlib only). + +Sparse flag family + staircase cells: + rows lambda_b = E(b,b) (b < h-1), lambda_{h-1} = al E(h-1,0) + be E(0,h-1); E(RC[t]) (staircase rows) + cols E(CC[t]) (staircase columns); mu_j = a_j E(j,j+1) + b_j E(j+1,j) (j < h-1), mu_{h-1} = E(h-1,h-1) +Checks: + 1. the sparse R_b, C_b are flag-family members (supports, zero diagonal entries) with all trace conditions; + the flag diagonal factors f1..f4 are nonzero on every line at the point (U, V of point(h, 1)) and the inner corners + of the rank-(h-1) data classes are nonzero, so the flag-basis lemmas (lower-triangular corners, side lemma) apply + to this family at the SAME U, V where check_lifted.py verifies the side lemma; + 2. upper bound, identically in all parameters: for every north-east block of the (2h-1)x(2h-1) entrance corner, + rank <= min vertex cut of the rows-terms-cols graph (max flow, cut re-verified); + 3. lower bound at one point: the corner at sampled line pairs has rightmost pivots whose NE rank function equals the + upper bound on every nontrivial block, and is invertible; its runs are (h-2, h-5, 1^6). +So the entrance compiles to m-4h+2 and runs (h-2, h-5, 1^6) on a Zariski-open set (partial-swap lemma). +Negative control (--control): random elementary cells instead of the staircase must NOT certify. +--ij: fixed explicit axis bases U = V = I + J instead of point(h, 1). +Usage: python3 check_stair.py h [npairs] [--control] [--ij]""" +import sys, random +from itertools import combinations +from collections import deque +sys.path.insert(0, __import__('os').path.dirname(__import__('os').path.abspath(__file__))) +from linalg import inv_mod_matrix, rightmost_pivots +from check_lifted import point_UV + +P = 67108859 # the prime of round six's draws (sparse parameters depend on it) +def iv(x): return pow(x % P, P - 2, P) + + +def design(h, kind='stair'): + if kind == 'stair': + RC = [(0, 3)] + [(r + 1, r - 1) for r in range(1, h - 1)] + CC = [(c + 1, c + 3) for c in range(h - 3)] + [(0, h - 3), (0, h - 2)] + return RC, CC + reserved = {(b, b) for b in range(h)} | {(h - 1, 0), (0, h - 1)} + for j in range(h - 1): reserved |= {(j, j + 1), (j + 1, j)} + free = sorted(set((i, j) for i in range(h) for j in range(h)) - reserved) + rng = random.Random(kind); cells = rng.sample(free, 2 * h - 2) + return cells[:h - 1], cells[h - 1:] + + +def structure(h, RC, CC): + rows = [{(b, b)} for b in range(h - 1)] + [{(h - 1, 0), (0, h - 1)}] + [{c} for c in RC] + cols = [{c} for c in CC] + [{(j, j + 1), (j + 1, j)} for j in range(h - 1)] + [{(h - 1, h - 1)}] + for f in rows: + for g in cols: assert not (f & g), 'identity term would not vanish' + assert len(set().union(*rows) | set().union(*cols)) == sum(map(len, rows)) + sum(map(len, cols)), 'cells reused' + terms = [] + for l in range(h): terms.append(({i for i, f in enumerate(rows) if any(c[1] == l for c in f)}, + {j for j, g in enumerate(cols) if any(c[1] == l for c in g)})) + for k in range(h): terms.append(({i for i, f in enumerate(rows) if any(c[0] == k for c in f)}, + {j for j, g in enumerate(cols) if any(c[0] == k for c in g)})) + terms.append((set(range(len(rows))), set(range(len(cols))))) + return rows, cols, terms + + +def cut_bound(rows_, cols_, terms): + T = [(sr & rows_, sc & cols_) for sr, sc in terms] + nodes = [('r', r) for r in rows_] + [('t', t) for t in range(len(T))] + [('c', c) for c in cols_] + idx = {nd: i for i, nd in enumerate(nodes)} + BIG = 10**6; N = 2 * len(nodes) + 2; S_, K_ = N - 2, N - 1; cap = {}; adj = [[] for _ in range(N)] + def add(a, b, c): + if (a, b) not in cap: adj[a].append(b); adj[b].append(a); cap[a, b] = 0; cap.setdefault((b, a), 0) + cap[a, b] += c + for nd, k in idx.items(): add(2 * k, 2 * k + 1, 1) + for r in rows_: add(S_, 2 * idx['r', r], BIG) + for c in cols_: add(2 * idx['c', c] + 1, K_, BIG) + for t, (sr, sc) in enumerate(T): + if not sr or not sc: continue + for r in sr: add(2 * idx['r', r] + 1, 2 * idx['t', t], BIG) + for c in sc: add(2 * idx['t', t] + 1, 2 * idx['c', c], BIG) + flow = 0 + while True: + par = {S_: None}; dq = deque([S_]) + while dq and K_ not in par: + a = dq.popleft() + for b in adj[a]: + if b not in par and cap[a, b] > 0: par[b] = a; dq.append(b) + if K_ not in par: break + b = K_ + while par[b] is not None: a = par[b]; cap[a, b] -= 1; cap[b, a] += 1; b = a + flow += 1 + reach = set(par) + cut = [nd for nd, k in idx.items() if 2 * k in reach and 2 * k + 1 not in reach] + R0 = {x for t_, x in cut if t_ == 'r'}; T0 = {x for t_, x in cut if t_ == 't'}; C0 = {x for t_, x in cut if t_ == 'c'} + assert len(cut) == flow + for t, (sr, sc) in enumerate(T): # the cut is a certificate: every other term is covered + if t in T0: continue + assert not (sr - R0) or not (sc - C0), 'cut misses a term' + return flow + + +def sparse_params(h, rng): + nz = lambda: rng.randrange(1, P) + return dict(al=nz(), be=nz(), a=[nz() for _ in range(h - 1)], b=[nz() for _ in range(h - 1)]) + + +def runs(pc): + pts = sorted((i, c) for i, c in enumerate(pc) if c >= 0); out = []; prev = None + for i, c in pts: + if prev and i == prev[0] + 1 and c == prev[1] + 1: out[-1] += 1 + else: out.append(1) + prev = (i, c) + return out + + +def mv(A, x): return [sum(a * b for a, b in zip(r, x)) % P for r in A] + + +def flag_factors(h, sp, U, V, Ui, Vi): + """check 1: family membership, trace conditions, f1..f4 and inner corners nonzero on every line.""" + R = [[[0] * h for _ in range(h)] for _ in range(h)]; C = [[[0] * h for _ in range(h)] for _ in range(h)] + for b in range(h - 1): R[b][b][b] = 1 + R[h - 1][h - 1][0] = sp['al']; R[h - 1][0][h - 1] = sp['be'] + for j in range(h - 1): C[j][j][j + 1] = sp['a'][j]; C[j][j + 1][j] = sp['b'][j] + C[h - 1][h - 1][h - 1] = 1 + for b in range(h): + assert all(R[b][i][k] == 0 for i in range(h) for k in range(h) if i > b or k > b) + assert all(C[b][i][k] == 0 for i in range(h) for k in range(h) if i < b or k < b) + if b < h - 1: assert C[b][b][b] == 0 + assert R[h - 1][h - 1][h - 1] == 0 + for i in range(h): + for j in range(h): + assert sum(R[i][a][b] * C[j][a][b] for a in range(h) for b in range(h)) % P == 0, 'trace condition' + UT = [list(c) for c in zip(*U)]; VT = [list(c) for c in zip(*V)] + Rrow = [R[k][k] for k in range(h)]; Crow = [C[k][k] for k in range(h)] + Rcol = [[R[k][i][k] for i in range(h)] for k in range(h)]; Ccol = [[C[k][i][k] for i in range(h)] for k in range(h)] + zeros = inner = 0; i9 = iv(9); i2 = iv(2); lines = 0 + for t in combinations(range(h), 3): + tv = [int(q in t) for q in range(h)]; g = [(x - 3 * i9) * i2 % P for x in tv] + a, b, c, d = mv(VT, tv), mv(Vi, g), mv(UT, tv), mv(Ui, g) + for M, x in ((Rrow, a), (Crow, b), (Rcol, c), (Ccol, d)): + zeros += sum(1 for v in mv(M, x) if v == 0) + inner += (c[0] * d[h - 1] % P == 0) + (a[0] * b[h - 1] % P == 0); lines += 1 + return lines, zeros, inner + + +def corner_at(h, rows, cols, p, xi, v, nu): + """rows . (q1 (x) q2) . cols, (q1 (x) q2) vec G = vec(q1 G q2^T), q1 = I - p xi^T, q2 = I - v nu^T.""" + q1 = [[(int(i == k) - p[i] * xi[k]) % P for k in range(h)] for i in range(h)] + q2 = [[(int(i == k) - v[i] * nu[k]) % P for k in range(h)] for i in range(h)] + out = [[0] * len(cols) for _ in rows] + for j, col in enumerate(cols): + G = [[0] * h for _ in range(h)] + for (a, b), val in col.items(): G[a][b] = val % P + qG = [[sum(q1[i][k] * G[k][l] for k in range(h)) % P for l in range(h)] for i in range(h)] + Y = [[sum(qG[i][l] * q2[k][l] for l in range(h)) % P for k in range(h)] for i in range(h)] + for i, row in enumerate(rows): + out[i][j] = sum(val * Y[a][b] for (a, b), val in row.items()) % P + return out + + +def main(h, npairs=20, kind='stair', seed=1, ij=False): + RC, CC = design(h, kind); n = 2 * h - 1 + _, _, terms = structure(h, RC, CC) + U, V = point_UV(h, seed) + if ij: U = [[1 + int(i == k) for k in range(h)] for i in range(h)]; V = [r[:] for r in U] # fixed U = V = I + J + U = [[x % P for x in r] for r in U]; V = [[x % P for x in r] for r in V] + Ui, Vi = inv_mod_matrix(U, P), inv_mod_matrix(V, P) + sp = sparse_params(h, random.Random(1000 + seed)) + lines, zeros, inner = flag_factors(h, sp, U, V, Ui, Vi) + print('1. sparse flag family: trace conditions OK; f1..f4 zeros %d over %d lines x %d rows; inner-corner zeros %d' + % (zeros, lines, h, inner), flush=True) + rows = [{(b, b): 1} for b in range(h - 1)] + [{(h - 1, 0): sp['al'], (0, h - 1): sp['be']}] + [{c: 1} for c in RC] + cols = [{c: 1} for c in CC] + [{(j, j + 1): sp['a'][j], (j + 1, j): sp['b'][j]} for j in range(h - 1)] + [{(h - 1, h - 1): 1}] + trip = list(combinations(range(h), 3)); prng = random.Random(seed + 7); UT = [list(c) for c in zip(*U)]; VT = [list(c) for c in zip(*V)] + i9 = iv(9); i2 = iv(2); pats = {} + def line(t, AT, Ai): + tv = [int(i in t) for i in range(h)]; g = [(x - 3 * i9) * i2 % P for x in tv] + return mv(AT, tv), mv(Ai, g) + for _ in range(npairs): + t1, t2 = prng.choice(trip), prng.choice(trip) + p, xi = line(t1, UT, Ui); v, nu = line(t2, VT, Vi) + pc = tuple(rightmost_pivots(corner_at(h, rows, cols, p, xi, v, nu), P)); pats[pc] = pats.get(pc, 0) + 1 + pc = list(max(pats, key=pats.get)) + rho = [[sum(1 for r in range(i + 1) if pc[r] >= j) for j in range(n)] for i in range(n)] + certs = above = 0 + for i in range(n): + for j in range(n): + if rho[i][j] == min(i + 1, n - j): continue + ub = cut_bound(set(range(i + 1)), set(range(j, n)), terms); certs += 1 + assert ub >= rho[i][j] + above += ub > rho[i][j] + ok = above == 0 and -1 not in pc and len(pats) == 1 and zeros == 0 and inner == 0 + print('2-3. %d pairs, distinct pivot patterns %d; runs %s invertible %s; nontrivial NE blocks %d, symbolic bound ' + 'above evaluated rank on %d' % (npairs, len(pats), runs(pc), -1 not in pc, certs, above), flush=True) + print('RESULT h=%d kind=%s runs=%s certified=%s' % (h, kind, sorted(runs(pc), reverse=True), ok), flush=True) + return ok, sorted(runs(pc), reverse=True) + + +if __name__ == '__main__': + h = int(sys.argv[1]); npairs = int(sys.argv[2]) if len(sys.argv) > 2 and sys.argv[2].isdigit() else 20 + ok, _ = main(h, npairs, 'rand1' if '--control' in sys.argv else 'stair', ij='--ij' in sys.argv) + sys.exit(0 if ok or '--control' in sys.argv else 1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py new file mode 100644 index 0000000000..7db40994e4 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/check_word.py @@ -0,0 +1,193 @@ +"""Round-seven check, part 1 (stdlib only): the reordered stage-1 word, as scalars. No frames are used here. + +From certificates/round7/{witness,deferred}_23.json.gz: + A. side DAG from the definitions (disjoint additions, out(c,T) = {S : S cap T = {c}}, retained(c) = star(c)); + the schedule computes it: replaying the ops symbolically, every addition reads its two operands from the two slots + it names, a linked operand stays on the non-pivot slot, every addition runs once, the node lists of every slot + follow the replay, copies start where their source is, and every output / retained slot ends holding its node; + B. garbage coefficients of every slot (the transpose sweep of L applied to the root reads), over Z and over F2; + C. phase 1 = the ops that must precede the retained-total completions under per-slot sequence precedence; no + deferred slot is read or written in phase 1, the retained slots complete in phase 1 and are not touched again, + every V gate precedes its slot's first touch by L; the release rule: deferred readouts in increasing dim sigma_u, + deferred V gates in increasing dim s_i, each X_S ordered as its early V gates then its deferred V gates; + D. the stage-1 word of B-defer with V leaves, every event placed in time: + readouts of the non-deferred slots (at 0), the early V gates, phase 1 of L, the centre copies read every target + containing their centre, the deferred readouts in order, the deferred V gates, the rest of L, the output reads, + L^-1, V^-1; + replayed with arbitrary scratch and data over F2 and over Z (exact integer readout coefficients): every slot is + restored and every target receives its definition sum (over F2 exactly x_T); negative controls must break it. +Usage: python3 check_word.py [h]""" +import sys, os, random, time +from collections import defaultdict +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import deferred as dr + +T0 = time.time() +def log(*a): print('[%5.0fs]' % (time.time() - T0), *a, flush=True) +OK = {} +def report(name, ok): + OK[name] = bool(ok); log('%-100s %s' % (name, 'PASS' if ok else 'FAIL')) + + +def main(h=23): + W, D = dr.load(h); S = dr.Schedule(W, D) + trip, v, R, tid, ops, args = S.trip, S.v, S.R, S.tid, S.ops, S.args + act = sorted(args) + # ------------------------------------------------------------------ A. DAG and schedule semantics + star = [sum(1 << i for i, T in enumerate(trip) if q in T) for q in range(h)] + sup = {}; okA = True + for n in act: + if args[n] is None: okA &= 1 <= n <= v and tuple(W['leaf'][str(n)]) == trip[n - 1]; sup[n] = 1 << (n - 1) + else: + a, b = args[n]; okA &= a < n and b < n and not (sup[a] & sup[b]); sup[n] = sup[a] | sup[b] + outputs = {(c, tuple(T)): n for c, T, n in W['outputs']}; retained = {c: n for c, n in W['retained']} + for (c, T), n in outputs.items(): + A_, B_ = [q for q in T if q != c] + okA &= c in T and sup[n] == star[c] & ~star[A_] & ~star[B_] + okA &= len(outputs) == 3 * v and sorted(retained) == list(range(h)) and all(sup[n] == star[c] for c, n in retained.items()) + report('A. disjoint additions; out(c,T) = {S: S cap T = {c}}; retained(c) = star(c) (%d outputs, %d totals)' % ( + len(outputs), len(retained)), okA) + mL = {x: (y, k) for x, y, k in W['links']} + val = {}; pos = [0] * R; seen = set(); okS = True; started = set() + for op in ops: + if op[0] == 'src': + s, n = op[1], op[2]; okS &= s not in started and args[n] is None and S.hold[s][0] == n + val[s] = n; started.add(s) + elif op[0] == 'fan': + p = op[1]; okS &= p in started + for g in op[2]: + okS &= g not in started and S.hold[g][0] == val[p] and S.start[g][0] == 'fresh' and S.start[g][1] == val[p] + val[g] = val[p]; started.add(g) + else: + _, p, o, n = op; okS &= n not in seen and args[n] is not None and p in started and o in started; seen.add(n) + okS &= (val[p], val[o]) in (args[n], args[n][::-1]) + if n in mL: okS &= mL[n][0] == val[o] # the linked operand stays on the non-pivot + for s_ in (p, o): # both wires pass the gate of n + okS &= pos[s_] + 1 < len(S.hold[s_]) and S.hold[s_][pos[s_] + 1] == n; pos[s_] += 1 + val[p] = n + okS &= seen == {n for n in act if args[n] is not None} and len(started) == R + okS &= all(pos[s] == len(S.hold[s]) - 1 for s in range(R)) + okS &= all(val[s] == outputs[cT] for s, cT in S.out.items()) and all(val[s] == retained[c] for s, c in S.ret.items()) + okS &= sorted(S.out.values()) == sorted(outputs) and sorted(S.ret.values()) == list(range(h)) + okS &= R == len(seen) + len(outputs) + len(retained) - len(mL) + report('A. schedule computes the DAG: %d ops, R = adds + outputs + totals - links = %d, node lists follow the replay' % ( + len(ops), R), okS) + + # ------------------------------------------------------------------ B. coefficients + CZ = S.adjoint(); CF = [{t: 1 for t, x in d.items() if x % 2} for d in CZ] + report('B. garbage coefficients by the transpose sweep: %d nonzero over Z, %d odd' % ( + sum(len(d) for d in CZ), sum(len(d) for d in CF)), all(x > 0 for d in CZ for x in d.values())) + + # ------------------------------------------------------------------ C. phase 1 and the release rule + prev = {}; pred = defaultdict(list); first = {}; last = {} + for i, op in enumerate(ops): + for s in S.touch(op): + if s in prev: pred[i].append(prev[s]) + prev[s] = i; first.setdefault(s, i); last[s] = i + Anc = set(); st = [last[s] for s in S.ret] + while st: + i = st.pop() + if i in Anc: continue + Anc.add(i); st.extend(pred[i]) + sel = S.sel; srcop = S.srcop + srcidx = {o[1]: i for i, o in enumerate(ops) if o[0] == 'src'} + okC = not any(set(S.touch(ops[i])) & sel for i in Anc) + okC &= all(last[s] in Anc for s in S.ret) + okC &= all(s not in first or srcidx[s] < first[s] for s in srcop) + report('C. deferred slots (%d, %d of them V leaves) untouched by phase 1 (%d of %d ops); totals complete in phase 1' % ( + len(sel), len(sel & set(srcop)), len(Anc), len(ops)), okC) + dimv = {s: len(B) for s, B in S.vstart.items()} + late_V = [s for s in S.late_v]; early = set(srcop) - sel + okR = S.readout == sorted(sel, key=lambda s: (S.f[s], s)) and all(S.f[s] > 0 for s in sel) + okR &= set(late_V) == sel & set(srcop) and late_V == sorted(late_V, key=lambda s: (dimv[s], s)) + posl = {s: i for i, s in enumerate(late_V)}; okX = True; leaves = defaultdict(list) + for s, n in srcop.items(): leaves[n].append(s) + okX &= sorted(n for n, _ in S.xs) == sorted(leaves) + for n, us in S.xs: + e = sorted((s for s in leaves[n] if s in early), key=lambda s: (dimv[s], s)) + l = sorted((s for s in leaves[n] if s in sel), key=lambda s: posl[s]) + okX &= us == e + l + report('C. release rule: readouts by dim sigma_u, deferred V gates by dim s_i, X_S = early then deferred V gates', okR and okX) + + # ------------------------------------------------------------------ D. the word + ph1 = [i for i in range(len(ops)) if i in Anc and ops[i][0] != 'src'] + rest = [i for i in range(len(ops)) if i not in Anc and ops[i][0] != 'src'] + early_V = sorted(early, key=lambda s: (srcop[s], dimv[s], s)) + def expected(x): + want = [0] * v + for (c, T), n in outputs.items(): + A_, B_ = [q for q in T if q != c] + want[tid[T]] += sum(x[i] for i, Sx in enumerate(trip) if c in Sx and A_ not in Sx and B_ not in Sx) + for c in range(h): + tot = sum(x[i] for i, Sx in enumerate(trip) if c in Sx) + for t, T in enumerate(trip): + if c in T: want[t] += tot + return want + selist = S.readout + def word(ring, rng, ctl=None): + mod = (lambda z: z & 1) if ring == 2 else (lambda z: z) + co = CF if ring == 2 or ctl == 'f2coef_in_Z' else CZ + x = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a0 = [rng.randrange(-10**6, 10**6) for _ in range(R)]; y0 = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a = list(a0); y = list(y0) + drop = selist[len(selist) // 2] if ctl == 'drop' else None + def readout(s): + for t, c in co[s].items(): + if s == drop and t == min(co[s]): continue + y[t] -= c * a[s] + def runop(i): + op = ops[i] + if op[0] == 'add': a[op[1]] += a[op[2]] + elif op[0] == 'fan': + for g in op[2]: a[g] += a[op[1]] + late_slot = early_slot = None + if ctl == 'late_readout': # one deferred slot reads out right after its first modifying touch + late_slot = next(s for s in selist if ops[first[s]][0] == 'fan' and s in ops[first[s]][2] or + ops[first[s]][0] == 'add' and ops[first[s]][1] == s) + if ctl == 'phase1_slot': # a slot modified in phase 1 treated as deferred + early_slot = next(s for s in range(R) if s not in sel and s not in srcop and any( + (ops[i][0] == 'add' and ops[i][1] == s) or (ops[i][0] == 'fan' and s in ops[i][2]) for i in ph1)) + for s in range(R): + if s not in sel and s != early_slot: readout(s) + for s in early_V: a[s] += x[srcop[s] - 1] + if ctl == 'V_before_readout': a[late_V[0]] += x[srcop[late_V[0]] - 1] + done = [] + for i in ph1: runop(i); done.append(i) + for s, c in S.ret.items(): # centre copies: the totals are complete; read every T with c in T + for t, T in enumerate(trip): + if c in T: y[t] += a[s] + if early_slot is not None: readout(early_slot) + for s in selist: + if s != late_slot: readout(s) + for s in late_V: + if not (ctl == 'V_before_readout' and s == late_V[0]): a[s] += x[srcop[s] - 1] + for i in rest: + runop(i); done.append(i) + if late_slot is not None and i == first[late_slot]: readout(late_slot) + for s, (c, T) in S.out.items(): y[tid[T]] += a[s] + for i in reversed(done): + op = ops[i] + if op[0] == 'add': a[op[1]] -= a[op[2]] + elif op[0] == 'fan': + for g in op[2]: a[g] -= a[op[1]] + for s, n in srcop.items(): a[s] -= x[n - 1] + if any(mod(p - q) for p, q in zip(a, a0)): return False + want = expected(x) + if any(mod(y[t] - y0[t] - want[t]) for t in range(v)): return False + if ring == 2 and any(mod(y[t] - y0[t] - x[t]) for t in range(v)): return False + return True + rng = random.Random(20261009) + report('D. scalar identity over F2 (3 random scratch/data): scratch restored, y_T += x_T and == definition sums', + all(word(2, rng) for _ in range(3))) + report('D. scalar identity over Z, exact integer readout coefficients', word(0, rng)) + for ctl in ('drop', 'late_readout', 'V_before_readout', 'phase1_slot'): + # one F2 trial can miss a fault whose error term is even, so 8 trials (any failure = broken) + report('D. NEG control %-18s breaks the identity (F2, 8 trials; and Z)' % ctl, + not all(word(2, rng, ctl) for _ in range(8)) and not word(0, rng, ctl)) + report('D. NEG control F2 coefficients used over Z break the Z identity', not word(0, rng, 'f2coef_in_Z')) + log('ALL %s' % ('PASS' if all(OK.values()) else 'FAIL: ' + str([k for k, x in OK.items() if not x]))) + return all(OK.values()) + + +if __name__ == '__main__': + sys.exit(0 if main(int(sys.argv[1]) if len(sys.argv) > 1 else 23) else 1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py new file mode 100644 index 0000000000..b77bb4861c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/deferred.py @@ -0,0 +1,188 @@ +"""Shared reader and accounting for the round-seven bit side (stdlib only). + +Frozen inputs (certificates/round7/): + witness_23.json.gz the base side program: DAG (leaves = triples of [h], additions), outputs (c, T), retained + totals, links, the flag matrix, the lift index j(n) of every lifted addition and the late-copy + decisions; checked by check_lifted.py; + deferred_23.json.gz the reordered stage-1 word: the slot schedule (ops, the node held by every slot over time, + slot starts, output and retained slots), the deferred readout frames sigma_u, the V-leaf start + frames s_i (both as primitive integer bases), the readout order, the X_S order of every leaf, + the order of the deferred V gates, and the dimension of every node frame and late-copy + intersection (re-derived exactly by check_frames.py). + +Ops: ['add', piv, oth, n] a[piv] += a[oth], the addition of node n; ['fan', piv, [f...]] a[f] += a[piv] for fresh +slots f (copies); ['src', s, n] the V gate a[s] += x_S of leaf n (applied outside L, see check_word.py).""" +import gzip, json, os +from collections import Counter, defaultdict +from itertools import combinations +from math import comb + +HERE = os.path.dirname(os.path.abspath(__file__)) +ROOT = os.path.normpath(os.path.join(HERE, '..', '..')) +DATA = os.path.join(ROOT, 'certificates', 'round7') + + +def load_json(name): + with gzip.open(os.path.join(DATA, name), 'rt') as fh: + return json.load(fh) + + +def load(h=23, witness=None, data=None): + """the base witness and the design-B data of one round-seven witness (default: the files of h).""" + W = load_json(witness or 'witness_%d.json.gz' % h); D = load_json(data or 'deferred_%d.json.gz' % h) + assert W['h'] == D['h'] == h + return W, D + + +class Schedule: + """The design-B schedule in convenient form.""" + def __init__(self, W, D): + self.h = h = D['h']; self.R = D['R']; self.trip = list(combinations(range(h), 3)); self.v = len(self.trip) + self.tid = {T: i for i, T in enumerate(self.trip)} + self.args = {int(n): (tuple(a) if a else None) for n, a in W['args'].items()} + self.ops = [tuple(o[:2]) + (tuple(o[2]),) if o[0] == 'fan' else tuple(o) for o in D['ops']] + self.hold = D['hold']; self.start = D['start'] + self.out = {s: (c, tuple(T)) for s, c, T in D['out']} + self.ret = {s: c for s, c in D['ret']} + self.srcop = {o[1]: o[2] for o in self.ops if o[0] == 'src'} + self.readout = D['readout_order']; self.sel = set(self.readout) + self.sigma = dict(zip(D['readout_order'], D['sigma'])) + self.f = [0] * self.R + for s, B in self.sigma.items(): self.f[s] = len(B) + self.vstart = dict(zip(D['vleaf_slots'], D['vleaf_start'])) + self.xs = [(n, us) for n, us in D['xs_order']] + self.late_v = D['deferred_v_order'] + self.node_dims = {n: d for n, d in D['node_dims']} + self.late_dims = {(n, tuple(lt)): d for n, lt, d in D['late_dims']} + self.late = {int(n): (list(e), list(l)) for n, (e, l) in W['late'].items()} + self.pivslot = {o[3]: o[1] for o in self.ops if o[0] == 'add'} + + def touch(self, op): + if op[0] == 'add': return [op[1], op[2]] + if op[0] == 'fan': return [op[1]] + list(op[2]) + return [] + + def root_targets(self): + rt = {} + for s, (c, T) in self.out.items(): rt[s] = [self.tid[T]] + for s, c in self.ret.items(): rt[s] = [t for t, T in enumerate(self.trip) if c in T] + return rt + + def adjoint(self): + """garbage coefficients over Z: cov[s][t] = coefficient of slot s's start value in target y_T at the end of L + (the transpose sweep of L applied to the root reads); the F2 circuit uses their parities.""" + cov = [dict() for _ in range(self.R)] + for s, ts in self.root_targets().items(): + for t in ts: cov[s][t] = cov[s].get(t, 0) + 1 + def addto(d, e): + for t, x in e.items(): d[t] = d.get(t, 0) + x + for op in reversed(self.ops): + if op[0] == 'add': addto(cov[op[2]], cov[op[1]]) + elif op[0] == 'fan': + for g in op[2]: addto(cov[op[1]], cov[g]) + return cov + + # ------------------------------------------------------------------ frame keys of every slot's chain + def start_key(self, s): + """('v', s) for a V-leaf slot (start s_i), ('n', n0) for a base or early copy, ('c', n0, late suffix).""" + n0 = self.hold[s][0] + if self.args[n0] is None: return ('v', s) + st = self.start[s]; k = st[2]; dec = self.late.get(n0) + if dec is None or k in dec[0]: return ('n', n0) + lt = dec[1]; return ('c', n0, tuple(lt[lt.index(k):])) + + def chain_keys(self, s): + """frames of slot s in time order: [sigma_u | 0], start, then every later node it holds (with the pivot's + late-copy intersections after a node it pivots), its root frame if any, F.""" + ch = [('sigma', s) if s in self.sel else ('0',), self.start_key(s)] + for idx, n in enumerate(self.hold[s]): + if idx > 0: ch.append(('n', n)) + if self.args[n] is not None and self.pivslot.get(n) == s and n in self.late: + lt = self.late[n][1] + for i in range(len(lt) - 1): ch.append(('c', n, tuple(lt[i:]))) + if s in self.out: c, T = self.out[s]; ch.append(('out', c, T)) + if s in self.ret: ch.append(('ret', self.ret[s])) + ch.append(('F',)); return ch + + def dim(self, key): + k = key[0] + if k == '0': return 0 + if k == 'F': return self.h + if k in ('out', 'ret'): return self.h - 1 + if k == 'n': return self.node_dims[key[1]] + if k == 'c': return self.late_dims[key[1], key[2]] + if k == 'sigma': return len(self.sigma[key[1]]) + if k == 'v': return len(self.vstart[key[1]]) + raise KeyError(key) + + def ylevels(self, cov): + """deferred readout levels (dim sigma) on every target, from the garbage-coefficient supports.""" + lev = defaultdict(set) + for s in self.readout: + for t in cov[s]: lev[t].add(self.f[s]) + return {t: sorted(lev[t]) for t in range(self.v)} + + def xdata(self, dimof=None): + dimof = dimof or (lambda s: len(self.vstart[s])) + out = [] + for n, us in self.xs: + ds = [1] + [dimof(s) for s in us] + [self.h] + ds = [d for i, d in enumerate(ds) if i == 0 or d != ds[i - 1]] + out.append([b - a for a, b in zip(ds, ds[1:])]) + return out + + +def inner(r, h): + """children of a rank-r chain step under the inner-corner lemma (one block of width 2r-h when 2r > h).""" + return [1] * (h - r) + [2 * r - h] if 2 * r > h else [1] * r + + +def chain_ranks(S, dimof=None): + """multiset of chain-step ranks over all slots (dims must be monotone along every chain).""" + dimof = dimof or S.dim; rk = Counter() + for s in range(S.R): + ds = [dimof(k) for k in S.chain_keys(s)] + assert all(b >= a for a, b in zip(ds, ds[1:])), ('decreasing chain', s) + assert ds[-1] == S.h + for a, b in zip(ds, ds[1:]): + if b > a: rk[b - a] += 1 + return rk + + +ROUND6_CORNER = lambda h: [h - 2] + [1] * (h + 1) # data-entrance corner runs, rounds six and seven +STAIRCASE_CORNER = lambda h: [h - 2, h - 5] + [1] * 6 # staircase corner (check_stair.py) + + +def histogram(S, rk, ylev, xdata, corner=None): + """child-width histogram of the batched two-stage bit interchange with deferred readouts and V leaves. + Per stage (stage two is the complement time-reversal of stage one, same edge multiset), each of the v invocations: + every slot u: its auxiliary edge of rank m - r_u (block m - 2 r_u) and its corner of rank r_u = h - dim sigma_u, + both batched by the inner lemma, plus its chain steps; + every centre: the copy's step U_c -> 0 of rank h-1; + every target y_T: the chain 0 -> deferred levels -> t_T^perp (total rank h-1); + every leaf X_S: its chain -> V-gate frames -> F (total rank h-1). + Data: the entrance block m-4h+2 with its corner runs, one copy-correction singleton per pair.""" + h, v, R = S.h, S.v, S.R; m = h * h; N = v * v; A = v * R; H = Counter() + corner = corner or ROUND6_CORNER(h); assert sum(corner) == 2 * h - 1 + corners = Counter(h - S.f[s] for s in range(R)) + for _ in range(2): + for r, c in corners.items(): + H[m - 2 * r] += v * c + for w in inner(r, h): H[w] += v * c + for r, c in rk.items(): + for w in inner(r, h): H[w] += v * c + for _c in range(h): + for w in inner(h - 1, h): H[w] += v + for t in range(v): + ds = sorted(set([0] + ylev[t] + [h - 1])) + for a, b in zip(ds, ds[1:]): + for w in inner(b - a, h): H[w] += v + for xs in xdata: + for x in xs: + for w in inner(x, h): H[w] += v + H[m - 4 * h + 2] += 2 * N + for w in corner: H[w] += 2 * N + H[1] += N + H = {w: c for w, c in H.items() if c} + Wd = 2 * N + 2 * A; L = 2 * v * h * (h - 1); s = Wd * m - N + L + return dict(h=h, m=m, v=v, N=N, W=Wd, L=L, s=s, R=R, hist=H) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py new file mode 100644 index 0000000000..a81cbaa61e --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/deferred-readout/linalg.py @@ -0,0 +1,176 @@ +"""Stdlib exact linear algebra used by the release checks (no numpy). + +Ranks over Q are computed in one of two rigorous ways: + * modulo a prime p with a Hadamard certificate: if every row of an integer matrix has squared norm n_i and + prod_i max(1, n_i) < p^2, every minor has absolute value < p, so a minor is nonzero over Q iff it is nonzero + mod p, and the rank mod p equals the rank over Q (hadamard_ok); + * exactly, by fraction-free (Bareiss) elimination over Z (rank_exact) or Fraction elimination (null_exact). +Everything else is plain arithmetic modulo a prime.""" +from fractions import Fraction +from math import gcd + +Q31 = 2**31 - 1 # prime used for the point evaluation and frame reductions +M127 = 2**127 - 1 # Mersenne prime +M521 = 2**521 - 1 # Mersenne prime + + +def hadamard_ok(rows, p): + """True if prod of max(1, |row|^2) < p^2, i.e. every minor of the integer matrix is below p in absolute value.""" + b = 1; p2 = p * p + for r in rows: + b *= max(1, sum(x * x for x in r)) + if b >= p2: return False + return True + + +class Echelon: + """Row echelon basis mod p, built by insertion. Each stored row has a pivot (first nonzero, normalised to 1) + and zeros in the pivot columns of all earlier rows, so reducing a new row against the rows in order is exact.""" + __slots__ = ('p', 'rows', 'piv') + + def __init__(self, p): + self.p = p; self.rows = []; self.piv = [] + + def reduce(self, r): + p = self.p; r = [x % p for x in r] + for pc, b in zip(self.piv, self.rows): + c = r[pc] + if c: r = [(x - c * y) % p for x, y in zip(r, b)] + return r + + def insert(self, r): + """insert row; returns True if it was independent.""" + r = self.reduce(r) + for i, x in enumerate(r): + if x: + inv = pow(x, self.p - 2, self.p) + self.rows.append([(y * inv) % self.p for y in r]); self.piv.append(i); return True + return False + + def contains(self, r): + return not any(self.reduce(r)) + + def __len__(self): return len(self.rows) + + +def rank_mod(rows, p): + E = Echelon(p) + for r in rows: E.insert(r) + return len(E) + + +def rank_exact(rows): + """exact rank over Q of an integer matrix (Bareiss fraction-free elimination).""" + M = [list(r) for r in rows if any(r)] + if not M: return 0 + n = len(M); k = len(M[0]); r = 0; prev = 1 + for c in range(k): + i = next((i for i in range(r, n) if M[i][c]), None) + if i is None: continue + M[r], M[i] = M[i], M[r] + pr = M[r]; a = pr[c] + for t in range(r + 1, n): + row = M[t]; b = row[c] + M[t] = [(a * x - b * y) // prev for x, y in zip(row, pr)] + prev = a; r += 1 + if r == n: break + return r + + +def null_mod(A, k, p): + """basis of {x in F_p^k : A x = 0} (A: list of rows of length k).""" + rows = [[x % p for x in r] for r in A]; piv = []; R = [] + for r in rows: + for pc, b in zip(piv, R): + c = r[pc] + if c: r = [(x - c * y) % p for x, y in zip(r, b)] + i = next((i for i, x in enumerate(r) if x), None) + if i is None: continue + inv = pow(r[i], p - 2, p); r = [(y * inv) % p for y in r] + R = [[(x - b[i] * y) % p for x, y in zip(b, r)] if b[i] else b for b in R] # keep fully reduced + R.append(r); piv.append(i) + free = [c for c in range(k) if c not in piv]; out = [] + for f in free: + x = [0] * k; x[f] = 1 + for pc, b in zip(piv, R): x[pc] = (-b[f]) % p + out.append(x) + return out + + +def null_exact(A, k): + """basis (integer vectors) of {x in Q^k : A x = 0}, by Fraction reduced row echelon form.""" + R = []; piv = [] + for r0 in A: + r = [Fraction(x) for x in r0] + for pc, b in zip(piv, R): + c = r[pc] + if c: r = [x - c * y for x, y in zip(r, b)] + i = next((i for i, x in enumerate(r) if x), None) + if i is None: continue + inv = 1 / r[i]; r = [y * inv for y in r] + R = [[x - b[i] * y for x, y in zip(b, r)] if b[i] else b for b in R] + R.append(r); piv.append(i) + free = [c for c in range(k) if c not in piv]; out = [] + for f in free: + x = [Fraction(0)] * k; x[f] = Fraction(1) + for pc, b in zip(piv, R): x[pc] = -b[f] + out.append(primitive(x)) + return out + + +def primitive(x): + """scale a rational vector to a primitive integer vector.""" + den = 1 + for v in x: den = den * v.denominator // gcd(den, v.denominator) + y = [int(v * den) for v in x]; g = 0 + for v in y: g = gcd(g, v) + return [v // g for v in y] if g else y + + +def inv_mod_matrix(A, p): + """inverse of a square matrix mod p, or None if singular.""" + n = len(A); M = [[x % p for x in A[i]] + [int(i == j) for j in range(n)] for i in range(n)] + for c in range(n): + i = next((i for i in range(c, n) if M[i][c]), None) + if i is None: return None + M[c], M[i] = M[i], M[c] + inv = pow(M[c][c], p - 2, p); M[c] = [(x * inv) % p for x in M[c]] + rc = M[c] + for t in range(n): + if t != c and M[t][c]: + f = M[t][c]; M[t] = [(x - f * y) % p for x, y in zip(M[t], rc)] + return [r[n:] for r in M] + + +def matmul(A, B, p): + Bt = list(zip(*B)) + return [[sum(x * y for x, y in zip(r, c)) % p for c in Bt] for r in A] + + +def rightmost_pivots(Q, p): + """rows top to bottom: the rightmost nonzero column of the reduced row, then eliminate it below.""" + M = [list(r) for r in Q]; n = len(M); out = [-1] * n + for i in range(n): + row = M[i]; c = next((j for j in range(len(row) - 1, -1, -1) if row[j]), -1) + out[i] = c + if c < 0: continue + inv = pow(row[c], p - 2, p) + for t in range(i + 1, n): + f = M[t][c] + if f: + f = f * inv % p; M[t] = [(x - f * y) % p for x, y in zip(M[t], row)] + return out + + +def predicted(h): + """pivot column per row of the generic north-east rank function f_r of a rank-r idempotent.""" + pr = {} + for r in range(1, h + 1): + s = h - r + f = lambda i, j: 0 if i < 0 or j >= h else min(i + 1, h - j, r, max(0, i - j + 1) + s) + pc = [-1] * h + for i in range(h): + for j in range(h): + if f(i, j) - f(i - 1, j) - f(i, j + 1) + f(i - 1, j + 1) == 1: pc[i] = j + pr[r] = pc + return pr diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/README.md b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/README.md new file mode 100644 index 0000000000..536b9b4060 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/README.md @@ -0,0 +1,10 @@ +# Partial-swap batching checks + +These check the partial-swap factorization lemma (`notes/partial-swap-batching.tex`) and the two-stage +frames at small h. + +```sh +python3 test_factor.py # exact Bruhat profiles of S_p on random, sparse and adversarial idempotents +python3 frames.py # two-stage frames at h = 6, 7, 8: monotonicity, rank sums, selected edges, profiles +python3 moment.py # certified batched saving at h = 32 +``` diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py new file mode 100644 index 0000000000..9908b695e0 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/factor.py @@ -0,0 +1,65 @@ +"""Exact lower-lower Bruhat factorization A = L1 * Mon * L2 (L1, L2 lower triangular, Mon monomial) +by elimination, plus helpers. Rows top-to-bottom; pivot = rightmost nonzero entry of the current row.""" +from fractions import Fraction as Q + +def ident(n): return [[Q(int(i == j)) for j in range(n)] for i in range(n)] +def mul(A, B): + Bt = list(zip(*B)) + return [[sum((a*b for a, b in zip(r, c) if a and b), Q(0)) for c in Bt] for r in A] +def rank(M): + M = [r[:] for r in M]; rk = 0; cols = len(M[0]) if M else 0 + for c in range(cols): + piv = next((i for i in range(rk, len(M)) if M[i][c] != 0), None) + if piv is None: continue + M[rk], M[piv] = M[piv], M[rk] + for i in range(rk+1, len(M)): + if M[i][c] != 0: + f = M[i][c]/M[rk][c]; M[i] = [a-f*b for a, b in zip(M[i], M[rk])] + rk += 1 + return rk +def inv(M): + n = len(M); A = [r[:]+[Q(int(i == j)) for j in range(n)] for i, r in enumerate(M)] + for c in range(n): + p = next(i for i in range(c, n) if A[i][c] != 0); A[c], A[p] = A[p], A[c] + f = A[c][c]; A[c] = [x/f for x in A[c]] + for i in range(n): + if i != c and A[i][c] != 0: + g = A[i][c]; A[i] = [a-g*b for a, b in zip(A[i], A[c])] + return [r[n:] for r in A] + +def bruhat(A, track=True): + """Return (piv, L1, Mon, L2) with A = L1 Mon L2; piv[i] = column of row i's pivot.""" + n = len(A); M = [r[:] for r in A] + L1 = ident(n) if track else None; L2 = ident(n) if track else None + piv = [None]*n + for i in range(n): + c = max((j for j in range(n) if M[i][j] != 0), default=None) + if c is None: raise ValueError('singular') + piv[i] = c; a = M[i][c] + for k in range(i+1, n): # rows below: row_k -= f row_i (left lower op) + if M[k][c] != 0: + f = M[k][c]/a; M[k] = [x-f*y for x, y in zip(M[k], M[i])] + if track: # L1 <- L1 (I + f e_k e_i^T): col_i += f col_k + for r in range(n): + if L1[r][k]: L1[r][i] += f*L1[r][k] + for j in range(c): # cols left: col_j -= g col_c (right lower op) + if M[i][j] != 0: + g = M[i][j]/a + for r in range(n): + if M[r][c]: M[r][j] -= g*M[r][c] + if track: # L2 <- (I + g e_c e_j^T) L2: row_c += g row_j + L2[c] = [x+g*y for x, y in zip(L2[c], L2[j])] + assert sorted(piv) == list(range(n)) + return piv, L1, M, L2 + +def swapmat(p): + m = len(p) + return [[Q(int(i == j))-p[i][j] for j in range(m)]+[p[i][j] for j in range(m)] for i in range(m)] + \ + [[p[i][j] for j in range(m)]+[Q(int(i == j))-p[i][j] for j in range(m)] for i in range(m)] + +def predicted(p_corner_perm, m, k): + """Predicted involution: H_l <-> D_sigma(l) (l in L), H_i <-> D_i (i in M), fixed elsewhere.""" + w = list(range(2*m)) + for l, r in p_corner_perm.items(): w[l] = m+r; w[m+r] = l + for i in range(k, m-k): w[i] = m+i; w[m+i] = i + return w diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py new file mode 100644 index 0000000000..31c8130c59 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/frames.py @@ -0,0 +1,174 @@ +"""Task 2: explicit two-stage bit frames at small h (Gram I-J/9 on F=Q^h, G(x)G on F(x)F). +Builds every role class's label chain per invocation from the notes' schedules, checks monotonicity +(including X_a: U_a -> F), edge ranks, the ranks exceeding m/2, the per-role rank sums against +s_edge = Wm - 2N + 2L, and the batching hypothesis (simultaneous invertible corners after one +conjugation S0; full Bruhat profile of S_p on the selected projectors).""" +import random, sys +from itertools import combinations +from fractions import Fraction as Q +from factor import rank, inv, mul, bruhat, swapmat, predicted + +def kron(A, B): + return [[a*b for a in ra for b in rb] for ra in A for rb in B] +def T(A): return [list(r) for r in zip(*A)] + +class Space: + """Subspace of Q^n given by a list of basis row vectors (reduced).""" + def __init__(self, vecs, n): + self.n = n; M = [list(v) for v in vecs]; B = [] + for v in M: + w = v[:] + for b, c in B: + if w[c]: f = w[c]/b[c]; w = [x-f*y for x, y in zip(w, b)] + c = next((i for i, x in enumerate(w) if x), None) + if c is not None: B.append((w, c)) + self.B = [b for b, _ in B] + @property + def dim(self): return len(self.B) + def __le__(self, o): return Space(o.B+self.B, self.n).dim == o.dim + def __add__(self, o): return Space(self.B+o.B, self.n) + def __eq__(self, o): return self <= o and o <= self + +def tens(U, V): return Space([[a*b for a in u for b in w] for u in U.B for w in V.B], U.n*V.n) + +def perp(U, G, n): + """G-orthogonal complement of U in Q^n.""" + if not U.B: return Space([[Q(int(i == j)) for j in range(n)] for i in range(n)], n) + A = mul(U.B, G) # rows: functionals u^T G + # null space of A + M = [r[:] for r in A]; piv = []; r0 = 0 + for c in range(n): + p = next((i for i in range(r0, len(M)) if M[i][c]), None) + if p is None: continue + M[r0], M[p] = M[p], M[r0]; f = M[r0][c]; M[r0] = [x/f for x in M[r0]] + for i in range(len(M)): + if i != r0 and M[i][c]: g = M[i][c]; M[i] = [x-g*y for x, y in zip(M[i], M[r0])] + piv.append(c); r0 += 1 + free = [c for c in range(n) if c not in piv]; out = [] + for fcol in free: + v = [Q(0)]*n; v[fcol] = Q(1) + for i, c in enumerate(piv): v[c] = -M[i][fcol] + out.append(v) + return Space(out, n) + +def proj(U, G): + """G-orthogonal projector onto nondegenerate U (column convention: p x).""" + n = U.n + if not U.B: return [[Q(0)]*n for _ in range(n)] + Bc = T(U.B) # n x d + Gr = mul(mul(U.B, G), Bc) # d x d Gram + assert rank(Gr) == len(Gr), 'degenerate label' + return mul(mul(Bc, inv(Gr)), mul(U.B, G)) + +def run(h, data_sample, side_sample, seed=1, bruhat_count=None): + rng = random.Random(seed) + m = h*h; trip = list(combinations(range(h), 3)); v = len(trip) + G = [[Q(int(i == j))-Q(1, 9) for j in range(h)] for i in range(h)] + G2 = kron(G, G) + tv = [[Q(int(i in t)) for i in range(h)] for t in trip] + F = Space([[Q(int(i == j)) for j in range(h)] for i in range(h)], h) + zeroF = Space([], h); FF = tens(F, F); zero = Space([], m) + line = [Space([x], h) for x in tv]; lperp = [perp(L, G, h) for L in line] + edges = [] # (role class, from, to) per traced role + def chain(name, labels): + for a, b in zip(labels, labels[1:]): + if a <= b: edges.append((name, b.dim-a.dim, a, b, 'up')) + else: + assert b <= a, (name, 'incomparable labels') + edges.append((name, a.dim-b.dim, a, b, 'down')) + # source spans: common point i, target T containing i, sources S with S cap T = {i} + def rect(T_): + i = rng.choice(T_) + src = [s for s, t in enumerate(trip) if i in t and set(t) & set(trip[T_]) == {i}] if False else \ + [s for s, t in enumerate(trip) if i in t and set(t) & set(T_) == {i}] + S = rng.sample(src, rng.randint(1, min(4, len(src)))) + U = Space([tv[s] for s in S], h) + return S, U + batched = {} + for a2 in range(v): # stage 1, fixed a2 (Q = line a2); D0 = 0, D1 = F (x) t_a2 + Qs = line[a2]; D0 = zero; D1 = tens(F, Qs) + X = {a1: tens(line[a1], Qs) for a1 in range(v)} + Y = {a1: tens(lperp[a1], Qs) for a1 in range(v)} + for _ in range(side_sample): + T_ = trip[rng.randrange(v)]; S, U = rect(T_) + DU = tens(U, Qs); tY = trip.index(T_) + for s in S: + assert line[s] <= U and U <= lperp[tY] + chain('s1 input-only', [zero, D0, X[S[0]], DU, D1, FF]) + chain('s1 output-only', [zero, D0, DU, Y[tY], D1, FF]) + chain('s1 center', [zero, D0, D1, D0, D1, FF]) + batched[('s1 aux', a2)] = (D1, FF) + for a1 in range(v): # stage 2 reverse, fixed a1; D0 = t_a1^perp (x) F, D1 = F (x) F + D0 = tens(lperp[a1], F); D1 = FF; P = line[a1] + X = {a2: D0 + tens(P, line[a2]) for a2 in range(v)} + Y = {a2: D0 + tens(P, lperp[a2]) for a2 in range(v)} + for _ in range(side_sample): + T_ = trip[rng.randrange(v)]; S, U = rect(T_); tY = trip.index(T_) + DU = D0 + tens(P, U) + # reverse: physical X are the rectangle's logical targets; physical roles swap descriptions + chain('s2 input-only', [zero, D0, X[S[0]], DU, D1]) + chain('s2 output-only', [zero, D0, DU, Y[tY], D1]) + chain('s2 center', [zero, D0, D1, D0, D1]) + batched[('s2 aux', a1)] = (zero, D0) + # data roles (sampled pairs a=(a1,a2)): stage-1 forward then stage-2 reverse + pairs = [(rng.randrange(v), rng.randrange(v)) for _ in range(data_sample)] + Xmono = True + for a1, a2 in pairs: + Ua = tens(line[a1], line[a2]); Uap = perp(Ua, G2, m) + s1X = [Ua, tens(line[a1], line[a2]), tens(F, line[a2])] # V at X_t, G/V at D1 + s1Y = [zero, zero, tens(lperp[a1], line[a2])] # J,R at D0=0, J at Y_t + D0 = tens(lperp[a1], F) + s2X = [tens(F, line[a2]), D0 + tens(line[a1], line[a2]), FF] # J at X_t, R/J at D1 + s2Y = [tens(lperp[a1], line[a2]), D0, D0 + tens(line[a1], lperp[a2])] # V,G at D0, V at Y_t + assert s1X[-1] == s2X[0] and s1Y[-1] == s2Y[0], 'interstage boundary mismatch' + assert s2Y[-1] == Uap, 'Y terminal is not U_a^perp' + Xch = s1X+s2X[1:] + Xmono &= all(a <= b for a, b in zip(Xch, Xch[1:])) and Xch[0] == Ua and Xch[-1] == FF + chain('data X', Xch); chain('data Y', s1Y+s2Y[1:]) + batched[('data', a1, a2)] = (tens(F, line[a2]), D0 + tens(line[a1], line[a2])) + # summarize edges + summary = {} + for name, r, a, b, d in edges: + summary.setdefault(name, {}).setdefault((d, r), 0); summary[name][(d, r)] += 1 + per_role = {} + for name, r, a, b, d in edges: per_role.setdefault(name, 0); per_role[name] += r + print('h=%d m=%d v=%d: X_a monotone U_a->F on %d sampled pairs: %s' % (h, m, v, len(pairs), Xmono)) + for name, d in summary.items(): print(' %-16s (direction, rank): count %s' % (name, dict(sorted(d.items())))) + big = sorted({(name, r) for name, r, a, b, dd in edges if r > m//2}) + print(' edges with rank > m/2:', big, ' predicted aux m-h=%d, data m-2h+1=%d' % (m-h, m-2*h+1)) + # batching hypothesis on the selected projectors after ONE conjugation S0 + projs = {} + for key, (U, V) in batched.items(): + p = [[x-y for x, y in zip(r1, r2)] for r1, r2 in zip(proj(V, G2), proj(U, G2))] + assert mul(p, p) == p + projs[key] = p + while True: + Lw = [[Q(rng.randint(-2, 2)) if j < i else Q(int(i == j)) for j in range(m)] for i in range(m)] + Up = [[Q(rng.randint(-2, 2)) if j > i else Q(int(i == j)) for j in range(m)] for i in range(m)] + S0 = mul(Lw, Up); S0i = inv(S0) + conj = {k_: mul(mul(S0, p), S0i) for k_, p in projs.items()} + bad = [] + unconj_bad = 0 + for k_, p in conj.items(): + a = m-rank([[Q(int(i == j))-x for j, x in enumerate(r)] for i, r in enumerate(p)]) + kk = m-a + if rank([r[m-kk:] for r in p[:kk]]) < kk: bad.append(k_) + if rank([r[m-kk:] for r in projs[k_][:kk]]) < kk: unconj_bad += 1 + print(' unconjugated selected projectors with singular corner: %d / %d' % (unconj_bad, len(projs))) + print(' after one unimodular S0: singular corners %d / %d' % (len(bad), len(projs))) + if not bad: break + # full Bruhat profile of S_p on conjugated selected projectors + keys = list(conj) + if bruhat_count is not None: keys = rng.sample(keys, min(bruhat_count, len(keys))) + okc = 0 + for k_ in keys: + p = conj[k_]; Sp = swapmat(p); piv, L1, Mon, L2 = bruhat(Sp) + assert mul(mul(L1, Mon), L2) == Sp + a = sum(1 for i, c in enumerate(piv) if c > i); kk = m-a + cp, *_ = bruhat([r[m-kk:] for r in p[:kk]], track=False) + okc += piv == predicted({l: m-kk+cp[l] for l in range(kk)}, m, kk) + print(' Bruhat profile == k corner swaps + one aligned width-t block on %d / %d selected projectors' % (okc, len(keys))) + return per_role + +if __name__ == '__main__': + h = int(sys.argv[1]); run(h, int(sys.argv[2]), int(sys.argv[3]), bruhat_count=(None if sys.argv[4] == 'all' else int(sys.argv[4]))) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py new file mode 100644 index 0000000000..1d0c379fb8 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/moment.py @@ -0,0 +1,48 @@ +"""Exact batched moment for the two-stage bit network (independent of batched_two_stage.py). +Psi(1-a) = sum_i w_i exp(a log(1/r_i)) <= sum_i w_i/(1 - a l_i), l_i rigorous rational upper bounds.""" +from fractions import Fraction as Q +from math import comb, log + +def log_ub(x, terms=40): + """Rigorous upper bound for log x, x>1 rational: 2*sum z^(2j+1)/(2j+1) + tail, z=(x-1)/(x+1).""" + x = Q(x); k = 0 + while x > 2: x /= 2; k += 1 # extract powers of two + def at(z): + s = sum(2*z**(2*j+1)/(2*j+1) for j in range(terms)) + return s + 2*z**(2*terms+1)/((2*terms+1)*(1-z*z)) + return k*at(Q(1, 3)) + (at((x-1)/(x+1)) if x > 1 else 0) + +def classes(h, R, data): + v, m, c0 = comb(h, 3), h*h, h + N = v*v; W = 2*N+2*v*(R+c0); L = 2*v*h*c0; s = W*m-N+2*L + cl = [(2*v*(R+c0), m-2*h)] # aux: rank m-h -> h corners + block t=m-2h + if data == 'correct': cl.append((2*N, m-4*h+2)) # stage-2 data entrances: rank m-2h+1 -> t=m-4h+2 + if data == 'as-script': cl.append((2*N, m-2*h)) + return dict(m=m, W=W, s=s, cl=cl) + +def bound(c, a): + m, W, s = c['m'], c['W'], c['s'] + single = s-sum(B*t for B, t in c['cl']) + tot = Q(single, W*m)/(1-a*log_ub(m)) + for B, t in c['cl']: tot += Q(B*t, W*m)/(1-a*log_ub(Q(m, t))) + return tot + +def true_root(c): + m, W, s = c['m'], c['W'], c['s']; single = s-sum(B*t for B, t in c['cl']) + f = lambda a: single/(W*m)*m**a + sum(B*t/(W*m)*(m/t)**a for B, t in c['cl']) + lo, hi = 0.0, 1e-3 + for _ in range(200): + mid = (lo+hi)/2; lo, hi = (mid, hi) if f(mid) < 1 else (lo, mid) + return lo + +if __name__ == '__main__': + assert log_ub(1024) > Q(6931471805599453, 10**15) + for data in ('none', 'correct', 'as-script'): + c = classes(32, 123157, data) + claim = Q(22157, 5*10**9) + b = bound(c, claim) + print('data=%-9s claimed a_b=%s: certified bound %.12f <1: %s, gap %.3e; true root a*=%.6e' + % (data, claim, float(b), b < 1, float(1-b), true_root(c))) + n = int(true_root(c)*10**10)+2 + while not bound(c, Q(n, 10**10)) < 1: n -= 1 + print(' largest certified a at 1e-10 grid: %s = %.4e' % (Q(n, 10**10), n/1e10)) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py new file mode 100644 index 0000000000..aa9f0200ad --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/partial-swap/test_factor.py @@ -0,0 +1,102 @@ +"""Task 1: exact checks of the partial-swap batching factorization. +For idempotent p (rank a, m/2D_sigma(l) (sigma = corner's own Bruhat +permutation), H_i<->D_i for i in M=[k, m-k), fixed elsewhere; and S_p = L1 (w D) L2 exactly. +Also implements the batched schedule mod a prime and compares with S_p x.""" +import random, sys +from fractions import Fraction as Q +from factor import bruhat, swapmat, predicted, mul, inv, rank, ident + +def rand_idem(m, a, rng, lo=-3, hi=3, kind='generic'): + while True: + S = [[Q(rng.randint(lo, hi)) for _ in range(m)] for _ in range(m)] + if kind == 'sparse': + S = [[x if rng.random() < .3 or i == j else Q(0) for j, x in enumerate(r)] for i, r in enumerate(S)] + if rank(S) == m: break + D = [[Q(int(i == j and i < a)) for j in range(m)] for i in range(m)] + return mul(mul(S, D), inv(S)) + +def corner(p, k): m = len(p); return [r[m-k:] for r in p[:k]] + +def check(p, sim_prime=None, rng=None): + """Return ('skip'|'ok'|'FAIL', info).""" + m = len(p); a = rank(p); k = m-a + assert mul(p, p) == p + C = corner(p, k) + S = swapmat(p) + piv, L1, Mon, L2 = bruhat(S) + assert mul(mul(L1, Mon), L2) == S, 'factorization identity' + assert all(L1[i][j] == 0 for i in range(2*m) for j in range(i+1, 2*m)) + assert all(L2[i][j] == 0 for i in range(2*m) for j in range(i+1, 2*m)) + nontriv = sum(1 for i, c in enumerate(piv) if c > i) + invol = all(piv[piv[i]] == i for i in range(2*m)) + if rank(C) < k: + return 'singular', dict(nontriv=nontriv, a=a, invol=invol, + aligned_mid=all(piv[i] == m+i for i in range(k, m-k))) + cp, *_ = bruhat(C, track=False) + sigma = {l: m-k+cp[l] for l in range(k)} + ok = piv == predicted(sigma, m, k) + if ok and sim_prime: # run the batched schedule over Z/q (field width b=1) + q = sim_prime + def md(x): + return x.numerator*pow(x.denominator, -1, q) % q + x = [rng.randrange(q) for _ in range(2*m)] + y = [sum(md(L2[i][j])*x[j] for j in range(i+1)) % q for i in range(2*m)] # lower: earlier controls + # monomial: out_i = Mon[i][piv[i]] * y[piv[i]]; done as: scale, k corner swaps, ONE block swap + sc = [0]*(2*m) + for i in range(2*m): sc[piv[i]] = md(Mon[i][piv[i]]) + y = [sc[j]*y[j] % q for j in range(2*m)] # unit diagonal scaling (column side) + for l in range(k): y[l], y[sigma[l]+m] = y[sigma[l]+m], y[l] # k width-b corner swaps + y[k:m-k], y[m+k:2*m-k] = y[m+k:2*m-k], y[k:m-k] # one contiguous width-(t b) interchange + out = [sum(md(L1[i][j])*y[j] for j in range(i+1)) % q for i in range(2*m)] + want = [sum(md(S[i][j])*x[j] for j in range(2*m)) % q for i in range(2*m)] + assert out == want, 'mod-q schedule mismatch' + return ('ok' if ok else 'FAIL'), dict(nontriv=nontriv, a=a) + +def denoms(M): + d = 1 + for r in M: + for x in r: d = d*x.denominator//__import__('math').gcd(d, x.denominator) + return d + +if __name__ == '__main__': + tally = {} + rng = random.Random(2026) + cases = [] + # all (m, a) with m in 3..12 and every a in (m/2, m), including a = floor(m/2)+1 (t = 1 or 2) + for m in range(3, 13): + for a in range(m//2+1, m): + for rep in range(6): cases.append((m, a, 'generic')) + for rep in range(3): cases.append((m, a, 'sparse')) + for m, a, kind in cases: + p = rand_idem(m, a, rng, kind=kind) + st, info = check(p, sim_prime=1000003, rng=rng) + tally[st] = tally.get(st, 0)+1 + if st == 'FAIL': print('FAIL', m, a, kind, info); sys.exit(1) + if st == 'singular': + tally.setdefault('singular_profiles', set()).add((info['nontriv'] == info['a'], info['invol'], info['aligned_mid'])) + print('random idempotents:', {k: v for k, v in tally.items()}) + # adversarial: corner singular by construction + adv = {} + for m in range(4, 11): + for a in range(m//2+1, m): + k = m-a + # p = diag-type: coordinate projector onto first a coords (corner is zero) + p = [[Q(int(i == j and i < a)) for j in range(m)] for i in range(m)] + st, info = check(p); adv.setdefault('coordinate', []).append((m, a, st, info['nontriv'], info['aligned_mid'])) + # projector whose kernel misses the last k coordinates (U_L singular): q = UV with U_L rank-deficient + while True: + U = [[Q(rng.randint(-2, 2)) for _ in range(k)] for _ in range(m)] + U[0] = [Q(0)]*k # first row of U zero -> U_L singular + V = [[Q(rng.randint(-2, 2)) for _ in range(m)] for _ in range(k)] + VU = mul(V, U) + if rank(U) == k and rank(VU) == k: break + + qq = mul(mul(U, inv(VU)), V) + p = [[Q(int(i == j))-qq[i][j] for j in range(m)] for i in range(m)] + st, info = check(p); adv.setdefault('U_L singular', []).append((m, a, st, info['nontriv'], info['aligned_mid'])) + for k_, v in adv.items(): + bad_aligned = [x for x in v if not x[4]] + print('adversarial', k_, ': all singular corners =', all(x[2] == 'singular' for x in v), + '| nontriv==a in', sum(x[3] == x[1] for x in v), '/', len(v), + '| middle NOT aligned in', len(bad_aligned), '/', len(v), 'e.g.', bad_aligned[:2]) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md new file mode 100644 index 0000000000..390bb577fd --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/README.md @@ -0,0 +1,17 @@ +# Independent recount of PR #7's role counts + +This is an independent re-implementation, written from the construction note of +CrocSwap/integer-mult-bounds PR #7. It recounts the bit-producer and complex-producer roles +that our witness assumes. No code from that PR is executed. + +```sh +python3 export.py 26 /tmp/local26.txt # local paired degree-three producer, n = h - 2 +clang++ -O2 -std=c++17 global.cpp -o /tmp/global +/tmp/global 28 /tmp/local26.txt # merging, star resynthesis, rebuild check (~1 GB) +python3 complexside.py 28 # complex producer +python3 local.py 8 10 12 # exact small-h support checks +``` + +Expected values: 11240978 merged additions, 10857762 final additions, 983178 output uses, +11840940 bit roles; and 61022 additions plus 32816 injections, giving 93838 complex roles. +These match PR #7's certificate. diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py new file mode 100644 index 0000000000..5dc785f5a0 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/complexside.py @@ -0,0 +1,59 @@ +"""Complex side: +1/2 * disjoint-triple sum (paired producer) and -1/2 * pair stars, +with pieces split while they cover every point outside the target.""" +import sys +from itertools import combinations +from local import Producer +h=int(sys.argv[1]); full=(1< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; +typedef uint32_t U; typedef uint64_t V; + +struct K7 { array x{}; bool operator==(const K7&o)const{return x==o.x;} }; +struct HK { size_t operator()(const K7&k)const{ V h=1469598103934665603ULL; for(V y:k.x){ y*=0x9E3779B97F4A7C15ULL; y^=y>>29; h=(h^y)*1099511628211ULL; } return h; } }; + +int h, n, ni; +vector> trip; // local triples +int main(int argc,char**argv){ + h=atoi(argv[1]); const char* lf=argv[2]; int absorb = argc>3 ? atoi(argv[3]) : 1; + FILE* f=fopen(lf,"r"); int na; fscanf(f,"%d %d %d",&n,&ni,&na); assert(n==h-2); + trip.resize(ni); for(auto&t:trip) fscanf(f,"%d %d %d",&t[0],&t[1],&t[2]); + vector> ladd(na); int maxid=ni; + for(auto&r:ladd){ fscanf(f,"%d %d %d",&r[0],&r[1],&r[2]); maxid=max(maxid,r[0]); } + vector,int>> lout(ni); for(auto&o:lout) fscanf(f,"%d %d %d %d",&o.first[0],&o.first[1],&o.first[2],&o.second); + int ltotal; fscanf(f,"%d",<otal); fclose(f); + // local supports (as bitsets over ni) and local cores + int W=(ni+63)/64; unordered_map pos; vector> sup; vector lcore; + auto getpos=[&](int id)->int{ auto it=pos.find(id); assert(it!=pos.end()); return it->second; }; + for(int i=0;i s(W,0); s[i/64]|=1ULL<<(i%64); sup.push_back(s); + lcore.push_back((1U< s(W); + for(int w=0;w>(i%64))&1; assert(in==((t&E)==0)); } } + // residual lists per local node with nonempty local core + int L=sup.size(); vector> resid(L); // for core1: pairs of local points (a*32+b); core2: single point + for(int p=ni;p>(i%64))&1){ U t=((1U< fid; vector fmask; fmask.push_back(0); + for(U m=0;m<(1U<> args(v+1,{0,0}); vector core(v+1); for(int i=1;i<=v;i++) core[i]=fmask[i]; + vector starm(v+1,0); // for core-4 nodes, residual point mask + unordered_map m3; unordered_map m4; if(h==28){ m3.reserve(7000000); m4.reserve(4000000);} + vector roots; vector> rootinfo; // (C mask, E mask or 0 for total, id) + long long instances=0; + for(int ca=0;ca ord; + for(int x=0;x>x&1) && !(C>>(x+1)&1)){ ord.push_back(x); ord.push_back(x+1);} + for(int x=0;x>x&1) && (C>>(x^1)&1)) ord.push_back(x); + assert((int)ord.size()==n); + auto mapm=[&](U lm){ U g=0; while(lm){int i=__builtin_ctz(lm); lm&=lm-1; g|=1U< gid(L); + for(int i=0;isecond; else { id=args.size(); m3.emplace(k,id); args.push_back({(U)a,(U)b}); core.push_back(gc); starm.push_back(0);} } + else { assert(nc==4); U rm=0; for(U r:resid[p]) rm|=1U<second; else { id=args.size(); m4.emplace(k,id); args.push_back({(U)a,(U)b}); core.push_back(gc); starm.push_back(rm);} } + gid[p]=id; } + for(auto&o:lout){ U E=mapm((1U< act(N,0); vector st(roots.begin(),roots.end()); long long actadds=0, actin=0; + while(!st.empty()){U x=st.back(); st.pop_back(); if(act[x])continue; act[x]=1; if(args[x][0]){actadds++; assert(args[x][0] starsize; map> demand; vector isdem(N,0); + for(size_t x=v+1;x,vector>> cache; long long oldst=0,newst=0; + map>> starGates; map> starOrd; // gates in canonical coords + for(auto& [B,ms]:starsize){ (void)ms; } + for(auto& kv:demand){ U B=kv.first; vector ord; + for(int x=0;x>x&1)&&!(B>>(x^1)&1)) ord.push_back(x); + for(int x=0;x>x&1)&&(B>>(x^1)&1)) ord.push_back(x); + assert((int)ord.size()==h-4); + vector tg; for(U m:kv.second){ U z=0; for(int j=0;j<(int)ord.size();j++) if(m>>ord[j]&1) z|=1U<> terms; set nodes; for(U m:tg){ set s; for(int j=0;j>j&1){ s.insert(1U<> gates; + while(true){ bool any=false; for(auto&t:terms) if(t.size()>1) any=true; if(!any) break; + map,int> fr; for(auto&t:terms){ vector e(t.begin(),t.end()); for(size_t i=0;i best; bool have=false; int bf=0; + for(auto& [p,c]:fr){ U u=p.first|p.second; if(!have){best=p;bf=c;have=true;continue;} + U bu=best.first|best.second; + auto key=make_tuple(-c,__builtin_popcount(u),u,p.first,p.second); auto bk=make_tuple(-bf,__builtin_popcount(bu),bu,best.first,best.second); + if(key c; U s=0; for(U x:t) if((x&~nd)==0){c.push_back(x); s|=x;} if(c.size()>1 && s==nd){ for(U x:c) t.erase(x); t.insert(nd);} } + } + // independent validity check of the template + set have; for(int j=0;jsecond.size(); + starGates[B]=it->second; starOrd[B]=vector(ord.begin(),ord.end()); } + // stars that are active but have no demanded node would be fully removable + long long undemanded=0; for(auto&[B,c]:starsize) if(!demand.count(B)) undemanded+=c; + long long opt=actadds-oldst-undemanded+newst; + printf("{\"stars_with_demand\":%zu,\"stars_total\":%zu,\"templates\":%zu,\"old_star_additions\":%lld,\"undemanded_star_additions\":%lld,\"new_star_additions\":%lld,\"optimized_additions\":%lld,\"output_uses\":%zu,\"roles\":%lld}\n", + demand.size(),starsize.size(),cache.size(),oldst,undemanded,newst,opt,roots.size(),opt+(long long)roots.size()); + bool full=h<=16; + // Rebuild the final DAG and check every coefficient exactly (small h). + int FW=full?(v+63)/64:0; vector> fs; fs.push_back(vector(FW,0)); + for(int i=1;i<=v;i++){ vector s(FW,0); if(full) s[(i-1)/64]|=1ULL<<((i-1)%64); fs.push_back(s);} + long long finaladds=0; vector remap(N,0); for(int i=1;i<=v;i++) remap[i]=i; + auto addnode=[&](U a,U b){ vector s(FW); for(int w=0;w,U> starnode; // (B, global residual mask) -> final id + for(auto&[B,gates]:starGates){ auto&ord=starOrd[B]; map loc; for(int j=0;j>j&1) gm|=1U<> coef(v+1, vector(v+1,0)); + for(size_t r=0;r>((i-1)%64))&1; bool exp= tot ? ((T&C)==C) : ((T&C)==C && (T&E)==0); assert(in==exp); } + if(tot){ for(int s=1;s<=v;s++) if((fmask[s]&C)==C) for(int i=1;i<=v;i++) if((fs[id][(i-1)/64]>>((i-1)%64))&1) coef[s][i]+=1; } + else { int s=fid.at(C|E); for(int i=1;i<=v;i++) if((fs[id][(i-1)/64]>>((i-1)%64))&1) coef[s][i]-=1; } } + for(int s=1;s<=v;s++) for(int i=1;i<=v;i++){ int c=((coef[s][i]%3)+3)%3; assert(c==(s==i)); } + printf("{\"h\":%d,\"final_dag_rebuilt\":true,\"every_root_support_exact\":true,\"combined_map_identity_mod3\":true,\"final_additions\":%lld}\n",h,finaladds); +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py new file mode 100644 index 0000000000..5e8157d957 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/pr7-role-counts/local.py @@ -0,0 +1,174 @@ +"""Independent re-implementation of the paired degree-three exclusion producer. + +Problem: points P (n of them), inputs x_U for 3-subsets U. For every E subset of +P with |E|<=3 produce D_E = sum of x_U with U disjoint from E, using only +disjoint (cancellation-free) additions. Nodes are interned by exact support. +""" +from itertools import combinations +from collections import defaultdict + + +class DAG: + def __init__(self, nleaves): + self.sup = [0] + [1 << i for i in range(nleaves)] + self.args = [None] * (nleaves + 1) + self.idx = {s: i for i, s in enumerate(self.sup)} + + def add(self, a, b): + if not a: return b + if not b: return a + sa, sb = self.sup[a], self.sup[b] + assert sa & sb == 0 + s = sa | sb + r = self.idx.get(s) + if r is None: + r = len(self.sup); self.idx[s] = r; self.sup.append(s); self.args.append((a, b)) + return r + + def tot(self, xs): + # balanced tree, first half = floor(len/2) + xs = list(xs) + if not xs: return 0 + if len(xs) == 1: return xs[0] + m = len(xs) // 2 + return self.add(self.tot(xs[:m]), self.tot(xs[m:])) + + def loo(self, xs): + """total and leave-one-out sums via prefix/suffix chains.""" + n = len(xs); pre = [0] + for x in xs: pre.append(self.add(pre[-1], x)) + suf = [0] * (n + 1) + for i in range(n - 1, -1, -1): suf[i] = self.add(xs[i], suf[i + 1]) + return pre[n], [self.add(pre[i], suf[i + 1]) for i in range(n)] + + def active(self, roots): + seen = set(); st = list(roots) + while st: + x = st.pop() + if not x or x in seen: continue + seen.add(x) + if self.args[x]: st.extend(self.args[x]) + return seen + + +def pairs_of(pts): + return [pts[i:i + 2] for i in range(0, len(pts), 2)] + + +class Producer: + def __init__(self, n, base=4, order_style='theirs'): + self.n = n; self.base = base + self.inputs = list(combinations(range(n), 3)) + self.d = DAG(len(self.inputs)) + w = {t: i + 1 for i, t in enumerate(self.inputs)} + self.res = self.deg3(list(range(n)), w) + self.outputs = {E: self.res[E] for E in self.inputs} + self.total = self.res[()] + + # degree <= 2 weighted exclusion: monomials are vertex weights (1 pt) and + # edges (2 pts); returns total, exclude-one, exclude-two (pairs). + def deg2(self, pts, edges, wts): + d = self.d + if len(pts) <= 4: + def f(om): + om = set(om) + return d.tot([x for p, x in edges.items() if not (set(p) & om)] + + [x for p, x in wts.items() if p not in om]) + return f(()), {a: f((a,)) for a in pts}, {(a, b): f((a, b)) for a, b in combinations(pts, 2)} + gs = pairs_of(pts); k = len(gs) + E = lambda a, b: edges[(a, b) if a < b else (b, a)] + cedge = {(i, j): d.tot([E(a, b) for a in gs[i] for b in gs[j]]) for i, j in combinations(range(k), 2)} + cw = {i: d.tot([wts[a] for a in g] + [E(a, b) for a, b in combinations(g, 2)]) for i, g in enumerate(gs)} + T, out1, out2 = self.deg2(list(range(k)), cedge, cw) + strip = {}; ssum = {} + for i, g in enumerate(gs): + oth = [j for j in range(k) if j != i] + for a in g: + rest = [u for u in g if u != a] + carry = d.tot([wts[u] for u in rest]) + vals = [d.tot([E(u, v) for u in rest for v in gs[j]]) for j in oth] + s, lo = d.loo([carry] + vals) + ssum[a] = s; strip[a] = dict(zip(oth, lo[1:])) + single = {a: d.add(out1[i], ssum[a]) for i, g in enumerate(gs) for a in g} + pair = {} + for i, g in enumerate(gs): + for a, b in combinations(g, 2): pair[a, b] = out1[i] + for i, j in combinations(range(k), 2): + for a in gs[i]: + left = d.add(out2[i, j], strip[a][j]) + for b in gs[j]: + cross = d.tot([E(u, v) for u in gs[i] if u != a for v in gs[j] if v != b]) + pair[a, b] = d.add(left, d.add(strip[b][i], cross)) + return T, single, pair + + def deg3(self, pts, w): + d = self.d + subs = [s for r in range(4) for s in combinations(pts, r)] + if len(pts) <= self.base: + return {s: d.tot([x for t, x in w.items() if not (set(s) & set(t))]) for s in subs} + gs = pairs_of(pts); k = len(gs) + gof = {u: i for i, g in enumerate(gs) for u in g} + cparts = defaultdict(list) + for t, x in w.items(): cparts[tuple(sorted({gof[u] for u in t}))].append(x) + cw = {G: d.tot(xs) for G, xs in cparts.items()} + RC = self.deg3(list(range(k)), cw) + one = {} + for u in pts: + g = gof[u]; oth = [j for j in range(k) if j != g] + parts = defaultdict(list) + for t, x in w.items(): + if u not in t: continue + rest = [a for a in t if a != u] + if any(gof[a] == g for a in rest): continue + parts[tuple(sorted({gof[a] for a in rest}))].append(x) + c = {G: d.tot(xs) for G, xs in parts.items()} + edges = {G: c.get(G, 0) for G in combinations(oth, 2)} + wts = {j: c.get((j,), 0) for j in oth} + T, s1, s2 = self.deg2(oth, edges, wts) + c0 = c.get((), 0) + one[u] = {(): d.add(c0, T)} + one[u].update({(j,): d.add(c0, x) for j, x in s1.items()}) + one[u].update({G: d.add(c0, x) for G, x in s2.items()}) + two = {} + for u, v in combinations(pts, 2): + i, j = gof[u], gof[v] + if i == j: continue + oth = [q for q in range(k) if q not in (i, j)] + vals = [d.tot([w.get(tuple(sorted((u, v, a))), 0) for a in gs[q]]) for q in oth] + T, lo = d.loo([w.get((u, v), 0)] + vals) + two[u, v] = {(): T}; two[u, v].update({(q,): x for q, x in zip(oth, lo[1:])}) + res = {} + for Ex in subs: + Es = set(Ex); G = tuple(sorted({gof[a] for a in Es})) + surv = [u for i in G for u in gs[i] if u not in Es] + pc = {(): RC[G]} + for u in surv: + pc[(u,)] = one[u][tuple(i for i in G if i != gof[u])] + for u, v in combinations(surv, 2): + pc[(u, v)] = two[u, v][tuple(i for i in G if i not in (gof[u], gof[v]))] + if len(surv) == 3: + a, b, c = surv + pc[(a, b, c)] = w.get((a, b, c), 0) + order = [(), (a,), (b,), (a, b), (c,), (a, c), (b, c), (a, b, c)] + else: + order = [s for r in range(len(surv) + 1) for s in combinations(surv, r)] + res[Ex] = d.tot([pc[s] for s in order]) + return res + + def check(self): + """Every output support equals the exact disjoint family; all adds disjoint.""" + n = self.n + for E, node in self.res.items(): + Es = set(E) + exp = sum(1 << i for i, t in enumerate(self.inputs) if not (Es & set(t))) + assert self.d.sup[node] == exp, E + return True + + +if __name__ == '__main__': + import sys, time + for n in map(int, sys.argv[1:]): + t = time.time(); p = Producer(n); p.check() + act = p.d.active(p.outputs.values()); a1 = sum(1 for x in act if p.d.args[x]) + act2 = p.d.active(list(p.outputs.values()) + [p.total]); a2 = sum(1 for x in act2 if p.d.args[x]) + print(n, 'outputs-only additions', a1, 'with total', a2, 'time %.1f' % (time.time() - t), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py new file mode 100644 index 0000000000..f2c4ece08c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/bruhat8.py @@ -0,0 +1,17 @@ +"""Exact Bruhat profile of S_p for data stage-2 entrance projectors p = Q_a1 (x) Q_a2 at h=8 after one S0.""" +import sys, random +sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) +from fractions import Fraction as Q +from factor import inv, mul, bruhat, swapmat, predicted +import corners as C +h = 8; m = h*h; trip, G, I, P, Qc = C.setup(h); v = len(trip); rng = random.Random(5) +Lw = [[Q(rng.randint(-2, 2)) if j < i else Q(int(i == j)) for j in range(m)] for i in range(m)] +Up = [[Q(rng.randint(-2, 2)) if j > i else Q(int(i == j)) for j in range(m)] for i in range(m)] +S = mul(Lw, Up); Si = inv(S); ok = 0; n = int(sys.argv[1]) +for _ in range(n): + a1, a2 = rng.randrange(v), rng.randrange(v); p = mul(mul(S, C.kron(Qc[a1], Qc[a2])), Si); k = 2*h-1 + piv, L1, Mon, L2 = bruhat(swapmat(p)); assert mul(mul(L1, Mon), L2) == swapmat(p) + cp, *_ = bruhat([r[m-k:] for r in p[:k]], track=False) + good = piv == predicted({l: m-k+cp[l] for l in range(k)}, m, k); ok += good + print('pair', a1, a2, 'profile ok', good, flush=True) +print('h=8 data entrance exact Bruhat profile matches lemma: %d/%d' % (ok, n)) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py new file mode 100644 index 0000000000..9113ef8fe3 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/cert_rt.py @@ -0,0 +1,38 @@ +"""Certify a_b for the retained-total gm producer with copied retained centres (lever A), and the baseline +(direct centres, certificate_round6.copied_histogram) at the same h. +Usage: python3 cert_rt.py h...""" +import sys, os, json +from math import comb +import rtgm +MODE = os.environ.get('MODE', 'search'); MODE = True if MODE == 'local' else MODE +HERE = os.path.dirname(os.path.abspath(__file__)); sys.path[:0] = [os.path.join(HERE, '..', '..', 'scripts'), HERE] +import moment, certificate_round6 as c6 +from certificate_round5 import inner_children + +def rt_histogram(h, R, rk): + v, m = comb(h, 3), h * h; N = v * v; A = v * R; H = {} + add = lambda w, c: H.__setitem__(w, H.get(w, 0) + c) if c else None + assert sum(r * n for r, n in rk.items()) == h * R + for _ in range(2): + add(m - 2 * h, A); add(h, A) # selected aux edge (flag basis): block + corner run + for r, n in rk.items(): + for w in inner_children(r, h): add(w, v * n) # side chains incl. retained slots (to U_c, then F) + for w in inner_children(h - 1, h): add(w, v * h) # copy of each retained total: U_c -> D0, rank h-1 + add(m - 4 * h + 2, 2 * N); add(h - 2, 2 * N); add(1, (h + 1) * 2 * N) + for _ in range(2): + add(h - 2, 2 * N); add(1, 2 * N) + add(1, N) + W = 2 * N + 2 * A; L = 2 * v * h * (h - 1); s = W * m - N + L + assert sum(w * n for w, n in H.items()) == s and W * m > s and max(H) <= m - 1 + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=H) + +if __name__ == '__main__': + res = {} + for h in map(int, sys.argv[1:]): + R, rk, C, G = rtgm.side_ranks(h, MODE) + c = rt_histogram(h, R, rk); a, root = moment.certify(c) + b = c6.copied_histogram(h); ab, rb = moment.certify(b) + print('h=%d retained R=%d a_b=%s (%.6e) | direct R+h=%d a_b=%s (%.6e) | ratio %.4f' % ( + h, R, a, float(a), b['R'] + h, ab, float(ab), float(a / ab)), flush=True) + res[h] = dict(R=R, a=str(a), s=c['s'], W=c['W'], L=c['L'], base=str(ab)) + json.dump(res, open('cert_rt_%s.json' % '_'.join(sys.argv[1:]), 'w'), indent=1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py new file mode 100644 index 0000000000..b5dd1bef63 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/checkgm.py @@ -0,0 +1,34 @@ +"""Independent exact check of a global side DAG (no use of the generator's support table): +recompute every active node's support from the inputs, check disjoint operands, topological order, +a common point on every node, every designated output equal to {S : c in S, S cap (T-c) empty}, +all 3v (centre, target) outputs present. Prints R = active additions + outputs.""" +import sys +from itertools import combinations +import gmside, orders +def check(h, order): + trip,args,outputs=gmside.build(h,order); v=len(trip) + assert len(outputs)==3*v and all(c in T for c,T in outputs) + act=set(); st=list(outputs.values()) + while st: + n=st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + sup={} + for n in sorted(act): + if args[n] is None: + assert 1<=n<=v; sup[n]=1<<(n-1); continue + x,y=args[n]; assert x= 2 and key in lookup: + assert sup[lookup[key]] == s, 'sharing merged different supports' + mp[nd] = lookup[key]; shared += 1; continue + k = len(args); mp[nd] = k; args.append((x, y)); sup.append(s); core.append(co); union.append(un) + if bin(co).count('1') >= 2: lookup[key] = k + for (a, b), nd in loc.outputs.items(): + A, B = others[a], others[b] + want = Mp[c] & ~Mp[A] & ~Mp[B] + assert sup[mp[nd]] == want, 'wrong output' + outputs[c, tuple(sorted((c, A, B)))] = mp[nd] + assert len(outputs) == 3*v + act = set(); st = list(outputs.values()) + while st: + n = st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + # every active addition's operands are built before it (topological) and disjoint (checked above) + assert all(x < n and y < n for n in act if args[n] for x, y in [args[n]]) + adds = sum(args[n] is not None for n in act) + return adds+len(outputs), adds, len(outputs), shared + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + mine = check(h); theirs = sidegen.roles(h) + print(h, mine[0], mine[1], mine[2], 'shared', mine[3], 'sidegen', theirs, 'MATCH' if mine[:3] == theirs else 'DIFF', flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py new file mode 100644 index 0000000000..810144541f --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/corners.py @@ -0,0 +1,108 @@ +"""Independent corner check for the selected partial-swap projectors of the two-stage bit motif. +Closed forms (G = I - J/9, P_a = G-orthogonal projector on t_a, Q_a = I - P_a): + aux s1 exit / s2 entrance : I(x)Q_a , Q_a(x)I rank m-h, k = h + data s2 entrance X and Y : Q_a1 (x) Q_a2 rank m-2h+1, k = 2h-1 +Part 1 (exact, Fractions): the closed forms equal proj(b)-proj(a) of the label chains. +Part 2 (mod prime, rigorous for invertibility): with ONE random unimodular S0, the k x k corner +(S0^-1 p S0)[L,R] is invertible for EVERY aux a and EVERY data pair (a1,a2). det != 0 mod q +implies det != 0 over Q (all denominators divide 6 and det S0 = 1).""" +import sys, random +from fractions import Fraction as Q +from itertools import combinations + +q = 2**61-1 + +def mat_mul(A, B, mod=None): + Bt = list(zip(*B)) + if mod: return [[sum(a*b for a, b in zip(r, c)) % mod for c in Bt] for r in A] + return [[sum(a*b for a, b in zip(r, c)) for c in Bt] for r in A] + +def kron(A, B): return [[a*b for a in ra for b in rb] for ra in A for rb in B] + +def rank_mod(M, mod): + M = [r[:] for r in M]; rk = 0; n = len(M[0]) if M else 0 + for c in range(n): + p = next((i for i in range(rk, len(M)) if M[i][c] % mod), None) + if p is None: continue + M[rk], M[p] = M[p], M[rk]; iv = pow(M[rk][c], mod-2, mod) + M[rk] = [x*iv % mod for x in M[rk]] + for i in range(len(M)): + if i != rk and M[i][c] % mod: + g = M[i][c]; M[i] = [(x-g*y) % mod for x, y in zip(M[i], M[rk])] + rk += 1 + return rk + +def setup(h): + trip = list(combinations(range(h), 3)) + G = [[Q(int(i == j))-Q(1, 9) for j in range(h)] for i in range(h)] + P = [] + for t in trip: + u = [Q(int(i in t)) for i in range(h)] + Gu = [sum(G[i][j]*u[j] for j in range(h)) for i in range(h)] + d = sum(a*b for a, b in zip(u, Gu)); assert d == 2 + P.append([[u[i]*Gu[j]/d for j in range(h)] for i in range(h)]) + I = [[Q(int(i == j)) for j in range(h)] for i in range(h)] + Qc = [[[I[i][j]-p[i][j] for j in range(h)] for i in range(h)] for p in P] + return trip, G, I, P, Qc + +def part1(h, npairs, seed): + sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) + from frames import Space, tens, perp, proj + trip, G, I, P, Qc = setup(h); v = len(trip); G2 = kron(G, G); m = h*h + F = Space(I, h); FF = tens(F, F); zero = Space([], m) + line = [Space([[Q(int(i in t)) for i in range(h)]], h) for t in trip]; lp = [perp(L, G, h) for L in line] + rng = random.Random(seed) + sub = lambda b, a: [[x-y for x, y in zip(r1, r2)] for r1, r2 in zip(proj(b, G2), proj(a, G2))] + for a in rng.sample(range(v), min(v, 6)): + assert sub(FF, tens(F, line[a])) == kron(I, Qc[a]) + assert sub(tens(lp[a], F), zero) == kron(Qc[a], I) + for _ in range(npairs): + a1, a2 = rng.randrange(v), rng.randrange(v); D0 = tens(lp[a1], F); want = kron(Qc[a1], Qc[a2]) + assert sub(D0+tens(line[a1], line[a2]), tens(F, line[a2])) == want # X entrance + assert sub(D0, tens(lp[a1], line[a2])) == want # Y entrance + print('h=%d part1: closed forms exact on %d aux and %d data pairs (X and Y)' % (h, min(v, 6), npairs), flush=True) + +def part2(h, seed, R=2): + trip, G, I, P, Qc = setup(h); v = len(trip); m = h*h; rng = random.Random(seed) + inv6 = pow(6, q-2, q) + red = lambda x: (x.numerator % q) * pow(x.denominator % q, q-2, q) % q + Qm = [[[red(x) for x in r] for r in A] for A in Qc]; Im = [[int(i == j) for j in range(h)] for i in range(h)] + # S0 = Lw Up unimodular; S0^-1 = Up^-1 Lw^-1 computed mod q (exact integer inverse reduces correctly) + Lw = [[rng.randint(-R, R) if j < i else int(i == j) for j in range(m)] for i in range(m)] + Up = [[rng.randint(-R, R) if j > i else int(i == j) for j in range(m)] for i in range(m)] + S = mat_mul(Lw, Up, q) + def tri_inv(T, lower): + n = len(T); X = [[0]*n for _ in range(n)] + for c in range(n): + X[c][c] = 1 + rows = range(c+1, n) if lower else range(c-1, -1, -1) + for i in rows: + js = range(c, i) if lower else range(i+1, c+1) + X[i][c] = -sum(T[i][j]*X[j][c] for j in js) % q + return X + Si = mat_mul(tri_inv(Up, False), tri_inv(Lw, True), q) + assert mat_mul(S, Si, q) == [[int(i == j) for j in range(m)] for i in range(m)] + bad = {} + def corner(p, k): + top = Si[:k] # rows L of S^-1 + right = [r[m-k:] for r in S] # columns R of S + return rank_mod(mat_mul(mat_mul(top, p, q), right, q), q) == k + for a in range(v): + if not corner(kron(Im, Qm[a]), h): bad['aux1'] = bad.get('aux1', 0)+1 + if not corner(kron(Qm[a], Im), h): bad['aux2'] = bad.get('aux2', 0)+1 + # data: corner = Si[L] (Qa1 (x) Qa2) S[:,R]; factor Qa1(x)Qa2 = (Qa1(x)I)(I(x)Qa2) for speed + A1 = [mat_mul(Si[:2*h-1], kron(Qm[a], Im), q) for a in range(v)] + B2 = [mat_mul(kron(Im, Qm[a]), [r[m-2*h+1:] for r in S], q) for a in range(v)] + nd = 0 + for a1 in range(v): + for a2 in range(v): + nd += 1 + if rank_mod(mat_mul(A1[a1], B2[a2], q), q) < 2*h-1: bad['data'] = bad.get('data', 0)+1 + print('h=%d m=%d v=%d part2 (one S0, seed %d): aux checked %d, data pairs checked %d, singular corners %s' + % (h, m, v, seed, 2*v, nd, bad or 0), flush=True) + return not bad + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + if h <= 8: part1(h, 6, h) + part2(h, 100+h) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py new file mode 100644 index 0000000000..a6143f1383 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flag_existence.py @@ -0,0 +1,94 @@ +"""Mod-p evaluation at one random point of the flag-basis family, at h = 46, 47 (m = h^2). +A nonzero value mod p at an integer point proves the corresponding polynomial is not identically zero. +Checks: (1) aux/centre corner diagonal factors, every line; corner strictly-upper zero, sampled lines; +(2) inner-lemma corner A[0,h-1] for both data rank-(h-1) classes, every line; +(3) data entrance corner factors det1 (rows of S) and det2 (columns of S^-1), sampled pairs.""" +import sys, random +from itertools import combinations +p = (1 << 61)-1 +h = int(sys.argv[1]); rng = random.Random(int(sys.argv[2])); m = h*h; CR = 10**6 +iv = lambda x: pow(x % p, p-2, p) +nz = lambda: rng.choice([-1, 1])*rng.randint(1, CR) +def inv(A): + n = len(A); M = [[x % p for x in r]+[int(i == j) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + k = next(i for i in range(c, n) if M[i][c]); M[c], M[k] = M[k], M[c] + f = iv(M[c][c]); M[c] = [x*f % p for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [(a-g*b) % p for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] +def det(A): + M = [[x % p for x in r] for r in A]; n = len(M); d = 1 + for c in range(n): + k = next((i for i in range(c, n) if M[i][c]), None) + if k is None: return 0 + if k != c: M[c], M[k] = M[k], M[c]; d = -d + d = d*M[c][c] % p; f = iv(M[c][c]) + for i in range(c+1, n): + if M[i][c]: g = M[i][c]*f % p; M[i] = [(a-g*b) % p for a, b in zip(M[i], M[c])] + return d % p +mm = lambda A, B: [[sum(a*b for a, b in zip(r, c)) % p for c in zip(*B)] for r in A] +T = lambda A: [list(r) for r in zip(*A)] +mv = lambda A, x: [sum(a*b for a, b in zip(r, x)) % p for r in A] +R = [[[nz() if i <= b and j <= b else 0 for j in range(h)] for i in range(h)] for b in range(h)]; R[h-1][h-1][h-1] = 0 +C = [] +for b in range(h): + Cb = [[nz() if i >= b and j >= b else 0 for j in range(h)] for i in range(h)] + if b < h-1: Cb[b][b] = 0 + for bb in range(b+1, h): + Cb[b][bb] = 0 + s = sum(R[bb][i][j]*Cb[i][j] for i in range(b, bb+1) for j in range(b, bb+1)) % p + Cb[b][bb] = -s*iv(R[bb][b][bb]) % p + C.append(Cb) +for i in range(h): # trace conditions (all i, j), mod p + for j in range(h): assert sum(R[i][x][y]*C[j][x][y] for x in range(h) for y in range(h)) % p == 0 +U = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)]; V = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] +Ui, Vi = inv(U), inv(V) +trip = list(combinations(range(h), 3)); v = len(trip) +inv9, inv2 = iv(9), iv(2) +def tg(t): # t = indicator, g = G t / (t^T G t) with G = I - J/9, t^T G t = 2 + tv = [int(i in t) for i in range(h)]; g = [(x - 3*inv9) * inv2 % p for x in tv]; return tv, g +UT, VT, UiT, ViT = T(U), T(V), T(Ui), T(Vi) +bad = 0 +for t in trip: + tv, g = tg(t) + a, b = mv(VT, tv), mv(Vi, g) # I(x)P: x_beta = R_beta a, y_beta = C_beta b + c, d = mv(UT, tv), mv(Ui, g) # P(x)I: R_beta^T c, C_beta^T d + for be in range(h): + f1 = sum(R[be][be][j]*a[j] for j in range(h)) % p; f2 = sum(C[be][be][j]*b[j] for j in range(h)) % p + f3 = sum(R[be][i][be]*c[i] for i in range(h)) % p; f4 = sum(C[be][i][be]*d[i] for i in range(h)) % p + bad += not (f1 and f2 and f3 and f4) + # inner lemma corners: data s1 uses A = U^T Q U^-T (line of the Q factor), exit A' = V^T Q V^-T + bad += not (c[0]*d[h-1] % p and a[0]*mv(Vi, g)[h-1] % p) +print('h=%d v=%d: lines with a zero diagonal or zero inner corner: %d' % (h, v, bad)) +# explicit corners for sampled lines (lower-triangular check), both orientations +for t in rng.sample(trip, 3): + tv, g = tg(t); a, b, c, d = mv(VT, tv), mv(Vi, g), mv(UT, tv), mv(Ui, g) + X1 = [mv(R[be], a) for be in range(h)]; Y1 = [mv(C[be], b) for be in range(h)] + X2 = [mv(T(R[be]), c) for be in range(h)]; Y2 = [mv(T(C[be]), d) for be in range(h)] + up = sum(1 for i in range(h) for j in range(i+1, h) if sum(x*y for x, y in zip(X1[i], Y1[j])) % p or sum(x*y for x, y in zip(X2[i], Y2[j])) % p) + print(' line %s: nonzero strictly-upper corner entries (both orientations): %d' % (t, up)) +# data entrance factors +vecM = lambda M: [M[x][y] % p for x in range(h) for y in range(h)] +lam = [vecM(mm(mm(U, R[be]), VT)) for be in range(h)] +mu = [vecM(mm(mm(UiT, C[be]), Vi)) for be in range(h)] +dot = lambda x, y: sum(a*b for a, b in zip(x, y)) % p +assert all(dot(l, u) == 0 for l in lam for u in mu) +def proj_out(vs, basis): # random combos of vs projected to annihilate 'basis' vectors + Gr = inv([[dot(x, y) for y in basis] for x in basis]); out = [] + for _ in range(h-1): + f = [rng.randint(-CR, CR) for _ in range(m)]; cf = mv(Gr, [dot(f, y) for y in basis]) + out.append([(fi - sum(cj*y[k] for cj, y in zip(cf, basis))) % p for k, fi in enumerate(f)]) + return out +annmu = proj_out(None, mu) # functionals with f . mu_l = 0 +kerlam = proj_out(None, lam) # vectors with lam_beta . w = 0 +for _ in range(3): + t1, t2 = rng.choice(trip), rng.choice(trip); tv1, g1 = tg(t1); tv2, g2 = tg(t2) + i0 = next(i for i in range(h) if tv1[i]); j0 = next(i for i in range(h) if g1[i]) + E = lambda x, y: [x[i]*y[j] % p for i in range(h) for j in range(h)] + e = lambda k: [int(i == k) for i in range(h)] + Imb = [E(tv1, e(j)) for j in range(h)]+[E(e(i), tv2) for i in range(h) if i != i0] + Rsp = [E(g1, e(j)) for j in range(h)]+[E(e(i), g2) for i in range(h) if i != j0] + d1 = det([[dot(f, x) for x in Imb] for f in lam+annmu]) + d2 = det([[dot(f, x) for x in kerlam+mu] for f in Rsp]) + print(' pair %s %s: det1 %s, det2 %s' % (t1, t2, 'nonzero' if d1 else 'ZERO', 'nonzero' if d2 else 'ZERO')) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py new file mode 100644 index 0000000000..98893c5a20 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/flagbasis.py @@ -0,0 +1,262 @@ +"""Children profiles of every two-stage bit edge class in ONE nested controlled basis S = T (I (x) K). +Coordinates (x, y), y fastest; T acts on the slow factor x by G_y on fibre y. +Basis modes: + struct : G_y row 0 = row (y+1 mod h) of W^-1, G_y^-1 e_{h-1} = column y of W (W generic unimodular) + -> stage-1 corner M[y,y'] = g_y . k_y' is the cyclic shift (the best possible: diag is forced 0) + nested : generic unimodular G_y, K (negative control: stage-1 corners not merged) + tensor : all G_y equal (negative control: stage-1 aux corner singular) + dense : one generic unimodular S0 (negative control: no stage-2 structure) +Pivots of S_p are computed by the rightmost-pivot lower-lower elimination mod q (and exactly over Q at h=6 for +a sample, with factor.bruhat). A child is a maximal run H_i -> D_j, H_{i+1} -> D_{j+1}, ... (contiguous, same +order). 'other' counts Bruhat moves that are not H<->D transpositions (must be 0).""" +import sys, random +sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) +from fractions import Fraction as Q +from itertools import combinations +q = 2**61-1 + +def red(x): return x.numerator % q * pow(x.denominator % q, q-2, q) % q +def mm(A, B): + Bt = list(zip(*B)); return [[sum(a*b for a, b in zip(r, c)) % q for c in Bt] for r in A] +def kron(A, B): return [[a*b % q for a in ra for b in rb] for ra in A for rb in B] +def eye(n): return [[int(i == j) for j in range(n)] for i in range(n)] + +def piv_modq(A): + """Rightmost-pivot lower-lower elimination; returns {row: col} (singular rows have no pivot).""" + M = [r[:] for r in A]; n = len(M); out = {} + for i in range(n): + r = M[i]; c = next((j for j in range(len(r)-1, -1, -1) if r[j]), None) + if c is None: continue + out[i] = c; iv = pow(r[c], q-2, q) + for k in range(i+1, n): + if M[k][c]: + f = M[k][c]*iv % q; M[k] = [(x-f*y) % q for x, y in zip(M[k], r)] + return out + +def swapmat(p): + m = len(p) + return [[(int(i == j)-p[i][j]) % q for j in range(m)]+p[i][:] for i in range(m)] + \ + [p[i][:]+[(int(i == j)-p[i][j]) % q for j in range(m)] for i in range(m)] + +def children(p): + """Children widths of the partial swap S_p from its Bruhat involution (mod q).""" + m = len(p); w = piv_modq(swapmat(p)); assert len(w) == 2*m + other = sum(1 for i, c in w.items() if c != i and (i < m) == (c < m)) + inv_ok = all(w[c] == i for i, c in w.items()) + hd = sorted((i, c) for i, c in w.items() if i < m <= c) + out = []; prev = None + for i, c in hd: + if prev and i == prev[0]+1 and c == prev[1]+1: out[-1] += 1 + else: out.append(1) + prev = (i, c) + return tuple(sorted(out, reverse=True)), other, inv_ok + +RR = 10**6 # generic coefficients: the lemma is a Zariski-open statement, small ranges hit coincidences +def unimod(n, rng, R=None): + R = R or RR + L = [[rng.randint(-R, R) if j < i else int(i == j) for j in range(n)] for i in range(n)] + U = [[rng.randint(-R, R) if j > i else int(i == j) for j in range(n)] for i in range(n)] + return [[sum(L[i][k]*U[k][j] for k in range(n)) for j in range(n)] for i in range(n)] + +def inv_int(A): + """Exact inverse of an integer matrix as Fractions.""" + n = len(A); M = [[Q(x) for x in r]+[Q(int(i == j)) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + p = next(i for i in range(c, n) if M[i][c]); M[c], M[p] = M[p], M[c] + f = M[c][c]; M[c] = [x/f for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [a-g*b for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] + +def basis(h, mode, rng): + """Return S, S^-1 as exact Fraction matrices (m x m).""" + m = h*h + if mode == 'flag': + return flag_basis(h, rng) + if mode == 'dense': + S = unimod(m, rng, 2); Si = inv_int(S); return [[Q(x) for x in r] for r in S], Si + K = unimod(h, rng) + if mode == 'struct': + Wm = unimod(h, rng); Wi = inv_int(Wm); Gs = [] + for y in range(h): + w = [Q(Wm[r][y]) for r in range(h)] # k_y = w_y : G_y w_y = e_{h-1} + rows = [Wi[(y+1) % h]] # g_y = dual of w_{y+1}; g_y . w_y = 0 + j0 = next(j for j in range(h) if w[j]); u = [Q(int(j == j0))/w[j0] for j in range(h)] + for _ in range(h-2): + r = [Q(rng.randint(-RR, RR)) for _ in range(h)]; d = sum(a*b for a, b in zip(r, w)) + rows.append([a-d*b for a, b in zip(r, u)]) + r = [Q(rng.randint(-RR, RR)) for _ in range(h)]; d = sum(a*b for a, b in zip(r, w)) + rows.append([a-d*b+c for a, b, c in zip(r, u, u)]) + Gs.append(rows) + elif mode == 'tensor': + G0 = [[Q(x) for x in r] for r in unimod(h, rng)]; Gs = [G0]*h + else: + Gs = [[[Q(x) for x in r] for r in unimod(h, rng)] for _ in range(h)] + Gi = [inv_int(G) if all(x.denominator == 1 for r in G for x in r) else None for G in Gs] + Gi = [g if g is not None else inv_frac(G) for g, G in zip(Gi, Gs)] + Ki = inv_int(K) + S = [[Q(0)]*m for _ in range(m)]; Si = [[Q(0)]*m for _ in range(m)] + # S = T (I (x) K): S[(x,y),(x',y')] = G_y[x,x'] K[y,y']; S^-1 = (I (x) K^-1) T^-1 + for x in range(h): + for y in range(h): + for x2 in range(h): + g = Gs[y][x][x2]; gi = None + for y2 in range(h): + S[x*h+y][x2*h+y2] = g*K[y][y2] + Si[x*h+y][x2*h+y2] = Ki[y][y2]*Gi[y2][x][x2] + return S, Si + +def flag_basis(h, rng): + """First h rows of S <-> matrices U R_b V^T (R_b supported on [0..b]^2), last h columns of S^-1 <-> + U^-T C_b V^-1 (C_b supported on [b..h-1]^2). For b < b': R_b^T C_b' = 0 and R_b C_b'^T = 0 identically, so + both stage corners are lower triangular. Trace conditions tr(R_i^T C_j) = 0 (all i, j) make S S^-1 = I.""" + m = h*h; rnd = lambda: Q(rng.randint(1, RR)) + R = [] + for b in range(h): + Rb = [[rnd() if i <= b and j <= b else Q(0) for j in range(h)] for i in range(h)] + if b == h-1: Rb[b][b] = Q(0) # i = j trace condition R_b[b][b] C_b[b][b] = 0: + R.append(Rb) # zero R at b = h-1, zero C below (else R_0 = 0) + C = [] + for b in range(h): + Cb = [[rnd() if i >= b and j >= b else Q(0) for j in range(h)] for i in range(h)] + if b < h-1: Cb[b][b] = Q(0) + for bb in range(b+1, h): # tr(R_bb^T C_b) = 0, slack entry (b, bb) + Cb[b][bb] = Q(0) + s = sum(R[bb][i][j]*Cb[i][j] for i in range(b, bb+1) for j in range(b, bb+1)) + Cb[b][bb] = -s/R[bb][b][bb] + C.append(Cb) + U = [[Q(x) for x in r] for r in unimod(h, rng)]; V = [[Q(x) for x in r] for r in unimod(h, rng)] + Ui, Vi = inv_frac(U), inv_frac(V) + mulq = lambda A, B: [[sum(a*b for a, b in zip(r, c)) for c in zip(*B)] for r in A] + Tr = lambda A: [list(x) for x in zip(*A)] + lam = [sum(mulq(mulq(U, Rb), Tr(V)), []) for Rb in R] # row-major vec, index x*h+y + mu = [sum(mulq(mulq(Tr(Ui), Cb), Vi), []) for Cb in C] + assert all(sum(a*b for a, b in zip(l, u)) == 0 for l in lam for u in mu) + # X = [Z | W | mu] with lam Z = I_h, W a complement of span(mu) in ker(lam); S = X^-1 + ker = nullspace(lam, m); cur = [u[:] for u in mu]; W = [] + def rc(): # random kernel vector + cf = [rng.randint(-3, 3) for _ in ker] + return [sum(c*x for c, x in zip(cf, col)) for col in zip(*ker)] + while len(W) < m-2*h: # generic complement (not the sparse nullspace basis) + k = [Q(x) for x in rc()] + if rank_frac(cur+[k]) > len(cur): cur.append(k); W.append(k) + Lt = Tr(lam); Gm = mulq(lam, Lt); Z = Tr(mulq(Lt, inv_frac(Gm))) + Z = [[a+b for a, b in zip(z, rc())] for z in Z] # generic preimages of e_1..e_h + X = Tr(Z+W+mu); S = inv_frac(X) + assert S[:h] == lam + return S, X + +def nullspace(A, n): + M = [r[:] for r in A]; piv = []; r0 = 0 + for c in range(n): + p = next((i for i in range(r0, len(M)) if M[i][c]), None) + if p is None: continue + M[r0], M[p] = M[p], M[r0]; f = M[r0][c]; M[r0] = [x/f for x in M[r0]] + for i in range(len(M)): + if i != r0 and M[i][c]: g = M[i][c]; M[i] = [x-g*y for x, y in zip(M[i], M[r0])] + piv.append(c); r0 += 1 + out = [] + for fc in [c for c in range(n) if c not in piv]: + v = [Q(0)]*n; v[fc] = Q(1) + for i, c in enumerate(piv): v[c] = -M[i][fc] + out.append(v) + return out + +def rank_frac(A): + M = [r[:] for r in A]; rk = 0 + for c in range(len(M[0])): + p = next((i for i in range(rk, len(M)) if M[i][c]), None) + if p is None: continue + M[rk], M[p] = M[p], M[rk] + for i in range(rk+1, len(M)): + if M[i][c]: f = M[i][c]/M[rk][c]; M[i] = [a-f*b for a, b in zip(M[i], M[rk])] + rk += 1 + return rk + +def inv_frac(A): + n = len(A); M = [r[:]+[Q(int(i == j)) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + p = next(i for i in range(c, n) if M[i][c]); M[c], M[p] = M[p], M[c] + f = M[c][c]; M[c] = [x/f for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [a-g*b for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] + +def setup(h): + trip = list(combinations(range(h), 3)) + G = [[Q(int(i == j))-Q(1, 9) for j in range(h)] for i in range(h)] + def projU(vecs): # G-orthogonal projector onto span(vecs) (column convention) + if not vecs: return [[Q(0)]*h for _ in range(h)] + B = [] + for v in vecs: # keep an independent subset + if rank_frac(B+[list(v)]) > len(B): B.append(list(v)) + Bc = list(map(list, zip(*B))) + GB = [[sum(G[i][k]*Bc[k][j] for k in range(h)) for j in range(len(B))] for i in range(h)] + Gr = [[sum(B[a][k]*GB[k][b] for k in range(h)) for b in range(len(B))] for a in range(len(B))] + Gri = inv_frac(Gr) + BtG = [[sum(B[a][k]*G[k][j] for k in range(h)) for j in range(h)] for a in range(len(B))] + X = [[sum(Bc[i][a]*Gri[a][b] for a in range(len(B))) for b in range(len(B))] for i in range(h)] + return [[sum(X[i][b]*BtG[b][j] for b in range(len(B))) for j in range(h)] for i in range(h)] + tv = [[Q(int(i in t)) for i in range(h)] for t in trip] + P = [projU([t]) for t in tv] + I = [[Q(int(i == j)) for j in range(h)] for i in range(h)] + Qc = [[[I[i][j]-p[i][j] for j in range(h)] for i in range(h)] for p in P] + return trip, tv, G, P, Qc, I, projU + +def run(h, mode, seed, npairs, nside, exact_sample=0): + rng = random.Random(seed); m = h*h + trip, tv, G, P, Qc, I, projU = setup(h); v = len(trip) + S, Si = basis(h, mode, rng) + Sm = [[red(x) for x in r] for r in S]; Sim = [[red(x) for x in r] for r in Si] + assert mm(Sm, Sim) == eye(m) + Rm = lambda A: [[red(x) for x in r] for r in A] + Pm = [Rm(p) for p in P]; Qm = [Rm(p) for p in Qc]; Im = eye(h) + def conj(A): return mm(mm(Sm, A), Sim) + res = {} + def rec(name, A, rank): + ch = children(conj(A)); res.setdefault(name, {}); key = (rank,)+ch + res[name][key] = res[name].get(key, 0)+1 + for a in range(v): + rec('s1 aux exit I(x)Q_b', kron(Im, Qm[a]), m-h) + rec('s1 centre I(x)P_b', kron(Im, Pm[a]), h) + rec('s2 aux entr Q_a(x)I', kron(Qm[a], Im), m-h) + rec('s2 centre P_a(x)I', kron(Pm[a], Im), h) + for _ in range(npairs): + a1, a2 = rng.randrange(v), rng.randrange(v) + rec('data s1 Q_a1(x)P_a2', kron(Qm[a1], Pm[a2]), h-1) + rec('data s2 entr Q_a1(x)Q_a2', kron(Qm[a1], Qm[a2]), m-2*h+1) + rec('data s2 exit P_a1(x)Q_a2', kron(Pm[a1], Qm[a2]), h-1) + for _ in range(nside): # side edges: pi = P_V - P_U for nested source spans / target complements + T_ = trip[rng.randrange(v)]; i = rng.choice(T_) + src = [s for s, t in enumerate(trip) if i in t and set(t) & set(T_) == {i}] + Ss = rng.sample(src, rng.randint(1, len(src))) + U = [tv[s] for s in Ss]; PU = projU(U) + PT = P[trip.index(T_)]; PYt = [[I[r][c]-PT[r][c] for c in range(h)] for r in range(h)] + dU = sum(1 for _ in range(1)) # placeholder + b = rng.randrange(v) + for nm, pi in (('U->F', [[I[r][c]-PU[r][c] for c in range(h)] for r in range(h)]), + ('U->Yt', [[PYt[r][c]-PU[r][c] for c in range(h)] for r in range(h)]), + ('0->U', PU)): + pim = Rm(pi); rk = len(piv_modq(pim)) + rec('s1 side %-5s pi(x)P_b' % nm, kron(pim, Pm[b]), rk) + rec('s2 side %-5s P_a(x)pi' % nm, kron(Pm[b], pim), rk) + if exact_sample: # exact Q check of the S_p Bruhat involution on a sample of edges + from factor import bruhat, swapmat as swq, mul + ok = 0; tot = 0 + for a in rng.sample(range(v), exact_sample): + for A in (kronQ(I, Qc[a]), kronQ(I, P[a]), kronQ(Qc[a], I), kronQ(P[a], I)): + pp = mul(mul(S, A), Si); piv, *_ = bruhat(swq(pp), track=False) + wq = piv_modq(swapmat(Rm(pp))); tot += 1; ok += all(piv[i] == wq[i] for i in range(2*m)) + res['_exact Q == mod q Bruhat'] = {(ok, tot): 1} + return res + +def kronQ(A, B): return [[a*b for a in ra for b in rb] for ra in A for rb in B] + +if __name__ == '__main__': + h, mode, seed, npairs, nside = int(sys.argv[1]), sys.argv[2], int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5]) + ex = int(sys.argv[6]) if len(sys.argv) > 6 else 0 + RR = int(sys.argv[7]) if len(sys.argv) > 7 else 10**6 + res = run(h, mode, seed, npairs, nside, ex) + print('h=%d m=%d mode=%s seed=%d key = (rank, child widths..., other-moves, involution-ok): count' % (h, h*h, mode, seed)) + for k in sorted(res): + print(' %-28s' % k, dict(sorted(res[k].items())), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py new file mode 100644 index 0000000000..69862f57d0 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/gmside.py @@ -0,0 +1,33 @@ +"""Global-matching side circuit ("gm"): Paureel's paired exclusion circuit on h-1 points (sidegen.Excl), +lifted to every centre c with the point order of orders.gm, sharing every node whose exact global support +(set of triples) is already built. Emits the global DAG: inputs 1..v (triples), args[k]=(x,y), outputs.""" +import sys +sys.path.insert(0, __import__('os').path.dirname(__import__('os').path.abspath(__file__))) +from itertools import combinations +import sidegen, orders +def build(h, order=orders.gm): + loc=sidegen.Excl(h-1) + trip=list(combinations(range(h),3)); idx={t:i+1 for i,t in enumerate(trip)}; v=len(trip) + sup=[0]+[1<F or stage-2 entrance 0->D0) + centre aux role : ranks sum to m+2h (central return h counted, plus one extra up-edge h), one edge m-h + data role X / Y : U_a -> ... -> F and 0 -> ... -> U_a^perp, ranks h-1, h-1, m-2h+1, sum m-1 + copy correction : one rank-one child per data pair +Batching (partial-swap lemma): an edge of rank r > m/2 becomes (m-r) singletons + one block of width 2r-m. +Condition: (1/W) * sum_children (width/m)^(1-a) < 1.""" +import sys +from fractions import Fraction as Q +from math import comb, log + +def R_of(h): + # side roles per invocation from our generator (additions + outputs) + import os + sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + from sidegen import roles + return roles(h)[0] + +def ln_upper(x): + """Rigorous rational upper bound of ln x for rational x > 1: ln x = k ln2 + ln y, y in (1,2]; + ln y = 2 atanh z, z=(y-1)/(y+1) <= 1/3; partial sum + geometric tail bound.""" + x = Q(x); assert x > 1 + k = 0 + while x > 2: x /= 2; k += 1 + def two_atanh_up(z, n=30): + s = sum(z**(2*j+1)/(2*j+1) for j in range(n)) + tail = z**(2*n+1)/((2*n+1)*(1-z*z)) + return 2*(s+tail) + return k*two_atanh_up(Q(1, 3)) + (two_atanh_up((x-1)/(x+1)) if x > 1 else 0) + +def histogram(h, R, data_batch): + """Exact multiset {width: count} of children, built role by role (not from s).""" + v, m, c0 = comb(h, 3), h*h, h; N = v*v + hist = {} + def add(w, c): hist[w] = hist.get(w, 0)+c + def edge(r, cnt, batch): + if batch and 2*r > m: add(1, (m-r)*cnt); add(2*r-m, cnt) + else: add(1, r*cnt) + A = v*(R+c0) # aux roles per stage (v invocations, R side + c0 centre each) + for _stage in range(2): + edge(m-h, A, True) # the selected aux edge + edge(h, v*R, False) # rest of each side role: m-(m-h) + edge(3*h, v*c0, False) # rest of each centre role: m+2h-(m-h) + # data: two roles per pair; stage-2 entrance m-2h+1 plus two edges of h-1 + edge(m-2*h+1, 2*N, data_batch); edge(2*(h-1), 2*N, False) + add(1, N) # copy correction + W = 2*N+2*A; L = 2*v*h*c0 + s = sum(w*c for w, c in hist.items()) + assert s == W*m-N+2*L, 'rank sum mismatch' + assert W*m-s == v*(v-4*h*c0) + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=hist) + +def F_upper(c, a, lu): + m, W = c['m'], c['W']; tot = Q(0) + for w, cnt in c['hist'].items(): + # (w/m)^(1-a) = (w/m) * (m/w)^a <= (w/m) / (1 - a ln(m/w)) + l = lu[w]; assert a*l < 1 + tot += Q(cnt*w, m)/(1-a*l) + return tot/W + +def F_float(c, a): + m, W = c['m'], c['W'] + return sum(cnt*(w/m)**(1-a) for w, cnt in c['hist'].items())/W + +def certify(c, den=10**9): + lo, hi = 0.0, 0.05 + for _ in range(200): + mid = (lo+hi)/2 + lo, hi = (mid, hi) if F_float(c, mid) < 1 else (lo, mid) + lu = {w: ln_upper(Q(c['m'], w)) for w in c['hist']} + n = int(lo*den)+1 + while not F_upper(c, Q(n, den), lu) < 1: n -= 1 + assert F_upper(c, Q(n, den), lu) < 1 + return Q(n, den), lo + +if __name__ == '__main__': + assert ln_upper(1024) > Q(6931471805599453, 10**15) and ln_upper(1024) < Q(6931471805599454, 10**15) + for arg in sys.argv[1:]: + h, db = arg.split(':'); h = int(h); db = db == '1' + c = histogram(h, R_of(h), db); a, root = certify(c) + print('h=%d data_batch=%d v=%d m=%d R=%d N=%d W=%d L=%d s=%d a_b=%s (=%.6e) root %.6e hist=%s' + % (h, db, c['v'], c['m'], c['R'], c['N'], c['W'], c['L'], c['s'], a, float(a), root, + sorted(c['hist'].items())), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py new file mode 100644 index 0000000000..86df1026f3 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/orders.py @@ -0,0 +1,42 @@ +def natural(h,c): return [j for j in range(h) if j!=c] +def gmatch_end(h,c): + # global pairs (0,1),(2,3)..; h odd -> last point z=h-1 singleton. centre's partner moved next to z at end + z=h-1 + if c==z: return list(range(h-1)) + cs=c^1 + return [j for j in range(h-1) if j not in (c,cs)]+[z,cs] +def gmatch_front(h,c): + z=h-1 + if c==z: return list(range(h-1)) + cs=c^1 + return [z,cs]+[j for j in range(h-1) if j not in (c,cs)] +def gmatch_mid(h,c): + z=h-1 + if c==z: return list(range(h-1)) + cs=c^1; r=[j for j in range(h-1) if j not in (c,cs)]; m=(len(r)//4)*2 + return r[:m]+[z,cs]+r[m:] +def rot(h,c): return [(c+k)%h for k in range(1,h)] +def gm(h,c): + # global matching (0,1),(2,3),...; odd h: z=h-1 joins the centre's partner at the end; even h: partner alone at end + if h%2: + z=h-1 + if c==z: return list(range(h-1)) + cs=c^1; return [j for j in range(h-1) if j not in (c,cs)]+[z,cs] + cs=c^1; return [j for j in range(h) if j not in (c,cs)]+[cs] +def gmf(h,c): + if h%2: + z=h-1 + if c==z: return list(range(h-1)) + cs=c^1; return [z,cs]+[j for j in range(h-1) if j not in (c,cs)] + cs=c^1; return [cs]+[j for j in range(h) if j not in (c,cs)] +def gmm(h,c): + r=gm(h,c); + if h%2 and c==h-1: return r + k=2 if h%2 else 1; sp=r[-k:]; r=r[:-k]; m=(len(r)//4)*2 + return r[:m]+sp+r[m:] +def gmrev(h,c): + # global matching but pairs listed in reverse order (tests order dependence) + r=gm(h,c); k=2 if h%2 else 1 + if h%2 and c==h-1: return r[::-1] + body=r[:-k]; pairs=[body[i:i+2] for i in range(0,len(body),2)][::-1] + return [x for p in pairs for x in p]+r[-k:] diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py new file mode 100644 index 0000000000..c82f44c84a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/rtgm.py @@ -0,0 +1,159 @@ +"""Retained-total gm producer for the two-stage bit motif (lever A). + +The gm side circuit (gmside / side_chains) with the h direct centre wires replaced by retained point totals +P_c = sum{x_S : c in S}: per centre c, the local pair-exclusion block's grand total (sum of all pairs on the h-1 +other points) is lifted like every other node, with exact-support sharing, and given one designated terminal +use ("retained output"). Roles = additions + side outputs + retained uses (compile_ as side_chains, the retained +use is an output user ordered after the side outputs). + +Chains: a side output slot ends 0 < ... < t_T^perp (h-1) < F; a retained slot ends at span(P_c) = U_c +(dim h-1, Gram nondegenerate) and then F (rank 1); its copy (PR #36 copied centre) pays U_c -> D0 (rank h-1). +Usage: python3 rtgm.py h... (prints R, additions, retained extra additions, chain summary)""" +import sys, os +HERE = os.path.dirname(os.path.abspath(__file__)); K = os.path.join(HERE, '..', '..') +sys.path[:0] = [os.path.join(K, 'scripts'), HERE] +sys.setrecursionlimit(100000) +from itertools import combinations +from collections import Counter +import sidegen, orders, side_chains + + +def build(h, order=orders.gm, exact=False, retain=True): + loc = sidegen.Excl(h - 1) + tot = loc.pairblock(list(range(h - 1)))[0] # same node ids (add() dedups by support) + assert loc.support[tot] == (1 << len(loc.inputs)) - 1 + need = set(loc.active) + if retain is True: + st = [tot] + while st: + x = st.pop() + if not x or x in need: continue + need.add(x) + if loc.args[x]: st.extend(loc.args[x]) + dl = {nd: side_chains.graph_rank([p for i, p in enumerate(loc.inputs) if loc.support[nd] >> i & 1]) for nd in need} + trip = list(combinations(range(h), 3)); v = len(trip); var = {t: i + 1 for i, t in enumerate(trip)} + args = [None] * (v + 1); dn = [0] + [1] * v + sup = [0] + [1 << i for i in range(v)]; look = {}; outputs = {}; retained = {} + for c in range(h): + pts = order(h, c); mp = {} + for nd in sorted(need): + if loc.args[nd] is None: + a, b = loc.inputs[nd - 1]; mp[nd] = var[tuple(sorted((c, pts[a], pts[b])))]; continue + a, b = (mp[x] for x in loc.args[nd]) + assert not sup[a] & sup[b] + s = sup[a] | sup[b]; k = look.get(s) + if k is None: + k = len(sup); sup.append(s); args.append((a, b)); dn.append(dl[nd]); look[s] = k + else: + assert dn[k] == dl[nd] + mp[nd] = k + for (x, y), nd in loc.outputs.items(): + outputs[c, tuple(sorted((c, pts[x], pts[y])))] = mp[nd] + if retain is True: retained[c] = mp[tot] + if retain == 'search': # cheapest totals: star(c) = (x + y) + z over active gm nodes + retained = search_totals(h, trip, args, dn, sup, outputs) + roots = list(outputs.values()) + list(retained.values()) + act = set(); st = list(roots) + while st: + n = st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + return dict(h=h, trip=trip, args=args, dn=dn, outputs=outputs, retained=retained, active=act, sup=sup) + + +def search_totals(h, trip, args, dn, sup, outputs): + """For every centre, star(c) as a disjoint union of the fewest active gm nodes (1 or 2 new additions, + largest node first); appends the new nodes to args/dn/sup and returns {c: node}.""" + act = set(); st = list(outputs.values()) + while st: + n = st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + bysup = {sup[n]: n for n in act}; pc = lambda s: bin(s).count('1'); out = {} + def new(a, b, c): + assert not sup[a] & sup[b] + s = sup[a] | sup[b] + if s in bysup: return bysup[s] + pairs = [tuple(q for q in trip[i] if q != c) for i in range(len(trip)) if s >> i & 1] + k = len(sup); sup.append(s); args.append((a, b)); dn.append(side_chains.graph_rank(pairs)); bysup[s] = k + return k + for c in range(h): + star = sum(1 << i for i, t in enumerate(trip) if c in t) + subs = sorted([n for n in act if sup[n] & ~star == 0], key=lambda n: (-pc(sup[n]), n)) + best = None + for x in subs: + if star ^ sup[x] in bysup: best = (x, bysup[star ^ sup[x]]); break + if best is None: + for i, x in enumerate(subs): + rem = star ^ sup[x] + if pc(rem) > 2 * pc(sup[x]): break + for y in subs[i:]: + if sup[y] & ~rem == 0 and (rem ^ sup[y]) in bysup: best = (x, y, bysup[rem ^ sup[y]]); break + if best: break + if best is None: # greedy exact cover, largest active node first + rem = star; best = [] + while rem: + x = next(n for n in subs if sup[n] & ~rem == 0); best.append(x); rem ^= sup[x] + acc = best[0] + for x in best[1:]: acc = new(acc, x, c) + out[c] = acc + assert sup[out[c]] == star and dn[out[c]] == h - 1 + return out + + +def compile_(G): + """side_chains.compile_ with retained uses as extra output users (after the side outputs).""" + args, act, outputs, retained = G['args'], G['active'], G['outputs'], G['retained'] + users = {x: [] for x in act} + for n in sorted(act): + if args[n]: + for pos, x in enumerate(args[n]): users[x].append(('gate', n, pos)) + for tgt, n in sorted(outputs.items()): users[n].append(('output', tgt)) + for c, n in sorted(retained.items()): users[n].append(('retained', c)) + edge = {}; out = {}; ret = {}; size = 0; hold = [] + for n in sorted(act): + if args[n]: + pivot = edge[n, 0]; ins = (edge[n, 0], edge[n, 1]) + else: + pivot = size; size += 1; ins = (pivot,); hold.append([]) + outs = (pivot,) + tuple(range(size, size + len(users[n]) - 1)) + for _ in range(len(users[n]) - 1): hold.append([]) + size += len(users[n]) - 1 + for s in set(ins + outs): hold[s].append(n) + for u, s in zip(users[n], outs): + if u[0] == 'gate': edge[u[1], u[2]] = s + elif u[0] == 'output': out[s] = u[1] + else: ret[s] = u[1] + adds = sum(1 for n in act if args[n]) + assert size == adds + len(outputs) + len(retained) + return dict(roles=size, hold=hold, out=out, ret=ret, adds=adds) + + +def chain_dims(G, C, s): + h = G['h']; dn = G['dn']; d = [0] + for n in C['hold'][s]: + if dn[n] != d[-1]: d.append(dn[n]) + if s in C['out']: d.append(h - 1) + if s in C['ret']: assert d[-1] == h - 1, (s, d) + d.append(h) + assert all(a < b for a, b in zip(d, d[1:])), (s, d) + return d + + +def side_ranks(h, retain='search'): + G = build(h, retain=retain); C = compile_(G); rk = Counter() + for s in range(C['roles']): + d = chain_dims(G, C, s) + for a, b in zip(d, d[1:]): rk[b - a] += 1 + return C['roles'], rk, C, G + + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + R0, rk0, C0, _ = side_ranks(h, False) + for mode in (True, 'search'): + R1, rk1, C1, G1 = side_ranks(h, mode) + print('h=%d %s gm R=%d adds=%d | retained R=%d adds=%d (+%d adds, +%d roles; old R+h=%d)' % ( + h, mode, R0, C0['adds'], R1, C1['adds'], C1['adds'] - C0['adds'], R1 - R0, R0 + h), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py new file mode 100644 index 0000000000..d08377f94e --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/side_chains.py @@ -0,0 +1,138 @@ +"""Exact side-role frame chains of the two-stage bit motif, from the real compiled side program. + +Producer: Paureel's paired exclusion circuit on h-1 points (sidegen.Excl), lifted to every centre c with a +point order (orders.natural = sidegen, orders.gm = global matching), sharing a node iff |core|>=2 and its +(core, union) key exists. (For |core|>=2 the support is {T : core in T, T - core in union - core}, so this is +exact-support sharing; gmside.build's exact-support rule gives the same DAG.) + +Compiler: Paureel's ExclusionCircuit.compile (scripts/exclusion_circuit.py @ c82d09e), re-implemented: +every active node has a gate (ins, outs); pivot = slot of operand 0 (a leaf allocates a fresh source slot); +outs = pivot + one fresh slot per further user; users are gates in node order (operand position) then outputs +in sorted (centre, target) order; outs[k] goes to users[k]. Roles = additions + outputs. + +Frames (two-stage-construction.tex + shared_point_circuit.verify_frames): a gate at node n uses the source-span +frame span(n) = span{t_S : S in supp n} on every slot it touches (forward invocation); a source slot is copied +at = span(leaf); an output slot is injected at its target-line complement t_T^perp; early mixers at +D0 (= 0 in stage 1), cleanup at D1 (= F). Reverse invocation (stage 2): orthogonal complements in reverse order; +the edge idempotents P_{U2}-P_{U1} are literally the same set (complement chain of a G-orthogonal flag). +So per slot, factor-space chain: 0 < [] <= span(n_0) <= ... <= span(n_k) < [t_T^perp] < F, tensored with +P_b (stage 1, second factor fixed triple b) or P_b (x) . (stage 2).""" +import sys, os +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +sys.setrecursionlimit(100000) +from itertools import combinations +import sidegen, orders + + +def graph_rank(pairs): + adj = {} + for a, b in pairs: adj.setdefault(a, []).append(b); adj.setdefault(b, []).append(a) + col = {}; bip = 0 + for s in adj: + if s in col: continue + col[s] = 0; st = [s]; ok = True + while st: + u = st.pop() + for w in adj[u]: + if w not in col: col[w] = 1-col[u]; st.append(w) + elif col[w] == col[u]: ok = False + bip += ok + return len(adj)-bip + +ORDERS = {'nat': orders.natural, 'gm': orders.gm} + +def build(h, order, exact=False): + loc = sidegen.Excl(h-1) + dl = {nd: graph_rank([p for i, p in enumerate(loc.inputs) if loc.support[nd] >> i & 1]) for nd in loc.active} + trip = list(combinations(range(h), 3)); v = len(trip); var = {t: i+1 for i, t in enumerate(trip)} + args = [None]*(v+1); core = [0]+[sum(1 << i for i in t) for t in trip]; union = list(core); dn = [0]+[1]*v + sup = [0]+[1 << i for i in range(v)] if exact else None + lookup = {}; outputs = {} + for c in range(h): + pts = order(h, c); mp = {} + for nd in sorted(loc.active): + if loc.args[nd] is None: + a, b = loc.inputs[nd-1]; mp[nd] = var[tuple(sorted((c, pts[a], pts[b])))]; continue + a, b = (mp[x] for x in loc.args[nd]) + co = core[a] & core[b]; un = union[a] | union[b]; key = (co, un) + assert co >> c & 1 + if bin(co).count('1') >= 2 and key in lookup: + k = lookup[key]; assert dn[k] == dl[nd]; mp[nd] = k + if exact: assert sup[k] == sup[a] | sup[b] + continue + k = len(args); mp[nd] = k; args.append((a, b)); core.append(co); union.append(un); dn.append(dl[nd]) + if exact: assert not sup[a] & sup[b]; sup.append(sup[a] | sup[b]) + if bin(co).count('1') >= 2: lookup[key] = k + for (x, y), nd in loc.outputs.items(): + outputs[c, tuple(sorted((c, pts[x], pts[y])))] = mp[nd] + act = set(); st = list(outputs.values()) + while st: + n = st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + return dict(h=h, trip=trip, args=args, dn=dn, outputs=outputs, active=act, sup=sup) + +def compile_(G): + args, act, outputs = G['args'], G['active'], G['outputs'] + users = {x: [] for x in act} + for n in sorted(act): + if args[n]: + for pos, x in enumerate(args[n]): users[x].append(('gate', n, pos)) + for tgt, n in sorted(outputs.items()): users[n].append(('output', tgt)) + edge = {}; src = {}; out = {}; size = 0; hold = [] # hold[slot] = nodes whose gate touched the slot + for n in sorted(act): + if args[n]: + ins = (edge[n, 0], edge[n, 1]); pivot = ins[0] + else: + pivot = size; size += 1; ins = (pivot,); src[pivot] = n; hold.append([]) + outs = (pivot,)+tuple(range(size, size+len(users[n])-1)) + for _ in range(len(users[n])-1): hold.append([]) + size += len(users[n])-1 + for s in set(ins+outs): hold[s].append(n) + for u, s in zip(users[n], outs): + if u[0] == 'gate': edge[u[1], u[2]] = s + else: out[s] = u[1] + adds = sum(1 for n in act if args[n]) + assert size == adds+len(outputs) + return dict(roles=size, hold=hold, src=src, out=out, adds=adds) + +def chain_dims(G, C, s): + """Factor-space dimension chain of slot s (stage-1 forward order), from 0 to h.""" + h = G['h']; dn = G['dn']; d = [0] + for n in C['hold'][s]: + if dn[n] != d[-1]: d.append(dn[n]) + if s in C['out']: d.append(h-1) + d.append(h) + assert all(a < b for a, b in zip(d, d[1:])), (s, d) + return d + +def chain_type(G, C, s): + """(source?, output?, number of nodes held, retired-by-operand-1?)""" + hold = C['hold'][s]; args = G['args'] + last = hold[-1] + retire = s not in C['out'] and len(hold) >= 1 and args[last] is not None and False + return ('src' if s in C['src'] else 'fresh', 'out' if s in C['out'] else 'retire', len(hold)) + +def inner(r, h): + """Inner lemma prediction for a rank-r edge pi (x) P_b: children widths.""" + if 2*r > h: return [1]*(h-r)+([2*r-h] if 2*r > h else []) + return [1]*r + +if __name__ == '__main__': + from collections import Counter + prod = sys.argv[1] + for h in map(int, sys.argv[2:]): + G = build(h, ORDERS[prod]); C = compile_(G) + ranks = Counter(); types = Counter(); prof = Counter(); seqs = Counter() + for s in range(C['roles']): + d = chain_dims(G, C, s); rr = tuple(b-a for a, b in zip(d, d[1:])) + seqs[rr] += 1; types[chain_type(G, C, s)[:2]] += 1 + for r in rr: + ranks[r] += 1 + for w in inner(r, h): prof[w] += 1 + sing = prof[1] + print('%s h=%d R=%d adds=%d outputs=%d slot types %s singletons/slot %.3f blocks %s' % ( + prod, h, C['roles'], C['adds'], len(G['outputs']), dict(types), sing/C['roles'], + sorted((w, c) for w, c in prof.items() if w > 1)), flush=True) + print(' top rank sequences', seqs.most_common(12), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py new file mode 100644 index 0000000000..7ab495d87c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/independent/two-stage-bit/sidegen.py @@ -0,0 +1,104 @@ +"""Our own paired-bit side generator (re-implemented from the two-stage notes' description: +paired exclusion circuit on h-1 points + cross-common-point sharing). Roles R = additions + outputs. +Self-checks: disjoint supports for every addition, exact pair-exclusion outputs.""" +import sys +from itertools import combinations +sys.setrecursionlimit(10000) + +class Excl: + def __init__(self, n): + self.n = n; self.inputs = list(combinations(range(n), 2)) + self.support = [0]+[1 << i for i in range(len(self.inputs))] + self.args = [None]*len(self.support) + self.lookup = {s: i for i, s in enumerate(self.support)} + self.var = {p: i+1 for i, p in enumerate(self.inputs)} + _, _, self.outputs = self.pairblock(list(range(n))) + self.active = set(); st = list(self.outputs.values()) + while st: + x = st.pop() + if not x or x in self.active: continue + self.active.add(x) + if self.args[x]: st.extend(self.args[x]) + def add(self, a, b): + if not a: return b + if not b: return a + assert not self.support[a] & self.support[b] + s = self.support[a] | self.support[b] + if s in self.lookup: return self.lookup[s] + k = len(self.support); self.lookup[s] = k; self.support.append(s); self.args.append((a, b)); return k + def total(self, vals): + if not vals: return 0 + if len(vals) == 1: return vals[0] + h = len(vals)//2; return self.add(self.total(vals[:h]), self.total(vals[h:])) + def loo(self, vals): # total and leave-one-out via prefix/suffix + n = len(vals); pre = [0] + for x in vals: pre.append(self.add(pre[-1], x)) + suf = [0]*(n+1) + for i in range(n-1, -1, -1): suf[i] = self.add(vals[i], suf[i+1]) + return pre[-1], [self.add(pre[i], suf[i+1]) for i in range(n)] + def pairblock(self, pts): + return self.block(pts, {(a, b): self.var[a, b] for a, b in combinations(pts, 2)}, {a: 0 for a in pts}) + def block(self, pts, edges, wts): + if len(pts) <= 4: + tot = lambda om: self.total([x for p, x in edges.items() if not set(p) & set(om)]+[x for p, x in wts.items() if p not in om]) + return tot(()), {a: tot((a,)) for a in pts}, {(a, b): tot((a, b)) for a, b in combinations(pts, 2)} + gr = [pts[i:i+2] for i in range(0, len(pts), 2)]; ng = len(gr) + e = lambda a, b: edges[tuple(sorted((a, b)))] + coarse = {(i, j): self.total([e(a, b) for a in gr[i] for b in gr[j]]) for i, j in combinations(range(ng), 2)} + wt = {i: self.total([wts[a] for a in g]+[e(a, b) for a, b in combinations(g, 2)]) for i, g in enumerate(gr)} + total, outside, far = self.block(list(range(ng)), coarse, wt) + strips = {}; sums = {} + for i, g in enumerate(gr): + other = [j for j in range(ng) if j != i] + for a in g: + carry = self.total([wts[u] for u in g if u != a]) + vals = [self.total([e(u, w) for u in g if u != a for w in gr[j]]) for j in other] + st, one = self.loo([carry]+vals) + strips[a] = dict(zip(other, one[1:])); sums[a] = st + out = {} + single = {a: self.add(outside[i], sums[a]) for i, g in enumerate(gr) for a in g} # omit one vertex + for i, g in enumerate(gr): + for a, b in combinations(g, 2): out[a, b] = outside[i] + for i, j in combinations(range(ng), 2): + for a in gr[i]: + left = self.add(far[i, j], strips[a][j]) + for b in gr[j]: + cross = self.total([e(u, w) for u in gr[i] if u != a for w in gr[j] if w != b]) + out[a, b] = self.add(left, self.add(strips[b][i], cross)) + return total, single, out + +def roles(h): + loc = Excl(h-1) + for (a, b), nd in loc.outputs.items(): # exact pair-exclusion check + assert loc.support[nd] == sum(1 << i for i, p in enumerate(loc.inputs) if a not in p and b not in p) + for nd in loc.active: + if loc.args[nd]: + x, y = loc.args[nd]; assert not loc.support[x] & loc.support[y] + inputs = list(combinations(range(h), 3)); var = {t: i+1 for i, t in enumerate(inputs)} + args = [None]*(len(inputs)+1); core = [0]+[sum(1 << i for i in t) for t in inputs]; union = list(core) + points = [[j for j in range(h) if j != i] for i in range(h)] + lookup = {}; outputs = {} + for c in range(h): + mp = {} + for nd in sorted(loc.active): + if loc.args[nd] is None: + a, b = loc.inputs[nd-1]; mp[nd] = var[tuple(sorted((c, points[c][a], points[c][b])))]; continue + a, b = (mp[x] for x in loc.args[nd]) + co = core[a] & core[b]; un = union[a] | union[b]; key = (co, un) + if bin(co).count("1") >= 2 and key in lookup: mp[nd] = lookup[key]; continue + k = len(args); mp[nd] = k; args.append((a, b)); core.append(co); union.append(un) + if bin(co).count("1") >= 2: lookup[key] = k + for pair, nd in loc.outputs.items(): + outputs[c, tuple(sorted((c, *(points[c][x] for x in pair))))] = mp[nd] + act = set(); st = list(outputs.values()) + while st: + n = st.pop() + if n in act: continue + act.add(n) + if args[n]: st.extend(args[n]) + adds = sum(args[n] is not None for n in act) + return adds+len(outputs), adds, len(outputs) + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + print(h, roles(h), flush=True) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round5.lean b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round5.lean new file mode 100644 index 0000000000..2577a55fb1 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round5.lean @@ -0,0 +1,81 @@ +set_option maxRecDepth 100000 +-- Generated by gen.py. Rationals are pairs (numerator, denominator) of naturals, denominators positive. +abbrev Q := Nat × Nat + +def norm (a : Q) : Q := let g := Nat.gcd a.1 a.2; if g = 0 then a else (a.1 / g, a.2 / g) +def qadd (a b : Q) : Q := norm (a.1 * b.2 + b.1 * a.2, a.2 * b.2) +def qmul (a b : Q) : Q := norm (a.1 * b.1, a.2 * b.2) +def qdiv (a b : Q) : Q := norm (a.1 * b.2, a.2 * b.1) +-- a - b, defined when b <= a +def qsub (a b : Q) : Q := norm (a.1 * b.2 - b.1 * a.2, a.2 * b.2) +def qlt (a b : Q) : Bool := a.1 * b.2 < b.1 * a.2 +def qpow (a : Q) : Nat → Q + | 0 => (1, 1) + | k + 1 => qmul a (qpow a k) + +-- 2 * (sum_{j (0, 1) + | j + 1 => qadd (atanhSum z j) (qdiv (qpow z (2 * j + 1)) (2 * j + 1, 1)) +def twoAtanhUp (z : Q) (n : Nat) : Q := + qmul (2, 1) (qadd (atanhSum z n) (qdiv (qpow z (2 * n + 1)) (qmul (2 * n + 1, 1) (qsub (1, 1) (qmul z z))))) + +-- halve x until x <= 2, counting the halvings (fuel bounds the loop) +def halve (x : Q) (k : Nat) : Nat → Q × Nat + | 0 => (x, k) + | f + 1 => if qlt (2, 1) x then halve (norm (x.1, 2 * x.2)) (k + 1) f else (x, k) + +def lnUp (x : Q) : Q := + let p := halve x 0 64 + let y := p.1 + let base := qmul (p.2, 1) (twoAtanhUp (1, 3) 30) + if qlt (1, 1) y then qadd base (twoAtanhUp (qdiv (qsub y (1, 1)) (qadd y (1, 1))) 30) else base + +def rankSum (h : List (Nat × Nat)) : Nat := h.foldl (fun acc p => acc + p.1 * p.2) 0 + +-- moment bound: every a * L_w < 1, every w < m, and sum n w / (m (1 - a L_w)) < W +def momentOK (h : List (Nat × Nat)) (a : Q) (m W : Nat) : Bool := + let step := fun (acc : Bool × Q) (p : Nat × Nat) => + let w := p.1; let n := p.2 + let l := lnUp (m, w) + let al := qmul a l + let ok := acc.1 && (w < m) && qlt al (1, 1) + if ok then (true, qadd acc.2 (qdiv (n * w, 1) (qmul (m, 1) (qsub (1, 1) al)))) else (false, acc.2) + let r := h.foldl step (true, (0, 1)) + r.1 && qlt r.2 (W, 1) + +def qmax (a b : Q) : Q := if qlt a b then b else a +def qmin (a b : Q) : Q := if qlt a b then a else b + +-- The assembly of scripts/certificate_round3.py (crude guard), for given savings a_b, a_c, beta and the chosen +-- eps, x, kappa: every constraint is strict and every cost margin exceeds kappa. C1 = 1 + m_c ln s_c + 1 is +-- replaced by the check that the given C1 bounds 2 + m_c * (upper bound of ln s_c). +def kappaOK (ab ac beta eps x c1 kappa : Q) (mc sc : Nat) : Bool := + let gl : Q := (1, 10000000000000000) + let one : Q := (1, 1) + let tau := qsub one ab + let sigma := qsub one ac + let chi := qadd tau (qmul (qsub one beta) (if qlt tau sigma then qsub sigma tau else (0, 1))) + let leaf := qadd sigma (qmul beta (qsub one sigma)) + let lam := qadd (qmax (qmax tau sigma) chi) gl + let lamp := qadd (qmax lam leaf) gl + let delta := qdiv (1, 10000000000000000000000) x + let poly := qmul (qadd one x) delta + let c1ok := !(qlt c1 (qadd (2, 1) (qmul (mc, 1) (lnUp (sc, 1))))) + let cons := qlt lamp one && qlt (qmul eps (qsub (2, 1) lamp)) one + && qlt (qmul eps c1) (qadd one x) && qlt (qadd (qmul (2, 1) eps) eps) (qadd one x) + && qlt (qsub (qmul (2, 1) eps) one) (qmul lamp eps) && qlt eps one && qlt delta (1, 8) + let margins := [qsub one eps, qmul eps (qsub one lamp), qsub (qsub one eps) poly, eps, + qmul (qmax eps (qsub one eps)) (qsub one tau)] + c1ok && cons && margins.all (fun g => qlt kappa g) + +-- bit interchange +def bitHist : List (Nat × Nat) := [(1, 308619300465), (3, 269071710), (5, 485704110), (7, 154755960), (9, 426259920), (11, 205054890), (13, 528381990), (15, 203530680), (17, 435405180), (19, 256878030), (21, 552769350), (23, 153231750), (25, 516188310), (27, 205054890), (29, 529906200), (31, 487033740), (33, 846941880), (35, 173046480), (37, 3069304920), (39, 973354020), (41, 385625130), (43, 804069420), (45, 1577557350), (47, 13083429480), (2023, 525852450), (2115, 13078856850)] +theorem bit_rank_sum : rankSum bitHist = 30052683193215 := by decide +theorem bit_moment : momentOK bitHist (15479, 1000000000) 2209 13604709300 = true := by decide +-- complex interchange +def cxHist : List (Nat × Nat) := [(1, 3175994308032), (2, 1150092176688), (3, 437228850240), (4, 621103221648), (5, 530083636992), (6, 411085269504), (7, 297495918720), (8, 351328513536), (9, 182103562368), (10, 272253840768), (11, 137929925952), (12, 244629219744), (13, 156861484416), (14, 239799740544), (15, 146043451008), (16, 251229507984), (17, 136126920384), (18, 265041818496), (19, 156861484416), (20, 240894422496), (21, 232587718272), (22, 213430784112), (23, 270450835200), (24, 201936623616), (25, 48681150336), (26, 313272217440), (27, 246110260032), (28, 2801097936), (729, 105475825728), (756, 311233104), (21141, 70317217152), (21168, 35469841680), (21896, 1007397164592), (21924, 971927322912)] +theorem cx_rank_sum : rankSum cxHist = 45772350635112192 := by decide +theorem cx_moment : momentOK cxHist (4079603, 250000000000) 21952 2085111546336 = true := by decide +-- assembly: kappa = 309575208081/20000000000000000 with the two savings above +theorem kappa_assembly : kappaOK (15479, 1000000000) (4079603, 250000000000) (1, 1000) (4999922606197979, 5000000000000000) (842123, 1) (842135, 1) (309575208081, 20000000000000000) 21952 45772350635112192 = true := by decide +kernel diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round6.lean b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round6.lean new file mode 100644 index 0000000000..50514f8602 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round6.lean @@ -0,0 +1,81 @@ +set_option maxRecDepth 100000 +-- Generated by gen.py. Rationals are pairs (numerator, denominator) of naturals, denominators positive. +abbrev Q := Nat × Nat + +def norm (a : Q) : Q := let g := Nat.gcd a.1 a.2; if g = 0 then a else (a.1 / g, a.2 / g) +def qadd (a b : Q) : Q := norm (a.1 * b.2 + b.1 * a.2, a.2 * b.2) +def qmul (a b : Q) : Q := norm (a.1 * b.1, a.2 * b.2) +def qdiv (a b : Q) : Q := norm (a.1 * b.2, a.2 * b.1) +-- a - b, defined when b <= a +def qsub (a b : Q) : Q := norm (a.1 * b.2 - b.1 * a.2, a.2 * b.2) +def qlt (a b : Q) : Bool := a.1 * b.2 < b.1 * a.2 +def qpow (a : Q) : Nat → Q + | 0 => (1, 1) + | k + 1 => qmul a (qpow a k) + +-- 2 * (sum_{j (0, 1) + | j + 1 => qadd (atanhSum z j) (qdiv (qpow z (2 * j + 1)) (2 * j + 1, 1)) +def twoAtanhUp (z : Q) (n : Nat) : Q := + qmul (2, 1) (qadd (atanhSum z n) (qdiv (qpow z (2 * n + 1)) (qmul (2 * n + 1, 1) (qsub (1, 1) (qmul z z))))) + +-- halve x until x <= 2, counting the halvings (fuel bounds the loop) +def halve (x : Q) (k : Nat) : Nat → Q × Nat + | 0 => (x, k) + | f + 1 => if qlt (2, 1) x then halve (norm (x.1, 2 * x.2)) (k + 1) f else (x, k) + +def lnUp (x : Q) : Q := + let p := halve x 0 64 + let y := p.1 + let base := qmul (p.2, 1) (twoAtanhUp (1, 3) 30) + if qlt (1, 1) y then qadd base (twoAtanhUp (qdiv (qsub y (1, 1)) (qadd y (1, 1))) 30) else base + +def rankSum (h : List (Nat × Nat)) : Nat := h.foldl (fun acc p => acc + p.1 * p.2) 0 + +-- moment bound: every a * L_w < 1, every w < m, and sum n w / (m (1 - a L_w)) < W +def momentOK (h : List (Nat × Nat)) (a : Q) (m W : Nat) : Bool := + let step := fun (acc : Bool × Q) (p : Nat × Nat) => + let w := p.1; let n := p.2 + let l := lnUp (m, w) + let al := qmul a l + let ok := acc.1 && (w < m) && qlt al (1, 1) + if ok then (true, qadd acc.2 (qdiv (n * w, 1) (qmul (m, 1) (qsub (1, 1) al)))) else (false, acc.2) + let r := h.foldl step (true, (0, 1)) + r.1 && qlt r.2 (W, 1) + +def qmax (a b : Q) : Q := if qlt a b then b else a +def qmin (a b : Q) : Q := if qlt a b then a else b + +-- The assembly of scripts/certificate_round3.py (crude guard), for given savings a_b, a_c, beta and the chosen +-- eps, x, kappa: every constraint is strict and every cost margin exceeds kappa. C1 = 1 + m_c ln s_c + 1 is +-- replaced by the check that the given C1 bounds 2 + m_c * (upper bound of ln s_c). +def kappaOK (ab ac beta eps x c1 kappa : Q) (mc sc : Nat) : Bool := + let gl : Q := (1, 10000000000000000) + let one : Q := (1, 1) + let tau := qsub one ab + let sigma := qsub one ac + let chi := qadd tau (qmul (qsub one beta) (if qlt tau sigma then qsub sigma tau else (0, 1))) + let leaf := qadd sigma (qmul beta (qsub one sigma)) + let lam := qadd (qmax (qmax tau sigma) chi) gl + let lamp := qadd (qmax lam leaf) gl + let delta := qdiv (1, 10000000000000000000000) x + let poly := qmul (qadd one x) delta + let c1ok := !(qlt c1 (qadd (2, 1) (qmul (mc, 1) (lnUp (sc, 1))))) + let cons := qlt lamp one && qlt (qmul eps (qsub (2, 1) lamp)) one + && qlt (qmul eps c1) (qadd one x) && qlt (qadd (qmul (2, 1) eps) eps) (qadd one x) + && qlt (qsub (qmul (2, 1) eps) one) (qmul lamp eps) && qlt eps one && qlt delta (1, 8) + let margins := [qsub one eps, qmul eps (qsub one lamp), qsub (qsub one eps) poly, eps, + qmul (qmax eps (qsub one eps)) (qsub one tau)] + c1ok && cons && margins.all (fun g => qlt kappa g) + +-- bit interchange +def bitHist : List (Nat × Nat) := [(1, 2191713447), (3, 5667200), (5, 11716936), (7, 6970656), (9, 14731178), (11, 4445210), (13, 35572306), (15, 13905892), (17, 4562096), (19, 9740500), (21, 18900112), (23, 141952734), (439, 6272882), (483, 141952734)] +theorem bit_rank_sum : rankSum bitHist = 78410006675 := by decide +theorem bit_moment : momentOK bitHist (36667, 1000000000) 529 148225616 = true := by decide +-- complex interchange +def cxHist : List (Nat × Nat) := [(1, 184811440), (2, 107199136), (3, 50583808), (4, 53478128), (5, 33031680), (6, 27611408), (7, 14767104), (8, 20195472), (9, 6217728), (10, 14119424), (11, 5051904), (12, 13742960), (13, 4663296), (14, 14864256), (15, 4849504), (16, 13014320), (17, 10196912), (18, 33371712), (19, 13601280), (20, 22774048), (22, 44038192), (23, 16479408), (24, 4048), (529, 8193152), (552, 199193984)] +theorem cx_rank_sum : rankSum cxHist = 119453132304 := by decide +theorem cx_moment : momentOK cxHist (36926111, 500000000000) 576 207387136 = true := by decide +-- assembly: kappa = 3666565558019/100000000000000000 with the two savings above +theorem kappa_assembly : kappaOK (36667, 1000000000) (36926111, 500000000000) (1, 1000) (2499908335861049, 2500000000000000) (14695, 1) (14694, 1) (3666565558019, 100000000000000000) 576 119453132304 = true := by decide +kernel diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round7.lean b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round7.lean new file mode 100644 index 0000000000..b523099790 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/Round7.lean @@ -0,0 +1,87 @@ +set_option maxRecDepth 100000 +-- Generated by gen.py. Rationals are pairs (numerator, denominator) of naturals, denominators positive. +abbrev Q := Nat × Nat + +def norm (a : Q) : Q := let g := Nat.gcd a.1 a.2; if g = 0 then a else (a.1 / g, a.2 / g) +def qadd (a b : Q) : Q := norm (a.1 * b.2 + b.1 * a.2, a.2 * b.2) +def qmul (a b : Q) : Q := norm (a.1 * b.1, a.2 * b.2) +def qdiv (a b : Q) : Q := norm (a.1 * b.2, a.2 * b.1) +-- a - b, defined when b <= a +def qsub (a b : Q) : Q := norm (a.1 * b.2 - b.1 * a.2, a.2 * b.2) +def qlt (a b : Q) : Bool := a.1 * b.2 < b.1 * a.2 +def qpow (a : Q) : Nat → Q + | 0 => (1, 1) + | k + 1 => qmul a (qpow a k) + +-- 2 * (sum_{j (0, 1) + | j + 1 => qadd (atanhSum z j) (qdiv (qpow z (2 * j + 1)) (2 * j + 1, 1)) +def twoAtanhUp (z : Q) (n : Nat) : Q := + qmul (2, 1) (qadd (atanhSum z n) (qdiv (qpow z (2 * n + 1)) (qmul (2 * n + 1, 1) (qsub (1, 1) (qmul z z))))) + +-- halve x until x <= 2, counting the halvings (fuel bounds the loop) +def halve (x : Q) (k : Nat) : Nat → Q × Nat + | 0 => (x, k) + | f + 1 => if qlt (2, 1) x then halve (norm (x.1, 2 * x.2)) (k + 1) f else (x, k) + +def lnUp (x : Q) : Q := + let p := halve x 0 64 + let y := p.1 + let base := qmul (p.2, 1) (twoAtanhUp (1, 3) 30) + if qlt (1, 1) y then qadd base (twoAtanhUp (qdiv (qsub y (1, 1)) (qadd y (1, 1))) 30) else base + +def rankSum (h : List (Nat × Nat)) : Nat := h.foldl (fun acc p => acc + p.1 * p.2) 0 + +-- moment bound: every a * L_w < 1, every w < m, and sum n w / (m (1 - a L_w)) < W +def momentOK (h : List (Nat × Nat)) (a : Q) (m W : Nat) : Bool := + let step := fun (acc : Bool × Q) (p : Nat × Nat) => + let w := p.1; let n := p.2 + let l := lnUp (m, w) + let al := qmul a l + let ok := acc.1 && (w < m) && qlt al (1, 1) + if ok then (true, qadd acc.2 (qdiv (n * w, 1) (qmul (m, 1) (qsub (1, 1) al)))) else (false, acc.2) + let r := h.foldl step (true, (0, 1)) + r.1 && qlt r.2 (W, 1) + +def qmax (a b : Q) : Q := if qlt a b then b else a +def qmin (a b : Q) : Q := if qlt a b then a else b + +-- The assembly of scripts/certificate_round3.py (crude guard), for given savings a_b, a_c, beta and the chosen +-- eps, x, kappa: every constraint is strict and every cost margin exceeds kappa. C1 = 1 + m_c ln s_c + 1 is +-- replaced by the check that the given C1 bounds 2 + m_c * (upper bound of ln s_c). +def kappaOK (ab ac beta eps x c1 kappa : Q) (mc sc : Nat) : Bool := + let gl : Q := (1, 10000000000000000) + let one : Q := (1, 1) + let tau := qsub one ab + let sigma := qsub one ac + let chi := qadd tau (qmul (qsub one beta) (if qlt tau sigma then qsub sigma tau else (0, 1))) + let leaf := qadd sigma (qmul beta (qsub one sigma)) + let lam := qadd (qmax (qmax tau sigma) chi) gl + let lamp := qadd (qmax lam leaf) gl + let delta := qdiv (1, 10000000000000000000000) x + let poly := qmul (qadd one x) delta + let c1ok := !(qlt c1 (qadd (2, 1) (qmul (mc, 1) (lnUp (sc, 1))))) + let cons := qlt lamp one && qlt (qmul eps (qsub (2, 1) lamp)) one + && qlt (qmul eps c1) (qadd one x) && qlt (qadd (qmul (2, 1) eps) eps) (qadd one x) + && qlt (qsub (qmul (2, 1) eps) one) (qmul lamp eps) && qlt eps one && qlt delta (1, 8) + let margins := [qsub one eps, qmul eps (qsub one lamp), qsub (qsub one eps) poly, eps, + qmul (qmax eps (qsub one eps)) (qsub one tau)] + c1ok && cons && margins.all (fun g => qlt kappa g) + +-- bit interchange, staircase entrance corner +def bitHist : List (Nat × Nat) := [(1, 1690297301), (3, 1356586), (5, 354200), (7, 3580962), (9, 1526602), (11, 5093396), (13, 2164162), (15, 7948248), (17, 8476006), (18, 6272882), (19, 1639946), (21, 6906900), (23, 61280142), (439, 6272882), (483, 61280142), (485, 545468), (487, 173558), (489, 293986), (491, 580888), (493, 14168), (495, 322322), (497, 17710), (499, 1129898), (501, 127512), (503, 410872), (505, 99176), (507, 1186570), (509, 340032), (511, 322322), (513, 106260), (515, 1583274), (517, 626934), (519, 2854852), (521, 13711082), (523, 4629394), (525, 5653032), (527, 6233920)] +theorem bit_rank_sum : rankSum bitHist = 57403754177 := by decide +theorem bit_moment : momentOK bitHist (31987, 500000000) 529 108516254 = true := by decide +-- bit interchange, round-six entrance corner +def bitplainHist : List (Nat × Nat) := [(1, 1803209177), (3, 1356586), (5, 354200), (7, 3580962), (9, 1526602), (11, 5093396), (13, 2164162), (15, 7948248), (17, 8476006), (19, 1639946), (21, 6906900), (23, 61280142), (439, 6272882), (483, 61280142), (485, 545468), (487, 173558), (489, 293986), (491, 580888), (493, 14168), (495, 322322), (497, 17710), (499, 1129898), (501, 127512), (503, 410872), (505, 99176), (507, 1186570), (509, 340032), (511, 322322), (513, 106260), (515, 1583274), (517, 626934), (519, 2854852), (521, 13711082), (523, 4629394), (525, 5653032), (527, 6233920)] +theorem bitplain_rank_sum : rankSum bitplainHist = 57403754177 := by decide +theorem bitplain_moment : momentOK bitplainHist (12599, 200000000) 529 108516254 = true := by decide +-- complex interchange (round six) +def cxHist : List (Nat × Nat) := [(1, 184811440), (2, 107199136), (3, 50583808), (4, 53478128), (5, 33031680), (6, 27611408), (7, 14767104), (8, 20195472), (9, 6217728), (10, 14119424), (11, 5051904), (12, 13742960), (13, 4663296), (14, 14864256), (15, 4849504), (16, 13014320), (17, 10196912), (18, 33371712), (19, 13601280), (20, 22774048), (22, 44038192), (23, 16479408), (24, 4048), (529, 8193152), (552, 199193984)] +theorem cx_rank_sum : rankSum cxHist = 119453132304 := by decide +theorem cx_moment : momentOK cxHist (36926111, 500000000000) 576 207387136 = true := by decide +-- assembly: kappa = 1599247689723/25000000000000000 with the two savings above +theorem kappa_assembly : kappaOK (31987, 500000000) (36926111, 500000000000) (1, 1000) (9999360300924109, 10000000000000000) (14695, 1) (14694, 1) (1599247689723, 25000000000000000) 576 119453132304 = true := by decide +kernel +-- assembly: kappa = 6299103187973/100000000000000000 with the savings bitplain and cx above +theorem kappaplain_assembly : kappaOK (12599, 200000000) (36926111, 500000000000) (1, 1000) (9999370089681201, 10000000000000000) (14695, 1) (14694, 1) (6299103187973, 100000000000000000) 576 119453132304 = true := by decide +kernel diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump.py new file mode 100644 index 0000000000..dcc74f0aa7 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump.py @@ -0,0 +1,20 @@ +"""Dump the round-five bit and complex child-width histograms for the Lean check (run from the repository root).""" +import sys, json, os +sys.path.insert(0, 'scripts'); sys.path.insert(0, 'independent/two-stage-bit') +from fractions import Fraction as Q +import certificate_round5 as c5, moment +a_b, cb = c5.bit_saving(side=True) +d = json.load(open(sys.argv[1])) # from independent/complex-network/fullbatch_hist.py 28 OUT sf +hc = {int(k): v for k, v in d['hist'].items()} +out = dict(bit=dict(a=[a_b.numerator, a_b.denominator], m=cb['m'], W=cb['W'], s=cb['s'], hist=sorted(cb['hist'].items())), + cx=dict(a=[4079603, 25*10**10], m=d['m'], W=d['W'], s=d['s'], hist=sorted(hc.items()))) +# python-side check with the atanh ln bound used by the Lean file +for k in ('bit', 'cx'): + o = out[k]; c = dict(m=o['m'], W=o['W'], hist=dict(o['hist'])) + lu = {w: moment.ln_upper(Q(o['m'], w)) for w in c['hist']} + print(k, 'sum==s', sum(w*n for w, n in o['hist']) == o['s'], 'F_upper<1', moment.F_upper(c, Q(*o['a']), lu) < 1, 'widths', len(o['hist'])) +from certificate_round3 import evaluate +r = evaluate(a_b, Q(*out['cx']['a']), Q(1, 1000), 'crude', m_c=d['m'], s_c=d['s']) +fr = lambda q: [Q(q).numerator, Q(q).denominator] +out['kappa'] = dict(beta=[1, 1000], eps=fr(r['eps']), x=fr(r['x']), c1=fr(r['c1']), kappa=fr(r['kappa']), mc=d['m']) +json.dump(out, open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'round5-histograms.json'), 'w')) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump6.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump6.py new file mode 100644 index 0000000000..564d980dd4 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump6.py @@ -0,0 +1,18 @@ +"""Dump the round-six bit and complex child-width histograms and the assembly parameters for the Lean check. +Usage (from the repository root): python3 lean/dump6.py COMPLEX_HIST_JSON""" +import sys, json, os +from fractions import Fraction as Q +sys.path.insert(0, 'scripts'); sys.path.insert(0, 'independent/two-stage-bit') +import certificate_round6 as c6 +from certificate_round3 import evaluate +a_b, cb = c6.retained_saving() +d = json.load(open(sys.argv[1])); hc = {int(k): v for k, v in d['hist'].items()} +a_c = Q(36926111, 5 * 10**11) +r = evaluate(a_b, a_c, Q(1, 1000), 'crude', m_c=d['m'], s_c=d['s']) +fr = lambda q: [Q(q).numerator, Q(q).denominator] +out = dict(bit=dict(a=fr(a_b), m=cb['m'], W=cb['W'], s=cb['s'], hist=sorted(cb['hist'].items())), + cx=dict(a=fr(a_c), m=d['m'], W=d['W'], s=d['s'], hist=sorted(hc.items())), + kappa=dict(beta=[1, 1000], eps=fr(r['eps']), x=fr(r['x']), c1=fr(r['c1']), kappa=fr(r['kappa']), mc=d['m'])) +assert sum(w * n for w, n in out['bit']['hist']) == out['bit']['s'] and sum(w * n for w, n in out['cx']['hist']) == out['cx']['s'] +json.dump(out, open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'round6-histograms.json'), 'w')) +print('kappa', r['kappa'], r['ok']) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump7.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump7.py new file mode 100644 index 0000000000..44046768cb --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/dump7.py @@ -0,0 +1,23 @@ +"""Dump the round-seven bit histograms (staircase and round-six entrance corners) with the round-six complex +histogram, and both assemblies, for the Lean check. The bit histograms are rebuilt from the frozen schedule by +scripts/certificate_round7.py; the complex side is round six's (lean/round6-histograms.json). +Usage (from the repository root): python3 lean/dump7.py""" +import sys, json, os +from fractions import Fraction as Q +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.join(HERE, '..', 'scripts')) +import certificate_round7 as c7 + +fr = lambda q: [Q(q).numerator, Q(q).denominator] +cx = json.load(open(os.path.join(HERE, 'round6-histograms.json')))['cx'] +_, res = c7.certify(c7.HEADLINE) +out = dict(sides=[['bit', 'bit interchange, staircase entrance corner'], ['bitplain', 'bit interchange, round-six entrance corner'], + ['cx', 'complex interchange (round six)']], + kappas=[['kappa', 'bit'], ['kappaplain', 'bitplain']], cx=cx) +for side, kk, key in (('bit', 'kappa', 'staircase'), ('bitplain', 'kappaplain', 'plain')): + a, k, c = res[key] + out[side] = dict(a=fr(a), m=c['m'], W=c['W'], s=c['s'], hist=sorted(c['hist'].items())) + out[kk] = dict(beta=[1, 1000], eps=fr(k['eps']), x=fr(k['x']), c1=fr(k['c1']), kappa=fr(k['kappa']), mc=cx['m']) + assert sum(w * n for w, n in out[side]['hist']) == c['s'] and cx['m'] == c7.M_C and cx['s'] == c7.S_C + print(side, 'a_b', a, 'kappa', k['kappa'], k['ok']) +json.dump(out, open(os.path.join(HERE, 'round7-histograms.json'), 'w')) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/gen.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/gen.py new file mode 100644 index 0000000000..a19afaa20c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/gen.py @@ -0,0 +1,107 @@ +"""Emit a Lean 4 (core only) file that checks, in the kernel with exact arithmetic, the moment certificates of a +witness (round five by default; rounds six and seven from their histogram files): for every child-width histogram, + (1) the widths times multiplicities sum to the total rank s; + (2) every width w < m, and the rational upper bound L_w of ln(m/w) is computed from its series formula + (ln x = k ln 2 + 2 atanh((y-1)/(y+1)), partial sum of 30 terms plus a geometric tail); + (3) a * L_w < 1 and sum_w n_w * w / (m * (1 - a * L_w)) < W (the moment bound at the claimed saving a). +The analytic facts behind (2) and (3) -- the atanh tail bound and (m/w)^a <= 1/(1 - a ln(m/w)) -- are premises, +not checked here: Lean core has no real logarithm.""" +import json, os, sys +HERE = os.path.dirname(os.path.abspath(__file__)) +SRC = sys.argv[1] if len(sys.argv) > 1 else 'round5-histograms.json' +DST = sys.argv[2] if len(sys.argv) > 2 else 'Round5.lean' +D = json.load(open(os.path.join(HERE, SRC))) + +HEAD = r'''set_option maxRecDepth 100000 +-- Generated by gen.py. Rationals are pairs (numerator, denominator) of naturals, denominators positive. +abbrev Q := Nat × Nat + +def norm (a : Q) : Q := let g := Nat.gcd a.1 a.2; if g = 0 then a else (a.1 / g, a.2 / g) +def qadd (a b : Q) : Q := norm (a.1 * b.2 + b.1 * a.2, a.2 * b.2) +def qmul (a b : Q) : Q := norm (a.1 * b.1, a.2 * b.2) +def qdiv (a b : Q) : Q := norm (a.1 * b.2, a.2 * b.1) +-- a - b, defined when b <= a +def qsub (a b : Q) : Q := norm (a.1 * b.2 - b.1 * a.2, a.2 * b.2) +def qlt (a b : Q) : Bool := a.1 * b.2 < b.1 * a.2 +def qpow (a : Q) : Nat → Q + | 0 => (1, 1) + | k + 1 => qmul a (qpow a k) + +-- 2 * (sum_{j (0, 1) + | j + 1 => qadd (atanhSum z j) (qdiv (qpow z (2 * j + 1)) (2 * j + 1, 1)) +def twoAtanhUp (z : Q) (n : Nat) : Q := + qmul (2, 1) (qadd (atanhSum z n) (qdiv (qpow z (2 * n + 1)) (qmul (2 * n + 1, 1) (qsub (1, 1) (qmul z z))))) + +-- halve x until x <= 2, counting the halvings (fuel bounds the loop) +def halve (x : Q) (k : Nat) : Nat → Q × Nat + | 0 => (x, k) + | f + 1 => if qlt (2, 1) x then halve (norm (x.1, 2 * x.2)) (k + 1) f else (x, k) + +def lnUp (x : Q) : Q := + let p := halve x 0 64 + let y := p.1 + let base := qmul (p.2, 1) (twoAtanhUp (1, 3) 30) + if qlt (1, 1) y then qadd base (twoAtanhUp (qdiv (qsub y (1, 1)) (qadd y (1, 1))) 30) else base + +def rankSum (h : List (Nat × Nat)) : Nat := h.foldl (fun acc p => acc + p.1 * p.2) 0 + +-- moment bound: every a * L_w < 1, every w < m, and sum n w / (m (1 - a L_w)) < W +def momentOK (h : List (Nat × Nat)) (a : Q) (m W : Nat) : Bool := + let step := fun (acc : Bool × Q) (p : Nat × Nat) => + let w := p.1; let n := p.2 + let l := lnUp (m, w) + let al := qmul a l + let ok := acc.1 && (w < m) && qlt al (1, 1) + if ok then (true, qadd acc.2 (qdiv (n * w, 1) (qmul (m, 1) (qsub (1, 1) al)))) else (false, acc.2) + let r := h.foldl step (true, (0, 1)) + r.1 && qlt r.2 (W, 1) + +def qmax (a b : Q) : Q := if qlt a b then b else a +def qmin (a b : Q) : Q := if qlt a b then a else b + +-- The assembly of scripts/certificate_round3.py (crude guard), for given savings a_b, a_c, beta and the chosen +-- eps, x, kappa: every constraint is strict and every cost margin exceeds kappa. C1 = 1 + m_c ln s_c + 1 is +-- replaced by the check that the given C1 bounds 2 + m_c * (upper bound of ln s_c). +def kappaOK (ab ac beta eps x c1 kappa : Q) (mc sc : Nat) : Bool := + let gl : Q := (1, 10000000000000000) + let one : Q := (1, 1) + let tau := qsub one ab + let sigma := qsub one ac + let chi := qadd tau (qmul (qsub one beta) (if qlt tau sigma then qsub sigma tau else (0, 1))) + let leaf := qadd sigma (qmul beta (qsub one sigma)) + let lam := qadd (qmax (qmax tau sigma) chi) gl + let lamp := qadd (qmax lam leaf) gl + let delta := qdiv (1, 10000000000000000000000) x + let poly := qmul (qadd one x) delta + let c1ok := !(qlt c1 (qadd (2, 1) (qmul (mc, 1) (lnUp (sc, 1))))) + let cons := qlt lamp one && qlt (qmul eps (qsub (2, 1) lamp)) one + && qlt (qmul eps c1) (qadd one x) && qlt (qadd (qmul (2, 1) eps) eps) (qadd one x) + && qlt (qsub (qmul (2, 1) eps) one) (qmul lamp eps) && qlt eps one && qlt delta (1, 8) + let margins := [qsub one eps, qmul eps (qsub one lamp), qsub (qsub one eps) poly, eps, + qmul (qmax eps (qsub one eps)) (qsub one tau)] + c1ok && cons && margins.all (fun g => qlt kappa g) +''' + +def lst(h): return '[' + ', '.join('(%d, %d)' % (w, n) for w, n in h) + ']' + +body = [] +SIDES = D.get('sides', [['bit', 'bit interchange'], ['cx', 'complex interchange']]) +for k, label in SIDES: + o = D[k] + body.append('-- %s' % label) + body.append('def %sHist : List (Nat × Nat) := %s' % (k, lst(o['hist']))) + body.append('theorem %s_rank_sum : rankSum %sHist = %d := by decide' % (k, k, o['s'])) + body.append('theorem %s_moment : momentOK %sHist (%d, %d) %d %d = true := by decide' % (k, k, o['a'][0], o['a'][1], o['m'], o['W'])) +# each assembly: (kappa entry, bit side it uses); the default is the single headline assembly of rounds five and six +for kk, bk in D.get('kappas', [['kappa', 'bit']]): + kap = D.get(kk) + if not kap: continue + name = 'kappa_assembly' if kk == 'kappa' else kk + '_assembly' + body.append('-- assembly: kappa = %d/%d with the two savings above' % tuple(kap['kappa']) if bk == 'bit' else + '-- assembly: kappa = %d/%d with the savings %s and cx above' % (tuple(kap['kappa']) + (bk,))) + body.append('theorem %s : kappaOK (%d, %d) (%d, %d) (%d, %d) (%d, %d) (%d, %d) (%d, %d) (%d, %d) %d %d = true := by decide +kernel' % ( + name, *D[bk]['a'], *D['cx']['a'], *kap['beta'], *kap['eps'], *kap['x'], *kap['c1'], *kap['kappa'], kap['mc'], D['cx']['s'])) +open(os.path.join(HERE, DST), 'w').write(HEAD + '\n' + '\n'.join(body) + '\n') +print('wrote', DST) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round5-histograms.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round5-histograms.json new file mode 100644 index 0000000000..d04e8b717d --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round5-histograms.json @@ -0,0 +1 @@ +{"bit": {"a": [15479, 1000000000], "m": 2209, "W": 13604709300, "s": 30052683193215, "hist": [[1, 308619300465], [3, 269071710], [5, 485704110], [7, 154755960], [9, 426259920], [11, 205054890], [13, 528381990], [15, 203530680], [17, 435405180], [19, 256878030], [21, 552769350], [23, 153231750], [25, 516188310], [27, 205054890], [29, 529906200], [31, 487033740], [33, 846941880], [35, 173046480], [37, 3069304920], [39, 973354020], [41, 385625130], [43, 804069420], [45, 1577557350], [47, 13083429480], [2023, 525852450], [2115, 13078856850]]}, "cx": {"a": [4079603, 250000000000], "m": 21952, "W": 2085111546336, "s": 45772350635112192, "hist": [[1, 3175994308032], [2, 1150092176688], [3, 437228850240], [4, 621103221648], [5, 530083636992], [6, 411085269504], [7, 297495918720], [8, 351328513536], [9, 182103562368], [10, 272253840768], [11, 137929925952], [12, 244629219744], [13, 156861484416], [14, 239799740544], [15, 146043451008], [16, 251229507984], [17, 136126920384], [18, 265041818496], [19, 156861484416], [20, 240894422496], [21, 232587718272], [22, 213430784112], [23, 270450835200], [24, 201936623616], [25, 48681150336], [26, 313272217440], [27, 246110260032], [28, 2801097936], [729, 105475825728], [756, 311233104], [21141, 70317217152], [21168, 35469841680], [21896, 1007397164592], [21924, 971927322912]]}, "kappa": {"beta": [1, 1000], "eps": [4999922606197979, 5000000000000000], "x": [842123, 1], "c1": [842135, 1], "kappa": [309575208081, 20000000000000000], "mc": 21952}} \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round6-histograms.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round6-histograms.json new file mode 100644 index 0000000000..d6b584964e --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round6-histograms.json @@ -0,0 +1 @@ +{"bit": {"a": [36667, 1000000000], "m": 529, "W": 148225616, "s": 78410006675, "hist": [[1, 2191713447], [3, 5667200], [5, 11716936], [7, 6970656], [9, 14731178], [11, 4445210], [13, 35572306], [15, 13905892], [17, 4562096], [19, 9740500], [21, 18900112], [23, 141952734], [439, 6272882], [483, 141952734]]}, "cx": {"a": [36926111, 500000000000], "m": 576, "W": 207387136, "s": 119453132304, "hist": [[1, 184811440], [2, 107199136], [3, 50583808], [4, 53478128], [5, 33031680], [6, 27611408], [7, 14767104], [8, 20195472], [9, 6217728], [10, 14119424], [11, 5051904], [12, 13742960], [13, 4663296], [14, 14864256], [15, 4849504], [16, 13014320], [17, 10196912], [18, 33371712], [19, 13601280], [20, 22774048], [22, 44038192], [23, 16479408], [24, 4048], [529, 8193152], [552, 199193984]]}, "kappa": {"beta": [1, 1000], "eps": [2499908335861049, 2500000000000000], "x": [14695, 1], "c1": [14694, 1], "kappa": [3666565558019, 100000000000000000], "mc": 576}} \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round7-histograms.json b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round7-histograms.json new file mode 100644 index 0000000000..830484689b --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/lean/round7-histograms.json @@ -0,0 +1 @@ +{"sides": [["bit", "bit interchange, staircase entrance corner"], ["bitplain", "bit interchange, round-six entrance corner"], ["cx", "complex interchange (round six)"]], "kappas": [["kappa", "bit"], ["kappaplain", "bitplain"]], "cx": {"a": [36926111, 500000000000], "m": 576, "W": 207387136, "s": 119453132304, "hist": [[1, 184811440], [2, 107199136], [3, 50583808], [4, 53478128], [5, 33031680], [6, 27611408], [7, 14767104], [8, 20195472], [9, 6217728], [10, 14119424], [11, 5051904], [12, 13742960], [13, 4663296], [14, 14864256], [15, 4849504], [16, 13014320], [17, 10196912], [18, 33371712], [19, 13601280], [20, 22774048], [22, 44038192], [23, 16479408], [24, 4048], [529, 8193152], [552, 199193984]]}, "bit": {"a": [31987, 500000000], "m": 529, "W": 108516254, "s": 57403754177, "hist": [[1, 1690297301], [3, 1356586], [5, 354200], [7, 3580962], [9, 1526602], [11, 5093396], [13, 2164162], [15, 7948248], [17, 8476006], [18, 6272882], [19, 1639946], [21, 6906900], [23, 61280142], [439, 6272882], [483, 61280142], [485, 545468], [487, 173558], [489, 293986], [491, 580888], [493, 14168], [495, 322322], [497, 17710], [499, 1129898], [501, 127512], [503, 410872], [505, 99176], [507, 1186570], [509, 340032], [511, 322322], [513, 106260], [515, 1583274], [517, 626934], [519, 2854852], [521, 13711082], [523, 4629394], [525, 5653032], [527, 6233920]]}, "kappa": {"beta": [1, 1000], "eps": [9999360300924109, 10000000000000000], "x": [14695, 1], "c1": [14694, 1], "kappa": [1599247689723, 25000000000000000], "mc": 576}, "bitplain": {"a": [12599, 200000000], "m": 529, "W": 108516254, "s": 57403754177, "hist": [[1, 1803209177], [3, 1356586], [5, 354200], [7, 3580962], [9, 1526602], [11, 5093396], [13, 2164162], [15, 7948248], [17, 8476006], [19, 1639946], [21, 6906900], [23, 61280142], [439, 6272882], [483, 61280142], [485, 545468], [487, 173558], [489, 293986], [491, 580888], [493, 14168], [495, 322322], [497, 17710], [499, 1129898], [501, 127512], [503, 410872], [505, 99176], [507, 1186570], [509, 340032], [511, 322322], [513, 106260], [515, 1583274], [517, 626934], [519, 2854852], [521, 13711082], [523, 4629394], [525, 5653032], [527, 6233920]]}, "kappaplain": {"beta": [1, 1000], "eps": [9999370089681201, 10000000000000000], "x": [14695, 1], "c1": [14694, 1], "kappa": [6299103187973, 100000000000000000], "mc": 576}} \ No newline at end of file diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex new file mode 100644 index 0000000000..65b9e9129a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/complex-source-frames.tex @@ -0,0 +1,68 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Source frames for the complex interchange} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +This note moves the stage-two rank of every auxiliary role of the complex interchange into a single +child, by starting the role in a nonzero phase frame. It is the complex analogue of PR~\#13's auxiliary +source frames on the bit side. + +\paragraph{Phase frames.} For $\phi:\mathbb F_2^m\to\mathbb Z/4$ write $D_\phi=H^{\otimes m}\operatorname{diag}(i^{\phi})H^{\otimes m}$. +All phase frames share the eigenbasis $H^{\otimes m}$, so $D_\psi D_\phi^{-1}=D_{\psi-\phi}$. For a subspace $U$ let +$q_U(y)$ be the weight of the orthogonal projection of $y$ onto $U$ modulo $4$ when $U$ has an orthonormal basis; +the frame of a label $U$ is $D_{q_U}$. + +\begin{lemma}[Auxiliary source frames]\label{lem:src} +In the common-frame form of the complex interchange, route $w$ applies $\epsilon_w D_{\phi_{\mathrm{sink}}(\rho w)-\phi_{\mathrm{src}}(w)}$. +An auxiliary role ($\rho(w)=w$, $\epsilon_w=+1$) may start at $D_{q_{D_0}}$ provided its sink is $D_{\mathrm{wt}+q_{D_0}}$. +Every gate, interior edge and other role is unchanged, and the network still restores arbitrary scratch. +\end{lemma} +\begin{proof} +The common-frame identity holds for any invertible frames, so the route operator is +$D_{\mathrm{wt}+q_{D_0}-q_{D_0}}=D_{\mathrm{wt}}=C^{\otimes m}$, the same as with source $0$ and sink $D_{\mathrm{wt}}$. +The logical scratch is $g=D_{-q_{D_0}}f$; since $f$ is arbitrary so is $g$, and the output is +$D_{\mathrm{wt}+q_{D_0}}D_{-q_{D_0}}f=C^{\otimes m}f$. +\end{proof} + +\begin{lemma}[Costs]\label{lem:cost} +Suppose $D_0\subseteq U$ and $D_0\subseteq V$, where $U$ and $V$ are the role's first and last stage-two labels, +$U=D_0\perp L_1$ and $V=D_0\perp L_2$. Then the entrance edge costs $\dim L_1$ and the exit edge to the sink costs +$m-\dim L_2$. The exit residual $G=D_0\perp V^\perp$ has an orthonormal basis. +\end{lemma} +\begin{proof} +Weights of orthogonal parts add modulo $4$, because orthogonal parts overlap in an even number of coordinates. +So $q_U-q_{D_0}=q_{U\cap D_0^\perp}=q_{L_1}$, of rank $\dim L_1$, and +$\mathrm{wt}+q_{D_0}-q_V=q_{V^\perp}+q_{D_0}=q_G$, of rank $m-\dim L_2$. $G$ is an orthogonal sum of nondegenerate +spaces, so it is nondegenerate. It is nonalternating because $D_0$ contains an odd vector +($e_j\otimes e_k\otimes t_B$ with $j\notin A$). A nondegenerate nonalternating space over $\mathbb F_2$ has an orthonormal basis. +\end{proof} + +So the exit is exactly the operator of an increasing edge $0\to G$, and PR~\#10's whole-residual child and its +$Z_B$ sign wrapper apply to it. Every stage-two label of the form $(B\otimes F\perp P\otimes L)\otimes Q$ contains +$D_0=B\otimes F\otimes Q$, so the hypothesis holds for every addition and piece role. + +\begin{remark}[Excluded roles] +Retained roles end at $D_0$; a source frame would give them an exit of rank $m$, which is not a contraction, so +they keep source $0$. Input-pivot slots meet stage two first at the copy into the data frame, which is not a +frame above $D_0$; they also keep source $0$. The rank sum $s$ and the deficit are unchanged. +\end{remark} + +\paragraph{Effect.} For each affected role the stage-two entrance child (rank $h^2-h$) and exit child (rank $m-h^2$) +merge into one child of rank $m-h$. In \texttt{independent/complex-network/fullbatch\_hist.py} this is the +\texttt{sf} option. For PR~\#7's network at $h=28$ under full batching the certified saving rises from +$1048009/(2.5\cdot10^{11})$ to $4079603/(2.5\cdot10^{11})\approx1.632\cdot10^{-5}$; every child has width at most +$m-h\le m-1$, so the topology-free guard is unchanged. + +\paragraph{Checks.} On PR~\#7's network at $h=8$ and $h=10$, every source-framed role has $D_0$ inside its first +and last stage-two labels (\texttt{sourceframe\_trace.py}, which traces every role through PR~\#7's stage-two schedule), and the exact label and phase checks pass: entrance and exit phase identities, $G$ +nondegenerate and nonalternating, ranks $m-h$ and $m-h+1$ (\texttt{sourceframe\_labels.py}). A full three-stage +scalar simulation of PR~\#7's network with source frames (\texttt{sourceframe\_sim.py}), in the Hadamard domain +modulo $2^{64}-59$ with random gate phases, random data-endpoint phases and arbitrary scratch, restores scratch +and exchanges the data exactly at $h=8$. The same script runs a negative control (sink $\mathrm{wt}$ alone, which +must fail to restore scratch) and a baseline without source frames. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/copied-centres.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/copied-centres.tex new file mode 100644 index 0000000000..cdcc820c95 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/copied-centres.tex @@ -0,0 +1,58 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Copied centres in the two-stage interchange} +\date{Draft, October 9, 2026} +\begin{document} +\maketitle + +This note applies PR~\#36's copied retained-centre schedule (icekylinx) to our two-stage bit interchange, where the +centres are direct centre wires rather than retained totals. In that setting the schedule is simpler: the original +centre never leaves its frame. + +\paragraph{The central return.} In each stage a centre $c$ runs the dirty-scratch word $R\,G\,R\,G$: the scatter $R$ +reads $c$ at the frame $D_0$, and the gather $G$ acts at $D_1$. So the centre's frame path is +$D_0\to D_1\to D_0\to D_1$, with ranks $h,h,h$ beyond its endpoint edge; this descent and re-ascent is the central-return +loss, and it is what makes the rank budget $s=Wm-N+2L$. + +\begin{lemma}[Copied centres]\label{lem:copy} +In either stage, replace the second scatter's reads of $c$ by reads of a temporary copy $t$: after the first gather, +copy $c$ into a fresh zero stream $t$ at $D_1$, move $t$ to $D_0$, let the second scatter read $t$, and erase $t$; the +original $c$ stays at $D_1$ for the final gather. The scalar action, the endpoints of every role and the restoration of +arbitrary scratch are unchanged. Each centre then has two children of width $h$ per stage instead of three, and the rank +budget becomes $s=Wm-N+L$. +\end{lemma} +\begin{proof} +The scatter reads do not change $c$, so after the first gather the second scatter sees the same value whether it reads +$c$ or a copy of it; the final gather therefore receives the same value at the same frame $D_1$. The copy is a fresh +zero stream, so erasing it touches no arbitrary scratch. The move of $t$ from $D_1$ to $D_0$ is the matrix of the old +return edge, an involution with the same projector ($I\otimes P_t$ in stage one, $P_t\otimes I$ in stage two), so the +flag basis compiles it to one run of width $h$, as before; the original's return and re-ascent, each of rank $h$, are +gone. Summing over the $c_0=h$ centres of the $2v$ invocations removes $L=2vhc_0$ from the rank budget. +\end{proof} + +\paragraph{Tape cost.} Making the copy is a pointwise gate on $(c,t)$ at the common frame $D_1$; the reads are pointwise +at $D_0$; erasure is linear in the stream volume $V/W$. The copy has the full role shape, so its child calls are ordinary +children of the batched recursion, and $F_k\le(s/W)F_{k-1}+O(1)$ holds with the new $s$. The copy is a temporary, not a +role, so $W$ is unchanged. The schedule needs $W+1$ role tapes, and while the copy's children run it parks $W$ streams +instead of $W-1$; both are fixed. No row of the assembly certificate changes: the bit network enters only through +$\tau=1-a_b$, and the crude guard depends only on the complex network. + +\paragraph{Saving.} The deficit is now $Wm-s=N-L=v(v-2h^2)$, positive for much smaller $h$, and the optimum moves from +$h=47$ to $h=25$. With the flag basis, the gm side circuit ($R=52788$ at $h=25$), the side roles batched one level down +and the data-entrance run, \texttt{scripts/certificate\_round6.py} certifies $a_b=34919/10^9$. + +\paragraph{Retained totals.} The direct centre wires can be replaced by retained point totals +$P_c=\operatorname{star}(c)$, built as side roles from existing side nodes (each a disjoint union of three of them, two +additions). A total sits at $U_c$ of dimension $h-1$; its copy pays $U_c\to D_0$ (rank $h-1$) and the original +$U_c\to F$ (rank $1$), so the loss per centre is $h-1$ and the centre roles leave $W$. At $h=23$ this certifies +$a_b=36667/10^9$ (\texttt{independent/two-stage-bit/rtgm.py}, \texttt{cert\_rt.py}); the scalar identity, frames, +side-edge genericity and nesting are checked as for direct centres. + +\paragraph{Checks.} The full-stage word (all $h$ centres, all targets, real excluded sums) is checked over +$\mathbb F_2$ at $h=5,\dots,8$ and with signed Gaussian integers; a control that copies before the first gather fails. +The frame sequences of old and copied centres are checked exactly at $h=5,6$. At $h=25$ every flag-basis, side-lemma, +data-entrance and frame condition is checked at one integer point, as at $h=47$ in round five. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex new file mode 100644 index 0000000000..76c91c10c9 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/data-edge-batching.tex @@ -0,0 +1,39 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\title{Data-edge batching in the two-stage interchange} +\date{Draft} +\begin{document} +\maketitle + +\paragraph{Setting.} The two-stage bit motif with partial-swap frames, $m=h^2$, $v=\binom h3$, $N=v^2$, with +every auxiliary role's selected edge compiled by the partial-swap batching lemma +(\texttt{partial-swap-batching.tex}). Write $P_a$ for the $G$-orthogonal projector onto $\langle t_a\rangle$ and +$Q_a=I-P_a$. + +\begin{lemma}[Data entrances] +For every data pair, the stage-two entrance edges of the $X$ and $Y$ roles both have idempotent difference +$Q_1\otimes Q_2$, of rank $(h-1)^2=m-2h+1$. +\end{lemma} +\begin{proof} +Since $t_1^\perp\otimes F\perp t_1\otimes t_2$ under $G\otimes G$, the $X$ entrance is +$\operatorname{proj}(D_0+t_1\otimes t_2)-\operatorname{proj}(F\otimes t_2)=Q_1\otimes I+P_1\otimes P_2-I\otimes P_2=Q_1\otimes Q_2$. +The $Y$ entrance is $\operatorname{proj}(D_0)-\operatorname{proj}(t_1^\perp\otimes t_2)=Q_1\otimes I-Q_1\otimes P_2=Q_1\otimes Q_2$. +\end{proof} + +For $h\ge4$, $(h-1)^2>m/2$, so the partial-swap batching lemma applies with $k=2h-1$ corner transpositions and +one aligned block of width $t=m-4h+2$. The common basis is the one already used for the auxiliary edges: each +data corner adds one nonzero polynomial condition $\det(S^{-1}U)_L\det(VS)_R$ on $S$, nonzero on the big cell +$S=L\,U$ (unit lower times unit upper), so finitely many conditions have a common integral unimodular solution. + +\paragraph{Accounting.} Per data role the ranks are $(h-1)+(m-2h+1)+(h-1)=m-1$; with one copy-correction child +of width $1$ per pair this reproduces $s=Wm-N+2L$, and $Wm-s=v(v-4h^2)>0$ for $h\ge28$. + +\paragraph{Saving.} With the side-role counts of our generator (valid for $28\le h\le50$), the batched moment +certifies $a_b=10033/10^9$ at $h=47$ ($R=418678$), against $10027/10^9$ at $h=46$ and $4431/10^9$ at $h=32$ +without data batching. + +\paragraph{Checks.} Corners invertible under one common $S_0$ for every auxiliary edge and every data pair at +$h=6,7,8$ (all $3136$ pairs at $h=8$); exact Bruhat profiles match; the closed form is checked in rationals. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/deferred-readout.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/deferred-readout.tex new file mode 100644 index 0000000000..3b6dab8705 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/deferred-readout.tex @@ -0,0 +1,110 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Deferred readouts in the two-stage bit interchange} +\date{Draft, October 9, 2026} +\begin{document} +\maketitle + +This note describes the round-seven bit side. It keeps the round-six interchange (flag basis, retained point totals +with copied centres, side roles batched one level down, data-entrance run) and changes three things: the side +program comes from PR~\#62's producer, its frames are lifted and its fan-out copies are made late, and the stage-one +word is reordered so that most slots read their garbage out at a nonzero frame. All objects are frozen in +\texttt{certificates/round7/}; \texttt{scripts/certificate\_round7.py} rebuilds the child-width histogram from the +schedule, and the checks in \texttt{independent/deferred-readout/} verify every fact used below. Throughout, $h=23$, +$m=h^2$, $v=\binom h3$, $N=v^2$, $G=I-J/9$, and for a triple $T$ the root frame of the output wire $y_T$ is +$t_T^\perp=\ker\,(9t_T-3\mathbf 1)^{\mathsf T}$; the frame of a retained total of $c$ is $U_c=\ker(\mathbf 1-3e_c)^{\mathsf T}$. + +\section{The side program: PR \#62's producer} +The side DAG has the $v$ triples as leaves and disjoint additions as nodes; its roots are the $3v$ outputs +$\mathrm{out}(c,T)=\{S: S\cap T=\{c\}\}$ and the $h$ retained totals $\mathrm{star}(c)$. We build it with PR~\#62's +producer (ikeboy): interval strips and core-aware pair assembly, with PR~\#41's alternating order and links +(RaD/hipotures), and links chosen by a moment-weighted matching in the spirit of PR~\#44 (rohanarun). A link hands the +non-pivot slot of a donor gate to a later use of the same value, so the number of slots is +$R=\#\text{additions}+3v+h-\#\text{links}=28866$. Only the DAG enters the certificate, and it is checked from the +definitions: every addition is disjoint, every output and total has the support above, and every node is reachable +from a root (\texttt{check\_lifted.py}, part~A; \texttt{check\_word.py}, part~A). + +\section{Lifted frames and late copies} +For an addition $n$ let $U_n$ be the common kernel of the root covectors reachable from $n$ and $F_j$ the span of +the first $j$ rows of a fixed integer flag matrix. The gate of $n$ acts at +\[ M_n=\operatorname{span}(n)+(U_n\cap F_{j(n)}), \] +with a lift index $j(n)$ per addition. This is Paureel's complement-frame construction: it is valid for any frames +with (H1) leaf frames $\langle t_S\rangle$, (H2) frames nested along every slot (DAG edges, links, copies), +(H3) roots inside $t_T^\perp$ or $U_c$, (H4) $G$ nondegenerate on every frame. Nesting is a theorem given +$j(n)\le j(t)$ on every slot successor pair, $\operatorname{span}(x)\le\operatorname{span}(t)$ on every link and +$\operatorname{span}(n)$ inside every root it reaches directly; then $U_n\le U_t$ and $M_n\le M_t$. In this witness +every lifted frame equals $U_n$. Dimensions are exact (modular law, ranks with Hadamard certificates or Bareiss). + +\paragraph{Late copies.} A node with several free uses is copied for each of them. A copy made early sits at $M_n$; +a \emph{late} copy for the user $\ell_i$ of an ordered list $\ell_1,\dots,\ell_k$ is made when the pivot has climbed to +\[ C_i=\textstyle\bigcap_{i'\ge i} M(\ell_{i'}), \qquad M_n\le C_1\le\dots\le C_{k-1}\le M(\ell_k), \] +and starts there, so the copy saves the rank $\dim C_i-\dim M_n$. Each copy is placed as late as possible (before its +user's gate, the pivot's next gate and the next copy). The intersections are needed: without them consecutive pivot +frames are not nested (1396 of 1396), and a copy moved after the pivot's next gate breaks the replay. + +\section{The B-defer word} +In stage one each slot $u$ starts with its garbage $z_u$, and the word reads it out of every target it reaches: +$y_T\mathrel{-}=C_{T,u}z_u$, where $C=JL$ is given by the transpose sweep of $L$. In rounds five and six all these +readouts happen at frame $0$, before the second pass. B-defer splits the second pass in two phases. + +\begin{itemize} +\item \emph{Phase 1} is the closure of the retained totals' last operations under per-slot sequence precedence: every + op that must precede a total's completion. The totals complete, and their copies read every target containing + their centre at $0$ (copied centres, as in round six). +\item A slot that phase 1 neither reads nor writes still holds its garbage after phase 1. It reads it out + \emph{now}, at a frame $\sigma_u\le F_0(u)\cap\bigcap_{T}t_T^\perp$ (over its targets $T$), then the rest of $L$ runs, + then the output reads at $t_T^\perp$, then $L^{-1}$ and $V^{-1}$ exactly mirror it. +\end{itemize} +Only the topological order of the word changes, so it is still a mirror and still restores arbitrary scratch. The +slot's chain now starts at $\sigma_u$: its corner has rank $r_u=h-\dim\sigma_u$ and its auxiliary edge rank $m-r_u$. + +\paragraph{The sorting rule.} On a target $y_T$ the readout frames, in time order, are $0$ (non-deferred slots and +centre copies), the deferred $\sigma_u$, and $t_T^\perp$; they must form a chain. The word reads the deferred slots +in increasing $\dim\sigma_u$, and applies the deferred $V$ gates (below) in increasing $\dim F_0$. With this rule +every $y_T$ sequence is nested in time order, exactly over $\mathbb Q$, for both the $\mathbb Z$ and the +$\mathbb F_2$ supports of $C$; the reversed order breaks 11879 chains. + +\section{V leaves as late copies on $X_S$} +A leaf $S$ is used by several gates. Instead of copying $x_S$ by fan-out, every use $i$ gets its own $V$ gate on the +data wire $X_S$, into a slot that starts at +\[ s_i=N_i\cap N_{i+1}\cap\cdots \qquad(\text{falling back to }\langle t_S\rangle\text{ if $G$ is degenerate on it}), \] +where $N_j$ is the first frame of use $j$. The $V$ gates are then late copies on $X_S$: its frame chain +$\langle t_S\rangle\le s_{i_1}\le s_{i_2}\le\dots\le F$ has total rank $h-1$, as before, and the use slots start at +$s_i$ instead of $\langle t_S\rangle$. The $V$ gates of deferred slots come after their readouts; in time the $X_S$ chain +is $\langle t_S\rangle$, the early $V$ frames (by dimension), the deferred $V$ frames (by the rule above), $F$, and it +is checked nested exactly in that order. The number of slots is unchanged. + +\section{What the certificate uses} +\paragraph{Only the $\mathbb F_2$ flag identity.} The bit network is used over $\mathbb F_2$: the word must add exactly +$x_T$ to every $y_T$ and restore every slot, for arbitrary scratch. The replay checks this over $\mathbb F_2$ with +the parity coefficients (the actual circuit) and, separately, over $\mathbb Z$ with the exact path-count +coefficients; the histogram and $a_b$ are the same with either support. + +\paragraph{The stage-two complement.} Stage two is the complement time-reversal of stage one, with the same edge +multiset. This is the same assumption as in round six; it is stated, not machine-checked here. + +\paragraph{Frames and genericity.} Every $\sigma_u$ and $s_i$ is a primitive integer basis (entries at most 13). +Exactly over $\mathbb Q$: $\sigma_u\le F_0(u)$, $\sigma_u\le t_T^\perp$, $t_S\le s_i\le N_i$, $G$ nondegenerate. Every +high-rank step ($2r>h$) that the reordered word adds (slot starts, gauged corners $\sigma_u\to F$, $y_T$ and $X_S$ +chain steps) has the generic north-east pivots under both conjugations at the integer point of +\texttt{check\_lifted.py}, so the side lemma batches it. + +\section{Accounting} +Per stage and invocation: every slot contributes its auxiliary edge (block $m-2r_u$) and its corner, both batched +by the inner lemma, and its chain steps; every centre copy its step $U_c\to0$ of rank $h-1$; every $y_T$ and every +$X_S$ its chain of total rank $h-1$; the data entrance its block $m-4h+2$ and corner; one copy-correction singleton per +pair. The rank sum is exactly $s=Wm-N+L$ with $W=2N+2vR$, $L=2vh(h-1)$, so the histogram re-partitions the round-six +budget. The moment certificate gives +\begin{align*} + a_b&=31987/(5\cdot10^8) &&\text{(staircase entrance corner, runs $h-2,h-5,1^6$)},\\ + a_b&=12599/(2\cdot10^8) &&\text{(round-six entrance corner)}, +\end{align*} +and with round six's complex interchange ($a_c=36926111/(5\cdot10^{11})$, $h=24$) the assembly gives +$\kappa=1599247689723/(2.5\cdot10^{16})\approx6.39699\times10^{-5}$ with the staircase corner and +$\kappa=6299103187973/10^{17}$ with the round-six corner. The staircase corner is certified by +\texttt{check\_stair.py} at the same integer point; the entrance edge is not changed by the reordering. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex new file mode 100644 index 0000000000..331789a6f1 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/fine-field-lemma.tex @@ -0,0 +1,308 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{claim}{Claim} +\theoremstyle{definition}\newtheorem{definition}{Definition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Idea A made precise: line passes on the fine field of one axis} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +This replaces the paragraph ``Idea A'' of \texttt{notes/stack-notes.tex}. It refers to the +pinned upstream sections \texttt{02-streams.tex} (machine model, +Lemma~elementary-streams and its counter paragraph) and \texttt{07-resampling.tex} +(lem:tensor-resampling), to \texttt{notes/segmented-inverse.tex} and to PR~\#5's +chirped-correlation blocks. A machine-level simulation of every data movement below is +\texttt{scripts/check\_fine\_field.py}; it checks outputs against the linewise maps +and checks the movement bounds of Lemma~\ref{lem:fine} case by case. + +\section{Setting} + +Fix an axis $i$ of the padded box. Its box length is $n=t_i\in\{r/2,r\}$, a power of two. +Collapse the address fields before axis $i$ to one field $X$ and those after it to one +field $Y$ (upstream's collapsing convention). An entry is a record of $b=O(p)$ bits. +Movement is counted in records; a record move costs $b$ head steps. Put +$V=|X|\,n\,|Y|$ (records), choose $f$ with $2^f\mid n$, write the axis coordinate as +\[ j=J2^f+u,\qquad 0\le u<2^f,\quad 0\le J1-1/\sigma-W2^{-f}$, a positive fraction of $J$ since $\theta$ is small. +For $(s,t,2^f,W)=(1009,1024,64,8)$, 6 of 16 slabs fail (\texttt{scripts/check\_fine\_field.py}). Anchoring at the +lowest input, as above, keeps three slabs. +\end{remark} + +\subsection{Virtual slabs and the wrap splice} +For an X-group, the \emph{extended array} holds virtual slabs $v=v_{\rm lo},\dots,v_{\rm hi}$ in +order $(v,Y,u)$, where entry $(v,Y,u)$ is $\tilde x_{v2^f+u}$ of line $(X,Y)$. Here +$v_{\rm lo}=J'(0)=\lfloor-W/2^f\rfloor=-1$ and $v_{\rm hi}=\max\{J'(J)+2: J2^fn_\pi$: the virtual range maps to one physical interval of length $2^f$ +starting at $v2^f+u\bmod\pi$, which meets two consecutive slabs, split at the shift $\rho$. +\end{itemize} +When $\rho=0$ (the input period of $B_0$ is $t_i$) every virtual row is an aligned copy. +\end{claim} +\begin{proof} +$[v2^f,(v+1)2^f)$ has length $2^f<\pi$ and lies in $[-\pi,2\pi)$, so it contains at most one +multiple of $\pi$. If none, its image mod $\pi$ is one interval of length $2^f$, which meets at +most two slabs, each in an increasing run. If it contains $\pi$ it is $v=n_\pi$, its part below +$\pi$ is $[n_\pi2^f,\pi)$ inside slab $n_\pi$, and its part above maps to $[0,2^f-\rho)$ inside +slab~$0$. It cannot contain $0$ unless $v=0$, where the range starts at $0$. +\end{proof} + +\paragraph{Building it.} Tape IN holds the array; first copy the X-group to tape CP ($G$ reads, +$G$ writes, one return). For each $v$ park IN at row $(a_v,0)$ and CP at row $(b_v,0)$. For +$Y=0,\dots,|Y|-1$ read the two runs in $u$ order, each head finishing its slab row, and write +every value to E0, E1, E2 in the same step. Each head advances exactly $2^f$ per $Y$, so $B$ per +virtual slab. A single head would pay $|Y|2^f$ per row to jump between the two physical slabs, +i.e.\ $\Theta(|Y|B)$ per spliced slab; the second head is what makes the splice linear. The +sequence of $a_v$ is $n_\pi-1$ (for $v=-1$), $0,1,\dots,n_\pi$, then small indices again, so IN +seeks across the group at most four times and CP at most twice. + +\subsection{Forward schedule}\label{sec:fwd} +Tapes: IN, CP, E0, E1, E2, OUT, ST (state), VB (validity bitmap over $Y$), AX (auxiliary rows), +FIN (final states), BUF (window buffer), DJ (per-slab data), descriptor and counter tapes. + +\emph{Validity.} VB holds $\prod_h[y_h<\text{bound}_h]$ over $Y$ in $Y$ order. Build it from the +innermost $Y$ axis outward: the bitmap for axes $h..$ is the concatenation over digit values of +copies of the bitmap for axes $h+1..$, or of zeros above the bound. Each level costs twice its +size and sizes at least double, so building costs at most $2|Y|$ per tape. $X$-validity is +computed once per group by an odometer, $O(L)$ against a group of $G\ge n$ records. + +For each $X$ in order: +\begin{enumerate} +\item If $X$ is invalid, advance IN by $G$ and write $n_sB$ zeros to OUT, $n_s|Y|\xi$ to AX and +$|Y|\Sigma$ to FIN. +\item Otherwise build the extended array and write $|Y|\Sigma$ zero states to ST. +\item For $J=0,\dots,n_s-1$: if $J2^f\ge m$ write a zero slab and zero auxiliary rows. Otherwise +seek E$r$ to row $(J'(J)+r,0)$ for $r=0,1,2$, and ST, VB to their starts. For each $Y$: +read the VB bit; copy $2^f$ records from each of E0, E1, E2 into BUF, which then holds +$\tilde x$ on $[J'2^f,(J'+3)2^f)$; read the $\Sigma$-record state. If valid, run $K_J$ with +$D_J$, step ST back $\Sigma$ and write the new state. Write the $2^f$ outputs (zeros if invalid +or $k\ge m$) to OUT and the $\xi$-record auxiliary row to AX. +\item Copy ST to FIN. +\end{enumerate} + +\emph{Invariant.} At the start of $(J,Y)$, head E$r$ is at row $(J'(J)+r,Y)$, ST at record $Y$, +VB at bit $Y$, and OUT, AX at position $(X,J,Y)$ of slab order. It holds at $Y=0$ by the seeks, +and each step advances E$r$ by one row, ST by $\Sigma$, VB by one, OUT by $2^f$ and AX by $\xi$. + +\emph{Correctness.} By induction on $J$, state record $Y$ of group $X$ equals the linewise +state of line $(X,Y)$ after slabs $0..J-1$: only step $(J,Y)$ touches record $Y$, and the slabs +of each line are visited in increasing $J$. By Claims~\ref{cl:window} and \ref{cl:splice}, BUF +contains the exact values the linewise kernel reads, so outputs, states and auxiliary rows +agree. Invalid lines keep a zero state and get zero outputs, as the linewise rule writes. No +padded box entry $j\in[\pi,n)$ is read (Claim~\ref{cl:splice}), and every output position is +written once, so the box keeps its full size and slab order. + +\emph{Movement per valid group.} IN: $\le6G+n_eB$ (entering the group, copy, return, four +cross-group seeks, the build reads). CP: $\le3G+n_eB$. Each E$r$: $n_eB$ writes, a return +after the build and one at the next group, and in the main loop $B$ per slab plus a re-seek of +at most $B$ (head ends at $J'+r+1$, needs $J'(J+1)+r\in[J'+r,J'+r+2]$), so $\le3n_eB+2n_sB$. +OUT: $G$, plus one final return of $V$ in total. ST: $4|Y|\Sigma$ per slab and $4|Y|\Sigma$ at +the ends. VB: $2|Y|$ per slab. AX: $|Y|\xi$ per slab plus a final return. Summing with +$G=n_sB$: +\[ + |X|B(16n_s+11n_e)+V+\tfrac{4\Sigma+2\xi+2}{2^f}V+4|X||Y|\Sigma , +\] +which is the bound in (b). Invalid groups cost less. + +\subsection{Backward schedule}\label{sec:bwd} +Input is the forward output Z (slab order), AX and FIN. For each valid $X$: copy its $|Y|\Sigma$ +final states from FIN to ST; for $J$ from $\lfloor(m-1)/2^f\rfloor$ down to $0$, seek Z and the +output tape to slab $(X,J)$ and AX to row $(X,J,0)$; for each $Y$ read the slab row into BUF and +its auxiliary row, read the state, run the backward kernel over $u$ \emph{decreasing} inside +BUF, write the new state, and write the $2^f$ outputs in increasing $u$. Lines are independent, +so visiting $Y$ in increasing order inside a decreasing-$J$ sweep is legitimate; only the order +along each line matters. Invariant and induction are as in the forward case with $J$ +descending, and AX row $(X,J,Y)$ is read at the position where it was written. + +Movement: Z and the output each read or write $B$ and seek back $2B$ per slab, plus entering +the group ($\le2G$): $\le5G$ each, and one final return of the output ($V$). AX: +$3|Y|\xi$ per slab. ST: $\le4|Y|\Sigma$ per slab plus loading. VB: $2|Y|$ per slab. This gives +(c). If a backward-type kernel needs neighbouring slabs (the second $M^{-1}$ after the backward +solve), use the three-tape window of Section~\ref{sec:fwd} with $J$ descending: $J'$ is +non-increasing with steps at most $2$, and the forward bound applies. + +\subsection{Per-slab data and setup} +$D_J$ consists of $J'(J)$, the centres $c(k)$ and fractional offsets for $k$ in slab $J$, the +block boundaries and $q$-counters, the list of wraps in slab $J$, and (for Woodbury) the +elimination factors of the wraps in slab $J$. None depends on $X$ or $Y$. They are produced once +per axis by incrementing the $q$-counters along $J$, $O(2^fp)$ bit operations per slab, and stored +on DJ in $J$ order; DJ is swept once per X-group. Since it is read once per group and not per +line, the total is $|X|\cdot|D|$, with $|D|$ the size of all $D_J$ (bounded in +Section~\ref{sec:instances}). This replaces the notes' per-chunk odometer test, which is no +longer needed: validity is one VB bit per slab row. A block of the line algorithm that +straddles a slab boundary is recomputed from BUF by both slabs; with blocks of length at most +$W\le2^f/4$, at most two partial blocks occur per slab row, so kernel work is at most +$(1+2W/2^f)\le3/2$ times linewise. + +\subsection{Instances and the conditions (W1)--(W3)}\label{sec:instances} +\begin{itemize} +\item $\mathsf S'$, $A$, $B_0$, $E$: windowed, no state ($\Sigma=\xi=0$). $W=3m+3$ for +$\mathsf S'$ (notes), the halo of $E$. +\item $M^{-1}$ via PR~\#5's chirped correlation: each segment block has length at most +$\lambda=\lfloor1/\theta\rfloor+1$ and reads a halo $w$; take $W\ge\lambda+2w$ so every segment +meeting slab $J$ lies in BUF and is recomputed there. No state. The segment crossing the period +boundary (``stitched from the two line ends'' in \texttt{segmented-inverse.tex}) is read through +$\tilde x$, i.e.\ through the halo slabs $v=-1$ and $v\ge n_\pi$; no separate stitching. +\item Woodbury. $N$ is the same matrix on every line of axis $i$, so $C=I+V^{\mathsf T}M^{-1}U$ +and all its elimination factors are line-independent and live in $D_J$: $O(w^2)$ words of +precision $P$ per wrap, $|D|=O((\theta n+1)w^2P/b)$ records per axis, read once per group, a +fraction $O(\theta w^2P/b)$ of $V$ even when $|Y|=1$. Per line only right-hand sides are +carried. Forward sweep: the state is the running reduced right-hand side of the current block +row ($2w$ words) and the cyclic-border accumulator for the last block row ($2w$ words), so +$\Sigma=4wP/b$; the auxiliary row stores the reduced right-hand side of each wrap in the slab, +$\xi=(\lceil\theta2^f\rceil+1)\,2wP/b$. After slab $n_s-1$ every line of the group solves its +last $2w\times2w$ border system (factor in $D$) for $x_{\rm last}$, kept in FIN. Backward sweep: +state $(x_{k+1},x_{\rm last})$, $4w$ words; it reads the auxiliary rows in reverse. +\item Conditions. With the recentred sub-blocks $P\le2Q+O(\log s)=O(b)$. Then (W3) needs +$2^f\ge C w$ and $\theta w\le c$; with $\alpha^2\approx Q/(48d)$, $w=O(\sqrt d)$ and +$\theta\approx1/(4dL^y)$, so $\theta w\to0$, and (W1) with $W\ge\lambda+2w=\Theta(dL^y)$ gives +$2^f=\Theta(dL^y)$, $f=O(\log L)$. (W2) holds since $s_i\ge\tfrac45 t_i\ge r/4\gg2^f$. +\end{itemize} + +\subsection{Total} +Per axis: exposure and restoration $12fVb$; each forward-type pass at most $28Vb$ and each +backward-type pass at most $11Vb$ up to the terms $11|X|(n_e-n_s)B=O(V2^f/n)$, +$O(V(\Sigma+\xi)/2^f)$ and $O(|X||Y|\Sigma)$, all $O(V)$ by (W3) and $o(V)$ as $n_s\to\infty$; +the setup terms above are $o(Vb)$. Over $d$ axes this is $O(Vb\,d(\log L+P))$, as the notes +claim. \qed + +\section{Changes to the notes' paragraph} +\begin{enumerate} +\item The centred window $J'-1..J'+1$ with $J'=\lfloor J/\sigma\rfloor$ misses inputs; anchor +$J'$ at the lowest input read and use $J',J'+1,J'+2$ (Claim~\ref{cl:window}), with +$2^f\ge4W+4$. $J'$ moves by $0$, $1$ or $2$ per slab (2 occurs for $B_0$). +\item The wrap splice needs two heads advancing in lockstep over $Y$ (Claim~\ref{cl:splice}); +copying ``the boundary slabs'' with one head costs $\Theta(|Y|)$ per record. The tail splice +pairs slab $n_\pi$ with slab~$0$, and the halo slabs pair consecutive slabs shifted by +$\pi\bmod2^f$. (W2) $\pi\ge3\cdot2^f$ keeps every virtual slab on at most two physical slabs. +\item Per-line state for all $|Y|$ interleaved lines is an array in $Y$ order on its own tape, +swept once per slab; auxiliary data for the backward sweep is an array in $(X,J,Y)$ order. Both +must fit in a slab row, which is (W3), and this is what lower-bounds $2^f$ besides the window. +\item The Woodbury factors are line-independent; only right-hand sides are per line. Storing +factors per line (as ``per-line state'' suggests) would cost $\Theta(w^2)$ per wrap per line and +violate (W3) when $\theta w^2P/b$ is not small. +\item Per-chunk validity by an odometer over $Y$ is replaced by a precomputed bitmap read in +lockstep; the hypothesis ``chunk volume $\gg\ell^2$'' is not needed. +\end{enumerate} + +\section{Machine check} +\texttt{scripts/check\_fine\_field.py} represents every array as a tape with one head and counts every head +step. It runs exposure, a forward pass (windowed periodic map with $k$-dependent weights, a +two-word recurrence state, sparse wrap records to AX), a backward pass seeded from FIN that +reads AX in reverse, and restoration, for twelve shapes: $s\in\{13,29,53,61,103,107,127\}$ +(prime, so $s\bmod2^f\ne0$), $2^f\in\{4,8,16\}$, $|Y|\in\{1,\dots,32\}$ with invalid $Y$ +coordinates, $|X|\in\{2,3,4\}$ with invalid groups, and expansion, compression and $s\to s$ +maps. All outputs equal the linewise maps; every case satisfies the bounds (a)--(c). Measured +forward $12.8$--$25.8\,V$, backward $3.8$--$9.6\,V$, exposure exactly $6V$ per bit; on longer +lines ($n=256$--$1024$, $2^f=16$--$64$) forward $18.4$--$21.3\,V$ and backward $9.0$--$11.3\,V$, +independent of $|Y|\in\{1,16,64\}$. +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/flag-basis.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/flag-basis.tex new file mode 100644 index 0000000000..5647021edd --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/flag-basis.tex @@ -0,0 +1,88 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{A common flag basis for the two-stage interchange} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +The partial-swap batching lemma (\texttt{partial-swap-batching.tex}) compiles an edge of rank $a>m/2$ into +$m-a$ corner transpositions and one aligned block, after one unimodular change of basis $S_0$. A generic $S_0$ +puts every corner in the open Bruhat cell, so the corner transpositions are reversed and each costs one +singleton call. This note gives one rational basis in which the corners of every auxiliary and centre edge of +the two-stage motif are lower triangular, so their transpositions form one contiguous run. + +\paragraph{Runs.} For an idempotent $p$ of any rank, the lower--lower Bruhat involution of $S_p$ is exactly +$\{H_i\leftrightarrow D_j:(i,j)\text{ a rightmost pivot of }p\}$: the rank function of the blocks of rows $1..i$ and +columns $j..2m$ of $S_p$ is that of $p$ on the $H\times D$ part and that of the identity elsewhere, for the $H$ rows +and the $D$ rows alike. In particular $S_p$ has exactly $\operatorname{rank}p$ transpositions, with no condition on +$\operatorname{rank}p$. A maximal run of pivots +$(i,j),(i+1,j+1),\dots,(i+w-1,j+w-1)$ is one interchange of the contiguous chunks $H_{[i,i+w)}$ and $D_{[j,j+w)}$: +the aligned case is PR~\#10's middle block, and shifted runs are already PR~\#10's corner block. +An edge of rank $r\le m/2$ is one child exactly when its $r\times r$ block (first $r$ rows, last $r$ columns) is +lower triangular with nonzero diagonal; an edge of rank $r>m/2$ compiles to two children (the corner run and the +aligned middle block of width $2r-m$) exactly when its $(m-r)\times(m-r)$ corner is lower triangular with nonzero +diagonal. These are closed conditions, so they must hold through the structure of the basis. + +\paragraph{Construction.} Write $F=\mathbb Q^h$ with the dot product, and let $U,V\in GL_h(\mathbb Q)$ be generic. +For $0\le\betah/2$, the edges $\pi\otimes P_b$ and $P_b\otimes\pi$ compile to $h-r$ +singletons and one block of width $2r-h$; +\item every data-entrance corner (size $2h-1$) is nonsingular. +\end{itemize} +\end{proposition} +\begin{proof} +The first two items are Lemma~\ref{lem:flag}. For the third, the block of $\pi\otimes P_b$ is +$A_b\pi A_b^{-1}C_b$ with $A_b=\tilde A_bU^{\mathsf T}$, so its Bruhat permutation is that of the $h\times h$ idempotent +$A_b\pi A_b^{-1}$, and the partial-swap lemma applies one level down, with a nonzero-polynomial corner condition in $U$ +(in $V$ for the other stage). For the fourth, nonsingularity reduces to four intersection conditions +($\lambda$ restricted to the null space has rank $h$; the null space meets $\operatorname{span}\mu$ trivially; the dual null +space restricted to $\operatorname{span}\mu$ has rank $h$; the dual span meets $\operatorname{span}\lambda$ trivially), each with an +explicit witness ($U^{\mathsf T}t_1=V^{\mathsf T}t_2=e_0$; $e_0,e_{h-2}$; $e_{h-1},e_{h-1}$; $e_{h-1},e_1$), followed by the choice of $W$. +The motif has finitely many edge classes, so the product of all these nonzero polynomials is nonzero on the +irreducible parameter space, and a rational point avoids its zero set. +\end{proof} + +\paragraph{Saving.} With the global-matching side circuit (\texttt{independent/two-stage-bit/gmside.py}, $R=403248$ +at $h=47$) and the profiles above, with every side-role edge charged by its factor rank through the third item\n(the side chains come from \texttt{side\_chains.py}), the batched moment certifies $a_b=15479/10^9$ at $h=47$. + +\paragraph{Checks.} \texttt{flagbasis.py} builds $S$ exactly (with generic coefficients; the statements are +Zariski-open, so small coefficient ranges can hit the closed exceptional set) and computes the full Bruhat profile of every edge class +modulo $2^{61}-1$ (and exactly over $\mathbb Q$ for a sample at $h=6$): all auxiliary lines in both stages, all centre +edges and sampled data pairs at $h=6,7,8$ match the proposition. At the working dimensions, \texttt{flag\_existence.py 47} (and \texttt{46}) evaluates every +nonvanishing condition at one integer point modulo $2^{61}-1$: the corner diagonal factors and inner corners on every +line, and both data-entrance factors on sampled pairs (the family is invariant under $GL_h\times GL_h$, which acts +transitively on the pairs, so one nonzero value per condition suffices). A nonzero value modulo $p$ at an integer +point shows the polynomial is not identically zero. Negative controls: a dense generic basis gives +singleton corners; PR~\#16's nested basis merges the stage-two class only. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex new file mode 100644 index 0000000000..319f644763 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/partial-swap-batching.tex @@ -0,0 +1,110 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Batched recursion for partial-swap frames} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +\paragraph{Setting.} In the two-stage bit motif (Paureel's fork of \texttt{CrocSwap/integer-mult-bounds}, +\texttt{notes/two-stage-construction.tex} and \texttt{notes/direct-swap-transfer.tex}), frames are partial +swaps +\[ + S_p=\begin{pmatrix}I-p&p\\p&I-p\end{pmatrix} +\] +on the paired fields $(H,D)$, where $p$ is an idempotent of rank $a$ in $m$ coordinates. A frame change +along an edge is a partial swap $S_{V\ominus U}$. In the recursion each lower--lower Bruhat transposition is +one recursive interchange call. Batched recursion (\texttt{CrocSwap/integer-mult-bounds} PR~\#10, +\texttt{notes/projector-batching.tex}) charges an order-preserving run of $t$ aligned transpositions as a +single interchange of width $tb$. Below we show that the same batching applies to partial-swap frames. + +\begin{lemma}[Partial-swap factorization]\label{lem:psbatch} +Let $p$ be an idempotent of rank $a$ with $m/22^{-18}, +\] +from four components. It points to where each one is proved or checked. + +\section{Components} + +\paragraph{The stack.} Ideas A--E (\texttt{stack-notes.tex}, \texttt{segmented-inverse.tex}, +\texttt{fine-field-lemma.tex}) drive $\epsilon$ toward $1$. The binding row is then the simultaneous +butterflies, $\epsilon(1-\lambda')$, with $\lambda'>\max(\tau,\sigma,\chi,\text{leaf})$. The reservations force +$\epsilon<1/(2-\lambda')$, so the supremum of $\kappa$ is $\min(a_b,(1-\beta)a_c)/(1+\cdot)$. + +\paragraph{Bit side: the batched two-stage interchange.} This is the two-stage bit motif with partial-swap +frames, with the batched recursion extended to partial-swap frames (\texttt{partial-swap-batching.tex}, +its Lemma~1). At $h=32$, $m=1024$, it certifies $a_b=22157/(5\cdot10^9)\approx4.43\cdot10^{-6}$. +This side does not bind. + +\paragraph{Complex side: PR~\#7's network, fully batched.} PR~\#7's complex network at $h=28$ +($m=21952$), evaluated under PR~\#15's full batching: every nonzero residual edge, of every rank, is one +whole-residual child call. We rebuilt the residual histogram from our own producer, labels and role +compilation (\texttt{independent/complex-network/fullbatch\_hist.py}) and certified the saving by exact +bisection on the moment equation with certified upper bounds on $\ln$ +(\texttt{fullbatch\_cert.py}). This gives $a_c\ge1048009/(2.5\cdot10^{11})\approx4.192\cdot10^{-6}$ (PR~\#15 reports +$4191487/10^{12}$ from its own labels), and this side binds. + +\paragraph{Guard.} The coefficient-depth guard needs no path-topology assumption. Every child call of the +batched recursion acts on at most $(m-1)/m$ of its parent's axes, and a node has at most $s_c$ children in +sequence. So the dependency depth is at most $d^{C_1}$ with $C_1=1+m_c\ln s_c$, and Idea~D takes $x$ with +$\epsilon C_1<1+x$ (\texttt{scripts/certificate\_round3.py}, guard mode \texttt{crude}). Any finite $C_1$ +gives the same $\kappa$, since $x$ does not enter it; with $x\approx8.4\cdot10^5$ the packed-product and +record-regime rows hold for sufficiently large $L$. The witness is stated with this guard only. + +\section{Certificate} + +\texttt{scripts/certificate\_round3.py} evaluates the rows and constraints exactly for any pair $(a_b,a_c)$. +With $a_b=22157/(5\cdot10^9)$, $a_c=1048009/(2.5\cdot10^{11})$, $\beta=1/1000$ and the crude guard: +\begin{itemize} +\item every constraint is strict; +\item the binding row is the simultaneous butterflies; +\item $\kappa=13086957581/(3.125\cdot10^{15})$. +\end{itemize} +\texttt{independent/complex-network/fullbatch\_hist.py 28} followed by \texttt{fullbatch\_cert.py} +recomputes $a_c$ and $\kappa$. Our histogram differs from PR~\#15's in the smallest ranks, with the same total +$s_c$, and certifies at least its value. + +\section{What this rests on} + +\begin{itemize} +\item The pinned upstream manuscript and its interfaces. +\item Colkitt's compact controls. +\item PR~\#5's chirped correlation, with PR~\#10's correction of its Gaussian input error. +\item PR~\#7's ternary producer and complex network. +\item PR~\#10's batched recursion and controlled projector basis; we checked its edge forms and found basis witnesses at $h=8$ to $14$. +\item PR~\#13's third whole-residual class and PR~\#15's full batching of every residual rank, with an orthonormal residual basis on every edge. +\item Paureel's two-stage motif. +\end{itemize} +Our own components: +\begin{itemize} +\item Ideas A--E; +\item the partial-swap batching lemma; +\item an independent rebuild and certification of the fully batched complex saving; +\item the topology-free guard. +\end{itemize} + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex new file mode 100644 index 0000000000..09ad215ccf --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/segmented-inverse.tex @@ -0,0 +1,316 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Segmented inversion of the Gaussian correction and large-coefficient precision} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +\section*{Setting} +This uses PR~\#5's chirped-correlation lemma for the correlations and its parameter conventions. PR~\#5 is unmerged on \texttt{CrocSwap/integer-mult-bounds}. + +Keep the notation of the one-dimensional resampling lemma: +$2\le s0$, and set $p=6b'$. Then $T\in[4n/b',8n/b')$, +the volume is $Tp=\Theta(n)$, and the address length is $\log_2T=b-(1+x)\log_2b+O(1)$. +Choose $d=\lfloor b^\epsilon\rfloor$ and $r$, $\ell$ from $T$ as before. +The capacity bound becomes $c_j<2^{3b'}$, and the final error bound becomes +\[ + 2^{2b'+4}S\cdot28\cdot2^\gamma T^2L\cdot2^{-6b'}<448\,b'\,2^{-b'+\gamma}<\tfrac12 + \quad\text{whenever }\gamma\le b'/4 . +\] +With $\alpha^2=\lfloor b'/(8d)\rfloor$ we have $\gamma=2d\alpha^2\le b'/4$, and with +$\theta\approx1/(4dL^y)$, $\alpha^2\theta\ge b'/(32d^2L^y)\ge1$ once $2\epsilon+y<1+x$. All uses of +$r\ge2^{a_rp/d}$ in the layer and transform proofs only need $r$ to outgrow every fixed +power of $p$. Here $r=2^{\Theta(b^{1-\epsilon})}$ and $p=\Theta(b^{1+x})$, so that still holds. + +\paragraph{Cutoffs.} Every ``for large $L$'' in this note and in the stack notes is asymptotic only: with $\epsilon=0.9999$ the axis width is $\ell=L^{10^{-4}}$, and conditions such as $\ell-1>3G$ or $\lambda^2\le s/p$ hold only for astronomically large $L$. This is enough for the $O(\cdot)$ statement and gives no concrete range. + +\section{Gaussian row} + +With whole segments as blocks, $w^2=O(d)$ and the oversampling $\theta\approx1/(4d)$ give +$\theta w^3=O(d^{1/2})$ coupling work per output. With the recentred sub-blocks and reduced +oversampling of the next section, the coupling work is $O(1)$ per output. The Gaussian row is +then $O(d\,p^\delta)$, with exponent $\epsilon+(1+x)\delta$ measured in powers of $\log n$. This +is the row used in the certificate. + +\section{Sub-blocks with recentred chirps} + +\begin{lemma}[Recentred blocks]\label{lem:recentred} +Let $\ell,j$ and a centre $c$ lie in one segment. Put $u=\ell-c$, $v=j-c$ and $h=j-\ell$. Then +\[ + X_{\ell,j}=\sigma h^2+2\beta_ch+\theta(v^2-u^2). +\] +Hence the principal block of $N$ on any run of consecutive indices inside a segment +starting at $c$ equals $D_cT_cD_c^{-1}$, with $D_c=\operatorname{diag}(e^{\pi\alpha^2\theta u^2})$ and +$T_c$ the Toeplitz matrix with symbol $e^{-\pi\alpha^2(\sigma h^2+2\beta_ch)}$. +\end{lemma} +\begin{proof} +In a segment $\beta_\ell=\beta_c+\theta u$ and $\beta_j=\beta_c+\theta v$. Expand +$X=(\sigma h+\beta_\ell)^2-\beta_j^2$, use $\sigma-\theta=1$ and $2hu=v^2-u^2-h^2$. +\end{proof} +This was checked in exact rational arithmetic for three centres per pair on all five test cases. + +\paragraph{One Toeplitz inverse serves all blocks.} For $b\in[-1/2,1/2]$ let $T^{(b)}$ be the +$\lambda\times\lambda$ Toeplitz matrix with symbol $e^{-\pi\alpha^2(\sigma h^2+2bh)}$, so +$T_c=T^{(\beta_c)}$ and $T_\lambda=T^{(-1/2)}$. With $\rho_c=e^{-\pi\alpha^2(2\beta_c+1)}\in(0,1]$ +and $G_c=\operatorname{diag}(\rho_c^{-i})$ we have $T_c=G_cT_\lambda G_c^{-1}$, so +$(T_c^{-1})_{ab}=\rho_c^{\,b-a}(T_\lambda^{-1})_{ab}$. + +\begin{lemma}[Envelope]\label{lem:envelope} +Let $|b|\le1/2$, $\alpha^2\ge4$, $\alpha^2\theta\ge1$, $\mu_\pm=e^{-\pi\alpha^2(\sigma\pm2b)}\le e^{-\pi\alpha^2\theta}$ +and $c_\pm=2\mu_\pm\le2e^{-\pi}$. Then +$|(T^{(b)})^{-1}_{ij}|\le\mathcal E(j-i)$, where $\mathcal E(0)=1.12$, +$\mathcal E(h)=2.0001\,c_+^{h}$ for $h>0$ and $\mathcal E(h)=2.0001\,c_-^{|h|}$ for $h<0$. +\end{lemma} +\begin{proof} +$\|T^{(b)}-I\|_\infty\le\mu_++\mu_-+\sum_{|h|\ge2}e^{-\pi\alpha^2(\sigma h^2-|h|)}<0.087$, which gives +the bound $1/(1-0.087)<1.12$ for every entry. For $h=j-i>0$ conjugate by $R=\operatorname{diag}(c_+^{\,i})$: +$RT^{(b)}R^{-1}$ has entries $t_hc_+^{-h}$, whose off-diagonal row sums are at most +$\tfrac12+\sum_{h\ge2}2^{-h}e^{-\pi\alpha^2\sigma h(h-1)}+\sum_{m\ge1}2^{m}e^{-\pi\alpha^2\sigma m(m+1)}<\tfrac12+10^{-10}$. +So $\|(RT^{(b)}R^{-1})^{-1}\|_\infty<2.0001$ and $|(T^{(b)})^{-1}_{ij}|\le2.0001\,c_+^{h}$. The case +$h<0$ is the same with $R=\operatorname{diag}(c_-^{-i})$. +\end{proof} + +\emph{Gohberg--Semencul vectors.} Put $x_c=T_c^{-1}e_0$, $y_c=T_c^{-1}e_{\lambda-1}$, $J$ the +reversal and $Z$ the down shift. Then +$T_c^{-1}=x_{c,0}^{-1}\bigl(L(x_c)U(Jy_c)-L(Zy_c)U(ZJx_c)\bigr)$, with $x_{c,0}\in[0.9,1.1]$. +Every entry of the four vectors is an entry of $T_c^{-1}$, so Lemma~\ref{lem:envelope} bounds it, +and each triangular factor has $\infty$-norm at most $\sum_h\mathcal E(h)\le1.31$. +The partial products need no cancellation: for all $a,b$, +\[ + \sum_k|x_{c,a-k}(Jy_c)_{b-k}|\le1.13\,\mathcal E(b-a),\qquad + \sum_k|(Zy_c)_{a-k}(ZJx_c)_{b-k}|\le4c_+c_-\,\mathcal E(b-a)\le16e^{-2\pi\alpha^2}\mathcal E(b-a), +\] +because the second sum is dominated by $|(T_c^{-1})_{a-1,\lambda-1}(T_c^{-1})_{\lambda-b,0}|$. So +$L(Zy_c)U(ZJx_c)$ is a correction of relative size $e^{-2\pi\alpha^2}$ to $L(x_c)U(Jy_c)$, and both obey the envelope of $T_c^{-1}$ itself. + +\emph{Rescaling.} The vectors of $T_c$ are those of $T_\lambda$ rescaled by $G_c$ as whole +\emph{columns}: $x_{c,i}=\rho_c^{-i}x_i$ and $y_{c,i}=\rho_c^{\lambda-1-i}y_i$. Conjugating each +triangular factor by $G_c$ separately gives the same product, but moves a factor $\rho_c^{\mp\lambda}$ +into $L(Zy)$ and $U(ZJx)$. That factor is up to $2^{9.06\alpha^2\lambda}$, which a fixed-point +correlation would have to carry as extra bits. Under the parameters of the last section +$9.06\alpha^2\lambda\approx1.23\,QL^{y/2}$, which is not $O(p)$, so the column rescaling is required. + +\emph{Storage in two frames.} Store $x^+=(T^{(1/2)})^{-1}e_0$ and $y=T_\lambda^{-1}e_{\lambda-1}$, +both bounded by Lemma~\ref{lem:envelope}, in fixed point with absolute precision $2^{-P}$. Then +\[ + x_{c,i}=r_c^{\,i}x^+_i,\quad r_c=e^{-\pi\alpha^2(1-2\beta_c)}\le1,\qquad + y_{c,i}=\rho_c^{\,\lambda-1-i}y_i,\quad\rho_c\le1 . +\] +Every rescaling factor is at most $1$, so it only contracts stored errors. Storing $T_\lambda$'s +own $x$ in fixed point instead loses $\min(2^{-P},|x_i|)$, which $\rho_c^{-i}$ amplifies by up to +$2^{9.06\alpha^2 i}$. Storing it in floating point avoids that loss, but the setup then needs absolute +precision $P+9.06\alpha^2\lambda$. + +\emph{Error.} Form $r_c^{\,i}$ and $\rho_c^{\,i}$ by repeated multiplication in fixed point, so +every vector entry has error at most $(\lambda+1)2^{-P}$. Let the four correlations round to +$2^{-P}$. Then for $\|z\|_\infty\le1$, the computed $T_c^{-1}z$ is within +$7(\lambda+1)^22^{-P}$. Applying $M_c^{-1}=D_cT_c^{-1}D_c^{-1}$ scales the input by +$D_c^{-1}\le1$ and the output by at most $2^{R_D}$, with $R_D=4.53\,\alpha^2\theta(\lambda-1)^2\le Q$. +The block error is therefore at most $7(\lambda+1)^22^{R_D-P}\|v\|_\infty$. Corner entries for +the capacitance are single entries of the same form, with error at most $7(\lambda+1)2^{-P}$. +Hence +\[ + P=2Q+2\log_2(\lambda+1)+\log_2s+8=O(p) +\] +suffices, with $\lambda=O(dL^{y/2})$ under the parameters of the last section. + +\paragraph{Cuts.} Cut every segment into near-equal blocks of length between $2w$ and +$\lambda$, and treat each cut like a wrap. +\begin{itemize} +\item Coupling entries across a cut have $n=h$ and $X=h(h+2\beta_j)\ge|h|(|h|-1)$, which is +at least $2\theta$ for $h=\pm1$. So they are at most $e^{-2\pi\alpha^2\theta}\le e^{-2\pi}$, and +only entries with $|h|\le w$ matter. +\item All block solves use principal blocks of $N=I+E$, hence $\|M^{-1}\|\le2$. +\item With $\|\Delta\|\le e^{-2\pi\alpha^2\theta}+2.01e^{-2\pi\alpha^2}$, we get +$\|C-I\|\le\|M^{-1}\|\|\Delta\|<0.005$. Also $C^{-1}=I-V^{\mathsf T}N^{-1}U$ gives +$\|C^{-1}\|\le1+\|N^{-1}\|\|\Delta\|<1.01$. +\item The capacitance is cyclic block tridiagonal, with one block per cut or wrap, because +every block has length at least $2w$. Eliminate without pivoting. +\end{itemize} + +\paragraph{Precision and cost.} Inside a block, the chirp $D_c$ spans at most +$e^{\pi\alpha^2\theta\lambda^2}$, that is $4.53\,\alpha^2\theta\lambda^2$ bits. Choose +\[ + \lambda=\Bigl\lfloor\sqrt{Q/(4.53\,\alpha^2\theta)}\Bigr\rfloor, +\] +so that the $D_c$ precision reserve is at most $Q$. The working precision is $P=2Q+O(\log s)=O(p)$. Couplings occur with density +$1/\lambda+\theta$ per output, each costing $O(w^3)$ with $w^2=O(Q/\alpha^2)$. + +\paragraph{Replaced hypothesis.} Upstream's resampling lemma assumes $\theta>p/\alpha^4$, which is used only +to get $\alpha^2\theta>1$ and to bound its Neumann count. Here the Neumann series is gone, so that +hypothesis is replaced by $\alpha^2\theta\ge1$. PR~\#5's lemmas, which assume the hypotheses of the +upstream lemma, are used under this replacement. Every remaining use of $\alpha^2\theta\ge1$ is +$\|N-I\|<2.01e^{-\pi\alpha^2\theta/2}<0.42$. + +\paragraph{Reduced oversampling.} Take $\theta_i\approx\eta=1/(4dL^y)$ in prime selection +(Section~1 of the stack notes), so the padding factor is $\prod_i(1+\theta_i)=1+o(1)$. +Take $\alpha^2=\lfloor Q/(48d)\rfloor$ with $Q=\Theta(p)$. Then $\gamma=2d\alpha^2\le b'/4$, and +$\alpha^2\theta\ge1$ once $Q\ge192\,d^2L^y$, which holds when $2\epsilon+y<1+x$. This gives +$w^2=O(d)$ and $\lambda=\Theta(dL^{y/2})$, so the coupling costs +$O(w^3(1/\lambda+\theta))=O(d^{1/2}L^{-y/2}+d^{1/2}L^{-y})=O(1)$ per output for $y=\epsilon$. +Including the $O(1)$ chirped correlations, each axis costs $O(p^{1+\delta})$ per output. The +Gaussian row is therefore $O(d\,p^\delta)$: exponent $\epsilon+(1+x)\delta$. + + +\paragraph{Tape schedule and setup.} Process one line in increasing index order. +\begin{itemize} +\item For each block, compute $\beta_c$ from the counters that already generate $q_j$, in $O(p)$ +time. +\item Form $r_c^{\,i}$ and $\rho_c^{\,i}$ for $0\le i\le\lambda$ by repeated multiplication in +fixed point at precision $P$. Both are at most $1$. That is $2\lambda$ products, so +$O(P^{1+\delta})$ per output. +\item Rescale the two stored vectors $x^+$ and $y$ into the four Gohberg--Semencul vectors of +$T_c$, and apply the four triangular Toeplitz products as correlations of length $\lambda$ in +fixed point. Each block uses the packed multiplication of the chirped-correlation lemma, at +$O(\lambda P^{1+\delta})$ per block. +\item Write the block's corner entries ($O(w^2)$ numbers) to a capacitance tape in index order. +\item The cyclic block-tridiagonal solve makes one forward sweep and one backward sweep over +that tape, reading fixed-width records in each direction. The single cyclic border is carried +on a separate work tape. +\item A second pass applies $M^{-1}$ to $Uz$, which is supported near cuts and wraps, and then +subtracts. +\end{itemize} +All passes move the line tape $O(1)$ times, so the line costs $O(sP)$ in movement. Arithmetic +costs $O(s(1+w^3(1/\lambda+\theta))P^{1+\delta})$. Setup solves $T^{(1/2)}x^+=e_0$ and +$T_\lambda y=e_{\lambda-1}$, and the same for $\lambda'$ (the final short block of each segment), +once per line at precision $P+O(\log\lambda)$. The Neumann iteration $x\leftarrow e+(I-T)x$ +contracts by $0.087$ per step, so $O(P)$ steps of $O(\lambda^2)$ operations suffice, in +$O(\lambda^2P^{2+\delta})$. This is negligible when $\lambda^2P\le s$, which holds for large $L$. +No step needs more than $P$ bits. + + +\paragraph{Numerical check.} \texttt{scripts/check\_subblock\_inverse.py} cuts the +segments of the $(60,67)$, $\alpha^2=9$ instance into blocks of length $2$ and $3$, solves each +block by its own recentred Toeplitz system at $120$ digits, couples all cuts and wraps by +Woodbury, and matches the direct solve to $3\cdot10^{-64}$, against a target of $2^{-200}$. +\texttt{scripts/check\_reuse\_inverse.py} checks a dense stored inverse of $T_\lambda$ rescaled per block, with a fixed-point negative control. \texttt{scripts/check\_gs\_path.py} tests this path itself: two stored vectors per block +length in fixed point, contracting rescales, four fixed-point triangular products per block, +and Woodbury coupling. On $(241,256)$ with $\alpha^2=17,24$ and $(113,128)$ with $\alpha^2=8$, at +$P=Q+R_D+2\log_2\lambda+8$ bits, it matches the direct solve to $2.1\cdot10^{-49}$, +$3.6\cdot10^{-50}$ and $2.8\cdot10^{-35}$, against targets $7.0\cdot10^{-46}$ and $7.9\cdot10^{-31}$. +It fails as predicted in two negative controls. Dropping the reserve $R_D$ from $P$ gives +errors of $10^{-26}$ to $1$. Storing $T_\lambda$'s vectors in fixed point gives +$4.7\cdot10^{-10}$ and $1.1\cdot10^{-13}$ on $(241,256)$. + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/stack-notes.tex b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/stack-notes.tex new file mode 100644 index 0000000000..2c77009e01 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/notes/stack-notes.tex @@ -0,0 +1,204 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Layout and precision changes beyond the $a_b/2$ ceiling} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +\paragraph{Conditional status.} Every statement here assumes the pinned upstream interfaces and these unmerged results on \texttt{CrocSwap/integer-mult-bounds}: PR~\#5's chirped-correlation Gaussian lemma and its choice of $\alpha$; PR~\#3's compressed complex network; and PR~\#7's networks, with $a_b=3/(4\cdot10^8)$, $a_c=39/10^9$, $m=21952$ and $s=45772350635112192$. These are the round-two values; the round-three savings, and the further results they assume, are in \texttt{round3-combination.tex}; the round-four savings are in \texttt{data-edge-batching.tex}, \texttt{complex-source-frames.tex} and \texttt{scripts/certificate\_round4.py}. + +\paragraph{Deliberate departures from upstream hypotheses.} The prime-interval condition $1-2\epsilon>0$ is replaced by the prime number theorem (Section~1). The resampling hypothesis $\theta>p/\alpha^4$ is replaced by $\alpha^2\theta\ge1$, and the oversampling is reduced to $\theta\approx1/(4dL^y)$ (\texttt{segmented-inverse.tex}). The band $r\ge2^{a_rp/d}$ is replaced by $r\ge2^{p^\mu}$ (Section~1). $K=o(\ell)$ is dropped (Section~2). The guard exponent uses the certified bound $\log_ms<3.8376$ in place of~5; the witness also passes with~5. + +Throughout, $L=\log_2T$ is the address length, $p$ is the coefficient precision, +$d=\Theta(L^\epsilon)$ is the number of axes and $\ell=\Theta(L^{1-\epsilon})$ is the axis +width. Costs are divided by the logical volume $V=\Theta(Tp)$ and expressed as powers +of $L$. Section and lemma names refer to the pinned upstream source +(\texttt{upstream/build/sections}), to Colkitt's compact-control notes +(\texttt{notes/compact-control-*.tex}), and to PR~\#5 (\texttt{notes/fast-gaussian-resampling.tex}). + +\section{Idea D: coefficients longer than $\log n$} + +\paragraph{Scope.} Idea~D removes only the precision part of the $\epsilon<1/2$ wall. On its own it does not move $\kappa$. PR~\#5's Gaussian row, $d^2p^\delta$, comes from about $1/\theta\approx4d$ Neumann terms per axis, and it still caps $\epsilon<1/2$ whatever the precision. Going past $\epsilon=1/2$ needs Idea~D together with Idea~B$'$ (\texttt{segmented-inverse.tex}). PR~\#5's chirped correlation is required: upstream's direct Gaussian windows cost $\sqrt d\,p^{1+\delta}$ per bit once $p\gg L$. + +\paragraph{Change.} Upstream splits each input into $b=\lceil\log_2n\rceil$-bit digits and +sets $p=6b$. Instead use $b'=\lceil b^{1+x}\rceil$-bit digits for a fixed rational $x>0$, +still with $p=6b'$. Then $T\in[4n/b',8n/b')$, so $Tp=\Theta(n)$, and +$L=b-(1+x)\log_2b+O(1)$. Set $d=\lfloor b^\epsilon\rfloor$ and choose $r,\ell$ from $T$ as +upstream does. + +\paragraph{Consequences to check.} +\begin{enumerate} +\item \emph{Capacity and rounding} (\texttt{08-assembly.tex}, eq.~capacity and +eq.~final-error). The coefficients satisfy $c_j\le q(2^{b'}-1)^2<2^{3b'}$, since $q\le2^{b'}$. +The final error is $2^{2b'+4}S\cdot28\cdot2^\gamma T^2L\cdot2^{-6b'}<448\,b'\,2^{-b'+\gamma}$, +using $S\le T<2^{b'}$ and $L0$. +\item \emph{Address bound.} $\log_2(2M)\le C_Mp$ only becomes easier. +\item \emph{Chunk-exchange row.} Upstream writes it as $pK^{\tau-1}$ by counting $O(p/K)$ exchanges from $d\ell=O(p)$. The true count is $d\ell/K=L/K$, so the row is $LK^{\tau-1}$. Idea~C makes it zero. +\item \emph{Guard.} The coefficient-depth bound $\Delta=C_0d^{C_1}$ must be $O(p)$. That needs +$\epsilon C_1<1+x$, measured in powers of $b$. +\item \emph{Prime selection} (\texttt{08-assembly.tex} 120--160). The cited explicit interval +lemma needs $\log x>8d$, which fails for $\epsilon\ge1/2$. Replace it with the prime number theorem. Each interval has length $\eta x=x/(4dL^y)=x/(\log x)^{O(1)}$, so the classical prime number theorem with error term $O(x\exp(-c\sqrt{\log x}))$ already gives more than $d$ primes in each interval for every fixed $\epsilon<1$, with effective constants. The machine only needs existence; it scans and tests by trial division in $n^{o(1)}$ time, since the log of the scan length is $O(\log p+L/d)=o(L)$. +\item \emph{Per-bit costs.} Every row whose cost grows with precision carries only a factor +$p^\delta=b^{(1+x)\delta}$. The pointwise products cost $\log(rp)=\Theta(\ell+\log p)$ per bit. +\end{enumerate} + +\section{Idea C: one chunk per axis} + +\paragraph{Change.} Upstream takes $K=\lfloor d^c\rfloor$ because the layer cost had a factor +$K^\tau$. Colkitt's compact controls removed that factor. Set $K=\ell-1$ instead. In the +transform-layout lemma (\texttt{06-transforms.tex}, lem:synthetic-transform-cost), this gives +$b=(\ell-1)\bmod K=0$ and $q=1$. The target chunk order then equals the source order, so the +procedure performs no chunk exchanges. The prefix holds only the top slot of each long axis. + +\paragraph{Cost.} The layout costs $O(V d)$ and the rounds cost +$O(V\ell d^{\lambda'})$. The rows $dK$ and $pK^{\tau-1}$ become $d$ and $0$. + +\paragraph{Layer hypotheses to recheck} (\texttt{notes/compact-control-layout.tex}). +\begin{itemize} +\item $K/\log p\to\infty$ and $K\ge G+4\ell_p+10$ hold. +\item The reservation count is $q_F+q_B\le3dG/K+2=O(d^2\log p/L)+2$. In powers of $d$ this has +exponent $(2\epsilon-1)/\epsilon$, which must stay below $\lambda'$, that is $\epsilon<1/(2-\lambda')$. Upstream's guard implied this, but Idea~D's relaxed guard does not, so the certificate checks it separately. +\item The simultaneous-layer proposition fixes $K=\lfloor d^c\rfloor$ (\texttt{05-layers.tex} lines 21, 852 and 954--958). Restate it with $K$ supplied as input, in the band $\tfrac12d^{(1-\epsilon)/\epsilon}\le K\le p$. Nothing else uses $K=o(\ell)$: its only uses are $K\le\ell-1$ and the row $dK$. +\item The bound $K\ge d^c/2$ used in that note is replaced by $K\ge\tfrac12d^{(1-\epsilon)/\epsilon}$. +\item The row index uses $q_0=O(\log d)$ whole axes, unchanged. +\end{itemize} + +\section{Idea A: expose only the fine bits of an axis} + +The full statement and proof, with a 12-tape schedule, the corrected input window and the movement bounds, are in \texttt{notes/fine-field-lemma.tex}. \texttt{scripts/check\_fine\_field.py} simulates every data movement on explicit tapes and checks outputs and movement bounds. The summary below is superseded where it differs. In particular, a block reads input slabs $J',J'+1,J'+2$ with $J'=\lfloor(c(J2^f)-W)/2^f\rfloor$, the lowest input read, not $J'-1,J',J'+1$. + +\paragraph{Change.} The tensor interface (\texttt{07-resampling.tex}, lem:tensor-resampling) +makes each axis the innermost address field before running its line algorithm, at cost +$O(Tp\,d^2(1+\ell^\tau))$ upstream and $O(Tp\,d(1+\ell^\tau))$ with nonadjacent routing. +Instead, write the axis-$i$ coordinate as $j=J2^f+u$ with +$f=\lceil\log_2(c\,W_{\rm line})\rceil$. Here $W_{\rm line}$ is the largest window the line +algorithm reads: $3m+3$ for $\mathsf S'$, a block length $\lambda$ plus $2w$ for the inverse of +Idea~B$'$, and the periodic halo. Move only the $f$-bit field $u$ to the innermost address +position, leaving $J$ in place. + +\paragraph{Execution.} The physical order becomes $(X,J,Y,u)$, where $X$ and $Y$ are the +fields of other axes before and after $J$. For fixed $X$, the records with a given $J$ form a +contiguous slab of $|Y|2^f$ records. +\begin{itemize} +\item Every block of the line algorithm reads inputs from at most three consecutive slabs, +$J'-1,J',J'+1$. The input slab index $J'$ is a non-decreasing function of the output slab +index $J$, roughly $J'=\lfloor J/\sigma\rfloor$ for expansion, and the identity for $N$. +\item Keep three read heads on copies of the input array, offset by one slab, and advance them +in step with the output over $Y$ and $J$. When $J'$ repeats, the heads rewind at most three slabs per output slab, so the total movement is still $O(V)$. These are three tapes, each holding a copy; copying costs $O(V)$ per pass. +\item The period $s_i$ is not a multiple of $2^f$. The wrap partner of slab~0 is the slab containing $s_i-1$, and the window must be spliced at $u=s_i\bmod2^f$. For each $X$-group, copy the boundary slabs (about $3|Y|2^f$ records) to a scratch tape and splice from it, at $O(V)$ per pass. The same applies to every application of $E$, whose period is also $s_i$. +\item \emph{Per-chunk setup.} There are $T/2^f$ chunks and $2^f=\Theta(W_{\rm line})$, so upstream's argument that per-line setup is negligible does not apply directly. Compute the block offsets and $q$-counters once per $J$ and copy $O(p)$ bits per chunk. Run the validity test from an odometer over $Y$ with per-axis flags, at $O(\ell)$ per chunk. Allow one extra partial block per chunk, at $O(mp^{1+\delta})$. Each chunk has volume at least $cW_{\rm line}p\gg\ell^2,p$, so all of this is $O(\text{chunk volume}\cdot p^\delta)$. +\item The backward sweep of Idea~B$'$'s cyclic block-tridiagonal solve carries state along the line. It uses one more tape for the previous output slab at the same $Y$, and reads fixed-width records right to left. +\end{itemize} + +\paragraph{Cost.} Exposing and restoring the fine field are two interchanges of $f$-bit +fields, $O(Vf^\tau)$, or $O(Vf)$ by single-bit moves. Over all axes this gives +$O(Vd\log L)$, with exponent $\epsilon+o(1)$. + +\section{Idea E$'$: reversing the CRT axis order by permuted selected-bit additions} + +\paragraph{Problem.} The Chinese remainder layout (\texttt{08-assembly.tex}, explicit +cyclic-convolution layout) reverses the order of the $d$ axes so that every target follows +its controls. With chunk interchanges this costs $O(Vd\ell^\tau)$, which is the row +$(1-\tau)(1-\epsilon)$ and caps $\kappa$ at $a_b/2$. + +\paragraph{Primitive.} Colkitt's Proposition~1 (\texttt{artifacts/compact-control-note.pdf} in his repository, +compact-control selected-bit addition) toggles, for slots $x,y$ of $fK$ bits with selected +positions $j_i=\rho+iK$, each $y_{j_i}$ by $x_{j_i}$ at cost $O(V((f\log p)^\tau+1))$. +\begin{itemize} +\item Every rotation offset in that construction is computed from fields that precede the +rotated field, by Lemma~1 of the note. +\item Replacing the control $z_i=x_{j_i}$ of target segment $i$ by $x_{j_{\pi^{-1}(i)}}$, for a +fixed permutation $\pi$, changes only those offset formulas: +\[ + \sum_i2x_{j_{\pi^{-1}(i)}}t_i2^{j_i},\qquad + \sum_ix_{j_{\pi^{-1}(i)}}(1-2t_i)2^{j_i},\qquad + \sum_i\bigl(y_{j_i}\oplus x_{j_{\pi^{-1}(i)}}\bigr)B^i . +\] +All three are still computable from preceding fields in polynomial time. +\item The guards, the dirty temporaries $u,t,b$, and the repair argument do not depend on the +pairing. The bad-address predicate is a function of the same digits. +\end{itemize} +So the permuted selected-bit addition $y_{j_{\pi(i)}}\mathrel{\oplus}=x_{j_i}$ has the same cost. The four-update identity holds for any control bit that stays fixed during it, and $x$ is never written. The bad-address predicate reads only the $t,u$ digits and the guard bits $g_i$, which contain no selected bit, so the ideal map still preserves the bad set. + +\paragraph{Reversal.} Let $x$ be axes $1,\dots,d/2$ and $y$ axes $d/2+1,\dots,d$, each a slot of +$f=d/2$ chunks with $K=\ell-1$, after the top bits of the long axes are extracted (see the placement constraints below). Let $\pi$ reverse the chunk order. For each level +$\rho\in[0,\ell)$, three permuted additions $x\oplus=\pi^{-1}y$, $y\oplus=\pi x$, +$x\oplus=\pi^{-1}y$ exchange bit $\rho$ of axis $i$ with bit $\rho$ of axis $d+1-i$ for every +$i\le d/2$. The temporaries are reserved from existing axes as in Colkitt's layout note. The +$O(d^2\log p/L)$ reserved axes are reversed by single-bit moves at $O(V\ell)$ each, so +$O(Vd\log p)$ in total. Unequal widths $\ell,\ell-1$ cost $O(d)$ single-bit moves. + +\paragraph{Placement constraints.} These fixes are needed. +\begin{itemize} +\item \emph{Record regime.} Lemma~1 and the repair need record width beyond every power of $p$. At the CRT stage the records are single coefficients. Treat the innermost axis as the record suffix, keep it out of both slots, and move it by $\ell$ single-bit moves at $O(V\ell)$. The back field $b$ sits between $y$ and that suffix. +\item \emph{Equal-width chunks.} First extract the top bits of the long axes by $O(d)$ single-bit moves, then use $K=\ell-1$. Alternatively, choose a long/short pattern that is symmetric under reversal. +\item \emph{Temporaries.} The fields $u,t$ (about $dG$ bits) before $x$ and $b$ after $y$ come from front and back axes excluded from the swap. Reverse the middle axes in place, then re-place the reserved axes and the record axis by single-bit moves, at $O(Vd\log p+V\ell)$. +\end{itemize} +The certificate uses the better of this row and the pairwise-swap row $(1-\tau)(1-\epsilon)$. + +\paragraph{Cost.} The reversal costs $O(V\ell(d\log p)^\tau)$, an exponent of +$1-\epsilon(1-\tau)+o(1)$, so the margin is $\epsilon(1-\tau)$. This exceeds +$\kappa<\epsilon(1-\lambda')$ because $\lambda'>\tau$. + +\section{Resulting margins} +See \texttt{certificate.py}. The rows are: +\begin{itemize} +\item prefix moves, $1-\epsilon$; +\item butterflies, $\epsilon(1-\lambda')$, which binds; +\item fine exposures, $1-\epsilon-o(1)$; +\item the Gaussian maps with recentred sub-blocks (\texttt{segmented-inverse.tex}, last section), $1-\epsilon-o(1)$; +\item chirps, $1-\epsilon-o(1)$; +\item pointwise products, $\epsilon$; +\item reserved axes, $1-\epsilon-o(1)$; +\item CRT reversal, $\epsilon(1-\tau)$. +\end{itemize} +The side conditions are the guard $\epsilon C_1<1+x$; precision $2\epsilon+y<1+x$, where the oversampling is $\theta\approx1/(4dL^y)$; sub-block coupling $y\ge\epsilon$; and +$\lambda'$ above $\tau$, $\sigma$, $\chi$ and the leaf exponent. + + +\appendix +\section{Finite payload alphabets} + +The bit network of PR~\#7 carries ternary payloads. The pinned interchange lemmas are stated for +bit arrays and pointwise bit gates (\texttt{04-swap.tex}: the circuit transfer before +prop:power-interchange, its descriptor paragraph, and lem:chunk-swap). The witness needs their +versions for a fixed finite alphabet. + +\begin{lemma}[Finite alphabet]\label{lem:finite-alphabet} +Let $\Sigma$ be a fixed finite alphabet. Replace ``bit array'' by ``$\Sigma$-array'' and ``pointwise +bit gates'' by ``pointwise gates on $\Sigma$'' in lem:elementary-streams, prop:power-interchange +and lem:chunk-swap. The statements still hold, with the same exponent $\tau$ and constants that +depend on $|\Sigma|$. +\end{lemma} + +\begin{proof} +Encode each symbol of $\Sigma$ as a fixed-width record of $B_0=\lceil\log_2|\Sigma|\rceil$ bits. +This adds one innermost suffix field $[2^{B_0}]$, which lem:chunk-swap allows ($[B]$ in its +statement). Volumes change by the fixed factor $B_0$. +\begin{itemize} +\item Every operation other than a gate is an address permutation. It moves whole records and +never reads their contents, so it is unaffected. +\item A pointwise gate on $\Sigma$ is a fixed finite map applied to records at matching +addresses of a fixed number of aligned role streams. That is item~3 of lem:elementary-streams +with records of $B_0$ bits, so it costs $O(V)$. +\item The frame identity in prop:power-interchange uses only that a common address permutation +commutes with every pointwise gate. That holds for any alphabet. +\item The descriptor paragraph assumes a one-bit payload only to bound $V_j\ge q^{2e_0}$. With +$B_0$-bit records the volume is larger by a factor $B_0$, so the bound still holds. +\end{itemize} +The recursion, its rank count $s$, the role split and the depth-first schedule do not refer to +payload values, so the recurrence $F_k\le(s/W)F_{k-1}+O(1)$ and the bound $O(Ve^\tau)$ hold +unchanged. +\end{proof} + +\end{document} diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate.py new file mode 100644 index 0000000000..71c743a58a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate.py @@ -0,0 +1,91 @@ +"""Exact rational certificate for the conditional witness. + +Changes combined: A (expose only fine axis bits), B (segmented inverse of the Gaussian +correction with recentred sub-blocks and oversampling theta ~ 1/(4 d L^y)), C (one chunk +per axis, K = l - 1), D (digits of (log n)^(1+x) bits), E (CRT axis reversal by permuted +selected-bit additions). + +Costs are powers of L = log2 T ~ log n, with precision p = Theta(L^(1+x)), +d = Theta(L^eps) axes and axis width l = Theta(L^(1-eps)). Fixed powers of log L are +absorbed by the strict gap between the minimum margin and kappa. + +The network savings a_b, a_c and the complex constants (m, s) are assumptions taken +from PR #7 of CrocSwap/integer-mult-bounds. +""" +from fractions import Fraction as Q +import json + +A_B, A_C = Q(3, 4 * 10**8), Q(39, 10**9) # PR #7 bit / complex savings +M_C, S_C = 21952, 45772350635112192 # PR #7 complex network constants +# Certified upper bound on log_m(s). Colkitt's guard uses 5 instead; with 5 this witness still +# passes (eps*C1/(1+x) is about 0.75), so the tighter exponent is not load-bearing. +LOG_M_S = Q(38376, 10000) + +DEFAULT = dict(eps=Q(9999, 10**4), x=Q(3), y=Q(9999, 10**4), beta=Q(1, 2), zeta=Q(1, 10**4), + delta=Q(1, 10**6), lam=1 - Q(74999, 10**13), lamp=1 - Q(74998, 10**13), + kappa=Q(7499, 10**12)) + + +class Failure(Exception): + pass + + +def evaluate(**overrides): + v = dict(DEFAULT, **overrides) + eps, x, y, beta, zeta, delta = v['eps'], v['x'], v['y'], v['beta'], v['zeta'], v['delta'] + lam, lamp, kappa = v['lam'], v['lamp'], v['kappa'] + tau, sigma = 1 - A_B, 1 - A_C + if not S_C ** LOG_M_S.denominator < M_C ** LOG_M_S.numerator: + raise Failure('log_m s bound') + chi = tau + (1 - beta) * max(sigma - tau, 0) + leaf = sigma + beta * (1 - sigma) + c1 = LOG_M_S * (1 - beta) + beta + zeta # depth exponent with exact log_m s + poly = (1 + x) * delta # exponent of p^delta measured in L + constraints = { + 'lambda above tau, sigma, chi': lam - max(tau, sigma, chi), + 'lambda_prime above lambda': lamp - lam, + 'lambda_prime above leaf': lamp - leaf, + 'lambda_prime below one': 1 - lamp, + 'guard: eps C1 < 1 + x': 1 + x - eps * c1, + # alpha^2 theta >= 1 with alpha^2 ~ Q/(48 d), theta ~ 1/(4 d L^y), Q = Theta(L^(1+x)) + 'precision: 2 eps + y < 1 + x': 1 + x - 2 * eps - y, + # coupling cost w^3 (1/lambda + theta) = O(L^((eps - y)/2)) per output is O(1) + 'sub-block coupling: y >= eps': Q(1) if y >= eps else Q(-1), + 'reservations below layer: (2eps-1)/eps < lambda_prime': lamp - (2 * eps - 1) / eps, + 'record regime: eps < 1': 1 - eps, + 'delta < 1/8': Q(1, 8) - delta, + # Upstream's prime_interval_growth (1 - 2 eps > 0) is replaced by the classical prime + # number theorem with error term: eta = 1/(4d) far exceeds exp(-c sqrt(l)) for eps < 1. + 'prime intervals via PNT: eps < 1': 1 - eps, + # K = l - 1 meets the transform lemma's literal hypothesis K <= l - 1. Upstream's + # K = o(l) (eps(1+c) < 1) is deliberately dropped; no cost bound uses it. + } + margins = { + 'prefix moves and top individual round': 1 - eps, + 'simultaneous butterflies': eps * (1 - lamp), + 'fine-bit exposures (A)': 1 - eps - poly, + 'Gaussian maps (B)': 1 - eps - poly, + 'chirps, twists, scalar products': 1 - eps - poly, + 'packed polynomial products': eps, + 'individually processed reserved axes': 1 - eps - poly, + 'CRT axis reversal, best of E and pairwise swaps': max(eps, 1 - eps) * (1 - tau), + } + for name, value in constraints.items(): + if value <= 0: + raise Failure(name) + g = min(margins.values()) + if g <= kappa: + raise Failure('kappa below every margin') + return dict(kappa=str(kappa), kappa_float=float(kappa), min_margin=str(g), gap=str(g - kappa), + binding=min(margins, key=margins.get), c1=str(c1), + constraints={k: str(c) for k, c in constraints.items()}, + margins={k: str(m) for k, m in margins.items()}, + assumptions='PR #7 networks (a_b=3/(4*10^8), a_c=39/10^9); pinned upstream interfaces') + + +if __name__ == '__main__': + out = evaluate() + if not Q(1, 2**27) < Q(out['kappa']) < Q(1, 2**26): + raise SystemExit('dyadic position changed') + json.dump(out, open('certificates/witness.json', 'w'), indent=1) + print('PASS conditional witness kappa =', out['kappa'], '| binding:', out['binding']) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round3.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round3.py new file mode 100644 index 0000000000..c5a9fa429b --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round3.py @@ -0,0 +1,86 @@ +"""Exact rational certificate for the round-3 combinations. + +Our stack (A, B, C, D, E) with separate bit and complex savings. Costs are powers of +L = log2 T ~ log n, with precision p = Theta(L^(1+x)), d = Theta(L^eps), l = Theta(L^(1-eps)). + +Guard modes: + 'pathwise' uses the pathwise depth exponent C1 = 6/5 - beta/5 + zeta, which depends on a + path-topology claim of the batched complex recursion. + 'crude' needs no topology claim. Every child call of the batched recursion acts on at most + (m-1)/m of its parent's axes (bulk children have a1 f <= (m-2h)e/m), and a node has at + most s_c children in sequence, so the coefficient dependency depth satisfies + A(e) <= E + s_c A((m-1)e/m), with leaves costing 8e < 8 d^beta. Over at most + m(1-beta) ln d + 1 levels this gives A <= 2(E + 8 d^beta) s_c^(1 + m(1-beta) ln d), a fixed + exponent at most m_c ln s_c + beta, covered by C1 = 1 + ceil(m_c ln s_c) + 1. Idea D then + takes x with eps C1 < 1 + x. The exponent is huge but fixed, so the O() statement holds. + With such an x, the record-regime hypothesis r >= 2^(p^mu) needs a fixed mu below + (1-eps)/(1+x), which is tiny but fixed. +""" +from fractions import Fraction as Q +import math + +GL = Q(1, 10**16) # strict gaps tau < lambda < lambda' + + +def crude_c1(m_c, s_c): + # upper bound 1 + m_c * ln(s_c), rounded up to an integer + return Q(1 + math.ceil(m_c * math.log(s_c)) + 1) + + +def evaluate(a_b, a_c, beta, guard='pathwise', m_c=21952, s_c=45772350635112192, zeta=Q(1, 10**4)): + tau, sigma = 1 - a_b, 1 - a_c + chi = tau + (1 - beta) * max(sigma - tau, 0) + leaf = sigma + beta * (1 - sigma) + lam = max(tau, sigma, chi) + GL + lamp = max(lam, leaf) + GL + eps = Q(int(1 / (2 - lamp) * 10**16) - 1, 10**16) # reservations force eps < 1/(2-lambda') + c1 = (Q(6, 5) - beta / 5 + zeta) if guard == 'pathwise' else crude_c1(m_c, s_c) + x = max(Q(3), math.ceil(eps * c1) + 1) # Idea D: any fixed x with eps C1 < 1 + x + y = eps + delta = Q(1, 10**22) / max(1, x) + poly = (1 + x) * delta + top = min(eps * (1 - lamp), 1 - eps - poly, max(eps, 1 - eps) * (1 - tau)) + kappa = Q(int(top * 10**17) - 1, 10**17) + cons = { + 'lambda above tau, sigma, chi': lam - max(tau, sigma, chi), + 'lambda_prime above lambda and leaf': lamp - max(lam, leaf), + 'lambda_prime below one': 1 - lamp, + 'beta in (0,1)': min(beta, 1 - beta), + 'guard: eps C1 < 1 + x': 1 + x - eps * c1, + 'precision: 2 eps + y < 1 + x': 1 + x - 2 * eps - y, + 'sub-block coupling: y >= eps': Q(1) if y >= eps else Q(-1), + 'reservations: (2eps-1)/eps < lambda_prime': lamp - (2 * eps - 1) / eps, + 'record regime and primes: eps < 1': 1 - eps, + 'delta in (0, 1/8)': min(delta, Q(1, 8) - delta), + } + margins = { + 'prefix moves and top individual round': 1 - eps, + 'simultaneous butterflies': eps * (1 - lamp), + 'fine-bit exposures (A)': 1 - eps - poly, + 'Gaussian maps (B)': 1 - eps - poly, + 'chirps, twists, scalar products': 1 - eps - poly, + 'packed polynomial products': eps, + 'individually processed reserved axes': 1 - eps - poly, + 'CRT axis reversal (E)': max(eps, 1 - eps) * (1 - tau), + } + bad = [k for k, v in cons.items() if v <= 0] + g = min(margins.values()) + return dict(ok=not bad and g > kappa, bad=bad, kappa=kappa, eps=eps, x=x, c1=c1, + binding=min(margins, key=margins.get), gap=g - kappa) + + +SCENARIOS = [ + ('PR #10 networks', Q(246, 10**9), Q(7, 10**7)), + ('PR #10 complex, our bit producer', Q(252, 10**9), Q(7, 10**7)), + ('batched two-stage bit, PR #10 complex', Q(22157, 5 * 10**9), Q(7, 10**7)), + # headline: PR #7 complex network fully batched (PR #15), rebuilt by independent/complex-network/fullbatch_*.py + ('batched two-stage bit, fully batched PR #7 complex', Q(22157, 5 * 10**9), Q(1048009, 25 * 10**10)), +] + +if __name__ == '__main__': + for name, ab, ac in SCENARIOS: + for guard in ('pathwise', 'crude'): + r = evaluate(ab, ac, Q(1, 1000), guard) + print('%-40s %-8s ok=%s kappa=%.6e (2^%.2f) C1=%s x=%s binding=%s %s' % ( + name, guard, r['ok'], float(r['kappa']), math.log2(float(r['kappa'])), + r['c1'] if guard == 'pathwise' else int(r['c1']), r['x'], r['binding'], r['bad'])) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round4.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round4.py new file mode 100644 index 0000000000..5f6b2c6910 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round4.py @@ -0,0 +1,66 @@ +"""Round-four witness: our stack with PR #24's endpoint-gauge bit network (its published child-width +multiset, certified here by our own moment bisection) and PR #7's complex network fully batched with +complex source frames (h=28). Also reports the witness with our own two-stage bit interchange +(data edges batched, h=47). + +Usage: python3 scripts/certificate_round4.py COMPLEX_HIST_JSON +where the JSON comes from independent/complex-network/fullbatch_hist.py 28 OUT sf.""" +import sys, json, math, os +from fractions import Fraction as Q +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +sys.path.insert(0, os.path.join(HERE, '..', 'independent', 'two-stage-bit')) +sys.path.insert(0, os.path.join(HERE, '..', 'independent', 'complex-network')) +from certificate_round3 import evaluate +import moment +from fullbatch_cert import cert + +BIT_H = 47 + +def bit_saving(): + c = moment.histogram(BIT_H, moment.R_of(BIT_H), True) + a, _ = moment.certify(c) + return a, c + +def pr24_bit_saving(): + d = json.load(open(os.path.join(HERE, '..', 'certificates', 'external', 'pr24-bit-network.json'))) + c = d['counts']; hist = {int(w): n for w, n in d['child_width_multiplicities']} + W, m, s = c['W'], c['m'], c['total_rank'] + assert sum(w * n for w, n in hist.items()) == s and W * m - s == c['deficit'] and max(hist) <= m - 1 + a = cert_exp(hist, W, m) + return a, c + +def cert_exp(hist, W, m, grid=10**13): + # largest a on the grid with sum_t c_t t (m/t)^a / (W m) < 1, using U_t > ln(m/t) and + # e^x <= 1 + x + x^2/2 + x^3 for 0 <= x <= 1/2 (the tail sum_{k>=3} x^k/k! is at most x^3) + from bc import ln_upper + ws = [(Q(t * n, W * m), ln_upper(Q(m, t), rel=Q(1, 10**15))) for t, n in hist.items()] + def mom(a): + tot = Q(0) + for w, U in ws: + x = a * U; assert x <= Q(1, 2) + tot += w * (1 + x + x * x / 2 + x ** 3) + return tot + lo, hi = 0, 10**9 + assert mom(Q(hi, grid)) > 1 + while hi - lo > 1: + mid = (lo + hi) // 2 + if mom(Q(mid, grid)) < 1: lo = mid + else: hi = mid + return Q(lo, grid) + +def complex_saving(path): + d = json.load(open(path)); hist = {int(k): v for k, v in d['hist'].items()} + assert d['sum_ok'] and d['checker']['bad'] == 0 and max(hist) <= d['m'] - 1 + a, gap = cert(hist, d['W'], d['m'], d['s']) + return a, d + +if __name__ == '__main__': + ac, cc = complex_saving(sys.argv[1]) + print('a_c', ac, '(h=%d, R=%d, s=%d)' % (cc['h'], cc['R'], cc['s'])) + ab24, c24 = pr24_bit_saving() + ab, cb = bit_saving() + for name, a in (('PR #24 bit network (headline)', ab24), ('our two-stage bit, h=%d' % BIT_H, ab)): + r = evaluate(a, ac, Q(1, 1000), 'crude', m_c=cc['m'], s_c=cc['s']) + print('%s: a_b=%s ok=%s kappa=%s (%.6e, 2^%.3f) binding=%s %s' % ( + name, a, r['ok'], r['kappa'], r['kappa'], math.log2(r['kappa']), r['binding'], r['bad'])) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round5.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round5.py new file mode 100644 index 0000000000..7340378893 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round5.py @@ -0,0 +1,74 @@ +"""Round-five witness: our stack with the two-stage bit interchange in the common flag basis +(notes/flag-basis.tex) and the global-matching side circuit (independent/two-stage-bit/gmside.py), and PR #7's +complex network fully batched with complex source frames (h=28). + +Usage: python3 scripts/certificate_round5.py COMPLEX_HIST_JSON +where the JSON comes from independent/complex-network/fullbatch_hist.py 28 OUT sf.""" +import sys, math, os +from fractions import Fraction as Q +from math import comb +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +sys.path.insert(0, os.path.join(HERE, '..', 'independent', 'two-stage-bit')) +from certificate_round3 import evaluate +from certificate_round4 import complex_saving +import moment, gmside, side_chains +from collections import Counter + +BIT_H = 47 + +def side_ranks(h): + # factor ranks of every side-role edge (stage one; stage two has the same idempotents in reverse order) + G = side_chains.build(h, side_chains.ORDERS['gm']); C = side_chains.compile_(G); rk = Counter() + for s in range(C['roles']): + d = side_chains.chain_dims(G, C, s) + for a, b in zip(d, d[1:]): rk[b - a] += 1 + return C['roles'], rk + +def inner_children(r, h): + # inner lemma: an edge pi (x) P_b with rank pi = r has the profile of a rank-r idempotent of size h + return [1] * (h - r) + [2*r - h] if 2*r > h else [1] * r + +def flag_histogram(h, R, side=None): + # children per role under the flag basis (Proposition "Profiles"): + # selected aux edge, both stages: one block m-2h and one run h (corners merged) + # rest of each side role: h singletons (not batched here) + # centre roles: their three rank-h edges are one run each + # data: entrance block m-4h+2, corner run h-2 and h+1 singletons; the two (h-1)-edges are a block h-2 plus a singleton + # copy correction: one singleton per pair + v, m, c0 = comb(h, 3), h*h, h; N = v*v; A = v*(R+c0); H = {} + add = lambda w, c: H.__setitem__(w, H.get(w, 0) + c) + for _ in range(2): + add(m-2*h, A); add(h, A) + if side is None: add(1, h*v*R) + else: + assert sum(r*n for r, n in side.items()) == h*R, 'side ranks sum to h per role' + for r, n in side.items(): + for w in inner_children(r, h): add(w, v*n) + add(h, 3*v*c0) + add(m-4*h+2, 2*N); add(h-2, 2*N); add(1, (h+1)*2*N) # entrance corner: one run h-2 (rank-one term on a triangular corner) + for _ in range(2): + add(h-2, 2*N); add(1, 2*N) + add(1, N) + W = 2*N + 2*A; L = 2*v*h*c0; s = W*m - N + 2*L + assert sum(w*n for w, n in H.items()) == s and W*m > s + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=H) + +def bit_saving(side=True): + if side: + R, rk = side_ranks(BIT_H) + assert R == gmside.roles(BIT_H)[0] + else: + R, rk = gmside.roles(BIT_H)[0], None + c = flag_histogram(BIT_H, R, rk) + a, _ = moment.certify(c) + return a, c + +if __name__ == '__main__': + ac, cc = complex_saving(sys.argv[1]) + ab, cb = bit_saving() + print('a_b', ab, '(h=%d, R=%d)' % (BIT_H, cb['R'])) + print('a_c', ac, '(h=%d, R=%d, s=%d)' % (cc['h'], cc['R'], cc['s'])) + r = evaluate(ab, ac, Q(1, 1000), 'crude', m_c=cc['m'], s_c=cc['s']) + print('crude guard: ok=%s kappa=%s (%.6e, 2^%.3f) binding=%s %s' % ( + r['ok'], r['kappa'], r['kappa'], math.log2(r['kappa']), r['binding'], r['bad'])) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round6.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round6.py new file mode 100644 index 0000000000..aeb3e6f6c4 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round6.py @@ -0,0 +1,56 @@ +"""Round-six witness, bit side: the round-five two-stage interchange (flag basis, gm side circuit, side roles batched +one level down, data-entrance run) with copied centres (PR #36's copied retained-centre schedule, here on direct centre +wires). Each centre's second scatter reads from a temporary copy moved to D0 (rank h) while the original stays at D1, +so a centre has two children of width h per stage instead of three, and the rank budget is s = Wm - N + L. +The copy is a temporary, not a role: W is unchanged; the schedule needs one extra role tape. + +Usage: python3 scripts/certificate_round6.py""" +import sys, math, os +from fractions import Fraction as Q +from math import comb +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +sys.path.insert(0, os.path.join(HERE, '..', 'independent', 'two-stage-bit')) +import certificate_round5 as c5 +import moment + +BIT_H = 25 + +def copied_histogram(h): + R, rk = c5.side_ranks(h) + v, m, c0 = comb(h, 3), h*h, h; N = v*v; A = v*(R+c0); H = {} + add = lambda w, c: H.__setitem__(w, H.get(w, 0) + c) if c else None + for _ in range(2): + add(m-2*h, A); add(h, A) + for r, n in rk.items(): + for w in c5.inner_children(r, h): add(w, v*n) + add(h, 2*v*c0) # copied centres: two rank-h children per centre per stage + add(m-4*h+2, 2*N); add(h-2, 2*N); add(1, (h+1)*2*N) + for _ in range(2): + add(h-2, 2*N); add(1, 2*N) + add(1, N) + W = 2*N + 2*A; L = 2*v*h*c0; s = W*m - N + L + assert sum(w*n for w, n in H.items()) == s and W*m > s and max(H) <= m - 1 + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=H) + +def bit_saving(h=BIT_H): + c = copied_histogram(h) + a, _ = moment.certify(c) + return a, c + +RT_H = 23 + +def retained_saving(h=RT_H): + # retained point totals replace the direct centre wires: each total's copy pays U_c -> D0 (rank h-1) and the + # original U_c -> F (rank 1); the totals are side roles built from existing nodes (independent/two-stage-bit/rtgm.py) + import rtgm, cert_rt + R, rk, _, _ = rtgm.side_ranks(h, 'search') + c = cert_rt.rt_histogram(h, R, rk) + a, _ = moment.certify(c) + return a, c + +if __name__ == '__main__': + a, c = retained_saving() + print('a_b', a, float(a), '(retained totals, h=%d, R=%d, s=%d)' % (c['h'], c['R'], c['s'])) + a, c = bit_saving() + print('a_b', a, float(a), '(h=%d, R=%d, s=%d, deficit=%d)' % (c['h'], c['R'], c['s'], c['W']*c['m'] - c['s'])) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round7.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round7.py new file mode 100644 index 0000000000..32c0058d83 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/certificate_round7.py @@ -0,0 +1,75 @@ +"""Round-seven witness, bit side: PR #62's producer (interval strips, core-aware pair assembly) on our two-stage +interchange with retained totals, lifted frames and late copies, and the stage-1 word reordered (deferred readouts, +V leaves); notes/deferred-readout.tex. + +The child-width histogram is rebuilt here from the frozen schedule (certificates/round7/): every slot's frame chain +from the nodes it holds, the deferred readout levels on every target from the garbage-coefficient supports of the +schedule, and the X_S chains from the V-gate order. Frame dimensions are taken from the data file; +independent/deferred-readout/check_frames.py re-derives each of them exactly, and check_word.py replays the word. +Two data-entrance corners are reported: the round-six corner (runs h-2, 1^(h+1)) and the staircase corner (runs h-2, +h-5, 1^6, independent/deferred-readout/check_stair.py). + +Usage: python3 scripts/certificate_round7.py""" +import os, sys +from fractions import Fraction as Q +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path[:0] = [HERE, os.path.join(HERE, '..', 'independent', 'two-stage-bit'), + os.path.join(HERE, '..', 'independent', 'deferred-readout')] +import moment +import deferred as dr +from certificate_round3 import evaluate + +A_C, M_C, S_C = Q(36926111, 5 * 10**11), 576, 119453132304 # round-six complex interchange, h = 24 + +# Every round-seven bit witness: its frozen files and its claimed savings with the two entrance corners. +# The headline is the staircase variant of the last entry. +WITNESSES = [ + dict(name='PR #62 producer, lifted frames, late copies, deferred readouts, V leaves', h=23, + witness='witness_23.json.gz', data='deferred_23.json.gz', + plain=(Q(12599, 200000000), Q(6299103187973, 10**17)), + staircase=(Q(31987, 500000000), Q(1599247689723, 25 * 10**15))), +] +HEADLINE = WITNESSES[-1] +CORNERS = (('plain', 'round-six entrance corner', dr.ROUND6_CORNER), ('staircase', 'staircase entrance corner', dr.STAIRCASE_CORNER)) + + +def build(wit=HEADLINE): + h = wit['h']; W, D = dr.load(h, wit['witness'], wit['data']); S = dr.Schedule(W, D) + cov = S.adjoint(); ylev = S.ylevels(cov); rk = dr.chain_ranks(S); xd = S.xdata() + assert all(sum(x) == h - 1 for x in xd) + return S, rk, ylev, xd + + +def saving(S, rk, ylev, xd, corner): + c = dr.histogram(S, rk, ylev, xd, corner) + assert sum(w * n for w, n in c['hist'].items()) == c['s'] and max(c['hist']) < c['m'] and c['W'] * c['m'] > c['s'] + a, _ = moment.certify(c) + return a, c + + +def kappa(a_b): + return evaluate(a_b, A_C, Q(1, 1000), 'crude', m_c=M_C, s_c=S_C) + + +def certify(wit): + """{'plain' | 'staircase': (a_b, kappa result, histogram)} for one witness, checked against its claims.""" + S, rk, ylev, xd = build(wit); out = {} + for key, _, corner in CORNERS: + a, c = saving(S, rk, ylev, xd, corner(S.h)); k = kappa(a) + assert k['ok'] and (a, k['kappa']) == wit[key], (key, a, k['kappa']) + out[key] = (a, k, c) + return S, out + + +def main(): + for wit in WITNESSES: + S, out = certify(wit) + print('%s: h=%d R=%d, deferred slots %d, V-leaf slots %d' % (wit['name'], S.h, S.R, len(S.readout), len(S.vstart))) + for key, label, _ in CORNERS: + a, k, c = out[key] + print(' %s: s = Wm - N + L = %d (rank sum exact), W = %d, a_b = %s (%.6e), kappa = %s (%.7e) ok=%s' % ( + label, c['s'], c['W'], a, float(a), k['kappa'], float(k['kappa']), k['ok'])) + + +if __name__ == '__main__': + main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_fine_field.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_fine_field.py new file mode 100644 index 0000000000..13d2316ee5 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_fine_field.py @@ -0,0 +1,498 @@ +#!/usr/bin/env python3 +"""Tape-level simulation of Idea A (expose only the fine bits u of one axis). + +Every array lives on a Tape: a list of records with ONE head. Data are read +and written only at the head; each head step (read, write or seek by one cell) +adds one to that tape's move counter. Seeking by a distance D costs D, which is +what a machine pays when it counts D cells off a counter (upstream counter +lemma). The kernel's window buffer is a tape too, but its moves are reported +separately as "local": they are the line algorithm's own work, not transport. + +Pipeline for one axis, with line coordinate j = J*F + u, F = 2^f: + natural (X, J, u, Y) --f digit moves--> (X, J, Y, u) + forward pass (windowed map across <=3 slabs, periodic wrap of period s + spliced at u = s mod F, per-line state on its own tape, + per-(X,J,Y) auxiliary records, Y-validity bitmap) + backward pass (slabs J descending, u descending, state carried right to + left, auxiliary records read back) + (X, J, Y, u) --f digit moves--> natural (X, J, u, Y) +and the result is compared with the same maps applied line by line. +""" +import random +import sys + +MOD = 1_000_003 + + +class Tape: + def __init__(self, name, cells=None): + self.name = name + self.c = list(cells) if cells else [] + self.h = 0 + self.moves = 0 + + def seek(self, pos): + assert pos >= 0 + self.moves += abs(pos - self.h) + self.h = pos + + def read(self): + v = self.c[self.h] if self.h < len(self.c) else 0 + self.h += 1 + self.moves += 1 + return v + + def write(self, v): + if self.h >= len(self.c): + self.c.extend([0] * (self.h + 1 - len(self.c))) + self.c[self.h] = v + self.h += 1 + self.moves += 1 + + +# ---------------------------------------------------------------- digit moves +def move_bit(src, P, M, S, forward, tapes): + """Move one binary address digit past a field of size M. + forward: (P, b, M, S) -> (P, M, b, S); backward: the inverse. + Split on b into two stream tapes, then merge in output order (upstream + elementary-streams lemma, item 2). Returns a fresh output tape.""" + s0, s1 = Tape("split0"), Tape("split1") + out = Tape("moved") + src.seek(0) + for p in range(P): + if forward: + for b in (0, 1): + st = s1 if b else s0 + for _ in range(M * S): + st.write(src.read()) + else: + for m in range(M): + for b in (0, 1): + st = s1 if b else s0 + for _ in range(S): + st.write(src.read()) + s0.seek(0) + s1.seek(0) + for p in range(P): + if forward: + for m in range(M): + for st in (s0, s1): + for _ in range(S): + out.write(st.read()) + else: + for st in (s0, s1): + for _ in range(M * S): + out.write(st.read()) + out.seek(0) + tapes.extend([src, s0, s1]) + return out + + +def expose(tape, nX, nJ, f, nY, tapes): + for i in range(f): + tape = move_bit(tape, nX * nJ * 2 ** (f - 1 - i), nY, 2 ** i, True, tapes) + return tape + + +def restore(tape, nX, nJ, f, nY, tapes): + for i in reversed(range(f)): + tape = move_bit(tape, nX * nJ * 2 ** (f - 1 - i), nY, 2 ** i, False, tapes) + return tape + + +# ---------------------------------------------------------------- the stand-in +class LineOp: + """Windowed map with a periodic input (period `period`), a forward + recurrence with a two-word state (running value, border accumulator), + sparse "wrap" records kept for the backward sweep, then a backward + recurrence seeded by the final forward state.""" + + def __init__(self, n_in_box, period, n_out_box, n_out, center, W): + self.n_in_box, self.period = n_in_box, period + self.n_out_box, self.n_out = n_out_box, n_out + self.center, self.W = center, W + + def weight(self, k, m): + return (1 + 3 * m * m + 5 * m + 7 * (k % 13)) % MOD + + def is_wrap(self, k): + # outputs where the input centre does not advance: density ~ 1 - s/t + return self.center(k + 1) == self.center(k) + + def ysum(self, k, xt): + c = self.center(k) + return sum(self.weight(k, m) * xt(c + m) for m in range(-self.W, self.W + 1)) % MOD + + +A_COEF, C_COEF = 31, 17 + + +def reference(line, op): + """Natural-order, one line at a time.""" + xt = lambda j: line[j % op.period] + z = b = 0 + zs, ys = [], [] + for k in range(op.n_out): + y = op.ysum(k, xt) + z = (A_COEF * z + y) % MOD + b = (b + y) % MOD + zs.append(z) + ys.append(y) + g = z + out = [0] * op.n_out_box + for k in reversed(range(op.n_out)): + g = (C_COEF * g + zs[k] + b + (7 * ys[k] if op.is_wrap(k) else 0)) % MOD + out[k] = g + return zs + [0] * (op.n_out_box - op.n_out), out + + +# ---------------------------------------------------------------- validity +def build_bitmap(boxes, bounds, tapes): + """Tensor product of per-axis indicator vectors, built by repeated copies. + Cost <= 2 * prod(boxes) moves per tape.""" + cur = Tape("bm0", [1]) + for box, bnd in reversed(list(zip(boxes, bounds))): + nxt = Tape("bm") + n = len(cur.c) + for d in range(box): + cur.seek(0) + for _ in range(n): + v = cur.read() + nxt.write(v if d < bnd else 0) + tapes.append(cur) + cur = nxt + cur.seek(0) + return cur + + +# ---------------------------------------------------------------- slab passes +def forward_pass(IN, nX, xvalid, nY, VALID, F, op, h, tapes, K, SIG=2): + """IN holds the input in (X, J, Y, u) order with op.n_in_box per line.""" + nJin, nJout = op.n_in_box // F, op.n_out_box // F + G = nJin * nY * F # input records per X group + OUT, AUX, FINAL = Tape("out"), Tape("aux"), Tape("final") + CP, ST, BUF = Tape("copy"), Tape("state"), Tape("buf") + E = [Tape("E0"), Tape("E1"), Tape("E2")] + lo = lambda k: op.center(k) - op.W + hi = lambda k: op.center(k) + op.W + Jp = [lo(J * F) // F for J in range(nJout)] + # Setup per J (independent of X and Y): J' is non-decreasing and moves by <= 2. + for J in range(1, nJout): + assert 0 <= Jp[J] - Jp[J - 1] <= 2 + vlo = Jp[0] + vhi = max(Jp[J] for J in range(nJout) if J * F < op.n_out) + 2 + for J in range(nJout): + if J * F < op.n_out: + assert hi(min(J * F + F, op.n_out) - 1) < (Jp[J] + 3) * F, "window > 3 slabs" + assert -vlo <= h and (vhi + 1) * F - op.period <= h * F + F and op.period >= 2 * F + op.n_e = vhi - vlo + 1 + local = 0 + for X in range(nX): + base = X * G + if not xvalid[X]: + # whole group is zero: skip it, write zeros + IN.seek(base + G) + for _ in range(nJout * nY * F): + OUT.write(0) + for _ in range(nJout * nY * K): + AUX.write(0) + for _ in range(nY * SIG): + FINAL.write(0) + continue + # copy the group so two heads can read two slabs at the same Y + IN.seek(base) + CP.seek(0) + for _ in range(G): + CP.write(IN.read()) + # build the extended (virtual, periodic) slabs vlo..vhi on E0,E1,E2 at once + for t in E: + t.seek(0) + for v in range(vlo, vhi + 1): + phys = [((v * F + u) % op.period) for u in range(F)] + slabs = [] + for p in phys: + if p // F not in slabs: + slabs.append(p // F) + assert len(slabs) <= 2, "virtual slab draws from >2 physical slabs" + heads = {slabs[0]: (IN, base)} + if len(slabs) == 2: + heads[slabs[1]] = (CP, 0) + for Y in range(nY): + for sl, (tp, b0) in heads.items(): + tp.seek(b0 + (sl * nY + Y) * F) + for p in phys: + tp, b0 = heads[p // F] + tp.seek(b0 + ((p // F) * nY + Y) * F + p % F) + val = tp.read() + assert p < op.period + for t in E: + t.write(val) + for sl, (tp, b0) in heads.items(): + tp.seek(b0 + (sl * nY + Y + 1) * F) # finish the slab row + slab_off = lambda v: (v - vlo) * nY * F + # per-line state on its own tape, in Y order + ST.seek(0) + for _ in range(nY * SIG): + ST.write(0) + for J in range(nJout): + kfirst = J * F + if kfirst >= op.n_out: + for _ in range(nY * F): + OUT.write(0) + for _ in range(nY * K): + AUX.write(0) + continue + for i, t in enumerate(E): + t.seek(slab_off(Jp[J] + i)) + ST.seek(0) + VALID.seek(0) + for Y in range(nY): + ok = VALID.read() + BUF.seek(0) + for t in E: # gather 3 slab rows + for _ in range(F): + BUF.write(t.read()) + st = [ST.read() for _ in range(SIG)] + outs, aux = [0] * F, [] + if ok: + z, b = st + w0 = Jp[J] * F + for u in range(F): + k = kfirst + u + if k >= op.n_out: + break + c = op.center(k) + acc = 0 + BUF.seek(c - op.W - w0) + for m in range(-op.W, op.W + 1): + acc += op.weight(k, m) * BUF.read() + y = acc % MOD + z = (A_COEF * z + y) % MOD + b = (b + y) % MOD + outs[u] = z + if op.is_wrap(k): + aux.append(y) + ST.seek(ST.h - SIG) + ST.write(z) + ST.write(b) + for v in outs: + OUT.write(v) + assert len(aux) <= K + for i in range(K): + AUX.write(aux[i] if i < len(aux) else 0) + ST.seek(0) + ST.seek(0) + for _ in range(nY * SIG): + FINAL.write(ST.read()) + local = BUF.moves + BUF.moves = 0 + tapes.extend([IN, CP, ST, BUF, AUX] + E) + OUT.seek(0); AUX.seek(0); FINAL.seek(0) + return OUT, AUX, FINAL, local + + +def backward_pass(Z, AUX, FINAL, nX, xvalid, nY, VALID, F, op, tapes, K, SIG=2): + nJ = op.n_out_box // F + G = nJ * nY * F + OUT2, ST, BUF = Tape("out2"), Tape("bstate"), Tape("bbuf") + OUT2.c = [0] * (nX * G) # blank tape of the output's length + for X in range(nX): + ST.seek(0) + FINAL.seek(X * nY * SIG) + for _ in range(nY * SIG): + ST.write(FINAL.read()) + if not xvalid[X]: + continue # output already blank (zero) + top = (op.n_out - 1) // F + for J in range(top, -1, -1): + off = X * G + J * nY * F + Z.seek(off) + OUT2.seek(off) + AUX.seek(((X * nJ + J) * nY) * K) + ST.seek(0) + VALID.seek(0) + for Y in range(nY): + ok = VALID.read() + BUF.seek(0) + for _ in range(F): + BUF.write(Z.read()) + ax = [AUX.read() for _ in range(K)] + g, b = ST.read(), ST.read() + res = [0] * F + if ok: + ks = [J * F + u for u in range(F) if J * F + u < op.n_out] + nw = sum(1 for k in ks if op.is_wrap(k)) + for u in reversed(range(len(ks))): + k = ks[u] + BUF.seek(u) + zk = BUF.read() + extra = 0 + if op.is_wrap(k): + nw -= 1 + extra = 7 * ax[nw] + g = (C_COEF * g + zk + b + extra) % MOD + res[u] = g + ST.seek(ST.h - SIG) + ST.write(g) + ST.write(b) + for v in res: + OUT2.write(v) + local = BUF.moves + BUF.moves = 0 + tapes.extend([Z, AUX, FINAL, ST, BUF]) + OUT2.seek(0) + return OUT2, local + + +# ---------------------------------------------------------------- one case +def run_case(name, nXbox, nXval, ybox, yval, nbox, s, t, kind, f, W, seed): + rnd = random.Random(seed) + F = 2 ** f + nY = 1 + for b in ybox: + nY *= b + yvalid = [] + for Y in range(nY): + r, ok = Y, True + for b, v in reversed(list(zip(ybox, yval))): + ok &= (r % b) < v + r //= b + yvalid.append(1 if ok else 0) + xvalid = [1 if X < nXval else 0 for X in range(nXbox)] + if kind == "expand": # A: C^s -> C^t, input s-periodic (splice at s mod F) + op = LineOp(nbox, s, nbox, t, lambda k: (s * k) // t, W) + elif kind == "compress": # B0: C^t -> C^s, input t-periodic, writes s then zeros + op = LineOp(nbox, t, nbox, s, lambda k: (t * k) // s, W) + else: # N: s -> s, s-periodic + op = LineOp(nbox, s, nbox, s, lambda k: k, W) + nat = {} + for X in range(nXbox): + for Y in range(nY): + ok = xvalid[X] and yvalid[Y] + nat[X, Y] = [rnd.randrange(MOD) if ok and j < op.period else 0 + for j in range(nbox)] + # natural layout (X, j, Y) == (X, J, u, Y) + natural = [nat[X, Y][j] for X in range(nXbox) for j in range(nbox) for Y in range(nY)] + tapes = [] + T0 = Tape("natural", natural) + nJ = nbox // F + phys = expose(T0, nXbox, nJ, f, nY, tapes) + m_expose = sum(tp.moves for tp in tapes) + phys.moves + for tp in tapes: + tp.moves = 0 + phys.moves = 0 + # check exposure against the definition of the (X, J, Y, u) order + for X in range(nXbox): + for J in range(nJ): + for Y in range(nY): + for u in range(F): + assert phys.c[((X * nJ + J) * nY + Y) * F + u] == nat[X, Y][J * F + u] + t2 = [] + VALID = build_bitmap(ybox, yval, t2) + m_bitmap = sum(tp.moves for tp in t2) + VALID.moves + VALID.moves = 0 + K = max(sum(1 for k in range(J * F, min(J * F + F, op.n_out)) if op.is_wrap(k)) + for J in range(nbox // F)) + h = 2 + tf = [] + Z, AUX, FINAL, loc_f = forward_pass(phys, nXbox, xvalid, nY, VALID, F, op, h, tf, K) + m_fwd = sum(tp.moves for tp in tf) + Z.moves + VALID.moves + for tp in tf: + tp.moves = 0 + Z.moves = AUX.moves = FINAL.moves = VALID.moves = 0 + tb = [] + OUT2, loc_b = backward_pass(Z, AUX, FINAL, nXbox, xvalid, nY, VALID, F, op, tb, K) + m_bwd = sum(tp.moves for tp in tb) + OUT2.moves + VALID.moves + OUT2.moves = 0 + t3 = [] + back = restore(OUT2, nXbox, nJ, f, nY, t3) + m_restore = sum(tp.moves for tp in t3) + back.moves + # compare with natural-order reference (forward output and final output) + okz = okg = True + for X in range(nXbox): + for Y in range(nY): + zs, gs = reference(nat[X, Y], op) + if not (xvalid[X] and yvalid[Y]): + zs = gs = [0] * nbox + for J in range(nJ): + for u in range(F): + k = J * F + u + okz &= Z.c[((X * nJ + J) * nY + Y) * F + u] == zs[k] + okg &= back.c[(X * nbox + k) * nY + Y] == gs[k] + V = nXbox * nY * nbox + # Proven per-pass bounds from the lemma (records moved, all transport tapes). + B, n_s, SIG = nY * F, nbox // F, 2 + fwd_bound = (28 * V + 11 * nXbox * (op.n_e - n_s) * B + + V * (4 * SIG + 2 * K + 2) / F + 4 * nXbox * nY * SIG) + bwd_bound = 11 * V + V * (3 * K + 6 * SIG + 2) / F + 4 * nXbox * nY * SIG + assert m_fwd <= fwd_bound, (name, m_fwd, fwd_bound) + assert m_bwd <= bwd_bound, (name, m_bwd, bwd_bound) + assert m_expose == 6 * f * V and m_restore == 6 * f * V + rec = dict(name=name, kind=kind, s=s, t=t, F=F, nY=nY, nX=nXbox, V=V, + ok=okz and okg, expose=m_expose / V / f, restore=m_restore / V / f, + bitmap=m_bitmap / nY, fwd=m_fwd / V, bwd=m_bwd / V, + local=(loc_f + loc_b) / V, K=K, splice=s % F) + return rec + + +CASES = [ + # name, X box, X valid, Y boxes, Y valid, line box, s, t, kind, f, W + ("e13/16 f2", 3, 2, (2, 3), (2, 2), 16, 13, 16, "expand", 2, 1), + ("e29/32 f3", 2, 2, (4, 2), (3, 2), 32, 29, 32, "expand", 3, 2), + ("e53/64 f3", 3, 2, (3,), (2,), 64, 53, 64, "expand", 3, 2), + ("e61/64 f4", 2, 1, (2, 2), (2, 1), 64, 61, 64, "expand", 4, 3), + ("e107/128 f4 Y1", 4, 3, (1,), (1,), 128, 107, 128, "expand", 4, 3), + ("c13/16 f2", 3, 2, (2, 3), (2, 2), 16, 13, 16, "compress", 2, 1), + ("c29/32 f3", 2, 2, (4, 2), (3, 2), 32, 29, 32, "compress", 3, 1), + ("c53/64 f3", 3, 2, (3,), (2,), 64, 53, 64, "compress", 3, 2), + ("c103/128 f4", 2, 2, (5,), (3,), 128, 103, 128, "compress", 4, 3), + ("n29 f3", 2, 2, (4, 2), (3, 2), 32, 29, 32, "N", 3, 2), + ("n61 f4", 3, 2, (3, 2), (2, 2), 64, 61, 64, "N", 4, 4), + ("n127 f4 big", 2, 2, (8, 4), (7, 3), 128, 127, 128, "N", 4, 3), +] + +def scaling(): + """fwd/V and bwd/V must stay bounded as |Y|, the X count and the line grow.""" + print("\nscaling (expand, all lines valid):") + print(f"{'nX':>3} {'|Y|':>4} {'line':>5} {'F':>3} {'fwd/V':>6} {'bwd/V':>6}") + for nX, ny, nbox, s, f, W in [(1, 1, 256, 211, 4, 3), (1, 16, 256, 211, 4, 3), + (1, 64, 256, 211, 4, 3), (4, 16, 256, 211, 4, 3), + (2, 16, 512, 487, 5, 6), (2, 16, 1024, 937, 6, 12)]: + r = run_case("scale", nX, nX, (ny,), (ny,), nbox, s, nbox, "expand", f, W, seed=7) + assert r["ok"] + print(f"{nX:>3} {ny:>4} {nbox:>5} {2**f:>3} {r['fwd']:6.2f} {r['bwd']:6.2f}") + + + +def centred_window_check(): + """The notes' window J'-1, J', J'+1 with J' = floor(J s / t) misses inputs: + count output slabs whose inputs reach slab J'+2 (expansion map).""" + print("\nold centred window J'-1..J'+1 (superseded) vs left-anchored J'..J'+2 (lemma); failures below are for the old window:") + for s, t, F, W in [(211, 256, 16, 3), (937, 1024, 64, 12), (1009, 1024, 64, 8)]: + bad = 0 + for J in range(t // F): + jc = (J * F * s // t) // F + lo, hi = (s * J * F) // t - W, (s * (J * F + F - 1)) // t + W + bad += hi >= (jc + 2) * F or lo < (jc - 1) * F + print(f" s={s} t={t} F={F} W={W}: {bad} of {t // F} slabs fail") + + +if __name__ == "__main__": + allok = True + hdr = f"{'case':16} {'ok':4} {'s%F':>4} {'|Y|':>4} {'K':>2} {'exp/Vf':>7} {'fwd/V':>6} {'bwd/V':>6} {'rst/Vf':>7} {'local/V':>8}" + print(hdr) + worst = {"fwd": 0, "bwd": 0, "expose": 0, "restore": 0} + for i, c in enumerate(CASES): + r = run_case(*c, seed=i) + allok &= r["ok"] + for k in worst: + worst[k] = max(worst[k], r[k]) + print(f"{r['name']:16} {'PASS' if r['ok'] else 'FAIL':4} {r['splice']:>4} {r['nY']:>4} {r['K']:>2} " + f"{r['expose']:7.2f} {r['fwd']:6.2f} {r['bwd']:6.2f} {r['restore']:7.2f} {r['local']:8.2f}") + print("worst:", {k: round(v, 2) for k, v in worst.items()}) + print("ALL PASS" if allok else "SOME FAIL") + if "--scale" in sys.argv: + scaling() + centred_window_check() + sys.exit(0 if allok else 1) + diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_gs_path.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_gs_path.py new file mode 100644 index 0000000000..b1e4281c73 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_gs_path.py @@ -0,0 +1,221 @@ +"""Numerical check of the Gohberg--Semencul (GS) path for the recentred sub-block inverse. + +Each block applies M_c^{-1} = D_c T_c^{-1} D_c^{-1}, T_c = G_c T_lambda G_c^{-1}, with T_c^{-1} in +GS form x0^{-1} (L(x_c) U(yt_c) - L(Zy_c) U(Zxt_c)) and four triangular Toeplitz products done in +fixed point at P decimal digits (exact products, then rounding, as packed integer multiplication does). +Here x = T^{-1} e_0, y = T^{-1} e_{n-1}, yt = reversed y, Z = down shift. + +Modes (how the four vectors of T_c are produced): + 0 two-frame fixed point (proposed): store x_+ = T_{+1/2}^{-1} e_0 and y = T_lambda^{-1} e_{n-1}, + both bounded, in fixed point at P digits; every per-block rescale factor is <= 1. Expect PASS. + 1 claimed path, balanced: GS vectors of T_lambda at high precision, stored floating point + (P significant digits), rescaled per block with the rho_c^{+-n} balance between the two + factors of the second product, then converted to fixed point. Expect PASS. + 2 claimed path, unbalanced: as 1 but each factor is conjugated by G_c on its own, so the second + pair carries rho_c^{-n} and rho_c^{+n}: one factor needs ~9.06 alpha^2 n extra integer + bits and the other underflows, dropping the second product. + 3 negative control: GS vectors of T_lambda stored in fixed point at P digits. Expect FAIL. + 4 negative control: mode 0 at P = Q + 2 log2(lambda) + 8 bits, i.e. without the chirp reserve + R_D. Expect FAIL. +Mode 2 is reported only; mode 3 is asserted to fail only where its predicted loss exceeds 2^-Q. +Args: s t alpha^2 Q_bits [P_digits] (P defaults to the bound Q + R_D + 2 log2(lambda) + 8 bits). +Exit status is nonzero if any mode disagrees with its expectation. +""" +from decimal import Decimal as Dm, getcontext, Context, localcontext +from fractions import Fraction as F +import math, sys, random + +argv = [int(a) for a in sys.argv[1:]] or [241, 256, 17, 150] +s, t, a2, Qbits = argv[:4] +getcontext().prec = 160 +BIG = Context(prec=3000) # fixed-point work context: wide enough that no integer part overflows +PI = Dm('3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278') +sig = F(t, s); th = sig - 1 +q = lambda j: math.floor(F(t*j, s) + F(1, 2)); beta = lambda j: F(t*j, s) - q(j) +dec = lambda f: Dm(f.numerator) / Dm(f.denominator) +E = lambda x: (-PI*a2*dec(x)).exp() + +def solve(A, bv, pivot=True): + n = len(A); M = [row[:] + [bv[i]] for i, row in enumerate(A)] + for c in range(n): + if pivot: + p = max(range(c, n), key=lambda r: abs(M[r][c])); M[c], M[p] = M[p], M[c] + for r in range(n): + if r != c and M[r][c] != 0: + f = M[r][c] / M[c][c] + for k in range(c, n+1): M[r][k] -= f*M[c][k] + return [M[i][n] / M[i][i] for i in range(n)] + +# --- the operator N, its wraps and its blocks (same construction as check_reuse_inverse.py) --- +N = [[Dm(0)]*s for _ in range(s)] +for l in range(s): + for j in range(l - 2*s, l + 2*s): + X = (sig*j - q(l))**2 - beta(j)**2 + if X < 60: + N[l][j % s] += E(X) +wraps = [j for j in range(s) if q(j+1) - q(j) == 2] +w = 1 + math.isqrt(int(Qbits / (4.53 * a2)) + 1) +blocks = [] +for i, w0 in enumerate(wraps): + st = w0 + 1; en = wraps[(i+1) % len(wraps)] + (s if i+1 == len(wraps) else 0) + seg = list(range(st, en + 1)) + nb = max(1, len(seg) // (2*w)) + cuts = [round(k * len(seg) / nb) for k in range(nb + 1)] + blocks += [seg[cuts[k]:cuts[k+1]] for k in range(nb)] +lengths = sorted({len(g) for g in blocks}) +assert min(lengths) >= 2*w, (lengths, w) +lam = max(lengths) +RD = 4.5324 * a2 * float(th) * (lam - 1)**2 # chirp D_c span in bits inside one block +Pdig = argv[4] if len(argv) > 4 else math.ceil((Qbits + RD + 2*math.log2(lam) + 8) / math.log2(10)) +PREC = {'d': Pdig} # current working precision, switched per mode +fix = lambda v: BIG.quantize(v, Dm(10) ** -PREC['d']) # fixed point: absolute precision 10^-P +flt = lambda v: Context(prec=PREC['d']).plus(v) # floating point: P significant digits + +def toeplitz(L, b): # T_c for beta = b: symbol exp(-pi a2 (sigma h^2 + 2 b h)) + return [[E(sig*(c-a)**2 + 2*b*(c-a)) for c in range(L)] for a in range(L)] + +def gs_vectors(A): + n = len(A) + x = solve(A, [Dm(int(i == 0)) for i in range(n)]) + y = solve(A, [Dm(int(i == n-1)) for i in range(n)]) + return x, y + +# --- setup, once per block length --- +base = {} +for L in lengths: + with localcontext() as ctx: # absolute precision P + 9.06 a2 L bits + ctx.prec = Pdig + int(9.06 * a2 * L / 3.32) + 30 + x, y = gs_vectors(toeplitz(L, F(-1, 2))) + T = toeplitz(L, F(-1, 2)) + # GS reconstruction check against a dense inverse at this precision + yt = y[::-1]; Zy = [Dm(0)] + y[:-1]; Zxt = [Dm(0)] + x[::-1][:-1] + Ti = [solve(T, [Dm(int(i == j)) for i in range(L)]) for j in range(L)] + rec = max(abs(sum(x[a-k]*yt[b-k] - Zy[a-k]*Zxt[b-k] for k in range(min(a, b)+1)) / x[0] + - Ti[b][a]) for a in range(L) for b in range(L)) + assert rec < Dm(10) ** -(Pdig + 5), rec + with localcontext() as ctx: # proposed: only P (+ guard) digits + ctx.prec = Pdig + 20 + xp, _ = gs_vectors(toeplitz(L, F(1, 2))) # frame beta = +1/2: x_+ = rho_+^{-i} x_i + _, ym = gs_vectors(toeplitz(L, F(-1, 2))) # frame beta = -1/2: T_lambda itself + base[L] = dict(x=x, y=y, xp=[fix(v) for v in xp], ym=[fix(v) for v in ym], + xf=[flt(v) for v in x], yf=[flt(v) for v in y], + xq=[fix(v) for v in x], yq=[fix(v) for v in y]) + +def powers(r, n, store): # r^0..r^{n-1} by repeated multiplication, stored as given + out = [Dm(1)] + for _ in range(n - 1): out.append(store(BIG.multiply(out[-1], r))) + return out + +def block_vectors(L, bc, mode): + """Return the four GS vectors of T_c (x_c, yt_c, Zy_c, Zxt_c) in fixed point.""" + B = base[L]; n = L + rho = (-PI*a2*dec(2*bc + 1)).exp() # <= 1 + if mode in (0, 4): + rr = fix((-PI*a2*dec(1 - 2*bc)).exp()) # rho_+/rho_c <= 1 + pr, pc = powers(rr, n + 1, fix), powers(fix(rho), n + 1, fix) + X, Y = [fix(v) for v in B['xp']], [fix(v) for v in B['ym']] + xc = [fix(pr[i]*X[i]) for i in range(n)] + ytc = [fix(pc[k]*Y[n-1-k]) for k in range(n)] + Zyc = [Dm(0)] + [fix(pc[n-k]*Y[k-1]) for k in range(1, n)] + Zxtc = [Dm(0)] + [fix(pr[n-k]*X[n-k]) for k in range(1, n)] + return xc, ytc, Zyc, Zxtc + X, Y = (B['xq'], B['yq']) if mode == 3 else (B['xf'], B['yf']) + st = fix if mode == 3 else flt + up = powers(flt(rho), n + 1, flt); dn = powers(flt(1/rho), n + 1, flt) # rho^{+-i}, floating + xc = [fix(dn[i]*X[i]) for i in range(n)] + ytc = [fix(up[k]*Y[n-1-k]) for k in range(n)] + if mode == 2: # each factor conjugated by G_c separately + Zyc = [Dm(0)] + [fix(dn[k]*Y[k-1]) for k in range(1, n)] + Zxtc = [Dm(0)] + [fix(up[k]*X[n-k]) for k in range(1, n)] + else: # balanced: rho^{n-k} and rho^{-(n-k)} + Zyc = [Dm(0)] + [fix(up[n-k]*Y[k-1]) for k in range(1, n)] + Zxtc = [Dm(0)] + [fix(dn[n-k]*X[n-k]) for k in range(1, n)] + return xc, ytc, Zyc, Zxtc + +lowmul = lambda v, z: [fix(sum(v[a-k]*z[k] for k in range(a+1))) for a in range(len(z))] +upmul = lambda v, z: [fix(sum(v[b-a]*z[b] for b in range(a, len(z)))) for a in range(len(z))] + +def apply_gs(vecs, z): + xc, ytc, Zyc, Zxtc = vecs + p1 = lowmul(xc, upmul(ytc, z)); p2 = lowmul(Zyc, upmul(Zxtc, z)) + return [fix((p1[i] - p2[i]) / xc[0]) if xc[0] != 0 else Dm(0) for i in range(len(z))] + +# --- bound checks on the exact rescaled factors (Lemma: entry envelope of T_c^{-1}) --- +worst_env = 0.0; worst_p = 0.0 +for g in blocks[:40]: + L = len(g); bc = beta(g[0]); n = L; B = base[L] + rho = (-PI*a2*dec(2*bc + 1)).exp() + kp = 2*(-PI*a2*dec(sig + 2*bc)).exp(); km = 2*(-PI*a2*dec(sig - 2*bc)).exp() + env = lambda h: min(Dm('1.12'), Dm('2.0001') * (kp**h if h > 0 else km**(-h)) if h else Dm('1.12')) + x, y = B['x'], B['y'] + xc = [x[i] * rho**(-i) for i in range(n)]; ytc = [y[n-1-k] * rho**k for k in range(n)] + Zyc = [Dm(0)] + [y[k-1] * rho**(n-k) for k in range(1, n)] + Zxtc = [Dm(0)] + [x[n-k] * rho**(k-n) for k in range(1, n)] + for i in range(n): + worst_env = max(worst_env, float(abs(xc[i]) / env(-i)), float(abs(ytc[i]) / env(i))) + if i: worst_env = max(worst_env, float(abs(Zyc[i]) / env(n-i)), float(abs(Zxtc[i]) / env(-(n-i)))) + for a in range(n): + for b in range(n): + m = min(a, b) + s1 = sum(abs(xc[a-k]*ytc[b-k]) for k in range(m+1)) + s2 = sum(abs(Zyc[a-k]*Zxtc[b-k]) for k in range(m+1)) + worst_p = max(worst_p, float(s1 / (Dm('1.13')*env(b-a))), float(s2 / (Dm(4)*kp*km*env(b-a)))) +print(f'envelope check: max |factor entry| / envelope = {worst_env:.3f}, ' + f'max partial-product term sum / bound = {worst_p:.3f}', 'OK' if worst_env <= 1 and worst_p <= 1 else 'VIOLATED') +ok = worst_env <= 1 and worst_p <= 1 + +# --- full solve per mode --- +random.seed(2) +u = [Dm(random.uniform(-1, 1)) for _ in range(s)] +xdir = solve(N, u) +bid = {} +for k, g in enumerate(blocks): + for j in g: bid[j % s] = k +thr = Dm(2)**(-Qbits - int(math.log2(s)) - 4) +Delta = [[N[a][b] if bid[a] != bid[b] and N[a][b] > thr else Dm(0) for b in range(s)] for a in range(s)] +cols = sorted({b for a in range(s) for b in range(s) if Delta[a][b] != 0}) +target = Dm(2)**-Qbits +# Fixed-point storage of T_lambda's vectors loses min(10^-P, |x_i|) on x_i (y is O(1), so it keeps +# relative precision). The rescale rho_c^{-i} and the chirp ratio D_a/D_b, largest for +# (a, b) = (L-1, L-1-i), amplify that loss. Predict whether it exceeds the target here. +def fp_loss_bits(g): + L = len(g); x = base[L]['x']; lr = math.pi * a2 * float(2*beta(g[0]) + 1) + return max(math.log2(10) * min(-Pdig, float(abs(x[i]).log10())) + + math.log2(math.e) * (lr * i + math.pi * a2 * float(th) * ((L-1)**2 - (L-1-i)**2)) + for i in range(1, L)) +amp = max(fp_loss_bits(g) for g in blocks) +fp_fails = amp > -Qbits +Plow = math.ceil((Qbits + 2*math.log2(lam) + 8) / math.log2(10)) # drops the chirp reserve R_D +print(f's,t=({s},{t}) theta={float(th):.4f} alpha2*theta={a2*float(th):.2f} w={w} lengths={lengths} ' + f'R_D={RD:.0f} bits Q={Qbits} P={Pdig} digits ({Pdig*math.log2(10):.0f} bits)') +for mode, pd, expect in ((0, Pdig, True), (1, Pdig, True), (2, Pdig, None), + (3, Pdig, False if fp_fails else None), (4, Plow, False)): + PREC['d'] = pd; cache = {} + def Minv(vec): + out = [Dm(0)]*s + for k, g in enumerate(blocks): + L = len(g) + if k not in cache: cache[k] = block_vectors(L, beta(g[0]), mode) + z = [fix(vec[g[i] % s] * (-PI*a2*dec(th*i*i)).exp()) for i in range(L)] + yv = apply_gs(cache[k], z) + for i in range(L): out[g[i] % s] = yv[i] * (PI*a2*dec(th*i*i)).exp() + return out + y0 = Minv(u) + MU = [Minv([Delta[r][c] for r in range(s)]) for c in cols] + C = [[(Dm(1) if i == j else Dm(0)) + MU[j][cols[i]] for j in range(len(cols))] for i in range(len(cols))] + try: + z = solve(C, [y0[c] for c in cols], pivot=False) + xs = [y0[r] - sum(MU[j][r]*z[j] for j in range(len(cols))) for r in range(s)] + err = max(abs(xs[i] - xdir[i]) for i in range(s)) + except Exception: + err = Dm(1) + passed = err < target + if expect is not None: ok &= passed == expect + extra = '' + if mode == 2: # integer headroom the unbalanced factor L(rho^-k Zy) needs in fixed point + extra = f' unbalanced factor max log2|entry|={max(float(abs(v).ln()/Dm(2).ln()) for vs in cache.values() for v in vs[2] if v):.0f}' + if mode == 3: extra = f' predicted loss=2^{amp:.0f}' + if mode == 4: extra = f' (P={pd} digits, no chirp reserve)' + exp = 'report only' if expect is None else ('expected PASS' if expect else 'expected FAIL') + print(f' mode {mode}: err={float(err):.3e} {"PASS" if passed else "FAIL"} ({exp}){extra}') +if not ok: raise SystemExit(1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_identities.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_identities.py new file mode 100644 index 0000000000..b4c481350a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_identities.py @@ -0,0 +1,57 @@ +"""Exact checks of the Gaussian correction structure used by the segmented inverse. + +For s < t with sigma = t/s, q_j = floor(t j/s + 1/2) and beta_j = t j/s - q_j, the +exponent of N's entry (l, j) is X = (sigma j - q_l)^2 - beta_j^2. We check, in exact +rational arithmetic: + 1. X = n (n + 2 beta_j) with n = q_j - q_l; + 2. inside a wrap-free segment, X = (1+theta) h^2 - h + theta (v^2 - u^2), with + h = j - l, u = l - l*, v = j - l*, and l* = l - (beta_l + 1/2)/theta; + 3. every pair in different segments (n != j - l) has X >= 2; + 4. for any centre c in the same segment as l and j, with u = l - c and v = j - c, + X = sigma h^2 + 2 beta_c h + theta (v^2 - u^2). +""" +from fractions import Fraction as F +import json, math, sys + + +def check(s, t, periods=3, band=30): + sig = F(t, s); th = sig - 1 + q = lambda j: math.floor(F(t * j, s) + F(1, 2)) + beta = lambda j: F(t * j, s) - q(j) + counts = dict(closed_form=0, segment=0, cross=0) + cross_min = None + for l in range(periods * s): + lstar = l - (beta(l) + F(1, 2)) / th + for j in range(l - band, l + band + 1): + if j == l: + continue + X = (sig * j - q(l)) ** 2 - beta(j) ** 2 + n = q(j) - q(l) + if X != n * (n + 2 * beta(j)): + raise AssertionError(f'closed form fails at s={s} t={t} l={l} j={j}') + counts['closed_form'] += 1 + h, u, v = j - l, l - lstar, j - lstar + if n == h: + if X != (1 + th) * h * h - h + th * (v * v - u * u): + raise AssertionError(f'segment form fails at s={s} t={t} l={l} j={j}') + counts['segment'] += 1 + for c in (l - 3, l - 1, l + 2): + if q(c) - c == q(l) - l and q(c) - c == q(j) - j: + uc, vc = l - c, j - c + if X != sig * h * h + 2 * beta(c) * h + th * (vc * vc - uc * uc): + raise AssertionError(f'recentred form fails at s={s} t={t} l={l} j={j} c={c}') + counts['recentred'] = counts.get('recentred', 0) + 1 + else: + if X < 2: + raise AssertionError(f'cross-wrap bound fails at s={s} t={t} l={l} j={j}') + cross_min = X if cross_min is None else min(cross_min, X) + counts['cross'] += 1 + return dict(s=s, t=t, theta=str(th), checks=counts, min_cross_exponent=str(cross_min)) + + +CASES = [(113, 128), (241, 256), (1009, 1024), (1019, 1024), (4093, 4096)] + +if __name__ == '__main__': + out = [check(s, t) for s, t in CASES] + json.dump(out, open('certificates/identities.json', 'w'), indent=1) + print('PASS exact identities for', ', '.join(f'(s,t)=({c["s"]},{c["t"]})' for c in out)) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py new file mode 100644 index 0000000000..447418acb4 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_reuse_inverse.py @@ -0,0 +1,103 @@ +"""Numerical check of the recentred sub-block inverse through the reuse path. + +One inverse of the base Toeplitz matrix T_lambda (symbol exp(-pi a2 (sigma h^2 - h))) is +computed per block length at high precision, then stored with P significant digits (floating +point). Every block applies T_c^{-1} = G_c T_lambda^{-1} G_c^{-1}, with +G_c = diag(rho_c^{-i}) and rho_c = exp(-pi a2 (2 beta_c + 1)). Segments are split into +near-equal blocks of length at least 2w. Cuts and wraps are coupled by Woodbury, and the +capacitance system is solved by elimination without pivoting. The result is compared with a +direct solve of N. +Args: s t alpha^2 Q_bits P_digits [1 = fixed-point storage, expected to fail]. +""" +from decimal import Decimal as Dm, getcontext, Context +from fractions import Fraction as F +import math, sys, random + +argv = [int(a) for a in sys.argv[1:]] or [241, 256, 17, 150, 60] +s, t, a2, Qbits, Pdig = argv[:5] +FIXED_POINT = len(argv) > 5 and argv[5] == 1 # negative control: absolute precision storage +getcontext().prec = 140 +PI = Dm('3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327') +sig = F(t, s); th = sig - 1 +q = lambda j: math.floor(F(t*j, s) + F(1, 2)); beta = lambda j: F(t*j, s) - q(j) +dec = lambda f: Dm(f.numerator) / Dm(f.denominator) +E = lambda x: (-PI*a2*dec(x)).exp() + +def solve(A, bv, pivot=True): + n = len(A); M = [row[:] + [bv[i]] for i, row in enumerate(A)] + for c in range(n): + if pivot: + p = max(range(c, n), key=lambda r: abs(M[r][c])); M[c], M[p] = M[p], M[c] + for r in range(n): + if r != c and M[r][c] != 0: + f = M[r][c] / M[c][c] + for k in range(c, n+1): M[r][k] -= f*M[c][k] + return [M[i][n] / M[i][i] for i in range(n)] + +def inverse(A): + n = len(A) + cols = [solve(A, [Dm(1) if i == j else Dm(0) for i in range(n)]) for j in range(n)] + return [[cols[j][i] for j in range(n)] for i in range(n)] + +N = [[Dm(0)]*s for _ in range(s)] +for l in range(s): + for j in range(l - 2*s, l + 2*s): + X = (sig*j - q(l))**2 - beta(j)**2 + if X < 60: + N[l][j % s] += E(X) +wraps = [j for j in range(s) if q(j+1) - q(j) == 2] +w = 1 + math.isqrt(int(Qbits / (4.53 * a2)) + 1) +blocks = [] +for i, w0 in enumerate(wraps): + st = w0 + 1; en = wraps[(i+1) % len(wraps)] + (s if i+1 == len(wraps) else 0) + seg = list(range(st, en + 1)) + nb = max(1, len(seg) // (2*w)) + cuts = [round(k * len(seg) / nb) for k in range(nb + 1)] + blocks += [seg[cuts[k]:cuts[k+1]] for k in range(nb)] +lengths = sorted({len(g) for g in blocks}) +assert min(lengths) >= 2*w, (lengths, w) +base = {} +for L in lengths: + getcontext().prec = Pdig + int(9.06 * a2 * L / 3.32) + 20 # absolute precision P + 9.06 a2 L bits + T = [[E(sig*(b-a)**2 - (b-a)) for b in range(L)] for a in range(L)] + Ti = inverse(T) + getcontext().prec = 140 + ctx = Context(prec=Pdig) + if FIXED_POINT: + unit = Dm(10) ** -Pdig + base[L] = [[(v / unit).to_integral_value() * unit for v in row] for row in Ti] + else: + base[L] = [[ctx.plus(v) for v in row] for row in Ti] # floating point, P significant digits +random.seed(2) +u = [Dm(random.uniform(-1, 1)) for _ in range(s)] +x = solve(N, u) +bid = {} +for k, g in enumerate(blocks): + for j in g: bid[j % s] = k + +def Minv(vec): + out = [Dm(0)]*s + for g in blocks: + c = g[0]; bc = beta(c); L = len(g) + rho = (-PI*a2*dec(2*bc + 1)).exp() + Ti = base[L] + rhs = [vec[g[i] % s] * (-PI*a2*dec(th*i*i)).exp() for i in range(L)] + y = [sum(rho**(b - a) * Ti[a][b] * rhs[b] for b in range(L)) for a in range(L)] # G T^-1 G^-1 + for i in range(L): out[g[i] % s] = y[i] * (PI*a2*dec(th*i*i)).exp() + return out + +thr = Dm(2)**(-Qbits - int(math.log2(s)) - 4) +Delta = [[N[a][b] if bid[a] != bid[b] and N[a][b] > thr else Dm(0) for b in range(s)] for a in range(s)] +cols = sorted({b for a in range(s) for b in range(s) if Delta[a][b] != 0}) +y = Minv(u) +MU = [Minv([Delta[r][c] for r in range(s)]) for c in cols] +C = [[(Dm(1) if i == j else Dm(0)) + MU[j][cols[i]] for j in range(len(cols))] for i in range(len(cols))] +offdiag = max(abs(C[i][j]) for i in range(len(cols)) for j in range(len(cols)) if i != j) +z = solve(C, [y[c] for c in cols], pivot=False) +xs = [y[r] - sum(MU[j][r]*z[j] for j in range(len(cols))) for r in range(s)] +err = max(abs(xs[i] - x[i]) for i in range(s)) +target = Dm(2)**-Qbits +print(f'theta={float(th):.4f} alpha2*theta={a2*float(th):.2f} w={w} block lengths={lengths} blocks={len(blocks)} ' + f'max|C-I| offdiag={float(offdiag):.2e} err={float(err):.3e} target={float(target):.3e}', + 'PASS' if err < target else 'FAIL') +if err >= target: raise SystemExit(1) diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py new file mode 100644 index 0000000000..089cbec2bd --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_segmented_inverse.py @@ -0,0 +1,89 @@ +"""Numerical check of the segmented inverse (Idea B') against a direct solve. + +Builds the s x s Gaussian correction N with cyclic indices at 260 decimal digits, checks +that each segment block equals D T D^{-1}, then applies N^{-1} by block Gohberg-Semencul +style segment solves plus a Woodbury correction on the cross-wrap columns, and compares +with Gaussian elimination on N. Arguments: s t alpha^2 Q_bits P1_digits P2_digits. +""" +from decimal import Decimal as Dm, getcontext +from fractions import Fraction as F +import math, sys, random +args=[int(a) for a in sys.argv[1:]] or [60, 67, 9, 200, 120, 100] +s,t,a2,Qbits,P1,P2=args +getcontext().prec=260 +PI=Dm('3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196') +sig=F(t,s); th=sig-1 +q=lambda j: math.floor(F(t*j,s)+F(1,2)); beta=lambda j:F(t*j,s)-q(j) +dec=lambda f: Dm(f.numerator)/Dm(f.denominator) +E=lambda x:(-PI*a2*dec(x)).exp() +N=[[Dm(0)]*s for _ in range(s)] +for l in range(s): + for j in range(l-3*s,l+3*s): + X=(sig*j-q(l))**2-beta(j)**2 + N[l][j%s]+=E(X) +# segments on Z/sZ: start at index after a wrap +wraps=[j for j in range(s) if q(j+1)-q(j)==2] +segs=[] +for i,w0 in enumerate(wraps): + st=w0+1; en=wraps[(i+1)%len(wraps)]+ (s if i+1==len(wraps) else 0) + segs.append(list(range(st,en+1))) +print('theta',float(th),'nwraps',len(wraps),'seglens',sorted(set(len(g) for g in segs))) +# check M_k = D T D^{-1} vs principal block of N (cyclic indices) +maxerr=Dm(0) +for g in segs: + l0=g[0]; ls=l0-(beta(l0)+F(1,2))/th + for a in g: + for b in g: + h=b-a; u=a-ls; v=b-ls + val=E(sig*h*h-h)* (PI*a2*dec(th*u*u)).exp()*(-PI*a2*dec(th*v*v)).exp() + maxerr=max(maxerr,abs(val-N[a%s][b%s])) +print('max |M_k - N block| =',float(maxerr)) +def solve(A,bv): + n=len(A); M=[row[:]+[bv[i]] for i,row in enumerate(A)] + for c in range(n): + p=max(range(c,n),key=lambda r:abs(M[r][c])); M[c],M[p]=M[p],M[c] + for r in range(n): + if r!=c and M[r][c]!=0: + f=M[r][c]/M[c][c] + for k in range(c,n+1): M[r][k]-=f*M[c][k] + return [M[i][n]/M[i][i] for i in range(n)] +random.seed(1) +u=[Dm(random.uniform(-1,1)) for _ in range(s)] +x=solve(N,u) +# segmented: M^{-1} via Toeplitz solve with D scaling at reduced precision P digits +lam=Dm(2)**(-Qbits-int(math.log2(s))-4) +w=1+math.sqrt(Qbits/(4.53*a2)) +print('w formula',w) +def Minv(vec,Pdig): + out=[Dm(0)]*s + for g in segs: + l0=g[0]; ls=l0-(beta(l0)+F(1,2))/th; L=len(g) + getcontext().prec=Pdig + T=[[+E(sig*(b-a)**2-(b-a)) for b in range(L)] for a in range(L)] + rhs=[+(vec[g[i]%s]*(-PI*a2*dec(th*(i+l0-ls)**2)).exp()) for i in range(L)] + y=solve(T,rhs) + getcontext().prec=260 + for i in range(L): out[g[i]%s]=y[i]*(PI*a2*dec(th*(i+l0-ls)**2)).exp() + return out +segid={} +for k,g in enumerate(segs): + for j in g: segid[j%s]=k +Delta=[[N[a][b] if segid[a]!=segid[b] and N[a][b]>lam else Dm(0) for b in range(s)] for a in range(s)] +cols=sorted({b for a in range(s) for b in range(s) if Delta[a][b]!=0}) +# max column offset from nearest wrap +print('Delta cols',len(cols),'per wrap',len(cols)/len(wraps)) +fails=0 +for Pdig in [P1,P2]: + y=Minv(u,Pdig) + # Woodbury capacitance solve + MU=[Minv([Delta[r][c] for r in range(s)],Pdig) for c in cols] + C=[[ (Dm(1) if i==j else Dm(0)) + MU[j][cols[i]] for j in range(len(cols))] for i in range(len(cols))] + z=solve(C,[y[c] for c in cols]) + xs=[y[r]-sum(MU[j][r]*z[j] for j in range(len(cols))) for r in range(s)] + err=max(abs(xs[i]-x[i]) for i in range(s)) + ok=err0})) + +if fails: raise SystemExit('segmented inverse check failed') diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py new file mode 100644 index 0000000000..a9876c9fc0 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/scripts/check_subblock_inverse.py @@ -0,0 +1,73 @@ +"""Numerical check of the recentred sub-block inverse against a direct solve. Args: s t alpha^2 Q_bits block_len P_digits.""" +# Sub-blocked segmented inverse: cut segments into blocks of length lam, recentre the chirp +# per block (block Toeplitz T_c = G T G^{-1}), couple all cuts and wraps by Woodbury. +from decimal import Decimal as Dm, getcontext +from fractions import Fraction as F +import math, sys, random +s, t, a2, Qbits, lam, Pdig = [int(a) for a in sys.argv[1:]] or [60, 67, 9, 200, 3, 120] +getcontext().prec = 260 +PI = Dm('3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196') +sig = F(t, s); th = sig - 1 +q = lambda j: math.floor(F(t*j, s) + F(1, 2)); beta = lambda j: F(t*j, s) - q(j) +dec = lambda f: Dm(f.numerator) / Dm(f.denominator) +E = lambda x: (-PI*a2*dec(x)).exp() +N = [[Dm(0)]*s for _ in range(s)] +for l in range(s): + for j in range(l-3*s, l+3*s): + N[l][j % s] += E((sig*j - q(l))**2 - beta(j)**2) +wraps = [j for j in range(s) if q(j+1) - q(j) == 2] +segs = [] +for i, w0 in enumerate(wraps): + st = w0 + 1; en = wraps[(i+1) % len(wraps)] + (s if i+1 == len(wraps) else 0) + segs.append(list(range(st, en+1))) +blocks = [g[k:k+lam] for g in segs for k in range(0, len(g), lam)] +def solve(A, bv): + n = len(A); M = [row[:] + [bv[i]] for i, row in enumerate(A)] + for c in range(n): + p = max(range(c, n), key=lambda r: abs(M[r][c])); M[c], M[p] = M[p], M[c] + for r in range(n): + if r != c and M[r][c] != 0: + f = M[r][c] / M[c][c] + for k in range(c, n+1): M[r][k] -= f*M[c][k] + return [M[i][n] / M[i][i] for i in range(n)] +# check block = D_c T_c D_c^{-1} with T_c symbol exp(-pi a2 (sigma h^2 + 2 beta_c h)), centre c = first index +maxerr = Dm(0) +for g in blocks: + c = g[0]; bc = beta(c) + for a in g: + for b in g: + h = b - a; u = a - c; v = b - c + Tc = E(sig*h*h + 2*bc*h) + # exact: X = (sigma h + beta_a)^2 - beta_b^2 with beta linear in-segment + X = (sig*h + beta(a))**2 - beta(b)**2 + Dfac = (PI*a2*dec(th*u*u)).exp() * (-PI*a2*dec(th*v*v)).exp() + maxerr = max(maxerr, abs(Tc*Dfac - E(X))) +print('blocks', len(blocks), 'max |block - D_c T_c D_c^-1| = %.2e' % float(maxerr)) +random.seed(1) +u = [Dm(random.uniform(-1, 1)) for _ in range(s)] +x = solve(N, u) +bid = {} +for k, g in enumerate(blocks): + for j in g: bid[j % s] = k +thr = Dm(2)**(-Qbits - int(math.log2(s)) - 4) +def Minv(vec): + out = [Dm(0)]*s + for g in blocks: + c = g[0]; bc = beta(c); L = len(g) + getcontext().prec = Pdig + T = [[+E(sig*(b-a)**2 + 2*bc*(b-a)) for b in range(L)] for a in range(L)] + rhs = [+(vec[g[i] % s] * (-PI*a2*dec(th*i*i)).exp()) for i in range(L)] + y = solve(T, rhs) + getcontext().prec = 260 + for i in range(L): out[g[i] % s] = y[i] * (PI*a2*dec(th*i*i)).exp() + return out +Delta = [[N[a][b] if bid[a] != bid[b] and N[a][b] > thr else Dm(0) for b in range(s)] for a in range(s)] +cols = sorted({b for a in range(s) for b in range(s) if Delta[a][b] != 0}) +y = Minv(u) +MU = [Minv([Delta[r][c] for r in range(s)]) for c in cols] +C = [[(Dm(1) if i == j else Dm(0)) + MU[j][cols[i]] for j in range(len(cols))] for i in range(len(cols))] +z = solve(C, [y[c] for c in cols]) +xs = [y[r] - sum(MU[j][r]*z[j] for j in range(len(cols))) for r in range(s)] +err = max(abs(xs[i] - x[i]) for i in range(s)) +print('cuts+wraps', len(blocks), 'coupled cols', len(cols), 'err vs direct %.3e target %.3e' % (float(err), float(Dm(2)**-Qbits)), + 'PASS' if err < Dm(2)**-Qbits else 'FAIL') diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round3.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round3.py new file mode 100644 index 0000000000..33116082d2 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round3.py @@ -0,0 +1,30 @@ +import importlib.util, pathlib, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] +spec = importlib.util.spec_from_file_location('certificate_round3', ROOT / 'scripts' / 'certificate_round3.py') +r3 = importlib.util.module_from_spec(spec); spec.loader.exec_module(r3) + +A_B = Q(22157, 5 * 10**9) +A_C = Q(1048009, 25 * 10**10) # fully batched PR #7 complex network, independent/complex-network +KAPPA = Q(13086957581, 3125 * 10**12) + + +class Round3(unittest.TestCase): + def test_headline_both_guards(self): + for guard in ('pathwise', 'crude'): + r = r3.evaluate(A_B, A_C, Q(1, 1000), guard) + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], KAPPA) + self.assertEqual(r['binding'], 'simultaneous butterflies') + self.assertGreater(r['kappa'], Q(1, 2**18)) + + def test_complex_side_binds(self): + # raising a_c must raise kappa; raising a_b must not + k = r3.evaluate(A_B, A_C, Q(1, 1000), 'crude')['kappa'] + self.assertGreater(r3.evaluate(A_B, A_C * 2, Q(1, 1000), 'crude')['kappa'], k) + self.assertEqual(r3.evaluate(A_B * 2, A_C, Q(1, 1000), 'crude')['kappa'], k) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round4.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round4.py new file mode 100644 index 0000000000..68bb03e902 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round4.py @@ -0,0 +1,44 @@ +import importlib.util, pathlib, sys, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'independent' / 'two-stage-bit')) +import moment +spec = importlib.util.spec_from_file_location('certificate_round3', ROOT / 'scripts' / 'certificate_round3.py') +r3 = importlib.util.module_from_spec(spec); spec.loader.exec_module(r3) + +A_C = Q(4079603, 25 * 10**10) # fully batched PR #7 complex network with source frames, h=28 + + +class Round4(unittest.TestCase): + def test_bit_histogram_and_saving(self): + c = moment.histogram(47, moment.R_of(47), True) + self.assertEqual(sum(w * n for w, n in c['hist'].items()), c['s']) + self.assertEqual(c['W'] * c['m'] - c['s'], c['v'] * (c['v'] - 4 * 47 * 47)) + a, _ = moment.certify(c) + self.assertEqual(a, Q(10033, 10**9)) + + def test_data_batching_needed(self): + c = moment.histogram(47, moment.R_of(47), False) + a, _ = moment.certify(c) + self.assertLess(a, Q(10033, 10**9)) + + def test_pr24_headline(self): + sys.path.insert(0, str(ROOT / 'scripts')) + import certificate_round4 as c4 + a, c = c4.pr24_bit_saving() + self.assertEqual(a, Q(4788949, 4 * 10**11)) + r = r3.evaluate(a, A_C, Q(1, 1000), 'crude') + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], Q(59861145819, 5 * 10**15)) + self.assertGreater(r['kappa'], Q(119720853, 10**13)) + + def test_kappa(self): + r = r3.evaluate(Q(10033, 10**9), A_C, Q(1, 1000), 'crude') + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['binding'], 'simultaneous butterflies') + self.assertGreater(r['kappa'], Q(1, 2**17)) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round5.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round5.py new file mode 100644 index 0000000000..f88e464763 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round5.py @@ -0,0 +1,46 @@ +import importlib.util, pathlib, sys, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'scripts')) +sys.path.insert(0, str(ROOT / 'independent' / 'two-stage-bit')) +import certificate_round5 as c5 +import certificate_round3 as r3 + +A_C = Q(4079603, 25 * 10**10) + + +class Round5(unittest.TestCase): + def test_flag_histogram_and_saving(self): + a, c = c5.bit_saving(side=False) + self.assertEqual(c['R'], 403248) + self.assertEqual(sum(w * n for w, n in c['hist'].items()), c['s']) + self.assertEqual(a, Q(3369, 250000000)) # flag basis and data runs, side roles as singletons + + def test_side_lemma_saving(self): + a, c = c5.bit_saving(side=True) + self.assertEqual(sum(w * n for w, n in c['hist'].items()), c['s']) + self.assertEqual(a, Q(15479, 10**9)) + r = r3.evaluate(a, A_C, Q(1, 1000), 'crude') + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], Q(309575208081, 2 * 10**16)) + self.assertGreater(r['kappa'], Q(1, 2**16)) + + def test_flag_beats_singleton_corners(self): + # same histogram with the h corner transpositions charged as singletons is strictly worse + import moment + c = c5.flag_histogram(47, 403248) + h, A = 47, None + a_flag, _ = moment.certify(c) + base = moment.histogram(47, 403248, True) + a_base, _ = moment.certify(base) + self.assertGreater(a_flag, a_base) + + def test_kappa(self): + r = r3.evaluate(Q(13341, 10**9), A_C, Q(1, 1000), 'crude') + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], Q(333520550497, 25 * 10**15)) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round6.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round6.py new file mode 100644 index 0000000000..5af8799c2c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round6.py @@ -0,0 +1,32 @@ +import pathlib, sys, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'scripts')) +import certificate_round6 as c6 +import certificate_round3 as r3 + +A_C = Q(36926111, 5 * 10**11) # two-stage complex interchange, h = 24 +M_C, S_C = 576, 119453132304 + + +class Round6(unittest.TestCase): + def test_copied_bit_saving(self): + a, c = c6.bit_saving() + self.assertEqual((c['R'], c['W'] * c['m'] - c['s']), (52788, 2415000)) + self.assertEqual(a, Q(34919, 10**9)) + + def test_retained_totals_saving(self): + a, c = c6.retained_saving() + self.assertEqual((c['R'], c['s']), (40077, 78410006675)) + self.assertEqual(a, Q(36667, 10**9)) + + def test_kappa(self): + r = r3.evaluate(Q(36667, 10**9), A_C, Q(1, 1000), 'crude', m_c=M_C, s_c=S_C) + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], Q(3666565558019, 10**17)) + self.assertGreater(r['kappa'], Q(1, 2**15)) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round7.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round7.py new file mode 100644 index 0000000000..ad6d0de81e --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_round7.py @@ -0,0 +1,54 @@ +import pathlib, sys, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'scripts')) +sys.path.insert(0, str(ROOT / 'independent' / 'deferred-readout')) +import certificate_round7 as c7 +import deferred as dr + + +class Round7(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.S, cls.rk, cls.ylev, cls.xd = c7.build(c7.WITNESSES[0]) + + def test_schedule_shape(self): + S = self.S + self.assertEqual((S.h, S.R, len(S.readout), len(S.vstart)), (23, 28866, 11565, 11374)) + self.assertEqual(S.readout, sorted(S.readout, key=lambda s: (S.f[s], s))) # readouts by dim sigma + dv = {s: len(B) for s, B in S.vstart.items()} + self.assertEqual(S.late_v, sorted(S.late_v, key=lambda s: (dv[s], s))) # deferred V gates by dim s_i + self.assertTrue(all(sum(x) == S.h - 1 for x in self.xd)) + + def test_chain_ranks_are_corner_ranks(self): + S = self.S + self.assertEqual(sum(r * c for r, c in self.rk.items()), sum(S.h - S.f[s] for s in range(S.R))) + + def test_savings(self): + for key, _, corner in c7.CORNERS: + a, c = c7.saving(self.S, self.rk, self.ylev, self.xd, corner(self.S.h)) + self.assertEqual(sum(w * n for w, n in c['hist'].items()), c['s']) + self.assertEqual(c['s'], c['W'] * c['m'] - c['N'] + c['L']) + self.assertEqual(a, c7.WITNESSES[0][key][0]) + + def test_kappa(self): + for key in ('plain', 'staircase'): + a, k = c7.WITNESSES[0][key] + r = c7.kappa(a) + self.assertTrue(r['ok'], r['bad']) + self.assertEqual(r['kappa'], k) + self.assertGreater(r['kappa'], Q(1, 2**14)) + + def test_wrong_readout_level_breaks_rank_sum(self): + # a deferred slot whose recorded sigma is one dimension smaller no longer re-partitions the budget + S = self.S; s = S.readout[0]; S.f[s] -= 1 + try: + c = dr.histogram(S, self.rk, self.ylev, self.xd) + self.assertNotEqual(sum(w * n for w, n in c['hist'].items()), c['s']) + finally: + S.f[s] += 1 + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_witness.py b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_witness.py new file mode 100644 index 0000000000..a4412d4315 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/swapnil-round7/tests/test_witness.py @@ -0,0 +1,64 @@ +import importlib.util, pathlib, sys, unittest +from fractions import Fraction as Q + +ROOT = pathlib.Path(__file__).resolve().parents[1] + + +def load(name): + spec = importlib.util.spec_from_file_location(name, ROOT / 'scripts' / f'{name}.py') + mod = importlib.util.module_from_spec(spec); spec.loader.exec_module(mod) + return mod + + +cert = load('certificate') +ident = load('check_identities') + + +class Witness(unittest.TestCase): + def test_witness_passes(self): + out = cert.evaluate() + self.assertEqual(out['kappa'], '7499/1000000000000') + self.assertEqual(out['binding'], 'simultaneous butterflies') + + def rejects(self, reason, **kw): + with self.assertRaises(cert.Failure) as ctx: + cert.evaluate(**kw) + self.assertIn(reason, str(ctx.exception)) + + def test_kappa_above_margin_rejected(self): + self.rejects('kappa', kappa=Q(7500, 10**12)) + + def test_small_eps_rejected(self): + self.rejects('kappa', eps=Q(9, 10), y=Q(9, 10)) + + def test_coupling_needs_y_at_least_eps(self): + self.rejects('sub-block coupling', y=Q(9, 10)) + + def test_kappa_cannot_reach_a_b(self): + self.rejects('kappa', kappa=Q(3, 4 * 10**8)) + + def test_precision_rejects_small_x(self): + self.rejects('precision', x=Q(19, 10)) + + def test_guard_rejects_old_exponent_without_large_digits(self): + self.rejects('guard', x=Q(3, 2), y=Q(0), eps=Q(9999, 10**4), beta=Q(0)) + + def test_leaf_rejects_large_beta(self): + self.rejects('leaf', beta=Q(9, 10)) + + +class Identities(unittest.TestCase): + def test_recentred_form_checked(self): + out = ident.check(113, 128) + self.assertGreater(out['checks']['recentred'], 0) + + def test_small_cases_exact(self): + for s, t in ((113, 128), (241, 256)): + out = ident.check(s, t) + self.assertGreater(out['checks']['segment'], 0) + self.assertGreater(out['checks']['cross'], 0) + self.assertGreaterEqual(Q(out['min_cross_exponent']), 2) + + +if __name__ == '__main__': + unittest.main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/complex-prior-replay.json b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/complex-prior-replay.json new file mode 100644 index 0000000000..0d53f10d14 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/complex-prior-replay.json @@ -0,0 +1,141 @@ +{ + "source_repository": "Swapnil-jain/integer-mult-kappa", + "commit": "f2176bc1124821bf17eb63725bd366d7bdc020a3", + "author": "Swapnil Jain", + "license": "Apache-2.0", + "source_sha256": { + "notes/copied-centres.tex": "f3bd455aaed42be7e8abfc41e8422baf03ab95ac24084345961e68c2513b6191", + "notes/segmented-inverse.tex": "bd0d6dc07533f4362ae8deeea451ba218afcd7e9438e9b521571b75bf4f0f291", + "notes/flag-basis.tex": "a8a5e9aa722397417ebac01934367f8ac50b1e27d2c21584cec6a8e9eb7d214a", + "independent/complex-twostage/run.py": "6df735b8a69cf5226e04bf70db0a750dcdbbf3e9eddbabd293620849d6eff7b6", + "independent/complex-twostage/hist.py": "eedc3a641859e023fa8408200071d886d798ac8add238a282baebbe9b14124f1", + "independent/complex-twostage/producer.py": "4c6a37eeda2f31af7adb7964e75eed37dc1bec08c41e622935ff1d99ac0d3f36", + "independent/complex-twostage/cert.py": "3c3c5b13d970dc7d5647ff3969ff232c6d0b2182d959703e4b2b1ba79a268f21", + "independent/complex-twostage/frames.py": "f1a04569997828560f4197f4c654ce752173ec2df3d9e69233c9ed4031d02abb", + "independent/two-stage-bit/side_chains.py": "53ee410e115faa7581a367de1bb5b461c8912783161ea2414db46b79a2a48ddb", + "README.md": "039320fd59b42cfe3db337656f3d278091517f4ce3d6fc99772eb2a9836cbbd2", + "NOTICE": "edcc500cd20c52ec00dd7ef6c959e045a5f1778fcae1887c1924edc846a88e4a", + "LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c" + }, + "h": 24, + "signed_scalar_coefficients_checked": 4096576, + "packed_digit_base": 256, + "coefficient_bound": 52, + "actual_addition_depth": 15, + "external_frame_replay": "140064 edges, zero bad; label dimensions agreed with histogram", + "complex_saving": "36926111/500000000000", + "old_complex_saving": "717/10000000", + "relative_saving_improvement": "1076111/35850000", + "independent_moment": { + "saving": "36926111/500000000000", + "lower": "22132223958552052421749212019659453415968223393341965597297120898305542124258674915530121086370281210966654162719329/22132224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "upper": "35020062393312951405297670772295013530070560579723749403240804328529075451914236909963718202389048919930249379220757604315590948053301906326005744491853547514963448644861848906017825856098201581613480345622162073798056879734337922290211640166751573176041382599196075448767355400128540334917010238338112161562952928228167204971761574811969540920997032968960281978269842441964057731256511403340885641403773320094316307959111383429669024710055757701048062537488469404001715297870780258084370791915743273716053559778383072548865170865383087515440020597652946350430305899429798682459786578845936117756997623711619/35020062458896495270930209722769672309369092671026031757123898030538541557891818501636226793988827291520006694707886919810078372499670105107629130723721212239551874355263779814716264045999594520408248294463821437742835715286428298787622263581706711678815047704077527199685875393631514260996844769626112713776625262594013673018589775390752443036668742737647246368187617747162519751521347220796847156120773325522178818149841799898980204922920647631151931554211246653827045464941391847412189766425641049302104638178089797764348609120718125537641489941194084894197275339592452027852176179200000000000000000000000", + "strict_gap": "65583543865632538950474658779298532091302282353883093702009466105977581591672508591599778371589757315487129315494487424446368198781623386231867664724588425710401930908698438189901392938794767948841659363944778835552090376497410623414955138502773665104881451750918519993502973926079834531288000552213672334365846468046828200578782902115671709768686964389917775305198462020264835817455961514717000005427862510190730416469311180212864889930103869016722777249825330167070611589327818974509897775586051078399706725215483438255335038022201469343541138543766969440162653345392389600354063882243002376288381/35020062458896495270930209722769672309369092671026031757123898030538541557891818501636226793988827291520006694707886919810078372499670105107629130723721212239551874355263779814716264045999594520408248294463821437742835715286428298787622263581706711678815047704077527199685875393631514260996844769626112713776625262594013673018589775390752443036668742737647246368187617747162519751521347220796847156120773325522178818149841799898980204922920647631151931554211246653827045464941391847412189766425641049302104638178089797764348609120718125537641489941194084894197275339592452027852176179200000000000000000000000", + "logarithms": { + "1": { + "lower": "6356107660695891239293881/1000000000000000000000000", + "upper": "794513457587/125000000000" + }, + "2": { + "lower": "5662960480135945929876649/1000000000000000000000000", + "upper": "707870060017/125000000000" + }, + "3": { + "lower": "1314373843006945386974659/250000000000000000000000", + "upper": "1314373843007/250000000000" + }, + "4": { + "lower": "4969813299576000620459417/1000000000000000000000000", + "upper": "4969813299577/1000000000000" + }, + "5": { + "lower": "2373334874130895432346561/500000000000000000000000", + "upper": "2373334874131/500000000000" + }, + "6": { + "lower": "1141087047866959059620351/250000000000000000000000", + "upper": "1141087047867/250000000000" + }, + "7": { + "lower": "4410197511640577934188529/1000000000000000000000000", + "upper": "4410197511641/1000000000000" + }, + "8": { + "lower": "855333223803211062208437/200000000000000000000000", + "upper": "4276666119017/1000000000000" + }, + "9": { + "lower": "4158883083359671856503391/1000000000000000000000000", + "upper": "25993019271/6250000000" + }, + "10": { + "lower": "405352256770184555527589/100000000000000000000000", + "upper": "2026761283851/500000000000" + }, + "11": { + "lower": "1979106193948760347615969/500000000000000000000000", + "upper": "1979106193949/500000000000" + }, + "12": { + "lower": "967800252726972732266043/250000000000000000000000", + "upper": "967800252727/250000000000" + }, + "13": { + "lower": "1895579151617177251620197/500000000000000000000000", + "upper": "758231660647/200000000000" + }, + "14": { + "lower": "3717050331080632624771297/1000000000000000000000000", + "upper": "3717050331081/1000000000000" + }, + "15": { + "lower": "3648057459593681173297877/1000000000000000000000000", + "upper": "1824028729797/500000000000" + }, + "16": { + "lower": "3583518938456110001624953/1000000000000000000000000", + "upper": "3583518938457/1000000000000" + }, + "17": { + "lower": "3522894316639675159044347/1000000000000000000000000", + "upper": "22018089479/6250000000" + }, + "18": { + "lower": "3465735902799726547086159/1000000000000000000000000", + "upper": "8664339757/2500000000" + }, + "19": { + "lower": "682333736305890155856971/200000000000000000000000", + "upper": "341166868153/100000000000" + }, + "20": { + "lower": "1680187693570950122929329/500000000000000000000000", + "upper": "1680187693571/500000000000" + }, + "22": { + "lower": "1632532603668787692907353/500000000000000000000000", + "upper": "1632532603669/500000000000" + }, + "23": { + "lower": "3220613444766741548487129/1000000000000000000000000", + "upper": "3220613444767/1000000000000" + }, + "24": { + "lower": "158902691517397280982347/50000000000000000000000", + "upper": "794513457587/250000000000" + }, + "529": { + "lower": "85119228837591857680377/1000000000000000000000000", + "upper": "42559614419/500000000000" + }, + "552": { + "lower": "10639903604698982210047/250000000000000000000000", + "upper": "42559614419/1000000000000" + } + } + }, + "rank_sum": 119453132304, + "maxchild": 552, + "remaining": "Full changed complex dirty/phase/precision/tape interfaces and integration assembly not replayed. This is a research candidate, not an updated multiplication bound.", + "new_multiplication_bound": false +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/frames-replay.log b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/frames-replay.log new file mode 100644 index 0000000000..91ed178ab9 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/frames-replay.log @@ -0,0 +1,21 @@ +[ 107s] exact base frames: 64042 node frames (56460 lifted), 1396 late-copy intersections +[ 107s] X. recorded frame dims == exact dims (64042 node frames, 1396 late-copy intersections) PASS +[ 107s] X. every slot moves along slot successors of the witness, starts at its use, ends at its root (28866 slots) PASS +[ 108s] Q. sigma_u and s_i bases independent (rank mod 2^31-1 == row count; 11565 + 11374 frames, max |entry| 13) PASS +[ 141s] Q. sigma_u <= F0(u) exactly (11565 deferred slots) PASS +[ 142s] Q. sigma_u <= t_T^perp exactly for every Z-support target (a superset of the F2 targets) PASS +[ 146s] Q. deferred levels on every y_T nested in time order, exactly (Z targets 0 bad, F2 targets 0 bad) PASS +[ 159s] Q. G nondegenerate on every sigma_u and s_i (Gram det != 0 mod 2^31-1 => over Z) PASS +[ 191s] Q. V leaves exactly: t_S <= s_i (0 bad), s_i <= N_i, the first frame of the use (0 bad), 11374 slots PASS +[ 192s] Q. X_S chains nested exactly in time order (, early V gates, deferred V gates, F; 1771 leaves) PASS +[ 196s] S. frames used only by the new steps: 4803, G-degenerate mod 2^31-1 0, reduction dimension mismatches 0 PASS +[ 216s] S. side lemma (generic NE pivots, both conjugations, mod 2^31-1) on all 3084 new high-rank steps {'corner': 1049, 'slot': 16, 'ydata': 248, 'xdata': 1771} PASS +[ 217s] F. round-six corner: rank sum == s (Z and F2 y supports), a_b = 12599/200000000 (6.299500e-05), kappa = 6299103187973/100000000000000000 (6.2991032e-05) ok=True, F2 a_b = 12599/200000000 PASS +[ 217s] F. staircase corner: rank sum == s (Z and F2 y supports), a_b = 31987/500000000 (6.397400e-05), kappa = 1599247689723/25000000000000000 (6.3969908e-05) ok=True, F2 a_b = 31987/500000000 PASS +[ 217s] F. claims: a_b 12599/200000000, kappa 6299103187973/10^17; staircase a_b 31987/500000000, kappa 1599247689723/(2.5*10^16) PASS +[ 218s] N. NEG reversed readout order breaks the y_T chains (11879 bad) PASS +[ 218s] N. NEG readouts at F0(u) instead of sigma_u break the y_T chains (3276 breaks on 300 targets) PASS +[ 218s] N. NEG perturbed sigma frames fail sigma <= F0 (200 / 200) PASS +[ 219s] N. NEG deferred V gates before the early ones break the X_S chains (1760 bad) PASS +[ 219s] N. NEG side lemma with U = V = I fails (600 / 600) PASS +[ 219s] ALL PASS diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/lifted-replay.log b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/lifted-replay.log new file mode 100644 index 0000000000..a9cffb3315 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/lifted-replay.log @@ -0,0 +1,17 @@ +[ 0s] h=23: A. DAG semantics OK (64042 nodes, 62271 additions, 38741 links, 56460 lifted, 834 late) +[ 9s] B. compiled: R=28866 (claimed 28866), ops 91137, late copies 1396 +[ 10s] C. dirty-scratch replay (F2/Z x word/mirror x midread/endread): ALL OK +[ 17s] D. nesting facts: j-monotone failures 0, link span failures 0, root containment failures 0, F invertible True +[ 37s] co-bases K_n done +[ 101s] lifted frame dims exact: {'SF full mod q': 56460, 'KF full mod q': 56460} +[ 101s] every lifted frame is the largest admissible frame U_n: True (56460 / 56460; the flag only switches span -> U_n) +[ 116s] late-copy intersections exact: 1396 frames +[ 116s] chain steps: sum of ranks 663918 = h R 663918: True; histogram equals claim: True; distinct steps 151898 (2r>h: 15115) +[ 259s] E. frames used 70776: G-degenerate 0, reduction dimension mismatches 0 +[ 274s] side lemma 5000/15138, failures 0 +[ 312s] side lemma 10000/15138, failures 0 +[ 350s] side lemma 15000/15138, failures 0 +[ 351s] side lemma at one integer point: failures 0 over 15138 distinct high-rank steps x 2 conjugations +[ 351s] F. round6 corner: s=57403754177 W=108516254 a_b=50171/1000000000 (5.017100e-05, root 5.017627e-05) kappa=2508424149841/50000000000000000 (5.0168483e-05) ok=True +[ 351s] F. staircase: s=57403754177 W=108516254 a_b=5079/100000000 (5.079000e-05, root 5.079516e-05) kappa=507874205067/10000000000000000 (5.0787421e-05) ok=True +[ 352s] ALL PASS diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_interface_controls.py b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_interface_controls.py new file mode 100644 index 0000000000..7a84af93ed --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_interface_controls.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Exact Gaussian-dyadic schedule and endpoint controls; not a final theorem. +Zhihao Chen / Codex. Pinned producer: Swapnil Jain, Apache-2.0. +""" +import sys,json,time,signal +from pathlib import Path +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE/'swapnil-round7/independent/complex-twostage')) +from producer import NStar3,compile_roles + +def word(h): + c=NStar3(h);k=compile_roles(c);v=len(c.triples);R=k['size'];off=2*v + # Each event is dst += (numerator/denominator)*src. + L=[];V=[];J=[];C=[] + for n,ins,outs in k['gates']: + if len(ins)==2:L.append((off+ins[0],off+ins[1],1,1)) + L.extend((off+o,off+outs[0],1,1) for o in outs[1:]) + V=[(off+s,c.tid[t],1,1) for t,s in k['src'].items()] + J=[(v+c.tid[t],off+k['pout'][i],cf,2) for i,(t,n,cf) in enumerate(c.pieces)] + ret=k['rout'];star=off+ret[('*',)] + for j,T in enumerate(c.triples): + if h-1 not in T: + C.append((v+j,star,2,2));C.extend((v+j,off+ret[('E',i)],-1,2) for i in T) + else: + C.append((v+j,star,5-h,2));C.extend((v+j,off+ret[('E',i)],1,2) for i in range(h-1) if i not in T) + inv=lambda a:[(t,s,-n,d) for t,s,n,d in reversed(a)] + ops=L+inv(C)+inv(J)+inv(L)+V+L+C+J+inv(L)+inv(V) + bank=lambda s:s+v if s>i&1 and q>>j&1) + def parity(a):return a.bit_count()&1 + def tq(z):return sum(q<<(i*h) for i in range(h) if parity((z>>(i*h))&q)) + def pi(z): + col=0 + for j in range(h): + if parity(sum(((z>>(i*h+j))&1)<>i&1) + bad_no_inverse=bad_no_wrapper=0 + # Fourth roots represented exactly as Gaussian integer pairs. + units=((1,0),(0,1),(-1,0),(0,-1)) + def mul(a,b):return (a[0]*b[0]-a[1]*b[1],a[0]*b[1]+a[1]*b[0]) + add=lambda a,b:(a[0]+b[0],a[1]+b[1]) + neg=lambda a:(-a[0],-a[1]) + for z in range(1<=v and t<2*v and d==2);del omitted[idx] + assert not replay(v,k['size'],omitted)[0] + rows.append(dict(h=h,roles=k['size'],formal_basis=2*v+k['size'],events=len(ops),forward=True,inverse_opposite=True,coefficient_bound=max(ba,bb),negative_controls=2)) + out=dict(rows=rows,phase=phases(),elapsed=time.monotonic()-st,limit_seconds=120, + scope='Complete exact dyadic small scalar words and all-address tensor phase controls. General commutator/phase argument in report. No h24 physical trace, precision/tape or final assembly certification.',new_multiplication_bound=False) + (HERE/'round6-complex-interface-controls.json').write_text(json.dumps(out,indent=2)+'\n');print(json.dumps(out,indent=2));signal.alarm(0) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_literal_ledger.py b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_literal_ledger.py new file mode 100644 index 0000000000..269d26c421 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round6_complex_literal_ledger.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Actual h24 signed events, copied centers, reflected frames and paid ranks. +Zhihao Chen / Codex audit of Swapnil Jain's Apache-2.0 pinned round6 producer. +Frame labels are binary subspaces; complex phases use the separately proved +q_U and inverse-rank-one endpoint identities, not XOR cancellation. +""" +import sys,json,time,signal,gzip,hashlib +from pathlib import Path +from collections import Counter +from array import array +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE/'swapnil-round7/independent/complex-twostage')) +from producer import NStar3,compile_roles +from frames import Checker,echelon,perp_in,ok_res + +def main(): + st=time.monotonic() + def stop(*_):raise TimeoutError('180s event ledger limit') + signal.signal(signal.SIGALRM,stop);signal.alarm(180) + h=24;c=NStar3(h);k=compile_roles(c);ch=Checker(c) + v=len(c.triples);R=k['size'];size=2*v+R;off=2*v;m=h*h + bases=[];ids={};dims=[] + def key(b): + b=tuple(sorted(echelon(b).values())) + if b not in ids:ids[b]=len(bases);bases.append(b);dims.append(len(b)) + return ids[b] + zero=key([]);F=key([1<0 + events.extend((0,reg,old,f,r));H['aux' if reg>=off else 'data'][r]+=1;cur[reg]=f + def add(t,s,n=1,d=1): + assert cur[t]==cur[s];events.extend((1,t,s,n,d)) + def mix(mode,inverse=False): + for n,ins,outs in reversed(k['gates']) if inverse else k['gates']: + f=zero if mode=='low' else F if mode=='high' else nk[n] + for q in sorted(set(ins+outs)):move(off+q,f) + if inverse: + for q in reversed(outs[1:]):add(off+q,off+outs[0],-1) + if len(ins)==2:add(off+ins[0],off+ins[1],-1) + else: + if len(ins)==2:add(off+ins[0],off+ins[1]) + for q in outs[1:]:add(off+q,off+outs[0]) + def inject(sign,high): + for i,(T,n,cf) in enumerate(c.pieces): + t=c.tid[T];s=off+k['pout'][i];f=hyper[t] if high else zero + move(s,f);move(v+t,f);add(v+t,s,sign*cf,2) + terms={name:[] for name in k['rout']} + for j,T in enumerate(c.triples): + if h-1 not in T: + terms[('*',)].append((v+j,2));selected=T;sg=-1 + else: + terms[('*',)].append((v+j,5-h));selected=[i for i in range(h-1) if i not in T];sg=1 + for i in selected:terms[('E',i)].append((v+j,sg)) + def center(sign,copied=False): + for name,sl in k['rout'].items(): + reg=off+sl + for t,n in terms[name]:assert cur[t]==zero + if copied: + # Fresh copy retains its source frame and is moved to zero; + # original arbitrary-dirty role remains at its live frame. + f=cur[reg];assert ok_res(list(bases[f]));r=dims[f] + copies.append(dict(source=reg,frame=f,target_frame=zero,terms=terms[name])) + events.extend((2,reg,f,len(copies)-1,r));H['center'][r]+=1 + else: + move(reg,zero) + for t,n in terms[name]:add(t,reg,sign*n,2) + def source(sign,high): + for T,sl in k['src'].items(): + t=c.tid[T];f=F if high else line[t] + move(off+sl,f);move(t,f);add(off+sl,t,sign) + mix('low');center(-1);inject(-1,False);mix('low',True) + source(1,False);mix('label');center(1,True);inject(1,True) + mix('high',True);source(-1,True) + for s in range(R):move(off+s,F) + assert cur[:v]==[F]*v and cur[v:off]==hyper and cur[off:]==[F]*R + assert sum(r*n for r,n in H['aux'].items())==R*h + assert sum(r*n for r,n in H['data'].items())==2*v*(h-1) + assert sum(r*n for r,n in H['center'].items())==(h-1)**2+h + # Explicit time-reversed signed word with complement labels and bank swap. + bank=lambda s:s+v if s=s+E + bit=json.loads((HERE/'round7-literal-ledger/result.json').read_text());bh={int(t):n for t,n in bit['histogram'].items()} + bm=529;bW=108516254;br=max(bh) + db,dc=halving(bm,br),halving(m,r);co=bW.bit_length()*db+W.bit_length()*dc + degree=1000*((co*51)//25000+1) + bridge=dict(bit=dict(m=bm,W=bW,maxchild=br,halving_degree=db),complex=dict(m=m,W=W,s=s,maxchild=r,halving_degree=dc), + semantic=dict(E=E,literal_charge=charge,strict_literal_gap=E-charge,B=B,C0=C0,C1=1),rows=dict(coefficient=co,degree=degree,degree_gap=Q(degree)-Q(co*51,25))) + ab=Q(31987,500000000);ac=Q(36926111,500000000000);eta=Q(1,10**8) + q=ab*(1-2*eta);cc=q*(1+eta);eps=(1-eta)/(1+cc+q) + upper=eps*q;kap=Q((upper*10**12).__floor__(),10**12) + cert=assembly(ab,ac,bridge,kap,eta=eta,beta=Q(1,10));assert kap>Q(1,16384) + rejected=False + try:assembly(ab,ac,bridge,kap+Q(1,10**12),eta=eta,beta=Q(1,10)) + except AssertionError:rejected=True + assert rejected + out=dict(candidate_kappa=kap,dyadic_gap=kap-Q(1,16384),literal_word_events=word,scalar_group_bound=G, + scalar_coefficient_max=Q(19,2),bridge=bridge,assembly=cert,next_grid_rejected=rejected, + strict_constraint_count=len(cert['strict_constraints']),margin_count=len(cert['margins']), + source_assembly_sha256=hashlib.sha256((HERE/'integration/scripts/structured_bulk_assembly.py').read_bytes()).hexdigest(), + status='Arithmetic candidate only. New complex literal/phase checks, full h24 physical accounting, finite bridge applicability and inherited analytic/tape conditions require integration proof before a multiplication claim.',new_multiplication_bound=False) + (HERE/'round7-balanced-assembly-candidate.json').write_text(json.dumps(js(out),indent=2)+'\n') + print(json.dumps(js({k:out[k] for k in ['candidate_kappa','dyadic_gap','literal_word_events','scalar_group_bound','strict_constraint_count','margin_count','next_grid_rejected','new_multiplication_bound']}),indent=2)) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round7_literal_frame_ledger.py b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round7_literal_frame_ledger.py new file mode 100644 index 0000000000..aa0de9ed8a --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/round7_literal_frame_ledger.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +"""Explicit forward and reflected frame/event ledger of pinned round-seven. +Zhihao Chen / Codex audit. Exact nesting of the supplied chains is inherited +from the separately run frame/lifted checkers, not inferred from ranks here. +Copied-center moves are temporary macros, not erased arbitrary scratch. +""" +import sys,json,signal,time,hashlib,gzip +from pathlib import Path +from collections import defaultdict,Counter +from array import array +HERE=Path(__file__).resolve().parent;ROOT=HERE/'swapnil-round7' +sys.path.insert(0,str(ROOT/'independent/deferred-readout')) +import deferred as dr + +def main(): + started=time.monotonic() + def stop(*_):raise TimeoutError('180 second literal ledger limit') + signal.signal(signal.SIGALRM,stop);signal.alarm(180) + W,D=dr.load(23);S=dr.Schedule(W,D);v,R,h=S.v,S.R,S.h;size=2*v+R + co=S.adjoint();sel=S.sel;ops=S.ops;prev={};pred=defaultdict(list);last={} + for i,op in enumerate(ops): + for s in S.touch(op): + if s in prev:pred[i].append(prev[s]) + prev[s]=i;last[s]=i + ph=set();stack=[last[s] for s in S.ret] + while stack: + i=stack.pop() + if i in ph:continue + ph.add(i);stack.extend(pred[i]) + assert not any(set(S.touch(ops[i]))&sel for i in ph) + keys=[];ids={};dims=[] + def norm(k): + if k[0]=='out':return ('out',0,tuple(k[2])) + return k + def key(k): + k=norm(k) + if k not in ids: + ids[k]=len(keys);keys.append(k);dims.append(S.dim(k)) + return ids[k] + z,F=key(('0',)),key(('F',)) + paths=[None]*size + for n,ss in S.xs:paths[n-1]=[key(('n',n))]+[key(('v',s)) for s in ss]+[F] + y=[[] for _ in range(v)] + for s in S.readout: + for t,c in co[s].items(): + if c&1:y[t].append(key(('sigma',s))) + for t,T in enumerate(S.trip):paths[v+t]=[z]+y[t]+[key(('out',0,T))] + for s in range(R):paths[2*v+s]=[key(k) for k in S.chain_keys(s)] + assert all(p and all(dims[b]>=dims[a] for a,b in zip(p,p[1:])) for p in paths) + pos=[0]*size;current=[p[0] for p in paths];initial=current[:] + # Fixed-width event records: kind, register/destination, source-or-old, + # new-or-common, rank. kind=0 move,1 xor,2 temporary copied-center macro. + events=array('i');rank_hist={k:Counter() for k in ('aux','data','center')} + bits=[1<=0 + emit(0,s,a,b,r);rank_hist['aux' if s>=2*v else 'data'][r]+=1 + pos[s]+=1;current[s]=b + def xor(t,s): + assert current[t]==current[s],('gate frames',t,s,keys[current[t]],keys[current[s]]) + emit(1,t,s,current[t]);bits[t]^=bits[s] + def readout(s): + aux=2*v+s;f=key(('sigma',s)) if s in sel else z + assert current[aux]==f + for t,c in sorted(co[s].items()): + if c&1:move(v+t,f);xor(v+t,aux) + def source(s,active): + frame=key(('v',s)) if active else F + move(2*v+s,frame);move(S.srcop[s]-1,frame);xor(2*v+s,S.srcop[s]-1) + reordered_fans=[] + def operation(i,active): + op=ops[i] + if op[0]=='add': + _,p,o,n=op;frame=key(('n',n)) if active else F + move(2*v+p,frame);move(2*v+o,frame);xor(2*v+p,2*v+o) + elif op[0]=='fan': + # Scalar fan targets commute. The archive groups copies whose + # physical start frames differ; execute them in frame-chain order. + targets=sorted(op[2],key=lambda s:S.dim(S.start_key(s))) if active else op[2] + if active and tuple(targets)!=tuple(op[2]):reordered_fans.append(i) + for s in targets: + frame=key(S.start_key(s)) if active else F + move(2*v+op[1],frame);move(2*v+s,frame);xor(2*v+s,2*v+op[1]) + for s in range(R): + if s not in sel:readout(s) + early=sorted(set(S.srcop)-sel,key=lambda s:(S.srcop[s],len(S.vstart[s]),s)) + for s in early:source(s,True) + first=[i for i in range(len(ops)) if i in ph and ops[i][0]!='src'] + rest=[i for i in range(len(ops)) if i not in ph and ops[i][0]!='src'] + centers={} + for i in first:operation(i,True) + for s,c in S.ret.items(): + a=2*v+s;f=key(('ret',c));move(a,f) + targets=[v+t for t,T in enumerate(S.trip) if c in T] + assert all(current[t]==z for t in targets) + centers[a]=targets;emit(2,a,f,z,h-1);rank_hist['center'][h-1]+=1 + for t in targets:bits[t]^=bits[a] + for s in S.readout:readout(s) + for s in S.late_v:source(s,True) + for i in rest:operation(i,True) + for s,(c,T) in S.out.items(): + t=S.tid[T];f=key(('out',0,T));move(2*v+s,f);move(v+t,f);xor(v+t,2*v+s) + for i in reversed(first+rest):operation(i,False) + for s in S.srcop:source(s,False) + for s in range(R):move(2*v+s,F) + assert all(bits[i]==((1<=h-3) for i in range(h)])) + K=s.kronecker_product;m=h*h;J=s.eye(m);U=K(P,Q);B=K(I-P,I);T=K(I,Q) + C=K(I-P,I-Q) + X1=T;Y1=K(I-P,Q);X2=B+U;Y2=B + assert X2-X1==Y2-Y1==C and C*C==C and C.rank()==(h-1)**2 + assert D(X2)*D(X1)==D(C) and D(Y2)*D(Y1)==D(C) + assert D(U)*D(J)==D(J-U) + for f in range(h+1): + sigma=proj(I[:,:f]);A=K(sigma,Q) + exit1=J-T+A;end1=J-A + live2=J-K(P,sigma);end2=J-B;exit2=B+K(P,sigma) + assert exit1*exit1==exit1 and exit2*exit2==exit2 + assert exit1.rank()==exit2.rank()==m-h+f + assert D(end1)*D(T)==D(exit1) + assert D(end2)*D(live2)==D(exit2) + assert D(end1)*D(A)==D(J) and D(end2)*D(B)==D(J) + if f: + assert D(end1)*D(T)!=D(J-T);bad_controls+=1 + rows.append(dict(h=h,sigma_rank=f,exterior_rank=m-h+f,all_identities=True)) + out=dict(rows=rows,negative_omitted_sigma_rejected=bad_controls, + data_connectors_per_pair=2,connector_rank_formula='(h-1)^2',correction_rank=1, + elapsed=time.monotonic()-st,limit_seconds=120, + scope='Exact rational finite controls of general tensor identities; not a full all-size compiler, complex phase/precision or final multiplication theorem.',new_multiplication_bound=False) + (HERE/'round7-tensor-endpoint-controls.json').write_text(json.dumps(out,indent=2)+'\n') + signal.alarm(0);print(json.dumps(out,indent=2)) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair-replay.log b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair-replay.log new file mode 100644 index 0000000000..0d208c40c9 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair-replay.log @@ -0,0 +1,3 @@ +1. sparse flag family: trace conditions OK; f1..f4 zeros 0 over 1771 lines x 23 rows; inner-corner zeros 0 +2-3. 20 pairs, distinct pivot patterns 1; runs [1, 21, 1, 1, 1, 18, 1, 1] invertible True; nontrivial NE blocks 689, symbolic bound above evaluated rank on 0 +RESULT h=23 kind=stair runs=[21, 18, 1, 1, 1, 1, 1, 1] certified=True diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair_control-replay.log b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair_control-replay.log new file mode 100644 index 0000000000..7f630e6363 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/stair_control-replay.log @@ -0,0 +1,3 @@ +1. sparse flag family: trace conditions OK; f1..f4 zeros 0 over 1771 lines x 23 rows; inner-corner zeros 0 +2-3. 20 pairs, distinct pivot patterns 1; runs [1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] invertible False; nontrivial NE blocks 403, symbolic bound above evaluated rank on 3 +RESULT h=23 kind=rand1 runs=[21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] certified=False diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-full-basis.json b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-full-basis.json new file mode 100644 index 0000000000..3fc62f301d --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-full-basis.json @@ -0,0 +1,18 @@ +{ + "h": 23, + "roles": 28866, + "formal_basis": 32408, + "events": 862162, + "complete_F2_source_target_dirty": true, + "complete_logical_transpose": true, + "physical_stage_two_checked": false, + "elapsed": 1.5430952910101041, + "limit_seconds": 180, + "sources": { + "independent/deferred-readout/deferred.py": "e92ac1db9fce8608cf5302336f05750fa327eda99f7170ed32e7323220ffc164", + "certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c" + }, + "scope": "Exact complete scalar F2 linear-map and transpose audit of one pinned h23 stage-one schedule. No physical frames, two-stage composition, tape, precision or multiplication-bound claim.", + "new_multiplication_bound": false +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json new file mode 100644 index 0000000000..ac62a25d8c --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-moment-audit.json @@ -0,0 +1,455 @@ +{ + "rows": [ + { + "name": "plain", + "bit_saving": "12599/200000000", + "reported_assembly_kappa": "6299103187973/100000000000000000", + "gap_above_14": "195587562973/100000000000000000", + "independent_moment": { + "saving": "12599/200000000", + "lower": "518623134244155681419305049142880733917326814719118560702743566427026037558782952858157928610976579348641/518623136000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "upper": "1298723344073735141567580695378815677636928074195703134424554703057646713926432781909404912647238772468053863004397050691322701357418862829784834994931252779231886817750889924353329650827999798176301982334446314468844174372582367488930704238738113678553431770447444061853243360312189402213306668344978034522718872137406608531902178470828122550228941449379009631752908296422310679006678908099536913476283353493066930021222946155905812441463200219810944218602785328656146426284063210446255587382740788388465169867054168443902004050593378954483542159450510940725827889781027926557107577110161714247472505237715035166417780542119680070791644409968024988536270135425366716104871369350860019394926895884856363463365963520255483/1298723348470677371081106871464614950212416571273111007659908168479653361844087388166410254984412799274869778129562395932983304560498839958189749332416300902333307382893376056801989349988348873012533890063491622380104791470754882188186653383837832247115837868956676391570030254776774574593138369743374393102446541847704303291995970280166552750584743198359286729726271049191384447917197858313269479881358427937797402119538319230543011416873082866921210323532536098979495959580335596559681470960147698615410896334081284261971409880688264879454668085912234930248435422146808826714692958971816005430405610135341134783101437139084162211321518672159983328129083823630746069649989350698849916256886336941927200000000000000000000", + "strict_gap": "4396942229513526176085799272575488497077407873235353465422006647917654606257005342337174026806815915125165345241660603203079977128404914337485048123101420565142486132448659699160349074836231907729045307911260617098172514699255949145099718568562406098509232329716786894464585172379831701398396358579727669710297694760093791809338430200355801748980277097973362752769073768910518950213732566405075074444730472098315373074637198975409882647110266104929750770323349533296272386113425883577406910226945726467027115818069405830094885924971125926461723989522607532365780900157585381861654291182933104897626099616683656596964482140529874262191958339592813688205379353545117981347989896861959441057070836536634036479744517/1298723348470677371081106871464614950212416571273111007659908168479653361844087388166410254984412799274869778129562395932983304560498839958189749332416300902333307382893376056801989349988348873012533890063491622380104791470754882188186653383837832247115837868956676391570030254776774574593138369743374393102446541847704303291995970280166552750584743198359286729726271049191384447917197858313269479881358427937797402119538319230543011416873082866921210323532536098979495959580335596559681470960147698615410896334081284261971409880688264879454668085912234930248435422146808826714692958971816005430405610135341134783101437139084162211321518672159983328129083823630746069649989350698849916256886336941927200000000000000000000", + "logarithms": { + "1": { + "lower": "6270988431858299381613503/1000000000000000000000000", + "upper": "6270988431859/1000000000000" + }, + "3": { + "lower": "5172376143190189690218259/1000000000000000000000000", + "upper": "5172376143191/1000000000000" + }, + "5": { + "lower": "932310103884839801402549/200000000000000000000000", + "upper": "186462020777/40000000000" + }, + "7": { + "lower": "4325078282802986076508151/1000000000000000000000000", + "upper": "4325078282803/1000000000000" + }, + "9": { + "lower": "2036881927261039999411507/500000000000000000000000", + "upper": "4073763854523/1000000000000" + }, + "11": { + "lower": "3873093159059928837551561/1000000000000000000000000", + "upper": "193654657953/50000000000" + }, + "13": { + "lower": "3706039074396762645560017/1000000000000000000000000", + "upper": "3706039074397/1000000000000" + }, + "15": { + "lower": "1425175292302435726247/400000000000000000000", + "upper": "3562938230757/1000000000000" + }, + "17": { + "lower": "343777508780208330136397/100000000000000000000000", + "upper": "3437775087803/1000000000000" + }, + "19": { + "lower": "3326549452691858921604477/1000000000000000000000000", + "upper": "831637363173/250000000000" + }, + "21": { + "lower": "1613232997067438192556453/500000000000000000000000", + "upper": "645293198827/200000000000" + }, + "23": { + "lower": "97984194247785927837711/31250000000000000000000", + "upper": "313549421593/100000000000" + }, + "439": { + "lower": "186489018783128031620293/1000000000000000000000000", + "upper": "5827781837/31250000000" + }, + "483": { + "lower": "45485889102863347153077/500000000000000000000000", + "upper": "45485889103/500000000000" + }, + "485": { + "lower": "10854942615102023112003/125000000000000000000000", + "upper": "86839540921/1000000000000" + }, + "487": { + "lower": "41362154387854795441797/500000000000000000000000", + "upper": "10340538597/125000000000" + }, + "489": { + "lower": "4914121398964209759583/62500000000000000000000", + "upper": "4914121399/62500000000" + }, + "491": { + "lower": "14908860812755760575863/200000000000000000000000", + "upper": "1164754751/15625000000" + }, + "493": { + "lower": "70479257815609274180699/1000000000000000000000000", + "upper": "8809907227/125000000000" + }, + "495": { + "lower": "8303833661201135020039/125000000000000000000000", + "upper": "6643066929/100000000000" + }, + "497": { + "lower": "31199202880835327589349/500000000000000000000000", + "upper": "31199202881/500000000000" + }, + "499": { + "lower": "29191168053390358164207/500000000000000000000000", + "upper": "58382336107/1000000000000" + }, + "501": { + "lower": "54382330773434582958509/1000000000000000000000000", + "upper": "27191165387/500000000000" + }, + "503": { + "lower": "6299782719820021899343/125000000000000000000000", + "upper": "50398261759/1000000000000" + }, + "505": { + "lower": "11607500645734889032137/250000000000000000000000", + "upper": "46430002583/1000000000000" + }, + "507": { + "lower": "8495485653423243622257/200000000000000000000000", + "upper": "10619357067/250000000000" + }, + "509": { + "lower": "38540415307776638778641/1000000000000000000000000", + "upper": "9635103827/250000000000" + }, + "511": { + "lower": "8654710413648736854011/250000000000000000000000", + "upper": "6923768331/200000000000" + }, + "513": { + "lower": "15356293343764923709371/500000000000000000000000", + "upper": "479884167/15625000000" + }, + "515": { + "lower": "1676345699660202265259/62500000000000000000000", + "upper": "5364306239/200000000000" + }, + "517": { + "lower": "22945557349870250730611/1000000000000000000000000", + "upper": "458911147/20000000000" + }, + "519": { + "lower": "477113717310268582119/25000000000000000000000", + "upper": "19084548693/1000000000000" + }, + "521": { + "lower": "15238390104932463524609/1000000000000000000000000", + "upper": "3047678021/200000000000" + }, + "523": { + "lower": "5703483896688240401681/500000000000000000000000", + "upper": "5703483897/500000000000" + }, + "525": { + "lower": "7590169266675635911389/1000000000000000000000000", + "upper": "7590169267/1000000000000" + }, + "527": { + "lower": "1893941658468527717403/500000000000000000000000", + "upper": "3787883317/1000000000000" + } + } + }, + "histogram": { + "483": 61280142, + "23": 61280142, + "525": 5653032, + "1": 1803209177, + "527": 6233920, + "489": 293986, + "17": 8476006, + "521": 13711082, + "523": 4629394, + "491": 580888, + "15": 7948248, + "485": 545468, + "21": 6906900, + "487": 173558, + "19": 1639946, + "493": 14168, + "13": 2164162, + "499": 1129898, + "7": 3580962, + "495": 322322, + "11": 5093396, + "505": 99176, + "503": 410872, + "3": 1356586, + "501": 127512, + "5": 354200, + "507": 1186570, + "509": 340032, + "497": 17710, + "9": 1526602, + "513": 106260, + "517": 626934, + "515": 1583274, + "511": 322322, + "519": 2854852, + "439": 6272882 + }, + "width": 108516254, + "recursive_rank": 57403754177, + "upstream_assembly": { + "ok": true, + "bad": [], + "kappa": "6299103187973/100000000000000000", + "eps": "9999370089681201/10000000000000000", + "x": 14695, + "c1": "14694", + "binding": "simultaneous butterflies", + "gap": "836914885318799/50000000000000000000000000000000" + } + }, + { + "name": "staircase", + "bit_saving": "31987/500000000", + "reported_assembly_kappa": "1599247689723/25000000000000000", + "gap_above_14": "73368783473/25000000000000000", + "independent_moment": { + "saving": "31987/500000000", + "lower": "8103486473266429008865046399176305579856577752771922628059416410544269782794745410240869354410215515785673/8103486500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "upper": "653851067397047618458688872775565504088779767030854818744660989822255649471866722171353014314417300653520580457433218354067096622498577647705992749441283263644000936650574033821700238472646972044931706007368516004675779417337433532308837300484396998174314614980382284494886766936000038248370089040028564247617537618095942215235605469208506924970394245239909731027731793639913183597208399725955562511564359781203900744081455057712432012488074623501661889057808781043032941990506900474949550986401293353386449579747830167840811108406949819665012151420117228770499869252586629664835813446317357337934974201227640677801596385898033694210696329857210333525073572190527767690437607125679796992822941850199054082015631004557012337460159814147439774764169161867/653851069554115891287661886558769107610629891436345459257241957721689519536278995024172823299600072974272129463039152886271523560071232342209319874608258956024626496550160696647073787202625577990361692717966416404080388314298434026021328062402293426940165019328537442519362198727530331301157278867831448583421588473959463330010990027109891758519089770348644237138029247351313206384982593621536279507829475091817536110955574719142598798052732763740293837504407551523719704048523225502280822069461609258637598930448620216059149671602680037607690576049988386417379404389312566277593737578512946571950737891714615647566682871467135534872171227949522428156844516224290693238092199887129755386385658628414100746903412275300915098248700225680000000000000000000", + "strict_gap": "2157068272828973013783203603521850124405490640512580967899433870064412272852819808985182772320751549005605934532204426937572654694503327125166975692380625559899586662825373548729978605945429986710597900399404608896961000493712490761917896428765850404348155158024475431791530293052787189827802884335804050855863521114775384557901384833548695525108734506110297453711400022787774193895580716996265115310613635366874119661430166785564658140238631948446598770480686762058016325027331271083060315905251149350700790048218338563195730217942678424629871157646879535136725936612757924132195589234015763690486974969765086485569101840661474898092312094631770944033762925547654592761449958393562716778215046664887781270743902760788540411532560225235830838133/653851069554115891287661886558769107610629891436345459257241957721689519536278995024172823299600072974272129463039152886271523560071232342209319874608258956024626496550160696647073787202625577990361692717966416404080388314298434026021328062402293426940165019328537442519362198727530331301157278867831448583421588473959463330010990027109891758519089770348644237138029247351313206384982593621536279507829475091817536110955574719142598798052732763740293837504407551523719704048523225502280822069461609258637598930448620216059149671602680037607690576049988386417379404389312566277593737578512946571950737891714615647566682871467135534872171227949522428156844516224290693238092199887129755386385658628414100746903412275300915098248700225680000000000000000000", + "logarithms": { + "1": { + "lower": "6270988431858299381613503/1000000000000000000000000", + "upper": "6270988431859/1000000000000" + }, + "3": { + "lower": "5172376143190189690218259/1000000000000000000000000", + "upper": "5172376143191/1000000000000" + }, + "5": { + "lower": "932310103884839801402549/200000000000000000000000", + "upper": "186462020777/40000000000" + }, + "7": { + "lower": "4325078282802986076508151/1000000000000000000000000", + "upper": "4325078282803/1000000000000" + }, + "9": { + "lower": "2036881927261039999411507/500000000000000000000000", + "upper": "4073763854523/1000000000000" + }, + "11": { + "lower": "3873093159059928837551561/1000000000000000000000000", + "upper": "193654657953/50000000000" + }, + "13": { + "lower": "3706039074396762645560017/1000000000000000000000000", + "upper": "3706039074397/1000000000000" + }, + "15": { + "lower": "1425175292302435726247/400000000000000000000", + "upper": "3562938230757/1000000000000" + }, + "17": { + "lower": "343777508780208330136397/100000000000000000000000", + "upper": "3437775087803/1000000000000" + }, + "18": { + "lower": "1690308336981067344702891/500000000000000000000000", + "upper": "3380616673963/1000000000000" + }, + "19": { + "lower": "3326549452691858921604477/1000000000000000000000000", + "upper": "831637363173/250000000000" + }, + "21": { + "lower": "1613232997067438192556453/500000000000000000000000", + "upper": "645293198827/200000000000" + }, + "23": { + "lower": "97984194247785927837711/31250000000000000000000", + "upper": "313549421593/100000000000" + }, + "439": { + "lower": "186489018783128031620293/1000000000000000000000000", + "upper": "5827781837/31250000000" + }, + "483": { + "lower": "45485889102863347153077/500000000000000000000000", + "upper": "45485889103/500000000000" + }, + "485": { + "lower": "10854942615102023112003/125000000000000000000000", + "upper": "86839540921/1000000000000" + }, + "487": { + "lower": "41362154387854795441797/500000000000000000000000", + "upper": "10340538597/125000000000" + }, + "489": { + "lower": "4914121398964209759583/62500000000000000000000", + "upper": "4914121399/62500000000" + }, + "491": { + "lower": "14908860812755760575863/200000000000000000000000", + "upper": "1164754751/15625000000" + }, + "493": { + "lower": "70479257815609274180699/1000000000000000000000000", + "upper": "8809907227/125000000000" + }, + "495": { + "lower": "8303833661201135020039/125000000000000000000000", + "upper": "6643066929/100000000000" + }, + "497": { + "lower": "31199202880835327589349/500000000000000000000000", + "upper": "31199202881/500000000000" + }, + "499": { + "lower": "29191168053390358164207/500000000000000000000000", + "upper": "58382336107/1000000000000" + }, + "501": { + "lower": "54382330773434582958509/1000000000000000000000000", + "upper": "27191165387/500000000000" + }, + "503": { + "lower": "6299782719820021899343/125000000000000000000000", + "upper": "50398261759/1000000000000" + }, + "505": { + "lower": "11607500645734889032137/250000000000000000000000", + "upper": "46430002583/1000000000000" + }, + "507": { + "lower": "8495485653423243622257/200000000000000000000000", + "upper": "10619357067/250000000000" + }, + "509": { + "lower": "38540415307776638778641/1000000000000000000000000", + "upper": "9635103827/250000000000" + }, + "511": { + "lower": "8654710413648736854011/250000000000000000000000", + "upper": "6923768331/200000000000" + }, + "513": { + "lower": "15356293343764923709371/500000000000000000000000", + "upper": "479884167/15625000000" + }, + "515": { + "lower": "1676345699660202265259/62500000000000000000000", + "upper": "5364306239/200000000000" + }, + "517": { + "lower": "22945557349870250730611/1000000000000000000000000", + "upper": "458911147/20000000000" + }, + "519": { + "lower": "477113717310268582119/25000000000000000000000", + "upper": "19084548693/1000000000000" + }, + "521": { + "lower": "15238390104932463524609/1000000000000000000000000", + "upper": "3047678021/200000000000" + }, + "523": { + "lower": "5703483896688240401681/500000000000000000000000", + "upper": "5703483897/500000000000" + }, + "525": { + "lower": "7590169266675635911389/1000000000000000000000000", + "upper": "7590169267/1000000000000" + }, + "527": { + "lower": "1893941658468527717403/500000000000000000000000", + "upper": "3787883317/1000000000000" + } + } + }, + "histogram": { + "483": 61280142, + "23": 61280142, + "525": 5653032, + "1": 1690297301, + "527": 6233920, + "489": 293986, + "17": 8476006, + "521": 13711082, + "523": 4629394, + "491": 580888, + "15": 7948248, + "485": 545468, + "21": 6906900, + "487": 173558, + "19": 1639946, + "493": 14168, + "13": 2164162, + "499": 1129898, + "7": 3580962, + "495": 322322, + "11": 5093396, + "505": 99176, + "503": 410872, + "3": 1356586, + "501": 127512, + "5": 354200, + "507": 1186570, + "509": 340032, + "497": 17710, + "9": 1526602, + "513": 106260, + "517": 626934, + "515": 1583274, + "511": 322322, + "519": 2854852, + "439": 6272882, + "18": 6272882 + }, + "width": 108516254, + "recursive_rank": 57403754177, + "upstream_assembly": { + "ok": true, + "bad": [], + "kappa": "1599247689723/25000000000000000", + "eps": "9999360300924109/10000000000000000", + "x": 14695, + "c1": "14694", + "binding": "simultaneous butterflies", + "gap": "595385529075891/50000000000000000000000000000000" + } + } + ], + "complex_sources_unchanged_except_trailing_LF": { + "independent/complex-twostage/run.py": { + "old_sha256": "6df735b8a69cf5226e04bf70db0a750dcdbbf3e9eddbabd293620849d6eff7b6", + "new_sha256": "fff6190b4f197689aad55077be882e8c95e0b699d366eadee5882cf8ff08be44", + "only_trailing_LF_difference": true + }, + "independent/complex-twostage/hist.py": { + "old_sha256": "eedc3a641859e023fa8408200071d886d798ac8add238a282baebbe9b14124f1", + "new_sha256": "e20d077acfc95e2f8239fcdcc03146cc15607996e2734eb2d00b68ed7d43ec64", + "only_trailing_LF_difference": true + }, + "independent/complex-twostage/producer.py": { + "old_sha256": "4c6a37eeda2f31af7adb7964e75eed37dc1bec08c41e622935ff1d99ac0d3f36", + "new_sha256": "e1715616ac8cafa8f63b7c0a2e7deacdba7daea94662e0a84626d5374fd27b5c", + "only_trailing_LF_difference": true + }, + "independent/complex-twostage/cert.py": { + "old_sha256": "3c3c5b13d970dc7d5647ff3969ff232c6d0b2182d959703e4b2b1ba79a268f21", + "new_sha256": "f9352729213b8441d076708b738d158093caa34d050fa2d838b61e07eb3a298b", + "only_trailing_LF_difference": true + }, + "independent/complex-twostage/frames.py": { + "old_sha256": "f1a04569997828560f4197f4c654ce752173ec2df3d9e69233c9ed4031d02abb", + "new_sha256": "8629850bd465250cdf298b47b86504f2ac507d5fa044f8c0d2a20b451d19aa0f", + "only_trailing_LF_difference": true + } + }, + "complex_histogram_field_equal": true, + "scope": "Independent bit moment enclosures; foreign assembly values reproduced by foreign evaluator, not independent verification of full assembly obligations. Reuse unchanged complex scalar/frame/moment checks only within their recorded scope. Full complex dirty/phase/precision/tape and stage-two physical composition remain open.", + "new_multiplication_bound": false +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-validation-job.json b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-validation-job.json new file mode 100644 index 0000000000..869231d71d --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/validation-prior/swapnil-round7-validation-job.json @@ -0,0 +1,41 @@ +{ + "pid": 30700, + "started_at": "2026-10-08T21:07:24.820537+00:00", + "head": "741e7aa078392553815df7926ee17ac5e25a8c38", + "state": "completed_upstream_finite_checks", + "stages": [ + { + "name": "frames", + "returncode": 0, + "elapsed": 219.62570874998346, + "limit_seconds": 1800, + "log": "/Users/chenzhihao/Documents/Codex/2026-10-08/https-github-com-crocswap-integer-mult/work/target14/swapnil-round7/frames-replay.log" + }, + { + "name": "lifted", + "returncode": 0, + "elapsed": 351.644068542053, + "limit_seconds": 1800, + "log": "/Users/chenzhihao/Documents/Codex/2026-10-08/https-github-com-crocswap-integer-mult/work/target14/swapnil-round7/lifted-replay.log" + }, + { + "name": "stair", + "returncode": 0, + "elapsed": 1.9291679169982672, + "limit_seconds": 180, + "log": "/Users/chenzhihao/Documents/Codex/2026-10-08/https-github-com-crocswap-integer-mult/work/target14/swapnil-round7/stair-replay.log" + }, + { + "name": "stair_control", + "returncode": 0, + "elapsed": 1.5355807919986546, + "limit_seconds": 180, + "log": "/Users/chenzhihao/Documents/Codex/2026-10-08/https-github-com-crocswap-integer-mult/work/target14/swapnil-round7/stair_control-replay.log", + "expected_rejection_seen": true + } + ], + "physical_stage_two_checked": false, + "new_multiplication_bound": false, + "active_stage": null, + "stage_started_at": "2026-10-08T21:16:58.031546+00:00" +} diff --git a/references/signed-recursion/pr97/research/deferred-signed/verify.py b/references/signed-recursion/pr97/research/deferred-signed/verify.py new file mode 100644 index 0000000000..b3536e65e5 --- /dev/null +++ b/references/signed-recursion/pr97/research/deferred-signed/verify.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Verify immutable inputs, exact moments and bridge; optionally replay ledgers. +Zhihao Chen / Codex. Moment enclosure adapted from the retained PR36/39 checker. +""" +import argparse,hashlib,json,subprocess,sys,tempfile,shutil,time +from pathlib import Path +from fractions import Fraction as Q +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1] + +def read(p):return json.loads(Path(p).read_text()) +def ceil(x):return -(-x.numerator//x.denominator) +def logs(x): + x=Q(x);power=0 + while x>2:x/=2;power+=1 + def term(y): + z=(y-1)/(y+1);lo=2*sum((z**(2*j+1)/Q(2*j+1) for j in range(24)),Q()) + return lo,lo+2*z**49/(49*(1-z*z)) + lo,hi=term(x);l2,h2=term(Q(2));lo+=power*l2;hi+=power*h2 + return Q((lo*10**24).__floor__(),10**24),Q(ceil(hi*10**12),10**12) +def moment(m,W,H,a): + lower=Q();upper=Q() + for t,n in H.items(): + assert 00 + lo,hi=logs(Q(m,t));u,w=a*lo,a*hi;assert 0<=u<=w<1 + weight=Q(n*t,m*W) + lower+=weight*(1+u+u*u/2+u*u*u/6) + upper+=weight*(1+w+w*w/(2*(1-w/3))) + return lower,upper +def stable(x): + if isinstance(x,dict):return {k:stable(v) for k,v in x.items() if k not in ('elapsed',)} + if isinstance(x,list):return [stable(v) for v in x] + return x +def verify_pins(): + pins=read(HERE/'SOURCE.json') + for rel,sha in pins['files'].items(): + assert hashlib.sha256((ROOT/rel).read_bytes()).hexdigest()==sha,('source drift',rel) + foreign=read(HERE/'swapnil-round7/IMPORT.json') + for rel,sha in foreign['files'].items(): + assert hashlib.sha256((HERE/'swapnil-round7'/rel).read_bytes()).hexdigest()==sha,('foreign drift',rel) + # Portability edits are limited to resolving a preserved equal histogram + # and the inherited assembly module from this repository root. + for name in ('round7_literal_frame_ledger.py','round7_tensor_endpoint_controls.py','round6_complex_interface_controls.py','round6_complex_literal_ledger.py','round7_balanced_assembly_candidate.py'): + old=(HERE/'validation-prior'/name).read_text() + if name=='round6_complex_literal_ledger.py': + old=old.replace("old=json.loads((HERE/'swapnil-round6/independent/complex-twostage/hist_24.json').read_text())", "old=json.loads((HERE/'swapnil-round7/lean/round6-histograms.json').read_text())['cx']; old['hist']=dict(old['hist'])") + if name=='round7_balanced_assembly_candidate.py': + old=old.replace("HERE/'integration/scripts'", "HERE.parents[1]/'scripts'").replace("HERE/'integration/scripts/structured_bulk_assembly.py'", "HERE.parents[1]/'scripts/structured_bulk_assembly.py'") + assert old==(HERE/name).read_text(),('unreviewed port edit',name) + return len(pins['files']) + +def main(): + assert __debug__,'verification requires assertions' + ap=argparse.ArgumentParser();ap.add_argument('--replay',action='store_true');ap.add_argument('--replay-own',action='store_true');args=ap.parse_args() + count=verify_pins();bit=read(HERE/'round7-literal-ledger/result.json');cx=read(HERE/'round6-complex-literal-ledger/result.json') + assert all(bit[k] for k in ('complete_forward_F2','complete_reflected_F2','reflected_frame_continuity','histogram_matches_external')) + assert all(cx[k] for k in ('actual_forward_equal_frames','reflected_continuity','actual_geometry_passed','histogram_matches_pinned')) + H={int(t):n for t,n in bit['histogram'].items()};C={int(t):n for t,n in cx['full_histogram'].items()} + assert sum(t*n for t,n in H.items())==57403754177 + assert sum(t*n for t,n in C.items())==119453132304 + expected=read(HERE/'swapnil-round7/lean/round6-histograms.json')['cx'] + assert C==dict(expected['hist']) + ab,ac=Q(31987,500000000),Q(36926111,500000000000) + mb=moment(529,108516254,H,ab);mc=moment(576,207387136,C,ac) + assert mb[1]<1 and mc[1]<1 + cert=read(HERE/'round7-balanced-assembly-candidate.json') + assert cert['source_assembly_sha256']==hashlib.sha256((ROOT/'scripts/structured_bulk_assembly.py').read_bytes()).hexdigest() + assert Q(cert['candidate_kappa'])==Q(63965813,10**12)>Q(1,16384) + assert len(cert['assembly']['strict_constraints'])==47 and len(cert['assembly']['margins'])==7 + assert all(Q(x)>0 for x in cert['assembly']['strict_constraints'].values()) + assert all(Q(x)>Q(cert['candidate_kappa']) for x in cert['assembly']['margins'].values()) + job=read(HERE/'validation-prior/swapnil-round7-validation-job.json') + assert job['state']=='completed_upstream_finite_checks' + assert all(x['returncode']==0 for x in job['stages']) and job['stages'][-1]['expected_rejection_seen'] + # All regenerated outputs live in a disposable tree; never rewrite a + # source pin or erase the original measured receipt. + with tempfile.TemporaryDirectory(prefix='deferred-signed-') as tmp: + root=Path(tmp);pkg=root/'research/deferred-signed';shutil.copytree(HERE,pkg) + (root/'scripts').mkdir();shutil.copy2(ROOT/'scripts/structured_bulk_assembly.py',root/'scripts/structured_bulk_assembly.py') + jobs=[('check_complex_identity.py',None,120),('round7_balanced_assembly_candidate.py','round7-balanced-assembly-candidate.json',120)] + if args.replay or args.replay_own: + jobs=[('round7_literal_frame_ledger.py','round7-literal-ledger/result.json',180), + ('round7_tensor_endpoint_controls.py','round7-tensor-endpoint-controls.json',120), + ('round6_complex_interface_controls.py','round6-complex-interface-controls.json',120), + ('round6_complex_literal_ledger.py','round6-complex-literal-ledger/result.json',180)]+jobs + for script,out,limit in jobs: + r=subprocess.run([sys.executable,script],cwd=pkg,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True,timeout=limit) + assert r.returncode==0,(script,r.stdout[-4000:]) + if out is not None:assert stable(read(pkg/out))==stable(read(HERE/out)),('regeneration drift',out) + print('PASS',script,flush=True) + if args.replay: + src=pkg/'swapnil-round7';dd='independent/deferred-readout/' + for argv,limit in [([dd+'check_word.py','23'],180),([dd+'check_frames.py','23'],1800),([dd+'check_lifted.py','23'],1800),([dd+'check_stair.py','23'],180),([dd+'check_stair.py','23','--control'],180)]: + r=subprocess.run([sys.executable]+argv,cwd=src,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True,timeout=limit) + assert r.returncode==0,(argv,r.stdout[-4000:]) + if '--control' in argv:assert 'certified=False' in r.stdout + print('PASS native',argv,flush=True) + print('PASS',count,'pins; both independent moments; 47 constraints; 7 margins; kappa=63965813/10^12 > 2^-14') + print('Conditional on retained analytic/fixed-tape interfaces; not formal verification of the full theorem.') +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr97/research/joint-dual/SOURCE.json b/references/signed-recursion/pr97/research/joint-dual/SOURCE.json new file mode 100644 index 0000000000..67b7f0d878 --- /dev/null +++ b/references/signed-recursion/pr97/research/joint-dual/SOURCE.json @@ -0,0 +1,60 @@ +{ + "author": "Chafik Boukhalfa with OpenAI Codex assistance", + "base_pr57_commit": "cd350f76c9bc01489ec83568bded532cb69be938", + "base_pr58_commit": "bc2f7ed4c20dc18898305ab17165c0c995cbb804", + "files": { + "Makefile": "d3da97587cfa850d826bbb450f13121ff46e4e87bc91681e669279557562494a", + "NOTICE": "1c53970fb4face631a1b331ec66d33111eccd280a129f9b64c2da6df96861c3f", + "README.md": "5fe2101e1bd639a1739e4986c807f3a659b463a8a5873126e11727e8e63298a1", + "certificates/joint-dual-compiler.json": "516c4d85158553dabd0a98216a064b2a7397957a9d5dd0df1d6e5aec53a4e805", + "certificates/joint-dual-profiles-23.json": "159fa8fee175fc1d24f63e72d3c2f1dc9f4fcd78b938c5e7d2f735fd0fd37209", + "certificates/joint-dual-profiles-25.json": "8d190ce42d097e828c5756918c52f2963df576cf4c6600b0fc7f2b7fdb6ad223", + "certificates/joint-dual-transitions-23.json": "9ee68e542768b7a8802f8e1fc8a61b17c72c319f6c1d70c69a086c811cfec7fc", + "certificates/joint-dual-transitions-25.json": "f858c3f71d563c14013c9ae4cc10fce2b9f227da38e468a392c6890613444c8d", + "certificates/joint-dual-word-23.json.gz": "634da1cb39634be15c6d4070132c6bdf4f5a927331cac3b4f13dc995dd799b6b", + "certificates/joint-dual-word-25.json.gz": "dd2223d7ee0b91c4445f5acd0b7cad945f56f4e16456b6818f53ddef64a0cb16", + "certificates/skip-frame-kappa.json": "d6d2ed145539af1acfe95c0df1ceac155fa359d43590ac772cbe1938f92f0092", + "references/frame-compiler/pr48/SOURCE.json": "6ccc673f88d3650d75ed600b082fe2fc2866dd88a172d182a38c1d0cd27d24b3", + "references/frame-compiler/pr48/research/copied-fixed/balanced_assembly.py": "4d27575dcad2b45a281a34054d311409ecd954f373c0c3a62c29bcc843f06a86", + "references/frame-compiler/pr48/research/copied-fixed/certificate.json": "33b3373c04e18a7f4cee33ba68da6ed71934acc3e0179cca6197696be4befa22", + "references/frame-compiler/pr48/research/copied-fixed/changed_graph.py": "375a7ca6cac6d153c1880fd5ea5b4525e5dca9d4ee3018d24d679c219b59c5b3", + "references/frame-compiler/pr48/research/copied-fixed/profiles.cpp": "b9fbd71c746609948b60c441ba4601e88436956fe636d1810f270ce4ce6a63a6", + "references/frame-compiler/pr48/research/copied-fixed/verify.py": "44932182ce6c4d39776650311262ef0ac1ea9b5da7220bc0f728e2789881f84a", + "references/frame-compiler/pr48/scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "references/frame-compiler/pr48/scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "references/frame-compiler/pr48/scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "references/frame-compiler/pr48/scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "references/frame-compiler/pr53/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr53/NOTICE": "40a3066696e0de23e46b565460d19e85b435990ba837da5c1ca925335f4ba829", + "references/frame-compiler/pr53/SOURCE.json": "ff773a663f697d825ee0e1b783bbdd91529272f5d0db6da8c5ced3f1ef4d0fc9", + "references/frame-compiler/pr53/research/skip-strips/skip_graph.py": "03ee019cdaf73391455aaf4f5dcb4873f4fdcb278179b296c02ea39eafd047e4", + "references/frame-compiler/pr55/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr55/NOTICE": "40a3066696e0de23e46b565460d19e85b435990ba837da5c1ca925335f4ba829", + "references/frame-compiler/pr55/SOURCE.json": "1d39551202a579065355ea781101250920f5c2fc0de747445b433b30b7d1fd2e", + "references/frame-compiler/pr55/research/skip-suffix/skip_graph.py": "7c4781dcc3c134befd8abf295d1e71a99fbbe932112fb56bd5d36e79896ca5f7", + "references/frame-compiler/pr58/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/frame-compiler/pr58/NOTICE": "42190595687521b47eb45231d85e3dcb09ae6359d8a232bc7250824d5076ccc9", + "references/frame-compiler/pr58/README.md": "da14f42ddaad466799dd8944e2a05cf8f8f4ced392513d0198553e1f587fa7ef", + "references/frame-compiler/pr58/SOURCE.json": "864f49710369e41591f83ef654ef9847020ff770c744ea9c853e6cb084733bd0", + "references/frame-compiler/pr58/certificates/joint-dual-kappa.json": "c05631d319c71ca6c91e8422cee9d617d9b0056ebf971db8282b041613b09025", + "references/frame-compiler/pr58/certificates/joint-dual-repository-validation.json": "a8caabfc0a475a6c2deaeafec5b141825d1359fb9cebb35939ef97c7a1315cd6", + "references/frame-compiler/pr58/research/joint-dual/PROOF.md": "dccf893d6f6e8be7d40192b7976aa6712a32d7573e382c16056b703c29780b0d", + "references/frame-compiler/pr58/research/joint-dual/README.md": "0f991088d65eb1d528b986568c3ddfe0f072d1f53837e046de8148dfb098e561", + "references/frame-compiler/pr58/research/joint-dual/SOURCE.json": "7af117467d06baf9b073a081e62f928e4a06b074c1274f2479587e3400b428d8", + "research/joint-dual/PROOF.md": "ef87781965cd6d509150c6423525671a7c7d1734f334a6a3c39cc7bffdbae33a", + "research/joint-dual/README.md": "ba7d21a7f71cac74fc7c5b802c0f1f642b8130d6b484e73074f117772b8133cb", + "scripts/experiments/binary_frame_compiler.py": "bc6910c8bbe8224285164323d3c06e9035ad3eaa55416abc2867ae0066454a0c", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/joint_dual_compiler.py": "853d3fc4a740c5b74c23b3a6af5d4dc9b41fb38e9b55678539a7e0ee71947c13", + "scripts/experiments/joint_dual_compose.py": "741900aa6f69c0e3458700f3b534334269004ad80c50405ecfeda18e6d3f2800", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/pin_joint_dual_sources.py": "4d31cc0e38b7902709ca5f8f714cba109760d2592346dd7f8dc0b900a2d9fe00", + "scripts/experiments/verify_joint_dual.py": "7a31bba1e9c0ded32ae285df2ca9bc91ef20c330f6789fdba361876f3c7a1985", + "tests/test_joint_reclaim.py": "e2cfc99a52283c4912f970f83c7da5481ba9840d5f999f7e0e5468e8e8862a41" + }, + "producer_pr55_commit": "03e991aa79f9df1a935726213bb6a8631cd0d823", + "scope": "Explicit reviewed source and finite-input freeze; arithmetic certificates and validation receipts are derived." +} diff --git a/references/signed-recursion/pr97/scripts/structured_bulk_assembly.py b/references/signed-recursion/pr97/scripts/structured_bulk_assembly.py new file mode 100644 index 0000000000..b76f9cb5a4 --- /dev/null +++ b/references/signed-recursion/pr97/scripts/structured_bulk_assembly.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +"""Copyright 2026 icekylinx. Apache-2.0. +Substantial OpenAI GPT-6 Astra and Codex assistance. + +Exact finite bridge and assembly for the round-three networks. + +Adapted parameter calculation and semantic/product-row proof from PR23, +Zhihao Chen (jacklightChen), which attributes routing, phase-cell inverse +and bulk resampling to the RaD project (hipotures), commit +45d9b60355872041f9275f77c057514def0d45bc. This file does not regenerate, +audit, or substitute for the finite-network or analytic source proofs. +""" +from fractions import Fraction as Q + +def js(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):js(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [js(v) for v in x] + return x + +def halving(m,r): + assert 0=s+E and 2*B+18Q(coeff*51,25) + return dict(bit=dict(m=bit_m,W=bit_W,maxchild=bit_maxchild, + halving_degree=db,wire_bits=wb), + complex=dict(m=m,W=W,s=s,maxchild=r,halving_degree=dc, + wire_bits=wc,scalar_terms=scalar_terms,scalar_group_upper=G), + semantic=dict(E=E,literal_charge=charge,strict_literal_gap=E-charge, + B=B,C0=C0,C1=1,induction_gap=2*B*(m-r)-s-E), + rows=dict(coefficient=coeff,degree=degree,suffix_slope=4*degree, + degree_gap=Q(degree)-Q(coeff*51,25), + contract='W_complex^D_complex * W_bit^D_bit; preceding row prefix, single complete-row padding, nested bit stock restored')) + +def assembly(bit_saving,complex_saving,bridge,kappa,eta=Q(1,10**8),beta=Q(1,4)): + a,b=bit_saving,complex_saving + tau,sigma=1-a,1-b + q=a*(1-2*eta); lp=1-q; lam=(tau+lp)/2 + c=q*(1+eta); eps=(1-eta)/(1+c+q) + minimum=eps*q; r=(minimum+1-eps)/2; delta=eta/8 + internal=tau+(1-beta)*max(sigma-tau,Q(0));leaf=sigma+beta*(1-sigma) + margins=dict(original_prefix=1-eps*(1+c),coordinate_movement=a, + compact_phase_layer=minimum,bulk_exposure=a, + Gaussian_arithmetic=min(1-eps-delta,r-delta), + scalar_work=1-eps-delta,dimension=eps) + slacks=dict(bit_positive=a,complex_above_bit=b-a, + complex_below_one_over32=Q(1,32)-b,beta_positive=beta, + beta_below_one=1-beta,leaf_saving_above_bit=(1-beta)*b-a, + q_positive=q,q_below_internal=1-internal-q,q_below_leaf=1-leaf-q, + c_positive=c,c_below_one=1-c,q_below_reservations=c-q, + lambda_above_tau=lam-tau,lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal,lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf,compact_reservations=lp-(1-c), + lambda_prime_below_one=q,epsilon_positive=eps,epsilon_below_one=1-eps, + guard_width=1-eps,K_geometry=1-eps*(1+c),K_dominates_log=eps*c, + record_suffix=1-eps,phase_local=1-eps-delta,phase_boundary=r-delta, + gamma_sublinear=1-eps-r,cell_above_band=eps-(1-r)/2, + prime_interval_packing=1-eps,alpha_positive=r,alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r,delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta,short_record_fallback=eps-a, + small_field_exposure=1-eps-minimum, + artificial_boundary=8-eps+r-delta-minimum, + literal_scalar_guard=Q(bridge['semantic']['strict_literal_gap']), + row_product_gap=bridge['rows']['degree_gap']) + slacks.update({name+'_above_kappa':val-kappa for name,val in margins.items()}) + assert all(v>0 for v in slacks.values()),{k:str(v) for k,v in slacks.items() if v<=0} + assert min(margins.values())==minimum + assert margins['original_prefix']-minimum==eta + return dict(parameters=dict(a_bit=a,a_complex=b,tau=tau,sigma=sigma, + eta=eta,beta=beta,q=q,c=c,epsilon=eps,lambda_=lam, + lambda_prime=lp,alpha_squared_power=r,delta=delta, + C0=bridge['semantic']['C0'],C1=1,kappa=kappa), + strict_constraints=slacks,margins=margins,minimum_margin=minimum, + absorption_gap=minimum-kappa, + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c)) diff --git a/references/signed-recursion/pr99/ARCHIVE.json b/references/signed-recursion/pr99/ARCHIVE.json new file mode 100644 index 0000000000..6e7b4e9ebe --- /dev/null +++ b/references/signed-recursion/pr99/ARCHIVE.json @@ -0,0 +1,149 @@ +{ + "file_commits": { + "research/nondegenerate-readout-saturation/.gitignore": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/LICENSE": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/MANIFEST.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/NOTICE": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/PROVENANCE.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/README.md": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/LICENSE": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/NOTICE": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/README.md": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round3.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/experiments/saturation-review/review.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/REPORT.md": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/candidate-frames-check.log": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/qualification-saturated.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/results.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/scripts/check_research.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "research/nondegenerate-readout-saturation/verify.py": "0622dcce6a897567e4eb6bdfedc7def66ab21346" + }, + "files": { + "research/nondegenerate-readout-saturation/.gitignore": "10040db5cfd04ba1f261ee36d2003504e5dc1a822b0f2645d54e7f58bb6b0b3a", + "research/nondegenerate-readout-saturation/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "research/nondegenerate-readout-saturation/MANIFEST.json": "4b43581b9cd27b2a4e39c58870f842335eff561711b74677c89b3d5f04b6fd1a", + "research/nondegenerate-readout-saturation/NOTICE": "102cb3c83914de14aae2d1f7eb31359a639a0ca798a82490e64f1dd60ccd6cfa", + "research/nondegenerate-readout-saturation/PROVENANCE.json": "7dee4fdafb1f2c375d9bdf584c75a573e5370f2df9f191c45a5788dc34dd37b5", + "research/nondegenerate-readout-saturation/README.md": "cf05c6a070b628a9f38f446969ab1e8572ad3bc08a5747853353f38353f2acee", + "research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py": "cfa32a68efbc01f6cb820191543fe09d12e9862953795c7d7996e1ca905a50d1", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py": "21d3edb46c2603c148ad6d0b3431953c75b19c9717dc4246f87545da184d86cc", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py": "f643dc233501b0fb29f15fc716867597fda19f594fba4106fbafbbe9582e9db7", + "research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py": "124fc1e78bfda75c4385646d27de3694afd3639dd830f934c5ae5e90a2b0fb46", + "research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json": "93ad815db2dc6df5441f6ca5b90c7803c1e0a1cbb3893e4dee7290680d492722", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py": "0d023f6d3aab3549555341b238df94d529e8a9a9d5db7dd7d6c89f051b53fcbd", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json": "cbc87c2f12083762812e101916f09f1deb9bd8e6a28cfafc3c4a8bebf131de5c", + "research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py": "449c6324600451e024452a92fc6df22376c40733e5f1905fcf6eb1c3e6b332ee", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/NOTICE": "6c3d74693acb7b0ef3099f12598a99016c4fdf637a806011549b7b4fd80be636", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/README.md": "fcc3c0ee9494f00ad22712fb660b647e643827b4c8c911a5cccc3eebda20f6e2", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py": "7559ee403ce18dec35c0f245e02965cc225dde197eb3a14db893937fca9cdc1f", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py": "25646854a39cce9516520aed1362f60e504e91e4248c6c1f80136ab170b41766", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py": "4e0b12cd43556453663bcbfdc49fca9715503546e5aa946fe5438cf98e517a1d", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py": "9e88de7f70f82fd98982ca916fa19c5a2b4343ce86a11a681389b57f05ff256a", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py": "9b2acaeb6f1beb2a53c15e00c027f9ba22397a12071ad0b71131e12012a98036", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py": "f1c1fb3b8b67e4d705d9dfaae7564065a531137c5daf372a18792a0115cfde43", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py": "925010339108f36dc3bbbc721121146d276feb2e99f6e4391f5f16fe2cc05860", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py": "b1fcae8df8c9df466f1dbc4054ff96219e8f8a603084b94657b2bcbbb629e54e", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py": "82ae167ffc3ff3713f1d1ee242118f259c3ab71e3f6e1a354972ed8a907cb7f1", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py": "5ff35df367f607202d129ff2c47b807acbdf59fb9e98eaba130c78b06eacd4cd", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py": "3723fec8dfd2d5f67879651596a30897b89d4fedcd4fc3f864d5e8e18f7a9e0c", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean": "e066de6b915231ec81c4411d634caa08c395b37c1555defb3091d41224a272c4", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json": "2c4595fa120c1b0df01b83827909f010b44499fc1931011e6d2aeb3add757031", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex": "4e848f7f06c975045629da7cca9f79e10f255d08dc17a72629c9bed522565d52", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex": "e4022f37e2bfa147f373f0bc67ce9bebb0d8c07c23e364c83ae3672bc1dc4185", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round3.py": "0f47035eac7e1b873fa8aa962d3fda5706dd6aac70bc535de0bd9ac8be465a76", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py": "c92810422723b9fdaa78ff350bef6d0f11f60c28d7ad1dac46665710bdccbd64", + "research/nondegenerate-readout-saturation/experiments/saturation-review/review.py": "3e579220762d78334975c5a82afd138ee038230d2aa1a3191963a7988b34a453", + "research/nondegenerate-readout-saturation/historical/REPORT.md": "ad1a8762130333d285989179f42f508da284657d0322b42150219a9b276770f2", + "research/nondegenerate-readout-saturation/historical/candidate-frames-check.log": "83637d2f0da21f5149f8bc12f743cf39f05531d14d54ccd6d470072f9774b8d7", + "research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json": "59c060dbe96827b6b4a14d25ab5e567246f5a880832b4d78af5e8d46423e696d", + "research/nondegenerate-readout-saturation/historical/qualification-saturated.json": "5da8e0164d9aa82eb312d8b197e527036e04188823e64e664e98d011dbe5008a", + "research/nondegenerate-readout-saturation/historical/results.json": "5e62dedd6379bc4e1a9042d5d71b641d9f001d98abadc4cf72ef194c3cfd1598", + "research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json": "58941d2287b8cdb1f2f3b1c5bc5acaa3a993d5e2a42c4311de3e22c0709dbf5b", + "research/nondegenerate-readout-saturation/scripts/check_research.py": "fd44d10d27dc9fb882aa5dd19d3d00dcc7c5ee4ba2c9d2e8dee42172c546e246", + "research/nondegenerate-readout-saturation/verify.py": "e7d5877509c47a2fa9bb6607ebb154bd883879a5b89ea796bd33fd92c21a65ac" + }, + "git_blobs": { + "research/nondegenerate-readout-saturation/.gitignore": "23c63072fa71dcccfe8d049e031dbdb16ede21a6", + "research/nondegenerate-readout-saturation/LICENSE": "57bc88a15a0ee8266c259b2667e64608d3f7e292", + "research/nondegenerate-readout-saturation/MANIFEST.json": "bf5cd97a0f3d24629a7cba1aaf061ff0e87bdc0a", + "research/nondegenerate-readout-saturation/NOTICE": "e8691cc07dd53dcfe74da1322793b2688fca4d51", + "research/nondegenerate-readout-saturation/PROVENANCE.json": "1a93dcab54202f9253f43bc85f4e77c4b6bc17b4", + "research/nondegenerate-readout-saturation/README.md": "5233203ef9bd87c44e9dd25b73609ea0f63d509f", + "research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py": "a28e243c0b34f6a6710be6d52ac062148ac636d2", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py": "303aa86ed7f5624b07cec362bdc563d20ac30580", + "research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py": "bf2b0a57ca3ef25efbb055fea9e6c6568c7e935d", + "research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py": "7f3e15349181d1abd0038eb7abd5a493a0a9442c", + "research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json": "b62e78100fb86a9fd133497c0188518f5056a668", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py": "aac60e4243075735de0edf5c7753d13ac5bc75cc", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz": "247b66b034e83a79ff1b0dc0932e1ed0a0177a0f", + "research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json": "163260325bb989eb0538b04c89e10d70eb0a2f88", + "research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py": "ff5c8901d379ff397f1aa29eb0a8875f12c51848", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/LICENSE": "57bc88a15a0ee8266c259b2667e64608d3f7e292", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/NOTICE": "edc3efe722ed1ae69fa986555ec02907ad85434c", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/README.md": "747c705371b6d6aaa2c733f4f2b87460d2458427", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py": "ecb1fdf4e014e7cd9651576bc1780650d1412dc2", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py": "700514eb5b2d67eabbd4c39244865fe77e2959dd", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py": "f45c41cc5f476f55b399dd1d434f03077f8b94fe", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py": "674571e0041c3e78f12ada13bc6cf3b1402ea799", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py": "d045126217670dc82e7515230f9dc055ac9dc444", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py": "06f57742ceb6fa0d8ee632200af5a0e875e93c4a", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py": "ecea8d0d82ac58f31c70dba39ac1f5864fd9d91b", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py": "b786883abd8c045cdf946f5e8acab020e74e33a5", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py": "c69bc6d20421bbbfff4321369783ccd5897e9717", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py": "925090a3b93a8a2087dabaaf7129f63ecfdd9a30", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py": "583dd997e62c92cf3f43320e9b63537ab19588e5", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean": "2fc16394157f2d05790002fc79230e632bf90e15", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json": "ceaa8c0111b34878443d0e561d02b8f72a97d2df", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex": "d79abea77a5b6599193d34a0919f9775334d212b", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex": "c9647ba1007d50fc82d71ef3bd0f7b7791005d44", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round3.py": "f5ac54082ac92a21ace7323aa948f65e329af657", + "research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py": "ce8225c599e8beb33a2d160613e1ba4618f31d33", + "research/nondegenerate-readout-saturation/experiments/saturation-review/review.py": "db76d35e1efc30c7ef47eb984e6c9de5eb978aa0", + "research/nondegenerate-readout-saturation/historical/REPORT.md": "8bf7e38c940166957afce0bcc590d3ec67de0ec5", + "research/nondegenerate-readout-saturation/historical/candidate-frames-check.log": "f6d405ebd4c6714d0f7f3ff9fe91b5b773580766", + "research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json": "91595e214ac32be74f6dba09fd1da1904c8ad315", + "research/nondegenerate-readout-saturation/historical/qualification-saturated.json": "12a68ec737b984ebf60e107e07ab3e2b7eb74ad1", + "research/nondegenerate-readout-saturation/historical/results.json": "c28b58b3fc19c97b4675b1f8e9b3651c59d51d0c", + "research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json": "3d50be4704555b12c0463c4ab0612fd152ee5a71", + "research/nondegenerate-readout-saturation/scripts/check_research.py": "6d69bf1ba6ca09e909cde911822099dfaf3b89ad", + "research/nondegenerate-readout-saturation/verify.py": "62da642c1eeba52ab60556cc56af649a9d983fc8" + }, + "head": "0622dcce6a897567e4eb6bdfedc7def66ab21346", + "repository": "djsmanchanda/integer-mult-bounds", + "scope": "Selected preserved upstream source and evidence closure. All files retain original Git bytes; file_commits identifies four historical PR97 logs recovered at the subsequent head." +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/.gitignore b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/.gitignore new file mode 100644 index 0000000000..23c63072fa --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/.gitignore @@ -0,0 +1,5 @@ +__pycache__/ +*.pyc +verification/ +experiments/saturation-review/results.json +experiments/round7-review/candidate-*-receipt.json diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/LICENSE b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/LICENSE new file mode 100644 index 0000000000..57bc88a15a --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/MANIFEST.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/MANIFEST.json new file mode 100644 index 0000000000..bf5cd97a0f --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/MANIFEST.json @@ -0,0 +1,51 @@ +{ + "schema": 1, + "sha256": { + ".gitignore": "10040db5cfd04ba1f261ee36d2003504e5dc1a822b0f2645d54e7f58bb6b0b3a", + "LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "NOTICE": "102cb3c83914de14aae2d1f7eb31359a639a0ca798a82490e64f1dd60ccd6cfa", + "PROVENANCE.json": "7dee4fdafb1f2c375d9bdf584c75a573e5370f2df9f191c45a5788dc34dd37b5", + "README.md": "cf05c6a070b628a9f38f446969ab1e8572ad3bc08a5747853353f38353f2acee", + "experiments/round7-review/audit_evidence.py": "cfa32a68efbc01f6cb820191543fe09d12e9862953795c7d7996e1ca905a50d1", + "experiments/round7-review/check_arithmetic.py": "21d3edb46c2603c148ad6d0b3431953c75b19c9717dc4246f87545da184d86cc", + "experiments/round7-review/check_candidate_frames.py": "f643dc233501b0fb29f15fc716867597fda19f594fba4106fbafbbe9582e9db7", + "experiments/round7-review/histogram_engine.py": "124fc1e78bfda75c4385646d27de3694afd3639dd830f934c5ae5e90a2b0fb46", + "experiments/round7-review/qualification.json": "93ad815db2dc6df5441f6ca5b90c7803c1e0a1cbb3893e4dee7290680d492722", + "experiments/round7-review/saturate_readouts.py": "0d023f6d3aab3549555341b238df94d529e8a9a9d5db7dd7d6c89f051b53fcbd", + "experiments/round7-review/saturated-Z.json.gz": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4", + "experiments/round7-review/saturation-results.json": "cbc87c2f12083762812e101916f09f1deb9bd8e6a28cfafc3c4a8bebf131de5c", + "experiments/round7-review/scalar_engine.py": "449c6324600451e024452a92fc6df22376c40733e5f1905fcf6eb1c3e6b332ee", + "experiments/round7-review/vendor/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "experiments/round7-review/vendor/NOTICE": "6c3d74693acb7b0ef3099f12598a99016c4fdf637a806011549b7b4fd80be636", + "experiments/round7-review/vendor/README.md": "fcc3c0ee9494f00ad22712fb660b647e643827b4c8c911a5cccc3eebda20f6e2", + "experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "experiments/round7-review/vendor/certificates/round7/witness_23.json.gz": "b2486aa2bb222bacea6e52162a3920780e45dd8edc5d7cb03eabea336a1c6588", + "experiments/round7-review/vendor/independent/deferred-readout/check_frames.py": "7559ee403ce18dec35c0f245e02965cc225dde197eb3a14db893937fca9cdc1f", + "experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py": "25646854a39cce9516520aed1362f60e504e91e4248c6c1f80136ab170b41766", + "experiments/round7-review/vendor/independent/deferred-readout/check_stair.py": "4e0b12cd43556453663bcbfdc49fca9715503546e5aa946fe5438cf98e517a1d", + "experiments/round7-review/vendor/independent/deferred-readout/check_word.py": "9e88de7f70f82fd98982ca916fa19c5a2b4343ce86a11a681389b57f05ff256a", + "experiments/round7-review/vendor/independent/deferred-readout/deferred.py": "9b2acaeb6f1beb2a53c15e00c027f9ba22397a12071ad0b71131e12012a98036", + "experiments/round7-review/vendor/independent/deferred-readout/linalg.py": "f1c1fb3b8b67e4d705d9dfaae7564065a531137c5daf372a18792a0115cfde43", + "experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py": "925010339108f36dc3bbbc721121146d276feb2e99f6e4391f5f16fe2cc05860", + "experiments/round7-review/vendor/independent/two-stage-bit/corners.py": "b1fcae8df8c9df466f1dbc4054ff96219e8f8a603084b94657b2bcbbb629e54e", + "experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py": "82ae167ffc3ff3713f1d1ee242118f259c3ab71e3f6e1a354972ed8a907cb7f1", + "experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py": "5ff35df367f607202d129ff2c47b807acbdf59fb9e98eaba130c78b06eacd4cd", + "experiments/round7-review/vendor/independent/two-stage-bit/moment.py": "3723fec8dfd2d5f67879651596a30897b89d4fedcd4fc3f864d5e8e18f7a9e0c", + "experiments/round7-review/vendor/lean/Round7.lean": "e066de6b915231ec81c4411d634caa08c395b37c1555defb3091d41224a272c4", + "experiments/round7-review/vendor/lean/round7-histograms.json": "2c4595fa120c1b0df01b83827909f010b44499fc1931011e6d2aeb3add757031", + "experiments/round7-review/vendor/notes/deferred-readout.tex": "4e848f7f06c975045629da7cca9f79e10f255d08dc17a72629c9bed522565d52", + "experiments/round7-review/vendor/notes/partial-swap-batching.tex": "e4022f37e2bfa147f373f0bc67ce9bebb0d8c07c23e364c83ae3672bc1dc4185", + "experiments/round7-review/vendor/scripts/certificate_round3.py": "0f47035eac7e1b873fa8aa962d3fda5706dd6aac70bc535de0bd9ac8be465a76", + "experiments/round7-review/vendor/scripts/certificate_round7.py": "c92810422723b9fdaa78ff350bef6d0f11f60c28d7ad1dac46665710bdccbd64", + "experiments/saturation-review/review.py": "3e579220762d78334975c5a82afd138ee038230d2aa1a3191963a7988b34a453", + "historical/REPORT.md": "ad1a8762130333d285989179f42f508da284657d0322b42150219a9b276770f2", + "historical/candidate-frames-check.log": "83637d2f0da21f5149f8bc12f743cf39f05531d14d54ccd6d470072f9774b8d7", + "historical/candidate-scalar-results.json": "59c060dbe96827b6b4a14d25ab5e567246f5a880832b4d78af5e8d46423e696d", + "historical/qualification-saturated.json": "5da8e0164d9aa82eb312d8b197e527036e04188823e64e664e98d011dbe5008a", + "historical/results.json": "5e62dedd6379bc4e1a9042d5d71b641d9f001d98abadc4cf72ef194c3cfd1598", + "historical/saturated-balanced-compatibility.json": "58941d2287b8cdb1f2f3b1c5bc5acaa3a993d5e2a42c4311de3e22c0709dbf5b", + "scripts/check_research.py": "fd44d10d27dc9fb882aa5dd19d3d00dcc7c5ee4ba2c9d2e8dee42172c546e246", + "verify.py": "e7d5877509c47a2fa9bb6607ebb154bd883879a5b89ea796bd33fd92c21a65ac" + }, + "note": "Hash check does not imply a mathematical proof. Generated verification outputs excluded." +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/NOTICE b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/NOTICE new file mode 100644 index 0000000000..e8691cc07d --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/NOTICE @@ -0,0 +1,47 @@ +Past the a_b/2 ceiling for integer multiplication +Copyright 2026 Swapnil Jain + +This work builds on, and does not modify, the following: + +- OpenAI, "Integer multiplication below n log n" (September 23, 2026), pinned at + commit adc7f1241b42e322a6451854ab7e4b4c146bf78a of github.com/openai/math. +- Douglas Colkitt, github.com/CrocSwap/integer-mult-bounds (Apache-2.0), commit + 6e564879f51ae16f23d392e9e196c605f36d90df: compact controls and the conditional + 83/10^12 witness. +- Prior published results this witness assumes and cites (citations of prior work, + not collaborators), from open pull requests on that repository: + #3 and #5 (eumemic: compressed complex network, fast Gaussian resampling), + #4 (dleen), #6 (eumemic), #7 (Zhihao Chen / jacklightChen: ternary five-subset + networks, a_b = 3/(4*10^8), a_c = 39/10^9), + #10 (icekylinx: batched recursion, controlled projector basis, whole-residual + complex children, Gaussian input-error correction), + #13 (eumemic: auxiliary source frames, third whole-residual complex class), + #15 (eumemic, head a17cab3: full complex batching of every residual rank), + #18 (icekylinx, head f2ab41a: partial-swap networks, producers and common rational basis), + #21 (jacklightChen, head 5ba6cf0: translated partial-swap frames; it also contains, independently + and earlier in public, the complex source-frame translation we use), + #16 (jacklightChen: nested controlled bases) and #29 (jacklightChen: controlled inner basis compiling local + edges as blocks), related to our flag basis and side-role batching, which were developed independently, + #36 (icekylinx: copied retained centres, used on both our interchanges in rounds six and seven), + #62 (ikeboy: interval strips and core-aware pair assembly; its producer builds our round-seven side program), + #41 (RaD / hipotures: the alternating order and links, used in that side program), + #44 (rohanarun: weighted matching, which our moment-weighted choice of links follows), + #24 (icekylinx, head ed90fd9: endpoint-gauge bit network; certificates/external/pr24-bit-network.json + extracts its published counts and child-width multiplicities, Apache-2.0). +- Aurel Prosz (Paureel), github.com/Paureel/integer-mult-bounds commit c82d09e: + the two-stage motif with partial-swap frames and charged endpoint correction, and its complement-frame + construction, which our lifted frames follow in round seven. + +Research, implementation and drafting were done with assistance from Claude +(Anthropic). AI assistance is not independent review. + + +Nondegenerate readout saturation research extension +Copyright 2026 djsmanchanda and contributors +Substantial OpenAI Codex assistance was used for exploration, implementation, +verification and drafting. AI cross-checks are not independent human review. + +Zhihao Chen / jacklightChen PR97 is credited for reflected/gauged bit ledgers, +signed complex endpoint controls and retained-main-assembly integration used +in the separate compatibility experiment, not reproduced by the quick check. +https://github.com/CrocSwap/integer-mult-bounds/pull/97 diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/PROVENANCE.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/PROVENANCE.json new file mode 100644 index 0000000000..1a93dcab54 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/PROVENANCE.json @@ -0,0 +1,14 @@ +{ + "upstream_repository": "Swapnil-jain/integer-mult-kappa", + "upstream_commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "base_repository": "CrocSwap/integer-mult-bounds", + "base_commit": "56b66d58297deca1d7dd130247d720e960f77a37", + "pr97_head": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "binary_git_blobs": { + "witness_23.json.gz": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "deferred_23.json.gz": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c" + }, + "candidate_sha256": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4", + "historical_records": "Saved local checks; not current checker receipts. Host paths were replaced with provenance labels.", + "modified_imports": "Imported vendor code unchanged; local generators/auditors added. JSON formatting and host-path labels normalized." +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/README.md b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/README.md new file mode 100644 index 0000000000..5233203ef9 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/README.md @@ -0,0 +1,129 @@ +# Nondegenerate readout saturation (research contribution) + +This additive package extends **22 readout frames by 25 dimensions** in Swapnil +Jain's pinned round-seven witness. It removes 177,100 singleton children while +preserving rank. The change is a finite, reproducible network improvement; +it is not a measured integer-multiplier runtime result or a global optimality +claim. + +## Concrete idea + +A readout frame must fit inside its entrance frame and all subsequent target +frames. Their intersection (the admissible cap) may be degenerate under the +required bilinear form. Rather than discard that cap, extend the existing +nondegenerate frame inside it, stopping at the exact rank of the cap's Gram +matrix. A reverse sweep preserves the later target constraints, followed by +an explicit nesting check after sorting the readouts. + +For example, slot **22966** grows from dimension 12 to 13 inside a dimension-14 +cap whose Gram rank is 13. Per replica, child widths **[507, 1, 1] become [509]**. +Both have total rank 509. For every 0 < tau < 1, +`509^tau < 507^tau + 2`, so this legal regrouping improves the same recurrence. +There are 3,542 replicas. Across all 22 changes: + +| Child width | Multiplicity change | +|---|---:| +| 1 | -177100 | +| 507 | -31878 | +| 509 | -24794 | +| 511 | +56672 | + +Total rank remains **57,403,754,177**. The certified bit saving used in the local +arithmetic experiment is **3999182181/62500000000000**. + +## Reproduce + +Python 3.10+; standard library only. Run from any working directory: + +```bash +python3 research/nondegenerate-readout-saturation/verify.py +``` + +This first verifies the immutable package manifest, then runs an independent +rational audit of all 22 changes, the 119 affected target edges, the exact +component histogram delta and the moment enclosure. It writes fresh results +under `verification/`. The expected run time is about one minute on the +original development host. + +For the complete finite frame and scalar controls (several minutes): + +```bash +python3 research/nondegenerate-readout-saturation/verify.py --full +``` + +The full mode executes the pinned upstream rational frame/generic-pivot and +negative-control checks against the candidate, then checks the independent +packed-bit scalar word on all data and dirty-scratch basis columns, plus +integer samples and negative controls. It generates new hash-bound receipts; +no historical receipt is accepted as current proof. The wrapper suppresses +only equality to the old published numerical headline, which intentionally +changes; it does not suppress any frame or negative-control check. + +The saturation search itself is in +`experiments/round7-review/saturate_readouts.py`. It writes both Z-support and +F2-support candidates. The submitted candidate uses **Z support**. Run the +search in a disposable copy if preserving the byte-level manifest; regenerated +gzip timestamps may change byte hashes even when the decompressed data agrees. +Do not assume an F2-only candidate is compatible with the complex argument. + +## Numerical scope and PR97 + +The earlier A–E transfer experiment gives conditional +**kappa = 63982820832686571/10^21 = 0.000063982820832686571**. +Of its gain over the published round-seven headline, most is numerical +parameter refinement. The physical contribution versus the refined unchanged +baseline is about **3.90116e-9 in kappa**, or 0.00610%. + +Separately, the local compatibility experiment with **Zhihao Chen's PR97** at +`f5f9c56e637463cac1e300d1589ccf42838f688a` replays its unchanged reflected/gauged +bit event ledger on the saturated frames and passes its main-compatible +47-condition / seven-margin assembly with +**kappa = 2559149/40000000000 = 0.000063978725**. +That is 1.2912e-8 above PR97's kappa=0.000063965813. PR97 closes actual gauged +endpoint and signed complex phase interfaces; its proof scope must not be +ranked solely by comparing kappa with the alternate A–E number. + +The compatibility report and exact parameters are in `historical/`. They are +**bounded evidence from a separate local review**, not a complete combined +138-pin integrated witness. This package's quick verifier does **not** replay +PR97's endpoint/phase controls or assemble the 47 constraints anew. It checks +that the recorded rational slacks are positive, clearly a weaker check. + +The all-size finite-alphabet tape compiler, analytic routing, precision, +recovery, prime/denominator arguments and uniform complexity claims retain +upstream proof assumptions. Finite checks do not establish the full theorem. +No global fastest claim, independent human peer review or hosted CI pass is +claimed. The repository-wide `make verify` gate has not been run for this PR. + +## Sources, credits and license + +All imported code retains its headers. `LICENSE` and the complete upstream +`NOTICE` are preserved. `MANIFEST.json` binds every submitted file; imported +source provenance is pinned separately in `PROVENANCE.json`. + +- **Swapnil Jain**, [round7/round6 pinned source](https://github.com/Swapnil-jain/integer-mult-kappa/tree/741e7aa078392553815df7926ee17ac5e25a8c38): + deferred readouts, V leaves, lifted frames, frozen inputs, flag/staircase + construction and A–E transfer. Original Claude assistance disclosure retained. +- **Zhihao Chen / jacklightChen**, [PR97](https://github.com/CrocSwap/integer-mult-bounds/pull/97): + reflected fan scheduling, nonzero auxiliary gauges, signed complex endpoint + correction and retained-main-assembly integration used in the compatibility + experiment. That work's Codex assistance disclosure is retained in the report. +- **OpenAI**, *Integer multiplication below n log n*, pinned + `adc7f1241b42e322a6451854ab7e4b4c146bf78a` in [openai/math](https://github.com/openai/math). +- **Douglas Colkitt / CrocSwap**, [community framework](https://github.com/CrocSwap/integer-mult-bounds). +- **Avi Eisenberg / ikeboy**, [PR62](https://github.com/CrocSwap/integer-mult-bounds/pull/62): + interval strips and core-aware pair assembly. +- **RaD / hipotures**, [PR41](https://github.com/CrocSwap/integer-mult-bounds/pull/41): + alternating order and links. +- **Rohan Arun / rohanarun**, [PR44](https://github.com/CrocSwap/integer-mult-bounds/pull/44): + weighted matching. +- **Aurel Prosz / Paureel**, [two-stage/complement-frame work](https://github.com/Paureel/integer-mult-bounds/tree/c82d09e). +- **icekylinx**, [PR36](https://github.com/CrocSwap/integer-mult-bounds/pull/36): + copied retained centres; earlier batching, partial swaps and retained assembly. +- Earlier contributors including eumemic, dleen and James Chang are preserved + in the upstream NOTICE and PR97 review; Harvey–van der Hoeven's multiplier + and analytic work is inherited background. + +The new saturation exploration and package were prepared for **djsmanchanda** +with substantial **OpenAI Codex assistance** in code, checks and drafting. +AI cross-checks are not independent human peer review. Apache-2.0. diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py new file mode 100644 index 0000000000..a28e243c0b --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/audit_evidence.py @@ -0,0 +1,65 @@ +"""Bind successful finite checks to their exact inputs and checking code.""" +from hashlib import sha256 +import json +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def digest(path): + return sha256(Path(path).read_bytes()).hexdigest() + + +def snapshot(kind, candidate): + inputs = {'candidate': digest(candidate)} + sources = [Path(__file__)] + if kind == 'frames': + sources += [HERE / 'check_candidate_frames.py'] + sources += list((HERE / 'vendor').rglob('*.py')) + for name in ('witness_23.json.gz', 'deferred_23.json.gz'): + inputs[name] = digest(HERE / 'vendor/certificates/round7' / name) + elif kind == 'scalar': + sources += [HERE / 'scalar_engine.py'] + else: + raise ValueError('unknown audit kind: ' + kind) + return dict(input_sha256=inputs, checker_sha256={ + str(p.relative_to(ROOT)): digest(p) for p in sorted(set(sources))}) + + +def receipt_path(kind): + return HERE / ('candidate-' + kind + '-receipt.json') + + +def record(kind, candidate, before, checks, artifacts=None): + assert before == snapshot(kind, candidate), 'audit inputs/checker changed during execution' + assert checks and all(checks.values()), 'audit did not pass every required check' + row = dict(schema=1, kind=kind, status='PASS', **before, checks=checks, + python_version=sys.version, artifacts={str(Path(p).resolve()): digest(p) + for p in (artifacts or [])}) + path = receipt_path(kind) + temp = path.with_suffix('.tmp') + temp.write_text(json.dumps(row, indent=2) + '\n') + temp.replace(path) + return path + + +def verify(kind, candidate, path=None): + path = Path(path) if path is not None else receipt_path(kind) + row = json.loads(path.read_text()) + assert row['schema'] == 1 and row['kind'] == kind and row['status'] == 'PASS' + actual = snapshot(kind, candidate) + assert row['input_sha256'] == actual['input_sha256'], 'stale candidate/input evidence' + assert row['checker_sha256'] == actual['checker_sha256'], 'stale checking-code evidence' + assert row['checks'] and all(row['checks'].values()) + if kind == 'frames': + assert len(row['checks']) >= 19, 'incomplete frame check set' + for prefix in ('X.', 'Q.', 'S.', 'F.', 'N.'): + assert any(k.startswith(prefix) for k in row['checks']), 'missing check class: ' + prefix + else: + assert set(row['checks']) == {'full_basis', 'scratch_restored', 'outputs_exact', + 'negative_controls_detected', 'integer_samples'} + for p, h in row['artifacts'].items(): + assert digest(p) == h, 'stale audit result: ' + p + return row diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py new file mode 100644 index 0000000000..303aa86ed7 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_arithmetic.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Independent arithmetic audit of the published round-seven profiles. + +Imports only the previous local audit's exact elementary function bounds. +No upstream certifier is imported. Arithmetic-only variants are labeled. +""" +from collections import Counter +from fractions import Fraction as Q +import importlib.util +import json +from math import comb, exp, log +from pathlib import Path + +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('trusted_research_check',HERE.parents[1]/'scripts/check_research.py') +audit=importlib.util.module_from_spec(spec);spec.loader.exec_module(audit) + + +def root(c): + lo,hi=0.,.001 + for _ in range(70): + a=(lo+hi)/2 + f=sum(n*w/c['m']/c['W']*exp(a*log(c['m']/w)) for w,n in c['hist']) + if f<1:lo=a + else:hi=a + return (lo+hi)/2 + + +def exact_moment(c,a): + return audit.moment_interval(dict(m=c['m'],W=c['W'],child_multiplicities=dict(c['hist'])),a) + + +def assembly(d,c): + ab,ac=Q(*d[c]['a']),Q(*d['cx']['a']);k=d['kappa' if c=='bit' else 'kappaplain'] + beta,eps,x,c1,kap=[Q(*k[n]) for n in ('beta','eps','x','c1','kappa')] + tau,sigma=1-ab,1-ac;chi=tau+(1-beta)*max(sigma-tau,0);leaf=sigma+beta*(1-sigma) + lam=max(tau,sigma,chi)+Q(1,10**16);lp=max(lam,leaf)+Q(1,10**16) + delta=Q(1,10**22)/x;poly=(1+x)*delta + _,lnhi=audit.log_interval(Q(d['cx']['s'])) + constraints=dict(crude_guard=c1-2-k['mc']*lnhi, + compact_saving=1-lp, + reservation=1-eps*(2-lp), + scalar_depth=1+x-eps*c1, + precision=1+x-3*eps, + eps_positive=eps,eps_below_one=1-eps, + beta_positive=beta,beta_below_one=1-beta, + delta_positive=delta,delta_below_eighth=Q(1,8)-delta) + margins=dict(prefix=1-eps,butterfly=eps*(1-lp), + small_field_and_Gaussian=1-eps-poly, + polynomial=eps,axis_reverse=max(eps,1-eps)*ab) + assert all(a>0 for a in constraints.values()) and all(a>kap for a in margins.values()) + return dict(kappa=str(kap),kappa_float=float(kap), + exceeds_user_threshold=kap>Q('0.000052445080818074'), + exceeds_two_to_minus14=kap>Q(1,2**14), + constraints=len(constraints),cost_margins=len(margins), + min_absorption_gap=float(min(margins.values())-kap), + precision_x=int(x),crude_C1=int(c1), + parameter_headroom=float(ab/(1+ab)-kap)) + + +def main(): + d=json.loads((HERE/'vendor/lean/round7-histograms.json').read_text());out={} + for name in ('bit','bitplain','cx'): + c=d[name];a=Q(*c['a']);rank=sum(w*n for w,n in c['hist']);assert rank==c['s'] + lo,hi=exact_moment(c,a);assert hi<1 + lnext,hnext=exact_moment(c,a+Q(1,10**9)) + mu=sum(n*w/c['m']/c['W']*log(c['m']/w) for w,n in c['hist']) + row=dict(m=c['m'],W=c['W'],rank=rank,deficit=c['m']*c['W']-rank, + certified_saving=str(a),moment_lower=float(lo),moment_upper=float(hi), + moment_gap_lower=float(1-hi),moment_enclosure_width=float(hi-lo), + next_grid_moment_lower=float(lnext),next_grid_gap_lower=float(lnext-1), + next_grid_certified_false=lnext>1,characteristic_root_float=root(c), + weighted_log_cost=mu,child_occurrences=sum(n for w,n in c['hist'])) + if name!='cx':row['assembly']=assembly(d,name) + out[name]=row + h=23;v=comb(h,3);N=v*v;R=(d['bit']['W']-2*N)//(2*v) + assert d['bit']['W']==2*N+2*v*R and d['bit']['s']==d['bit']['W']*h*h-N+2*v*h*(h-1) + widths=dict(d['bit']['hist']);dims={h-(h*h-w)//2:n//(2*v) for w,n in widths.items() if w>=h*h-2*h} + assert sum(dims.values())==R + out['readout_distribution']=dict(R=R,v=v,N=N,readout_dimensions=dims, + deferred_slots=sum(n for dim,n in dims.items() if dim), + average_sigma_dimension=sum(dim*n for dim,n in dims.items())/sum(n for dim,n in dims.items() if dim)) + diff=Counter(dict(d['bit']['hist']));diff.subtract(dict(d['bitplain']['hist'])) + out['staircase_vs_plain']=dict(child_changes={w:n for w,n in diff.items() if n}, + saving_gain_ratio=float(Q(*d['bit']['a'])/Q(*d['bitplain']['a']))) + (HERE/'arithmetic-results.json').write_text(json.dumps(out,indent=2)+'\n');print(json.dumps(out,indent=2)) + + +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py new file mode 100644 index 0000000000..bf2b0a57ca --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/check_candidate_frames.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +"""Run the full upstream frame audit on a new locally generated schedule. + +Only the final equality to the original *headline numbers* is replaced: those +numbers describe the pinned input, and a new histogram should differ. Every +frame containment, rank, generic pivot, ledger, certificate and negative +control remains the same upstream check. +""" +import gzip +import json +from pathlib import Path +import sys +import audit_evidence + +HERE=Path(__file__).resolve().parent +sys.path[:0]=[str(HERE/'vendor/independent/deferred-readout')] +import check_frames as cf +import deferred as dr + + +def main(path): + before = audit_evidence.snapshot('frames', path) + with gzip.open(path,'rt') as f:candidate=json.load(f) + W,_=dr.load();origreport=cf.report + dr.load=lambda h=23,*args,**kwargs:(W,candidate) + def report(name,ok): + if name.startswith('F. claims:'): + origreport('F. candidate: original headline equality inapplicable; candidate ledgers and exact certificates checked above',True) + else:origreport(name,ok) + cf.report=report + ok = cf.main(candidate['h']) + if ok: + audit_evidence.record('frames', path, before, dict(cf.OK)) + return ok + + +if __name__=='__main__':sys.exit(0 if main(Path(sys.argv[1])) else 1) diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py new file mode 100644 index 0000000000..7f3e153491 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/histogram_engine.py @@ -0,0 +1,215 @@ +#!/usr/bin/env python3 +"""Independent round-seven histogram reconstruction and safe readout ablations. + +No upstream implementation is imported. Frame dimensions are frozen inputs; +the separate exact frame check is needed to qualify the original construction. +An ablation moves chosen deferred garbage readouts to frame zero and keeps all +V releases unchanged. Its remaining target chains are subsequences of the +original nested chains, so containment is preserved. New high-rank steps still +need the generic-pivot check before qualification. +""" +import argparse +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +import gzip +from itertools import combinations +import json +from math import comb, exp, log +from pathlib import Path +import random +import time + +import check_arithmetic as ar +from scalar_engine import coefficients, load_schedule + +HERE=Path(__file__).resolve().parent + + +def load(path): + with gzip.open(path,'rt') as f:return json.load(f) + + +def inner(r,h): + assert 0<=r<=h + if 2*r<=h:return Counter({1:r}) + out=Counter({1:h-r});out[2*r-h]+=1 + return out + + +def add(H,profile,mult): + for w,n in profile.items(): + if n:H[w]+=n*mult + + +def chains(W,D): + args={int(n):a for n,a in W['args'].items()} + late={int(n):el for n,el in W['late'].items()} + nd=dict(D['node_dims']);ld={(n,tuple(suffix)):d for n,suffix,d in D['late_dims']} + vd={s:len(B) for s,B in zip(D['vleaf_slots'],D['vleaf_start'])} + sd={s:len(B) for s,B in zip(D['readout_order'],D['sigma'])} + piv={op[3]:op[1] for op in D['ops'] if op[0]=='add'} + roots={s:D['h']-1 for s,*_ in D['out']+D['ret']} + cc=[] + for s,hold in enumerate(D['hold']): + n=hold[0] + if args[n] is None:d=vd[s] + else: + k=D['start'][s][2];dec=late.get(n) + d=nd[n] if dec is None or k in dec[0] else ld[n,tuple(dec[1][dec[1].index(k):])] + ds=[sd.get(s,0),d] + for i,n in enumerate(hold): + if i:ds.append(nd[n]) + if args[n] is not None and piv.get(n)==s and n in late: + suffix=late[n][1] + ds.extend(ld[n,tuple(suffix[i:])] for i in range(len(suffix)-1)) + if s in roots:ds.append(roots[s]) + ds.append(D['h']) + assert all(b>=a for a,b in zip(ds,ds[1:])),(s,ds) + cc.append(ds) + return cc,sd,vd + + +def histogram(W,D,cov,removed=(),stair=True,prepared=None): + h,R=D['h'],D['R'];v=comb(h,3);m=h*h;N=v*v;Wc=2*N+2*v*R + cc,sd,vd=prepared or chains(W,D);removed=set(removed) + sf={s:f for s,f in sd.items() if f not in removed} + parts={name:Counter() for name in ('auxiliary','slot_corners','slot_chains','centre','targets','sources','entrance','copy_correction')} + rk=Counter() + for s,ds0 in enumerate(cc): + ds=[sf.get(s,0)]+ds0[1:] + for a,b in zip(ds,ds[1:]):rk[b-a]+=1 + r=h-sf.get(s,0) + parts['auxiliary'][m-2*r]+=2*v + add(parts['slot_corners'],inner(r,h),2*v) + for r,n in rk.items():add(parts['slot_chains'],inner(r,h),2*v*n) + add(parts['centre'],inner(h-1,h),2*v*h) + levels=[set() for _ in range(v)] + for s,f in sf.items(): + for t in cov[s]:levels[t].add(f) + for lev in levels: + ds=sorted(lev|{0,h-1}) + for a,b in zip(ds,ds[1:]):add(parts['targets'],inner(b-a,h),2*v) + for n,slots in D['xs_order']: + ds=[1]+[vd[s] for s in slots]+[h] + assert all(b>=a for a,b in zip(ds,ds[1:])) + for a,b in zip(ds,ds[1:]):add(parts['sources'],inner(b-a,h),2*v) + parts['entrance'][m-4*h+2]+=2*N + for w in ([h-2,h-5]+[1]*6 if stair else [h-2]+[1]*(h+1)):parts['entrance'][w]+=2*N + parts['copy_correction'][1]+=N + H=sum(parts.values(),Counter());H={w:n for w,n in H.items() if n} + L=2*v*h*(h-1);s=Wc*m-N+L + assert sum(w*n for w,n in H.items())==s + c=dict(h=h,m=m,v=v,N=N,W=Wc,L=L,s=s,R=R,hist=[list(p) for p in sorted(H.items())]) + return c,parts + + +def float_root(c): + lo,hi=0.,.001 + for _ in range(55): + a=(lo+hi)/2 + f=sum(n*w/c['m']/c['W']*exp(a*log(c['m']/w)) for w,n in c['hist']) + if f<1:lo=a + else:hi=a + return (lo+hi)/2 + + +def summary(c,parts): + return dict(root_float=float_root(c),weighted_log_cost=sum(n*w/c['m']/c['W']*log(c['m']/w) for w,n in c['hist']), + child_occurrences=sum(n for w,n in c['hist']), + components={name:dict(rank=sum(w*n for w,n in H.items()),children=sum(H.values()), + weighted_log_cost=sum(n*w/c['m']/c['W']*log(c['m']/w) for w,n in H.items()),hist=sorted(H.items())) for name,H in parts.items()}) + + +class FastAblations: + """Compressed exact histograms: dimension classes plus target level masks.""" + def __init__(self,W,D,cov,prepared): + self.D=D;h=D['h'];v=comb(h,3);self.h=h;self.v=v + cc,sd,vd=prepared;self.dims=sorted(set(sd.values())) + self.bit={f:1<best:best=row['root_float'];bestset=list(rem) + while True: + improved=False + for d in dims: + rem=tuple(sorted(set(bestset)^{d})) + row=cache.get(rem) + if row is None:row=trial(rem);cache[rem]=row;trials.append(row) + if row['root_float']>best+1e-15:best=row['root_float'];bestset=list(rem);improved=True;break + if not improved:break + rng=random.Random(20261009);base_a=rows['bit']['root_float'];top=[];seen=set(cache) + for i in range(args.random_trials): + # Dense, sparse, and uniform masks; independently reproducible seed. + p=(rng.random() if i%3==0 else .5 if i%3==1 else .05) + rem=tuple(f for f in dims if rng.random()40:top=sorted(top)[:20] + for score,rem in sorted(top)[:20]: + row=trial(rem);cache[rem]=row;trials.append(row) + if row['root_float']>best:best=row['root_float'];bestset=list(rem) + rows['ablations']=dict(trials=trials,distinct_physical_profiles_tested=len(seen),random_seed=20261009, + target_level_patterns=len(fast.patterns),best_removed_dimensions=bestset,best_root_float=best, + base_root_float=rows['bit']['root_float'],qualified_new_physical_witness=False, + reason='Any nontrivial ablation needs the new high-rank generic-pivot check; V release order preserved.') + rows['seconds']=time.time()-tic;(HERE/'histogram-results.json').write_text(json.dumps(rows,indent=2)+'\n') + print(json.dumps({k:({kk:vv for kk,vv in val.items() if kk not in ('histogram','components','trials')} if isinstance(val,dict) else val) for k,val in rows.items()},indent=2),flush=True) + + +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json new file mode 100644 index 0000000000..b62e78100f --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/qualification.json @@ -0,0 +1,1328 @@ +{ + "schema": 1, + "status": "verified conditional finite witness with arithmetic refinement", + "source": { + "repository": "Swapnil-jain/integer-mult-kappa", + "commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "git_blob_sha1": { + "witness_23.json.gz": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "deferred_23.json.gz": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c" + } + }, + "evidence": { + "exact_basis_replay": true, + "exact_basis_field": "F2", + "basis_columns": 30637, + "exact_frame_profile": true, + "frame_containment_field": "Q", + "generic_pivots": "two conjugations at a fixed integer point, proved via rank modulo 2^31-1", + "nondegeneracy": "Gram determinant nonzero modulo 2^31-1 implies nonzero over Q", + "histogram_equals_pinned": true, + "exact_moment": true, + "exact_assembly": true + }, + "histogram": { + "h": 23, + "m": 529, + "v": 1771, + "N": 3136441, + "W": 108516254, + "L": 1792252, + "s": 57403754177, + "R": 28866, + "hist": [ + [ + 1, + 1690297301 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 18, + 6272882 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1186570 + ], + [ + 509, + 340032 + ], + [ + 511, + 322322 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "moment": { + "saving": "1599575331/25000000000000", + "moment_lower": "199999999999999996774004728609/200000000000000000000000000000", + "moment_upper": "499999999999999991935011821523/500000000000000000000000000000", + "positive_moment_gap": "8064988178477/500000000000000000000000000000", + "next_grid_saving": "63983013241/1000000000000000", + "next_grid_moment_lower": "1000000000000000349889442945071/1000000000000000000000000000000", + "next_grid_certified_false": true, + "interval_calls": 9, + "enclosure_rounding_denominator": 1000000000000000000000000000000 + }, + "assembly": { + "a_bit": "1599575331/25000000000000", + "a_complex": "36926111/500000000000", + "beta": "1/1000", + "eps": "199987204216064813/200000000000000000", + "x": "14695", + "c1": "14694", + "delta": "1/146950000000000000000000000", + "lambda_": "999936016986760001/1000000000000000000", + "lambda_prime": "499968008493380001/500000000000000000", + "kappa": "15994729918983323/250000000000000000000", + "kappa_float": 6.39789196759333e-05, + "constraints": { + "lambda_above_tau_sigma_chi": "1/1000000000000000000", + "lambda_prime_above_lambda_leaf": "1/1000000000000000000", + "lambda_prime_below_one": "31991506619999/500000000000000000", + "beta_positive": "1/1000", + "beta_below_one": "999/1000", + "crude_guard": "181488086884115122427967146912980563860364099676371395926387309858860241014635309419573887322858270798926187675975887155882448886780219116627798728759461950014447224654721706640593955355236673932728359624962572418450228749891456300650973631407969791122853489957228980994390111073431967243709978454044605805794421973280177004027932081157929261987289551825151386972504331406788957800755630188661896571208516152247637911480126805186902437515958786771618653814062606432563023330297509585088178157223422972978215063684002940860157171364142484430361231338067691878321504257976021056738890958321516205499209645226618935060414477751982185564051378526967275880143086423591528109735897716135807627761265291604171988062426666452763088940636184425185365711285963294865015969544524682917728434810515152940420816171217167604077951651703684113999195449188434756212844004175060660154930518999/417599396615159033258959647160472863389949066825621268950159863879977098788687658060606032587867046368603795021123537295986932962913726051371548043813560386196625445156114369188687013441705360820641412704678144457069036774142338614379513628160759912492893775439631685280416693139002572787187016966706752864067978387211040918867455663994384371416494759111603431368844401640315758549221001626839066027917896291387220517894102986557326772070208839962720891475980957929115675368871153867538293526869908377008186872310998569001569209646792133839744071534967614420149638331039807419877037593783310245090543666715471053289489466196140036454232597627963975837341295271650535266311380288050014429522252884669607428413549517204635033535672095050026169680102759450763945848438240278811153006530788443518002382354926969016777338339352354523725807666778564453125000000000000000000000000000", + "scalar_depth": "294010624571818889/100000000000000000", + "precision": "2938600038387351805561/200000000000000000", + "sub_block_coupling": "1", + "reservation": "170611765654004813/99993602108032406500000000000000000", + "eps_positive": "199987204216064813/200000000000000000", + "eps_below_one": "12795783935187/200000000000000000", + "delta_positive": "1/146950000000000000000000000", + "delta_below_eighth": "18368749999999999999999999/146950000000000000000000000" + }, + "margins": { + "prefix": "12795783935187/200000000000000000", + "butterfly": "6397891967593329388234345995187/100000000000000000000000000000000000", + "small_field": "1175212780797331029413/18368750000000000000000000", + "Gaussian": "1175212780797331029413/18368750000000000000000000", + "chirps_twists_scalar": "1175212780797331029413/18368750000000000000000000", + "polynomial": "199987204216064813/200000000000000000", + "reserved_axes": "1175212780797331029413/18368750000000000000000000", + "axis_reverse": "319894598379676468771928103/5000000000000000000000000000000" + }, + "absorption_gaps": { + "prefix": "427/250000000000000000000", + "butterfly": "188234345995187/100000000000000000000000000000000000", + "small_field": "7842997/4592187500000000000000000", + "Gaussian": "7842997/4592187500000000000000000", + "chirps_twists_scalar": "7842997/4592187500000000000000000", + "polynomial": "249968010540162032927/250000000000000000000", + "reserved_axes": "7842997/4592187500000000000000000", + "axis_reverse": "10008771928103/5000000000000000000000000000000" + }, + "binding": "butterfly" + }, + "threshold": "26222540409037/500000000000000000", + "exceeds_user_threshold": true, + "published_kappa": "1599247689723/25000000000000000", + "arithmetic_gain": 9.012087013292e-09, + "physical_gain": false, + "physical_ablations": { + "trials": [ + { + "removed_dimensions": [], + "root_float": 6.398301323982777e-05, + "weighted_log_cost": 0.3659200750883561 + }, + { + "removed_dimensions": [ + 1 + ], + "root_float": 6.397635234998488e-05, + "weighted_log_cost": 0.3659581873173519 + }, + { + "removed_dimensions": [ + 1, + 2 + ], + "root_float": 6.397250805615947e-05, + "weighted_log_cost": 0.3659801884002106 + }, + { + "removed_dimensions": [ + 1, + 2, + 3 + ], + "root_float": 6.396197257660644e-05, + "weighted_log_cost": 0.36604049497898666 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4 + ], + "root_float": 6.393930610971295e-05, + "weighted_log_cost": 0.3661703233100852 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5 + ], + "root_float": 6.393897947155719e-05, + "weighted_log_cost": 0.3661721961380483 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "root_float": 6.391798706298719e-05, + "weighted_log_cost": 0.3662925137604546 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "root_float": 6.39168653509765e-05, + "weighted_log_cost": 0.36629894579001787 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "root_float": 6.380744208687456e-05, + "weighted_log_cost": 0.3669273796968683 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "root_float": 6.379426822583388e-05, + "weighted_log_cost": 0.3670031870667055 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ], + "root_float": 6.37591347287772e-05, + "weighted_log_cost": 0.36720554810765305 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "root_float": 6.375953955758329e-05, + "weighted_log_cost": 0.3672032544356571 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "root_float": 6.365629815223156e-05, + "weighted_log_cost": 0.3677992712635421 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "root_float": 6.364229252690019e-05, + "weighted_log_cost": 0.3678803574123652 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "root_float": 6.360188480445787e-05, + "weighted_log_cost": 0.36811421977378245 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "root_float": 6.357983780656265e-05, + "weighted_log_cost": 0.36824191428171765 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ], + "root_float": 6.312141263792942e-05, + "weighted_log_cost": 0.370917020659286 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ], + "root_float": 6.291568639655222e-05, + "weighted_log_cost": 0.3721301642506309 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "root_float": 6.179213866493951e-05, + "weighted_log_cost": 0.3788978540091406 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "root_float": 5.646710650080092e-05, + "weighted_log_cost": 0.4146356299483202 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "root_float": 5.4775434076778255e-05, + "weighted_log_cost": 0.4274431565503396 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "root_float": 5.274303204712734e-05, + "weighted_log_cost": 0.4439167072100837 + }, + { + "removed_dimensions": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.049733830083945e-05, + "weighted_log_cost": 0.4636609827566053 + }, + { + "removed_dimensions": [ + 2 + ], + "root_float": 6.39785911680228e-05, + "weighted_log_cost": 0.3659453762128144 + }, + { + "removed_dimensions": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.046226349613139e-05, + "weighted_log_cost": 0.46398323747259695 + }, + { + "removed_dimensions": [ + 3 + ], + "root_float": 6.39716134682678e-05, + "weighted_log_cost": 0.3659853062149336 + }, + { + "removed_dimensions": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.04489769629166e-05, + "weighted_log_cost": 0.46410542285028944 + }, + { + "removed_dimensions": [ + 4 + ], + "root_float": 6.395359620641368e-05, + "weighted_log_cost": 0.3660884541741315 + }, + { + "removed_dimensions": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.036410812022376e-05, + "weighted_log_cost": 0.4648874421134617 + }, + { + "removed_dimensions": [ + 5 + ], + "root_float": 6.398265059370612e-05, + "weighted_log_cost": 0.365922151275507 + }, + { + "removed_dimensions": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.028832236926861e-05, + "weighted_log_cost": 0.46558796026443555 + }, + { + "removed_dimensions": [ + 6 + ], + "root_float": 6.395534989999732e-05, + "weighted_log_cost": 0.3660784057225954 + }, + { + "removed_dimensions": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.027826571680005e-05, + "weighted_log_cost": 0.46568108163734373 + }, + { + "removed_dimensions": [ + 7 + ], + "root_float": 6.398162889019052e-05, + "weighted_log_cost": 0.36592799607058274 + }, + { + "removed_dimensions": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.024054172066443e-05, + "weighted_log_cost": 0.4660306862375908 + }, + { + "removed_dimensions": [ + 8 + ], + "root_float": 6.382628068607158e-05, + "weighted_log_cost": 0.3668188874985321 + }, + { + "removed_dimensions": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0238213648831376e-05, + "weighted_log_cost": 0.4660522783396089 + }, + { + "removed_dimensions": [ + 9 + ], + "root_float": 6.396437213114022e-05, + "weighted_log_cost": 0.3660267483735453 + }, + { + "removed_dimensions": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.018195794837625e-05, + "weighted_log_cost": 0.466574487477001 + }, + { + "removed_dimensions": [ + 10 + ], + "root_float": 6.391321628520438e-05, + "weighted_log_cost": 0.36631980173652007 + }, + { + "removed_dimensions": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.01871713577415e-05, + "weighted_log_cost": 0.4665259926556252 + }, + { + "removed_dimensions": [ + 11 + ], + "root_float": 6.396416326607961e-05, + "weighted_log_cost": 0.36602794264172206 + }, + { + "removed_dimensions": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0185787077482814e-05, + "weighted_log_cost": 0.4665387497293618 + }, + { + "removed_dimensions": [ + 12 + ], + "root_float": 6.369711531523693e-05, + "weighted_log_cost": 0.36756288409354737 + }, + { + "removed_dimensions": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.019133070351795e-05, + "weighted_log_cost": 0.4664871938394485 + }, + { + "removed_dimensions": [ + 13 + ], + "root_float": 6.389216632986552e-05, + "weighted_log_cost": 0.3664404978155883 + }, + { + "removed_dimensions": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0286489547270735e-05, + "weighted_log_cost": 0.4656041080335043 + }, + { + "removed_dimensions": [ + 14 + ], + "root_float": 6.38839179993631e-05, + "weighted_log_cost": 0.36648781165571886 + }, + { + "removed_dimensions": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.032891035529775e-05, + "weighted_log_cost": 0.46521156600187363 + }, + { + "removed_dimensions": [ + 15 + ], + "root_float": 6.394382630064639e-05, + "weighted_log_cost": 0.36614436820925783 + }, + { + "removed_dimensions": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0382137718545436e-05, + "weighted_log_cost": 0.4647199882492164 + }, + { + "removed_dimensions": [ + 16 + ], + "root_float": 6.34142316445656e-05, + "weighted_log_cost": 0.36920284433669454 + }, + { + "removed_dimensions": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0405455718871835e-05, + "weighted_log_cost": 0.464504973256638 + }, + { + "removed_dimensions": [ + 17 + ], + "root_float": 6.373180035405768e-05, + "weighted_log_cost": 0.36736273005161135 + }, + { + "removed_dimensions": [ + 17, + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.0728045440948794e-05, + "weighted_log_cost": 0.4615505728451297 + }, + { + "removed_dimensions": [ + 18 + ], + "root_float": 6.278075549562223e-05, + "weighted_log_cost": 0.3729289188312896 + }, + { + "removed_dimensions": [ + 18, + 19, + 20, + 21, + 22 + ], + "root_float": 5.088570635030397e-05, + "weighted_log_cost": 0.4601203239370345 + }, + { + "removed_dimensions": [ + 19 + ], + "root_float": 5.8141729015559384e-05, + "weighted_log_cost": 0.4026897940365553 + }, + { + "removed_dimensions": [ + 19, + 20, + 21, + 22 + ], + "root_float": 5.166715720004926e-05, + "weighted_log_cost": 0.45316011524492733 + }, + { + "removed_dimensions": [ + 20 + ], + "root_float": 6.170493027896555e-05, + "weighted_log_cost": 0.379432022096412 + }, + { + "removed_dimensions": [ + 20, + 21, + 22 + ], + "root_float": 5.622275746806851e-05, + "weighted_log_cost": 0.4164362416524974 + }, + { + "removed_dimensions": [ + 21 + ], + "root_float": 6.11014841996298e-05, + "weighted_log_cost": 0.3831800190979199 + }, + { + "removed_dimensions": [ + 21, + 22 + ], + "root_float": 5.8107864686169635e-05, + "weighted_log_cost": 0.40292429464444146 + }, + { + "removed_dimensions": [ + 22 + ], + "root_float": 6.07079606905441e-05, + "weighted_log_cost": 0.3856643506348777 + }, + { + "removed_dimensions": [ + 5, + 7 + ], + "root_float": 6.398126625965614e-05, + "weighted_log_cost": 0.36593007225773366 + }, + { + "removed_dimensions": [ + 2, + 5 + ], + "root_float": 6.397822857168361e-05, + "weighted_log_cost": 0.36594745239996535 + }, + { + "removed_dimensions": [ + 2, + 7 + ], + "root_float": 6.397739621737856e-05, + "weighted_log_cost": 0.3659522149607533 + }, + { + "removed_dimensions": [ + 2, + 5, + 7 + ], + "root_float": 6.39770336345489e-05, + "weighted_log_cost": 0.3659542911479042 + }, + { + "removed_dimensions": [ + 1, + 5 + ], + "root_float": 6.397598977915475e-05, + "weighted_log_cost": 0.36596026350450284 + }, + { + "removed_dimensions": [ + 1, + 7 + ], + "root_float": 6.397496828860309e-05, + "weighted_log_cost": 0.36596610829957854 + }, + { + "removed_dimensions": [ + 1, + 5, + 7 + ], + "root_float": 6.397460573335537e-05, + "weighted_log_cost": 0.36596818448672946 + }, + { + "removed_dimensions": [ + 1, + 2, + 5 + ], + "root_float": 6.397214552854605e-05, + "weighted_log_cost": 0.36598226458736155 + }, + { + "removed_dimensions": [ + 1, + 2, + 7 + ], + "root_float": 6.397134888107838e-05, + "weighted_log_cost": 0.36598682378896175 + }, + { + "removed_dimensions": [ + 3, + 5 + ], + "root_float": 6.397125095096757e-05, + "weighted_log_cost": 0.36598738240208445 + }, + { + "removed_dimensions": [ + 1, + 2, + 5, + 7 + ], + "root_float": 6.397098636676112e-05, + "weighted_log_cost": 0.3659888999761126 + }, + { + "removed_dimensions": [ + 3, + 7 + ], + "root_float": 6.3970229612002e-05, + "weighted_log_cost": 0.36599322719716015 + }, + { + "removed_dimensions": [ + 2, + 3 + ], + "root_float": 6.396731944526919e-05, + "weighted_log_cost": 0.36600988371064064 + }, + { + "removed_dimensions": [ + 2, + 3, + 5 + ], + "root_float": 6.396695697675349e-05, + "weighted_log_cost": 0.3660119598977915 + }, + { + "removed_dimensions": [ + 2, + 3, + 7 + ], + "root_float": 6.396612491548787e-05, + "weighted_log_cost": 0.36601672245857947 + }, + { + "removed_dimensions": [ + 1, + 3 + ], + "root_float": 6.39656891368661e-05, + "weighted_log_cost": 0.3660192175248792 + }, + { + "removed_dimensions": [ + 1, + 3, + 5 + ], + "root_float": 6.396536222913918e-05, + "weighted_log_cost": 0.3660210903528423 + }, + { + "removed_dimensions": [ + 1, + 3, + 7 + ], + "root_float": 6.3964305536534e-05, + "weighted_log_cost": 0.3660271385071058 + }, + { + "removed_dimensions": [ + 5, + 9 + ], + "root_float": 6.396400969590711e-05, + "weighted_log_cost": 0.36602882456069624 + }, + { + "removed_dimensions": [ + 1, + 3, + 5, + 7 + ], + "root_float": 6.396397864316877e-05, + "weighted_log_cost": 0.3660290113350689 + } + ], + "distinct_physical_profiles_tested": 57764, + "random_seed": 20261009, + "target_level_patterns": 924, + "best_removed_dimensions": [], + "best_root_float": 6.398301323982777e-05, + "base_root_float": 6.398301323982777e-05, + "qualified_new_physical_witness": false, + "reason": "Any nontrivial ablation needs the new high-rank generic-pivot check; V release order preserved." + }, + "limitations": [ + "Stage two as the complement time reversal of stage one is inherited and not machine checked here.", + "Finite alphabet tape compilation and the general basis/algorithmic interfaces remain inherited lemmas.", + "The complex profile and its full implementation are inherited from upstream round six; its moment arithmetic is audited locally.", + "This is an asymptotic exponent certificate, not a runnable fast integer multiplier or a practical speed benchmark.", + "Z replay uses four random samples; the actual F2 circuit is checked on its entire data and dirty scratch basis." + ] +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py new file mode 100644 index 0000000000..aac60e4243 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturate_readouts.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 +"""Expand deferred readout frames subject to all later target frames. + +This changes actual rational frames, preserving the original readout order. +The reverse sweep intersects each slot's admissible start with the frames of +the next read on every affected target. The original sigma is contained in +this intersection, so enlargements preserve all predecessor containments. +Full generic and finite checks are required separately for any winning file. +""" +from collections import Counter +from fractions import Fraction as Q +import gzip +import json +from math import gcd +from pathlib import Path +import sys +import time + +HERE=Path(__file__).resolve().parent +VENDOR=HERE/'vendor';sys.path[:0]=[str(VENDOR/'independent/deferred-readout')] +import check_lifted as cl +import deferred as dr +from linalg import Echelon,Q31,null_exact,rank_mod,rank_exact +from histogram_engine import histogram,float_root + + +def prim(row): + row=[Q(x) for x in row];den=1 + for x in row:den=den*x.denominator//gcd(den,x.denominator) + row=[int(x*den) for x in row];g=0 + for x in row:g=gcd(g,x) + return [x//g for x in row] if g else row + + +def gram_rank(B,exact=False): + sm=list(map(sum,B));M=[[9*sum(x*y for x,y in zip(a,b))-sa*sb for b,sb in zip(B,sm)] for a,sa in zip(B,sm)] + return rank_exact(M) if exact else rank_mod(M,Q31) + + +def nondeg(B):return gram_rank(B)==len(B) + + +def extend_nondeg(old,cap): + """Enlarge a nondegenerate subspace inside a possibly degenerate cap.""" + want=gram_rank(cap,exact=True);B=[r[:] for r in old] + while len(B)len(old):changes.append(dict(slot=s,old_dim=len(old),new_dim=len(B))) + sigma[s]=B + # This selected basis is an exact annihilator when the dimension + # changed; for unchanged/fallback frames use their exact nullspace. + C=selected if len(B)==h-rank else [prim(z) for z in null_exact(B,h)] + for t in cov[s]:nxt[t]=C + candidate=dict(D);candidate['sigma']=[sigma[s] for s in D['readout_order']] + candidate['readout_order']=sorted(S.readout,key=lambda s:(len(sigma[s]),s)) + candidate['sigma']=[sigma[s] for s in candidate['readout_order']] + c,p=histogram(W,candidate,cov);r=float_root(c) + path=HERE/('saturated-'+mode+'.json.gz') + with gzip.open(path,'wt') as f:json.dump(candidate,f,separators=(',',':')) + row=dict(changed_slots=len(changes),dimension_increase=sum(x['new_dim']-x['old_dim'] for x in changes), + changes=changes,unchanged_maximal_slots=oldrank,degenerate_fallbacks=deg, + degenerate_cases=degcases, + root_float=r,histogram=c,full_physical_qualification=False, + reason='Exact start/target containment and reverse-sweep nesting verified; generic-pivot and complete frame checks still needed.', + data_file=str(path));results[mode]=row + print(mode,{k:v for k,v in row.items() if k not in ('changes','histogram')},flush=True) + results['seconds']=time.time()-tic + (HERE/'saturation-results.json').write_text(json.dumps(results,indent=2)+'\n') + + +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz new file mode 100644 index 0000000000..247b66b034 Binary files /dev/null and b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturated-Z.json.gz differ diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json new file mode 100644 index 0000000000..163260325b --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/saturation-results.json @@ -0,0 +1,907 @@ +{ + "Z": { + "changed_slots": 22, + "dimension_increase": 25, + "changes": [ + { + "slot": 23484, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23445, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23434, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23406, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23354, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23328, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23327, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23325, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23324, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23281, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23270, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23269, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23267, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23671, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 23566, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23451, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23284, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 22982, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22980, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22974, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22970, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22966, + "old_dim": 12, + "new_dim": 13 + } + ], + "unchanged_maximal_slots": 11540, + "degenerate_fallbacks": 24, + "degenerate_cases": [ + { + "slot": 23753, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23744, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23741, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23484, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23445, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23434, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23406, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23354, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23328, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23327, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23325, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23324, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23281, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23270, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23269, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23267, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23671, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 23566, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23451, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23284, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 22982, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22974, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22970, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22966, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + } + ], + "root_float": 6.398691489630603e-05, + "histogram": { + "h": 23, + "m": 529, + "v": 1771, + "N": 3136441, + "W": 108516254, + "L": 1792252, + "s": 57403754177, + "R": 28866, + "hist": [ + [ + 1, + 1690120201 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 18, + 6272882 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1154692 + ], + [ + 509, + 315238 + ], + [ + 511, + 378994 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "full_physical_qualification": false, + "reason": "Exact start/target containment and reverse-sweep nesting verified; generic-pivot and complete frame checks still needed.", + "data_file": "experiments/round7-review/saturated-Z.json.gz" + }, + "F2": { + "changed_slots": 22, + "dimension_increase": 25, + "changes": [ + { + "slot": 23484, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23445, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23434, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23406, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23354, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23328, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23327, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23325, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23324, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23281, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23270, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23269, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23267, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23671, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 23566, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23451, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23284, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 22982, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22980, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22974, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22970, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22966, + "old_dim": 12, + "new_dim": 13 + } + ], + "unchanged_maximal_slots": 11540, + "degenerate_fallbacks": 24, + "degenerate_cases": [ + { + "slot": 23753, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23744, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23741, + "old_dim": 14, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23484, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23445, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23434, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23406, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23354, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23328, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23327, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23325, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23324, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23281, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23270, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23269, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23267, + "old_dim": 13, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23671, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 23566, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23451, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 23284, + "old_dim": 12, + "candidate_dim": 15, + "gram_rank_mod_q": 14, + "gram_rank_exact": 14 + }, + { + "slot": 22982, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22974, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22970, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + }, + { + "slot": 22966, + "old_dim": 12, + "candidate_dim": 14, + "gram_rank_mod_q": 13, + "gram_rank_exact": 13 + } + ], + "root_float": 6.398691489630603e-05, + "histogram": { + "h": 23, + "m": 529, + "v": 1771, + "N": 3136441, + "W": 108516254, + "L": 1792252, + "s": 57403754177, + "R": 28866, + "hist": [ + [ + 1, + 1690120201 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 18, + 6272882 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1154692 + ], + [ + 509, + 315238 + ], + [ + 511, + 378994 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "full_physical_qualification": false, + "reason": "Exact start/target containment and reverse-sweep nesting verified; generic-pivot and complete frame checks still needed.", + "data_file": "experiments/round7-review/saturated-F2.json.gz" + }, + "seconds": 71.50934338569641 +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py new file mode 100644 index 0000000000..ff5c8901d3 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/scalar_engine.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +"""Independent exact linear replay of the deferred-readout word. + +Packed bits carry every data and arbitrary-dirty scratch basis vector at once. +No vendor implementation is imported. This verifies the finite scalar F2 word; +frame containment, projector ranks and all-size tape compilation are separate. +""" +import argparse +from collections import defaultdict +import gzip +from itertools import combinations +import json +from pathlib import Path +import random +import time + + +def load_schedule(path): + with gzip.open(path, 'rt') as f: + d = json.load(f) + h, R = d['h'], d['R'] + trip = list(combinations(range(h), 3)); tid = {t:i for i,t in enumerate(trip)} + return dict(h=h, R=R, v=len(trip), trip=trip, ops=d['ops'], + out={s:tid[tuple(t)] for s,c,t in d['out']}, ret={s:c for s,c in d['ret']}, + deferred=d['readout_order'], late_v=d['deferred_v_order'], + early_v=[s for n,us in d['xs_order'] for s in us if s not in set(d['deferred_v_order'])]) + + +def touches(op): + return op[1:3] if op[0]=='add' else [op[1]]+op[2] if op[0]=='fan' else [] + + +def closure(s): + previous, pred, last = {}, {}, {} + for i,op in enumerate(s['ops']): + pred[i] = [] + for u in touches(op): + if u in previous: pred[i].append(previous[u]) + previous[u]=i; last[u]=i + stack = [last[u] for u in s['ret']]; phase=set() + while stack: + i=stack.pop() + if i not in phase: phase.add(i); stack.extend(pred[i]) + return phase + + +def coefficients(s): + """Compute the exact integer transpose-sweep C=J L independently.""" + c=[{} for _ in range(s['R'])] + for u,t in s['out'].items(): c[u][t]=c[u].get(t,0)+1 + for u,q in s['ret'].items(): + for t,T in enumerate(s['trip']): + if q in T: c[u][t]=c[u].get(t,0)+1 + for op in reversed(s['ops']): + if op[0]=='add': pairs=[(op[2],op[1])] + elif op[0]=='fan': pairs=[(op[1],g) for g in op[2]] + else: continue + for dst,src in pairs: + for t,a in c[src].items(): c[dst][t]=c[dst].get(t,0)+a + return c + + +def replay(s, c, control=None, ring=2, seed=0): + """F2: entire linear map; Z: independent integer samples, explicitly labeled.""" + v,R=s['v'],s['R']; sel=set(s['deferred']); src={o[1]:o[2]-1 for o in s['ops'] if o[0]=='src'} + phase=closure(s) + assert not any(sel.intersection(touches(s['ops'][i])) for i in phase) + assert set(s['late_v']) == sel.intersection(src) + ph1=[i for i,o in enumerate(s['ops']) if i in phase and o[0]!='src'] + rest=[i for i,o in enumerate(s['ops']) if i not in phase and o[0]!='src'] + if ring==2: + x=[1<2^{-14}}. +$$ + +That is about 1.74 times our round-six witness `3.66657e-5`, 4.13 times our round-five witness `1.54788e-5`, +5.34 times our round-four witness `1.19722e-5`, and about 8500 times our first witness `7499/10^12`. These figures +compare asymptotic exponents, not practical runtimes. + +## Round seven + +`scripts/certificate_round7.py` rebuilds the bit side's child-width histogram from a frozen schedule +(`certificates/round7/`, about 2.3 MB compressed) and certifies it; the complex side is round six's. The bit side at +`h = 23` (`notes/deferred-readout.tex`): + +- **PR #62's producer** (interval strips and core-aware pair assembly), with PR #41's alternating order and links + and a moment-weighted choice of links after PR #44's weighted matching, builds the side program + (`R = 28866` slots). +- **Lifted frames and late copies.** Every addition acts at `M_n = span(n) + (U_n cap F_j)`, after Paureel's + complement-frame construction, and a node with several free uses copies itself late, at the intersection of the + frames of its remaining users, so the copy starts higher up its chain. +- **Deferred readouts (B-defer).** The second pass of stage one runs in two phases: first everything the retained + totals need (their copies then read every target at `0`), then every slot that phase did not touch reads its + garbage out at a nonzero frame `sigma_u` inside its start frame and every target's `t_T^perp`. Only the order of + the word changes; it is still a mirror. Readouts go in increasing `dim sigma_u`, which keeps every target's frame + sequence nested. +- **V leaves.** Each use of a leaf gets its own `V` gate on the data wire `X_S`, as a late copy there: the use slot + starts at the intersection `s_i` of the frames of the remaining uses, and the deferred `V` gates follow in + increasing dimension. + +The rank sum is exactly round six's budget `s = Wm - N + L`. With the staircase data-entrance corner (runs +`h-2, h-5, 1^6`) this certifies `a_b = 31987/(5*10^8)` and `kappa = 1599247689723/(2.5*10^16)`; with the +round-six entrance corner, `a_b = 12599/(2*10^8)` and `kappa = 6299103187973/10^17 > 2^-14`. + +The checks are standard-library Python, one process each (`make round7`, about 25 minutes and at most 1.2 GB of memory): + +- `independent/deferred-readout/check_word.py` replays the reordered word over F2 and over Z with arbitrary + scratch, checks that the schedule computes the side DAG, the phase split and the ordering rule, with negative + controls; +- `check_frames.py` rebuilds every frame exactly over Q and checks the deferred and V-leaf frames, the nesting of + every target and data chain in time order, G-nondegeneracy, the side lemma on every new high-rank step, and the + histogram, with negative controls; +- `check_lifted.py` checks the base side program: DAG, compilation, dirty-scratch replay, exact frame dimensions, + nesting facts, G-nondegeneracy and the side lemma on all of its high-rank steps; +- `check_stair.py` certifies the staircase entrance corner at the same integer point. + +Stage two is the complement time-reversal of stage one, as in round six; this is assumed, not machine-checked. The +moment certificates and both assemblies are also checked in Lean 4's kernel (`lean/Round7.lean`, `make lean`). + +## Round six (previous witness, `3666565558019/10^17`) + +`scripts/certificate_round6.py` (bit side) and `independent/complex-twostage/` (complex side) assemble the witness: + +- **Copied centres** (`notes/copied-centres.tex`), after PR #36's copied retained-centre schedule. A centre must be + read at `D0` by the second scatter and then gathered at `D1`; instead, a temporary copy goes down to `D0` for the + reads and is erased, and the original never leaves `D1`. Each centre loses one rank-`h` return per stage, the rank + budget becomes `s = Wm - N + L`, and the deficit `v(v - 2h^2)` is positive at much smaller `h`. On our bit + interchange (flag basis, gm side circuit, side roles batched one level down, data-entrance run) this certifies + `a_b = 34919/10^9` at `h = 25`. +- **Retained point totals** replace the direct centre wires: each total is a side role built from existing side + nodes, its copy pays rank `h-1` and the original rank `1`, so the loss per centre drops from `h` to `h-1` and the + centre roles leave `W` (`independent/two-stage-bit/rtgm.py`). This certifies `a_b = 36667/10^9` at `h = 23`. +- **The two-stage complex interchange** with our pair-exclusion producer, copied retained centres, complex data-edge + batching and every residual batched as one whole-residual child, certifies `a_c = 36926111/(5*10^11)` at `h = 24` + (`cd independent/complex-twostage && python3 run.py 24`: rank sum exact, labels 0 bad, `a_c >= 73861113/10^12`). + +The bit side binds: `kappa = 3666565558019/10^17`. Both moment certificates and the assembly are also checked in +Lean 4's kernel (`lean/Round6.lean`, `make lean`), as in round five. + +## Round five (previous witness, `309575208081/(2*10^16)`) + +`scripts/certificate_round5.py` assembles the witness from our own two-stage bit interchange (Paureel's +two-stage motif), with no outside bit network: + +- **A common flag basis** (`notes/flag-basis.tex`). One rational basis makes the corners of every auxiliary and + centre edge of the two-stage motif lower triangular, in both stages at once, so each role's `h` corner + transpositions become one contiguous run instead of `h` singleton calls. The same basis gives the data edges + their batched profiles one level down, including one run of width `h-2` inside the data-entrance corner (a + triangular corner plus a rank-one term). `independent/two-stage-bit/flagbasis.py` checks every edge class + exactly, and `flag_existence.py` checks the nonvanishing conditions at the working dimensions `h = 46, 47`. +- **A cheaper side circuit** (`independent/two-stage-bit/gmside.py`): a global matching of the points shares + pair sums and exclusion chains between centres, cutting the side roles at `h = 47` from 418678 to 403248; + `checkgm.py` re-derives every support and output exactly. +- PR #7's complex network, fully batched with complex source frames, as in round four. + +- **Side roles batched one level down.** In the flag basis every side-role edge has the form `pi (x) P_b`, whose + profile is that of the `h x h` idempotent `pi`: an edge of rank `r > h/2` becomes `h-r` singletons and one + block of width `2r-h`. `independent/two-stage-bit/side_chains.py` derives every side role's frame chain from + the compiled side program. + +The two moment certificates are also checked in Lean 4's kernel (`lean/Round5.lean`, `make lean`, core Lean +only): both child-width histograms sum to their total rank, the rational upper bounds on `ln(m/w)` are computed from +their series, the moment bound holds at the claimed savings, and the assembly (every constraint row and cost margin of +`scripts/certificate_round3.py`, with the guard constant bounded through the same ln series) gives the headline +`kappa`. The analytic facts behind those bounds (the atanh +tail and `(m/w)^a <= 1/(1 - a ln(m/w))`) are stated premises, not formalised. + +Together these certify `a_b = 15479/10^9` at `h = 47` and `kappa = 309575208081/(2*10^16) > 2^-16`. + +## Round four (previous witness, `59861145819/(5*10^15)`) + +`scripts/certificate_round4.py` assembles the witness from: + +- the stack below, which drives `eps` toward 1 (the bit side binds); +- PR #24's endpoint-gauge bit network, built on PR #18's partial-swap networks. We take its published + counts and child-width multiplicities (`certificates/external/pr24-bit-network.json`), check the rank sum + and deficit, and certify `a_b = 4788949/(4*10^11)` with our own moment bisection; +- PR #7's complex network at `h=28`, fully batched, with **complex source frames** + (`notes/complex-source-frames.tex`): starting each stage-two auxiliary role in the phase frame of `D0` + merges its entrance and exit into one child of rank `m-h`. Our histogram certifies + `a_c = 4079603/(2.5*10^11)`, more than the bit side needs. PR #21 contains the same translation, + independently and in a more complete form. + +The same script also reports a witness using only our own bit side: the two-stage interchange with +**data-edge batching** (`notes/data-edge-batching.tex`, `independent/two-stage-bit`). Both stage-two data +entrances have idempotent difference `Q1 (x) Q2`, of rank `(h-1)^2 > m/2`, so the partial-swap batching +lemma applies to them too; at `h=47` this certifies `a_b = 10033/10^9` and `kappa = 1003289933971/10^17`. + +## Round three (previous witness, `13086957581/(3.125*10^15)`) + +`notes/round3-combination.tex` assembles the witness from four components: + +- the stack below, which drives `eps` toward 1; +- a batched two-stage bit interchange, using the partial-swap batching lemma in + `notes/partial-swap-batching.tex` (`a_b = 22157/(5*10^9)`); +- PR #7's complex network at `h=28`, fully batched as in PR #15 (every residual edge is one + whole-residual child), rebuilt and certified independently in `independent/complex-network` + (`a_c = 1048009/(2.5*10^11)`; this side binds); +- a coefficient-depth guard that needs no path-topology assumption. + +`scripts/certificate_round3.py` checks every row and constraint exactly. + +## The ceiling and how this gets past it + +After the recent pull requests, every witness is capped at about half the +bit-network saving, `kappa < a_b/2`. Three costs each tie a saving to either the +number of axes `d` or the axis width `l`, and `d*l ~ log n`: + +- the butterflies save on `d`; +- the chunk layout and the axis layout save on `l`. + +On top of that, the Gaussian precision budget `~8d^2` must fit in `O(log n)`. + +Five changes remove those caps. + +| Change | What it does | Note | +| --- | --- | --- | +| D. Longer digits | Digits of `(log n)^(1+x)` bits separate the precision budget from the address length. The volume stays `Theta(n)`. | `notes/stack-notes.tex` §1 | +| B. Segmented inverse | Inside any wrap-free block, the Gaussian correction `N` is exactly `D_c T_c D_c^{-1}` for any centre `c`, and every `T_c` is a geometric rescaling of one Toeplitz matrix. Recentred sub-blocks keep the chirp precision bounded. Gohberg–Semencul inverts each block, and Woodbury couples the cuts and wraps. With oversampling `1/(4 d L^eps)`, this replaces PR #5's `O(d)` Neumann terms per output (its counts are at most `30d`; the burn-in alone is about `1/theta = 4d`) with `O(1)` work per output. | `notes/segmented-inverse.tex` | +| C. One chunk per axis | `K = l - 1` is possible once compact controls remove the `K^tau` factor. The transform layout then needs no exchanges. | `notes/stack-notes.tex` §2 | +| A. Fine-bit exposure | Only `O(log L)` low bits of an axis move innermost for resampling. The line passes stream over slabs. | `notes/stack-notes.tex` §3 | +| E'. Permuted selected-bit swaps | Colkitt's selected-bit addition with a permuted pairing reverses the CRT axis order at cost `l (d log p)^tau`. | `notes/stack-notes.tex` §4 | + +Only the combination moves the headline. D alone, for example, leaves PR #5's +Gaussian row capping `eps < 1/2`. The binding constraint is now the butterfly row, +`eps(1-lambda')`, at `eps = 0.9999`. + +## Evidence and scope + +| Component | Evidence | +| --- | --- | +| Parameters, margins, side constraints | Exact rational certificate (`scripts/certificate.py`) with negative controls | +| Closed form `X = n(n+2 beta_j)`, segment and recentred factorisations, cross-wrap bound `X >= 2` | Exact rational checks on five `(s,t)` pairs (`scripts/check_identities.py`) | +| Segmented inverse | Written proof (`notes/segmented-inverse.tex`); 260-digit comparisons against a direct solve, with cyclic indices, for whole segments (`scripts/check_segmented_inverse.py`), recentred sub-blocks (`scripts/check_subblock_inverse.py`), and the reuse path, which uses one stored inverse rescaled per block, elimination without pivoting, and a fixed-point negative control that must fail (`scripts/check_reuse_inverse.py`) | +| A, C, D, E' | Written arguments, each attacked by a refute-by-default check, with the resulting fixes in the notes | +| Prior results from PR #3, #5 and #7 on integer-mult-bounds (networks, chirped Gaussian lemma) | Assumed, and unmerged there. We recomputed PR #7's W, m, N, L, s, eta and their complex counterparts exactly from its formulas. An independent re-implementation (`independent/pr7-role-counts`, `make roles`) reproduces its h=28 role counts, 11840940 and 93838, exactly. The finite-alphabet version of the interchange lemmas that its ternary payloads need is proved in `notes/stack-notes.tex`, Appendix A. | +| Partial-swap batching (bit side) | Written proof (`notes/partial-swap-batching.tex`); exact Bruhat profiles on random, sparse and adversarial idempotents, and two-stage frames at h=6,7,8 (`independent/partial-swap`) | +| Fully batched complex saving | Independent rebuild of PR #7's producer, exact label checks (0 bad edges at h=28), the residual rank of every edge with an exact sum check against s, and a certified moment bisection (`independent/complex-network`) | +| PR #24's bit network | Its published counts and child-width multiplicities, pinned by commit and SHA-256; we check that the widths sum to the total rank, the deficit, and that every child is narrower than m, and certify the moment ourselves. We also re-derived its frame identities and confirmed it is compatible with our stack (separate bit and complex arities, crude guard, payload and prime choice); its producers and common basis are assumed | +| Data-edge batching (bit side) | Written proof (`notes/data-edge-batching.tex`): closed form `Q1 (x) Q2` checked in exact rationals; corners invertible under one common basis for every auxiliary edge and every data pair at h=6,7,8 (all 3136 pairs at h=8, `corners.py`); exact Bruhat profiles (`bruhat8.py`) | +| Two-stage side circuit at h=47 | Our generator (`independent/two-stage-bit/sidegen.py`) reproduces the published h=32 count, 123157, and an exact checker (`checkside.py`) verifies supports, disjoint children, common points and every output at h=28 to 50; `moment.py` builds the child histogram role by role and checks it sums to s | +| Complex source frames | Written proof (`notes/complex-source-frames.tex`); exact label and phase checks of every endpoint case (`independent/complex-network/sourceframe_labels.py`); a three-stage scalar simulation of PR #7's network with source frames, arbitrary scratch and a negative control (`sourceframe_sim.py`); the histogram option `sf` keeps the exact rank sum s | +| Round-seven bit side (deferred readouts, V leaves, lifted frames, late copies) | Frozen schedule and frames (`certificates/round7/`); stdlib replays over F2 and Z with arbitrary scratch, exact frame checks over Q, side lemma at one integer point, histogram rebuilt from the schedule, negative controls (`independent/deferred-readout/`); Lean kernel check of the moment certificates and assembly. Stage two as the complement time-reversal of stage one is assumed | +| Topology-free guard | Written argument (docstring of `scripts/certificate_round3.py`); the witness is stated with this guard | +| Prior results from PR #10, #13 and #15, and the two-stage motif | Assumed. We reproduced their rank moments, certified at least PR #15's fully batched saving from our own histogram, and found controlled-basis witnesses for PR #10 at h=8 to 14 | +| Full upstream multiplication theorem | Assumed | +| Independent review / formalisation | Not supplied | + +## Reproduce + +Requires Python 3.9 or newer, standard library only. + +```sh +python3 independent/complex-network/fullbatch_hist.py 28 /tmp/fb28sf.json sf # ~4 min +python3 scripts/certificate_round4.py /tmp/fb28sf.json +python3 independent/two-stage-bit/checkside.py 47 +make verify # exact checks, numerical inverse checks, certificate, tests +make roles # independent recount of PR #7's role counts (clang++, ~1 GB) +make round7 # round-seven certificate and checks (~25 min) +make lean # Lean 4 kernel checks of rounds five to seven +make notes # PDF notes (tectonic) +``` + +The PDFs are in `artifacts/`. + +## Attribution + +Author: **Swapnil Jain**. Research, implementation and drafting were done with +assistance from Claude (Anthropic). This builds on OpenAI's manuscript and Douglas +Colkitt's framework. It also uses published results from open pull requests on +Colkitt's repository, cited in `NOTICE`; those are citations of prior work, not +collaborators. Licensed under Apache-2.0. + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz new file mode 100644 index 0000000000..4a4431bd42 Binary files /dev/null and b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz differ diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz new file mode 100644 index 0000000000..3d86f83b87 Binary files /dev/null and b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/certificates/round7/witness_23.json.gz differ diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py new file mode 100644 index 0000000000..ecb1fdf4e0 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_frames.py @@ -0,0 +1,263 @@ +"""Round-seven check, part 2 (stdlib only): every frame of the reordered word, exactly over Q. + +The base frames (lifted node frames M_n, late-copy intersections, root frames t_T^perp and U_c) are rebuilt from the +witness with check_lifted.py's exact machinery. The design-B frames (deferred readout frames sigma_u, V-leaf starts +s_i) are the primitive integer bases of the data file. Checked: + X. the frame dimensions recorded in the data file (node frames, late-copy intersections) equal the exact ones; every + slot's node list moves along slot successors of the witness (gate uses and links, for which check_lifted.py proves + nesting), its first node is where its start says, its last node reaches its root frame directly; + Q. sigma_u <= F0(u) (the slot's start frame); sigma_u <= t_T^perp for every target of u (Z supports, a superset of + the F2 supports); on every y_T the deferred levels are nested in time order (readout order); t_S <= s_i <= N_i + (the first frame of the use); every X_S chain , early V frames, deferred V frames, F is nested in time order; + G = I - J/9 nondegenerate on every new frame (Gram determinant nonzero mod a prime, so nonzero over Z); + S. side lemma at check_lifted's integer point (U, V of point(h, 1), the point of check_stair.py too): every distinct + high-rank step (2r > h) of the reordered word that check_lifted.py does not already cover (slot starts, gauged + corners sigma_u -> F, y_T and X_S chain steps, base steps that only the new schedule uses) has the generic + north-east pivots under both conjugations, mod 2^31-1; + F. the child-width histogram rebuilt from the exact dimensions (Z and F2 y supports), rank sum s = W m - N + L, + moment certificate and kappa, with the round-six and the staircase entrance corners; + N. negative controls: reversed readout order, readouts at F0(u) instead of sigma_u, perturbed sigma frames, X_S + chains with the deferred V gates first, side lemma with U = V = I. +Usage: python3 check_frames.py [h]""" +import sys, os, time, random +from fractions import Fraction as Fr +from math import gcd +from collections import Counter, defaultdict +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path[:0] = [HERE, os.path.join(HERE, '..', '..', 'scripts'), os.path.join(HERE, '..', 'two-stage-bit')] +import check_lifted as cl +import deferred as dr +from linalg import null_exact, rank_mod, inv_mod_matrix, rightmost_pivots, predicted, Q31, Echelon + +T0 = time.time() +def log(*a): print('[%5.0fs]' % (time.time() - T0), *a, flush=True) +OK = {} +def report(name, ok): + OK[name] = bool(ok); log('%-100s %s' % (name, 'PASS' if ok else 'FAIL')) + + +def prim(r): + r = [Fr(x) for x in r]; den = 1 + for x in r: den = den * x.denominator // gcd(den, x.denominator) + z = [int(x * den) for x in r]; g = 0 + for x in z: g = gcd(g, x) + return [x // g for x in z] if g else z + + +class ModQ7(cl.ModQ): + """check_lifted's mod-q frames, extended by the design-B frames ('sigma', s) and ('v', s) (integer bases).""" + def __init__(self, fr, ld, extra, control=False): + super().__init__(fr, ld, control); self.extra = extra + + def basis(self, key): + if key[0] in ('sigma', 'v') and key not in self.bcache: + E = Echelon(self.q) + for r in self.extra[key]: E.insert([x % self.q for x in r]) + if len(E.rows) != len(self.extra[key]): self.dimfail += 1 + self.bcache[key] = E.rows + return super().basis(key) + + +def main(h=23): + W, D = dr.load(h); S = dr.Schedule(W, D); trip = S.trip; tv = lambda T: [int(q in T) for q in range(h)] + FULL = [[int(i == j) for j in range(h)] for i in range(h)] + pr = cl.Prog(W); bas, dn = cl.spans(pr); users = cl.users_of(pr, dn) + fr = cl.Frames(pr, dn, bas, users); fr.cobases(); d, _ = fr.dims(); ld, _ = cl.late_frames(fr, pr, users) + log('exact base frames: %d node frames (%d lifted), %d late-copy intersections' % (len(d), len(pr.j), len(ld))) + + # ------------------------------------------------------------------ X. recorded dims, slot paths + okd = all(S.node_dims[n] == d[n] for n in pr.act) and len(S.node_dims) == len(pr.act) + okd &= all(S.late_dims[n, lt] == ld[('c', n, lt)] for (n, lt) in S.late_dims) and len(S.late_dims) == len(ld) + report('X. recorded frame dims == exact dims (%d node frames, %d late-copy intersections)' % (len(d), len(ld)), okd) + def ukey(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else cl.root_key(u) + badp = 0 + for s in range(S.R): + hl = S.hold[s] + for a, b in zip(hl, hl[1:]): badp += b not in fr.succ[a] + root = [k for k in S.chain_keys(s) if k[0] in ('out', 'ret')] + if root: badp += fr.rid[root[0]] not in fr.droots[hl[-1]] + st = S.start[s] + if st[0] == 'fresh': # a copy starts at the use it serves + nxt = ('n', hl[1]) if len(hl) > 1 else root[0] + badp += ukey(hl[0], st[2]) != nxt + report('X. every slot moves along slot successors of the witness, starts at its use, ends at its root (%d slots)' % S.R, + badp == 0) + + # ------------------------------------------------------------------ exact frames + _eb = {} + def exact(key): + if key not in _eb: + k = key[0] + if k == 'sigma': B = S.sigma[key[1]] + elif k == 'v': B = S.vstart[key[1]] + elif k == '0': B = [] + elif k == 'F': B = FULL + elif k == 'c': + n, lt = key[1], key[2] + B = exact(ukey(n, lt[-1])) + for kk in reversed(lt[:-1]): B = fr.intersect_exact(exact(ukey(n, kk)), B) + B = [prim(r) for r in B]; assert len(B) == ld[key] + else: B = [prim(r) for r in fr.exact_basis(key)] + _eb[key] = B + return _eb[key] + _nz = {} + def nullZ(B): + kb = tuple(map(tuple, B)) + if kb not in _nz: _nz[kb] = [prim(z) for z in null_exact(B, h)] if B else FULL + return _nz[kb] + def inside(A, B): + if not A or len(B) == h: return True + return all(sum(a * z for a, z in zip(ra, rz)) == 0 for ra in A for rz in nullZ(B)) + def nondeg(B, p=Q31): # det(9 B G B^T) != 0 mod p => != 0 over Z + if not B or len(B) == h: return True + sm = [sum(b) for b in B] + Gr = [[9 * sum(x * y for x, y in zip(a, b)) - sa * sb for b, sb in zip(B, sm)] for a, sa in zip(B, sm)] + return rank_mod(Gr, p) == len(B) + gout = {T: [9 * x - 3 for x in tv(T)] for T in trip} + tperp = lambda T: ('out', T[0], T) # t_T^perp is the root frame of every output (c, T) + + # ------------------------------------------------------------------ Q. exact facts + indep = all(rank_mod(B, Q31) == len(B) for B in list(S.sigma.values()) + list(S.vstart.values())) + report('Q. sigma_u and s_i bases independent (rank mod 2^31-1 == row count; %d + %d frames, max |entry| %d)' % ( + len(S.sigma), len(S.vstart), max(abs(x) for B in list(S.sigma.values()) + list(S.vstart.values()) for r in B for x in r)), indep) + sel = S.readout; F0 = {s: S.start_key(s) for s in range(S.R)} + report('Q. sigma_u <= F0(u) exactly (%d deferred slots)' % len(sel), all(inside(S.sigma[s], exact(F0[s])) for s in sel)) + CZ = S.adjoint(); CF = [{t: 1 for t, x in dd.items() if x % 2} for dd in CZ] + capbad = sum(1 for s in sel for t in CZ[s] if any(sum(a * g for a, g in zip(r, gout[trip[t]])) for r in S.sigma[s])) + report('Q. sigma_u <= t_T^perp exactly for every Z-support target (a superset of the F2 targets)', capbad == 0) + def ychains(co, order, frame=lambda s: S.sigma[s], limit=None): + byT = defaultdict(list) + for s in order: + for t in co[s]: byT[t].append(s) + bad = 0; levels = {} + for t, ss in list(byT.items())[:limit]: + seq = [frame(s) for s in ss] + for A, B in zip(seq, seq[1:]): + if A is B: continue + if len(A) > len(B) or not inside(A, B): bad += 1 + lv = [] + for s in ss: + if not lv or S.f[lv[-1]] != S.f[s]: lv.append(s) + levels[t] = lv + return bad, levels + bZ, levZ = ychains(CZ, sel); bF, levF = ychains(CF, sel) + report('Q. deferred levels on every y_T nested in time order, exactly (Z targets %d bad, F2 targets %d bad)' % (bZ, bF), + bZ == 0 and bF == 0) + nd = sum(1 for B in list(S.sigma.values()) + list(S.vstart.values()) if not nondeg(B)) + report('Q. G nondegenerate on every sigma_u and s_i (Gram det != 0 mod 2^31-1 => over Z)', nd == 0) + bad_t = bad_n = 0 + for s, n in S.srcop.items(): + bad_t += not inside([tv(trip[n - 1])], S.vstart[s]) + N1 = S.chain_keys(s)[2] # first frame of the use after its start + bad_n += not inside(S.vstart[s], exact(N1)) + report('Q. V leaves exactly: t_S <= s_i (%d bad), s_i <= N_i, the first frame of the use (%d bad), %d slots' % ( + bad_t, bad_n, len(S.srcop)), bad_t == bad_n == 0) + def xchains(order_fn): + bad = 0; steps = [] + for n, us in S.xs: + seq = [[tv(trip[n - 1])]] + [S.vstart[s] for s in order_fn(us)] + [FULL] + keys = [('n', n)] + [('v', s) for s in order_fn(us)] + [('F',)] + for (A, ka), (B, kb) in zip(zip(seq, keys), zip(seq[1:], keys[1:])): + if len(A) > len(B) or not inside(A, B): bad += 1 + steps.append(keys) + return bad, steps + bx, xkeys = xchains(lambda us: us) + report('Q. X_S chains nested exactly in time order (, early V gates, deferred V gates, F; %d leaves)' % len(S.xs), bx == 0) + + # ------------------------------------------------------------------ S. side lemma on the new high-rank steps + ops0, chains0, _, R0 = cl.compile_(pr, dn, users) + def dimof0(k): + if k == ('0',): return 0 + if k == ('F',): return h + if k[0] in ('out', 'ret'): return h - 1 + if k[0] == 'c': return ld[k] + return d[k[1]] + _, base_steps = cl.chain_steps(chains0, dimof0, h) + base_frames = {k for e in base_steps for k in e} + def dimx(k): return len(exact(k)) if k[0] in ('sigma', 'v') else dimof0(k) + new = {} + def add_chain(keys, kind): + prev = keys[0]; pd = dimx(prev) + for k in keys[1:]: + dk = dimx(k) + if dk > pd: + if (prev, k) not in base_steps and 2 * (dk - pd) > h: new.setdefault((prev, k), (dk - pd, kind)) + prev, pd = k, dk + else: prev = k + for s in range(S.R): + add_chain(S.chain_keys(s), 'slot') + if S.f[s]: add_chain([('sigma', s), ('F',)], 'corner') + for t, lv in levZ.items(): + add_chain([('0',)] + [('sigma', s) for s in lv] + [tperp(trip[t])], 'ydata') + for t, lv in levF.items(): + add_chain([('0',)] + [('sigma', s) for s in lv] + [tperp(trip[t])], 'ydata') + for keys in xkeys: add_chain(keys, 'xdata') + extra = {('sigma', s): B for s, B in S.sigma.items()}; extra.update({('v', s): B for s, B in S.vstart.items()}) + mq = ModQ7(fr, ld, extra) + used = {k for e in new for k in e} - base_frames + ndq = sum(1 for k in used if not mq.nondeg(k)) + report('S. frames used only by the new steps: %d, G-degenerate mod 2^31-1 %d, reduction dimension mismatches %d' % ( + len(used), ndq, mq.dimfail), ndq == 0 and mq.dimfail == 0) + pr_ = predicted(h); q = mq.q + def lemma(items, m): + bad = 0 + for (A, B), (r, _) in items: + QA, QB = m.conjugated(A), m.conjugated(B) + for t in range(2): + a, b = QA[t], QB[t] + M = [[(b[i * h + c] - a[i * h + c]) % q for c in range(h)] for i in range(h)] + if rightmost_pivots(M, q) != pr_[r]: bad += 1 + return bad + items = sorted(new.items(), key=lambda e: (str(e[0][1]), str(e[0][0]))) + badL = lemma(items, mq) + report('S. side lemma (generic NE pivots, both conjugations, mod 2^31-1) on all %d new high-rank steps %s' % ( + len(items), dict(Counter(k for _, k in new.values()))), badL == 0) + + # ------------------------------------------------------------------ F. histogram from exact dims + import moment + from certificate_round3 import evaluate + def dim_exact(k): return dimx(k) + rk = dr.chain_ranks(S, dim_exact) + xd = S.xdata(lambda s: len(exact(('v', s)))) + okx = all(sum(x) == h - 1 for x in xd) + ylZ = S.ylevels(CZ); ylF = {t: sorted({S.f[s] for s in sel if t in CF[s]}) for t in range(S.v)} + res = {} + for corner_name, corner in (('round-six corner', dr.ROUND6_CORNER(h)), ('staircase corner', dr.STAIRCASE_CORNER(h))): + for yname, yl in (('Z', ylZ), ('F2', ylF)): + c = dr.histogram(S, rk, yl, xd, corner) + rs = sum(w * n for w, n in c['hist'].items()) + a, _ = moment.certify(c) + k = evaluate(a, Fr(36926111, 5 * 10**11), Fr(1, 1000), 'crude', m_c=576, s_c=119453132304) + res[corner_name, yname] = (a, k['kappa'], k['ok'], rs == c['s'] and max(c['hist']) < c['m']) + for corner_name in ('round-six corner', 'staircase corner'): + (aZ, kZ, oZ, sZ), (aF, kF, oF, sF) = res[corner_name, 'Z'], res[corner_name, 'F2'] + report('F. %s: rank sum == s (Z and F2 y supports), a_b = %s (%.6e), kappa = %s (%.7e) ok=%s, F2 a_b = %s' % ( + corner_name, aZ, float(aZ), kZ, float(kZ), oZ, aF), sZ and sF and oZ and oF and okx) + report('F. claims: a_b 12599/200000000, kappa 6299103187973/10^17; staircase a_b 31987/500000000, kappa 1599247689723/(2.5*10^16)', + res['round-six corner', 'Z'][:2] == (Fr(12599, 200000000), Fr(6299103187973, 10**17)) and + res['staircase corner', 'Z'][:2] == (Fr(31987, 500000000), Fr(1599247689723, 25 * 10**15))) + + # ------------------------------------------------------------------ N. negative controls + bZr, _ = ychains(CZ, list(reversed(sel))) + report('N. NEG reversed readout order breaks the y_T chains (%d bad)' % bZr, bZr > 0) + bF0, _ = ychains(CF, sorted(sel, key=lambda s: (dimx(F0[s]), s)), frame=lambda s: exact(F0[s]), limit=300) + report('N. NEG readouts at F0(u) instead of sigma_u break the y_T chains (%d breaks on 300 targets)' % bF0, bF0 > 0) + rng = random.Random(5); pert = tot = 0 + for s in [s for s in sel if dimx(F0[s]) < h][:200]: + B = [r[:] for r in S.sigma[s]]; B[0] = [x + rng.randint(1, 3) for x in B[0]]; tot += 1 + pert += not inside(B, exact(F0[s])) + report('N. NEG perturbed sigma frames fail sigma <= F0 (%d / %d)' % (pert, tot), tot and pert >= 0.9 * tot) + early = set(S.srcop) - S.sel + bxr, _ = xchains(lambda us: [s for s in us if s not in early] + [s for s in us if s in early]) + report('N. NEG deferred V gates before the early ones break the X_S chains (%d bad)' % bxr, bxr > 0) + mq0 = ModQ7(fr, ld, extra, control=True) + badc = lemma(items[:300], mq0) + report('N. NEG side lemma with U = V = I fails (%d / %d)' % (badc, 2 * min(300, len(items))), badc > 0) + log('ALL %s' % ('PASS' if all(OK.values()) else 'FAIL: ' + str([k for k, x in OK.items() if not x]))) + return all(OK.values()) + + +if __name__ == '__main__': + sys.exit(0 if main(int(sys.argv[1]) if len(sys.argv) > 1 else 23) else 1) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py new file mode 100644 index 0000000000..700514eb5b --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_lifted.py @@ -0,0 +1,678 @@ +"""Release check (stdlib only) of the lifted-frame + late-copy bit side program, stacked with the staircase corner. + +Input: certificates/round7/witness_.json.gz: the side DAG (leaves = triples of [h], additions), outputs (c, T), +retained totals, links (donor x -> use (y, k)), the flag matrix F (integer h x h), the lift index j(n) of every +lifted addition and the late-copy decisions (early users, ordered late users) per node. + +What is checked, from the witness alone: + A. DAG semantics: disjoint supports; output (c,T) support = {S : c in S, S cap T = {c}}; retained = star(c). + B. Compile: one slot per role, schedule order (dim span, id), links hand the donor's non-pivot slot to the linked + use; late copies: the pivot of n climbs C_1 <= ... <= C_k (C_i = frames of users late[i:] intersected) and the + copy for late user i is a gate (pivot, fresh slot) at C_i, placed in time as LATE as possible (just before the + first of: its user's gate, the pivot's consumer gate, the next copy's slot). R = adds + outputs + retained - links. + C. Dirty-scratch replay of the compiled program: word L J L^-1 V L J L^-1 V^-1 and its mirror, arbitrary scratch, + over F2 and over Z, reads at the slot's last touch and at the end; targets must receive J L V x exactly + (DAG values) and every slot is restored; over F2 every target also receives exactly x_T. + D. Frames (exact over Q). Frame of addition n: M_n = span(n) + (U_n cap F_j(n)), U_n = common kernel of the root + covectors reachable from n ((9I-J) t_T for an output to Y_T, 1 - 3 e_c for a retained use of c), F_j = first j + rows of F. Nesting is a THEOREM given the combinatorial facts checked here: + j(n) <= j(t) on every slot successor pair n -> t; span(x) <= span(t) on every link pair (exact); + span(n) <= every root frame n reaches directly (exact integer dot products); F invertible. + Then U_n <= U_t, so M_n <= M_t, M_n <= U_n <= every reachable root frame, and every late-copy frame C_i + (an intersection of frames that all contain M_n) is nested. Dimensions (exact, see linalg.py): + dim M_n = rank[span(n); F_j] - rank(K_n F_j^T) (modular law; span(n) <= U_n; K_n spans the root covectors), + with ranks by mod-p + Hadamard certificates, Bareiss when the mod-p rank is not full; late-copy intersections by + exact Fraction bases. Rank of every chain step = difference of dimensions (nested), histogram vs claim. + E. Frame reductions mod q = 2^31-1 (dimension-matched, so they are the reductions of the rational frames), + G = I - J/9 nondegenerate on every frame of every step (Gram matrix invertible mod q => over Q), and the side + lemma at ONE integer point (U, V of point_UV(h, 1), the random stream of independent/two-stage-bit/flag_existence.py): for every distinct step A -> B of + rank r with 2r > h (retained copy edges 0 -> U_c included), U^T (P_B - P_A) U^-T and V^T (..) V^-T have the + generic north-east pivots of f_r. (NE ranks mod q <= over Q <= f_r, so equality mod q proves it over Q.) + F. Certificate: rt_histogram with the round-6 entrance corner and with the staircase corner (m-4h+2, h-2, h-5, 1^6), + rank sum == s, moment.certify (exact), kappa = certificate_round3.evaluate(a_b, round-6 complex values). +Negative controls (CONTROL=1): see controls(). +Usage: python3 check_lifted.py h [--no-generic]""" +import sys, os, json, random, time +from itertools import combinations +from collections import Counter, OrderedDict +from fractions import Fraction as Fr +from array import array +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +from linalg import * + +T0 = time.time() +def load_witness(h): + import gzip + with gzip.open(os.path.join(HERE, '..', '..', 'certificates', 'round7', 'witness_%d.json.gz' % h), 'rt') as fh: + return json.load(fh) + + +def log(*a): + print('[%5.0fs]' % (time.time() - T0), *a, flush=True) + + +# ----------------------------------------------------------------------------------------------- A. DAG +class Prog: + def __init__(self, W): + self.W = W; h = self.h = W['h'] + self.trip = list(combinations(range(h), 3)); v = self.v = len(self.trip) + self.args = {int(n): (tuple(a) if a else None) for n, a in W['args'].items()} + self.act = sorted(self.args) + for n in self.act: + if self.args[n] is None: assert 1 <= n <= v and tuple(W['leaf'][str(n)]) == self.trip[n - 1] + else: assert all(a < n and a in self.args for a in self.args[n]), n + self.sup = {} + for n in self.act: + if self.args[n] is None: self.sup[n] = 1 << (n - 1) + else: + a, b = self.args[n]; assert not self.sup[a] & self.sup[b], 'overlapping supports' + self.sup[n] = self.sup[a] | self.sup[b] + self.outputs = {(c, tuple(T)): n for c, T, n in W['outputs']} + self.retained = {c: n for c, n in W['retained']} + star = [sum(1 << i for i, t in enumerate(self.trip) if q in t) for q in range(h)] + assert len(self.outputs) == 3 * v and len(self.retained) == h + for (c, T), n in self.outputs.items(): + A, B = [q for q in T if q != c]; assert c in T and self.sup[n] == star[c] & ~star[A] & ~star[B] + for c, n in self.retained.items(): assert self.sup[n] == star[c] + roots = set(self.outputs.values()) | set(self.retained.values()); reach = set(); st = list(roots) + while st: + n = st.pop() + if n in reach: continue + reach.add(n) + if self.args[n]: st.extend(self.args[n]) + assert reach == set(self.act), 'inactive nodes in witness' + self.mL = {x: (y, k) for x, y, k in W['links']} + self.j = {int(n): j for n, j in W['j'].items()} + self.late = {int(n): (list(e), list(l)) for n, (e, l) in W['late'].items()} + self.F = W['flag'] + + +def trow(h, S): return [int(q in S) for q in range(h)] + + +def spans(pr): + """independent triple subsets (exact: 0/1 rows with three ones, every minor < 3^(h/2) < Q31) and dims.""" + h = pr.h; assert 3 ** h < Q31 ** 2 + bas = {}; dn = {} + for n in pr.act: + if pr.args[n] is None: bas[n] = (n - 1,); dn[n] = 1; continue + a, b = pr.args[n]; E = Echelon(Q31); keep = [] + for i in bas[a] + bas[b]: + if len(E) == h: break + if E.insert(trow(h, pr.trip[i])): keep.append(i) + bas[n] = tuple(keep); dn[n] = len(keep) + return bas, dn + + +def users_of(pr, dn): + key = lambda n: (dn[n], n); users = {n: [] for n in pr.act} + for n in sorted(pr.act, key=key): + if pr.args[n]: + for pos, x in enumerate(pr.args[n]): users[x].append(('gate', n, pos)) + for (c, T), n in sorted(pr.outputs.items()): users[n].append(('out', (c, T))) + for c, n in sorted(pr.retained.items()): users[n].append(('ret', c)) + return users + + +# ----------------------------------------------------------------------------------------------- B. compile +def root_key(u): return ('out',) + u[1] if u[0] == 'out' else ('ret', u[1]) + + +def compile_(pr, dn, users, late=True, defer=True, tamper=None): + """returns ops (scalar program), chains (frame keys per slot), reads, R. tamper: negative-control hooks.""" + key = lambda n: (dn[n], n); order = sorted(pr.act, key=key); gpos = {n: i for i, n in enumerate(order)} + linked = {r: x for x, r in pr.mL.items()} + chains = []; edge = {}; reads = []; ops = []; deferred = [] + def new(first): chains.append(list(first)); return len(chains) - 1 + def assign(s, n, k): + u = users[n][k] + if u[0] == 'gate': edge[u[1], u[2]] = s + else: + chains[s] += [root_key(u), ('F',)] + reads.append((s, [u[1][1]] if u[0] == 'out' else [T for T in pr.trip if u[1] in T])) + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + for n in order: + if pr.args[n] is None: + piv = new([('0',), ('n', n)]); ops.append(('src', piv, n, n)) + else: + a, b = pr.args[n]; sa, sb = edge.pop((n, 0)), edge.pop((n, 1)) + if n in pr.mL and pr.mL[n][0] == a: sa, sb = sb, sa # the linked operand stays on the non-pivot + piv, oth = sa, sb + chains[piv].append(('n', n)); chains[oth].append(('n', n)); ops.append(('add', piv, oth, n)) + if n in pr.mL: y, k = pr.mL[n]; assign(oth, y, k) + else: chains[oth].append(('F',)) + ks = [k for k in range(len(users[n])) if (n, k) not in linked] + if late and n in pr.late: + early, lt = pr.late[n]; assert sorted(early + lt) == ks, ('bad late decision', n) + else: early, lt = ks[1:], [ks[0]] + for k in early: + f = new([('0',), ('n', n)]); ops.append(('copy', piv, f, n)); assign(f, n, k) + for i, k in enumerate(lt): + Ck = ufr(n, k) if i == len(lt) - 1 else ('c', n, tuple(lt[i:])) + if tamper == 'nointersect' and i < len(lt) - 1: Ck = ufr(n, k) + chains[piv].append(Ck) + if i < len(lt) - 1: + f = new([('0',), Ck]); deferred.append((n, i, f, k, lt[-1])); assign(f, n, k) + k = lt[-1] + if users[n][k][0] == 'gate': edge[users[n][k][1], users[n][k][2]] = piv + else: assign(piv, n, k) + assert not edge + # place deferred copies: as late as possible, in order, before the user's gate and the pivot consumer's gate + INF = len(order); byn = {} + for (n, i, f, k, kl) in deferred: byn.setdefault(n, []).append((i, f, k, kl)) + ins = {} + for n, lst in byn.items(): + lst.sort(); D = [] + for i, f, k, kl in lst: + u, ul = users[n][k], users[n][kl] + d = min(gpos[u[1]] if u[0] == 'gate' else INF, gpos[ul[1]] if ul[0] == 'gate' else INF) + D.append(d) + for t in range(len(D) - 2, -1, -1): D[t] = min(D[t], D[t + 1]) + for (i, f, k, kl), d in zip(lst, D): + if not defer: d = gpos[n] + 1 # immediate copy (still a valid program) + if tamper == 'aftercons' and n == tamper_node[0] and i == 0: + ul = users[n][kl]; d = gpos[ul[1]] + 1 # copy AFTER the pivot was consumed + ins.setdefault(d, []).append((n, i, f)) + pivslot = {} + for o in ops: + if o[0] in ('src', 'add'): pivslot[o[3]] = o[1] + out = [] + for o in ops: + if o[0] in ('src', 'add'): + for (n, i, f) in sorted(ins.get(gpos[o[3]], []), key=lambda z: (gpos[z[0]], z[1])): + out.append(('copy', pivslot[n], f, n)) + out.append(o) + for (n, i, f) in sorted(ins.get(INF, []) + [z for d, zs in ins.items() if d > INF for z in zs], key=lambda z: (gpos[z[0]], z[1])): + out.append(('copy', pivslot[n], f, n)) + if tamper == 'dropcopy': + idx = next(i for i, o in enumerate(out) if o[0] == 'copy' and o[3] in pr.late); out.pop(idx) + R = len(chains); adds = sum(1 for n in pr.act if pr.args[n]) + assert R == adds + len(pr.outputs) + len(pr.retained) - len(pr.mL), 'role count' + return out, chains, reads, R + +tamper_node = [None] + + +# ----------------------------------------------------------------------------------------------- C. replay +def replay(pr, ops, reads, R, ring, rng, mirror=False, midread=True): + trip, v = pr.trip, pr.v; tid = {T: i for i, T in enumerate(trip)} + mod = (lambda z: z & 1) if ring == 2 else (lambda z: z) + last = {} + for i, o in enumerate(ops): + last[o[1]] = i + if o[0] != 'src': last[o[2]] = i + readers = {} + for s, Ts in reads: readers.setdefault(last[s] if midread else len(ops) - 1, []).append((s, Ts)) + x = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a0 = [rng.randrange(-10**6, 10**6) for _ in range(R)]; y0 = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a = list(a0); y = list(y0); src = [(o[1], o[2]) for o in ops if o[0] == 'src'] + def L(sg=None): + for i, o in enumerate(ops): + if o[0] == 'add': a[o[1]] += a[o[2]] + elif o[0] == 'copy': a[o[2]] += a[o[1]] + if sg is not None: + for s, Ts in readers.get(i, ()): + for T in Ts: y[tid[T]] += sg * a[s] + def Li(): + for o in reversed(ops): + if o[0] == 'add': a[o[1]] -= a[o[2]] + elif o[0] == 'copy': a[o[2]] -= a[o[1]] + def V(sg): + for s, n in src: a[s] += sg * x[n - 1] + if not mirror: L(-1); Li(); V(+1); L(+1); Li(); V(-1) + else: V(+1); L(+1); Li(); V(-1); L(-1); Li() + if any(mod(p - q) for p, q in zip(a, a0)): return False + val = {} + for n in pr.act: val[n] = x[n - 1] if pr.args[n] is None else val[pr.args[n][0]] + val[pr.args[n][1]] + want = list(y0) + for (c, T), n in pr.outputs.items(): want[tid[T]] += val[n] + for c, n in pr.retained.items(): + for T in trip: + if c in T: want[tid[T]] += val[n] + if any(mod(p - q) for p, q in zip(y, want)): return False + if ring == 2 and any(mod(y[i] - y0[i] - x[i]) for i in range(v)): return False + return True + + +# ----------------------------------------------------------------------------------------------- D. frames +class Frames: + def __init__(self, pr, dn, bas, users): + self.pr = pr; self.dn = dn; self.bas = bas; self.users = users; h = self.h = pr.h + self.rootcov = {} + for (c, T) in pr.outputs: self.rootcov[('out', c, T)] = [9 * int(q in T) - 3 for q in range(h)] + for c in pr.retained: self.rootcov[('ret', c)] = [1 - 3 * int(q == c) for q in range(h)] + rid = {k: i for i, k in enumerate(sorted(self.rootcov))}; self.rkeys = sorted(self.rootcov) + self.rid = rid + # slot successors (same for base and late compile: every free use of n is reached by one slot from n, + # a donor's non-pivot slot goes on to its linked use) and direct roots + linked = {r: x for x, r in pr.mL.items()} + self.succ = {n: set() for n in pr.act}; self.droots = {n: set() for n in pr.act} + def to(n, use): + if use[0] == 'gate': self.succ[n].add(use[1]) + else: self.droots[n].add(rid[root_key(use)]) + for n in pr.act: + for k, u in enumerate(users[n]): + if (n, k) not in linked: to(n, u) + if n in pr.mL: y, k = pr.mL[n]; to(n, users[y][k]) + + def check_structure(self): + """combinatorial / exact facts behind the nesting theorem.""" + pr, h = self.pr, self.h; bad_j = bad_link = bad_root = 0 + J = lambda n: self.pr.j.get(n, 0) + for n in pr.act: + if pr.args[n] is None: assert J(n) == 0 + for t in self.succ[n]: + if J(n) > J(t): bad_j += 1 + for x, (y, k) in pr.mL.items(): # span(x) <= span(linked use target) + u = self.users[y][k] + if u[0] == 'gate': + t = u[1]; E = Echelon(Q31) + for i in self.bas[t]: E.insert(trow(h, pr.trip[i])) + if not all(E.contains(trow(h, pr.trip[i])) for i in self.bas[x]): bad_link += 1 + for n in pr.act: # span(n) <= direct root frames + for r in self.droots[n]: + g = self.rootcov[self.rkeys[r]] + if any(sum(gq * tq for gq, tq in zip(g, trow(h, pr.trip[i]))) for i in self.bas[n]): bad_root += 1 + # F invertible over Q (a nonzero determinant mod a prime) + F_ok = rank_mod(self.pr.F, Q31) == h + return bad_j, bad_link, bad_root, F_ok + + def cobases(self): + """K_n: independent subset of the root covectors reachable from n, spanning all of them over Q + (selection mod M127, valid by the Hadamard certificate on root covectors).""" + pr, h = self.pr, self.h + rows = [self.rootcov[k] for k in self.rkeys] + mx = max(sum(x * x for x in r) for r in rows); assert mx ** h < M127 ** 2, 'Hadamard bound for K' + key = lambda n: (self.dn[n], n); K = {} + for n in sorted(pr.act, key=key, reverse=True): + cand = sorted(self.droots[n]); srcs = sorted((K[t] for t in self.succ[n]), key=len, reverse=True) + cap = h - self.dn[n] # span(n) <= U_n + if not cand and len(srcs) == 1: K[n] = srcs[0]; continue + E = Echelon(M127); keep = [] + seq = list(srcs[0]) if srcs else [] + for r in seq: E.insert(rows[r]); keep.append(r) # srcs[0] is already independent + for lst in [cand] + srcs[1:]: + for r in lst: + if len(keep) >= cap: break + if E.insert(rows[r]): keep.append(r) + K[n] = tuple(keep) + self.K = K + return K + + def dims(self): + """exact dim of every addition frame M_n.""" + pr, h = self.pr, self.h; F = pr.F; d = dict(self.dn); stats = Counter() + rows = [self.rootcov[k] for k in self.rkeys] + self.KF = {} + for n, j in pr.j.items(): + Fj = F[:j]; K = [rows[r] for r in self.K[n]] + KF = [[sum(a * b for a, b in zip(kr, fr)) for fr in Fj] for kr in K] + SF = [trow(h, pr.trip[i]) for i in self.bas[n]] + Fj + r1 = self._rank(SF, min(len(SF), h), stats, 'SF'); r2 = self._rank(KF, min(len(K), j), stats, 'KF') + d[n] = r1 - r2; self.KF[n] = (r2, KF) + assert self.dn[n] <= d[n] <= h - len(K) + self.d = d + return d, stats + + @staticmethod + def _rank(M, full, stats, tag): + if not M or full == 0: return 0 + r = rank_mod(M, Q31) + if r == full: stats[tag + ' full mod q'] += 1; return r # rank mod q <= rank over Q <= full + if hadamard_ok(M, M521): stats[tag + ' M521'] += 1; return rank_mod(M, M521) + stats[tag + ' Bareiss'] += 1; return rank_exact(M) + + # exact rational bases, used for the late-copy intersections + def exact_basis(self, key): + pr, h = self.pr, self.h + if key[0] in ('out', 'ret'): + return null_exact([self.rootcov[key]], h) + n = key[1] + S = [trow(h, pr.trip[i]) for i in self.bas[n]] + j = pr.j.get(n, 0) + if not j: return S + _, KF = self.KF[n]; F = pr.F[:j] + X = null_exact(KF, j) if KF else [[int(i == t) for t in range(j)] for i in range(j)] + vecs = S + [[sum(c * F[i][q] for i, c in enumerate(x)) for q in range(h)] for x in X] + # independent subset: rows independent mod q are independent over Q; d of them span M_n (dim M_n = d exactly) + E = Echelon(Q31); out = [] + for vv in vecs: + if E.insert(vv): out.append(vv) + assert len(out) == self.d[n], ('exact basis dim', n, len(out), self.d[n]) + return out + + def intersect_exact(self, A, B): + h = self.h + if not A or not B: return [] + # z = (x, y): x A = y B <=> [A; -B]^T z = 0 + M = [[A[i][q] for i in range(len(A))] + [-B[i][q] for i in range(len(B))] for q in range(h)] + Z = null_exact(M, len(A) + len(B)) + # A and B are bases, so z -> x A is injective on the null space: the images are a basis of A cap B + return [[sum(z[i] * A[i][q] for i in range(len(A))) for q in range(h)] for z in Z] + + +def late_frames(fr, pr, users): + """exact dims of every late-copy intersection frame ('c', n, late users).""" + cache = {}; dims = {} + def eb(k): + if k not in cache: cache[k] = fr.exact_basis(k) + return cache[k] + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + for n, (early, lt) in pr.late.items(): + for i in range(len(lt) - 1): + B = eb(ufr(n, lt[-1])) + for k in reversed(lt[i:-1]): B = fr.intersect_exact(eb(ufr(n, k)), B) + dims[('c', n, tuple(lt[i:]))] = len(B) + return dims, cache + + +def chain_steps(chains, dimof, h): + rk = Counter(); steps = {} + for ch in chains: + prev = ch[0]; pd = dimof(prev) + for k in ch[1:]: + dk = dimof(k) + assert dk >= pd, ('decreasing chain', prev, k, pd, dk) + if dk > pd: rk[dk - pd] += 1; steps[prev, k] = dk - pd; prev, pd = k, dk + else: prev = k # equal dims, nested => equal frames + assert pd == h + return rk, steps + + +# ----------------------------------------------------------------------------------------------- E. mod-q frames, side lemma +def point_UV(h, seed): + """the U, V drawn by independent/two-stage-bit/flag_existence.py with this seed (same random stream).""" + CR = 10**6; rng = random.Random(seed) + nz = lambda: rng.choice([-1, 1]) * rng.randint(1, CR) + for b in range(h): + for i in range(h): + for jj in range(h): + if i <= b and jj <= b: nz() + for b in range(h): + for i in range(h): + for jj in range(h): + if i >= b and jj >= b: nz() + U = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] + V = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] + return U, V + + +class ModQ: + def __init__(self, fr, latedims, control=False): + self.fr = fr; self.h = h = fr.h; self.q = q = Q31; self.latedims = latedims + U, V = point_UV(h, 1) + if control: U = [[int(i == k) for k in range(h)] for i in range(h)]; V = [r[:] for r in U] + self.conj = [] + for A in (U, V): + Ai = inv_mod_matrix(A, q); assert Ai is not None + self.conj.append(([list(c) for c in zip(*A)], Ai)) # columns of A, rows of A^-1 + self.inv9 = pow(9, q - 2, q); self.bcache = {}; self.qcache = OrderedDict(); self.cap = 6000 + self.degenerate = 0; self.dimfail = 0 + + def basis(self, key): + if key in self.bcache: return self.bcache[key] + fr, h, q = self.fr, self.h, self.q; pr = fr.pr + if key == ('0',): B = [] + elif key == ('F',): B = [[int(i == t) for t in range(h)] for i in range(h)] + elif key[0] in ('out', 'ret'): B = null_mod([fr.rootcov[key]], h, q) + elif key[0] == 'c': + n, lt = key[1], key[2] + B = None + for k in lt: + u = fr.users[n][k]; kk = ('n', u[1]) if u[0] == 'gate' else root_key(u) + Bk = self.basis(kk) + B = Bk if B is None else self._cap(B, Bk) + if len(B) != self.latedims[key]: self.dimfail += 1 + else: + n = key[1]; S = [trow(h, pr.trip[i]) for i in fr.bas[n]]; j = pr.j.get(n, 0) + E = Echelon(q) + for r in S: E.insert(r) + if j: + r2, KF = fr.KF[n] + if KF and rank_mod(KF, q) != r2: self.dimfail += 1 + X = null_mod(KF, j, q) if KF else [[int(i == t) for t in range(j)] for i in range(j)] + Fj = pr.F[:j] + for x in X: E.insert([sum(c * Fj[i][t] for i, c in enumerate(x)) % q for t in range(h)]) + B = E.rows + if len(B) != fr.d[n]: self.dimfail += 1 + self.bcache[key] = B + return B + + def _cap(self, A, B): + q, h = self.q, self.h + if not A or not B: return [] + M = [[A[i][t] for i in range(len(A))] + [(-B[i][t]) % q for i in range(len(B))] for t in range(h)] + Z = null_mod(M, len(A) + len(B), q); E = Echelon(q) + for z in Z: E.insert([sum(z[i] * A[i][t] for i in range(len(A))) % q for t in range(h)]) + return E.rows + + def gram_inv(self, B): + q = self.q; BG = [[(x - sum(b) * self.inv9) % q for x in b] for b in B] + Gr = [[sum(x * y for x, y in zip(bg, c)) % q for c in B] for bg in BG] + return BG, inv_mod_matrix(Gr, q) + + def nondeg(self, key): + B = self.basis(key) + if not B or len(B) == self.h: return True + return self.gram_inv(B)[1] is not None + + def conjugated(self, key): + """(U^T P U^-T, V^T P V^-T) for the G-orthogonal projector P onto the frame, flattened.""" + if key in self.qcache: self.qcache.move_to_end(key); return self.qcache[key] + h, q = self.h, self.q; B = self.basis(key) + if not B: out = (array('q', [0] * h * h),) * 2 + elif len(B) == h: I = array('q', [int(i == t) for i in range(h) for t in range(h)]); out = (I, I) + else: + BG, Gi = self.gram_inv(B) + if Gi is None: raise ZeroDivisionError(key) + res = [] + for Acols, Ai in self.conj: + LU = [[sum(x * y for x, y in zip(ac, b)) % q for b in B] for ac in Acols] # A^T B^T (h x d) + RU = [[sum(x * y for x, y in zip(bg, ai)) % q for ai in Ai] for bg in BG] # B G A^-T (d x h) + Mi = matmul(Gi, RU, q) + Mt = list(zip(*Mi)) + res.append(array('q', [sum(x * y for x, y in zip(l, c)) % q for l in LU for c in Mt])) + out = tuple(res) + self.qcache[key] = out + if len(self.qcache) > self.cap: self.qcache.popitem(last=False) + return out + + +def side_lemma(mq, steps, h, retained): + q = mq.q; pr_ = predicted(h); E = dict((k, r) for k, r in steps.items() if 2 * r > h) + for c in retained: E[('0',), ('ret', c)] = h - 1 # retained copy edges 0 -> U_c + keys = sorted(E, key=lambda e: (str(e[1]), str(e[0]))) # group by target frame (cache reuse) + bad = 0; n = 0 + for (A, B) in keys: + r = E[A, B]; QA, QB = mq.conjugated(A), mq.conjugated(B) + for t in range(2): + a, b = QA[t], QB[t] + M = [[(b[i * h + c] - a[i * h + c]) % q for c in range(h)] for i in range(h)] + if rightmost_pivots(M, q) != pr_[r]: bad += 1 + n += 1 + if n % 5000 == 0: log(' side lemma %d/%d, failures %d' % (n, len(keys), bad)) + return bad, len(keys) + + +# ----------------------------------------------------------------------------------------------- F. certificate +K_REPO = os.path.normpath(os.path.join(HERE, '..', '..')) +sys.path[:0] = [K_REPO + '/scripts', K_REPO + '/independent/two-stage-bit'] + + +def inner_children(r, h): return [1] * (h - r) + [2 * r - h] if 2 * r > h else [1] * r + + +def rt_histogram(h, R, rk, corner): + """cert_rt.rt_histogram with the data-entrance corner profile 'corner' (round six: [h-2] + [1]*(h+1)).""" + from math import comb + v, m = comb(h, 3), h * h; N = v * v; A = v * R; H = Counter() + assert sum(r * n for r, n in rk.items()) == h * R and sum(corner) == 2 * h - 1 + for _ in range(2): + H[m - 2 * h] += A; H[h] += A + for r, n in rk.items(): + for w in inner_children(r, h): H[w] += v * n + for w in inner_children(h - 1, h): H[w] += v * h + H[m - 4 * h + 2] += 2 * N + for w in corner: H[w] += 2 * N + for _ in range(2): H[h - 2] += 2 * N; H[1] += 2 * N + H[1] += N + W = 2 * N + 2 * A; L = 2 * v * h * (h - 1); s = W * m - N + L + H = {w: c for w, c in H.items() if c} + assert sum(w * c for w, c in H.items()) == s and max(H) <= m - 1 + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=H) + + +def certificate(h, R, rk): + import moment + from certificate_round3 import evaluate + out = {} + for name, corner in (('round6 corner', [h - 2] + [1] * (h + 1)), ('staircase', [h - 2, h - 5] + [1] * 6)): + c = rt_histogram(h, R, rk, corner) + if c['W'] * c['m'] <= c['s']: out[name] = ('no deficit', c['s']); continue + a, root = moment.certify(c) + k = evaluate(a, Fr(36926111, 5 * 10**11), Fr(1, 1000), 'crude', m_c=576, s_c=119453132304) + out[name] = (a, root, c['s'], c['W'], k['kappa'], k['ok']) + return out + + +# ----------------------------------------------------------------------------------------------- main +def main(h, generic=True, control=False): + W = load_witness(h) + pr = Prog(W); log('h=%d: A. DAG semantics OK (%d nodes, %d additions, %d links, %d lifted, %d late)' % ( + h, len(pr.act), sum(1 for n in pr.act if pr.args[n]), len(pr.mL), len(pr.j), len(pr.late))) + bas, dn = spans(pr); users = users_of(pr, dn) + ops, chains, reads, R = compile_(pr, dn, users) + log('B. compiled: R=%d (claimed %d), ops %d, late copies %d' % (R, W['claimed']['R'], len(ops), + sum(len(l) - 1 for _, l in pr.late.values()))) + assert R == W['claimed']['R'] + rng = random.Random(h) + res = {(ring, mir, mid): all(replay(pr, ops, reads, R, ring, rng, mir, mid) for _ in range(2)) + for ring in (2, 0) for mir in (False, True) for mid in (True, False)} + log('C. dirty-scratch replay (F2/Z x word/mirror x midread/endread): %s' % ('ALL OK' if all(res.values()) else res)) + fr = Frames(pr, dn, bas, users) + bj, bl, br, Fok = fr.check_structure() + log('D. nesting facts: j-monotone failures %d, link span failures %d, root containment failures %d, F invertible %s' + % (bj, bl, br, Fok)) + fr.cobases(); log(' co-bases K_n done') + d, st = fr.dims(); log(' lifted frame dims exact: %s' % dict(st)) + nU = sum(1 for n in pr.j if d[n] == h - len(fr.K[n])) + log(' every lifted frame is the largest admissible frame U_n: %s (%d / %d; the flag only switches span -> U_n)' + % (nU == len(pr.j), nU, len(pr.j))) + ld, ecache = late_frames(fr, pr, users); log(' late-copy intersections exact: %d frames' % len(ld)) + def dimof(k): + if k == ('0',): return 0 + if k == ('F',): return h + if k[0] in ('out', 'ret'): return h - 1 + if k[0] == 'c': return ld[k] + return d[k[1]] + rk, steps = chain_steps(chains, dimof, h) + claimed = Counter({int(r): c for r, c in W['claimed']['rk'].items()}) + log(' chain steps: sum of ranks %d = h R %d: %s; histogram equals claim: %s; distinct steps %d (2r>h: %d)' % ( + sum(r * c for r, c in rk.items()), h * R, sum(r * c for r, c in rk.items()) == h * R, rk == claimed, + len(steps), sum(1 for r in steps.values() if 2 * r > h))) + out = dict(h=h, R=R, replay=all(res.values()), struct=(bj, bl, br, Fok), hist_ok=rk == claimed, rk=rk) + if generic: + mq = ModQ(fr, ld, control) + frames_used = {k for e in steps for k in e} | {('ret', c) for c in pr.retained} + nd = sum(1 for k in frames_used if not mq.nondeg(k)) + log('E. frames used %d: G-degenerate %d, reduction dimension mismatches %d' % (len(frames_used), nd, mq.dimfail)) + bad, ne = side_lemma(mq, steps, h, pr.retained) + log(' side lemma at one integer point%s: failures %d over %d distinct high-rank steps x 2 conjugations' % ( + ' (CONTROL U=V=I)' if control else '', bad, ne)) + out.update(degenerate=nd, dimfail=mq.dimfail, side_bad=bad, side_n=ne) + for name, val in certificate(h, R, rk).items(): + if val[0] == 'no deficit': log('F. %s: no deficit at this h (s=%d), certificate n/a' % (name, val[1])); continue + a, root, s, Wr, kap, ok = val + log('F. %s: s=%d W=%d a_b=%s (%.6e, root %.6e) kappa=%s (%.7e) ok=%s' % (name, s, Wr, a, float(a), root, kap, + float(kap), ok)) + out[name] = (a, kap, ok) + return out, pr, dn, users + + + + +# ----------------------------------------------------------------------------------------------- negative controls +def controls(h, nsample=40): + """Each must FAIL (or differ) for the check to have teeth: + (a) one late copy moved to just after its pivot's consumer gate: replay must fail; + (b) one late copy dropped: replay must fail; + (c) pivot chain without intersections (C_i := frame of user i alone): exhibit non-nested consecutive pivot frames; + (d) M_n rebuilt from an independent flag F' on targets strictly between span and U (vacuous for this + witness: every lifted frame equals U_n, so the flag is only a switch and nesting needs no common flag); + (e) side lemma at U = V = I on the first high-rank steps: generic pivots must fail; + (f) no late copies (lifted frames only): histogram must change.""" + W = load_witness(h) + pr = Prog(W); bas, dn = spans(pr); users = users_of(pr, dn); rng = random.Random(7) + key = lambda n: (dn[n], n); linked = {r: x for x, r in pr.mL.items()} + cand = [n for n, (e, lt) in pr.late.items() if users[n][lt[-1]][0] == 'gate'] + fails = 0; tried = 0 + for n in cand[:nsample]: + tamper_node[0] = n; ops, ch, rd, R = compile_(pr, dn, users, tamper='aftercons') + ok = all(replay(pr, ops, rd, R, ring, rng) for ring in (2, 0)); tried += 1; fails += not ok + log('(a) late copy moved after the pivot consumer: replay failed %d / %d (must be all)' % (fails, tried)) + ops, ch, rd, R = compile_(pr, dn, users, tamper='dropcopy') + log('(b) one late copy dropped: replay correct %s (must be False)' % all(replay(pr, ops, rd, R, ring, rng) for ring in (2, 0))) + fr = Frames(pr, dn, bas, users); fr.cobases(); d, _ = fr.dims(); d = dict(d); ld, _ = late_frames(fr, pr, users) + mq = ModQ(fr, ld) + def inside(A, B): + E = Echelon(mq.q) + for r in mq.basis(B): E.insert(r) + return all(E.contains(r) for r in mq.basis(A)) + def ufr(n, k): + u = users[n][k]; return ('n', u[1]) if u[0] == 'gate' else root_key(u) + bad = tot = 0 + for n, (e, lt) in pr.late.items(): + for i in range(len(lt) - 1): + tot += 1; bad += not inside(ufr(n, lt[i]), ufr(n, lt[i + 1])) + log('(c) pivot chain through user frames without intersections: non-nested consecutive frames %d / %d ' + '(the intersections are needed)' % (bad, tot)) + # (d) the common flag is essential: rebuild M_n with an independent flag F' (same j(n)) and test M_n <= M_t + pairs = [(n, t) for n in pr.j for t in fr.succ[n] if pr.j.get(t, 0) > 0 and dn[t] < d[t] < h - len(fr.K[t])] + rng.shuffle(pairs); bad = tot = 0; r2 = random.Random(99) + Fp = [[r2.randint(-50, 50) for _ in range(h)] for _ in range(h)] + for n, t in pairs[:nsample]: + j = pr.j[n]; K = [fr.rootcov[fr.rkeys[r]] for r in fr.K[n]] + KF = [[sum(a * b for a, b in zip(kr, fl)) for fl in Fp[:j]] for kr in K] + if KF and rank_mod(KF, mq.q) != fr._rank(KF, min(len(K), j), Counter(), 'KF'): continue + X = null_mod(KF, j, mq.q) if KF else [[int(i == c) for c in range(j)] for i in range(j)] + E = Echelon(mq.q) + for r in mq.basis(('n', t)): E.insert(r) + vecs = [[sum(c * Fp[i][q] for i, c in enumerate(x)) % mq.q for q in range(h)] for x in X] + tot += 1; bad += not all(E.contains(v) for v in vecs) + log("(d) M_n rebuilt with an independent flag F': M_n not inside M_t on %d / %d lifted successor pairs (targets strictly between span and U)" % (bad, tot)) + ops, chains, reads, R = compile_(pr, dn, users) + fr2 = Frames(pr, dn, bas, users); fr2.cobases(); d2, _ = fr2.dims(); ld2, _ = late_frames(fr2, pr, users) + dimof = lambda k: 0 if k == ('0',) else h if k == ('F',) else h - 1 if k[0] in ('out', 'ret') else ld2[k] if k[0] == 'c' else d2[k[1]] + rk, steps = chain_steps(chains, dimof, h) + mqs = ModQ(fr2, ld2); smp = list(steps); random.Random(5).shuffle(smp); nb = 0 + for A, B in smp[:3000]: + E = Echelon(mqs.q) + for r in mqs.basis(B): E.insert(r) + nb += not all(E.contains(r) for r in mqs.basis(A)) + log('(g) sanity (positive): 3000 sampled chain steps A -> B with A inside B mod q: failures %d' % nb) + mq0 = ModQ(fr2, ld2, control=True); pr_ = predicted(h); hi = [(e, r) for e, r in steps.items() if 2 * r > h][:300] + nb = 0 + for (A, B), r in hi: + QA, QB = mq0.conjugated(A), mq0.conjugated(B) + M = [[(QB[0][i * h + c] - QA[0][i * h + c]) % mq0.q for c in range(h)] for i in range(h)] + nb += rightmost_pivots(M, mq0.q) != pr_[r] + log('(e) side lemma with U = V = I: failures %d / %d (must be most)' % (nb, len(hi))) + ops, chains0, reads, R = compile_(pr, dn, users, late=False) + rk0, _ = chain_steps(chains0, dimof, h) + log('(f) without late copies: histogram differs %s; certificate %s' % (rk0 != rk, {k: v[0] for k, v in certificate(h, R, rk0).items()})) + + +if __name__ == '__main__': + h = int(sys.argv[1]) + if '--controls' in sys.argv: controls(h) + else: + out = main(h, generic='--no-generic' not in sys.argv)[0] + ok = out['replay'] and out['struct'][:3] == (0, 0, 0) and out['struct'][3] and out['hist_ok'] + ok &= out.get('degenerate', 0) == 0 and out.get('dimfail', 0) == 0 and out.get('side_bad', 0) == 0 + ok &= all(v[2] for k, v in out.items() if k in ('round6 corner', 'staircase')) + log('ALL %s' % ('PASS' if ok else 'FAIL')) + sys.exit(0 if ok else 1) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py new file mode 100644 index 0000000000..f45c41cc5f --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_stair.py @@ -0,0 +1,195 @@ +"""Staircase data-entrance corner certificate (stdlib only). + +Sparse flag family + staircase cells: + rows lambda_b = E(b,b) (b < h-1), lambda_{h-1} = al E(h-1,0) + be E(0,h-1); E(RC[t]) (staircase rows) + cols E(CC[t]) (staircase columns); mu_j = a_j E(j,j+1) + b_j E(j+1,j) (j < h-1), mu_{h-1} = E(h-1,h-1) +Checks: + 1. the sparse R_b, C_b are flag-family members (supports, zero diagonal entries) with all trace conditions; + the flag diagonal factors f1..f4 are nonzero on every line at the point (U, V of point(h, 1)) and the inner corners + of the rank-(h-1) data classes are nonzero, so the flag-basis lemmas (lower-triangular corners, side lemma) apply + to this family at the SAME U, V where check_lifted.py verifies the side lemma; + 2. upper bound, identically in all parameters: for every north-east block of the (2h-1)x(2h-1) entrance corner, + rank <= min vertex cut of the rows-terms-cols graph (max flow, cut re-verified); + 3. lower bound at one point: the corner at sampled line pairs has rightmost pivots whose NE rank function equals the + upper bound on every nontrivial block, and is invertible; its runs are (h-2, h-5, 1^6). +So the entrance compiles to m-4h+2 and runs (h-2, h-5, 1^6) on a Zariski-open set (partial-swap lemma). +Negative control (--control): random elementary cells instead of the staircase must NOT certify. +--ij: fixed explicit axis bases U = V = I + J instead of point(h, 1). +Usage: python3 check_stair.py h [npairs] [--control] [--ij]""" +import sys, random +from itertools import combinations +from collections import deque +sys.path.insert(0, __import__('os').path.dirname(__import__('os').path.abspath(__file__))) +from linalg import inv_mod_matrix, rightmost_pivots +from check_lifted import point_UV + +P = 67108859 # the prime of round six's draws (sparse parameters depend on it) +def iv(x): return pow(x % P, P - 2, P) + + +def design(h, kind='stair'): + if kind == 'stair': + RC = [(0, 3)] + [(r + 1, r - 1) for r in range(1, h - 1)] + CC = [(c + 1, c + 3) for c in range(h - 3)] + [(0, h - 3), (0, h - 2)] + return RC, CC + reserved = {(b, b) for b in range(h)} | {(h - 1, 0), (0, h - 1)} + for j in range(h - 1): reserved |= {(j, j + 1), (j + 1, j)} + free = sorted(set((i, j) for i in range(h) for j in range(h)) - reserved) + rng = random.Random(kind); cells = rng.sample(free, 2 * h - 2) + return cells[:h - 1], cells[h - 1:] + + +def structure(h, RC, CC): + rows = [{(b, b)} for b in range(h - 1)] + [{(h - 1, 0), (0, h - 1)}] + [{c} for c in RC] + cols = [{c} for c in CC] + [{(j, j + 1), (j + 1, j)} for j in range(h - 1)] + [{(h - 1, h - 1)}] + for f in rows: + for g in cols: assert not (f & g), 'identity term would not vanish' + assert len(set().union(*rows) | set().union(*cols)) == sum(map(len, rows)) + sum(map(len, cols)), 'cells reused' + terms = [] + for l in range(h): terms.append(({i for i, f in enumerate(rows) if any(c[1] == l for c in f)}, + {j for j, g in enumerate(cols) if any(c[1] == l for c in g)})) + for k in range(h): terms.append(({i for i, f in enumerate(rows) if any(c[0] == k for c in f)}, + {j for j, g in enumerate(cols) if any(c[0] == k for c in g)})) + terms.append((set(range(len(rows))), set(range(len(cols))))) + return rows, cols, terms + + +def cut_bound(rows_, cols_, terms): + T = [(sr & rows_, sc & cols_) for sr, sc in terms] + nodes = [('r', r) for r in rows_] + [('t', t) for t in range(len(T))] + [('c', c) for c in cols_] + idx = {nd: i for i, nd in enumerate(nodes)} + BIG = 10**6; N = 2 * len(nodes) + 2; S_, K_ = N - 2, N - 1; cap = {}; adj = [[] for _ in range(N)] + def add(a, b, c): + if (a, b) not in cap: adj[a].append(b); adj[b].append(a); cap[a, b] = 0; cap.setdefault((b, a), 0) + cap[a, b] += c + for nd, k in idx.items(): add(2 * k, 2 * k + 1, 1) + for r in rows_: add(S_, 2 * idx['r', r], BIG) + for c in cols_: add(2 * idx['c', c] + 1, K_, BIG) + for t, (sr, sc) in enumerate(T): + if not sr or not sc: continue + for r in sr: add(2 * idx['r', r] + 1, 2 * idx['t', t], BIG) + for c in sc: add(2 * idx['t', t] + 1, 2 * idx['c', c], BIG) + flow = 0 + while True: + par = {S_: None}; dq = deque([S_]) + while dq and K_ not in par: + a = dq.popleft() + for b in adj[a]: + if b not in par and cap[a, b] > 0: par[b] = a; dq.append(b) + if K_ not in par: break + b = K_ + while par[b] is not None: a = par[b]; cap[a, b] -= 1; cap[b, a] += 1; b = a + flow += 1 + reach = set(par) + cut = [nd for nd, k in idx.items() if 2 * k in reach and 2 * k + 1 not in reach] + R0 = {x for t_, x in cut if t_ == 'r'}; T0 = {x for t_, x in cut if t_ == 't'}; C0 = {x for t_, x in cut if t_ == 'c'} + assert len(cut) == flow + for t, (sr, sc) in enumerate(T): # the cut is a certificate: every other term is covered + if t in T0: continue + assert not (sr - R0) or not (sc - C0), 'cut misses a term' + return flow + + +def sparse_params(h, rng): + nz = lambda: rng.randrange(1, P) + return dict(al=nz(), be=nz(), a=[nz() for _ in range(h - 1)], b=[nz() for _ in range(h - 1)]) + + +def runs(pc): + pts = sorted((i, c) for i, c in enumerate(pc) if c >= 0); out = []; prev = None + for i, c in pts: + if prev and i == prev[0] + 1 and c == prev[1] + 1: out[-1] += 1 + else: out.append(1) + prev = (i, c) + return out + + +def mv(A, x): return [sum(a * b for a, b in zip(r, x)) % P for r in A] + + +def flag_factors(h, sp, U, V, Ui, Vi): + """check 1: family membership, trace conditions, f1..f4 and inner corners nonzero on every line.""" + R = [[[0] * h for _ in range(h)] for _ in range(h)]; C = [[[0] * h for _ in range(h)] for _ in range(h)] + for b in range(h - 1): R[b][b][b] = 1 + R[h - 1][h - 1][0] = sp['al']; R[h - 1][0][h - 1] = sp['be'] + for j in range(h - 1): C[j][j][j + 1] = sp['a'][j]; C[j][j + 1][j] = sp['b'][j] + C[h - 1][h - 1][h - 1] = 1 + for b in range(h): + assert all(R[b][i][k] == 0 for i in range(h) for k in range(h) if i > b or k > b) + assert all(C[b][i][k] == 0 for i in range(h) for k in range(h) if i < b or k < b) + if b < h - 1: assert C[b][b][b] == 0 + assert R[h - 1][h - 1][h - 1] == 0 + for i in range(h): + for j in range(h): + assert sum(R[i][a][b] * C[j][a][b] for a in range(h) for b in range(h)) % P == 0, 'trace condition' + UT = [list(c) for c in zip(*U)]; VT = [list(c) for c in zip(*V)] + Rrow = [R[k][k] for k in range(h)]; Crow = [C[k][k] for k in range(h)] + Rcol = [[R[k][i][k] for i in range(h)] for k in range(h)]; Ccol = [[C[k][i][k] for i in range(h)] for k in range(h)] + zeros = inner = 0; i9 = iv(9); i2 = iv(2); lines = 0 + for t in combinations(range(h), 3): + tv = [int(q in t) for q in range(h)]; g = [(x - 3 * i9) * i2 % P for x in tv] + a, b, c, d = mv(VT, tv), mv(Vi, g), mv(UT, tv), mv(Ui, g) + for M, x in ((Rrow, a), (Crow, b), (Rcol, c), (Ccol, d)): + zeros += sum(1 for v in mv(M, x) if v == 0) + inner += (c[0] * d[h - 1] % P == 0) + (a[0] * b[h - 1] % P == 0); lines += 1 + return lines, zeros, inner + + +def corner_at(h, rows, cols, p, xi, v, nu): + """rows . (q1 (x) q2) . cols, (q1 (x) q2) vec G = vec(q1 G q2^T), q1 = I - p xi^T, q2 = I - v nu^T.""" + q1 = [[(int(i == k) - p[i] * xi[k]) % P for k in range(h)] for i in range(h)] + q2 = [[(int(i == k) - v[i] * nu[k]) % P for k in range(h)] for i in range(h)] + out = [[0] * len(cols) for _ in rows] + for j, col in enumerate(cols): + G = [[0] * h for _ in range(h)] + for (a, b), val in col.items(): G[a][b] = val % P + qG = [[sum(q1[i][k] * G[k][l] for k in range(h)) % P for l in range(h)] for i in range(h)] + Y = [[sum(qG[i][l] * q2[k][l] for l in range(h)) % P for k in range(h)] for i in range(h)] + for i, row in enumerate(rows): + out[i][j] = sum(val * Y[a][b] for (a, b), val in row.items()) % P + return out + + +def main(h, npairs=20, kind='stair', seed=1, ij=False): + RC, CC = design(h, kind); n = 2 * h - 1 + _, _, terms = structure(h, RC, CC) + U, V = point_UV(h, seed) + if ij: U = [[1 + int(i == k) for k in range(h)] for i in range(h)]; V = [r[:] for r in U] # fixed U = V = I + J + U = [[x % P for x in r] for r in U]; V = [[x % P for x in r] for r in V] + Ui, Vi = inv_mod_matrix(U, P), inv_mod_matrix(V, P) + sp = sparse_params(h, random.Random(1000 + seed)) + lines, zeros, inner = flag_factors(h, sp, U, V, Ui, Vi) + print('1. sparse flag family: trace conditions OK; f1..f4 zeros %d over %d lines x %d rows; inner-corner zeros %d' + % (zeros, lines, h, inner), flush=True) + rows = [{(b, b): 1} for b in range(h - 1)] + [{(h - 1, 0): sp['al'], (0, h - 1): sp['be']}] + [{c: 1} for c in RC] + cols = [{c: 1} for c in CC] + [{(j, j + 1): sp['a'][j], (j + 1, j): sp['b'][j]} for j in range(h - 1)] + [{(h - 1, h - 1): 1}] + trip = list(combinations(range(h), 3)); prng = random.Random(seed + 7); UT = [list(c) for c in zip(*U)]; VT = [list(c) for c in zip(*V)] + i9 = iv(9); i2 = iv(2); pats = {} + def line(t, AT, Ai): + tv = [int(i in t) for i in range(h)]; g = [(x - 3 * i9) * i2 % P for x in tv] + return mv(AT, tv), mv(Ai, g) + for _ in range(npairs): + t1, t2 = prng.choice(trip), prng.choice(trip) + p, xi = line(t1, UT, Ui); v, nu = line(t2, VT, Vi) + pc = tuple(rightmost_pivots(corner_at(h, rows, cols, p, xi, v, nu), P)); pats[pc] = pats.get(pc, 0) + 1 + pc = list(max(pats, key=pats.get)) + rho = [[sum(1 for r in range(i + 1) if pc[r] >= j) for j in range(n)] for i in range(n)] + certs = above = 0 + for i in range(n): + for j in range(n): + if rho[i][j] == min(i + 1, n - j): continue + ub = cut_bound(set(range(i + 1)), set(range(j, n)), terms); certs += 1 + assert ub >= rho[i][j] + above += ub > rho[i][j] + ok = above == 0 and -1 not in pc and len(pats) == 1 and zeros == 0 and inner == 0 + print('2-3. %d pairs, distinct pivot patterns %d; runs %s invertible %s; nontrivial NE blocks %d, symbolic bound ' + 'above evaluated rank on %d' % (npairs, len(pats), runs(pc), -1 not in pc, certs, above), flush=True) + print('RESULT h=%d kind=%s runs=%s certified=%s' % (h, kind, sorted(runs(pc), reverse=True), ok), flush=True) + return ok, sorted(runs(pc), reverse=True) + + +if __name__ == '__main__': + h = int(sys.argv[1]); npairs = int(sys.argv[2]) if len(sys.argv) > 2 and sys.argv[2].isdigit() else 20 + ok, _ = main(h, npairs, 'rand1' if '--control' in sys.argv else 'stair', ij='--ij' in sys.argv) + sys.exit(0 if ok or '--control' in sys.argv else 1) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py new file mode 100644 index 0000000000..674571e004 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/check_word.py @@ -0,0 +1,194 @@ +"""Round-seven check, part 1 (stdlib only): the reordered stage-1 word, as scalars. No frames are used here. + +From certificates/round7/{witness,deferred}_23.json.gz: + A. side DAG from the definitions (disjoint additions, out(c,T) = {S : S cap T = {c}}, retained(c) = star(c)); + the schedule computes it: replaying the ops symbolically, every addition reads its two operands from the two slots + it names, a linked operand stays on the non-pivot slot, every addition runs once, the node lists of every slot + follow the replay, copies start where their source is, and every output / retained slot ends holding its node; + B. garbage coefficients of every slot (the transpose sweep of L applied to the root reads), over Z and over F2; + C. phase 1 = the ops that must precede the retained-total completions under per-slot sequence precedence; no + deferred slot is read or written in phase 1, the retained slots complete in phase 1 and are not touched again, + every V gate precedes its slot's first touch by L; the release rule: deferred readouts in increasing dim sigma_u, + deferred V gates in increasing dim s_i, each X_S ordered as its early V gates then its deferred V gates; + D. the stage-1 word of B-defer with V leaves, every event placed in time: + readouts of the non-deferred slots (at 0), the early V gates, phase 1 of L, the centre copies read every target + containing their centre, the deferred readouts in order, the deferred V gates, the rest of L, the output reads, + L^-1, V^-1; + replayed with arbitrary scratch and data over F2 and over Z (exact integer readout coefficients): every slot is + restored and every target receives its definition sum (over F2 exactly x_T); negative controls must break it. +Usage: python3 check_word.py [h]""" +import sys, os, random, time +from collections import defaultdict +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import deferred as dr + +T0 = time.time() +def log(*a): print('[%5.0fs]' % (time.time() - T0), *a, flush=True) +OK = {} +def report(name, ok): + OK[name] = bool(ok); log('%-100s %s' % (name, 'PASS' if ok else 'FAIL')) + + +def main(h=23): + W, D = dr.load(h); S = dr.Schedule(W, D) + trip, v, R, tid, ops, args = S.trip, S.v, S.R, S.tid, S.ops, S.args + act = sorted(args) + # ------------------------------------------------------------------ A. DAG and schedule semantics + star = [sum(1 << i for i, T in enumerate(trip) if q in T) for q in range(h)] + sup = {}; okA = True + for n in act: + if args[n] is None: okA &= 1 <= n <= v and tuple(W['leaf'][str(n)]) == trip[n - 1]; sup[n] = 1 << (n - 1) + else: + a, b = args[n]; okA &= a < n and b < n and not (sup[a] & sup[b]); sup[n] = sup[a] | sup[b] + outputs = {(c, tuple(T)): n for c, T, n in W['outputs']}; retained = {c: n for c, n in W['retained']} + for (c, T), n in outputs.items(): + A_, B_ = [q for q in T if q != c] + okA &= c in T and sup[n] == star[c] & ~star[A_] & ~star[B_] + okA &= len(outputs) == 3 * v and sorted(retained) == list(range(h)) and all(sup[n] == star[c] for c, n in retained.items()) + report('A. disjoint additions; out(c,T) = {S: S cap T = {c}}; retained(c) = star(c) (%d outputs, %d totals)' % ( + len(outputs), len(retained)), okA) + mL = {x: (y, k) for x, y, k in W['links']} + val = {}; pos = [0] * R; seen = set(); okS = True; started = set() + for op in ops: + if op[0] == 'src': + s, n = op[1], op[2]; okS &= s not in started and args[n] is None and S.hold[s][0] == n + val[s] = n; started.add(s) + elif op[0] == 'fan': + p = op[1]; okS &= p in started + for g in op[2]: + okS &= g not in started and S.hold[g][0] == val[p] and S.start[g][0] == 'fresh' and S.start[g][1] == val[p] + val[g] = val[p]; started.add(g) + else: + _, p, o, n = op; okS &= n not in seen and args[n] is not None and p in started and o in started; seen.add(n) + okS &= (val[p], val[o]) in (args[n], args[n][::-1]) + if n in mL: okS &= mL[n][0] == val[o] # the linked operand stays on the non-pivot + for s_ in (p, o): # both wires pass the gate of n + okS &= pos[s_] + 1 < len(S.hold[s_]) and S.hold[s_][pos[s_] + 1] == n; pos[s_] += 1 + val[p] = n + okS &= seen == {n for n in act if args[n] is not None} and len(started) == R + okS &= all(pos[s] == len(S.hold[s]) - 1 for s in range(R)) + okS &= all(val[s] == outputs[cT] for s, cT in S.out.items()) and all(val[s] == retained[c] for s, c in S.ret.items()) + okS &= sorted(S.out.values()) == sorted(outputs) and sorted(S.ret.values()) == list(range(h)) + okS &= R == len(seen) + len(outputs) + len(retained) - len(mL) + report('A. schedule computes the DAG: %d ops, R = adds + outputs + totals - links = %d, node lists follow the replay' % ( + len(ops), R), okS) + + # ------------------------------------------------------------------ B. coefficients + CZ = S.adjoint(); CF = [{t: 1 for t, x in d.items() if x % 2} for d in CZ] + report('B. garbage coefficients by the transpose sweep: %d nonzero over Z, %d odd' % ( + sum(len(d) for d in CZ), sum(len(d) for d in CF)), all(x > 0 for d in CZ for x in d.values())) + + # ------------------------------------------------------------------ C. phase 1 and the release rule + prev = {}; pred = defaultdict(list); first = {}; last = {} + for i, op in enumerate(ops): + for s in S.touch(op): + if s in prev: pred[i].append(prev[s]) + prev[s] = i; first.setdefault(s, i); last[s] = i + Anc = set(); st = [last[s] for s in S.ret] + while st: + i = st.pop() + if i in Anc: continue + Anc.add(i); st.extend(pred[i]) + sel = S.sel; srcop = S.srcop + srcidx = {o[1]: i for i, o in enumerate(ops) if o[0] == 'src'} + okC = not any(set(S.touch(ops[i])) & sel for i in Anc) + okC &= all(last[s] in Anc for s in S.ret) + okC &= all(s not in first or srcidx[s] < first[s] for s in srcop) + report('C. deferred slots (%d, %d of them V leaves) untouched by phase 1 (%d of %d ops); totals complete in phase 1' % ( + len(sel), len(sel & set(srcop)), len(Anc), len(ops)), okC) + dimv = {s: len(B) for s, B in S.vstart.items()} + late_V = [s for s in S.late_v]; early = set(srcop) - sel + okR = S.readout == sorted(sel, key=lambda s: (S.f[s], s)) and all(S.f[s] > 0 for s in sel) + okR &= set(late_V) == sel & set(srcop) and late_V == sorted(late_V, key=lambda s: (dimv[s], s)) + posl = {s: i for i, s in enumerate(late_V)}; okX = True; leaves = defaultdict(list) + for s, n in srcop.items(): leaves[n].append(s) + okX &= sorted(n for n, _ in S.xs) == sorted(leaves) + for n, us in S.xs: + e = sorted((s for s in leaves[n] if s in early), key=lambda s: (dimv[s], s)) + l = sorted((s for s in leaves[n] if s in sel), key=lambda s: posl[s]) + okX &= us == e + l + report('C. release rule: readouts by dim sigma_u, deferred V gates by dim s_i, X_S = early then deferred V gates', okR and okX) + + # ------------------------------------------------------------------ D. the word + ph1 = [i for i in range(len(ops)) if i in Anc and ops[i][0] != 'src'] + rest = [i for i in range(len(ops)) if i not in Anc and ops[i][0] != 'src'] + early_V = sorted(early, key=lambda s: (srcop[s], dimv[s], s)) + def expected(x): + want = [0] * v + for (c, T), n in outputs.items(): + A_, B_ = [q for q in T if q != c] + want[tid[T]] += sum(x[i] for i, Sx in enumerate(trip) if c in Sx and A_ not in Sx and B_ not in Sx) + for c in range(h): + tot = sum(x[i] for i, Sx in enumerate(trip) if c in Sx) + for t, T in enumerate(trip): + if c in T: want[t] += tot + return want + selist = S.readout + def word(ring, rng, ctl=None): + mod = (lambda z: z & 1) if ring == 2 else (lambda z: z) + co = CF if ring == 2 or ctl == 'f2coef_in_Z' else CZ + x = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a0 = [rng.randrange(-10**6, 10**6) for _ in range(R)]; y0 = [rng.randrange(-10**6, 10**6) for _ in range(v)] + a = list(a0); y = list(y0) + drop = selist[len(selist) // 2] if ctl == 'drop' else None + def readout(s): + for t, c in co[s].items(): + if s == drop and t == min(co[s]): continue + y[t] -= c * a[s] + def runop(i): + op = ops[i] + if op[0] == 'add': a[op[1]] += a[op[2]] + elif op[0] == 'fan': + for g in op[2]: a[g] += a[op[1]] + late_slot = early_slot = None + if ctl == 'late_readout': # one deferred slot reads out right after its first modifying touch + late_slot = next(s for s in selist if ops[first[s]][0] == 'fan' and s in ops[first[s]][2] or + ops[first[s]][0] == 'add' and ops[first[s]][1] == s) + if ctl == 'phase1_slot': # a slot modified in phase 1 treated as deferred + early_slot = next(s for s in range(R) if s not in sel and s not in srcop and any( + (ops[i][0] == 'add' and ops[i][1] == s) or (ops[i][0] == 'fan' and s in ops[i][2]) for i in ph1)) + for s in range(R): + if s not in sel and s != early_slot: readout(s) + for s in early_V: a[s] += x[srcop[s] - 1] + if ctl == 'V_before_readout': a[late_V[0]] += x[srcop[late_V[0]] - 1] + done = [] + for i in ph1: runop(i); done.append(i) + for s, c in S.ret.items(): # centre copies: the totals are complete; read every T with c in T + for t, T in enumerate(trip): + if c in T: y[t] += a[s] + if early_slot is not None: readout(early_slot) + for s in selist: + if s != late_slot: readout(s) + for s in late_V: + if not (ctl == 'V_before_readout' and s == late_V[0]): a[s] += x[srcop[s] - 1] + for i in rest: + runop(i); done.append(i) + if late_slot is not None and i == first[late_slot]: readout(late_slot) + for s, (c, T) in S.out.items(): y[tid[T]] += a[s] + for i in reversed(done): + op = ops[i] + if op[0] == 'add': a[op[1]] -= a[op[2]] + elif op[0] == 'fan': + for g in op[2]: a[g] -= a[op[1]] + for s, n in srcop.items(): a[s] -= x[n - 1] + if any(mod(p - q) for p, q in zip(a, a0)): return False + want = expected(x) + if any(mod(y[t] - y0[t] - want[t]) for t in range(v)): return False + if ring == 2 and any(mod(y[t] - y0[t] - x[t]) for t in range(v)): return False + return True + rng = random.Random(20261009) + report('D. scalar identity over F2 (3 random scratch/data): scratch restored, y_T += x_T and == definition sums', + all(word(2, rng) for _ in range(3))) + report('D. scalar identity over Z, exact integer readout coefficients', word(0, rng)) + for ctl in ('drop', 'late_readout', 'V_before_readout', 'phase1_slot'): + # one F2 trial can miss a fault whose error term is even, so 8 trials (any failure = broken) + report('D. NEG control %-18s breaks the identity (F2, 8 trials; and Z)' % ctl, + not all(word(2, rng, ctl) for _ in range(8)) and not word(0, rng, ctl)) + report('D. NEG control F2 coefficients used over Z break the Z identity', not word(0, rng, 'f2coef_in_Z')) + log('ALL %s' % ('PASS' if all(OK.values()) else 'FAIL: ' + str([k for k, x in OK.items() if not x]))) + return all(OK.values()) + + +if __name__ == '__main__': + sys.exit(0 if main(int(sys.argv[1]) if len(sys.argv) > 1 else 23) else 1) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py new file mode 100644 index 0000000000..d045126217 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/deferred.py @@ -0,0 +1,189 @@ +"""Shared reader and accounting for the round-seven bit side (stdlib only). + +Frozen inputs (certificates/round7/): + witness_23.json.gz the base side program: DAG (leaves = triples of [h], additions), outputs (c, T), retained + totals, links, the flag matrix, the lift index j(n) of every lifted addition and the late-copy + decisions; checked by check_lifted.py; + deferred_23.json.gz the reordered stage-1 word: the slot schedule (ops, the node held by every slot over time, + slot starts, output and retained slots), the deferred readout frames sigma_u, the V-leaf start + frames s_i (both as primitive integer bases), the readout order, the X_S order of every leaf, + the order of the deferred V gates, and the dimension of every node frame and late-copy + intersection (re-derived exactly by check_frames.py). + +Ops: ['add', piv, oth, n] a[piv] += a[oth], the addition of node n; ['fan', piv, [f...]] a[f] += a[piv] for fresh +slots f (copies); ['src', s, n] the V gate a[s] += x_S of leaf n (applied outside L, see check_word.py).""" +import gzip, json, os +from collections import Counter, defaultdict +from itertools import combinations +from math import comb + +HERE = os.path.dirname(os.path.abspath(__file__)) +ROOT = os.path.normpath(os.path.join(HERE, '..', '..')) +DATA = os.path.join(ROOT, 'certificates', 'round7') + + +def load_json(name): + with gzip.open(os.path.join(DATA, name), 'rt') as fh: + return json.load(fh) + + +def load(h=23, witness=None, data=None): + """the base witness and the design-B data of one round-seven witness (default: the files of h).""" + W = load_json(witness or 'witness_%d.json.gz' % h); D = load_json(data or 'deferred_%d.json.gz' % h) + assert W['h'] == D['h'] == h + return W, D + + +class Schedule: + """The design-B schedule in convenient form.""" + def __init__(self, W, D): + self.h = h = D['h']; self.R = D['R']; self.trip = list(combinations(range(h), 3)); self.v = len(self.trip) + self.tid = {T: i for i, T in enumerate(self.trip)} + self.args = {int(n): (tuple(a) if a else None) for n, a in W['args'].items()} + self.ops = [tuple(o[:2]) + (tuple(o[2]),) if o[0] == 'fan' else tuple(o) for o in D['ops']] + self.hold = D['hold']; self.start = D['start'] + self.out = {s: (c, tuple(T)) for s, c, T in D['out']} + self.ret = {s: c for s, c in D['ret']} + self.srcop = {o[1]: o[2] for o in self.ops if o[0] == 'src'} + self.readout = D['readout_order']; self.sel = set(self.readout) + self.sigma = dict(zip(D['readout_order'], D['sigma'])) + self.f = [0] * self.R + for s, B in self.sigma.items(): self.f[s] = len(B) + self.vstart = dict(zip(D['vleaf_slots'], D['vleaf_start'])) + self.xs = [(n, us) for n, us in D['xs_order']] + self.late_v = D['deferred_v_order'] + self.node_dims = {n: d for n, d in D['node_dims']} + self.late_dims = {(n, tuple(lt)): d for n, lt, d in D['late_dims']} + self.late = {int(n): (list(e), list(l)) for n, (e, l) in W['late'].items()} + self.pivslot = {o[3]: o[1] for o in self.ops if o[0] == 'add'} + + def touch(self, op): + if op[0] == 'add': return [op[1], op[2]] + if op[0] == 'fan': return [op[1]] + list(op[2]) + return [] + + def root_targets(self): + rt = {} + for s, (c, T) in self.out.items(): rt[s] = [self.tid[T]] + for s, c in self.ret.items(): rt[s] = [t for t, T in enumerate(self.trip) if c in T] + return rt + + def adjoint(self): + """garbage coefficients over Z: cov[s][t] = coefficient of slot s's start value in target y_T at the end of L + (the transpose sweep of L applied to the root reads); the F2 circuit uses their parities.""" + cov = [dict() for _ in range(self.R)] + for s, ts in self.root_targets().items(): + for t in ts: cov[s][t] = cov[s].get(t, 0) + 1 + def addto(d, e): + for t, x in e.items(): d[t] = d.get(t, 0) + x + for op in reversed(self.ops): + if op[0] == 'add': addto(cov[op[2]], cov[op[1]]) + elif op[0] == 'fan': + for g in op[2]: addto(cov[op[1]], cov[g]) + return cov + + # ------------------------------------------------------------------ frame keys of every slot's chain + def start_key(self, s): + """('v', s) for a V-leaf slot (start s_i), ('n', n0) for a base or early copy, ('c', n0, late suffix).""" + n0 = self.hold[s][0] + if self.args[n0] is None: return ('v', s) + st = self.start[s]; k = st[2]; dec = self.late.get(n0) + if dec is None or k in dec[0]: return ('n', n0) + lt = dec[1]; return ('c', n0, tuple(lt[lt.index(k):])) + + def chain_keys(self, s): + """frames of slot s in time order: [sigma_u | 0], start, then every later node it holds (with the pivot's + late-copy intersections after a node it pivots), its root frame if any, F.""" + ch = [('sigma', s) if s in self.sel else ('0',), self.start_key(s)] + for idx, n in enumerate(self.hold[s]): + if idx > 0: ch.append(('n', n)) + if self.args[n] is not None and self.pivslot.get(n) == s and n in self.late: + lt = self.late[n][1] + for i in range(len(lt) - 1): ch.append(('c', n, tuple(lt[i:]))) + if s in self.out: c, T = self.out[s]; ch.append(('out', c, T)) + if s in self.ret: ch.append(('ret', self.ret[s])) + ch.append(('F',)); return ch + + def dim(self, key): + k = key[0] + if k == '0': return 0 + if k == 'F': return self.h + if k in ('out', 'ret'): return self.h - 1 + if k == 'n': return self.node_dims[key[1]] + if k == 'c': return self.late_dims[key[1], key[2]] + if k == 'sigma': return len(self.sigma[key[1]]) + if k == 'v': return len(self.vstart[key[1]]) + raise KeyError(key) + + def ylevels(self, cov): + """deferred readout levels (dim sigma) on every target, from the garbage-coefficient supports.""" + lev = defaultdict(set) + for s in self.readout: + for t in cov[s]: lev[t].add(self.f[s]) + return {t: sorted(lev[t]) for t in range(self.v)} + + def xdata(self, dimof=None): + dimof = dimof or (lambda s: len(self.vstart[s])) + out = [] + for n, us in self.xs: + ds = [1] + [dimof(s) for s in us] + [self.h] + ds = [d for i, d in enumerate(ds) if i == 0 or d != ds[i - 1]] + out.append([b - a for a, b in zip(ds, ds[1:])]) + return out + + +def inner(r, h): + """children of a rank-r chain step under the inner-corner lemma (one block of width 2r-h when 2r > h).""" + return [1] * (h - r) + [2 * r - h] if 2 * r > h else [1] * r + + +def chain_ranks(S, dimof=None): + """multiset of chain-step ranks over all slots (dims must be monotone along every chain).""" + dimof = dimof or S.dim; rk = Counter() + for s in range(S.R): + ds = [dimof(k) for k in S.chain_keys(s)] + assert all(b >= a for a, b in zip(ds, ds[1:])), ('decreasing chain', s) + assert ds[-1] == S.h + for a, b in zip(ds, ds[1:]): + if b > a: rk[b - a] += 1 + return rk + + +ROUND6_CORNER = lambda h: [h - 2] + [1] * (h + 1) # data-entrance corner runs, rounds six and seven +STAIRCASE_CORNER = lambda h: [h - 2, h - 5] + [1] * 6 # staircase corner (check_stair.py) + + +def histogram(S, rk, ylev, xdata, corner=None): + """child-width histogram of the batched two-stage bit interchange with deferred readouts and V leaves. + Per stage (stage two is the complement time-reversal of stage one, same edge multiset), each of the v invocations: + every slot u: its auxiliary edge of rank m - r_u (block m - 2 r_u) and its corner of rank r_u = h - dim sigma_u, + both batched by the inner lemma, plus its chain steps; + every centre: the copy's step U_c -> 0 of rank h-1; + every target y_T: the chain 0 -> deferred levels -> t_T^perp (total rank h-1); + every leaf X_S: its chain -> V-gate frames -> F (total rank h-1). + Data: the entrance block m-4h+2 with its corner runs, one copy-correction singleton per pair.""" + h, v, R = S.h, S.v, S.R; m = h * h; N = v * v; A = v * R; H = Counter() + corner = corner or ROUND6_CORNER(h); assert sum(corner) == 2 * h - 1 + corners = Counter(h - S.f[s] for s in range(R)) + for _ in range(2): + for r, c in corners.items(): + H[m - 2 * r] += v * c + for w in inner(r, h): H[w] += v * c + for r, c in rk.items(): + for w in inner(r, h): H[w] += v * c + for _c in range(h): + for w in inner(h - 1, h): H[w] += v + for t in range(v): + ds = sorted(set([0] + ylev[t] + [h - 1])) + for a, b in zip(ds, ds[1:]): + for w in inner(b - a, h): H[w] += v + for xs in xdata: + for x in xs: + for w in inner(x, h): H[w] += v + H[m - 4 * h + 2] += 2 * N + for w in corner: H[w] += 2 * N + H[1] += N + H = {w: c for w, c in H.items() if c} + Wd = 2 * N + 2 * A; L = 2 * v * h * (h - 1); s = Wd * m - N + L + return dict(h=h, m=m, v=v, N=N, W=Wd, L=L, s=s, R=R, hist=H) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py new file mode 100644 index 0000000000..06f57742ce --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/deferred-readout/linalg.py @@ -0,0 +1,177 @@ +"""Stdlib exact linear algebra used by the release checks (no numpy). + +Ranks over Q are computed in one of two rigorous ways: + * modulo a prime p with a Hadamard certificate: if every row of an integer matrix has squared norm n_i and + prod_i max(1, n_i) < p^2, every minor has absolute value < p, so a minor is nonzero over Q iff it is nonzero + mod p, and the rank mod p equals the rank over Q (hadamard_ok); + * exactly, by fraction-free (Bareiss) elimination over Z (rank_exact) or Fraction elimination (null_exact). +Everything else is plain arithmetic modulo a prime.""" +from fractions import Fraction +from math import gcd + +Q31 = 2**31 - 1 # prime used for the point evaluation and frame reductions +M127 = 2**127 - 1 # Mersenne prime +M521 = 2**521 - 1 # Mersenne prime + + +def hadamard_ok(rows, p): + """True if prod of max(1, |row|^2) < p^2, i.e. every minor of the integer matrix is below p in absolute value.""" + b = 1; p2 = p * p + for r in rows: + b *= max(1, sum(x * x for x in r)) + if b >= p2: return False + return True + + +class Echelon: + """Row echelon basis mod p, built by insertion. Each stored row has a pivot (first nonzero, normalised to 1) + and zeros in the pivot columns of all earlier rows, so reducing a new row against the rows in order is exact.""" + __slots__ = ('p', 'rows', 'piv') + + def __init__(self, p): + self.p = p; self.rows = []; self.piv = [] + + def reduce(self, r): + p = self.p; r = [x % p for x in r] + for pc, b in zip(self.piv, self.rows): + c = r[pc] + if c: r = [(x - c * y) % p for x, y in zip(r, b)] + return r + + def insert(self, r): + """insert row; returns True if it was independent.""" + r = self.reduce(r) + for i, x in enumerate(r): + if x: + inv = pow(x, self.p - 2, self.p) + self.rows.append([(y * inv) % self.p for y in r]); self.piv.append(i); return True + return False + + def contains(self, r): + return not any(self.reduce(r)) + + def __len__(self): return len(self.rows) + + +def rank_mod(rows, p): + E = Echelon(p) + for r in rows: E.insert(r) + return len(E) + + +def rank_exact(rows): + """exact rank over Q of an integer matrix (Bareiss fraction-free elimination).""" + M = [list(r) for r in rows if any(r)] + if not M: return 0 + n = len(M); k = len(M[0]); r = 0; prev = 1 + for c in range(k): + i = next((i for i in range(r, n) if M[i][c]), None) + if i is None: continue + M[r], M[i] = M[i], M[r] + pr = M[r]; a = pr[c] + for t in range(r + 1, n): + row = M[t]; b = row[c] + M[t] = [(a * x - b * y) // prev for x, y in zip(row, pr)] + prev = a; r += 1 + if r == n: break + return r + + +def null_mod(A, k, p): + """basis of {x in F_p^k : A x = 0} (A: list of rows of length k).""" + rows = [[x % p for x in r] for r in A]; piv = []; R = [] + for r in rows: + for pc, b in zip(piv, R): + c = r[pc] + if c: r = [(x - c * y) % p for x, y in zip(r, b)] + i = next((i for i, x in enumerate(r) if x), None) + if i is None: continue + inv = pow(r[i], p - 2, p); r = [(y * inv) % p for y in r] + R = [[(x - b[i] * y) % p for x, y in zip(b, r)] if b[i] else b for b in R] # keep fully reduced + R.append(r); piv.append(i) + free = [c for c in range(k) if c not in piv]; out = [] + for f in free: + x = [0] * k; x[f] = 1 + for pc, b in zip(piv, R): x[pc] = (-b[f]) % p + out.append(x) + return out + + +def null_exact(A, k): + """basis (integer vectors) of {x in Q^k : A x = 0}, by Fraction reduced row echelon form.""" + R = []; piv = [] + for r0 in A: + r = [Fraction(x) for x in r0] + for pc, b in zip(piv, R): + c = r[pc] + if c: r = [x - c * y for x, y in zip(r, b)] + i = next((i for i, x in enumerate(r) if x), None) + if i is None: continue + inv = 1 / r[i]; r = [y * inv for y in r] + R = [[x - b[i] * y for x, y in zip(b, r)] if b[i] else b for b in R] + R.append(r); piv.append(i) + free = [c for c in range(k) if c not in piv]; out = [] + for f in free: + x = [Fraction(0)] * k; x[f] = Fraction(1) + for pc, b in zip(piv, R): x[pc] = -b[f] + out.append(primitive(x)) + return out + + +def primitive(x): + """scale a rational vector to a primitive integer vector.""" + den = 1 + for v in x: den = den * v.denominator // gcd(den, v.denominator) + y = [int(v * den) for v in x]; g = 0 + for v in y: g = gcd(g, v) + return [v // g for v in y] if g else y + + +def inv_mod_matrix(A, p): + """inverse of a square matrix mod p, or None if singular.""" + n = len(A); M = [[x % p for x in A[i]] + [int(i == j) for j in range(n)] for i in range(n)] + for c in range(n): + i = next((i for i in range(c, n) if M[i][c]), None) + if i is None: return None + M[c], M[i] = M[i], M[c] + inv = pow(M[c][c], p - 2, p); M[c] = [(x * inv) % p for x in M[c]] + rc = M[c] + for t in range(n): + if t != c and M[t][c]: + f = M[t][c]; M[t] = [(x - f * y) % p for x, y in zip(M[t], rc)] + return [r[n:] for r in M] + + +def matmul(A, B, p): + Bt = list(zip(*B)) + return [[sum(x * y for x, y in zip(r, c)) % p for c in Bt] for r in A] + + +def rightmost_pivots(Q, p): + """rows top to bottom: the rightmost nonzero column of the reduced row, then eliminate it below.""" + M = [list(r) for r in Q]; n = len(M); out = [-1] * n + for i in range(n): + row = M[i]; c = next((j for j in range(len(row) - 1, -1, -1) if row[j]), -1) + out[i] = c + if c < 0: continue + inv = pow(row[c], p - 2, p) + for t in range(i + 1, n): + f = M[t][c] + if f: + f = f * inv % p; M[t] = [(x - f * y) % p for x, y in zip(M[t], row)] + return out + + +def predicted(h): + """pivot column per row of the generic north-east rank function f_r of a rank-r idempotent.""" + pr = {} + for r in range(1, h + 1): + s = h - r + f = lambda i, j: 0 if i < 0 or j >= h else min(i + 1, h - j, r, max(0, i - j + 1) + s) + pc = [-1] * h + for i in range(h): + for j in range(h): + if f(i, j) - f(i - 1, j) - f(i, j + 1) + f(i - 1, j + 1) == 1: pc[i] = j + pr[r] = pc + return pr + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py new file mode 100644 index 0000000000..ecea8d0d82 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/bruhat8.py @@ -0,0 +1,18 @@ +"""Exact Bruhat profile of S_p for data stage-2 entrance projectors p = Q_a1 (x) Q_a2 at h=8 after one S0.""" +import sys, random +sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) +from fractions import Fraction as Q +from factor import inv, mul, bruhat, swapmat, predicted +import corners as C +h = 8; m = h*h; trip, G, I, P, Qc = C.setup(h); v = len(trip); rng = random.Random(5) +Lw = [[Q(rng.randint(-2, 2)) if j < i else Q(int(i == j)) for j in range(m)] for i in range(m)] +Up = [[Q(rng.randint(-2, 2)) if j > i else Q(int(i == j)) for j in range(m)] for i in range(m)] +S = mul(Lw, Up); Si = inv(S); ok = 0; n = int(sys.argv[1]) +for _ in range(n): + a1, a2 = rng.randrange(v), rng.randrange(v); p = mul(mul(S, C.kron(Qc[a1], Qc[a2])), Si); k = 2*h-1 + piv, L1, Mon, L2 = bruhat(swapmat(p)); assert mul(mul(L1, Mon), L2) == swapmat(p) + cp, *_ = bruhat([r[m-k:] for r in p[:k]], track=False) + good = piv == predicted({l: m-k+cp[l] for l in range(k)}, m, k); ok += good + print('pair', a1, a2, 'profile ok', good, flush=True) +print('h=8 data entrance exact Bruhat profile matches lemma: %d/%d' % (ok, n)) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py new file mode 100644 index 0000000000..b786883abd --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/corners.py @@ -0,0 +1,109 @@ +"""Independent corner check for the selected partial-swap projectors of the two-stage bit motif. +Closed forms (G = I - J/9, P_a = G-orthogonal projector on t_a, Q_a = I - P_a): + aux s1 exit / s2 entrance : I(x)Q_a , Q_a(x)I rank m-h, k = h + data s2 entrance X and Y : Q_a1 (x) Q_a2 rank m-2h+1, k = 2h-1 +Part 1 (exact, Fractions): the closed forms equal proj(b)-proj(a) of the label chains. +Part 2 (mod prime, rigorous for invertibility): with ONE random unimodular S0, the k x k corner +(S0^-1 p S0)[L,R] is invertible for EVERY aux a and EVERY data pair (a1,a2). det != 0 mod q +implies det != 0 over Q (all denominators divide 6 and det S0 = 1).""" +import sys, random +from fractions import Fraction as Q +from itertools import combinations + +q = 2**61-1 + +def mat_mul(A, B, mod=None): + Bt = list(zip(*B)) + if mod: return [[sum(a*b for a, b in zip(r, c)) % mod for c in Bt] for r in A] + return [[sum(a*b for a, b in zip(r, c)) for c in Bt] for r in A] + +def kron(A, B): return [[a*b for a in ra for b in rb] for ra in A for rb in B] + +def rank_mod(M, mod): + M = [r[:] for r in M]; rk = 0; n = len(M[0]) if M else 0 + for c in range(n): + p = next((i for i in range(rk, len(M)) if M[i][c] % mod), None) + if p is None: continue + M[rk], M[p] = M[p], M[rk]; iv = pow(M[rk][c], mod-2, mod) + M[rk] = [x*iv % mod for x in M[rk]] + for i in range(len(M)): + if i != rk and M[i][c] % mod: + g = M[i][c]; M[i] = [(x-g*y) % mod for x, y in zip(M[i], M[rk])] + rk += 1 + return rk + +def setup(h): + trip = list(combinations(range(h), 3)) + G = [[Q(int(i == j))-Q(1, 9) for j in range(h)] for i in range(h)] + P = [] + for t in trip: + u = [Q(int(i in t)) for i in range(h)] + Gu = [sum(G[i][j]*u[j] for j in range(h)) for i in range(h)] + d = sum(a*b for a, b in zip(u, Gu)); assert d == 2 + P.append([[u[i]*Gu[j]/d for j in range(h)] for i in range(h)]) + I = [[Q(int(i == j)) for j in range(h)] for i in range(h)] + Qc = [[[I[i][j]-p[i][j] for j in range(h)] for i in range(h)] for p in P] + return trip, G, I, P, Qc + +def part1(h, npairs, seed): + sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) + from frames import Space, tens, perp, proj + trip, G, I, P, Qc = setup(h); v = len(trip); G2 = kron(G, G); m = h*h + F = Space(I, h); FF = tens(F, F); zero = Space([], m) + line = [Space([[Q(int(i in t)) for i in range(h)]], h) for t in trip]; lp = [perp(L, G, h) for L in line] + rng = random.Random(seed) + sub = lambda b, a: [[x-y for x, y in zip(r1, r2)] for r1, r2 in zip(proj(b, G2), proj(a, G2))] + for a in rng.sample(range(v), min(v, 6)): + assert sub(FF, tens(F, line[a])) == kron(I, Qc[a]) + assert sub(tens(lp[a], F), zero) == kron(Qc[a], I) + for _ in range(npairs): + a1, a2 = rng.randrange(v), rng.randrange(v); D0 = tens(lp[a1], F); want = kron(Qc[a1], Qc[a2]) + assert sub(D0+tens(line[a1], line[a2]), tens(F, line[a2])) == want # X entrance + assert sub(D0, tens(lp[a1], line[a2])) == want # Y entrance + print('h=%d part1: closed forms exact on %d aux and %d data pairs (X and Y)' % (h, min(v, 6), npairs), flush=True) + +def part2(h, seed, R=2): + trip, G, I, P, Qc = setup(h); v = len(trip); m = h*h; rng = random.Random(seed) + inv6 = pow(6, q-2, q) + red = lambda x: (x.numerator % q) * pow(x.denominator % q, q-2, q) % q + Qm = [[[red(x) for x in r] for r in A] for A in Qc]; Im = [[int(i == j) for j in range(h)] for i in range(h)] + # S0 = Lw Up unimodular; S0^-1 = Up^-1 Lw^-1 computed mod q (exact integer inverse reduces correctly) + Lw = [[rng.randint(-R, R) if j < i else int(i == j) for j in range(m)] for i in range(m)] + Up = [[rng.randint(-R, R) if j > i else int(i == j) for j in range(m)] for i in range(m)] + S = mat_mul(Lw, Up, q) + def tri_inv(T, lower): + n = len(T); X = [[0]*n for _ in range(n)] + for c in range(n): + X[c][c] = 1 + rows = range(c+1, n) if lower else range(c-1, -1, -1) + for i in rows: + js = range(c, i) if lower else range(i+1, c+1) + X[i][c] = -sum(T[i][j]*X[j][c] for j in js) % q + return X + Si = mat_mul(tri_inv(Up, False), tri_inv(Lw, True), q) + assert mat_mul(S, Si, q) == [[int(i == j) for j in range(m)] for i in range(m)] + bad = {} + def corner(p, k): + top = Si[:k] # rows L of S^-1 + right = [r[m-k:] for r in S] # columns R of S + return rank_mod(mat_mul(mat_mul(top, p, q), right, q), q) == k + for a in range(v): + if not corner(kron(Im, Qm[a]), h): bad['aux1'] = bad.get('aux1', 0)+1 + if not corner(kron(Qm[a], Im), h): bad['aux2'] = bad.get('aux2', 0)+1 + # data: corner = Si[L] (Qa1 (x) Qa2) S[:,R]; factor Qa1(x)Qa2 = (Qa1(x)I)(I(x)Qa2) for speed + A1 = [mat_mul(Si[:2*h-1], kron(Qm[a], Im), q) for a in range(v)] + B2 = [mat_mul(kron(Im, Qm[a]), [r[m-2*h+1:] for r in S], q) for a in range(v)] + nd = 0 + for a1 in range(v): + for a2 in range(v): + nd += 1 + if rank_mod(mat_mul(A1[a1], B2[a2], q), q) < 2*h-1: bad['data'] = bad.get('data', 0)+1 + print('h=%d m=%d v=%d part2 (one S0, seed %d): aux checked %d, data pairs checked %d, singular corners %s' + % (h, m, v, seed, 2*v, nd, bad or 0), flush=True) + return not bad + +if __name__ == '__main__': + for h in map(int, sys.argv[1:]): + if h <= 8: part1(h, 6, h) + part2(h, 100+h) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py new file mode 100644 index 0000000000..c69bc6d204 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flag_existence.py @@ -0,0 +1,95 @@ +"""Mod-p evaluation at one random point of the flag-basis family, at h = 46, 47 (m = h^2). +A nonzero value mod p at an integer point proves the corresponding polynomial is not identically zero. +Checks: (1) aux/centre corner diagonal factors, every line; corner strictly-upper zero, sampled lines; +(2) inner-lemma corner A[0,h-1] for both data rank-(h-1) classes, every line; +(3) data entrance corner factors det1 (rows of S) and det2 (columns of S^-1), sampled pairs.""" +import sys, random +from itertools import combinations +p = (1 << 61)-1 +h = int(sys.argv[1]); rng = random.Random(int(sys.argv[2])); m = h*h; CR = 10**6 +iv = lambda x: pow(x % p, p-2, p) +nz = lambda: rng.choice([-1, 1])*rng.randint(1, CR) +def inv(A): + n = len(A); M = [[x % p for x in r]+[int(i == j) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + k = next(i for i in range(c, n) if M[i][c]); M[c], M[k] = M[k], M[c] + f = iv(M[c][c]); M[c] = [x*f % p for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [(a-g*b) % p for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] +def det(A): + M = [[x % p for x in r] for r in A]; n = len(M); d = 1 + for c in range(n): + k = next((i for i in range(c, n) if M[i][c]), None) + if k is None: return 0 + if k != c: M[c], M[k] = M[k], M[c]; d = -d + d = d*M[c][c] % p; f = iv(M[c][c]) + for i in range(c+1, n): + if M[i][c]: g = M[i][c]*f % p; M[i] = [(a-g*b) % p for a, b in zip(M[i], M[c])] + return d % p +mm = lambda A, B: [[sum(a*b for a, b in zip(r, c)) % p for c in zip(*B)] for r in A] +T = lambda A: [list(r) for r in zip(*A)] +mv = lambda A, x: [sum(a*b for a, b in zip(r, x)) % p for r in A] +R = [[[nz() if i <= b and j <= b else 0 for j in range(h)] for i in range(h)] for b in range(h)]; R[h-1][h-1][h-1] = 0 +C = [] +for b in range(h): + Cb = [[nz() if i >= b and j >= b else 0 for j in range(h)] for i in range(h)] + if b < h-1: Cb[b][b] = 0 + for bb in range(b+1, h): + Cb[b][bb] = 0 + s = sum(R[bb][i][j]*Cb[i][j] for i in range(b, bb+1) for j in range(b, bb+1)) % p + Cb[b][bb] = -s*iv(R[bb][b][bb]) % p + C.append(Cb) +for i in range(h): # trace conditions (all i, j), mod p + for j in range(h): assert sum(R[i][x][y]*C[j][x][y] for x in range(h) for y in range(h)) % p == 0 +U = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)]; V = [[rng.randint(-CR, CR) for _ in range(h)] for _ in range(h)] +Ui, Vi = inv(U), inv(V) +trip = list(combinations(range(h), 3)); v = len(trip) +inv9, inv2 = iv(9), iv(2) +def tg(t): # t = indicator, g = G t / (t^T G t) with G = I - J/9, t^T G t = 2 + tv = [int(i in t) for i in range(h)]; g = [(x - 3*inv9) * inv2 % p for x in tv]; return tv, g +UT, VT, UiT, ViT = T(U), T(V), T(Ui), T(Vi) +bad = 0 +for t in trip: + tv, g = tg(t) + a, b = mv(VT, tv), mv(Vi, g) # I(x)P: x_beta = R_beta a, y_beta = C_beta b + c, d = mv(UT, tv), mv(Ui, g) # P(x)I: R_beta^T c, C_beta^T d + for be in range(h): + f1 = sum(R[be][be][j]*a[j] for j in range(h)) % p; f2 = sum(C[be][be][j]*b[j] for j in range(h)) % p + f3 = sum(R[be][i][be]*c[i] for i in range(h)) % p; f4 = sum(C[be][i][be]*d[i] for i in range(h)) % p + bad += not (f1 and f2 and f3 and f4) + # inner lemma corners: data s1 uses A = U^T Q U^-T (line of the Q factor), exit A' = V^T Q V^-T + bad += not (c[0]*d[h-1] % p and a[0]*mv(Vi, g)[h-1] % p) +print('h=%d v=%d: lines with a zero diagonal or zero inner corner: %d' % (h, v, bad)) +# explicit corners for sampled lines (lower-triangular check), both orientations +for t in rng.sample(trip, 3): + tv, g = tg(t); a, b, c, d = mv(VT, tv), mv(Vi, g), mv(UT, tv), mv(Ui, g) + X1 = [mv(R[be], a) for be in range(h)]; Y1 = [mv(C[be], b) for be in range(h)] + X2 = [mv(T(R[be]), c) for be in range(h)]; Y2 = [mv(T(C[be]), d) for be in range(h)] + up = sum(1 for i in range(h) for j in range(i+1, h) if sum(x*y for x, y in zip(X1[i], Y1[j])) % p or sum(x*y for x, y in zip(X2[i], Y2[j])) % p) + print(' line %s: nonzero strictly-upper corner entries (both orientations): %d' % (t, up)) +# data entrance factors +vecM = lambda M: [M[x][y] % p for x in range(h) for y in range(h)] +lam = [vecM(mm(mm(U, R[be]), VT)) for be in range(h)] +mu = [vecM(mm(mm(UiT, C[be]), Vi)) for be in range(h)] +dot = lambda x, y: sum(a*b for a, b in zip(x, y)) % p +assert all(dot(l, u) == 0 for l in lam for u in mu) +def proj_out(vs, basis): # random combos of vs projected to annihilate 'basis' vectors + Gr = inv([[dot(x, y) for y in basis] for x in basis]); out = [] + for _ in range(h-1): + f = [rng.randint(-CR, CR) for _ in range(m)]; cf = mv(Gr, [dot(f, y) for y in basis]) + out.append([(fi - sum(cj*y[k] for cj, y in zip(cf, basis))) % p for k, fi in enumerate(f)]) + return out +annmu = proj_out(None, mu) # functionals with f . mu_l = 0 +kerlam = proj_out(None, lam) # vectors with lam_beta . w = 0 +for _ in range(3): + t1, t2 = rng.choice(trip), rng.choice(trip); tv1, g1 = tg(t1); tv2, g2 = tg(t2) + i0 = next(i for i in range(h) if tv1[i]); j0 = next(i for i in range(h) if g1[i]) + E = lambda x, y: [x[i]*y[j] % p for i in range(h) for j in range(h)] + e = lambda k: [int(i == k) for i in range(h)] + Imb = [E(tv1, e(j)) for j in range(h)]+[E(e(i), tv2) for i in range(h) if i != i0] + Rsp = [E(g1, e(j)) for j in range(h)]+[E(e(i), g2) for i in range(h) if i != j0] + d1 = det([[dot(f, x) for x in Imb] for f in lam+annmu]) + d2 = det([[dot(f, x) for x in kerlam+mu] for f in Rsp]) + print(' pair %s %s: det1 %s, det2 %s' % (t1, t2, 'nonzero' if d1 else 'ZERO', 'nonzero' if d2 else 'ZERO')) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py new file mode 100644 index 0000000000..925090a3b9 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/flagbasis.py @@ -0,0 +1,263 @@ +"""Children profiles of every two-stage bit edge class in ONE nested controlled basis S = T (I (x) K). +Coordinates (x, y), y fastest; T acts on the slow factor x by G_y on fibre y. +Basis modes: + struct : G_y row 0 = row (y+1 mod h) of W^-1, G_y^-1 e_{h-1} = column y of W (W generic unimodular) + -> stage-1 corner M[y,y'] = g_y . k_y' is the cyclic shift (the best possible: diag is forced 0) + nested : generic unimodular G_y, K (negative control: stage-1 corners not merged) + tensor : all G_y equal (negative control: stage-1 aux corner singular) + dense : one generic unimodular S0 (negative control: no stage-2 structure) +Pivots of S_p are computed by the rightmost-pivot lower-lower elimination mod q (and exactly over Q at h=6 for +a sample, with factor.bruhat). A child is a maximal run H_i -> D_j, H_{i+1} -> D_{j+1}, ... (contiguous, same +order). 'other' counts Bruhat moves that are not H<->D transpositions (must be 0).""" +import sys, random +sys.path.insert(0, __import__('os').path.join(__import__('os').path.dirname(__import__('os').path.abspath(__file__)), '..', 'partial-swap')) +from fractions import Fraction as Q +from itertools import combinations +q = 2**61-1 + +def red(x): return x.numerator % q * pow(x.denominator % q, q-2, q) % q +def mm(A, B): + Bt = list(zip(*B)); return [[sum(a*b for a, b in zip(r, c)) % q for c in Bt] for r in A] +def kron(A, B): return [[a*b % q for a in ra for b in rb] for ra in A for rb in B] +def eye(n): return [[int(i == j) for j in range(n)] for i in range(n)] + +def piv_modq(A): + """Rightmost-pivot lower-lower elimination; returns {row: col} (singular rows have no pivot).""" + M = [r[:] for r in A]; n = len(M); out = {} + for i in range(n): + r = M[i]; c = next((j for j in range(len(r)-1, -1, -1) if r[j]), None) + if c is None: continue + out[i] = c; iv = pow(r[c], q-2, q) + for k in range(i+1, n): + if M[k][c]: + f = M[k][c]*iv % q; M[k] = [(x-f*y) % q for x, y in zip(M[k], r)] + return out + +def swapmat(p): + m = len(p) + return [[(int(i == j)-p[i][j]) % q for j in range(m)]+p[i][:] for i in range(m)] + \ + [p[i][:]+[(int(i == j)-p[i][j]) % q for j in range(m)] for i in range(m)] + +def children(p): + """Children widths of the partial swap S_p from its Bruhat involution (mod q).""" + m = len(p); w = piv_modq(swapmat(p)); assert len(w) == 2*m + other = sum(1 for i, c in w.items() if c != i and (i < m) == (c < m)) + inv_ok = all(w[c] == i for i, c in w.items()) + hd = sorted((i, c) for i, c in w.items() if i < m <= c) + out = []; prev = None + for i, c in hd: + if prev and i == prev[0]+1 and c == prev[1]+1: out[-1] += 1 + else: out.append(1) + prev = (i, c) + return tuple(sorted(out, reverse=True)), other, inv_ok + +RR = 10**6 # generic coefficients: the lemma is a Zariski-open statement, small ranges hit coincidences +def unimod(n, rng, R=None): + R = R or RR + L = [[rng.randint(-R, R) if j < i else int(i == j) for j in range(n)] for i in range(n)] + U = [[rng.randint(-R, R) if j > i else int(i == j) for j in range(n)] for i in range(n)] + return [[sum(L[i][k]*U[k][j] for k in range(n)) for j in range(n)] for i in range(n)] + +def inv_int(A): + """Exact inverse of an integer matrix as Fractions.""" + n = len(A); M = [[Q(x) for x in r]+[Q(int(i == j)) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + p = next(i for i in range(c, n) if M[i][c]); M[c], M[p] = M[p], M[c] + f = M[c][c]; M[c] = [x/f for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [a-g*b for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] + +def basis(h, mode, rng): + """Return S, S^-1 as exact Fraction matrices (m x m).""" + m = h*h + if mode == 'flag': + return flag_basis(h, rng) + if mode == 'dense': + S = unimod(m, rng, 2); Si = inv_int(S); return [[Q(x) for x in r] for r in S], Si + K = unimod(h, rng) + if mode == 'struct': + Wm = unimod(h, rng); Wi = inv_int(Wm); Gs = [] + for y in range(h): + w = [Q(Wm[r][y]) for r in range(h)] # k_y = w_y : G_y w_y = e_{h-1} + rows = [Wi[(y+1) % h]] # g_y = dual of w_{y+1}; g_y . w_y = 0 + j0 = next(j for j in range(h) if w[j]); u = [Q(int(j == j0))/w[j0] for j in range(h)] + for _ in range(h-2): + r = [Q(rng.randint(-RR, RR)) for _ in range(h)]; d = sum(a*b for a, b in zip(r, w)) + rows.append([a-d*b for a, b in zip(r, u)]) + r = [Q(rng.randint(-RR, RR)) for _ in range(h)]; d = sum(a*b for a, b in zip(r, w)) + rows.append([a-d*b+c for a, b, c in zip(r, u, u)]) + Gs.append(rows) + elif mode == 'tensor': + G0 = [[Q(x) for x in r] for r in unimod(h, rng)]; Gs = [G0]*h + else: + Gs = [[[Q(x) for x in r] for r in unimod(h, rng)] for _ in range(h)] + Gi = [inv_int(G) if all(x.denominator == 1 for r in G for x in r) else None for G in Gs] + Gi = [g if g is not None else inv_frac(G) for g, G in zip(Gi, Gs)] + Ki = inv_int(K) + S = [[Q(0)]*m for _ in range(m)]; Si = [[Q(0)]*m for _ in range(m)] + # S = T (I (x) K): S[(x,y),(x',y')] = G_y[x,x'] K[y,y']; S^-1 = (I (x) K^-1) T^-1 + for x in range(h): + for y in range(h): + for x2 in range(h): + g = Gs[y][x][x2]; gi = None + for y2 in range(h): + S[x*h+y][x2*h+y2] = g*K[y][y2] + Si[x*h+y][x2*h+y2] = Ki[y][y2]*Gi[y2][x][x2] + return S, Si + +def flag_basis(h, rng): + """First h rows of S <-> matrices U R_b V^T (R_b supported on [0..b]^2), last h columns of S^-1 <-> + U^-T C_b V^-1 (C_b supported on [b..h-1]^2). For b < b': R_b^T C_b' = 0 and R_b C_b'^T = 0 identically, so + both stage corners are lower triangular. Trace conditions tr(R_i^T C_j) = 0 (all i, j) make S S^-1 = I.""" + m = h*h; rnd = lambda: Q(rng.randint(1, RR)) + R = [] + for b in range(h): + Rb = [[rnd() if i <= b and j <= b else Q(0) for j in range(h)] for i in range(h)] + if b == h-1: Rb[b][b] = Q(0) # i = j trace condition R_b[b][b] C_b[b][b] = 0: + R.append(Rb) # zero R at b = h-1, zero C below (else R_0 = 0) + C = [] + for b in range(h): + Cb = [[rnd() if i >= b and j >= b else Q(0) for j in range(h)] for i in range(h)] + if b < h-1: Cb[b][b] = Q(0) + for bb in range(b+1, h): # tr(R_bb^T C_b) = 0, slack entry (b, bb) + Cb[b][bb] = Q(0) + s = sum(R[bb][i][j]*Cb[i][j] for i in range(b, bb+1) for j in range(b, bb+1)) + Cb[b][bb] = -s/R[bb][b][bb] + C.append(Cb) + U = [[Q(x) for x in r] for r in unimod(h, rng)]; V = [[Q(x) for x in r] for r in unimod(h, rng)] + Ui, Vi = inv_frac(U), inv_frac(V) + mulq = lambda A, B: [[sum(a*b for a, b in zip(r, c)) for c in zip(*B)] for r in A] + Tr = lambda A: [list(x) for x in zip(*A)] + lam = [sum(mulq(mulq(U, Rb), Tr(V)), []) for Rb in R] # row-major vec, index x*h+y + mu = [sum(mulq(mulq(Tr(Ui), Cb), Vi), []) for Cb in C] + assert all(sum(a*b for a, b in zip(l, u)) == 0 for l in lam for u in mu) + # X = [Z | W | mu] with lam Z = I_h, W a complement of span(mu) in ker(lam); S = X^-1 + ker = nullspace(lam, m); cur = [u[:] for u in mu]; W = [] + def rc(): # random kernel vector + cf = [rng.randint(-3, 3) for _ in ker] + return [sum(c*x for c, x in zip(cf, col)) for col in zip(*ker)] + while len(W) < m-2*h: # generic complement (not the sparse nullspace basis) + k = [Q(x) for x in rc()] + if rank_frac(cur+[k]) > len(cur): cur.append(k); W.append(k) + Lt = Tr(lam); Gm = mulq(lam, Lt); Z = Tr(mulq(Lt, inv_frac(Gm))) + Z = [[a+b for a, b in zip(z, rc())] for z in Z] # generic preimages of e_1..e_h + X = Tr(Z+W+mu); S = inv_frac(X) + assert S[:h] == lam + return S, X + +def nullspace(A, n): + M = [r[:] for r in A]; piv = []; r0 = 0 + for c in range(n): + p = next((i for i in range(r0, len(M)) if M[i][c]), None) + if p is None: continue + M[r0], M[p] = M[p], M[r0]; f = M[r0][c]; M[r0] = [x/f for x in M[r0]] + for i in range(len(M)): + if i != r0 and M[i][c]: g = M[i][c]; M[i] = [x-g*y for x, y in zip(M[i], M[r0])] + piv.append(c); r0 += 1 + out = [] + for fc in [c for c in range(n) if c not in piv]: + v = [Q(0)]*n; v[fc] = Q(1) + for i, c in enumerate(piv): v[c] = -M[i][fc] + out.append(v) + return out + +def rank_frac(A): + M = [r[:] for r in A]; rk = 0 + for c in range(len(M[0])): + p = next((i for i in range(rk, len(M)) if M[i][c]), None) + if p is None: continue + M[rk], M[p] = M[p], M[rk] + for i in range(rk+1, len(M)): + if M[i][c]: f = M[i][c]/M[rk][c]; M[i] = [a-f*b for a, b in zip(M[i], M[rk])] + rk += 1 + return rk + +def inv_frac(A): + n = len(A); M = [r[:]+[Q(int(i == j)) for j in range(n)] for i, r in enumerate(A)] + for c in range(n): + p = next(i for i in range(c, n) if M[i][c]); M[c], M[p] = M[p], M[c] + f = M[c][c]; M[c] = [x/f for x in M[c]] + for i in range(n): + if i != c and M[i][c]: g = M[i][c]; M[i] = [a-g*b for a, b in zip(M[i], M[c])] + return [r[n:] for r in M] + +def setup(h): + trip = list(combinations(range(h), 3)) + G = [[Q(int(i == j))-Q(1, 9) for j in range(h)] for i in range(h)] + def projU(vecs): # G-orthogonal projector onto span(vecs) (column convention) + if not vecs: return [[Q(0)]*h for _ in range(h)] + B = [] + for v in vecs: # keep an independent subset + if rank_frac(B+[list(v)]) > len(B): B.append(list(v)) + Bc = list(map(list, zip(*B))) + GB = [[sum(G[i][k]*Bc[k][j] for k in range(h)) for j in range(len(B))] for i in range(h)] + Gr = [[sum(B[a][k]*GB[k][b] for k in range(h)) for b in range(len(B))] for a in range(len(B))] + Gri = inv_frac(Gr) + BtG = [[sum(B[a][k]*G[k][j] for k in range(h)) for j in range(h)] for a in range(len(B))] + X = [[sum(Bc[i][a]*Gri[a][b] for a in range(len(B))) for b in range(len(B))] for i in range(h)] + return [[sum(X[i][b]*BtG[b][j] for b in range(len(B))) for j in range(h)] for i in range(h)] + tv = [[Q(int(i in t)) for i in range(h)] for t in trip] + P = [projU([t]) for t in tv] + I = [[Q(int(i == j)) for j in range(h)] for i in range(h)] + Qc = [[[I[i][j]-p[i][j] for j in range(h)] for i in range(h)] for p in P] + return trip, tv, G, P, Qc, I, projU + +def run(h, mode, seed, npairs, nside, exact_sample=0): + rng = random.Random(seed); m = h*h + trip, tv, G, P, Qc, I, projU = setup(h); v = len(trip) + S, Si = basis(h, mode, rng) + Sm = [[red(x) for x in r] for r in S]; Sim = [[red(x) for x in r] for r in Si] + assert mm(Sm, Sim) == eye(m) + Rm = lambda A: [[red(x) for x in r] for r in A] + Pm = [Rm(p) for p in P]; Qm = [Rm(p) for p in Qc]; Im = eye(h) + def conj(A): return mm(mm(Sm, A), Sim) + res = {} + def rec(name, A, rank): + ch = children(conj(A)); res.setdefault(name, {}); key = (rank,)+ch + res[name][key] = res[name].get(key, 0)+1 + for a in range(v): + rec('s1 aux exit I(x)Q_b', kron(Im, Qm[a]), m-h) + rec('s1 centre I(x)P_b', kron(Im, Pm[a]), h) + rec('s2 aux entr Q_a(x)I', kron(Qm[a], Im), m-h) + rec('s2 centre P_a(x)I', kron(Pm[a], Im), h) + for _ in range(npairs): + a1, a2 = rng.randrange(v), rng.randrange(v) + rec('data s1 Q_a1(x)P_a2', kron(Qm[a1], Pm[a2]), h-1) + rec('data s2 entr Q_a1(x)Q_a2', kron(Qm[a1], Qm[a2]), m-2*h+1) + rec('data s2 exit P_a1(x)Q_a2', kron(Pm[a1], Qm[a2]), h-1) + for _ in range(nside): # side edges: pi = P_V - P_U for nested source spans / target complements + T_ = trip[rng.randrange(v)]; i = rng.choice(T_) + src = [s for s, t in enumerate(trip) if i in t and set(t) & set(T_) == {i}] + Ss = rng.sample(src, rng.randint(1, len(src))) + U = [tv[s] for s in Ss]; PU = projU(U) + PT = P[trip.index(T_)]; PYt = [[I[r][c]-PT[r][c] for c in range(h)] for r in range(h)] + dU = sum(1 for _ in range(1)) # placeholder + b = rng.randrange(v) + for nm, pi in (('U->F', [[I[r][c]-PU[r][c] for c in range(h)] for r in range(h)]), + ('U->Yt', [[PYt[r][c]-PU[r][c] for c in range(h)] for r in range(h)]), + ('0->U', PU)): + pim = Rm(pi); rk = len(piv_modq(pim)) + rec('s1 side %-5s pi(x)P_b' % nm, kron(pim, Pm[b]), rk) + rec('s2 side %-5s P_a(x)pi' % nm, kron(Pm[b], pim), rk) + if exact_sample: # exact Q check of the S_p Bruhat involution on a sample of edges + from factor import bruhat, swapmat as swq, mul + ok = 0; tot = 0 + for a in rng.sample(range(v), exact_sample): + for A in (kronQ(I, Qc[a]), kronQ(I, P[a]), kronQ(Qc[a], I), kronQ(P[a], I)): + pp = mul(mul(S, A), Si); piv, *_ = bruhat(swq(pp), track=False) + wq = piv_modq(swapmat(Rm(pp))); tot += 1; ok += all(piv[i] == wq[i] for i in range(2*m)) + res['_exact Q == mod q Bruhat'] = {(ok, tot): 1} + return res + +def kronQ(A, B): return [[a*b for a in ra for b in rb] for ra in A for rb in B] + +if __name__ == '__main__': + h, mode, seed, npairs, nside = int(sys.argv[1]), sys.argv[2], int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5]) + ex = int(sys.argv[6]) if len(sys.argv) > 6 else 0 + RR = int(sys.argv[7]) if len(sys.argv) > 7 else 10**6 + res = run(h, mode, seed, npairs, nside, ex) + print('h=%d m=%d mode=%s seed=%d key = (rank, child widths..., other-moves, involution-ok): count' % (h, h*h, mode, seed)) + for k in sorted(res): + print(' %-28s' % k, dict(sorted(res[k].items())), flush=True) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py new file mode 100644 index 0000000000..583dd997e6 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/independent/two-stage-bit/moment.py @@ -0,0 +1,85 @@ +"""Exact certifier for the batched two-stage bit moment. +Children per role, from the label chains of notes/two-stage-construction.tex: + side aux role : ranks sum to m, one edge of rank m-h (stage-1 exit D1->F or stage-2 entrance 0->D0) + centre aux role : ranks sum to m+2h (central return h counted, plus one extra up-edge h), one edge m-h + data role X / Y : U_a -> ... -> F and 0 -> ... -> U_a^perp, ranks h-1, h-1, m-2h+1, sum m-1 + copy correction : one rank-one child per data pair +Batching (partial-swap lemma): an edge of rank r > m/2 becomes (m-r) singletons + one block of width 2r-m. +Condition: (1/W) * sum_children (width/m)^(1-a) < 1.""" +import sys +from fractions import Fraction as Q +from math import comb, log + +def R_of(h): + # side roles per invocation from our generator (additions + outputs) + import os + sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + from sidegen import roles + return roles(h)[0] + +def ln_upper(x): + """Rigorous rational upper bound of ln x for rational x > 1: ln x = k ln2 + ln y, y in (1,2]; + ln y = 2 atanh z, z=(y-1)/(y+1) <= 1/3; partial sum + geometric tail bound.""" + x = Q(x); assert x > 1 + k = 0 + while x > 2: x /= 2; k += 1 + def two_atanh_up(z, n=30): + s = sum(z**(2*j+1)/(2*j+1) for j in range(n)) + tail = z**(2*n+1)/((2*n+1)*(1-z*z)) + return 2*(s+tail) + return k*two_atanh_up(Q(1, 3)) + (two_atanh_up((x-1)/(x+1)) if x > 1 else 0) + +def histogram(h, R, data_batch): + """Exact multiset {width: count} of children, built role by role (not from s).""" + v, m, c0 = comb(h, 3), h*h, h; N = v*v + hist = {} + def add(w, c): hist[w] = hist.get(w, 0)+c + def edge(r, cnt, batch): + if batch and 2*r > m: add(1, (m-r)*cnt); add(2*r-m, cnt) + else: add(1, r*cnt) + A = v*(R+c0) # aux roles per stage (v invocations, R side + c0 centre each) + for _stage in range(2): + edge(m-h, A, True) # the selected aux edge + edge(h, v*R, False) # rest of each side role: m-(m-h) + edge(3*h, v*c0, False) # rest of each centre role: m+2h-(m-h) + # data: two roles per pair; stage-2 entrance m-2h+1 plus two edges of h-1 + edge(m-2*h+1, 2*N, data_batch); edge(2*(h-1), 2*N, False) + add(1, N) # copy correction + W = 2*N+2*A; L = 2*v*h*c0 + s = sum(w*c for w, c in hist.items()) + assert s == W*m-N+2*L, 'rank sum mismatch' + assert W*m-s == v*(v-4*h*c0) + return dict(h=h, m=m, v=v, N=N, W=W, L=L, s=s, R=R, hist=hist) + +def F_upper(c, a, lu): + m, W = c['m'], c['W']; tot = Q(0) + for w, cnt in c['hist'].items(): + # (w/m)^(1-a) = (w/m) * (m/w)^a <= (w/m) / (1 - a ln(m/w)) + l = lu[w]; assert a*l < 1 + tot += Q(cnt*w, m)/(1-a*l) + return tot/W + +def F_float(c, a): + m, W = c['m'], c['W'] + return sum(cnt*(w/m)**(1-a) for w, cnt in c['hist'].items())/W + +def certify(c, den=10**9): + lo, hi = 0.0, 0.05 + for _ in range(200): + mid = (lo+hi)/2 + lo, hi = (mid, hi) if F_float(c, mid) < 1 else (lo, mid) + lu = {w: ln_upper(Q(c['m'], w)) for w in c['hist']} + n = int(lo*den)+1 + while not F_upper(c, Q(n, den), lu) < 1: n -= 1 + assert F_upper(c, Q(n, den), lu) < 1 + return Q(n, den), lo + +if __name__ == '__main__': + assert ln_upper(1024) > Q(6931471805599453, 10**15) and ln_upper(1024) < Q(6931471805599454, 10**15) + for arg in sys.argv[1:]: + h, db = arg.split(':'); h = int(h); db = db == '1' + c = histogram(h, R_of(h), db); a, root = certify(c) + print('h=%d data_batch=%d v=%d m=%d R=%d N=%d W=%d L=%d s=%d a_b=%s (=%.6e) root %.6e hist=%s' + % (h, db, c['v'], c['m'], c['R'], c['N'], c['W'], c['L'], c['s'], a, float(a), root, + sorted(c['hist'].items())), flush=True) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean new file mode 100644 index 0000000000..2fc1639415 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/Round7.lean @@ -0,0 +1,88 @@ +set_option maxRecDepth 100000 +-- Generated by gen.py. Rationals are pairs (numerator, denominator) of naturals, denominators positive. +abbrev Q := Nat × Nat + +def norm (a : Q) : Q := let g := Nat.gcd a.1 a.2; if g = 0 then a else (a.1 / g, a.2 / g) +def qadd (a b : Q) : Q := norm (a.1 * b.2 + b.1 * a.2, a.2 * b.2) +def qmul (a b : Q) : Q := norm (a.1 * b.1, a.2 * b.2) +def qdiv (a b : Q) : Q := norm (a.1 * b.2, a.2 * b.1) +-- a - b, defined when b <= a +def qsub (a b : Q) : Q := norm (a.1 * b.2 - b.1 * a.2, a.2 * b.2) +def qlt (a b : Q) : Bool := a.1 * b.2 < b.1 * a.2 +def qpow (a : Q) : Nat → Q + | 0 => (1, 1) + | k + 1 => qmul a (qpow a k) + +-- 2 * (sum_{j (0, 1) + | j + 1 => qadd (atanhSum z j) (qdiv (qpow z (2 * j + 1)) (2 * j + 1, 1)) +def twoAtanhUp (z : Q) (n : Nat) : Q := + qmul (2, 1) (qadd (atanhSum z n) (qdiv (qpow z (2 * n + 1)) (qmul (2 * n + 1, 1) (qsub (1, 1) (qmul z z))))) + +-- halve x until x <= 2, counting the halvings (fuel bounds the loop) +def halve (x : Q) (k : Nat) : Nat → Q × Nat + | 0 => (x, k) + | f + 1 => if qlt (2, 1) x then halve (norm (x.1, 2 * x.2)) (k + 1) f else (x, k) + +def lnUp (x : Q) : Q := + let p := halve x 0 64 + let y := p.1 + let base := qmul (p.2, 1) (twoAtanhUp (1, 3) 30) + if qlt (1, 1) y then qadd base (twoAtanhUp (qdiv (qsub y (1, 1)) (qadd y (1, 1))) 30) else base + +def rankSum (h : List (Nat × Nat)) : Nat := h.foldl (fun acc p => acc + p.1 * p.2) 0 + +-- moment bound: every a * L_w < 1, every w < m, and sum n w / (m (1 - a L_w)) < W +def momentOK (h : List (Nat × Nat)) (a : Q) (m W : Nat) : Bool := + let step := fun (acc : Bool × Q) (p : Nat × Nat) => + let w := p.1; let n := p.2 + let l := lnUp (m, w) + let al := qmul a l + let ok := acc.1 && (w < m) && qlt al (1, 1) + if ok then (true, qadd acc.2 (qdiv (n * w, 1) (qmul (m, 1) (qsub (1, 1) al)))) else (false, acc.2) + let r := h.foldl step (true, (0, 1)) + r.1 && qlt r.2 (W, 1) + +def qmax (a b : Q) : Q := if qlt a b then b else a +def qmin (a b : Q) : Q := if qlt a b then a else b + +-- The assembly of scripts/certificate_round3.py (crude guard), for given savings a_b, a_c, beta and the chosen +-- eps, x, kappa: every constraint is strict and every cost margin exceeds kappa. C1 = 1 + m_c ln s_c + 1 is +-- replaced by the check that the given C1 bounds 2 + m_c * (upper bound of ln s_c). +def kappaOK (ab ac beta eps x c1 kappa : Q) (mc sc : Nat) : Bool := + let gl : Q := (1, 10000000000000000) + let one : Q := (1, 1) + let tau := qsub one ab + let sigma := qsub one ac + let chi := qadd tau (qmul (qsub one beta) (if qlt tau sigma then qsub sigma tau else (0, 1))) + let leaf := qadd sigma (qmul beta (qsub one sigma)) + let lam := qadd (qmax (qmax tau sigma) chi) gl + let lamp := qadd (qmax lam leaf) gl + let delta := qdiv (1, 10000000000000000000000) x + let poly := qmul (qadd one x) delta + let c1ok := !(qlt c1 (qadd (2, 1) (qmul (mc, 1) (lnUp (sc, 1))))) + let cons := qlt lamp one && qlt (qmul eps (qsub (2, 1) lamp)) one + && qlt (qmul eps c1) (qadd one x) && qlt (qadd (qmul (2, 1) eps) eps) (qadd one x) + && qlt (qsub (qmul (2, 1) eps) one) (qmul lamp eps) && qlt eps one && qlt delta (1, 8) + let margins := [qsub one eps, qmul eps (qsub one lamp), qsub (qsub one eps) poly, eps, + qmul (qmax eps (qsub one eps)) (qsub one tau)] + c1ok && cons && margins.all (fun g => qlt kappa g) + +-- bit interchange, staircase entrance corner +def bitHist : List (Nat × Nat) := [(1, 1690297301), (3, 1356586), (5, 354200), (7, 3580962), (9, 1526602), (11, 5093396), (13, 2164162), (15, 7948248), (17, 8476006), (18, 6272882), (19, 1639946), (21, 6906900), (23, 61280142), (439, 6272882), (483, 61280142), (485, 545468), (487, 173558), (489, 293986), (491, 580888), (493, 14168), (495, 322322), (497, 17710), (499, 1129898), (501, 127512), (503, 410872), (505, 99176), (507, 1186570), (509, 340032), (511, 322322), (513, 106260), (515, 1583274), (517, 626934), (519, 2854852), (521, 13711082), (523, 4629394), (525, 5653032), (527, 6233920)] +theorem bit_rank_sum : rankSum bitHist = 57403754177 := by decide +theorem bit_moment : momentOK bitHist (31987, 500000000) 529 108516254 = true := by decide +-- bit interchange, round-six entrance corner +def bitplainHist : List (Nat × Nat) := [(1, 1803209177), (3, 1356586), (5, 354200), (7, 3580962), (9, 1526602), (11, 5093396), (13, 2164162), (15, 7948248), (17, 8476006), (19, 1639946), (21, 6906900), (23, 61280142), (439, 6272882), (483, 61280142), (485, 545468), (487, 173558), (489, 293986), (491, 580888), (493, 14168), (495, 322322), (497, 17710), (499, 1129898), (501, 127512), (503, 410872), (505, 99176), (507, 1186570), (509, 340032), (511, 322322), (513, 106260), (515, 1583274), (517, 626934), (519, 2854852), (521, 13711082), (523, 4629394), (525, 5653032), (527, 6233920)] +theorem bitplain_rank_sum : rankSum bitplainHist = 57403754177 := by decide +theorem bitplain_moment : momentOK bitplainHist (12599, 200000000) 529 108516254 = true := by decide +-- complex interchange (round six) +def cxHist : List (Nat × Nat) := [(1, 184811440), (2, 107199136), (3, 50583808), (4, 53478128), (5, 33031680), (6, 27611408), (7, 14767104), (8, 20195472), (9, 6217728), (10, 14119424), (11, 5051904), (12, 13742960), (13, 4663296), (14, 14864256), (15, 4849504), (16, 13014320), (17, 10196912), (18, 33371712), (19, 13601280), (20, 22774048), (22, 44038192), (23, 16479408), (24, 4048), (529, 8193152), (552, 199193984)] +theorem cx_rank_sum : rankSum cxHist = 119453132304 := by decide +theorem cx_moment : momentOK cxHist (36926111, 500000000000) 576 207387136 = true := by decide +-- assembly: kappa = 1599247689723/25000000000000000 with the two savings above +theorem kappa_assembly : kappaOK (31987, 500000000) (36926111, 500000000000) (1, 1000) (9999360300924109, 10000000000000000) (14695, 1) (14694, 1) (1599247689723, 25000000000000000) 576 119453132304 = true := by decide +kernel +-- assembly: kappa = 6299103187973/100000000000000000 with the savings bitplain and cx above +theorem kappaplain_assembly : kappaOK (12599, 200000000) (36926111, 500000000000) (1, 1000) (9999370089681201, 10000000000000000) (14695, 1) (14694, 1) (6299103187973, 100000000000000000) 576 119453132304 = true := by decide +kernel + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json new file mode 100644 index 0000000000..ceaa8c0111 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/lean/round7-histograms.json @@ -0,0 +1,497 @@ +{ + "sides": [ + [ + "bit", + "bit interchange, staircase entrance corner" + ], + [ + "bitplain", + "bit interchange, round-six entrance corner" + ], + [ + "cx", + "complex interchange (round six)" + ] + ], + "kappas": [ + [ + "kappa", + "bit" + ], + [ + "kappaplain", + "bitplain" + ] + ], + "cx": { + "a": [ + 36926111, + 500000000000 + ], + "m": 576, + "W": 207387136, + "s": 119453132304, + "hist": [ + [ + 1, + 184811440 + ], + [ + 2, + 107199136 + ], + [ + 3, + 50583808 + ], + [ + 4, + 53478128 + ], + [ + 5, + 33031680 + ], + [ + 6, + 27611408 + ], + [ + 7, + 14767104 + ], + [ + 8, + 20195472 + ], + [ + 9, + 6217728 + ], + [ + 10, + 14119424 + ], + [ + 11, + 5051904 + ], + [ + 12, + 13742960 + ], + [ + 13, + 4663296 + ], + [ + 14, + 14864256 + ], + [ + 15, + 4849504 + ], + [ + 16, + 13014320 + ], + [ + 17, + 10196912 + ], + [ + 18, + 33371712 + ], + [ + 19, + 13601280 + ], + [ + 20, + 22774048 + ], + [ + 22, + 44038192 + ], + [ + 23, + 16479408 + ], + [ + 24, + 4048 + ], + [ + 529, + 8193152 + ], + [ + 552, + 199193984 + ] + ] + }, + "bit": { + "a": [ + 31987, + 500000000 + ], + "m": 529, + "W": 108516254, + "s": 57403754177, + "hist": [ + [ + 1, + 1690297301 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 18, + 6272882 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1186570 + ], + [ + 509, + 340032 + ], + [ + 511, + 322322 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "kappa": { + "beta": [ + 1, + 1000 + ], + "eps": [ + 9999360300924109, + 10000000000000000 + ], + "x": [ + 14695, + 1 + ], + "c1": [ + 14694, + 1 + ], + "kappa": [ + 1599247689723, + 25000000000000000 + ], + "mc": 576 + }, + "bitplain": { + "a": [ + 12599, + 200000000 + ], + "m": 529, + "W": 108516254, + "s": 57403754177, + "hist": [ + [ + 1, + 1803209177 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1186570 + ], + [ + 509, + 340032 + ], + [ + 511, + 322322 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "kappaplain": { + "beta": [ + 1, + 1000 + ], + "eps": [ + 9999370089681201, + 10000000000000000 + ], + "x": [ + 14695, + 1 + ], + "c1": [ + 14694, + 1 + ], + "kappa": [ + 6299103187973, + 100000000000000000 + ], + "mc": 576 + } +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex new file mode 100644 index 0000000000..d79abea77a --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/deferred-readout.tex @@ -0,0 +1,111 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Deferred readouts in the two-stage bit interchange} +\date{Draft, October 9, 2026} +\begin{document} +\maketitle + +This note describes the round-seven bit side. It keeps the round-six interchange (flag basis, retained point totals +with copied centres, side roles batched one level down, data-entrance run) and changes three things: the side +program comes from PR~\#62's producer, its frames are lifted and its fan-out copies are made late, and the stage-one +word is reordered so that most slots read their garbage out at a nonzero frame. All objects are frozen in +\texttt{certificates/round7/}; \texttt{scripts/certificate\_round7.py} rebuilds the child-width histogram from the +schedule, and the checks in \texttt{independent/deferred-readout/} verify every fact used below. Throughout, $h=23$, +$m=h^2$, $v=\binom h3$, $N=v^2$, $G=I-J/9$, and for a triple $T$ the root frame of the output wire $y_T$ is +$t_T^\perp=\ker\,(9t_T-3\mathbf 1)^{\mathsf T}$; the frame of a retained total of $c$ is $U_c=\ker(\mathbf 1-3e_c)^{\mathsf T}$. + +\section{The side program: PR \#62's producer} +The side DAG has the $v$ triples as leaves and disjoint additions as nodes; its roots are the $3v$ outputs +$\mathrm{out}(c,T)=\{S: S\cap T=\{c\}\}$ and the $h$ retained totals $\mathrm{star}(c)$. We build it with PR~\#62's +producer (ikeboy): interval strips and core-aware pair assembly, with PR~\#41's alternating order and links +(RaD/hipotures), and links chosen by a moment-weighted matching in the spirit of PR~\#44 (rohanarun). A link hands the +non-pivot slot of a donor gate to a later use of the same value, so the number of slots is +$R=\#\text{additions}+3v+h-\#\text{links}=28866$. Only the DAG enters the certificate, and it is checked from the +definitions: every addition is disjoint, every output and total has the support above, and every node is reachable +from a root (\texttt{check\_lifted.py}, part~A; \texttt{check\_word.py}, part~A). + +\section{Lifted frames and late copies} +For an addition $n$ let $U_n$ be the common kernel of the root covectors reachable from $n$ and $F_j$ the span of +the first $j$ rows of a fixed integer flag matrix. The gate of $n$ acts at +\[ M_n=\operatorname{span}(n)+(U_n\cap F_{j(n)}), \] +with a lift index $j(n)$ per addition. This is Paureel's complement-frame construction: it is valid for any frames +with (H1) leaf frames $\langle t_S\rangle$, (H2) frames nested along every slot (DAG edges, links, copies), +(H3) roots inside $t_T^\perp$ or $U_c$, (H4) $G$ nondegenerate on every frame. Nesting is a theorem given +$j(n)\le j(t)$ on every slot successor pair, $\operatorname{span}(x)\le\operatorname{span}(t)$ on every link and +$\operatorname{span}(n)$ inside every root it reaches directly; then $U_n\le U_t$ and $M_n\le M_t$. In this witness +every lifted frame equals $U_n$. Dimensions are exact (modular law, ranks with Hadamard certificates or Bareiss). + +\paragraph{Late copies.} A node with several free uses is copied for each of them. A copy made early sits at $M_n$; +a \emph{late} copy for the user $\ell_i$ of an ordered list $\ell_1,\dots,\ell_k$ is made when the pivot has climbed to +\[ C_i=\textstyle\bigcap_{i'\ge i} M(\ell_{i'}), \qquad M_n\le C_1\le\dots\le C_{k-1}\le M(\ell_k), \] +and starts there, so the copy saves the rank $\dim C_i-\dim M_n$. Each copy is placed as late as possible (before its +user's gate, the pivot's next gate and the next copy). The intersections are needed: without them consecutive pivot +frames are not nested (1396 of 1396), and a copy moved after the pivot's next gate breaks the replay. + +\section{The B-defer word} +In stage one each slot $u$ starts with its garbage $z_u$, and the word reads it out of every target it reaches: +$y_T\mathrel{-}=C_{T,u}z_u$, where $C=JL$ is given by the transpose sweep of $L$. In rounds five and six all these +readouts happen at frame $0$, before the second pass. B-defer splits the second pass in two phases. + +\begin{itemize} +\item \emph{Phase 1} is the closure of the retained totals' last operations under per-slot sequence precedence: every + op that must precede a total's completion. The totals complete, and their copies read every target containing + their centre at $0$ (copied centres, as in round six). +\item A slot that phase 1 neither reads nor writes still holds its garbage after phase 1. It reads it out + \emph{now}, at a frame $\sigma_u\le F_0(u)\cap\bigcap_{T}t_T^\perp$ (over its targets $T$), then the rest of $L$ runs, + then the output reads at $t_T^\perp$, then $L^{-1}$ and $V^{-1}$ exactly mirror it. +\end{itemize} +Only the topological order of the word changes, so it is still a mirror and still restores arbitrary scratch. The +slot's chain now starts at $\sigma_u$: its corner has rank $r_u=h-\dim\sigma_u$ and its auxiliary edge rank $m-r_u$. + +\paragraph{The sorting rule.} On a target $y_T$ the readout frames, in time order, are $0$ (non-deferred slots and +centre copies), the deferred $\sigma_u$, and $t_T^\perp$; they must form a chain. The word reads the deferred slots +in increasing $\dim\sigma_u$, and applies the deferred $V$ gates (below) in increasing $\dim F_0$. With this rule +every $y_T$ sequence is nested in time order, exactly over $\mathbb Q$, for both the $\mathbb Z$ and the +$\mathbb F_2$ supports of $C$; the reversed order breaks 11879 chains. + +\section{V leaves as late copies on $X_S$} +A leaf $S$ is used by several gates. Instead of copying $x_S$ by fan-out, every use $i$ gets its own $V$ gate on the +data wire $X_S$, into a slot that starts at +\[ s_i=N_i\cap N_{i+1}\cap\cdots \qquad(\text{falling back to }\langle t_S\rangle\text{ if $G$ is degenerate on it}), \] +where $N_j$ is the first frame of use $j$. The $V$ gates are then late copies on $X_S$: its frame chain +$\langle t_S\rangle\le s_{i_1}\le s_{i_2}\le\dots\le F$ has total rank $h-1$, as before, and the use slots start at +$s_i$ instead of $\langle t_S\rangle$. The $V$ gates of deferred slots come after their readouts; in time the $X_S$ chain +is $\langle t_S\rangle$, the early $V$ frames (by dimension), the deferred $V$ frames (by the rule above), $F$, and it +is checked nested exactly in that order. The number of slots is unchanged. + +\section{What the certificate uses} +\paragraph{Only the $\mathbb F_2$ flag identity.} The bit network is used over $\mathbb F_2$: the word must add exactly +$x_T$ to every $y_T$ and restore every slot, for arbitrary scratch. The replay checks this over $\mathbb F_2$ with +the parity coefficients (the actual circuit) and, separately, over $\mathbb Z$ with the exact path-count +coefficients; the histogram and $a_b$ are the same with either support. + +\paragraph{The stage-two complement.} Stage two is the complement time-reversal of stage one, with the same edge +multiset. This is the same assumption as in round six; it is stated, not machine-checked here. + +\paragraph{Frames and genericity.} Every $\sigma_u$ and $s_i$ is a primitive integer basis (entries at most 13). +Exactly over $\mathbb Q$: $\sigma_u\le F_0(u)$, $\sigma_u\le t_T^\perp$, $t_S\le s_i\le N_i$, $G$ nondegenerate. Every +high-rank step ($2r>h$) that the reordered word adds (slot starts, gauged corners $\sigma_u\to F$, $y_T$ and $X_S$ +chain steps) has the generic north-east pivots under both conjugations at the integer point of +\texttt{check\_lifted.py}, so the side lemma batches it. + +\section{Accounting} +Per stage and invocation: every slot contributes its auxiliary edge (block $m-2r_u$) and its corner, both batched +by the inner lemma, and its chain steps; every centre copy its step $U_c\to0$ of rank $h-1$; every $y_T$ and every +$X_S$ its chain of total rank $h-1$; the data entrance its block $m-4h+2$ and corner; one copy-correction singleton per +pair. The rank sum is exactly $s=Wm-N+L$ with $W=2N+2vR$, $L=2vh(h-1)$, so the histogram re-partitions the round-six +budget. The moment certificate gives +\begin{align*} + a_b&=31987/(5\cdot10^8) &&\text{(staircase entrance corner, runs $h-2,h-5,1^6$)},\\ + a_b&=12599/(2\cdot10^8) &&\text{(round-six entrance corner)}, +\end{align*} +and with round six's complex interchange ($a_c=36926111/(5\cdot10^{11})$, $h=24$) the assembly gives +$\kappa=1599247689723/(2.5\cdot10^{16})\approx6.39699\times10^{-5}$ with the staircase corner and +$\kappa=6299103187973/10^{17}$ with the round-six corner. The staircase corner is certified by +\texttt{check\_stair.py} at the same integer point; the entrance edge is not changed by the reordering. + +\end{document} + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex new file mode 100644 index 0000000000..c9647ba100 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/notes/partial-swap-batching.tex @@ -0,0 +1,111 @@ +\documentclass[11pt]{article} +\usepackage{amsmath,amssymb,amsthm} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\theoremstyle{remark}\newtheorem*{remark}{Remark} +\title{Batched recursion for partial-swap frames} +\date{Draft, October 8, 2026} +\begin{document} +\maketitle + +\paragraph{Setting.} In the two-stage bit motif (Paureel's fork of \texttt{CrocSwap/integer-mult-bounds}, +\texttt{notes/two-stage-construction.tex} and \texttt{notes/direct-swap-transfer.tex}), frames are partial +swaps +\[ + S_p=\begin{pmatrix}I-p&p\\p&I-p\end{pmatrix} +\] +on the paired fields $(H,D)$, where $p$ is an idempotent of rank $a$ in $m$ coordinates. A frame change +along an edge is a partial swap $S_{V\ominus U}$. In the recursion each lower--lower Bruhat transposition is +one recursive interchange call. Batched recursion (\texttt{CrocSwap/integer-mult-bounds} PR~\#10, +\texttt{notes/projector-batching.tex}) charges an order-preserving run of $t$ aligned transpositions as a +single interchange of width $tb$. Below we show that the same batching applies to partial-swap frames. + +\begin{lemma}[Partial-swap factorization]\label{lem:psbatch} +Let $p$ be an idempotent of rank $a$ with $m/2= 2^(p^mu) needs a fixed mu below + (1-eps)/(1+x), which is tiny but fixed. +""" +from fractions import Fraction as Q +import math + +GL = Q(1, 10**16) # strict gaps tau < lambda < lambda' + + +def crude_c1(m_c, s_c): + # upper bound 1 + m_c * ln(s_c), rounded up to an integer + return Q(1 + math.ceil(m_c * math.log(s_c)) + 1) + + +def evaluate(a_b, a_c, beta, guard='pathwise', m_c=21952, s_c=45772350635112192, zeta=Q(1, 10**4)): + tau, sigma = 1 - a_b, 1 - a_c + chi = tau + (1 - beta) * max(sigma - tau, 0) + leaf = sigma + beta * (1 - sigma) + lam = max(tau, sigma, chi) + GL + lamp = max(lam, leaf) + GL + eps = Q(int(1 / (2 - lamp) * 10**16) - 1, 10**16) # reservations force eps < 1/(2-lambda') + c1 = (Q(6, 5) - beta / 5 + zeta) if guard == 'pathwise' else crude_c1(m_c, s_c) + x = max(Q(3), math.ceil(eps * c1) + 1) # Idea D: any fixed x with eps C1 < 1 + x + y = eps + delta = Q(1, 10**22) / max(1, x) + poly = (1 + x) * delta + top = min(eps * (1 - lamp), 1 - eps - poly, max(eps, 1 - eps) * (1 - tau)) + kappa = Q(int(top * 10**17) - 1, 10**17) + cons = { + 'lambda above tau, sigma, chi': lam - max(tau, sigma, chi), + 'lambda_prime above lambda and leaf': lamp - max(lam, leaf), + 'lambda_prime below one': 1 - lamp, + 'beta in (0,1)': min(beta, 1 - beta), + 'guard: eps C1 < 1 + x': 1 + x - eps * c1, + 'precision: 2 eps + y < 1 + x': 1 + x - 2 * eps - y, + 'sub-block coupling: y >= eps': Q(1) if y >= eps else Q(-1), + 'reservations: (2eps-1)/eps < lambda_prime': lamp - (2 * eps - 1) / eps, + 'record regime and primes: eps < 1': 1 - eps, + 'delta in (0, 1/8)': min(delta, Q(1, 8) - delta), + } + margins = { + 'prefix moves and top individual round': 1 - eps, + 'simultaneous butterflies': eps * (1 - lamp), + 'fine-bit exposures (A)': 1 - eps - poly, + 'Gaussian maps (B)': 1 - eps - poly, + 'chirps, twists, scalar products': 1 - eps - poly, + 'packed polynomial products': eps, + 'individually processed reserved axes': 1 - eps - poly, + 'CRT axis reversal (E)': max(eps, 1 - eps) * (1 - tau), + } + bad = [k for k, v in cons.items() if v <= 0] + g = min(margins.values()) + return dict(ok=not bad and g > kappa, bad=bad, kappa=kappa, eps=eps, x=x, c1=c1, + binding=min(margins, key=margins.get), gap=g - kappa) + + +SCENARIOS = [ + ('PR #10 networks', Q(246, 10**9), Q(7, 10**7)), + ('PR #10 complex, our bit producer', Q(252, 10**9), Q(7, 10**7)), + ('batched two-stage bit, PR #10 complex', Q(22157, 5 * 10**9), Q(7, 10**7)), + # headline: PR #7 complex network fully batched (PR #15), rebuilt by independent/complex-network/fullbatch_*.py + ('batched two-stage bit, fully batched PR #7 complex', Q(22157, 5 * 10**9), Q(1048009, 25 * 10**10)), +] + +if __name__ == '__main__': + for name, ab, ac in SCENARIOS: + for guard in ('pathwise', 'crude'): + r = evaluate(ab, ac, Q(1, 1000), guard) + print('%-40s %-8s ok=%s kappa=%.6e (2^%.2f) C1=%s x=%s binding=%s %s' % ( + name, guard, r['ok'], float(r['kappa']), math.log2(float(r['kappa'])), + r['c1'] if guard == 'pathwise' else int(r['c1']), r['x'], r['binding'], r['bad'])) + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py new file mode 100644 index 0000000000..ce8225c599 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/round7-review/vendor/scripts/certificate_round7.py @@ -0,0 +1,76 @@ +"""Round-seven witness, bit side: PR #62's producer (interval strips, core-aware pair assembly) on our two-stage +interchange with retained totals, lifted frames and late copies, and the stage-1 word reordered (deferred readouts, +V leaves); notes/deferred-readout.tex. + +The child-width histogram is rebuilt here from the frozen schedule (certificates/round7/): every slot's frame chain +from the nodes it holds, the deferred readout levels on every target from the garbage-coefficient supports of the +schedule, and the X_S chains from the V-gate order. Frame dimensions are taken from the data file; +independent/deferred-readout/check_frames.py re-derives each of them exactly, and check_word.py replays the word. +Two data-entrance corners are reported: the round-six corner (runs h-2, 1^(h+1)) and the staircase corner (runs h-2, +h-5, 1^6, independent/deferred-readout/check_stair.py). + +Usage: python3 scripts/certificate_round7.py""" +import os, sys +from fractions import Fraction as Q +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path[:0] = [HERE, os.path.join(HERE, '..', 'independent', 'two-stage-bit'), + os.path.join(HERE, '..', 'independent', 'deferred-readout')] +import moment +import deferred as dr +from certificate_round3 import evaluate + +A_C, M_C, S_C = Q(36926111, 5 * 10**11), 576, 119453132304 # round-six complex interchange, h = 24 + +# Every round-seven bit witness: its frozen files and its claimed savings with the two entrance corners. +# The headline is the staircase variant of the last entry. +WITNESSES = [ + dict(name='PR #62 producer, lifted frames, late copies, deferred readouts, V leaves', h=23, + witness='witness_23.json.gz', data='deferred_23.json.gz', + plain=(Q(12599, 200000000), Q(6299103187973, 10**17)), + staircase=(Q(31987, 500000000), Q(1599247689723, 25 * 10**15))), +] +HEADLINE = WITNESSES[-1] +CORNERS = (('plain', 'round-six entrance corner', dr.ROUND6_CORNER), ('staircase', 'staircase entrance corner', dr.STAIRCASE_CORNER)) + + +def build(wit=HEADLINE): + h = wit['h']; W, D = dr.load(h, wit['witness'], wit['data']); S = dr.Schedule(W, D) + cov = S.adjoint(); ylev = S.ylevels(cov); rk = dr.chain_ranks(S); xd = S.xdata() + assert all(sum(x) == h - 1 for x in xd) + return S, rk, ylev, xd + + +def saving(S, rk, ylev, xd, corner): + c = dr.histogram(S, rk, ylev, xd, corner) + assert sum(w * n for w, n in c['hist'].items()) == c['s'] and max(c['hist']) < c['m'] and c['W'] * c['m'] > c['s'] + a, _ = moment.certify(c) + return a, c + + +def kappa(a_b): + return evaluate(a_b, A_C, Q(1, 1000), 'crude', m_c=M_C, s_c=S_C) + + +def certify(wit): + """{'plain' | 'staircase': (a_b, kappa result, histogram)} for one witness, checked against its claims.""" + S, rk, ylev, xd = build(wit); out = {} + for key, _, corner in CORNERS: + a, c = saving(S, rk, ylev, xd, corner(S.h)); k = kappa(a) + assert k['ok'] and (a, k['kappa']) == wit[key], (key, a, k['kappa']) + out[key] = (a, k, c) + return S, out + + +def main(): + for wit in WITNESSES: + S, out = certify(wit) + print('%s: h=%d R=%d, deferred slots %d, V-leaf slots %d' % (wit['name'], S.h, S.R, len(S.readout), len(S.vstart))) + for key, label, _ in CORNERS: + a, k, c = out[key] + print(' %s: s = Wm - N + L = %d (rank sum exact), W = %d, a_b = %s (%.6e), kappa = %s (%.7e) ok=%s' % ( + label, c['s'], c['W'], a, float(a), k['kappa'], float(k['kappa']), k['ok'])) + + +if __name__ == '__main__': + main() + diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/saturation-review/review.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/saturation-review/review.py new file mode 100644 index 0000000000..db76d35e1e --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/experiments/saturation-review/review.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +"""Independent rational audit of the readout-frame mutation; stdlib only. + +Imports the pinned lifted-frame reader for 22 start frames only. All matrix +arithmetic, adjoint support and component histogram deltas below are local. +Unaffected frame facts are inherited from the separate baseline audit. +""" +from collections import Counter, defaultdict +from fractions import Fraction as F +import gzip, hashlib, json +from itertools import combinations +from math import comb +from pathlib import Path +import sys, time +HERE=Path(__file__).resolve().parent +R=HERE.parent/'round7-review' + +def load(p): + with gzip.open(p,'rt') as f:return json.load(f) + +def echelon(A,n): + A=[list(map(F,r)) for r in A]; i=0;p=[] + for j in range(n): + k=next((k for k in range(i,len(A)) if A[k][j]),None) + if k is None:continue + A[i],A[k]=A[k],A[i];q=A[i][j];A[i]=[x/q for x in A[i]] + for k in range(len(A)): + if k!=i and A[k][j]: + q=A[k][j];A[k]=[x-q*y for x,y in zip(A[k],A[i])] + p.append(j);i+=1 + if i==len(A):break + return A[:i],p + +def null(A,n): + E,p=echelon(A,n);out=[] + for j in set(range(n))-set(p): + r=[F(0)]*n;r[j]=1 + for row,k in zip(E,p):r[k]=-row[j] + out.append(r) + return out + +def inside(A,B,n): + E,p=echelon(B,n) + for row in A: + r=list(map(F,row)) + for b,j in zip(E,p): + if r[j]: + q=r[j];r=[x-q*y for x,y in zip(r,b)] + if any(r):return False + return True + +def gram(B): + return [[9*sum(x*y for x,y in zip(a,b))-sum(a)*sum(b) for b in B] for a in B] + +def determinant(A): + A=[list(map(F,r)) for r in A];d=F(1) + for j in range(len(A)): + k=next((k for k in range(j,len(A)) if A[k][j]),None) + if k is None:return F(0) + if k!=j:A[j],A[k]=A[k],A[j];d=-d + q=A[j][j];d*=q + for k in range(j+1,len(A)): + if A[k][j]: + z=A[k][j]/q + for l in range(j+1,len(A)):A[k][l]-=z*A[j][l] + A[k][j]=0 + return d + +def inner(r,h): + return Counter({1:r}) if 2*r<=h else Counter([1]*(h-r)+[2*r-h]) + +def put(out,A,mult): + for w,n in A.items():out[w]+=n*mult + +def main(): + tic=time.time();original=R/'vendor/certificates/round7/deferred_23.json.gz';candidate=R/'saturated-Z.json.gz' + O,D=load(original),load(candidate);W=load(R/'vendor/certificates/round7/witness_23.json.gz') + assert set(O)==set(D) + untouched=[k for k in O if k not in ('sigma','readout_order')] + assert all(O[k]==D[k] for k in untouched) + h=D['h'];trip=list(combinations(range(h),3));tid={t:i for i,t in enumerate(trip)};v=len(trip) + old=dict(zip(O['readout_order'],O['sigma']));new=dict(zip(D['readout_order'],D['sigma'])) + assert len(old)==len(O['readout_order'])==len(new)==len(D['readout_order']) and set(old)==set(new) + changed={s for s in old if old[s]!=new[s]};assert len(changed)==22 + assert D['readout_order']==sorted(new,key=lambda s:(len(new[s]),s)) + C=[Counter() for _ in range(D['R'])] + for s,c,t in D['out']:C[s][tid[tuple(t)]]+=1 + for s,c in D['ret']: + C[s].update(i for i,t in enumerate(trip) if c in t) + for op in reversed(D['ops']): + if op[0]=='add':C[op[2]].update(C[op[1]]) + elif op[0]=='fan': + for g in op[2]:C[op[1]].update(C[g]) + target=[[] for _ in trip] + for s in D['readout_order']: + for t,x in C[s].items(): + if x:target[t].append(s) + opos={s:i for i,s in enumerate(O['readout_order'])};edges=set();inherited=0 + for seq in target: + for a,b in zip(seq,seq[1:]): + if a in changed or b in changed or opos[a]>opos[b]:edges.add((a,b)) + else:inherited+=1 + for a,b in edges:assert inside(new[a],new[b],h),(a,b) + print('Exact target-edge checks passed:',len(edges),flush=True) + # Need exact start frames only at the altered slots; no full base audit. + sys.path[:0]=[str(R/'vendor/independent/deferred-readout')] + import check_lifted as cl + import deferred as dr + pr=cl.Prog(W);bas,dn=cl.spans(pr);users=cl.users_of(pr,dn);fr=cl.Frames(pr,dn,bas,users);fr.cobases();S=dr.Schedule(W,D) + def ukey(n,k): + u=users[n][k];return ('n',u[1]) if u[0]=='gate' else cl.root_key(u) + def exact(k): + if k[0]=='v':return S.vstart[k[1]] + if k[0]=='c': + n,ks=k[1:];A=exact(ukey(n,ks[-1])) + for i in reversed(ks[:-1]):A=null(null(exact(ukey(n,i)),h)+null(A,h),h) + return A + if k[0] in ('out','ret'):return null([fr.rootcov[k]],h) + n=k[1] + if n in pr.j: + assert S.node_dims[n]==h-len(fr.K[n]) + return null([fr.rootcov[fr.rkeys[r]] for r in fr.K[n]],h) + return [[int(i in pr.trip[t]) for i in range(h)] for t in bas[n]] + later={s:[] for s in changed} + for seq in target: + for a,b in zip(seq,seq[1:]): + if a in changed:later[a].append(new[b]) + if seq and seq[-1] in changed: + s=seq[-1];t=next(i for i,seq2 in enumerate(target) if seq2 is seq) + cov=[9*int(i in trip[t])-3 for i in range(h)];later[s].append(null([cov],h)) + records=[] + for s in sorted(changed): + A,B=old[s],new[s];G=gram(B);det=determinant(G);rank=len(echelon(B,h)[0]) + assert rank==len(B) and det and inside(A,B,h) + start=exact(S.start_key(s));assert inside(B,start,h) + # The actual subsequent target frames define the saturated cap. + constraints=null(start,h) + for L in later[s]:constraints.extend(null(L,h)) + cap=null(constraints,h);gcap=gram(cap);gr=len(echelon(gcap,len(cap))[0]) + assert inside(B,cap,h) + # Nondegenerate extension cannot exceed rank of the cap's form. + assert len(B)==gr,(s,len(B),gr) + for t,x in C[s].items(): + if x:assert all(sum(r[i]*(9*int(i in trip[t])-3) for i in range(h))==0 for r in B) + records.append(dict(slot=s,old_dim=len(A),new_dim=len(B),new_rank_exact=rank,gram_determinant=str(det),old_contained=True, + start_contained=True,target_contained=True,cap_dimension=len(cap),cap_gram_rank_exact=gr,maximal_for_fixed_later_frames=True)) + # Recompute histogram delta from exactly the components touched by sigma. + delta={k:Counter() for k in ('auxiliary','slot_corners','slot_chains','targets')} + nd=dict(D['node_dims']);ld={(n,tuple(ks)):d for n,ks,d in D['late_dims']};vd=dict(zip(D['vleaf_slots'],map(len,D['vleaf_start']))) + def startdim(s): + k=S.start_key(s) + return vd[s] if k[0]=='v' else nd[k[1]] if k[0]=='n' else ld[k[1],k[2]] + for s in changed: + a,b=len(old[s]),len(new[s]);r0,r1=h-a,h-b + delta['auxiliary'][h*h-2*r0]-=2*v;delta['auxiliary'][h*h-2*r1]+=2*v + put(delta['slot_corners'],inner(r0,h),-2*v);put(delta['slot_corners'],inner(r1,h),2*v) + put(delta['slot_chains'],inner(startdim(s)-a,h),-2*v);put(delta['slot_chains'],inner(startdim(s)-b,h),2*v) + for seq in target: + for frames,sgn in ((old,-1),(new,1)): + levels=sorted({0,h-1}|{len(frames[s]) for s in seq}) + for a,b in zip(levels,levels[1:]):put(delta['targets'],inner(b-a,h),sgn*2*v) + all_delta=Counter() + for x in delta.values():all_delta.update(x) + sat=json.loads((R/'saturation-results.json').read_text())['Z'];base=json.loads((R/'qualification.json').read_text())['histogram'] + expected=Counter(dict(sat['histogram']['hist']));expected.subtract(dict(base['hist'])) + assert +all_delta==+expected and +(-all_delta)==+(-expected) + assert sum(w*n for w,n in all_delta.items())==0 + result=dict(status='PASS',changed_frames=records,changed_count=len(changed),dimension_increase=sum(len(new[s])-len(old[s]) for s in changed), + schedule_fields_identical=untouched,independent_exact_target_edges_checked=len(edges),inherited_target_edges=inherited, + independently_recomputed_component_deltas={k:{w:n for w,n in x.items() if n} for k,x in delta.items()}, + total_histogram_delta={w:n for w,n in all_delta.items() if n},preserved_rank=True, + source_hashes={str(p):hashlib.sha256(p.read_bytes()).hexdigest() for p in (original,candidate)},seconds=time.time()-tic, + limitations=['Start-frame extraction uses pinned lifted-frame helper; all other matrix arithmetic in this review is local.', + 'Unchanged frame containment and generic pivots inherit separate complete baseline/candidate audits.', + 'Stage-two complementary time reversal and all-size tape/analytic transfer retain upstream proof assumptions.']) + (HERE/'results.json').write_text(json.dumps(result,indent=2)+'\n');print(json.dumps({k:v for k,v in result.items() if k not in ('changed_frames','source_hashes','independently_recomputed_component_deltas')},indent=2)) +if __name__=='__main__':main() diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/REPORT.md b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/REPORT.md new file mode 100644 index 0000000000..8bf7e38c94 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/REPORT.md @@ -0,0 +1,145 @@ +# Review of CrocSwap PR97 + +Reviewed 9 October 2026. This is a bounded local review, not external expert +endorsement or a completed end-to-end integer-multiplication proof. + +## Verdict + +[PR97](https://github.com/CrocSwap/integer-mult-bounds/pull/97) at +[`f5f9c56e637463cac1e300d1589ccf42838f688a`](https://github.com/jacklightChen/integer-mult-bounds/tree/f5f9c56e637463cac1e300d1589ccf42838f688a) +is a substantive interface audit and repair, not just another exponent search. +I found no failing identity or numerical certificate in the checks below. +It reports **κ=63965813/10^12=0.000063965813**, using the same Swapnil round7/round6 +inputs as our work and main's retained balanced assembly. + +This number is below our alternate-stack conditional number +`0.000063982820832686571`, but PR97 establishes several interfaces that our +earlier audit expressly left unresolved. Comparing the numbers alone would +misrepresent their verification scopes. + +## What PR97 changes + +1. It expands the bit word into literal forward/reflected events. Within 160 + commuting fan groups, recipients are ordered by their starting frame rank. + Exact nesting still relies on the independently checked frame chains; + rank alone would not suffice. +2. It handles nonzero auxiliary entrance gauges and proves both tensor-stage + exits. Two tensor connectors and the copied rank-one correction remain + charged. The dirty-scratch registers are restored rather than erased. +3. It supplies signed complex phase accounting. A complex inverse reverses + the word **and negates coefficients**. The rank-one endpoint requires an + **inverse** child and an address translation. Binary XOR cancellation is + not a valid replacement for this complex argument. +4. It recomputes the literal scalar bound, semantic precision constant and + product row reservation, then uses main's 47 strict constraints and 7 + margins. It intentionally gives up the slightly larger number from + Swapnil's different analytic stack. + +## Fresh checks run here + +| Check | Fresh result | +|---|---| +| Exact imported new files | 14 Git blobs verified; 6 executable/frozen dependencies byte-verified | +| Bit ledger | 1,080,616 events ; 32,408 formal input/scratch basis columns; forward and reflected shear pass | +| Complex ledger | 535,744 events; 124,369 actual geometric transitions; 24 copied centers; pinned histogram matches | +| Signed small scalar controls |Complete h8/h10 basis controls pass; missing cancellation and wrong inverse sign reject | +| Full complex support |All 4,096,576 h24 coefficients verify `AMV=I` | +| Author's Fourier endpoint control |All 65,536 h4 addresses pass; both bad corrections fail 32,768 addresses | +| Independent Fourier reconstruction |131,072 address/scalar-basis cases pass; both bad corrections fail 32,768 addresses | +| Exact moments |Separate rational logarithm/exponential implementation encloses both moments below 1 | +| Retained assembly regeneration |All 47 slacks and 7 margins pass; next 10^-12 κ grid point rejects | + +The independent phase check reconstructs the encoded-to-decoded factors of +stage one, the two common connectors, stage two's signed inverse, and the +copied correction. It does not merely substitute the author's simplified +final formula. + +Fresh logs and hashes are in [RECEIPT.json](RECEIPT.json), numerical controls in +[independent-results.json](independent-results.json), and exact source pins in +[MANIFEST.json](MANIFEST.json). The native h4/h5 rational tensor script was +read but not executed: SymPy is unavailable in this environment. Its +commuting-idempotent formulas were inspected algebraically. The complete +native rational frame/flag suite and 138-file source verifier were not rerun +for this review; earlier local checks of the unchanged geometry are separate +evidence. + +## Compatibility with our saturated frames + +I reran PR97's **unchanged bit event-ledger code** with our exact saturated +candidate, SHA256 +`97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4`. +Both complete scalar maps and reflected continuity pass. Its histogram delta +is exactly + +```text +width 1: -177100 +width 507: -31878 +width 509: -24794 +width 511: +56672 +``` + +Total rank remains 57,403,754,177, and maximum child remains 527. The inherited +complex network, semantic bridge and row-degree stock are unchanged. + +Using our certified saturated bit saving with PR97's main assembly yields +the local compatibility certificate + +```text +κ = 2559149/40000000000 = 0.000063978725 +``` + +All 47 strict slacks and 7 margins pass; the next 10^-12 κ grid point rejects. +The gain over PR97 is `807/62500000000 = 1.2912e-8`. Exact results and attribution +are in [saturated-balanced-compatibility.json](saturated-balanced-compatibility.json). + +This is a compatibility experiment. A publishable combined integrated +witness still needs its own complete source manifest and end-to-end package +validation. It adopts Chen's endpoint/phase repairs and retains the stated +main analytic/tape assumptions. It does not establish a global fastest +algorithm or measured runtime improvement. + +## Limits and potential weak points + +- The all-size fixed finite-alphabet tape implementation, analytic routing, + precision/recovery and prime/denominator arguments remain inherited written + lemmas. Finite replay cannot prove their full uniform complexity bounds. +- Common rational basis existence uses finite generic determinant arguments, + with symbolic zero constraints. It is not a single explicitly instantiated + rational basis covering the entire tensor family in the replay above. +- Complex basis wrappers must realize the ambient mod4 phase convention, + including any linear phase translation introduced by basis changes. The + pair endpoint controls support the stated convention; they do not execute + all recursive tape-level wrappers. +- The authored h24 support identity plus commutator argument proves the + signed scalar map. The h24 ledger does not run a dense full physical tensor + coefficient replay or an actual integer multiplier. +- The public PR had no comments at the final refresh. Hosted run 37854885755 + concluded `action_required`; it is not a passing hosted CI receipt. The + PR's staged local `make verify` coverage is separately described in its + imported VALIDATION.json and was not fully reproduced here. + +These are scope limits, not discovered counterexamples. + +## Credits and references + +- **Zhihao Chen / jacklightChen**, [PR97](https://github.com/CrocSwap/integer-mult-bounds/pull/97): + reflected scheduling, fan-order clarification, gauged exit proof, signed + complex endpoint controls/correction and retained-assembly integration, + with the disclosed Codex assistance. Any combined result should explicitly + credit these contributions. +- **Swapnil Jain**, [pinned round7/round6 source](https://github.com/Swapnil-jain/integer-mult-kappa/tree/741e7aa078392553815df7926ee17ac5e25a8c38): + deferred readouts, V leaves, lifted frames, h24 producer, frozen inputs, + flag/staircase family, and original Claude assistance disclosure. +- **icekylinx**, main `structured_bulk_assembly.py`, derives semantic/product-row + and combination formulas from **Zhihao Chen PR23** and the **RaD** transfer. +- The upstream preserved notices additionally attribute **Avi Eisenberg / + ikeboy PR62**, **RaD / hipotures PR41**, **Rohan Arun PR44**, **Aurel Prosz / + Paureel**, **James Chang PR34**, and earlier authors. Imported LICENSE, + NOTICE, module headers and historical AI disclosures are retained. + +Recheck commands, after the saved isolated replay trees have been prepared: + +```bash +python3 experiments/pr97-review/independent_audit.py +python3 experiments/pr97-review/combine_with_saturated.py +``` diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-frames-check.log b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-frames-check.log new file mode 100644 index 0000000000..f6d405ebd4 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-frames-check.log @@ -0,0 +1,21 @@ +[ 165s] exact base frames: 64042 node frames (56460 lifted), 1396 late-copy intersections +[ 165s] X. recorded frame dims == exact dims (64042 node frames, 1396 late-copy intersections) PASS +[ 165s] X. every slot moves along slot successors of the witness, starts at its use, ends at its root (28866 slots) PASS +[ 166s] Q. sigma_u and s_i bases independent (rank mod 2^31-1 == row count; 11565 + 11374 frames, max |entry| 13) PASS +[ 219s] Q. sigma_u <= F0(u) exactly (11565 deferred slots) PASS +[ 220s] Q. sigma_u <= t_T^perp exactly for every Z-support target (a superset of the F2 targets) PASS +[ 226s] Q. deferred levels on every y_T nested in time order, exactly (Z targets 0 bad, F2 targets 0 bad) PASS +[ 247s] Q. G nondegenerate on every sigma_u and s_i (Gram det != 0 mod 2^31-1 => over Z) PASS +[ 298s] Q. V leaves exactly: t_S <= s_i (0 bad), s_i <= N_i, the first frame of the use (0 bad), 11374 slots PASS +[ 298s] Q. X_S chains nested exactly in time order (, early V gates, deferred V gates, F; 1771 leaves) PASS +[ 305s] S. frames used only by the new steps: 4803, G-degenerate mod 2^31-1 0, reduction dimension mismatches 0 PASS +[ 336s] S. side lemma (generic NE pivots, both conjugations, mod 2^31-1) on all 3084 new high-rank steps {'corner': 1049, 'slot': 16, 'ydata': 248, 'xdata': 1771} PASS +[ 337s] F. round-six corner: rank sum == s (Z and F2 y supports), a_b = 62999/1000000000 (6.299900e-05), kappa = 314975156879/5000000000000000 (6.2995031e-05) ok=True, F2 a_b = 62999/1000000000 PASS +[ 337s] F. staircase corner: rank sum == s (Z and F2 y supports), a_b = 31989/500000000 (6.397800e-05), kappa = 1599347676929/25000000000000000 (6.3973907e-05) ok=True, F2 a_b = 31989/500000000 PASS +[ 337s] F. candidate: original headline equality inapplicable; candidate ledgers and exact certificates checked above PASS +[ 338s] N. NEG reversed readout order breaks the y_T chains (11927 bad) PASS +[ 338s] N. NEG readouts at F0(u) instead of sigma_u break the y_T chains (3276 breaks on 300 targets) PASS +[ 338s] N. NEG perturbed sigma frames fail sigma <= F0 (200 / 200) PASS +[ 339s] N. NEG deferred V gates before the early ones break the X_S chains (1760 bad) PASS +[ 339s] N. NEG side lemma with U = V = I fails (600 / 600) PASS +[ 339s] ALL PASS diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json new file mode 100644 index 0000000000..91595e214a --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/candidate-scalar-results.json @@ -0,0 +1,40 @@ +[ + { + "h": 23, + "R": 28866, + "v": 1771, + "ops": 82983, + "exact_F2": { + "ok": true, + "dirty_failures": 0, + "output_failures": 0, + "basis_columns": 30637, + "phase1_ops": 10962, + "rest_ops": 60647, + "deferred_slots": 11565 + }, + "integer_random_trials": 4, + "negative_controls": { + "drop_readout": { + "ok": false, + "dirty_failures": 0, + "output_failures": 1, + "basis_columns": 30637, + "phase1_ops": 10962, + "rest_ops": 60647, + "deferred_slots": 11565 + }, + "V_before_readout": { + "ok": false, + "dirty_failures": 0, + "output_failures": 5, + "basis_columns": 30637, + "phase1_ops": 10962, + "rest_ops": 60647, + "deferred_slots": 11565 + } + }, + "integer_readout_entries": 1681205, + "seconds": 12.572733163833618 + } +] diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/qualification-saturated.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/qualification-saturated.json new file mode 100644 index 0000000000..12a68ec737 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/qualification-saturated.json @@ -0,0 +1,387 @@ +{ + "schema": 1, + "status": "verified conditional physical witness with arithmetic refinement", + "source": { + "repository": "Swapnil-jain/integer-mult-kappa", + "commit": "741e7aa078392553815df7926ee17ac5e25a8c38", + "git_blob_sha1": { + "witness_23.json.gz": "3d86f83b871ba07c3b1562aa6d953ae86b9750ba", + "deferred_23.json.gz": "4a4431bd425aa4499f25e67df4e0d2cddd7df15c" + }, + "candidate_file": "experiments/round7-review/saturated-Z.json.gz", + "candidate_sha256": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4", + "generator": "experiments/round7-review/saturate_readouts.py" + }, + "evidence": { + "exact_basis_replay": true, + "exact_basis_field": "F2", + "basis_columns": 30637, + "exact_frame_profile": true, + "frame_containment_field": "Q", + "generic_pivots": "two conjugations at a fixed integer point, proved via rank modulo 2^31-1", + "nondegeneracy": "Gram determinant nonzero modulo 2^31-1 implies nonzero over Q", + "histogram_equals_pinned": false, + "exact_moment": true, + "exact_assembly": true, + "histogram_rebuilt_from_physical_schedule": true, + "base_histogram_equals_pinned": true, + "changed_candidate_full_frame_check": true + }, + "evidence_receipt_sha256": { + "frames": "32ac62bac2636b7789dcb1edea74dd976a3e4cd588deafa74040a2d037b18e7e", + "scalar": "d3be513fb389e334de2b4ccb971ec6af139d18a4c05333403a4cb2310b3e2be1" + }, + "histogram": { + "h": 23, + "m": 529, + "v": 1771, + "N": 3136441, + "W": 108516254, + "L": 1792252, + "s": 57403754177, + "R": 28866, + "hist": [ + [ + 1, + 1690120201 + ], + [ + 3, + 1356586 + ], + [ + 5, + 354200 + ], + [ + 7, + 3580962 + ], + [ + 9, + 1526602 + ], + [ + 11, + 5093396 + ], + [ + 13, + 2164162 + ], + [ + 15, + 7948248 + ], + [ + 17, + 8476006 + ], + [ + 18, + 6272882 + ], + [ + 19, + 1639946 + ], + [ + 21, + 6906900 + ], + [ + 23, + 61280142 + ], + [ + 439, + 6272882 + ], + [ + 483, + 61280142 + ], + [ + 485, + 545468 + ], + [ + 487, + 173558 + ], + [ + 489, + 293986 + ], + [ + 491, + 580888 + ], + [ + 493, + 14168 + ], + [ + 495, + 322322 + ], + [ + 497, + 17710 + ], + [ + 499, + 1129898 + ], + [ + 501, + 127512 + ], + [ + 503, + 410872 + ], + [ + 505, + 99176 + ], + [ + 507, + 1154692 + ], + [ + 509, + 315238 + ], + [ + 511, + 378994 + ], + [ + 513, + 106260 + ], + [ + 515, + 1583274 + ], + [ + 517, + 626934 + ], + [ + 519, + 2854852 + ], + [ + 521, + 13711082 + ], + [ + 523, + 4629394 + ], + [ + 525, + 5653032 + ], + [ + 527, + 6233920 + ] + ] + }, + "moment": { + "saving": "3999182181/62500000000000", + "moment_lower": "199999999999999965301763158481/200000000000000000000000000000", + "moment_upper": "499999999999999913254407896203/500000000000000000000000000000", + "positive_moment_gap": "86745592103797/500000000000000000000000000000", + "next_grid_saving": "63986914897/1000000000000000", + "next_grid_moment_lower": "500000000000000096252959459351/500000000000000000000000000000", + "next_grid_certified_false": true, + "interval_calls": 9, + "enclosure_rounding_denominator": 1000000000000000000000000000000 + }, + "assembly": { + "a_bit": "3999182181/62500000000000", + "a_complex": "36926111/500000000000", + "beta": "1/1000", + "eps": "62496001073697957/62500000000000000", + "x": "14695", + "c1": "14694", + "delta": "1/146950000000000000000000000", + "lambda_": "999936013085104001/1000000000000000000", + "lambda_prime": "499968006542552001/500000000000000000", + "kappa": "63982820832686571/1000000000000000000000", + "kappa_float": 6.398282083268657e-05, + "constraints": { + "lambda_above_tau_sigma_chi": "1/1000000000000000000", + "lambda_prime_above_lambda_leaf": "1/1000000000000000000", + "lambda_prime_below_one": "31993457447999/500000000000000000", + "beta_positive": "1/1000", + "beta_below_one": "999/1000", + "crude_guard": "181488086884115122427967146912980563860364099676371395926387309858860241014635309419573887322858270798926187675975887155882448886780219116627798728759461950014447224654721706640593955355236673932728359624962572418450228749891456300650973631407969791122853489957228980994390111073431967243709978454044605805794421973280177004027932081157929261987289551825151386972504331406788957800755630188661896571208516152247637911480126805186902437515958786771618653814062606432563023330297509585088178157223422972978215063684002940860157171364142484430361231338067691878321504257976021056738890958321516205499209645226618935060414477751982185564051378526967275880143086423591528109735897716135807627761265291604171988062426666452763088940636184425185365711285963294865015969544524682917728434810515152940420816171217167604077951651703684113999195449188434756212844004175060660154930518999/417599396615159033258959647160472863389949066825621268950159863879977098788687658060606032587867046368603795021123537295986932962913726051371548043813560386196625445156114369188687013441705360820641412704678144457069036774142338614379513628160759912492893775439631685280416693139002572787187016966706752864067978387211040918867455663994384371416494759111603431368844401640315758549221001626839066027917896291387220517894102986557326772070208839962720891475980957929115675368871153867538293526869908377008186872310998569001569209646792133839744071534967614420149638331039807419877037593783310245090543666715471053289489466196140036454232597627963975837341295271650535266311380288050014429522252884669607428413549517204635033535672095050026169680102759450763945848438240278811153006530788443518002382354926969016777338339352354523725807666778564453125000000000000000000000000000", + "scalar_depth": "91880111541109921/31250000000000000", + "precision": "918312511996778906129/62500000000000000", + "sub_block_coupling": "1", + "reservation": "44596717039961957/31248000536848978500000000000000000", + "eps_positive": "62496001073697957/62500000000000000", + "eps_below_one": "3998926302043/62500000000000000", + "delta_positive": "1/146950000000000000000000000", + "delta_below_eighth": "18368749999999999999999999/146950000000000000000000000" + }, + "margins": { + "prefix": "3998926302043/62500000000000000", + "butterfly": "1999463151021455403282960038043/31250000000000000000000000000000000", + "small_field": "1175284440170437698163/18368750000000000000000000", + "Gaussian": "1175284440170437698163/18368750000000000000000000", + "chirps_twists_scalar": "1175284440170437698163/18368750000000000000000000", + "polynomial": "62496001073697957/62500000000000000", + "reserved_axes": "1175284440170437698163/18368750000000000000000000", + "axis_reverse": "249932893877689737410504217/3906250000000000000000000000000" + }, + "absorption_gaps": { + "prefix": "1429/1000000000000000000000", + "butterfly": "59532960038043/31250000000000000000000000000000000", + "small_field": "104988427/73475000000000000000000000", + "Gaussian": "104988427/73475000000000000000000000", + "chirps_twists_scalar": "104988427/73475000000000000000000000", + "polynomial": "999872034358334625429/1000000000000000000000", + "reserved_axes": "104988427/73475000000000000000000000", + "axis_reverse": "7819441754217/3906250000000000000000000000000" + }, + "binding": "butterfly" + }, + "threshold": "26222540409037/500000000000000000", + "exceeds_user_threshold": true, + "physical_gain": true, + "changed_frames": [ + { + "slot": 22966, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22970, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22974, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22980, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 22982, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 23284, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23451, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23566, + "old_dim": 12, + "new_dim": 14 + }, + { + "slot": 23671, + "old_dim": 12, + "new_dim": 13 + }, + { + "slot": 23267, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23269, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23270, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23281, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23324, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23325, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23327, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23328, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23354, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23406, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23434, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23445, + "old_dim": 13, + "new_dim": 14 + }, + { + "slot": 23484, + "old_dim": 13, + "new_dim": 14 + } + ], + "dimension_increase": 25, + "child_count_changes": { + "1": -177100, + "507": -31878, + "509": -24794, + "511": 56672 + }, + "gain_over_refined_base": "3901156753279/1000000000000000000000", + "gain_over_published": "12913243766571/1000000000000000000000", + "limitations": [ + "Stage two as the complement time reversal of stage one is inherited and not machine checked here.", + "Finite alphabet tape compilation and the general basis/algorithmic interfaces remain inherited lemmas.", + "The complex profile and its full implementation are inherited from upstream round six; its moment arithmetic is audited locally.", + "This is an asymptotic exponent certificate, not a runnable fast integer multiplier or a practical speed benchmark.", + "Z replay uses four random samples; the actual F2 circuit is checked on its entire data and dirty scratch basis." + ], + "frame_audit_adapter": "check_candidate_frames.py changes only the original headline-number equality; every geometric, ledger, certificate, and negative-control check remains active." +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/results.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/results.json new file mode 100644 index 0000000000..c28b58b3fc --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/results.json @@ -0,0 +1,343 @@ +{ + "status": "PASS", + "changed_frames": [ + { + "slot": 22966, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "35586121596606", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 14, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 22970, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "35586121596606", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 14, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 22974, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "35586121596606", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 14, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 22980, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "142344486386424", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 13, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 22982, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "142344486386424", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 14, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23267, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23269, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23270, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23281, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23284, + "old_dim": 12, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "640550188738908", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23324, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23325, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23327, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23328, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23354, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23406, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23434, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23445, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23451, + "old_dim": 12, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "640550188738908", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23484, + "old_dim": 13, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "2562200754955632", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23566, + "old_dim": 12, + "new_dim": 14, + "new_rank_exact": 14, + "gram_determinant": "10248803019822528", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 15, + "cap_gram_rank_exact": 14, + "maximal_for_fixed_later_frames": true + }, + { + "slot": 23671, + "old_dim": 12, + "new_dim": 13, + "new_rank_exact": 13, + "gram_determinant": "149259012157130932224", + "old_contained": true, + "start_contained": true, + "target_contained": true, + "cap_dimension": 14, + "cap_gram_rank_exact": 13, + "maximal_for_fixed_later_frames": true + } + ], + "changed_count": 22, + "dimension_increase": 25, + "schedule_fields_identical": [ + "h", + "R", + "description", + "ops", + "hold", + "start", + "out", + "ret", + "node_dims", + "late_dims", + "vleaf_slots", + "vleaf_start", + "xs_order", + "deferred_v_order", + "claimed" + ], + "independent_exact_target_edges_checked": 119, + "inherited_target_edges": 17902, + "independently_recomputed_component_deltas": { + "auxiliary": { + "509": -24794, + "511": 56672, + "507": -31878 + }, + "slot_corners": { + "1": -88550 + }, + "slot_chains": { + "1": -88550 + }, + "targets": {} + }, + "total_histogram_delta": { + "509": -24794, + "511": 56672, + "507": -31878, + "1": -177100 + }, + "preserved_rank": true, + "source_hashes": { + "experiments/round7-review/vendor/certificates/round7/deferred_23.json.gz": "8c38e947ff9e021e308000dd82bb5e2194eb265d8b75194e22ce783d3e75317c", + "experiments/round7-review/saturated-Z.json.gz": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4" + }, + "seconds": 46.4001259803772, + "limitations": [ + "Start-frame extraction uses pinned lifted-frame helper; all other matrix arithmetic in this review is local.", + "Unchanged frame containment and generic pivots inherit separate complete baseline/candidate audits.", + "Stage-two complementary time reversal and all-size tape/analytic transfer retain upstream proof assumptions." + ] +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json new file mode 100644 index 0000000000..3d50be4704 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/historical/saturated-balanced-compatibility.json @@ -0,0 +1,103 @@ +{ + "status": "Local conditional compatibility experiment. No complete integrated138-pin package or end-to-end theorem claimed.", + "source_pr": 97, + "source_head": "f5f9c56e637463cac1e300d1589ccf42838f688a", + "candidate_sha256": "97df9481e5ae70645b8325315616aa0334ee990480e357bf0e21feb0a66447f4", + "bit_ledger_sha256": "bbda68acd9f648209ab0a10582ab23325f805b96bef3fcb1da4cfbb733cb71cd", + "assembly_module_sha256": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d", + "kappa": "2559149/40000000000", + "kappa_float": 6.3978725e-05, + "improvement_over_pr97": "807/62500000000", + "next_grid_rejected": true, + "assembly": { + "parameters": { + "a_bit": "3999182181/62500000000000", + "a_complex": "36926111/500000000000", + "tau": "62496000817819/62500000000000", + "sigma": "499963073889/500000000000", + "eta": "1/100000000", + "beta": "1/10", + "q": "199959105050817819/3125000000000000000000", + "c": "19995910705040886950817819/312500000000000000000000000000", + "epsilon": "4280821875000000000000000000/4281369750975481132450011203", + "lambda_": "6249600081785899182181/6250000000000000000000", + "lambda_prime": "3124800040894949182181/3125000000000000000000", + "alpha_squared_power": "410896277501680450000000/4281369750975481132450011203", + "delta": "1/800000000", + "C0": 2090135102911687858875668254443756303224353080986127099065008128, + "C1": 1, + "kappa": "2559149/40000000000" + }, + "strict_constraints": { + "bit_positive": "3999182181/62500000000000", + "complex_above_bit": "308290847/31250000000000", + "complex_below_one_over32": "15588073889/500000000000", + "beta_positive": "1/10", + "beta_below_one": "9/10", + "leaf_saving_above_bit": "310010613/125000000000000", + "q_positive": "199959105050817819/3125000000000000000000", + "q_below_internal": "3999182181/3125000000000000000000", + "q_below_leaf": "7750269324182181/3125000000000000000000", + "c_positive": "19995910705040886950817819/312500000000000000000000000000", + "c_below_one": "312480004089294959113049182181/312500000000000000000000000000", + "q_below_reservations": "199959105050817819/312500000000000000000000000000", + "lambda_above_tau": "3999182181/6250000000000000000000", + "lambda_above_sigma": "61658173399182181/6250000000000000000000", + "lambda_above_internal": "3999182181/6250000000000000000000", + "lambda_prime_above_lambda": "3999182181/6250000000000000000000", + "compact_leaf": "7750269324182181/3125000000000000000000", + "compact_reservations": "199959105050817819/312500000000000000000000000000", + "lambda_prime_below_one": "199959105050817819/3125000000000000000000", + "epsilon_positive": "4280821875000000000000000000/4281369750975481132450011203", + "epsilon_below_one": "547875975481132450011203/4281369750975481132450011203", + "guard_width": "547875975481132450011203/4281369750975481132450011203", + "K_geometry": "27395939321973820480012150011203/428136975097548113245001120300000000", + "K_dominates_log": "27391658226139424521108149988797/428136975097548113245001120300000000", + "record_suffix": "547875975481132450011203/4281369750975481132450011203", + "phase_local": "438296499015154984527829949988797/3425095800780384905960008962400000000", + "phase_boundary": "328712740631593384518867549988797/3425095800780384905960008962400000000", + "gamma_sublinear": "136979697979452000011203/4281369750975481132450011203", + "cell_above_band": "4280684895302020547999988797/8562739501950962264900022406", + "prime_interval_packing": "547875975481132450011203/4281369750975481132450011203", + "alpha_positive": "410896277501680450000000/4281369750975481132450011203", + "alpha_below_one": "4280958854697979452000011203/4281369750975481132450011203", + "alpha_below_one_fourth": "4279726165865474410650011203/17125479003901924529800044812", + "delta_positive": "1/800000000", + "delta_below_one_eighth": "99999999/800000000", + "short_record_fallback": "267534245209881626448487204214323712026257/267585609435967570778125700187500000000000", + "small_field_exposure": "273959395958904000022406/4281369750975481132450011203", + "artificial_boundary": "23976218485720093058304599529149988797/3425095800780384905960008962400000000", + "literal_scalar_guard": "336613066185957958324613300156", + "row_product_gap": "23733/25", + "original_prefix_above_kappa": "1712611950376627376546284334953/171254790039019245298000448120000000000", + "coordinate_movement_above_kappa": "1023737/125000000000000", + "compact_phase_layer_above_kappa": "64049986434923566279853753/171254790039019245298000448120000000000", + "bulk_exposure_above_kappa": "1023737/125000000000000", + "Gaussian_arithmetic_above_kappa": "5478973914740517661315063779293603/171254790039019245298000448120000000000", + "scalar_work_above_kappa": "10958161833918597661763183779293603/171254790039019245298000448120000000000", + "dimension_above_kappa": "171221918336883160848435371686279853753/171254790039019245298000448120000000000" + }, + "margins": { + "original_prefix": "27395939321973820480012150011203/428136975097548113245001120300000000", + "coordinate_movement": "3999182181/62500000000000", + "compact_phase_layer": "273916579522228449988797/4281369750975481132450011203", + "bulk_exposure": "3999182181/62500000000000", + "Gaussian_arithmetic": "328712740631593384518867549988797/3425095800780384905960008962400000000", + "scalar_work": "438296499015154984527829949988797/3425095800780384905960008962400000000", + "dimension": "4280821875000000000000000000/4281369750975481132450011203" + }, + "minimum_margin": "273916579522228449988797/4281369750975481132450011203", + "absorption_gap": "64049986434923566279853753/171254790039019245298000448120000000000", + "recurrence": { + "internal": "62496000817819/62500000000000", + "leaf": "4999667665001/5000000000000", + "reservations": "312480004089294959113049182181/312500000000000000000000000000" + } + }, + "credit": [ + "Zhihao Chen (jacklightChen): reflected/gauged ledgers and signed-phase integration, PR97", + "Swapnil Jain: pinned round7/round6 network and frozen frame inputs", + "icekylinx: structured_bulk_assembly.py retained main assembly; derives from Zhihao Chen PR23", + "Earlier source authors and AI disclosures remain in imported source notices" + ] +} diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/scripts/check_research.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/scripts/check_research.py new file mode 100644 index 0000000000..6d69bf1ba6 --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/scripts/check_research.py @@ -0,0 +1,209 @@ +#!/usr/bin/env python3 +"""Independent checks of the pinned main witness; no upstream code imported. + +Checks arithmetic and small algebraic mechanisms, not the complete theorem. +Log/exp bounds use Fraction arithmetic and explicit positive-series tails. +""" +from collections import Counter +from fractions import Fraction as Q +from itertools import combinations +from math import comb, factorial, log, exp, log2 +from pathlib import Path +import json + +ROOT = Path(__file__).resolve().parents[1] +CERT = ROOT / 'sources/crocswap/research/matrix-exponent-synthesis/candidate/arithmetic.json' + + +def require(test, message): + if not test: + raise ValueError(message) + + +def log_small(x, terms=40): + require(1 <= x <= 2, 'log range reduction') + z = (x - 1) / (x + 1) + lo = sum((2*z**(2*j+1)/Q(2*j+1) for j in range(terms)), Q(0)) + tail = 2*z**(2*terms+1)/Q(2*terms+1)/(1-z*z) + return lo, lo+tail + + +def log_interval(x): + x, k = Q(x), 0 + require(x >= 1, 'log input') + while x > 2: + x /= 2 + k += 1 + a, b = log_small(x) + c, d = log_small(Q(2)) + return a+k*c, b+k*d + + +def exp_interval(lo, hi, degree=10): + require(0 <= lo <= hi < 1, 'small exponential input') + lower = sum((lo**j/Q(factorial(j)) for j in range(degree+1)), Q(0)) + upper = sum((hi**j/Q(factorial(j)) for j in range(degree+1)), Q(0)) + # Every ratio after the first omitted term is at most hi/(degree+2). + upper += hi**(degree+1)/Q(factorial(degree+1))/(1-hi/Q(degree+2)) + return lower, upper + + +def moment_interval(profile, saving): + m, W = profile['m'], profile['W'] + low = high = Q(0) + for t, count in profile['child_multiplicities'].items(): + t = int(t) + a, b = log_interval(Q(m, t)) + c, d = exp_interval(saving*a, saving*b) + weight = Q(count*t, m*W) + low += weight*c + high += weight*d + return low, high + + +def check_profile(p): + m, W, N, L = (p[k] for k in ('m', 'W', 'N', 'L')) + axes = p['axes'] + require(m == axes[0]['h']*axes[1]['h'], 'ambient dimension') + require(N == comb(23, 3)*comb(25, 3), 'source count') + require(W == 2*N + 2300*axes[0]['R'] + 1771*axes[1]['R'], 'role width') + require(L == 2300*23*22 + 1771*25*24, 'copied-center loss') + total = Counter() + for part in p['parts'].values(): + total.update({int(t): n for t, n in part.items()}) + require(total == Counter({int(t): n for t, n in p['child_multiplicities'].items()}), + 'complete component list') + require(all(0 < t < m and n > 0 for t, n in total.items()), 'strict children') + rank = sum(t*n for t, n in total.items()) + require(rank == p['total_rank'] == m*W-N+L, 'complete rank ledger') + require(m*W-rank == p['deficit'] == N-L, 'deficit') + require(max(total) == p['maxchild'], 'largest child') + for axis in axes: + h, R = axis['h'], axis['R'] + require(sum(i*n for i, n in enumerate(axis['blocks'])) == h*R+h*(h-1), + 'paid local rank') + return dict(m=m, W=W, rank=rank, deficit=N-L, + relative_deficit=float(Q(N-L, m*W)), largest_child=max(total)) + + +def check_assembly(cert): + bridge = cert['finite_bridge'] + coefficient = 0 + for name in ('bit', 'complex'): + axis = bridge[name] + m, W, child = (axis[k] for k in ('m', 'W', 'maxchild')) + degree = 1 + while m**degree <= 2*child**degree: + degree += 1 + require(degree == axis['halving_degree'], 'depth to halve') + require(W.bit_length() == axis['wire_bits'], 'wire descriptor bits') + coefficient += degree*W.bit_length() + rowgap = bridge['rows']['degree']-Q(51, 25)*coefficient + require(coefficient == bridge['rows']['coefficient'], 'product row stock') + require(rowgap == Q(bridge['rows']['degree_gap']) > 0, 'row slack') + cb = bridge['complex'] + W, m, s, gates = (cb[k] for k in ('W', 'm', 's', 'scalar_group_upper')) + E = 64*(W+m+gates+1)**3 + B = s+E + literal = 2*gates*W**2+8*s+4*W+4+32*m + sem = dict(E=E, B=B, C0=32*m*B*B, C1=1, literal_charge=literal, + strict_literal_gap=E-literal, + induction_gap=2*B*(m-cb['maxchild'])-(s+E)) + require(all(Q(bridge['semantic'][k]) == v for k, v in sem.items()), + 'semantic precision constants') + a, b = Q(cert['bit_saving']), Q(717, 10**7) + kappa = Q(cert['kappa']) + beta, eta = Q(1, 20), Q(cert['h_backoff']) + tau, sigma = 1-a, 1-b + q = a*(1-2*eta) + c, epsilon = q+eta/4, (1-eta)/(1+q) + lam, lp = (tau+1-q)/2, 1-q + g = epsilon*q + r, delta = (g+1-epsilon)/2, eta/8 + internal, leaf = tau+(1-beta)*max(sigma-tau, Q(0)), sigma+beta*(1-sigma) + params = dict(a_bit=a, a_complex=b, tau=tau, sigma=sigma, beta=beta, h=eta, + q=q, c=c, epsilon=epsilon, lambda_=lam, lambda_prime=lp, + alpha_squared_power=r, delta=delta, C0=sem['C0'], C1=1, kappa=kappa) + margins = dict(g1=1-epsilon, g2=a, g3=g, g4=a, + g5=min(1-epsilon-delta, r-delta), g6=1-epsilon-delta, g7=epsilon) + slacks = dict(a_positive=a, a_below_b=b-a, b_below_one_over32=Q(1,32)-b, + beta_positive=beta, beta_below_one=1-beta, phase_leaf_above_bit=(1-beta)*b-a, + q_positive=q, q_below_internal=1-internal-q, q_below_leaf=1-leaf-q, + c_positive=c, c_below_one=1-c, q_below_reservations=c-q, + lambda_above_tau=lam-tau, lambda_above_sigma=lam-sigma, + lambda_above_internal=lam-internal, lambda_prime_above_lambda=lp-lam, + compact_leaf=lp-leaf, compact_reservations=lp-(1-c), lambda_prime_below_one=q, + epsilon_positive=epsilon, epsilon_below_one=1-epsilon, guard_width=1-epsilon, + K_geometry=1-epsilon*(1+c), K_dominates_log=epsilon*c, + record_suffix=1-epsilon, phase_local=1-epsilon-delta, phase_boundary=r-delta, + gamma_sublinear=1-epsilon-r, cell_above_band=epsilon-(1-r)/2, + prime_interval_packing=1-epsilon, alpha_positive=r, alpha_below_one=1-r, + alpha_below_one_fourth=Q(1,4)-r, delta_positive=delta, + delta_below_one_eighth=Q(1,8)-delta, short_record_fallback=epsilon-a, + small_field_exposure=1-epsilon-g, artificial_boundary=8-epsilon+r-delta-g, + literal_scalar_guard=Q(E-literal), row_product_gap=rowgap) + slacks.update({k+'_above_kappa': v-kappa for k, v in margins.items()}) + for key, data in (('parameters', params), ('constraints', slacks), ('margins', margins)): + require(set(data) == set(cert['assembly'][key]), key+' keys') + require(all(Q(cert['assembly'][key][k]) == v for k, v in data.items()), key+' values') + require(len(slacks) == 47 and all(v > 0 for v in slacks.values()), 'strict assembly') + require(min(margins.values()) == g > kappa, 'absorption gap') + return dict(constraints=47, margins={k: float(v) for k, v in margins.items()}, + kappa=float(kappa), bit_saving=float(a), complex_saving=float(b), + epsilon=float(epsilon), backoff=str(eta), absorption_gap=float(g-kappa), + scoped_ceiling=float(a/(1+a)), parameter_headroom=float(a/(1+a)-kappa), + row_stock_coefficient=coefficient) + + +def algebra_checks(): + triples = list(combinations(range(8), 3)) + for S in triples: + for T in triples: + j = len(set(S)&set(T)) + require((int(j == 1)+j) % 2 == int(S == T), 'binary intersection identity') + center = Q(j-1, 2) + side = -center if S != T and j % 2 == 0 else Q(0) + require(center+side == int(S == T), 'dyadic intersection identity') + cases = 0 + for v in range(128): + for w in range(16): + for z in (0, 1): + initial = v + v1 = v+2*z*w + w1 = w+(v1 % 2) + v2 = v1+z*(1-2*w1) + w2 = w1-((v2 % 2)^z) + require(v2 == initial+z*(1-2*(initial % 2)) and w2 == w, + 'four-update dirty parity identity') + cases += 1 + return dict(triple_pairs=len(triples)**2, parity_cases=cases) + + +def main(): + cert = json.loads(CERT.read_text()) + p = cert['source_profile'] + profile = check_profile(p) + saving = Q(cert['bit_saving']) + lo, hi = moment_interval(p, saving) + require(hi < 1, 'independent strict moment contraction') + derivative = sum(n*int(t)*log(p['m']/int(t)) for t, n in p['child_multiplicities'].items())/(p['m']*p['W']) + naive = -log(1-profile['relative_deficit'])/log(p['m']) + report = dict(scope='Arithmetic and small algebra only; no physical word replay or end-to-end theorem proof.', + source_commit='56b66d58297deca1d7dd130247d720e960f77a37', profile=profile, + moment=dict(strict_gap_lower=float(1-hi), strict_gap_upper=float(1-lo), + enclosure_width=float(hi-lo), logarithm_terms=40, exponential_degree=10, + comparison_with_published_interval=bool(Q(cert['moment']['lower']) <= hi and lo <= Q(cert['moment']['upper']))), + sensitivity=dict(derivative_at_zero=derivative, + first_order_root=profile['relative_deficit']/derivative, + unbatched_rank_only_saving=naive, + mixed_width_gain=float(saving)/naive), + assembly=check_assembly(cert), algebra=algebra_checks(), + illustrative_equal_constant_factors={str(n): exp(float(Q(cert['kappa']))*log(log2(n))) for n in (4096, 10**6, 10**12)}, + theoretical_factor_two_log2_log2_n=1/float(Q(cert['kappa']))) + (ROOT/'notes').mkdir(exist_ok=True) + (ROOT/'notes/independent-checks.json').write_text(json.dumps(report, indent=2)+'\n') + print(json.dumps(report, indent=2)) + + +if __name__ == '__main__': + main() diff --git a/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/verify.py b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/verify.py new file mode 100644 index 0000000000..62da642c1e --- /dev/null +++ b/references/signed-recursion/pr99/research/nondegenerate-readout-saturation/verify.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Portable finite verifier; historical compatibility is deliberately weaker evidence.""" +import argparse +from fractions import Fraction +import hashlib +import importlib.util +import json +from pathlib import Path +import subprocess +import sys + +ROOT = Path(__file__).resolve().parent +RR = ROOT / 'experiments/round7-review' + + +def main(): + if not __debug__: + raise RuntimeError('Checks require assertions: optimized Python is unsupported') + ap = argparse.ArgumentParser() + ap.add_argument('--full', action='store_true') + args = ap.parse_args() + manifest = json.loads((ROOT/'MANIFEST.json').read_text()) + for name, digest in manifest['sha256'].items(): + actual = hashlib.sha256((ROOT/name).read_bytes()).hexdigest() + if actual != digest: + raise RuntimeError('Changed package input or checker: ' + name) + provenance = json.loads((ROOT/'PROVENANCE.json').read_text()) + for name, expected in provenance['binary_git_blobs'].items(): + raw = (RR/'vendor/certificates/round7'/name).read_bytes() + git_id = hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + if git_id != expected: + raise RuntimeError('Pinned upstream Git blob mismatch: '+name) + print('Immutable package and upstream Git blob hashes: PASS', flush=True) + subprocess.run([sys.executable, str(ROOT/'experiments/saturation-review/review.py')], check=True) + spec = importlib.util.spec_from_file_location('portable_arithmetic', RR/'check_arithmetic.py') + ar = importlib.util.module_from_spec(spec) + spec.loader.exec_module(ar) + candidate = json.loads((RR/'saturation-results.json').read_text())['Z']['histogram'] + lo, hi = ar.exact_moment(candidate, Fraction(3999182181,62500000000000)) + if hi >= 1: + raise RuntimeError('Moment fails the strict saving certificate') + compatibility = json.loads((ROOT/'historical/saturated-balanced-compatibility.json').read_text()) + # A sanity check of saved values, NOT regeneration of Chen's assembly. + if not all(Fraction(v)>0 for v in compatibility['assembly']['strict_constraints'].values()): + raise RuntimeError('Saved PR97-compatible slack is nonpositive') + if not all(Fraction(v)>Fraction(compatibility['kappa']) for v in compatibility['assembly']['margins'].values()): + raise RuntimeError('Saved PR97-compatible margin is too small') + out = ROOT/'verification' + out.mkdir(exist_ok=True) + review_path = ROOT/'experiments/saturation-review/results.json' + review = json.loads(review_path.read_text()) + review['source_hashes'] = {str(Path(p).relative_to(ROOT)) if Path(p).is_absolute() else p:v for p,v in review['source_hashes'].items()} + (out/'exact-frame-review.json').write_text(json.dumps(review,indent=2)+'\n') + review_path.unlink() + result = dict(status='PASS',package_manifest_verified=True,exact_changed_frame_review=True, + moment_lower_float=float(lo),moment_upper_float=float(hi),moment_gap_lower_float=float(1-hi), + moment_comparison_used_exact_rationals=True, + historical_compatibility_slacks_positive=True, + pr97_assembly_regenerated=False,full_finite_checks_executed=args.full, + full_theorem_proved=False) + if args.full: + subprocess.run([sys.executable,str(RR/'check_candidate_frames.py'),str(RR/'saturated-Z.json.gz')],check=True) + subprocess.run([sys.executable,str(RR/'scalar_engine.py'),'--data',str(RR/'saturated-Z.json.gz'),'--output',str(out/'scalar-results.json')],check=True) + (out/'results.json').write_text(json.dumps(result,indent=2)+'\n') + print('Exact frame delta, moment and historical slack sanity checks: PASS',flush=True) + print('Full theorem / global optimality: NOT CLAIMED',flush=True) + + +if __name__ == '__main__': + main() diff --git a/references/stopped-recursion/pr107/.github/workflows/reversed-rational-centers.yml b/references/stopped-recursion/pr107/.github/workflows/reversed-rational-centers.yml new file mode 100644 index 0000000000..95cdb10a6f --- /dev/null +++ b/references/stopped-recursion/pr107/.github/workflows/reversed-rational-centers.yml @@ -0,0 +1,15 @@ +name: Verify reversed rational centers +on: [push, pull_request] +jobs: + focused: + runs-on: ubuntu-latest + strategy: + matrix: + python: ['3.11', '3.13', '3.14'] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + - run: python research/reversed-rational-centers/verify.py + - run: python research/reversed-rational-centers/test_controls.py diff --git a/references/stopped-recursion/pr107/ARCHIVE.json b/references/stopped-recursion/pr107/ARCHIVE.json new file mode 100644 index 0000000000..b20ac36d61 --- /dev/null +++ b/references/stopped-recursion/pr107/ARCHIVE.json @@ -0,0 +1,671 @@ +{ + "files": { + ".github/workflows/reversed-rational-centers.yml": "f0860b9fcf1b3ad09292f6b462f4120112639deb32d69004bb1431c0a3a8923c", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "Makefile": "0bd8071c6a4899b9e6975b53690069b4ffc70ac3514c019485b59f02ed994a6b", + "NOTICE": "46b84a2254d554c8adbe67ddaf33640e1b99e31168a1d90305d470e4fdab8e23", + "README.md": "083799d50375b5a16bd5af0eb1b0e4f630a6d05b414fe7010bc266206d9eda11", + "SOURCES.json": "22ea21b56e1d11f3061b183206694bd26fc875dd223e7a9f0ae2ee72b6747a9e", + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-network.json": "7dbd675e42e22ac076280360f8750031851564bb7a56079e66236fee5d0a6cdf", + "certificates/stopped-product-bit-axis.json": "52f493a0019b7e4ce69a4c26bd3d35af5d3397461126abc4be44d1430ae8930d", + "certificates/stopped-product-complex-input.json": "5bcf00402bbfb768bd2fc0935f32ad329ee0780a3dfe5827bb010831d7909c4d", + "certificates/stopped-product-input.json": "8185c7bf8c307728f32484c5972af9a1b948ac5d0838e02f85c86cb438060417", + "notes/batched-23-note.tex": "937979bdb9bdc17a55469d8397a22982e6a62b51ff7fc3ca24b5104c14d9cd32", + "notes/batched-algorithms.tex": "2e6a928d5d062361ee9304a3acd912e2b22c3880b1ab9f28155c11011b5d9824", + "notes/batched-assembly.tex": "67c88dd556fc6731119aaa4e168b6ec34c9639d6c46bcb69073426b655547fab", + "notes/batched-bit-rank-accounting.tex": "72e194fee5ee9005a6a08e3e6050e6efa0c51bf88a540a8d66c48884383607ff", + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/batched-path-budget.tex": "fe0b0bc59e405628787cad57570b3e98e3ba1a60272a3aeeb497f90611757dd3", + "notes/bulk-complex-guard.tex": "2e5f923dfdb38aba99262e08fa265a75f2f15934d31a9bacec0830b47bf72c37", + "notes/chirp-scaling-correction.tex": "ed1eb5a225dbcf3189cf8236eed556cbbc24b0ea994eb36ee35fc2442b228e0c", + "notes/compact-control-guard.tex": "38eac1e967ca30dd7df111943e41e8fbb93cafbe0356e8ebc8cb2db78089067f", + "notes/compact-control-layout.tex": "2bc28e50f3eb092195294cafa81213e520f6d42e7935e9905ad8a6199e2a7c87", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/compact-control-note.tex": "cd1c90828b8ff3ae46d129e087e70f5fdc272768e77f1b67f6bcecc556ea40bb", + "notes/complex-circuit-construction.tex": "7c3341762dfae1997d658bdc1cdf398c04c4a1347333857b529737f6992048a1", + "notes/complex-compression-note.tex": "5d160733562eb4abaf97c04d4e3691b6bfde83dde199950c80ecdc287ab1e362", + "notes/complex-compression.tex": "10312815290c7bb8ef4db153e30fba13c032bf17ccaf991a34f1aa6340405a0d", + "notes/controlled-projector-basis.tex": "e5e83753be8fe41c81fd372a922e256cb1fecb155ce308de6c59edf8723fe08a", + "notes/copied-centers-assembly.tex": "00117892971ae766188ace0af03030c44164fda105e42b70d84f52c3339a7dcb", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-complex.tex": "18eac6d5c5755e53230c0c12a633f38b6ce9666ef0322c1aff79394f2952af72", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/copied-centers-note.tex": "1099559bea3090399a2496bfb8fdf8966ac39d22fd413e35643af5ee0bb08556", + "notes/dag-construction.tex": "62a873452a9139bc06d3e2a530d1c5e25165ab41617090e6d8d5ebd4c82c9179", + "notes/dag-note.tex": "36e12e09e3880c73614f13dbd8e99ff0b5f83ac30bc537a9ded4ed7856076cd4", + "notes/disjoint-tensor-compression.tex": "528cba56872313b8cd63ff11f523a399dfb3c85cae1a764110ae9d26ac9151ac", + "notes/dyadic-central-factor.tex": "24c0543fb2fd815f114021f929c3efefa1ae79f29c2f7968585bcd4595a96158", + "notes/endpoint-gauge-assembly.tex": "6e305ded155b02b54c72fc154c772536fa8ea1b19cd7a8d58bedcab6bcaf961e", + "notes/endpoint-gauge-basis.tex": "2dfe641fba04bc6b3560fc24101eb2f188429a8910e450f48695352cf4faa2b8", + "notes/endpoint-gauge-complex.tex": "dfee33b0281e5551bb6927f757ff0240abade60ae1800f715afd88853ae0191e", + "notes/endpoint-gauge-construction.tex": "7dcd7a1b858877d36969fb4d10bf51d2fee2bd5ee9dfdd44329cb71f910d9659", + "notes/endpoint-gauge-note.tex": "54468fce7ad4c2773fd26969c81755d305f233976fb9629b86805f33d13c139b", + "notes/fast-gaussian-resampling.tex": "1a81e6b7f9228adace139ef891684db3a894e2a8b6f41b5234275627d25fe455", + "notes/finite-alphabet-transfer.tex": "0e3b0e98581dbd54fef2f6f7aee79a9b190a60a3f0d2726aefecdb3528131ce5", + "notes/general-network-guard.tex": "f627914b46f355eb996d22e273cb98e0a4a9dd98e41ce0bb7c95dc2c906a9d86", + "notes/incidence-construction.tex": "f82d29efe62ba7a59c4edbe8d6e2b8eb9afa307c218de3e9c0ccb737c64bf840", + "notes/incidence-note.tex": "d505adfde2f19c632ae427c8b639a81b2151ea2fc7df9f3e75f8f0afa9eaccce", + "notes/independent-complex.tex": "8a45c17ef8ddda810db38a135e1e70accb2314957a20e0febf1b88b95c9a8ec2", + "notes/nonadjacent-axis-note.tex": "bcf9204aa24f7a2a257ceb8ce71c9ec0f2c99b6eccb25b61ca91f841c1dd9767", + "notes/paired-construction.tex": "fbcce321875482b7d883adb9fca4951f3e005b54b34d2e8e2f1f69430d05a3c4", + "notes/paired-note.tex": "50108092c59eef1f101cec43332d2c1f6f5411cd7fe138b38c9025e1b10ce1b0", + "notes/parameter-note.tex": "bbb4f9e791806d934f6e07294bc7b060c614aa254719ad28b279d26436bba2b1", + "notes/partial-swap-assembly.tex": "7e520c2d7d041d56953e7c745964f32530e77a403f37a0addd31188f64535bb6", + "notes/partial-swap-basis.tex": "6d3e918fdcc80c5875fad4453bf540d979782da8f67c758b9e50464a2602f984", + "notes/partial-swap-complex.tex": "be50e94bb385f81f63a05ed83ee1f70e0644b492e29dfb740754d01d48b9cbee", + "notes/partial-swap-construction.tex": "d79e3fed618d85944409801cf46624095282f48592318608c8eb8afc6b56d0ba", + "notes/partial-swap-note.tex": "bb9cc56d384973a8343a3789db7d7c1b353903ecbe4a9118522f14a9d4429b13", + "notes/prime-field28-construction.tex": "1f850c13ce37ca15c38ea393dbecced241e666c5f4c11ceb3cb137810772c15c", + "notes/projector-batching.tex": "7c4708f0cd3f0b2c3a02f13d5f0808b2d7976dbb9145ba9cad48a33c9619e13c", + "notes/routing-tuned-note.tex": "f2794101097c655c1ed3668326c211ab049890b3d1d5440556f8322f407633b6", + "notes/shared-point-construction.tex": "d8f2a2a1e34c1e4033a9c94f951e6a506df2fe44a23bc7cf07aaf45cc7cf30d5", + "notes/shared-point-note.tex": "b7fe0ac2bd53503b8b11d262b20e8cf1a749be1373b40acc6f582097511e5975", + "notes/stage-reuse-note.tex": "4dd7c02702ef69cef5dc16c250e49c7842f0af5d657261eb1bbc2244d0809fbf", + "notes/stopped-guard.tex": "c8440d02263209d0a8a83ac1882bfd2152c994c9a26337d6c07b1f01037068a2", + "notes/stopped-product-assembly.tex": "1c3c7147851f30f1ff97679cfcda157b1cbe2655b8766e34f1345f20c630eaec", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/stopped-product-factorization.tex": "70d5a4405e1be9c7b6cfb326bb4ffdf88e5585d1fb3d16c7bb5ad62ac421fae3", + "notes/stopped-product-interface.tex": "454a8f3924afc26e575b2a8cec6d0860397cb7f2dc431f3ba63fb8a7142cc96b", + "notes/stopped-product-note.tex": "486d14c599f4c2551c019f3358898f72e6ecafeb04ad590726ea69ed987fe025", + "notes/structured-bulk-assembly.tex": "048c67f6473ee4712d37033266a2e507dee9dcd2bb3b0fd177708100e2404d94", + "notes/structured-bulk-bit.tex": "fddef1b1d902de49e2e4e71bf2c1708c73bc25cbfee107ed6ce3b6d785a5d284", + "notes/structured-bulk-complex.tex": "70eb8da7ea58cd9fcc79aa800bcc98a883ddfc505e91b45e7362afba1c8ea480", + "notes/structured-bulk-crt.tex": "84c9bd060f507a35e43e3afbb581e06c5e572c005b1bb97d17403c4f3ef69333", + "notes/structured-bulk-note.tex": "61defc5c7ee2090fb13f44cf3904ade9ac05b64acb9c1929327a38712ba81e9a", + "notes/ternary-five-subsets.tex": "f8553a7ad7da9fcd85def67360f7c070ec6c15911c3310fca360d821e1ed1ccd", + "notes/ternary-note.tex": "2183224cbbd3436c10e0885bc432c4155928915435e92377689c3c4ce3d7e511", + "references/copied-centers/MANIFEST.json": "5636f7beb34ae439f076d36e13d95d3057ce41ccbdba9da63d7727198b093ccb", + "references/copied-centers/PROVENANCE.json": "27df488b36b4fa599b6e6b92408a4b37169125f40918c6ff29bb035e4342a7d4", + "references/copied-centers/README.md": "add72b080a24707aeda0d7a9ab8147003e3dc972575954d597b078aa82fb9619", + "references/copied-centers/SOURCES.json": "fd12f8ce03a9f504cbf62351e8f5f09b6209e6f9929081f7ad24a8e55cf09d64", + "references/copied-centers/pr29/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "references/copied-centers/pr29/NOTICE": "1b4512d2fe2063aca8e59529f5f1552641b41128872fefa1f3411c991097a49f", + "references/copied-centers/pr29/SOURCE.json": "b2b71c863ebdb37c4110a13136490b1ee573258a4bc5ec0f72e725513d3896f3", + "references/copied-centers/pr29/paureel-direct-transfer.tex": "573bbc0ca0799dc255febb4dd35fba1549f3771480a32aa8e181ff62bc7cb253", + "references/copied-centers/pr29/two-stage-16-note.tex": "e01fc480181fb00d90599e002126b06056e5e574f97fd1d5698cdedb9097b54d", + "references/copied-centers/pr33/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "references/copied-centers/pr33/NOTICE": "6cdb4f22681c300d0cfaa1cc28b7dc0ac3a3295f8ad5d76f779ceebced592847", + "references/copied-centers/pr33/SOURCE.json": "bb8f77e7da502ae2d36c81e74a899c8356eb21964310c894f4d76c61c7a1ee7f", + "references/copied-centers/pr33/two-stage-corners-47-45-note.tex": "eba0e302370c0628bab27f675c8961b3005ef2edc2ccb5591465c7f7ef559e5a", + "references/semantic-bulk/MANIFEST.json": "7013be786fe2c1cb256e8d6ebd58ad408258e1be27ec8b528cf5d7f856540919", + "references/semantic-bulk/README.md": "93f3f8733a106f8d2dbb778742caa6b3e8e8e25d22ac9783d626eea2526ada10", + "references/semantic-bulk/pr21/translated-partial-complex.tex": "c5c9bb75a3eede63ad706eabac58c7d31ee480d92fd7e065f5302e726834ee52", + "references/semantic-bulk/pr23/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "references/semantic-bulk/pr23/NOTICE": "5ee775c6435a29e4e516e4280a310898a08edabe0572456614fe0c9c861fba0d", + "references/semantic-bulk/pr23/SOURCES.json": "05c64e3516634f6f46e7023abd56caebad8afc79d1f12ffd0d9e9cb18007adea", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "references/semantic-bulk/rad20/LICENSE": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "references/semantic-bulk/rad20/NOTICE": "82fc72aff49769ae82a8ce886846d9bd0601827a09c955042d26a61177d14369", + "references/semantic-bulk/rad20/SOURCE.json": "63477ee5103e4c1d0d1665bf2d1cfb91af5bcdef59cac6e46f4d6a1579b8eb2e", + "references/semantic-bulk/rad20/code/compact_arbitrary_source_routing.py": "ad6aafb2c1bd89e5b333bbcabd5460600f3f24737649ea2e7cd06986635bb297", + "references/semantic-bulk/rad20/code/downstream_banded_inverse.py": "024770e7ba33a3739f9d5aa474687109a35e1488c3ad6486656615911ab4cbb0", + "references/semantic-bulk/rad20/code/downstream_blocked_gaussian.py": "2ca6a460a7a9718eaf50f96c1602a1f21c65e2254acb58d3a1693c7e38f1ef95", + "references/semantic-bulk/rad20/code/downstream_gaussian.py": "c666f8ccced2e25db53fc5c0332b86a544b7b84313d0b588588dd19541f1a32a", + "references/semantic-bulk/rad20/code/downstream_phase_inverse.py": "423a67c300b7c93051e0c86edfc6e1c26d342854d06571f8975bfb64181e4f6d", + "references/semantic-bulk/rad20/code/review_arbitrary_routing.py": "c73182a04a6a08d75632aa74f122df2ac2dd7b6deb8dbcb5b42087cb553f94b1", + "references/semantic-bulk/rad20/code/review_balanced_transform.py": "6a61623a5298bc6a8b259bbdc78f168c45ef36d1b4ab7f5ed41d84ba2d4ad4c6", + "references/semantic-bulk/rad20/code/review_banded_inverse.py": "3e91715a1f185efcc5428798779064e0bf2ef892b57e7998afabed1820cd7dca", + "references/semantic-bulk/rad20/code/review_bulk_boundary_negatives.py": "54ca5f3d8b0212c884c78b381a3c2d36bb7e528a3e5c7eb1c02468de07028069", + "references/semantic-bulk/rad20/code/review_bulk_resampling.py": "c05c41f3fcec2f845043c4b00fd8c939d516f8ea3826a0112228ad625aa1f39f", + "references/semantic-bulk/rad20/code/review_phase_inverse.py": "53a5b28fa30807ab0fbd66628b7ff2f3a33aa1a1e993d101fcea9a8c28564ad3", + "references/semantic-bulk/rad20/code/review_semantic_guard.py": "3150c40bb2791b18bbaa44e6dd5e8c33fa9072681b94edd5257afb7d8d1b9a4a", + "references/semantic-bulk/rad20/code/review_whole_complex_transfer.py": "d61d02e6f83dac2046d4286cbc3e219adb8c5a43f216539b5449d39247a80efa", + "references/semantic-bulk/rad20/reports/bulk-resampling-tape-transfer.md": "cda26d5aca04b9c824eb6c4f50bee564fb7fa908b09a72e76852df5e0b9d2622", + "references/semantic-bulk/rad20/reports/compact-arbitrary-source-routing.md": "3df36853a181fd5d331811b5c4859a1980116c69f447eb78c40a551ff28cde79", + "references/semantic-bulk/rad20/reports/downstream-microbox-resampling.md": "9598c236eed7e44ac5eb41cc20f7c23249829e195247d15e2857a34e14222c49", + "references/semantic-bulk/rad20/reports/downstream-phase-cell-inverse.md": "3cdf492bcb719db4295658604dc202d6a2c5a008b87de43ec54f0107c64db730", + "references/semantic-bulk/rad20/reports/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "references/semantic-bulk/rad20/reports/downstream-semantic-child-guard.md": "dda9f678ab5afee88b70e405fb70ad47fa2273bd940e9daf603831925d0ef087", + "references/semantic-bulk/rad20/reports/review-arbitrary-routing.md": "f18f535a096abae473db71a4ae3f275d0116d7438fb18594d5b160571db670fd", + "references/semantic-bulk/rad20/reports/review-balanced-transform.md": "0c3a5b6f17188205d35cd421ef0c35c71f6111698f497e89da3ef7f870fef862", + "references/semantic-bulk/rad20/reports/review-bulk-resampling.md": "12aefaa9a0eee367fb71e8f910ed5f0094e1203d2caa29836b0c37887c446c29", + "references/semantic-bulk/rad20/reports/review-closing-handoff.md": "625b5b97ffee0804caf3bf34deb74115b9859270864cbcfb1bdf692b685cab8a", + "references/semantic-bulk/rad20/reports/review-compact-controls.md": "960970bf5c6a6aa7fbc65763c9ec2bd5aa8ca400a287e97061f150e36251f0a5", + "references/semantic-bulk/rad20/reports/review-phase-cell-inverse.md": "113927dd4fb77a55a457bd5f6da8cbfc7262d0fbc4e9d708b591a1d632e6caf6", + "references/semantic-bulk/rad20/reports/review-reusable-banded-inverse.md": "801359569c92f9d5ddd128b694993a5ac22a468e87bfea478cecc0ee413d058b", + "references/semantic-bulk/rad20/reports/review-semantic-child-guard.md": "5ded175dbc723df9e45b8a7abc1b729ff77e170d188b0d77102fd8a8f7e0da7e", + "references/semantic-bulk/rad20/reports/review-whole-complex-transfer.md": "0a12490909187459e87d1ac20e781d5758d3512ea0202a9795ba5f35ea976506", + "references/semantic-bulk/rad20/reports/whole-complex-concatenation.md": "5781af807210dc3ac740e876cdb8073683ea3658f4b8aa067605608919a8f520", + "references/semantic-bulk/rad20/reports/whole-complex-prefix-and-wrapper-qualification.md": "84ebd3bb5327ccd04134db36d0b109b377c6d6cf2c0c82923d1c35b596dc43b2", + "research/reversed-rational-centers/README.md": "41f278ab5a410c2fe7f9548a141e50f1faf329ff5e5418a36eed576934ffeba1", + "research/reversed-rational-centers/SOURCE.json": "fcda2d6a097bbc9c4141a8d9883b01452a3071d116a3f83f6b4ff8925d081f09", + "research/reversed-rational-centers/certificate.json": "6a43392e2b88652bac2ec22c2f32add6b26476df9d167c9c82b2cd3de8ea6fb6", + "research/reversed-rational-centers/producer.json": "a801696651af75e802b2ee89bf7da28c6209862ace4c3ee11f65821f4d615483", + "research/reversed-rational-centers/producer.py": "178cb7c5c1685ffbf192ecfc38f7d180560c29571a2c91645e7b13c1a502fe25", + "research/reversed-rational-centers/proof.md": "7c8991f69807e004c9e384550f9c602edbadd1c489d3252a699ce124636611d9", + "research/reversed-rational-centers/test_controls.py": "b1f2faa83118192ddb7ce089365e32ebe6b51016f9452f5b91df71fd2a2cd0c2", + "research/reversed-rational-centers/verify.py": "78e17e15c470140a598a18850f5833a7142c6fda068c3c424e47a1f4fa535c50", + "scripts/audit_additive_labels.py": "fa12eb2c102dc3ea176b6b5ac22618bf1cd2ff15cefc458d3a4274661abcfe6f", + "scripts/audit_affine_vectors.py": "a3fccaeadb9a5db72c33787a055a54374504a6aa231907080396b2cf822e94a7", + "scripts/audit_bit_compression.py": "f0ed48592a885b54669d3f9086530fc84c467c39fd9281b357ba7550549aaa25", + "scripts/audit_block_carry.py": "2835f9262e0f835259a18c11aa3469643a19483d62daff90dbb91ddcb46e4505", + "scripts/audit_block_core.py": "a6ee56d5c238691701e9f17e9f2e7ed109a192d974614f58bdeca57a441ab968", + "scripts/audit_block_labels.py": "5455255446aaca07caae5187487cac5129fdbd823de778bae74ea16ca1f78f10", + "scripts/audit_cancellation.py": "508934ee4d9514a5519813603b6192a0d53103b6e30d65b8d53a1a774de244b6", + "scripts/audit_coded_carries.py": "b914227845265e856e5c343bb8588bb6621477afab40ba6a08ced95eca595ef3", + "scripts/audit_community_candidate.py": "fe687e20639a26c852fcd336411636e5c4293c0d7ba1880cf570bcad2f9d6ac9", + "scripts/audit_compact_controls.py": "c3513cd6b41a20bc33b392d66c1536f0a5fcaa76088848361a3aef64074fa989", + "scripts/audit_complex_centers.py": "166b18f560cd0d520d23fa29ee8147e0ea056358c4268a466ec458195a97a960", + "scripts/audit_core_limits.py": "33060eda83c47372daf887fbdbb5e684d2a0a193e527449443948880cbb0c70c", + "scripts/audit_cube_cores.py": "eaf815316abe1a55b43a62e71252243562486248f3275f4a28ee286a34c5cb07", + "scripts/audit_cyclic_topology.py": "b20ece2cf1337e1808e35b602a0120c6aedaf602fa2315560726a149e9838c29", + "scripts/audit_disjoint_tensor.py": "477db540e972b82751fac6a3a6d6e38fb4141e967261b1f9c260e2c686479a78", + "scripts/audit_early_sharing.py": "2cf08ee65f8f8610578614d0ff0308eb432732e779f1e8c03e67f1979e75fdc6", + "scripts/audit_fano_completion.py": "427c369eb2adec9214c5e804bb4413c5a1c4ecbe74ed81c4d65e1b11faa60ed0", + "scripts/audit_fano_permutation.py": "168d286a09c9c25852c3edd8832c1dab3c30e8fec87c050a6daec8d075822bc5", + "scripts/audit_followup_candidate.py": "dfb65258d08097acd6a4c29719f4d7459646801de56f33e78d9ae1cee55c2cfc", + "scripts/audit_fused_block.py": "2afb83ca8e5f193ca8a4c242becf267ad1d9dc2578ba238b820e98d5185f6288", + "scripts/audit_gather_schedules.py": "d7b4f64a672404a4d46fb2dd46a9e71db70fc61e3e2e8ba4ad20a8a07eb724b6", + "scripts/audit_general_guard.py": "885743e70450f8da77dd8eee619eb784bd10b3078d4229baf4af2791a2e483c1", + "scripts/audit_inplace_side.py": "16d295f9f9250d35f6f1de2843d5e13c7adbf88d595ebcd0b65b00d1a938acd9", + "scripts/audit_joint_candidate.py": "41a5ef6425561eeaa49a4dc1783afbce723ef31944e3f7d30cc91f4a1e0b64ff", + "scripts/audit_joint_frames.py": "3df8061392ce0ba42bbde8c02f2a30c8141145e70e9a48c18da73d3aafb14423", + "scripts/audit_joint_return.py": "da515bbd86dc9597e016c39ce2ea189343699a2d36f51f2224f4c2e39fa69601", + "scripts/audit_mixed_point.py": "2eead5d410d1c96f1a7ef47c9c35d16ca6bb6d9c2a6a8d24273290add842214d", + "scripts/audit_packed_movement.py": "d283f6900c97e04c687f77697ea8b29d5cac5a2f69cf2a79766099573dd66517", + "scripts/audit_pair_candidate.py": "29f38baeaa66e854eb5b235fb9708575137df30da277d439e0a08c5c4c4cb61a", + "scripts/audit_parity_side.py": "7cbdd405ce11fa6f7ffcbef3811174f8685ad4640e9330176601d3b3d3e95390", + "scripts/audit_positive_side.py": "b021aad944d8a6c023e57b1b48937854803bbb370240c93e0fe359d831c838c9", + "scripts/audit_positive_skip_exact.py": "fb4aa8af4e8a0a8a0ce21b8b647efd982fa1da2bb93aaaac72a42496c201d25f", + "scripts/audit_prime_subset_limits.py": "8f5c51d415c3248ce965d93469518e8d219020a1192c7be544a1a5f4b95dc1c9", + "scripts/audit_quadratic_affine.py": "9b7b3a7b8bcf417d95f19e44ff488733e7a3f4757fd12bd98d417e1d01d70425", + "scripts/audit_rank_product_core.py": "1471f17e86d6c02d5c288116cc3a53544c881ded47a3500f70dac97b366e46a7", + "scripts/audit_scratch_pooling.py": "12748b9915aaa5b59f0e32ee0b4f8bf0cdb86d5bf90d633cd12bdfb832e414a3", + "scripts/audit_shared_core.py": "fd257e22b8eef948bd29c2934d15f96ea93bea439e51229965bed53d75e09307", + "scripts/audit_short_guards.py": "c2c929c956e617bee739963b517b9069e0d067cfebc6820f401a4e90a1769eb1", + "scripts/audit_signed_sparse.py": "5b64f4098fcf9092d3e24526f4d6ba90528104fe66396e3e7ee64a7eaf3c8a51", + "scripts/audit_single_intersection.py": "1de7f9a62edc93c624ff2693ae9bb725cf6dc9735ff1caad56f6913aae9448ee", + "scripts/audit_sparse_fusion.py": "bbaa32f9786f083409e363b081bfb7a1e597c8d32e4183c13a4105c2170934ce", + "scripts/audit_split_centers.py": "c5cfd0e89120c918b81c4ef0b69b767342457daa1b29ce2b7821658ea7ba6f2a", + "scripts/audit_stage_pair.py": "f4823525abb553f76ea33adf61ed51e88ec38dd6c346dbcac86f69ffa8fb0375", + "scripts/audit_stronger_screens.py": "9678b66043b384f1454181bc2069c6d72685eda6576e284ce799d4b9aeb79860", + "scripts/audit_subset_cores.py": "ae38397693540a8cc26d416a6edcda271fd0fa2eb88566df690fb569e812f0a3", + "scripts/audit_ternary_side.py": "5e86566eee32031e1829d26ea17a7372e4802e2f7d76a2caa3ae16de3ab072c1", + "scripts/batched_bit_rank_moment.py": "f23bcecb8a71fcc89bc69f8e9f7845483f4b150951099bb296f82c4eba29820c", + "scripts/batched_network.py": "45d918d5a064339299c21a12f02462ac3fe7e18380fa6a5a6e2542566865b830", + "scripts/binary_phase_frames.py": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7", + "scripts/block_label_targets.py": "3bfc422d60db0d79d8cd955a77d8b72c581bc0d4e288589f359fbf8ee6a76c52", + "scripts/bulk_complex_guard.py": "e64bb4e086205155fddf85cea86dbc8f9dcd09af4654d8e4b5c3b2c9b4d04e66", + "scripts/certify.py": "2348d95008276c5d5764f7e028c3918e484582cd589bd4d9b82919161745e53e", + "scripts/check_lean_axioms.py": "63b7c34c4faf1b2234af7489c3728dc848e7950ec98300ff8bd61cc0d67a10cc", + "scripts/compact_control_layer.py": "e814c9f8d84f2e5d3aa2e06c36697f27f110218addc40ff8df2801fde861ff9f", + "scripts/complex_circuit.py": "d623617f7c5cb3189580883a8ab30c0bd3832688ae3f1f0c1f881bbbbff8e0c1", + "scripts/complex_compression.py": "9b6f758a5985ba5d9fdd726fe6556b3d3b4bd9d98aaf8ba06a7bb58093c4c504", + "scripts/complex_network.py": "0da395e67ac04fa213494e71012c1b19b544596d34cdce5a3b172b1fb6af5f1b", + "scripts/controlled_bit_rank_moment.py": "572a1aea08b5b62da000588862d4724fdb47326b95282b76b8e49dd6923f73a0", + "scripts/copied_centers/README.md": "8d348a28fc11615fb686f7d47548db06a5000378b54e0e47438d17292b5942b9", + "scripts/copied_centers/__init__.py": "13db4f09038a2ff5335cbd4dbd93274b0fb16b3c7b51e4de67cbb2801a3f78e1", + "scripts/copied_centers/corners.py": "9eecdc39c67cc18c806a33f0be03986c28591d322881fd60c11f52c625c8067b", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/copied_centers_producer.py": "33afa6fe25677e13656fa8a200a25ed3510ef70c1ff9f1186612cbd9ee75d209", + "scripts/dag_network.py": "820f1f6e9f26251f58510ae7312e37a91bb5fefc37f8eeaaa648d0c68c48ed2e", + "scripts/endpoint_gauge/README.md": "044eb10845ca3c25adfda4d0abe728fd890d7f1c6ecc5da3e254073c189d08c1", + "scripts/endpoint_gauge/__init__.py": "ec74b81eb64a8167df4597a5ab94bd7a99f65acf0186bca684a74bcbec91113a", + "scripts/endpoint_gauge/bit.py": "5b2817bd1b35a42fabb636541907fcbdc394ed2ef1405099a10de9c9cf524b09", + "scripts/endpoint_gauge/complex.py": "dd0e1ff9729eadb65a18dba48fdbe824f423e025003f081f532b443b939f610a", + "scripts/endpoint_gauge/match_complex_general.cpp": "fb83c08125521128a38f5ee53f91d192904cc3372ad8f196ad9576e5f4f727da", + "scripts/endpoint_gauge_network.py": "7af181e30093d593ca58d0a133dca6862b06f2d350db1c5d745e588856258704", + "scripts/endpoint_gauge_producer.py": "484490dda84716f7077b07aa14fa510fbef2f77124c8b0b99e2adef50c232690", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/experiments/affine_vector_screens.py": "756778eeca27f490adc7354a122dc50c40375156259991469c47a90949118ea1", + "scripts/experiments/affine_vector_witnesses.json": "672a4318c48f5286ce088d34736c38957b7f662a5f753d440dbc638e7da5f62a", + "scripts/experiments/balanced_fano.py": "1586fb1db4f40e79e97bae59f47192675663403bbcacbf5f4e0b702edfd22b0a", + "scripts/experiments/binary_frame_compiler.py": "bc6910c8bbe8224285164323d3c06e9035ad3eaa55416abc2867ae0066454a0c", + "scripts/experiments/binary_frame_math.py": "1f96e8aafc8ae89f8eeec5d03800131d93d58e01bf8a7fca8feb03702d1740d0", + "scripts/experiments/binary_frame_profile_prepare.py": "8a50381cab00b33e62b3a057d199ba5e19647929135c95b0fd63fc8a8ef7c9b3", + "scripts/experiments/binary_frame_profiles.cpp": "8e2e391d3ee57cbb1372c68e4aa031e1b861321536eabd642ada54e12e678669", + "scripts/experiments/binary_frame_replay.py": "392e78e62d7685c99a5888a7da743ea6c3dcad631af4a743c91e0c09348442bc", + "scripts/experiments/bit_compression.py": "d1e6726341b3619262cc07246c3420584f46bdf57d44f1946d8dab18334cbca8", + "scripts/experiments/block_completion.py": "58d928accb928fff0230eef4901a876e6d7a2ec24a3694e4784614f340a03b8d", + "scripts/experiments/block_core.py": "af94018e8f4b80219a8e9e104eae21e34b66fc670217d03ef54862b59c051fc9", + "scripts/experiments/complex_centers.py": "3744396587d729253d80980f6310b56e7bf0ea21b165bd178d0d6d4c49faf2e2", + "scripts/experiments/core_limits.py": "a31a27cc24cf0349a507d1141a2b965ea25f1c60f355d7e13c581305a12d3a43", + "scripts/experiments/cube_core_family.py": "e58f1f4067bda2d4838343f42ec2505316f006561f0702e869847d88b85413a8", + "scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8", + "scripts/experiments/early_sharing.py": "1dd42768536bac13727528e51a999152cf9516a53c4001f2c390323e7f453378", + "scripts/experiments/exclusion_greedy.py": "d8fa918119a6d944174522a5f7a2f55dc9f905aeca98e1864dc9bbf672876902", + "scripts/experiments/fano_completion.py": "6cade2a36b910bf7e68a872dc4fd3560837935cffe80f9526cd012a28b247738", + "scripts/experiments/fano_permuted_completion.py": "0b48e0ba6399ac9864b733998ff32222e7c25c99de052ab8ea5196872f8010d4", + "scripts/experiments/fano_permuted_routing_witnesses.json": "b7093d006713f0b026c49b62ac4c502731630d17d15f56a2b63284ad8f4f8102", + "scripts/experiments/fano_routing_witnesses.json": "2017a4401c16ac58ccd7911b1d2128f1a93a98b108672db709e0c21cda4bb693", + "scripts/experiments/inplace_side.py": "4e7cb3df2e263f6c7f5907c55e3ee04c08926e6dbc984bbda1722a27b0a48ff6", + "scripts/experiments/inplace_side_witnesses.json": "90fe710f5daa35cc9e4892b29d712d66110b7b2b4c404da95a960ea7041618b9", + "scripts/experiments/intersection_circuit.py": "a877cb59aca1f003fc5db4bff5cd873af57be6d8d2465835d6fbe2c396ee5c09", + "scripts/experiments/intersection_greedy.py": "e7faceecad5d1efdc849c52ebe7258453e1579308fc8e31d9a4b3256f6ca9d0e", + "scripts/experiments/joint_dual_compiler.py": "853d3fc4a740c5b74c23b3a6af5d4dc9b41fb38e9b55678539a7e0ee71947c13", + "scripts/experiments/joint_dual_compose.py": "741900aa6f69c0e3458700f3b534334269004ad80c50405ecfeda18e6d3f2800", + "scripts/experiments/joint_dual_reclaim_compiler.py": "9984aaccf880e4840402322d76678bfddb33ce7e494af78430a43429f51b85fd", + "scripts/experiments/mixed_point_circuit.py": "f509362b5031976a22af351fd158ae0b4520fa4f286a5176ec37023d672a7ddc", + "scripts/experiments/parity_phase_repair.py": "1f76f3b96ed556ed901835bd101d0e2588c997d2ed39bdfca097f0187aa86d40", + "scripts/experiments/parity_side.py": "1363ebf82d4c39e458e7bede8253688271008374db70ed4284df84253c8d092b", + "scripts/experiments/partial_routing.py": "dd67bf46aa70f1372d49c30c4fbbaff5664e27331a79ca3319251ceeec11ec00", + "scripts/experiments/pin_joint_dual_sources.py": "4d31cc0e38b7902709ca5f8f714cba109760d2592346dd7f8dc0b900a2d9fe00", + "scripts/experiments/positive_side_core.py": "0d453ab7e869d2cf6a43d6865de82583edb390d3c75038271f0fc09e0f3828ba", + "scripts/experiments/prime_core.py": "080a89a2c91505b509068698542843c9d7af3cdec01b5c88972107dc9c688c62", + "scripts/experiments/prime_subset_limits.py": "3768743ebfd982b7704fdda9c8ee8dd8cfbb4fd126a78396349d075560c047fb", + "scripts/experiments/probe_pair_ranked.py": "aed43df0d61701b5819cd50fd4e028b26f32e65fd7b9074d93e1423a3453fe7d", + "scripts/experiments/quadratic_affine.py": "8f9252bd092eb14779997c6767e090377e91f4d57e6526e9840ae0dd7dcc8f9c", + "scripts/experiments/quadratic_affine_witnesses.json": "3efcebf41650681a8a21a901cd2f81dc07a0c4d28064b883af16b10c3e0036c3", + "scripts/experiments/rank_product_core.py": "7a91c1188c5d42e864a5d2e42397b09c435b526ae4f4210c44bf615de488708e", + "scripts/experiments/shared_core.py": "d3c59b61229956cb54ae1ef9145ed213abdf1ae743929de145a77c43656f01a8", + "scripts/experiments/signed_sparse_core.py": "21da8e1de5ab6ac8479183326c2000313d24b47cc5be2f46b4fe6ac3cd59779f", + "scripts/experiments/single_intersection.py": "08ddae46e5621a5b4c525b504e67ae655abe9b49461d894feaa7abc89a51847d", + "scripts/experiments/single_intersection_witnesses.json": "c2308a3d21991f5828b0519b191b470f48b2fbbcaa5af0f7aed3986cc7534185", + "scripts/experiments/skip_frame_README.txt": "c92a53e608edb95a266ad27f4543c27668451a009c72fd5860619e6f0a355852", + "scripts/experiments/skip_frame_compiler.py": "8ffd079fd2e4f055b5befefecc5f33e686de9898219e9252f5d3913df8b195d8", + "scripts/experiments/skip_frame_compose.py": "d48e688ebb9a490f4eaf50d9ab0a4d4e3e76b6588b55d213df14c703c27a7f66", + "scripts/experiments/subset_core_family.py": "373a45a8fb4294cdf72d510d54e16d21535227b085aefb008aa092b3ad26e4de", + "scripts/experiments/ternary_side.py": "93379b6e70cf58bb55432d9f2d1c0e0305c20a075bfe3cc219deabd927afd375", + "scripts/experiments/verify_joint_dual.py": "7a31bba1e9c0ded32ae285df2ca9bc91ef20c330f6789fdba361876f3c7a1985", + "scripts/experiments/verify_skip_frame.py": "fc42dc3d59239ee3908d0e3e95402eb53fd6815a100521911fde1b541070c292", + "scripts/fast_gaussian.py": "11430c2df0783b933dc91080595bb7514bb052b8c7b12107e27a1ef701e31e43", + "scripts/fetch_upstream.py": "2109ad8965d88dec73f8e851731eb949d95164f6afd8dfd0e57c11dbc2dd1f31", + "scripts/finite_bit_contract.py": "3cff26a332cb6056f656b824e3a523fb8937d15206ddcc4118b911ac8df1b2a7", + "scripts/general_network_guard.py": "790a2064449afdbffd6dbd4adbcf4a28eaf41931ce7134e4a4e8766f3764270c", + "scripts/incidence_network.py": "033c934acb838e5222d60e09929d724281bb58ad9c2dfc02e89996788ff39ac7", + "scripts/incidence_rectangles.py": "5240fd33dcc3096f5685d10ca360186cad36b355a00d55686a4ea4449417d00e", + "scripts/make_batched_patch.py": "dbf2e939833a282e261511a89cf6fd1c59d51c73db0c6ef65f0605c7ebd7ae6a", + "scripts/make_compact_control_patch.py": "8eb6776b9049267c5a0b3209cf9668d4cc37622a9b111795a68819291db5dd08", + "scripts/make_complex_circuit_patch.py": "17d13ca9ff43a2fc411aa14fd7c8e1f25648b41f09c17a7bbe40a6cfa09862c3", + "scripts/make_complex_compression_patch.py": "4e32d120462812953109c0f7cf18db001ae0e7ae59e6e2fa7923f142df9ad96e", + "scripts/make_dag_patch.py": "1d8e693926f0c770b9a971aba5174fb77422b19f28326d62c0bb6ff62b2dd721", + "scripts/make_fast_gaussian_patch.py": "ce2013dc3a674b920ddacf25fd17329b262885af0a19279e084238318dff4760", + "scripts/make_incidence_patch.py": "11745d761a94c8dc3f150de1da06bd0c4f6841bacc07ff24a3e1807e68cfcec0", + "scripts/make_nonadjacent_patch.py": "4b1ed6115f0919afa5b375688e13dfcbe4eabafbbe32917eb912230ad8421294", + "scripts/make_paired_patch.py": "35cef140ea2656dc30f751414c10d50c6de62e52625fbad85b74f34c2739a273", + "scripts/make_patch.py": "a38a04c3e829b37a61291dd497247ccbe7204d61b505ddf36cca8bc112c11fd4", + "scripts/make_prime_field_patch.py": "a05974b4431cfdd4c5571add995cfaec0288b0c8ed6608142c790b2c61943c5a", + "scripts/make_reuse_patch.py": "c90384c4b0d3b7000e4e2b0f886280140f06627ab976ca8f21d4a32b8dd25166", + "scripts/make_shared_point_patch.py": "06c5f1d7b52fe7493aa249dbbcb9880e7c77cf8c4418ed8d1dc617910295f79c", + "scripts/make_ternary_patch.py": "fa41b5822503538e50fc56d1ee9f4bdbb45deaaf3c10c892244cc7697e0632e1", + "scripts/nonadjacent.py": "dca1e533611ac898a29e176214eb21c152853e68f97f7af533aba1ccb3b1b0f0", + "scripts/paired_complex.py": "4f4c28102bfc528e264896e6c32bbd0e66da0973237e96e4044d8ccf7e78a1de", + "scripts/paired_exclusion_circuit.py": "8f05f04cf06217befd6d0ee0f2d7d0c5c5eb32cfab8c9a8ca7917fd6d620b7d2", + "scripts/paired_network.py": "991223dc3c1374284c361ed017e42bf732dd971fa0bea2be2282cfb18257b3f7", + "scripts/paired_triple_circuit.py": "8f5f2de32fdbd8e0005154638660ff416e5a8cd59623bd0dc03f6f7f97ce2fb1", + "scripts/partial_swap/README.md": "a81a6a59b89f7db539bc317a7dce23ab84a75c7abebae105091de4e2aeb3f941", + "scripts/partial_swap/__init__.py": "0438eaa34134600467a5864f93c3e15142eb025b35cef189c2e969cffea72a7f", + "scripts/partial_swap/binary.py": "d32d7a23548cc738e974e8e55dd1fa2a8b11d2b80228515617ffe35410bb8805", + "scripts/partial_swap/binary_io.hpp": "d0be783f61ac4b7981e7e48a8c1139b52572302ba76c191c0e9a1b16a1a05e0e", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/match_exported_dag.cpp": "7901b0fb1b80b628a24cfd7fda57bbc32f58771594d08b318b90e4b8cdf0ef82", + "scripts/partial_swap/match_positive_dag.cpp": "8a6d64e2d0ac2c69210fb0b8a5bd0d714ad40b3609f75a5fddfcba3291a3d552", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/positive.py": "1dadf771226d6e4f3bf9ce3aae2e6a2ad7173f4d1c900299d0663fc4c432f3e8", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/partial_swap_producer.py": "dba07d742c68e8e4aedd1d93fc4c47a0481778268f7480997463e2b269fdd0a0", + "scripts/prepare_layers.py": "a6e2adc612f264b1c0e51d18ce6315de9ae5e2ae2420aa22e99a22d8bf304947", + "scripts/prime_field_checks.py": "be21a411cdca5fa331fb9f36352ce98c055cb5e973553255e4530d07e99ae5c4", + "scripts/prime_field_circuit.py": "50485ac5a65b2707aab2b870477fbf503f4776699f6dd5ce38fb2006cc95d0f6", + "scripts/prime_field_network.py": "16629edd6aa8357b3fabcd5e1a70027860864a64475e8c0e7c822ee81dcd1ab9", + "scripts/prime_field_supports.cpp": "927dbb2ac2a411f06d8d9e0c440548f7ab965311fd83f4a573668d94d0cff1fe", + "scripts/rank_obstructions.py": "af0bb5d7c21409bf0318ec4ec7d5f391163b7ad9564ed9e35de92ada14bca975", + "scripts/rational_span_frames.py": "ac3b9ab462b790d195628f0e5aa4f95143596a51ce7df1a99360b98594c29932", + "scripts/rational_tensor.py": "629b3f00a1aaab32fe908a73ca8f8412918209a300e6b1e5afe6325b9cfed3c3", + "scripts/research_networks.py": "3db82e1aa5faec2f76bcfd19a996a447048af56b25000af3324884a751e8e864", + "scripts/reuse_network.py": "f345f4f015a17497c173ed331aad2133908e2a67d683455ffd60dbb3b3ed1aa1", + "scripts/routing_smt.py": "25d2dfb09a34c0c0ecfdf870abe2d3883c95677189836dcce25421b9443e8a44", + "scripts/run_isolated_tests.py": "b5c38b4f4f5e967ccda5f95702d18d6f01c18d43f056bb419aaf1628043c6ecc", + "scripts/search_incidence_partitions.py": "d2e5a98d07dee702064671d9d081b8dc18e7a1bfeb45e4217905141732abd1bf", + "scripts/search_network.py": "3a4faa5037d9b8e7ca5828afac193a96b6966a8b114f14937921795b24ec4f6a", + "scripts/search_network_variants.py": "069a80a1ac504e83c5da60f4737440552df1ca4c57218ab2e32523f88199cbbc", + "scripts/shared_point_circuit.py": "c9bb7a5df92d260a4e3ad532b53e26936730d7c93f7facfb0784957c1e81c8ba", + "scripts/shared_point_network.py": "a85e7f0d8c42d6a27e3846308571ca324a1824ac5c2d59e4daa5c7673c33c697", + "scripts/small_block_witness.py": "a8bff53b5e6a13808305cab3d53c2532b1fcb5ff172653d02761b028eb60d79b", + "scripts/stopped_product/README.md": "6c1805dda45b01ed0ef420c674ec2cd0048fb9d7a1b015ab6cd837067fe66176", + "scripts/stopped_product/__init__.py": "7b794c22bccc00bb6ae8ba4d3379f469570565bbcb1a86090699133b8cf1b7d3", + "scripts/stopped_product/complex.py": "407650d56dceb5cb09d74928658cebed1bb42f4d7e28ca9e3fd36eea075f1ad0", + "scripts/stopped_product_network.py": "a8baaa87dd7679db4f2dd1a18a720397ee6f443262ad04fa26cf51b39909b74c", + "scripts/stopped_product_producer.py": "2c5c71399136ebcfebb8e5277317d5f334eb8df5716ad287391d0996fcc1492c", + "scripts/structured_bulk/README.md": "7d6a91d324019628c842db7ef2deb1fa035fbe39dd7c22877c83f190516fc0bf", + "scripts/structured_bulk/__init__.py": "9c6d0e9c71caa218263b636359b7d6c88f8428cba3cbd27b9f549045d4609b7d", + "scripts/structured_bulk/complex.py": "ee769039ea2111de5488fdc4abba28d50ed8885fa7e8dcd12728c5dbe6170b92", + "scripts/structured_bulk/exactness.py": "2e04898ee4463bf4d2f7ad6b50dd0801e4ebe195d06a33ce428ffd1c0beeb67f", + "scripts/structured_bulk/rankone_profiles.cpp": "5e003fde6e4779078988ce5ba1adf988cb846afbd8fd44faa920a3baa4126848", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d", + "scripts/structured_bulk_network.py": "82608e2e7eb622f3ff78ce9bdc3e6c97087c6785aecd1a0eab947e389856600f", + "scripts/structured_bulk_producer.py": "c20e04b5216b04b9343cb28f1b1d164c6ac42ceaac067d82d2850f908dd7d5f6", + "scripts/ternary_assembly.py": "38d12b09dd9074ca56cb658e25f4e0b9e50fad9c36d0d837fc5c059ae4ddb5b2", + "scripts/tune_routing.py": "5728c848e23c905f37a9d77928283e64ace5e7b69c3572780c1291800d005e6e" + }, + "git_blobs": { + ".github/workflows/reversed-rational-centers.yml": "95cdb10a6f131067f91987b7551c2e24f9834e1b", + "LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "Makefile": "e60b843993601a368d29220d79c9d1ec1bf05da8", + "NOTICE": "50c6d1236d1b47caf32bb1e9eafa0804722267e9", + "README.md": "31aa46c2e2314ee097e45289c6e3dffc3730187f", + "SOURCES.json": "380b5425c2797a0c11709cb02dcfbb544613f980", + "certificates/copied-centers-bit-axes.json": "bfb3a217ee1bd5decd8cf0150b8ed5573c303b72", + "certificates/copied-centers-network.json": "20bbb6806ce0611e481512894d1fd73d97c2970f", + "certificates/stopped-product-bit-axis.json": "5824891de9f7cd0ff3ba7a1fc63d9e0e245eb42c", + "certificates/stopped-product-complex-input.json": "7b1d99c51869ab176f4cb9ea497cba954ebde0b4", + "certificates/stopped-product-input.json": "f0a910a4950aadc435a2f4f8397bc59f40e47e9d", + "notes/batched-23-note.tex": "14b4c401607ae9be235dd7d14bf97a0306860452", + "notes/batched-algorithms.tex": "557cf12d7c430bdde22dd3fd6df44ffa95d6a6e0", + "notes/batched-assembly.tex": "c92598b1f5b42918c23ec2988a7223bbbba5a08a", + "notes/batched-bit-rank-accounting.tex": "311f6055b51a0c8bd7f6ab6d89966ee4efdf954e", + "notes/batched-bit-rows.tex": "cbaa8cb42cad1e714a1d24b16ab160ae6eaf60c9", + "notes/batched-complex-rows.tex": "e13bd96eb29bdc6526f10dc32e0a146bc17848a4", + "notes/batched-path-budget.tex": "be338f96e83e769de090d5e9dee802bea645c72c", + "notes/bulk-complex-guard.tex": "a37613f05f8301156dca00e202e275e4bb42ddcf", + "notes/chirp-scaling-correction.tex": "a7917c55348fb4da5b095c227839c055349e6daa", + "notes/compact-control-guard.tex": "bfc3b3bf9affd15c971a9fa9e7b406e08faec1e2", + "notes/compact-control-layout.tex": "16f4d233471a7d189163ae7e7902becadecbba64", + "notes/compact-control-movement.tex": "06b6a9ef24245ac7b724c53a204635415b402357", + "notes/compact-control-note.tex": "0d837f6242a3dcff2c434b863987ff39f875746e", + "notes/complex-circuit-construction.tex": "a5887b38d4c397fe8d7426bf4d6da8b9ea8e2ea2", + "notes/complex-compression-note.tex": "878314338a4f1142eed0f8b7f88614cce0373e76", + "notes/complex-compression.tex": "186328572907c63735a9ccb403326ffb747773bf", + "notes/controlled-projector-basis.tex": "7328e12957f8cef39e7425ee90d8aed4f8bb9991", + "notes/copied-centers-assembly.tex": "b0c69166c3048d27518355995e3e5b622722c696", + "notes/copied-centers-bit.tex": "1b7a2a88a49fb6d61238cde777051424d79b724d", + "notes/copied-centers-complex.tex": "fddd7bc7f2a2f749ba6eada19d153bf9243ee31c", + "notes/copied-centers-lemma.tex": "8933aaf508aa9d4c75ba1290913e02f6868d351d", + "notes/copied-centers-note.tex": "739c24a47d13e9b4c35977dedfef28876cdb313e", + "notes/dag-construction.tex": "ca469ce0525f0cd118218479c6917f3bab3f22e8", + "notes/dag-note.tex": "9919eea49bf83af1c6045a4549a8858187eb7d06", + "notes/disjoint-tensor-compression.tex": "0e3cad1b933f532cd83d6a3e93114c4c9361e65c", + "notes/dyadic-central-factor.tex": "ab92b9eaedbe5100367c25838674f30b8cdf45db", + "notes/endpoint-gauge-assembly.tex": "1904cae2a677f77d34e3bd4b47d665d924b8af4a", + "notes/endpoint-gauge-basis.tex": "8bba0203b0f59cb0c2e9e29850a4268f44d78721", + "notes/endpoint-gauge-complex.tex": "907a0ceda8df0317ddc7f2b71df5af2aa4d47dfc", + "notes/endpoint-gauge-construction.tex": "9830974a2595121aba1f477159dd6ae1ff88622a", + "notes/endpoint-gauge-note.tex": "0b8155c6a05a3ed79480edf2848db0a7b33fe632", + "notes/fast-gaussian-resampling.tex": "a102d214280181fe10fdbcd6343326e40b7849fa", + "notes/finite-alphabet-transfer.tex": "bc9540b3c576cf0e3fee949030d2a7faaa2879cb", + "notes/general-network-guard.tex": "bc5b83610d47c82edf19aa42891428429ed14cc0", + "notes/incidence-construction.tex": "e1c25ee51187c0dfb1bda705793cad281348cb51", + "notes/incidence-note.tex": "e9e8a99db927a3c40ffbc8c98722fa3abb9afc71", + "notes/independent-complex.tex": "a4429e8ee6b05072fff2bd7697925e797b517c10", + "notes/nonadjacent-axis-note.tex": "5b684f5cfb25bfa6e259e862544217c14c07542c", + "notes/paired-construction.tex": "7fd264d4bf48cb87d355bdab2bd92129857a7b77", + "notes/paired-note.tex": "e23e5d215bd1ae8e9b8779fbba99e0eba81179da", + "notes/parameter-note.tex": "624c4f8fcfd9ad0675479ac06bc183e1a8ab2436", + "notes/partial-swap-assembly.tex": "7bf3bbe158992be7a15854071ee9f72769eb4d7e", + "notes/partial-swap-basis.tex": "2c54b85c42bb9274af811851cb08a5357f561832", + "notes/partial-swap-complex.tex": "98c343640af47cc3fec9a60f514652ae6b89abfc", + "notes/partial-swap-construction.tex": "60c41a168e183f5797a275c39c468f5fc059ce5e", + "notes/partial-swap-note.tex": "5799f6a1fe7790b252d120e0c4f737c333a4773b", + "notes/prime-field28-construction.tex": "21ce20f336281accc1097b20f0c7866bbd613404", + "notes/projector-batching.tex": "c4e3984390c2dbba1acc36d866e95850f3a5605e", + "notes/routing-tuned-note.tex": "c94c50151c9f21695f06bc6668faf71427a90a1b", + "notes/shared-point-construction.tex": "3533740997428f893dc1abac2fa2e667a694c98e", + "notes/shared-point-note.tex": "2c342a4ee7eaf5e24bd33bfdd4eea41e76ea8dcb", + "notes/stage-reuse-note.tex": "ad90ac8779f847df3776b8b6a48d15d65bddfe0a", + "notes/stopped-guard.tex": "da5ea40785aa98f627753038750c564220298d95", + "notes/stopped-product-assembly.tex": "3932d3ade5ddeae127c246aed515e0346a40f067", + "notes/stopped-product-complex.tex": "4a9037137cd3158dbeca6d9e3b1881a599ebfcb5", + "notes/stopped-product-factorization.tex": "94f7b81397e20406acba32231b7ef4bdc29c43a9", + "notes/stopped-product-interface.tex": "20c44ce4866fa972ce64365dcf365b1659a83050", + "notes/stopped-product-note.tex": "a8b23254c8873d9c2480750a7d435b6cbab3b021", + "notes/structured-bulk-assembly.tex": "9bd11d88d201d6aa7b110bc169648d928c3a9c14", + "notes/structured-bulk-bit.tex": "fe13b87bf486582a8722cf881e271a31c69d422d", + "notes/structured-bulk-complex.tex": "53868b41b2fe979cae9dae242ea0e0aef5681257", + "notes/structured-bulk-crt.tex": "385f2af8aab4884bd7bb42c89fb75c3b81d3e736", + "notes/structured-bulk-note.tex": "def3d3c52f89cb6abb934414906299933833c3ac", + "notes/ternary-five-subsets.tex": "ddc08d1b1385d685611b9c3d6d8358e4269b70e0", + "notes/ternary-note.tex": "bbc1da178845876ecb370d6973b45e998f8a5810", + "references/copied-centers/MANIFEST.json": "7c430d61a27db8aeb5fb631fed26926d95025260", + "references/copied-centers/PROVENANCE.json": "23bf52d541c00fc289959a07caf0fd5c893943d0", + "references/copied-centers/README.md": "9adb20300fbff3c7f5c072f28150e9cb43b52ed3", + "references/copied-centers/SOURCES.json": "99481f67ff79ea0871f99a5287c4b456f0721677", + "references/copied-centers/pr29/LICENSE": "57bc88a15a0ee8266c259b2667e64608d3f7e292", + "references/copied-centers/pr29/NOTICE": "0fb470fb5abbd67fdc9541e0fa8d3e2cf566d8a2", + "references/copied-centers/pr29/SOURCE.json": "617fde9fbe0aa82cb4699f7d0c0c382e22c8a7c5", + "references/copied-centers/pr29/paureel-direct-transfer.tex": "510699d65f8f9b2546b9b165c7099a6cdebdf669", + "references/copied-centers/pr29/two-stage-16-note.tex": "d137605bdd869ed9c684f2721794ab6d82f1d511", + "references/copied-centers/pr33/LICENSE": "57bc88a15a0ee8266c259b2667e64608d3f7e292", + "references/copied-centers/pr33/NOTICE": "65f27fece6425830b52a2dc691803ad56f63856e", + "references/copied-centers/pr33/SOURCE.json": "93a04ab819bea1f2e5e57819f0f6c29302a6cd3d", + "references/copied-centers/pr33/two-stage-corners-47-45-note.tex": "1f8bcffeda67031af4edb705ee3812e83afb9e84", + "references/semantic-bulk/MANIFEST.json": "983e06d3e2badc3bfcfd54875054f935e344e416", + "references/semantic-bulk/README.md": "528a9d85a751f273391ff5bb1e3a0b72f42e7dbe", + "references/semantic-bulk/pr21/translated-partial-complex.tex": "1b8fb4196372c5322da8fd8d907209b248795d7b", + "references/semantic-bulk/pr23/LICENSE": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "references/semantic-bulk/pr23/NOTICE": "3b3d519cac5fc7e0ddc0383619940e968a69fb25", + "references/semantic-bulk/pr23/SOURCES.json": "815d784be5c30224f9fd3791b567066b7d074cd9", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "abd5e0f2cea9de2a09bc0bfee844224ab3155520", + "references/semantic-bulk/rad20/LICENSE": "0e259d42c996742e9e3cba14c677129b2c1b6311", + "references/semantic-bulk/rad20/NOTICE": "544634f5f3001c50330413f22dc0070e07c46738", + "references/semantic-bulk/rad20/SOURCE.json": "f19aa02a1d430ab30133727ddee5f6686b49ac37", + "references/semantic-bulk/rad20/code/compact_arbitrary_source_routing.py": "3cfd5b0041ffdf8ccdcf4b35080d1807503e6a1c", + "references/semantic-bulk/rad20/code/downstream_banded_inverse.py": "b1796a5b814300457e5bd752d673ec3631dc4131", + "references/semantic-bulk/rad20/code/downstream_blocked_gaussian.py": "4e1066f40ab6fb8c40a397f197749b6c41118429", + "references/semantic-bulk/rad20/code/downstream_gaussian.py": "47cde303f319d24a08a7a226aee13a3eb2347ea5", + "references/semantic-bulk/rad20/code/downstream_phase_inverse.py": "10a00978537d4eab0280eb61d2592fcefbd3f170", + "references/semantic-bulk/rad20/code/review_arbitrary_routing.py": "901392cc204f48d9704bfe9be7a2049a44b5226f", + "references/semantic-bulk/rad20/code/review_balanced_transform.py": "5b37d2770fa716250892b162eaaa860933511128", + "references/semantic-bulk/rad20/code/review_banded_inverse.py": "b470d17592d7fc2edff0f476171b0e0e5003a0f4", + "references/semantic-bulk/rad20/code/review_bulk_boundary_negatives.py": "32d94251f808f0e7a94d757d70671c3d91fb15ff", + "references/semantic-bulk/rad20/code/review_bulk_resampling.py": "b85caf1ed8d74da0508d83fe4ec4fa09857585d8", + "references/semantic-bulk/rad20/code/review_phase_inverse.py": "3140a7ba56385bd95a137087ab95c697f825aa6a", + "references/semantic-bulk/rad20/code/review_semantic_guard.py": "31c6a46a52df4d379bea582b935b2e7214d82491", + "references/semantic-bulk/rad20/code/review_whole_complex_transfer.py": "444f70cfbae45fc0d73d2c9f933bf1ed91bf603d", + "references/semantic-bulk/rad20/reports/bulk-resampling-tape-transfer.md": "7141f84808633e22760e6ca760302ec153f3770a", + "references/semantic-bulk/rad20/reports/compact-arbitrary-source-routing.md": "366f97407b6c8c46f1263c2bbcf2a46be5f40de7", + "references/semantic-bulk/rad20/reports/downstream-microbox-resampling.md": "27f962de34b6943aee33cc0d40b8c7883ccf56f2", + "references/semantic-bulk/rad20/reports/downstream-phase-cell-inverse.md": "d72345a0aa748443c4efcddf87aa10d524664841", + "references/semantic-bulk/rad20/reports/downstream-semantic-bulk-assembly.md": "c9262e908a0ef014699d175f7bf427aed6469577", + "references/semantic-bulk/rad20/reports/downstream-semantic-child-guard.md": "970927dcf8e26447fe95be2edda6f20087dcba15", + "references/semantic-bulk/rad20/reports/review-arbitrary-routing.md": "b0818f69e68174de819692d68bb6edc69254d491", + "references/semantic-bulk/rad20/reports/review-balanced-transform.md": "5a173f4e62ee4ec1ee39aa5d7eefdd63a652e411", + "references/semantic-bulk/rad20/reports/review-bulk-resampling.md": "9731a03fdb7a1cecaddab737545befa238cb9ad3", + "references/semantic-bulk/rad20/reports/review-closing-handoff.md": "bfdb58b76fc38fb468ae8240d5d298f69331f40e", + "references/semantic-bulk/rad20/reports/review-compact-controls.md": "78b50c3fd1d3f45c2854cca2a4f2431627ff7be5", + "references/semantic-bulk/rad20/reports/review-phase-cell-inverse.md": "395eab8ee1d58e84353f554dcfe9473b5913dda5", + "references/semantic-bulk/rad20/reports/review-reusable-banded-inverse.md": "de7a916369cc36737fd96b9b0172e2ef453c6b03", + "references/semantic-bulk/rad20/reports/review-semantic-child-guard.md": "a12a6dca1758bee3855834c0c60b17e1d00ec718", + "references/semantic-bulk/rad20/reports/review-whole-complex-transfer.md": "1d2ee312bc6618c7eb2479ae27544edf64e31c20", + "references/semantic-bulk/rad20/reports/whole-complex-concatenation.md": "5d5af6796ad3cb1367da1aae52becfa4f580bf80", + "references/semantic-bulk/rad20/reports/whole-complex-prefix-and-wrapper-qualification.md": "b2702b6fc0624ab276b27be3db2a32d30e26478d", + "research/reversed-rational-centers/README.md": "38a5103beabe4e3e8ac4aaa40336a662bd963c2f", + "research/reversed-rational-centers/SOURCE.json": "a5cc42f6115d88e6464a666dc0f1d94f4a69e5f3", + "research/reversed-rational-centers/certificate.json": "e31330c72e1f6d1883e9cdbb0c496a65fe4bf687", + "research/reversed-rational-centers/producer.json": "d68bff129724a99df23b78300dfff2d7a24d058e", + "research/reversed-rational-centers/producer.py": "4055781c191a39eb9a18fc8dd98c6f265be418a0", + "research/reversed-rational-centers/proof.md": "10acfd25c9babb8c864a73758ae91077be19b9f4", + "research/reversed-rational-centers/test_controls.py": "347275d571216af42b8e715864226cc63d227c15", + "research/reversed-rational-centers/verify.py": "96affed54d34071304b10ebbd6b6479e0c94f17c", + "scripts/audit_additive_labels.py": "97d6796b5dd6e5aacff8b53558b3f23e0ded3aee", + "scripts/audit_affine_vectors.py": "9f5e3dff5e7c0444d160fec3a773fd702b0bc569", + "scripts/audit_bit_compression.py": "bc2521f862b1710b4afb060f07bcbeb595f78bce", + "scripts/audit_block_carry.py": "052d4a1897478ffc6cfe4baef0cb326557dc8a2b", + "scripts/audit_block_core.py": "465c4309cc8f5f5e481e76b3eea3ef20ebbce2ca", + "scripts/audit_block_labels.py": "5270126421a2a0a35945a50dd76663c17ca65afc", + "scripts/audit_cancellation.py": "bc3900f5903337d91a94f28d51429754c4c4b417", + "scripts/audit_coded_carries.py": "9caa445f8105826f363580c45f2e513a2bc7047d", + "scripts/audit_community_candidate.py": "41176b012f4927b34d20fce65f085cecb72f64aa", + "scripts/audit_compact_controls.py": "22da5574cb160fafab359a0a41bfe86db5a3bc34", + "scripts/audit_complex_centers.py": "3d985ee3eb1fd43ab5cc07a8570b438bf080e4a4", + "scripts/audit_core_limits.py": "954b1fadc72200af5a5355287eb7c2f1369c688f", + "scripts/audit_cube_cores.py": "c3a92b6616566b26c1fd477c48793d3064988d17", + "scripts/audit_cyclic_topology.py": "a6420a4ccf3066ba9f54cfb9f758cb6d9b9b3b90", + "scripts/audit_disjoint_tensor.py": "08cb8184abcb7f81434395871152e4902df8cf84", + "scripts/audit_early_sharing.py": "33ce7c0dcffe97acab529700c348e2cd430ad874", + "scripts/audit_fano_completion.py": "56e3370aea0678ea6ee4228083fa570a9adb124e", + "scripts/audit_fano_permutation.py": "cbb09c4507c9030e4a1bcf9672e41ae470552398", + "scripts/audit_followup_candidate.py": "a190d846e24adf332737687d7510576e1da93846", + "scripts/audit_fused_block.py": "c63869d22c6454cf6989bb6e70d41f0571eef985", + "scripts/audit_gather_schedules.py": "03b6d9eb30193576a6a281f7897b5ada608369e6", + "scripts/audit_general_guard.py": "dd7d53ba8e0df79ec154b1426305063457b5595b", + "scripts/audit_inplace_side.py": "2e9108178ee2e07d17f52d7cf79e079e91ba5feb", + "scripts/audit_joint_candidate.py": "5e0c224e9a8baaece4a5013234cb9f59fdf820d6", + "scripts/audit_joint_frames.py": "913be4a1f0a651f3aaf7b4ed1901916918ba2cef", + "scripts/audit_joint_return.py": "c08b089d2527385791067df6c594f7ff9cdfbb7d", + "scripts/audit_mixed_point.py": "0c9e11b9f5d7fae9b5e5a312eca3f246b7aa7d3c", + "scripts/audit_packed_movement.py": "63e7d3af6258da197dffe4c98b7a47907f703916", + "scripts/audit_pair_candidate.py": "04da76669657ae46a58c39a8ba07c689e9e43efa", + "scripts/audit_parity_side.py": "61d0f7b77cf86b1bd809d2b4286873295c8964bd", + "scripts/audit_positive_side.py": "e3114282b1877cca386e19bdb4e259f62f68bf1b", + "scripts/audit_positive_skip_exact.py": "026294676fbb2f1c48a0c6c20fa52098a5d48e22", + "scripts/audit_prime_subset_limits.py": "6b67b94a8c55a642998a81640226f8ede8bd29c9", + "scripts/audit_quadratic_affine.py": "9b1cddc5e836a3038fb7e15dbb5813cfc11c96c6", + "scripts/audit_rank_product_core.py": "62e1863c128d371af5a07ced80e13740d05979c8", + "scripts/audit_scratch_pooling.py": "94e169d35f818216956939800cfacede0f41f2f3", + "scripts/audit_shared_core.py": "20c6ade31bbe31b76d62f78d7251034cb23f89ff", + "scripts/audit_short_guards.py": "e5c52c8afe086a2d0c9418833c550c865ebf8615", + "scripts/audit_signed_sparse.py": "727820f54a4a854ee293c972e43c4c52b2803dd6", + "scripts/audit_single_intersection.py": "4add97e99529deb8a1e0f587290d6f1a2a6f5c9f", + "scripts/audit_sparse_fusion.py": "4e8e789d686b85a49fc12d36f87619eed705d6a8", + "scripts/audit_split_centers.py": "13f8faba87ca3db7a5daa3d94e652bdb91224d06", + "scripts/audit_stage_pair.py": "99f2fad2d7929f8753b6b9c6cabd276d110c88d9", + "scripts/audit_stronger_screens.py": "35640b7964c4b893db010598db2535d5e49ab206", + "scripts/audit_subset_cores.py": "4249c322ee806337ec9c907f917584da0b71abac", + "scripts/audit_ternary_side.py": "f2aaf97d39cf312a66cc444fb5b0abd2162e74ee", + "scripts/batched_bit_rank_moment.py": "594cda4c33e040bfa312398b60a22d7b19ec6f25", + "scripts/batched_network.py": "c5904608fb1e5c0211356c1215326de55d49a18f", + "scripts/binary_phase_frames.py": "c8e4fa71fe60550324f9e43c1dd5ad6d9bf4e2f4", + "scripts/block_label_targets.py": "173152ce8dbd990f3f654f8aa992048088860048", + "scripts/bulk_complex_guard.py": "25f32d5130b4790b52fe5e22caaf2d42ff982370", + "scripts/certify.py": "a773311b726fd1ef98a056f6f76010e872d7908a", + "scripts/check_lean_axioms.py": "3709039da8c29f11a9668056ee34c3c9f560e9ac", + "scripts/compact_control_layer.py": "11b2e751bfb2fb141b586042b6f6fec4e498c763", + "scripts/complex_circuit.py": "9e83a1065cd5b5f337b39de58d61bac335feb7ce", + "scripts/complex_compression.py": "8eb3cff3d013eafef496729667888ffd3824e268", + "scripts/complex_network.py": "af9bb6d7b31f3006189761d99bdd919da84656a8", + "scripts/controlled_bit_rank_moment.py": "0028f3a2f6277c2c08966f934244b2996d5dd484", + "scripts/copied_centers/README.md": "4dc9de2dc00747497027664496b9cc676b0758e6", + "scripts/copied_centers/__init__.py": "e0758c53caeeb71fe05eb38bc6ad9bef8a5a8dd9", + "scripts/copied_centers/corners.py": "80fc438270be82ba4af9fc9aab2dca4d1a6e0029", + "scripts/copied_centers/physical.py": "31d0083382c029e308bde18517dd154c74442457", + "scripts/copied_centers_network.py": "74796d6e1577b4d6745c77d82d586d1c78daf532", + "scripts/copied_centers_producer.py": "01ef0cd5b9ea22d21a58563809a4431e6e2c4b7d", + "scripts/dag_network.py": "e280c59564eaa6821130fab140d1596d2864de66", + "scripts/endpoint_gauge/README.md": "a19dc16b66c8f576f1f58d4a032247becf30cd55", + "scripts/endpoint_gauge/__init__.py": "aaa2523040cad76f67d851b99e5bbfea1e0d8497", + "scripts/endpoint_gauge/bit.py": "4c62d83a6f4d63270ec34582696ccebbd472be8a", + "scripts/endpoint_gauge/complex.py": "7127833c433954c96e7815dba2db62f71016c218", + "scripts/endpoint_gauge/match_complex_general.cpp": "48df1bfea2ea5368cc612655cbd827527bb9e698", + "scripts/endpoint_gauge_network.py": "86916c09716352cbff529788c517cb5b250f85e0", + "scripts/endpoint_gauge_producer.py": "7e36da67375a2d0fa50aa94f5163a6b14bc59de4", + "scripts/exclusion_circuit.py": "aaa99986c4b81c5d4fbe016fd216a4818940bb95", + "scripts/experiments/affine_vector_screens.py": "0686b47d4844bedc9dddfacb0bff52ec552120a2", + "scripts/experiments/affine_vector_witnesses.json": "0e9a488ac4912cbf2bb83894c1b6c9b607cc02cd", + "scripts/experiments/balanced_fano.py": "136446fa017ae8370c3f069d98ba278f4c5f96ce", + "scripts/experiments/binary_frame_compiler.py": "f1d1b660677f94e452fab1a0c99c3ad1a49705b9", + "scripts/experiments/binary_frame_math.py": "b87855e808802c6b5dbdfb845f2328370ff8a4f0", + "scripts/experiments/binary_frame_profile_prepare.py": "85ad7b77bda86e5eee0fbe165cc6d5c5bfe4427b", + "scripts/experiments/binary_frame_profiles.cpp": "1b52bd057dab5256d012df34b5514aee17686590", + "scripts/experiments/binary_frame_replay.py": "ea39119bb9069814c0af9bb725c9a5996f0381bd", + "scripts/experiments/bit_compression.py": "1763ac8fd80c79668fd125c566ae074543b6f0e1", + "scripts/experiments/block_completion.py": "aed9deee2f397cfed59a624332777a94ce3d23e4", + "scripts/experiments/block_core.py": "971bf31caa06438cf116f96520d538ca71b4d108", + "scripts/experiments/complex_centers.py": "13be871d501b7ebaaaec7e755ff4834c6cc49dc7", + "scripts/experiments/core_limits.py": "947886b47afc384ab55abb218fbb287c4e15cdb4", + "scripts/experiments/cube_core_family.py": "16f4d56790b2c5f710497b086a8bc8d48057d366", + "scripts/experiments/disjoint_tensor.py": "dd196e67162c349d9b6f7aa27edbed2b1b0b601f", + "scripts/experiments/early_sharing.py": "671df3d5fb4e13d1758edf4efeb7276c65122468", + "scripts/experiments/exclusion_greedy.py": "ed8d290fafb537ca60a65863a7a7cb00ce56e271", + "scripts/experiments/fano_completion.py": "86a0ec6e62fc9a371f03d0e87457a085c9e494f3", + "scripts/experiments/fano_permuted_completion.py": "cc70696bf3c167a3d7110c4f75b0c2c193219495", + "scripts/experiments/fano_permuted_routing_witnesses.json": "ae0108f463155c41217c45521fdcb67ff2f3d995", + "scripts/experiments/fano_routing_witnesses.json": "c4d04ad21c67f6242760b8f3f86289358b7cf2ca", + "scripts/experiments/inplace_side.py": "db3de6f1d962ccc3a4eae31f83c72bba995ba44e", + "scripts/experiments/inplace_side_witnesses.json": "9d9970245a71705da7b84122a8be5b44755b5005", + "scripts/experiments/intersection_circuit.py": "bdcfcd0b3389ec81af3d698decc65c7891e9fbfd", + "scripts/experiments/intersection_greedy.py": "7d8d71dadec0549dfe41810bb2e49180395ed69b", + "scripts/experiments/joint_dual_compiler.py": "d799ae9e5c841b4f264fda1f6405f57727fb0335", + "scripts/experiments/joint_dual_compose.py": "1db1f1f606f3b3e7980e794e6e95d2e789aa5092", + "scripts/experiments/joint_dual_reclaim_compiler.py": "1eb8dea9fa13033478a5f83b536b7c291c9bc0c8", + "scripts/experiments/mixed_point_circuit.py": "b7f561f416f815d0fd135f0a0464c291a9a68468", + "scripts/experiments/parity_phase_repair.py": "abefe12ede95a382b9eeb74906c7c519d94bd705", + "scripts/experiments/parity_side.py": "5a8dc1b84715e914eb6d92b37636b72d6d2f9ebf", + "scripts/experiments/partial_routing.py": "e0ab64dbbbefe9cc9b3dd6fb81508de09bc60b28", + "scripts/experiments/pin_joint_dual_sources.py": "94ec6bd77b63babb48f7398973eb7d25958f6d3c", + "scripts/experiments/positive_side_core.py": "df3d6d565f2639482b959ecd26a5dffe27c8207f", + "scripts/experiments/prime_core.py": "ded5b71b4dd886458a352b16c1f5258e451f5f47", + "scripts/experiments/prime_subset_limits.py": "5dfd6ffecff326cebc10edb876d6b142e1a01fc1", + "scripts/experiments/probe_pair_ranked.py": "f05fd4ceecc3114ec9fc91dc4b24f22ae8218d24", + "scripts/experiments/quadratic_affine.py": "271e0a4e0bc077244859009ac2201f172152720b", + "scripts/experiments/quadratic_affine_witnesses.json": "134c9255268dd7043138491ad25cb4487e3168b9", + "scripts/experiments/rank_product_core.py": "e5c093f467aa1edf1fea0e058ccc88806fbc09a1", + "scripts/experiments/shared_core.py": "44be9424fc65f7b59eebdaea74de1d7f69b70898", + "scripts/experiments/signed_sparse_core.py": "724ebd576383b81acfeabfbc6608b22b29196a6f", + "scripts/experiments/single_intersection.py": "c14fdaff1435e90e91049a9e0ee068279f9e112c", + "scripts/experiments/single_intersection_witnesses.json": "f2bb1fb02bd191f954cb2199ee33b856694e466a", + "scripts/experiments/skip_frame_README.txt": "33b615da0571db0b1268340fc4c503ac63868c0e", + "scripts/experiments/skip_frame_compiler.py": "2bbb9f2c44ae74df68ace7f6a80fa099688f255d", + "scripts/experiments/skip_frame_compose.py": "d9961c9c7f125503e404cccc7174a3dc51f2b2eb", + "scripts/experiments/subset_core_family.py": "007e35a943801d5b6f31c343bbbbd931eb6d4ba3", + "scripts/experiments/ternary_side.py": "a50c627e31246aab64af151635a135d4fd7a9f32", + "scripts/experiments/verify_joint_dual.py": "bb9e7a8d376dc257c53ab09fe7cea1e7c29c38a7", + "scripts/experiments/verify_skip_frame.py": "4dbdb25d9f6e24ccd23a01dd0c220f4bf4699c00", + "scripts/fast_gaussian.py": "f534b9e894381ddf301d8dda9d4a0f3cb9a2e249", + "scripts/fetch_upstream.py": "fd628c3704806aa19f8d9d73122001f78693ef72", + "scripts/finite_bit_contract.py": "3b58da79c478d43a6e9ceaebd7f42105eec098c4", + "scripts/general_network_guard.py": "3fbc230c67a9a57b1439a925d62d863e28dff7d6", + "scripts/incidence_network.py": "ab0c88c850f05514f7436876bd56abc9d3c0dad2", + "scripts/incidence_rectangles.py": "2368244337fe923452b7bbd33216a00421ace269", + "scripts/make_batched_patch.py": "7f56a61ef17da9cc3e9302fa33352dbcf96d0a07", + "scripts/make_compact_control_patch.py": "8c7a209c05d697c84d3fe34d5c0c825c2eb83ee8", + "scripts/make_complex_circuit_patch.py": "29c79b5d50ff88a418b4d8e21b7dbd2de1a779f9", + "scripts/make_complex_compression_patch.py": "c315440d385b8bf2739e8fea8dffb07bd1efd2fb", + "scripts/make_dag_patch.py": "cbf4415b662346ca4a0f93b7f12bd47b190a6638", + "scripts/make_fast_gaussian_patch.py": "7d77ef37bb83fe2015b7f9c08fbb3c81c12118f3", + "scripts/make_incidence_patch.py": "fdf8c92b34d9886c7687d99dcba8ba398eabc5e7", + "scripts/make_nonadjacent_patch.py": "6c54971412d32bf247275ede7384053946310b90", + "scripts/make_paired_patch.py": "bee14831486d3f7845196a7e8164f1767748585d", + "scripts/make_patch.py": "5dc55fdd16c99f0f044306e24d863d7be32770e0", + "scripts/make_prime_field_patch.py": "064f9b345cedb32303190227089ddb92980ba723", + "scripts/make_reuse_patch.py": "db49a60d6cb5b051d5f2bceb03f94c1fea556761", + "scripts/make_shared_point_patch.py": "28142e5f4d89898d0ccc51b137770df8c0b9d3eb", + "scripts/make_ternary_patch.py": "eaf614c81d6daa7209940965d9a3cb57a0854d90", + "scripts/nonadjacent.py": "480ecab1456af9293e523f31cabaddcf309ada75", + "scripts/paired_complex.py": "6cf178467941db8f88b0b0d473824d2a2301ad25", + "scripts/paired_exclusion_circuit.py": "36d1fa2c0235b9b307243a8735e38a3fbf957113", + "scripts/paired_network.py": "910449dd510c89ca24aa56904d225b86abfb3be7", + "scripts/paired_triple_circuit.py": "6b10e490b7601c212df889affe06736925f15281", + "scripts/partial_swap/README.md": "3e753db831c6df9bdfb8885042f2aa464ce0d356", + "scripts/partial_swap/__init__.py": "ba99c12519d14b27975fb49fc713d9f109b6535c", + "scripts/partial_swap/binary.py": "69a398e9afe3b3118f30996aba36e0b733f2f5f7", + "scripts/partial_swap/binary_io.hpp": "4058f0f06ef0665d8ac97868298881210482b514", + "scripts/partial_swap/graph.py": "ded4462b9f1767a3bc85256ffff8a71855339afe", + "scripts/partial_swap/match_exported_dag.cpp": "ea1244ad446169b6b129910de31696d79d2e135f", + "scripts/partial_swap/match_positive_dag.cpp": "af5a6fb432f59318bb9ec08bc2817e68337a48d9", + "scripts/partial_swap/paired.py": "b879293977c4705fdc47905cd6c58906161da3e7", + "scripts/partial_swap/positive.py": "5d038b4250a3ee7a04a00573ef666a720cb39cd1", + "scripts/partial_swap/shared.py": "a2f0190704db83bd8ef48e46e723c49b925804fe", + "scripts/partial_swap_network.py": "2e8a834886362b576ad8cff96a639e6e41a00af7", + "scripts/partial_swap_producer.py": "9a450f15fba11c2ad49df346a3e0d3cdb25b1f5e", + "scripts/prepare_layers.py": "8e17b52f9573135426d7ba6865c8c9bc8da8639a", + "scripts/prime_field_checks.py": "ac49d44df47e2ac1f6b12a43bcc7d39fffbe6888", + "scripts/prime_field_circuit.py": "e46911168c06523ded1943a7f026eccfbf2f68ff", + "scripts/prime_field_network.py": "3492b2ecb252ba37e704e6263231d415fa9a75e9", + "scripts/prime_field_supports.cpp": "456fd2bf4f836d725b187494f8263de8d9e0b447", + "scripts/rank_obstructions.py": "b913f7c136ce0d955e7ecb731386b7bc9e7e1edb", + "scripts/rational_span_frames.py": "bef0286625989005baf3b5831bc77b1292e18f3f", + "scripts/rational_tensor.py": "383bad4ac7546877717fce402fbb3650f8cfd796", + "scripts/research_networks.py": "e8369a4176904e5768f3a4ca645c6ffc3ef49acf", + "scripts/reuse_network.py": "50e810a40f9edcb1ddc673e7df56c9bf995838ac", + "scripts/routing_smt.py": "21cf37b4a2c6df6cd05b6c3cde5f6ec2b40f113c", + "scripts/run_isolated_tests.py": "bb4ecc7cd3b2af051175aab1ce9d0440e5cacbf7", + "scripts/search_incidence_partitions.py": "b2e5c8bb6f5028e5a35ced203d3f4196afd6bcad", + "scripts/search_network.py": "f03d5c1b2c81afd6c2f1d3ba9e17d4e7bcd31b9b", + "scripts/search_network_variants.py": "52e59accb980312be48e9d6274473ba7c3145382", + "scripts/shared_point_circuit.py": "8347a0bda63fbfb51b86c6c6d10a7bf541816308", + "scripts/shared_point_network.py": "0ec7e75046fe714968c49178cd7f83e80e9f9d94", + "scripts/small_block_witness.py": "74f23897e6d64a08209a76fb415711c9067cd013", + "scripts/stopped_product/README.md": "6c18be051fd266f33a3acfa0a7fde0bf534d4d6f", + "scripts/stopped_product/__init__.py": "f7a6e9066153e374017a03fc1a6c6f01d1655b5b", + "scripts/stopped_product/complex.py": "ef1af2550763335e60b8427ba11fccd30025d507", + "scripts/stopped_product_network.py": "5f349a2676419e1002b0d41564d8cf51dd2f1f75", + "scripts/stopped_product_producer.py": "aefc91d9a773b42c59a807fce323fbfbcf471c62", + "scripts/structured_bulk/README.md": "81eaf6aea30eb0d0b56b1b82ab008c984714afac", + "scripts/structured_bulk/__init__.py": "423fb75fd37fd52482a60c99589c4e4d7d815a27", + "scripts/structured_bulk/complex.py": "f1e27c6a100c6a8f974f77c4029c92218c9fce9f", + "scripts/structured_bulk/exactness.py": "5df0772efe8419b24db18e7dae3c874ed6140658", + "scripts/structured_bulk/rankone_profiles.cpp": "5c609775faa3f7c65a4069b9fad66673110d853f", + "scripts/structured_bulk_assembly.py": "b76f9cb5a452fb637f3a8aec0748da6d2d81968a", + "scripts/structured_bulk_network.py": "32cb7d3b730675e52916de1b6be15e7899ef2279", + "scripts/structured_bulk_producer.py": "5bda9ddd6e04786b6b08acaf12d5b0f59a328e64", + "scripts/ternary_assembly.py": "0e523bd10cf689cfaec40c28a123ffea9b5dca4b", + "scripts/tune_routing.py": "d549bbc6fded9d39d5cbc8755f71ab7b11a2125e" + }, + "head": "b06b82a456409968ae3f2c6765ae63c3f0343548", + "repository": "rohanarun/integer-mult-bounds", + "scope": "Complete original PR107 selected source closure, including preserved PR104/PR36 proof and finite interfaces. Original Git bytes and notices retained." +} diff --git a/references/stopped-recursion/pr107/LICENSE b/references/stopped-recursion/pr107/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/references/stopped-recursion/pr107/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/references/stopped-recursion/pr107/Makefile b/references/stopped-recursion/pr107/Makefile new file mode 100644 index 0000000000..e60b843993 --- /dev/null +++ b/references/stopped-recursion/pr107/Makefile @@ -0,0 +1,440 @@ +.PHONY: verify note audit-note tuned-note reuse-note incidence-note dag-note shared-point-note paired-note compact-note complex-note ternary-note fetch +.DEFAULT_GOAL := verify + +.PHONY: community-audit-check +community-audit-check: + python3 scripts/audit_community_candidate.py --check docs/research/community-audit-arithmetic.json + +.PHONY: community-followup-check +community-followup-check: + python3 scripts/audit_followup_candidate.py --candidate-root . --check docs/research/community-followup-arithmetic.json + +.PHONY: verify-community verify-producers verify-certificates verify-ternary verify-tests +# CI runs these in separate checkouts. Keep local verification sequential: +# different groups regenerate certificates that another group may read. +verify: + $(MAKE) verify-community + $(MAKE) verify-producers + $(MAKE) verify-certificates + $(MAKE) verify-ternary + $(MAKE) verify-research + $(MAKE) verify-strips + $(MAKE) verify-clones + $(MAKE) verify-positive + $(MAKE) verify-joint + $(MAKE) verify-pair + $(MAKE) verify-tests + +verify-community: community-audit-check community-followup-check copied-reversed-producer copied-reversed-check copied-fixed-reversed-producer copied-fixed-reversed-check + $(MAKE) copied-fixed-verify + $(MAKE) climbed-48-verify + +verify-producers: + $(MAKE) stopped-product-verify + $(MAKE) copied-centers-verify + $(MAKE) structured-bulk-verify + $(MAKE) endpoint-gauge-producer endpoint-gauge-certificate + $(MAKE) partial-swap-producer partial-swap-certificate + +verify-certificates: + python3 scripts/prime_field_network.py + python3 scripts/complex_network.py + python3 scripts/fast_gaussian.py + $(MAKE) batched-certificate batched-patch + python3 scripts/certify.py + python3 scripts/search_network.py + python3 scripts/make_patch.py + python3 scripts/nonadjacent.py + python3 scripts/make_nonadjacent_patch.py + python3 scripts/tune_routing.py + python3 scripts/research_networks.py + python3 scripts/search_network_variants.py + python3 scripts/block_label_targets.py + python3 scripts/audit_block_labels.py + python3 scripts/audit_additive_labels.py + python3 scripts/small_block_witness.py + python3 scripts/incidence_network.py + python3 scripts/make_incidence_patch.py + python3 scripts/search_incidence_partitions.py + python3 scripts/dag_network.py + python3 scripts/make_dag_patch.py + python3 scripts/shared_point_network.py + python3 scripts/make_shared_point_patch.py + python3 scripts/paired_network.py + python3 scripts/make_paired_patch.py + python3 scripts/prepare_layers.py + python3 scripts/audit_sparse_fusion.py + python3 scripts/audit_fused_block.py + python3 scripts/audit_short_guards.py + python3 scripts/audit_gather_schedules.py + python3 scripts/audit_coded_carries.py + python3 scripts/audit_cancellation.py + python3 scripts/audit_joint_frames.py + python3 scripts/audit_compact_controls.py + python3 scripts/compact_control_layer.py + python3 scripts/make_compact_control_patch.py + python3 scripts/audit_scratch_pooling.py + python3 scripts/reuse_network.py + python3 scripts/make_reuse_patch.py + +verify-ternary: + python3 scripts/complex_compression.py + python3 scripts/make_complex_compression_patch.py + python3 scripts/audit_ternary_side.py + python3 scripts/make_ternary_patch.py + +verify-tests: + python3 scripts/run_isolated_tests.py + git apply --check --directory=upstream patches/frozen-154.patch + git apply --check --directory=upstream patches/balanced-153.patch + git apply --check --directory=upstream patches/same-network-129.patch + git apply --check --directory=upstream patches/h46-111.patch + git apply --check --directory=upstream patches/h46-109.patch + git apply --check --directory=upstream patches/h46-108.patch + git apply --check --directory=upstream patches/h46-rational.patch + git apply --check --directory=upstream patches/nonadjacent-layout.patch + git apply --check --directory=upstream patches/frozen-nonadjacent-107.patch + git apply --check --directory=upstream patches/h46-nonadjacent-78.patch + git apply --check --directory=upstream patches/h46-nonadjacent-76.patch + git apply --check --directory=upstream patches/h46-shared-side-75.patch + git apply --check --directory=upstream patches/h46-incidence-67.patch + git apply --check --directory=upstream patches/h46-dag-63.patch + git apply --check --directory=upstream patches/h46-shared-point.patch + git apply --check --directory=upstream patches/h50-paired-59.patch + git apply --check --directory=upstream patches/compact-control-34.patch + git apply --check --directory=upstream patches/complex-compression-31.patch + git apply --check --directory=upstream patches/ternary-30.patch + git apply --check --directory=upstream patches/batched-23.patch + +note: + mkdir -p artifacts + tectonic --outdir artifacts notes/parameter-note.tex + +audit-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/nonadjacent-axis-note.tex + +tuned-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/routing-tuned-note.tex + +reuse-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/stage-reuse-note.tex + +incidence-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/incidence-note.tex + +dag-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/dag-note.tex + +shared-point-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/shared-point-note.tex + +paired-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/paired-note.tex + +compact-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/compact-control-note.tex + +complex-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/complex-compression-note.tex + +ternary-note: + mkdir -p artifacts + tectonic --outdir artifacts notes/ternary-note.tex + +fetch: + python3 scripts/fetch_upstream.py + +.PHONY: batched-certificate batched-patch batched-note +PDFLATEX ?= pdflatex +TEX_ENGINE ?= pdflatex +TECTONIC ?= tectonic + +batched-certificate: + python3 scripts/controlled_bit_rank_moment.py --output certificates/controlled-bit-rank-moment.json > /dev/null + python3 scripts/batched_network.py --output certificates/batched-network.json --summary + +batched-patch: + python3 scripts/make_batched_patch.py + +batched-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/batched-23-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/batched-23-note.tex +endif + +.PHONY: partial-swap-producer partial-swap-certificate partial-swap-note +partial-swap-producer: + python3 scripts/partial_swap_producer.py + +partial-swap-certificate: + python3 scripts/partial_swap_network.py + +partial-swap-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/partial-swap-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/partial-swap-note.tex +endif + +.PHONY: endpoint-gauge-producer endpoint-gauge-certificate endpoint-gauge-note +endpoint-gauge-producer: + python3 scripts/endpoint_gauge_producer.py + +endpoint-gauge-certificate: + python3 scripts/endpoint_gauge_network.py + +endpoint-gauge-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/endpoint-gauge-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/endpoint-gauge-note.tex +endif + +.PHONY: endpoint-gauge-verify +endpoint-gauge-verify: endpoint-gauge-producer endpoint-gauge-certificate + python3 -m unittest discover -s tests -p 'test_endpoint_gauge.py' -v + +.PHONY: structured-bulk-producer structured-bulk-certificate structured-bulk-verify structured-bulk-note +structured-bulk-producer: + python3 scripts/structured_bulk_producer.py + +structured-bulk-certificate: + python3 scripts/structured_bulk_network.py + +structured-bulk-verify: structured-bulk-producer structured-bulk-certificate + +structured-bulk-note: + mkdir -p artifacts +ifeq ($(TEX_ENGINE),tectonic) + $(TECTONIC) -Z search-path=$(CURDIR) --outdir artifacts notes/structured-bulk-note.tex +else + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex + $(PDFLATEX) -interaction=nonstopmode -halt-on-error -output-directory=artifacts notes/structured-bulk-note.tex +endif + +.PHONY: copied-centers-producer copied-centers-certificate copied-centers-verify +copied-centers-producer: + python3 scripts/copied_centers_producer.py + +copied-centers-certificate: + python3 scripts/copied_centers_network.py + +copied-centers-verify: copied-centers-producer copied-centers-certificate + +.PHONY: copied-reversed-check copied-reversed-producer +copied-reversed-check: + python3 research/copied-reversed/geometry.py + python3 research/copied-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_reversed.py' -v + +copied-reversed-producer: + mkdir -p build/copied-reversed/producer + python3 scripts/copied_centers_producer.py --work-dir build/copied-reversed/producer --output build/copied-reversed/producer.json + + +.PHONY: copied-fixed-reversed-check copied-fixed-reversed-producer +copied-fixed-reversed-check: + python3 research/copied-fixed-reversed/geometry.py --full + python3 research/copied-fixed-reversed/witness.py + python3 -m unittest discover -s tests -p 'test_copied_fixed_reversed.py' + +copied-fixed-reversed-producer: + mkdir -p build/copied-fixed-reversed/producer + python3 research/copied-fixed-reversed/producer.py --work-dir build/copied-fixed-reversed/producer --output build/copied-fixed-reversed/producer.json + python3 research/copied-fixed-reversed/review/fixed25_copied_crt_audit.py --work-dir build/copied-fixed-reversed/producer --record build/copied-fixed-reversed/producer.json --profiler-source research/copied-fixed-reversed/full_profiles25.cpp --output build/copied-fixed-reversed/crt-audit.json + + +.PHONY: copied-fixed-verify copied-fixed-producer copied-fixed-check +copied-fixed-producer: + python3 research/copied-fixed/producer.py + +copied-fixed-check: + python3 research/copied-fixed/audit.py + python3 research/copied-fixed/verify.py --output research/copied-fixed/certificate.json + python3 -m unittest discover -s tests -p 'test_copied_fixed.py' -v + +copied-fixed-verify: copied-fixed-producer copied-fixed-check + +.PHONY: climbed-48-verify climbed-48-producer climbed-48-check +climbed-48-producer: + python3 research/climbed-48/producer.py + +climbed-48-check: + python3 research/climbed-48/witness.py --output research/climbed-48/certificate.json + python3 -m unittest discover -s tests -p 'test_climbed_48.py' -v + +climbed-48-verify: climbed-48-producer climbed-48-check + +.PHONY: formal-verify formal-historical-verify formal-gaussian-verify +formal-verify: formal-historical-verify formal-gaussian-verify + +formal-historical-verify: + cd formal/lean && lake build + python3 scripts/check_lean_axioms.py --project formal/lean --audit formal/lean/AuditAll.lean + python3 formal/lean/sources.py + python3 formal/open-prs/drift_A.py + python3 formal/open-prs/drift_B.py --selftest + python3 formal/open-prs/drift_C.py + mkdir -p build/formal + python3 formal/circuit/export_paired.py build/formal/paired50.json + python3 -I formal/circuit/check_paired.py build/formal/paired50.json + +formal-gaussian-verify: + $(MAKE) -C research/gaussian-parity-synthesis verify + python3 scripts/check_lean_axioms.py --project research/gaussian-parity-synthesis --audit research/gaussian-parity-synthesis/AuditAll.lean + +.PHONY: verify-research +# Historical finite searches; no current witness or production certificates change. +verify-research: + python3 scripts/audit_bit_compression.py + python3 scripts/audit_mixed_point.py + python3 scripts/audit_early_sharing.py + python3 scripts/audit_split_centers.py + python3 scripts/audit_stage_pair.py + python3 scripts/audit_block_carry.py + python3 scripts/audit_joint_return.py + python3 scripts/audit_cyclic_topology.py + python3 scripts/audit_fano_completion.py + python3 scripts/audit_fano_permutation.py + python3 scripts/audit_rank_product_core.py + python3 scripts/audit_stronger_screens.py + python3 scripts/audit_subset_cores.py + python3 scripts/audit_cube_cores.py + python3 scripts/audit_single_intersection.py + python3 scripts/audit_shared_core.py + python3 scripts/audit_general_guard.py + python3 scripts/audit_disjoint_tensor.py + python3 scripts/audit_core_limits.py + python3 scripts/audit_affine_vectors.py + python3 scripts/audit_block_core.py + python3 scripts/audit_complex_centers.py + python3 scripts/audit_inplace_side.py + python3 scripts/audit_quadratic_affine.py + python3 scripts/audit_signed_sparse.py + python3 scripts/audit_positive_side.py + python3 scripts/audit_parity_side.py + python3 scripts/audit_prime_subset_limits.py +.PHONY: skip-frame-verify +skip-frame-verify: + python3 scripts/experiments/verify_skip_frame.py + + +.PHONY: joint-dual-verify +joint-dual-verify: + python3 scripts/experiments/verify_joint_dual.py + python3 -m unittest discover -s tests -p 'test_joint_reclaim.py' -v + + +.PHONY: skip-strips-verify skip-strips-producer skip-strips-check +skip-strips-producer: + python3 research/skip-strips/producer.py + +skip-strips-check: + python3 research/skip-strips/audit.py + python3 research/skip-strips/verify.py --output research/skip-strips/certificate.json + cd research/skip-strips && python3 -m unittest discover -s ../../tests -p 'test_skip_strips.py' -v + +skip-strips-verify: skip-strips-producer skip-strips-check + +.PHONY: positive-skip-verify positive-skip-build positive-skip-check +positive-skip-build: + python3 scripts/audit_positive_skip_exact.py + +positive-skip-check: + python3 research/positive-skip/witness.py --output research/positive-skip/certificate.json + python3 -m unittest discover -s tests -p 'test_positive_skip.py' -v + +positive-skip-verify: positive-skip-build positive-skip-check + +.PHONY: split-skip-producer split-skip-check split-skip-verify +split-skip-producer: + python3 research/split-skip/producer.py --work-dir build/split-skip --output build/split-skip-receipt.json + +split-skip-check: + python3 research/split-skip/witness.py + python3 research/split-skip/independent_arithmetic.py + python3 -m unittest discover -s tests -p 'test_split_skip.py' -v + +split-skip-verify: split-skip-producer split-skip-check + +.PHONY: skip-suffix-verify skip-suffix-producer skip-suffix-check +skip-suffix-producer: + python3 research/skip-suffix/producer.py + +skip-suffix-check: + python3 research/skip-suffix/audit.py + python3 research/skip-suffix/verify.py --output research/skip-suffix/certificate.json + cd research/skip-suffix && python3 -m unittest discover -s ../../tests -p 'test_skip_suffix.py' -v + +skip-suffix-verify: skip-suffix-producer skip-suffix-check + +.PHONY: skip-clones-verify skip-clones-producer skip-clones-check +skip-clones-producer: + python3 research/skip-clones/producer.py + +skip-clones-check: + python3 research/skip-clones/witness.py --output research/skip-clones/certificate.json + python3 -m unittest discover -s tests -p 'test_skip_clones.py' -v + +skip-clones-verify: skip-clones-producer skip-clones-check + +.PHONY: verify-strips verify-clones verify-positive verify-joint formal-matrix-verify +verify-strips: skip-strips-verify skip-suffix-verify +verify-clones: skip-clones-verify split-skip-verify +verify-positive: positive-skip-verify +verify-joint: skip-frame-verify joint-dual-verify + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + +formal-verify: formal-matrix-verify +formal-matrix-verify: + mkdir -p build + cd research/matrix-exponent-synthesis && lake build + python3 scripts/check_lean_axioms.py --project research/matrix-exponent-synthesis --audit research/matrix-exponent-synthesis/AuditAll.lean + python3 research/matrix-exponent-synthesis/run_checks.py --work "$$(mktemp -d build/matrix-synthesis.XXXXXX)" + python3 scripts/audit_joint_candidate.py --check docs/research/community-round2-arithmetic.json + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: pair-assembly-verify pair-assembly-producer pair-assembly-check +pair-assembly-producer: + python3 research/pair-assembly/producer.py + +pair-assembly-check: + python3 research/pair-assembly/audit.py + python3 research/pair-assembly/verify.py --output research/pair-assembly/certificate.json + python3 research/pair-assembly/frame/frame_verify.py + cd research/pair-assembly && python3 -m unittest discover -s ../../tests -p 'test_pair_assembly.py' -v + +pair-assembly-verify: pair-assembly-producer pair-assembly-check + +.PHONY: verify-pair +verify-pair: pair-assembly-verify + python3 scripts/audit_pair_candidate.py --check docs/research/community-pair-arithmetic.json + +.PHONY: stopped-product-producer stopped-product-certificate stopped-product-verify +stopped-product-producer: + python3 scripts/stopped_product_producer.py + +stopped-product-certificate: + python3 scripts/stopped_product_network.py + +stopped-product-verify: stopped-product-producer stopped-product-certificate diff --git a/references/stopped-recursion/pr107/NOTICE b/references/stopped-recursion/pr107/NOTICE new file mode 100644 index 0000000000..50c6d1236d --- /dev/null +++ b/references/stopped-recursion/pr107/NOTICE @@ -0,0 +1,321 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The original local research note, scripts, certificates, patches, and +documentation were prepared by Douglas Colkitt with assistance from OpenAI +Codex. The community release incorporates work by the contributors identified +in the notices below; it is not solely Douglas Colkitt's work. +This project is not an official OpenAI release or an OpenAI endorsement. + +Related contributions (not imported in this checkpoint): +Zhihao Chen (jacklightChen), PR #7, supplied an earlier ternary five-subset +motif, finite-alphabet transfer and a different compressed producer: +https://github.com/CrocSwap/integer-mult-bounds/pull/7 +The present checkpoint claims no priority for that motif. Related compressed +complex-network work was submitted by eumemic in PR #3: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +The pending contributions and their stronger bounds require their own review; +this notice does not represent adoption or verification of their claims. + +Additional community work, including parallel and superseded submissions, is +acknowledged in CONTRIBUTORS.md, with pinned submission metadata in +docs/research/contribution-snapshot.json. These acknowledgements do not imply +joint authorship of the checkpoint, incorporation of pending code, or verification +of submitted mathematical claims. Original source-specific notices remain in force. + +Community release (accepted by conditional maintainer audit): +The following original contributor notices apply to the imported PR #39 chain. +The preceding non-import statements describe the preserved 2^-30 checkpoint. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Endpoint-gauge extension, 8 October 2026 +Copyright 2026 icekylinx + +The complementary auxiliary endpoint gauges, (32,30,40) controlled basis, +general nondegenerate binary phase residuals, retained-center complex producer, +updated path guard and exact assembly are contributed by icekylinx with +substantial OpenAI GPT-6 Astra and Codex assistance. This extension inherits +f2ab41aebad47861caf6316282c1793e5513845e and its PR #10 ancestry. New portable +adapters retain the paired-exclusion and shared-point contributions credited +above. Original licenses, notices and the Gaussian correction are retained. + +Structured-basis and semantic-bulk extension, 8 October 2026 +Copyright 2026 icekylinx + +The selected (32,30,36) bit construction, A1/A5 block refinements, fixed +middle-axis I+J profiles with bounded-minor CRT certificates, mixed dyadic +complex centers, complete data-front batching and circuit-specific assembly +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. The immediate parent is ed90fd940279c336ebc45968631bdebfb087b505. + +The semantic/bulk compatibility argument, literal scalar charge, product row +stock and parameterization adapt Zhihao Chen (jacklightChen)'s PR #23, +commit 661ebabc1076c9f525d7ce4967c876b203fa9827. Translated complex endpoints +are adopted from the same contributor's PR #21, +commit 5ba6cf0bfb68f2be8d15610e7972207c50254d6a, following eumemic's source-frame +work and the earlier nested-basis contributions. + +Completed-child semantic precision, arbitrary-coordinate routing, phase-cell +Gaussian inversion and bulk tape transfer are credited to the RaD project +(hipotures), commit 45d9b60355872041f9275f77c057514def0d45bc, exposed through +PR #20 at 4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e. Their selected proof +sources retain their separate CC0 license and original NOTICE under +references/semantic-bulk/rad20. The PR #23 source retains its recorded OpenAI +Codex assistance; RaD retains its recorded Codex and GPT-6.1-Sol Ultra +assistance. These are source attributions, not claims about this session's +runtime model. Related contributions by Rohan Arun and Aurel Prosz remain +acknowledged in the imported notices. No exclusive priority or additional +license condition is asserted. + +Copied retained-center extension, 8 October 2026 +Copyright 2026 icekylinx + +The copied retained-center schedule in both orientations, its complex-phase +transfer, the Wm-N+L rank budget, and the selected (25,23)/(28,28) composition +are contributed by icekylinx with substantial OpenAI GPT-6 Astra and Codex +assistance. This extension inherits PR #32 at +0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52 and the preceding PR #10/#18/#24 work. + +The two-stage topology and paid copied-stream endpoint correction are due +to Aurel Prosz (Paureel), c82d09eb4781b68435e3fa3eb6beea72fa900fab, +through Zhihao Chen (jacklightChen)'s PR #29 unequal-axis composition, +9d963275075fa98f1da821e27757b238dafd6b3c. That source also credits Swapnil +Jain's two-stage development at ae405eb474d1486b2d8aef90139869f927f4836a. + +The contiguous corner method, incidence factorization and exact partition +certificates are due to Rohan Arun (PR #31), method commit +02f68f95369c39955c5ffcfddbd75cd83e26b305. The selected (25,23) certificate +specializes Dominik Scholz's parameterization (PR #33), +a499a345c040aa15b68e984a0904eadc485c7a7e. Their source notices and proof +snapshots are preserved in references/copied-centers. Historical OpenAI +Codex, GPT-6 Astra and Anthropic Claude Opus 5.5 assistance is credited to +the respective imported sources. Existing PR #21/#23 and RaD attribution, +licenses and the Gaussian correction remain in force. + +Copied centers with reversed (23,25) data corners, 2026-10-08 +Rohan Arun with substantial OpenAI Codex assistance supplies the composition, +exact dimension23 controls and cost/assembly integration. James Chang's PR34 +supplies the reversed boundary family; icekylinx's PR36 supplies copied retained +centers and the selected complex graph. The balanced assembly remains attributed +to RaD/hipotures and its PR34 specialization. Retain Dominik Scholz PR33, Rohan +Arun PR31, Zhihao Chen PR29/21/23, Paureel/Aurel Prosz, Swapnil Jain, icekylinx, +eumemic, Douglas Colkitt, OpenAI and all earlier notices and hypotheses. +This is not a claim of formal verification, new foundational rank identities, +global optimality or measured runtime speedup. + +Fixed middle basis with copied reversed corners (2026-10-08): +Rohan Arun, with substantial OpenAI Codex assistance. Composition and +simultaneous-basis proof retain icekylinx PR32/36, James Chang PR34, +Dominik Scholz PR35/38, Zhihao Chen, Paureel, Swapnil Jain, RaD/hipotures, +eumemic and all preceding attribution and licenses. See research/copied-fixed-reversed. + +Changed-graph composition with copied centers and fixed bases, 8 October 2026 +Prepared with OpenAI Codex assistance. +The new composition uses icekylinx PR36 copied centers and PR32 fixed-I+J +projectors/profiler, Dominik Scholz PR35 two fixed factors and CRT argument, +Zhihao Chen (jacklightChen) PR29/23 interfaces, Aurel Prosz (Paureel) and +Swapnil Jain's two-stage development, Rohan Arun PR25/31 corner methods, +Dominik Scholz PR33/38 dimension/composition work; James Chang (jamesyc) +PR34 reversed geometry and balanced transfer; Rohan Arun PR37/39/40 +reversed integration, modular data tests and both-fixed baseline; +RaD (hipotures) PR41 changed scalar DAGs, alternating point order and +independent role compiler; RaD balanced routing/bulk interfaces, and all +retained predecessors. +Complete attribution and the conditional proof boundary are recorded in +research/copied-fixed/PROOF.md; imported originals and source pins are retained. +Original Apache-2.0 and CC0 notices remain applicable. + +Community follow-up integration (PRs #49, #45 and #26), 8 October 2026: +Rohan Arun contributes weighted carrier matching and climbed summand/leave-one-out +orders (PRs #44/#47/#49), with Anthropic Claude assistance. The final construction +composes Chafik Boukhalfa's changed-graph checks, exact rational data recovery and +reordered exclusion sums (PRs #43/#46/#48, OpenAI Codex assistance) with RaD / +hipotures's alternating pair order and independent physical role compiler (#41). +All predecessor attribution and conditional proof interfaces remain in force. + +Alejandro Zarzuelo Urdiales contributes Gaussian parity and canonical arithmetic +proofs, finite tensor execution, profile precision accounting and mixed-center +reference checks (#45), with substantial OpenAI Codex assistance. See +research/gaussian-parity-synthesis/PROVENANCE.md for his full attribution. +Ryan S / princezuda contributes historical Lean certificate arithmetic, algebraic +frame/movement/guard lemmas and independent paired-circuit checks (#26). Original +source notices and historical snapshots are preserved. Neither formal package +claims a full formal proof of the multiplication algorithm or a new kappa. + +Joint frame compilation of skip-prefix strips + +The local compiler and exact finite witnesses were prepared by eumemic with +substantial OpenAI Codex assistance. Avi Eisenberg / ikeboy with Anthropic +Claude assistance supplied the unmodified PR #53 skip-prefix producer. +The pinned PR #48 pipeline is Chafik Boukhalfa's contribution, incorporating +Rohan Arun, RaD / hipotures, icekylinx, Dominik Scholz, James Chang, +Zhihao Chen, Aurel Prosz / Paureel, Swapnil Jain, eumemic, Douglas Colkitt, +OpenAI, David Harvey, Joris van der Hoeven and the earlier contributors +credited in the retained sources. See references/frame-compiler/pr48/NOTICE +and references/frame-compiler/pr53/NOTICE for their original attribution. +No authorship or review by those predecessors is claimed for this compiler. + +Joint dual-skip/frame-compiler composition (2026-10-08) +--------------------------------------------------- +Rohan Gupta / gupt1156 with Anthropic Claude assistance: PR55 dual-skip +scalar graph; original LICENSE and NOTICE are retained under +references/frame-compiler/pr55. eumemic with substantial OpenAI Codex +assistance: PR57 joint reversible frame compiler, serialized physical-word +replay and profile reconstruction. Chafik Boukhalfa with OpenAI Codex +assistance: this composition, independent integration and exact certificate. +Avi Eisenberg / ikeboy, Rohan Arun, RaD / hipotures, icekylinx, and all +predecessor authors retain the notices above and in pinned source files. +No original copyright or Apache-2.0 notice is removed. + +Ranked reclamation after the PR58 joint-dual composition (2026-10-08) +---------------------------------------------------------------- +Chafik Boukhalfa with OpenAI Codex assistance: prioritize retired physical +slots by descending current frame rank, retaining slot ID as the tie-breaker; +complete replay, exact profiles, comparison and adversarial controls. +The dedicated joint_dual_reclaim_compiler.py is derived from eumemic's PR57 +compiler. Its original shared compiler remains byte-identical. The PR55 +producer and all preceding attribution remain unchanged. The complete PR58 +comparison certificate and its original source/proof provenance are retained +under references/frame-compiler/pr58. + +Skip-prefix strip producer, 8 October 2026 +By Avi Eisenberg (ikeboy), with Anthropic Claude (Claude Opus 5.5) +assistance. The skip-prefix leave-one-out strip layout in +research/skip-strips/skip_graph.py is new. Everything else reuses Chafik +Boukhalfa's PR #43/#46/#48 research/copied-fixed pipeline, its verification +code, exact data recovery and support-order sorting, together with: +- Rohan Arun's PR #44 weighted carrier matching optimizer; +- RaD (hipotures) PR #41 alternating point order; +- every predecessor credited above. +Complete attribution and the conditional proof boundary are recorded in +research/skip-strips/PROOF.md. Original Apache-2.0 and CC0 notices remain +applicable. + +Local split-pair skip-prefix research continuation (2026-10-08) +Prepared with substantial OpenAI Codex assistance at the user's request. +New contribution: singleton/pair recursive partition refinement, finite summand +order and moment search, and verified composition with inherited paid clones. +Avi Eisenberg/ikeboy with Anthropic Claude assistance: PR53 skip-prefix strips. +Chafik Boukhalfa with OpenAI Codex assistance: PR54 original-envelope clone +specialization and PR43/46/48 checking interfaces. RaD/hipotures: PR51 +whole-chain/source-partition cloning and earlier producer/interfaces. +Rohan Arun: PR44 weighted matching and earlier fixed/reversed work, with all +stated historical AI assistance. All predecessor notices remain applicable. + +Original-envelope whole-chain clones on skip-prefix strips (research/skip-clones): +Chafik Boukhalfa, prepared with OpenAI Codex assistance. The complete-chain +source-partition clone operation is adapted from RaD / hipotures, PR #51, +with original envelopes retained here. The scalar base is Avi Eisenberg's +PR #53 skip-prefix layout, prepared with Anthropic Claude assistance. +All credited PR #43/#46/#48, PR #44 and earlier code/proof notices remain +in force. This extension is provided under the repository's Apache-2.0 terms. + +Community review checkpoint #50–#61, 8 October 2026 +Maintainer integration and independent arithmetic: Douglas Colkitt, with OpenAI Codex. +Avi Eisenberg / ikeboy: skip-prefix strip framework (#53), with Anthropic Claude. +Rohan Gupta / gupt1156: parallel order search (#50, stated Antigravity assistance) +and dual-suffix strips (#55, Anthropic Claude assistance). +Eumemic: equal-frame joint compilation and paid signal reclamation (#57), with Codex. +Chafik Boukhalfa: original-envelope paid clones (#54), composition (#58) and ranked +reclamation (#60), with Codex. Rohan Arun: order search (#52) and positive-frame +composition (#56), with Anthropic Claude and stated Codex validation assistance. +RaD / hipotures: enlarged frames, source partitions and paid whole-chain clones +(#51), with Codex. Rohan Garg / rohangar1: singleton/pair recursion and paid-clone +composition (#59), with Codex. Alejandro Zarzuelo Urdiales: exact parameter +refinement, scoped Lean arithmetic, matrix/parity and search tools (#61), with +his disclosed multi-tool and Codex assistance. +Parallel #50/#52 records are reviewed and credited without replacing the earlier +climbed-48 implementation; their exact commit history is retained. The separate +#51 witness is retained as research; its source-graph/negative-basis data proof +has not received the same full replay as #56's consumed compiler machinery. +See docs/research/community-round2-review.md for precise validation boundaries. +All earlier licenses, contributions and notices remain applicable. + +Interval strips and core-aware pair assembly + +The interval leave-one-out strips and the core-aware group-pair assembly in +research/pair-assembly were prepared by Avi Eisenberg / ikeboy with Anthropic +Claude assistance. They build on PR #53's skip-prefix pipeline and its +inherited PR #48 sources. The stacked witness in research/pair-assembly/frame +uses eumemic's PR #57 joint frame compiler unchanged; its driver and verifier +are adaptations of PR #57's skip_frame_compiler.py, skip_frame_compose.py and +verify_skip_frame.py. Original notices are retained. + +Stopped product-ring extension, 9 October 2026 +Copyright 2026 icekylinx + +The opposite-bank generic projector factorization, componentwise atom-ring +adapters, stopped recurrence and outer ordinary-interchange conversion, +aligned pair-star producer with rational centers, exact denominator-21 +grid and selected (23,23)/(24,24) composition are contributed by icekylinx +with substantial OpenAI GPT-6 Astra and Codex assistance. This extension +builds on merged PR #36, 11817ccacb564bb7f98789c20dc11d3fece207e3, and is +integrated on upstream main 56b66d58297deca1d7dd130247d720e960f77a37. + +The retained ordinary leaf uses the preceding projector, corner and +copied-center proofs. The selected two-stage topology retains Aurel Prosz +(Paureel), Swapnil Jain and Zhihao Chen's credits; the semantic assembly +retains PR #21/#23 and RaD's attribution. Paired producers, carrier matching, +original source notices and each imported license remain unchanged. diff --git a/references/stopped-recursion/pr107/README.md b/references/stopped-recursion/pr107/README.md new file mode 100644 index 0000000000..31aa46c2e2 --- /dev/null +++ b/references/stopped-recursion/pr107/README.md @@ -0,0 +1,181 @@ +# A sharper exponent for integer multiplication + +**Community research maintained by Douglas Colkitt — conditional on the original +OpenAI #109 framework.** + +## Stopped product-ring extension + +The new construction contributed by **icekylinx**, extending merged +[PR #36](https://github.com/CrocSwap/integer-mult-bounds/pull/36), gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{194869}{2500000000}=7.79476\times10^{-5}. +$$ + +It combines a stopped product-ring bit interchange on `(23,23)` with an +all-disjoint rational-center complex network on `(24,24)`. The new generic +opposite-bank factorization pays one reversed child per projector rank; +atom adapters, ordinary leaves, endpoint copies and the exact denominator-21 +grid are included in the proof. The bound retains the original analytic +and fixed-tape hypotheses. + +[Proof source](notes/stopped-product-note.tex) · +[Exact certificate](certificates/stopped-product-network.json) · +[Incremental reproduction](docs/stopped-product.md) + +```sh +make stopped-product-verify +``` + +The maintainer-reviewed community checkpoint below remains its own result +and validation record. + +## Reviewed community checkpoint + +The reviewed community witness gives + +$$ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\boxed{\kappa=\frac{25508460085039}{500000000000000000} +=5.1016920170078\times10^{-5}>2^{-15}}. +$$ + +This is **23.71% above the preceding PR #49 release** and remains below 2^-14. +It is an improvement in the asymptotic exponent saving, not a measured runtime +speedup. The model and general reduction are inherited from OpenAI's +[*Integer multiplication below n log n*](https://github.com/openai/math/tree/adc7f1241b42e322a6451854ab7e4b4c146bf78a/preprints/Integer-multiplication-below-n-log-n-September-23-2026). + +**[Maintainer review and contribution ledger](docs/research/community-round2-review.md)** · +[Finite circuit proof](research/pair-assembly/PROOF.md) · +[Selected parameter certificate](research/matrix-exponent-synthesis/candidate/arithmetic.json) · +[Independent arithmetic check](docs/research/community-pair-arithmetic.json) + +## What changed + +**Avi Eisenberg's interval strips and core-aware pair assembly (#62)** arrange +additions to allow more physical wire reuse. Combined with **eumemic's joint +frame compiler (#57)**, this yields the strongest finite network in this batch. +**Alejandro Zarzuelo Urdiales's exact parameter refinement and scoped Lean +certificate (#61)** supply the selected numerical value. + +The bit network has m=575 and 137,151,806 physical roles; its certified recursive +saving is 102039046058023/2000000000000000000. The complex network retains saving +717/10^7. All recursive children, workspace restoration, copied centers and +endpoint costs remain charged. The seven final exponent margins are strictly positive. + +The preceding combination of Avi's skip-prefix strips (#53), **Rohan Gupta's +dual-suffix layout (#55)**, eumemic's compiler and **Chafik Boukhalfa's composition +and ranked reclamation (#58/#60)** is also fully retained and reviewed. + +Other reviewed contributions are retained even when their numerical witnesses +are superseded: **RaD's enlarged-frame and clone machinery (#51)**, **Rohan Arun's +positive-frame composition and order searches (#52/#56)**, **Rohan Gupta's parallel +order search (#50)**, **Chafik's original-envelope clones (#54)**, and **Rohan Garg's +split-pair recursion (#59)**. The review records the exact validation scope of each. + +## Attribution + +The names below identify GitHub contributors; they are not verified Twitter handles. + +- **[Avi Eisenberg (ikeboy)](https://github.com/ikeboy):** skip-prefix and interval strips, core-aware pair assembly ([#53](https://github.com/CrocSwap/integer-mult-bounds/pull/53), [#62](https://github.com/CrocSwap/integer-mult-bounds/pull/62)). +- **[Rohan Gupta (gupt1156)](https://github.com/gupt1156):** dual-suffix strips and parallel order improvements ([#50](https://github.com/CrocSwap/integer-mult-bounds/pull/50), [#55](https://github.com/CrocSwap/integer-mult-bounds/pull/55)). +- **[eumemic](https://github.com/eumemic):** joint frame compilation and paid reclamation ([#57](https://github.com/CrocSwap/integer-mult-bounds/pull/57)); earlier complex circuits, Gaussian resampling and source frames. +- **[Chafik Boukhalfa (chafreaky)](https://github.com/chafreaky):** exact recovery, independent checkers, reordered sums, paid clones and joint-compiler composition/refinement ([#43/#46/#48/#54/#58/#60](docs/research/community-round2-review.md)). +- **[Rohan Arun (rohanarun)](https://github.com/rohanarun):** corner geometry, fixed-basis composition, weighted matching, order searches and positive-frame composition ([#49](https://github.com/CrocSwap/integer-mult-bounds/pull/49), [#52](https://github.com/CrocSwap/integer-mult-bounds/pull/52), [#56](https://github.com/CrocSwap/integer-mult-bounds/pull/56)). +- **[Rohan Garg (rohangar1)](https://github.com/rohangar1):** split-pair recursion, order refinement and paid-clone composition ([#59](https://github.com/CrocSwap/integer-mult-bounds/pull/59)). +- **[Alejandro Zarzuelo Urdiales (alejandrozu)](https://github.com/alejandrozu):** Gaussian parity and finite tensor proofs, matrix/search tools, exact refinement and scoped Lean arithmetic ([#45](https://github.com/CrocSwap/integer-mult-bounds/pull/45), [#61](https://github.com/CrocSwap/integer-mult-bounds/pull/61)). +- **[RaD project (hipotures)](https://github.com/hipotures):** semantic precision, routing, phase-cell inversion, bulk resampling, alternating producers, physical compiler and enlarged-frame/clone machinery ([#41](https://github.com/CrocSwap/integer-mult-bounds/pull/41), [#51](https://github.com/CrocSwap/integer-mult-bounds/pull/51)). +- **icekylinx:** recursive batching, partial swaps, fixed projector profiles, copied retained centers and the selected complex construction. +- **Zhihao Chen (jacklightChen):** controlled bases, translated frames, semantic/bulk compatibility and two-stage integration. +- **James Chang (jamesyc):** reversed two-stage geometry and exact controls. +- **Aurel Prosz (Paureel) and Swapnil Jain:** attributed two-stage development and paid copied-stream endpoints. +- **Dominik Scholz:** dimension, parameter and fixed-basis refinements. +- **Ryan S (princezuda):** historical Lean certificates, algebraic contracts and independent circuit checks ([#26](https://github.com/CrocSwap/integer-mult-bounds/pull/26)). +- **Andrew Barnes (Bortlesboat) and David Leen (dleen):** aligned pairing, retained totals and sharing. + +The [full contribution record](CONTRIBUTORS.md) credits incorporated, parallel, +superseded and pending work separately. Douglas Colkitt maintains the project, +original research, review and integration, with OpenAI Codex assistance. +OpenAI's original manuscript and Harvey–van der Hoeven's analytic work retain +their attribution. Contributor-specific AI disclosures remain in [NOTICE](NOTICE). + +## Evidence and limits + +The [round-two review](docs/research/community-round2-review.md) extends the +[previous follow-up audit](docs/research/community-followup-review.md) and +[PR #39 transfer review](docs/research/community-final-audit.md). The original +#109 framework and retained all-size interfaces remain assumptions. This is not +full formal verification, independent human peer review, a worldwide priority +claim, or a practical multiplication benchmark. + +Fresh checks cover complete emitted words and dirty basis vectors, physical +frame transitions, exact fixed-basis profiles, all 4,073,300 data pairs for the +retained geometry, and independent rational recurrence/assembly arithmetic. +The formal packages verify their stated finite/arithmetic contracts. PR #61's +integrated axiom audit contains 169 distinct declarations, including 11 concrete +frontier theorems; its input rows are bound to the replayed finite profile. +They do not formalize the whole multiplication algorithm. + +The [review receipt](docs/research/community-round2-validation.json) distinguishes +fresh maintainer checks from contributor-supplied evidence. Earlier witnesses, +patches and attribution remain available. Submissions after #62 are outside this checkpoint's review; exact reviewed heads +are recorded in the ledger. + +## Reproduce + +```sh +make verify-pair +make verify-joint +make verify-positive +make formal-matrix-verify +# Complete arithmetic, producer, historical and unit-test suite: +make verify +``` + +Python 3.11+, a C++17 compiler and Boost headers are required for the full +arithmetic suite. The formal targets use their pinned Lean versions. See +[reproduction details](docs/reproducibility.md) and [CI layout](docs/ci-verification.md). + +## Historical witnesses and independent patches + + +Each patch applies independently to the **unmodified** pinned source; they are +alternatives, not a sequence to apply together. The +[result history](docs/research/result-history.md) records the earlier mechanisms +and scoped ceilings. The [preserved research index](docs/research/preserved-research.md) +collects the intermediate compression, routing, Fano, and core searches, including +scoped negative results and reproducible certificates. + +| Patch | Conditional saving | Scope | +| --- | --- | --- | +| [frozen-154](patches/frozen-154.patch) | `2^-154` | Original network and recurrence exponents | +| [balanced-153](patches/balanced-153.patch) | `2^-153` | Balanced assembly parameters | +| [same-network-129](patches/same-network-129.patch) | `2^-129` | Original network, sharper recurrence comparison | +| [h46-111](patches/h46-111.patch) | `2^-111` | Smaller network, dyadic parameters | +| [h46-109](patches/h46-109.patch) | `2^-109` | Rational recurrence saving, strict final margin | +| [h46-108](patches/h46-108.patch) | `2^-108` | Variable stopping exponent | +| [h46-rational](patches/h46-rational.patch) | `5.8e-33` | Strongest supplied parameter-only witness | +| [nonadjacent-layout](patches/nonadjacent-layout.patch) | Original parameters retained | Routing proof and revised layout cost only | +| [frozen-nonadjacent-107](patches/frozen-nonadjacent-107.patch) | `2^-107` | Direct routing, original network and recurrence exponents | +| [h46-nonadjacent-78](patches/h46-nonadjacent-78.patch) | `2^-78` | Direct routing with the h = 46 network | +| [h46-nonadjacent-76](patches/h46-nonadjacent-76.patch) | `2^-76` | Direct routing with tuned dimension and stopping parameters | +| [h46-shared-side-75](patches/h46-shared-side-75.patch) | `2^-75` | Stage-1/stage-3 side-role sharing, routing, and parameter tuning | +| [h46-incidence-67](patches/h46-incidence-67.patch) | `2^-67` | Rectangle incidence circuits, full auxiliary sharing, routing, and parameter tuning | +| [h46-dag-63](patches/h46-dag-63.patch) | `2^-63` | Shared intermediate sums and reversible role allocation | +| [h46-shared-point](patches/h46-shared-point.patch) | `13*2^-66` | Cross-group sharing | +| [h50-paired-59](patches/h50-paired-59.patch) | `2^-59` | Paired sums, stopped guard and tighter Gaussian setup | +| **[compact-control-34](patches/compact-control-34.patch)** | **`83/10^12 > 2^-34`** | **Compact controls, complete reservations, local repair and separate complex arity** | +| [complex-compression-31](patches/complex-compression-31.patch) | `2^-31` | Weighted complex circuits, binary phase frames and complete auxiliary sharing | +| **[ternary-30](patches/ternary-30.patch)** | **`2^-30`** | **Ternary five-subset circuit, rational frames and fixed-alphabet interchange** | + +## Citation and license + +Use [CITATION.cff](CITATION.cff), cite the individual contributions used and +include the repository version or commit. [CONTRIBUTORS.md](CONTRIBUTORS.md), +[NOTICE](NOTICE) and source-specific manifests preserve the dependency credits. + +The project is [Apache-2.0](LICENSE). Bundled RaD sources retain their separate +CC0 license and notices. The pinned original OpenAI manuscript remains unchanged +under `upstream/`; its source hashes are in [upstream/manifest.json](upstream/manifest.json). +This project is not an official OpenAI release or endorsement. diff --git a/references/stopped-recursion/pr107/SOURCES.json b/references/stopped-recursion/pr107/SOURCES.json new file mode 100644 index 0000000000..380b5425c2 --- /dev/null +++ b/references/stopped-recursion/pr107/SOURCES.json @@ -0,0 +1,280 @@ +{ + "package": "integer-mult-batched-23", + "date_utc": "2026-10-08", + "headline": { + "kappa": "6149999/50000000000000", + "dyadic_corollary": "2^-23", + "framework": "conditional fixed finite-alphabet, fixed-tape integer multiplication" + }, + "retained_pr7": { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/7", + "commit": "6725c6a17b17871a35353fd29157f4ed851bc114", + "contributor": "Zhihao Chen (jacklightChen)", + "role": "Ternary five-subset network, paired complex producer, frame schedules, and finite counts" + }, + "repository_main": { + "url": "https://github.com/CrocSwap/integer-mult-bounds", + "commit": "6e564879f51ae16f23d392e9e196c605f36d90df", + "contributor": "Douglas Colkitt", + "role": "Repository framework and compact controls" + }, + "upstream": { + "url": "https://github.com/openai/math", + "commit": "adc7f1241b42e322a6451854ab7e4b4c146bf78a", + "paper": "preprints/Integer-multiplication-below-n-log-n-September-23-2026", + "manifest": "upstream/manifest.json", + "license": "upstream/LICENSE", + "role": "Retained multiplication theorem, machine model, transforms, analytic estimates, and rounding interfaces" + }, + "preceding_contributions": [ + { + "pr": 2, + "contributor": "Bortlesboat", + "role": "Aligned pair groups", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/2" + }, + { + "pr": 3, + "contributor": "eumemic", + "role": "Compressed complex producer", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/3" + }, + { + "pr": 4, + "contributor": "dleen", + "role": "Retained totals and stage sharing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/4" + }, + { + "pr": 5, + "contributor": "eumemic", + "role": "Fast Gaussian resampling", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5" + }, + { + "pr": 6, + "contributor": "eumemic", + "role": "Aligned bit circuit and cheaper centers", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/6" + } + ], + "new_contribution": { + "provenance": "Developed by icekylinx with substantial OpenAI GPT-6 Astra assistance; review corrections and repository integration with OpenAI Codex assistance.", + "components": [ + "Large-projector middle-block batching", + "Simultaneous controlled tensor basis and aligned corner batching", + "Arbitrary integer widths and bounded outer row padding", + "Whole-residual complex recursion", + "Dependency-path numerical guard", + "Exact final assembly beyond 2^-23", + "Corrected shifted chirp input error enclosure, retaining P=34p" + ], + "contributor": "icekylinx" + }, + "license": "Apache-2.0; original LICENSE and NOTICE retained", + "integration": { + "retained_source": "upstream/ remains unchanged", + "manuscript_patch": "patches/batched-23.patch", + "instructions": "PATCHING.md" + }, + "proof": "artifacts/batched-23-note.pdf", + "exact_certificate": "certificates/batched-network.json", + "algorithm_specification": "notes/batched-algorithms.tex", + "provided_archive": { + "filename": "integer_mult_batched_23.zip", + "sha256": "6aad9cc551c5fa5cf14e8708e6f2802b33f6233b169c742b205d0b2b74a44e8b", + "status": "Preserved separately; this repository contains a curated, corrected derivative." + }, + "review_corrections": [ + { + "source": "notes/fast-gaussian-resampling.tex", + "change": "Use F=2^ceil(1.14 alpha^2) for magnitude and shifted absolute error; prove P=34p remains sufficient." + }, + { + "source": "Makefile", + "change": "Include new batched certificates and manuscript patch in make verify." + } + ], + "curation": "Retain required producer/generator dependencies, construction sources and certificates. Omit duplicate notes, obsolete alternative batching witness, archive manifests, incremental self-patch, redundant dependency-only manuscript patches, historical standalone PDFs, imported historical tests and local audit outputs. Existing main-branch files are preserved.", + "partial_swap_extension": { + "contributor": "icekylinx", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/10", + "parent_commit": "62691e395a0458ce089a1c7b5d89e74291e95e29", + "archive": "integer_mult_partial_swap_25_23_57_complete.zip", + "archive_sha256": "1414e879aef46d84e9c768750fd70d82aef15d0ebdc4a0148cc61192ebdae64f", + "proof": "artifacts/partial-swap-note.pdf", + "certificate": "certificates/partial-swap-network.json", + "producer": "scripts/partial_swap_producer.py", + "scope": "Partial-swap construction with kappa=942293/500000000000; inherits the corrected analytic and tape interfaces from PR #10.", + "curation": "Import selected producer sources, exact data and proof; regenerate large binaries, omit exploratory alternatives and duplicate baseline snapshot.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance." + }, + "endpoint_gauge_extension": { + "contributor": "icekylinx", + "parent_commit": "f2ab41aebad47861caf6316282c1793e5513845e", + "archive": "integer_mult_endpoint_gauge_3_176x_complete.zip", + "archive_sha256": "1c2e8fa0d80597d6f0b02d707651a3b0477ff99d799614cf30b24931969def84", + "proof": "artifacts/endpoint-gauge-note.pdf", + "certificate": "certificates/endpoint-gauge-network.json", + "producer": "scripts/endpoint_gauge_producer.py", + "scope": "Conditional kappa=119723/20000000000; inherits the partial-swap construction and corrected PR #10 analytic and tape interfaces.", + "curation": "Selected producers, counts and proof only; large graphs are regenerated. Omit exploratory variants, duplicate previous-round snapshot and obsolete comparison claims.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance." + }, + "structured_bulk_extension": { + "contributor": "icekylinx", + "parent_commit": "ed90fd940279c336ebc45968631bdebfb087b505", + "archive": "integer_mult_round3_2_092x_complete.zip", + "archive_sha256": "764afde67ec81608bcdfdd82da1efae834558daebdf2a0714c55e3e26aa0895c", + "proof": "notes/structured-bulk-note.tex", + "certificate": "certificates/structured-bulk-network.json", + "producer": "scripts/structured_bulk_producer.py", + "scope": "Conditional kappa=2504683/200000000000 from selected finite networks and attributed semantic/bulk interfaces.", + "adopted": [ + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 23, + "commit": "661ebabc1076c9f525d7ce4967c876b203fa9827", + "role": "Semantic compatibility, scalar charge, product row stock and assembly" + }, + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 21, + "commit": "5ba6cf0bfb68f2be8d15610e7972207c50254d6a", + "role": "Translated complex endpoints" + }, + { + "contributor": "RaD project (hipotures)", + "repository": "https://github.com/hipotures/rad", + "commit": "45d9b60355872041f9275f77c057514def0d45bc", + "pr20_commit": "4f8d6c8272b5ff307a0da51df545ec3cd96a8b6e", + "role": "Semantic completed-child bounds, coordinate routing, phase-cell inverse and bulk transfer", + "license": "CC0" + } + ], + "dependency_manifest": "references/semantic-bulk/MANIFEST.json", + "curation": "Selected construction, exact data and necessary proof dependencies only. Omit exploratory alternatives, historical dependency tests, raw graph dumps and duplicate repository snapshots.", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/24", + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + } + ] + }, + "copied_centers_extension": { + "contributor": "icekylinx", + "parent_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/32", + "parent_commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52", + "kappa": "384569/10000000000", + "archive": "integer_mult_round4_kappa_3_84569e-5_complete.zip", + "archive_sha256": "92faf75a96db227c5c49c2399f2a36502667e58951444c4bf1b23ee932ed8f83", + "proof": "notes/copied-centers-note.tex", + "certificate": "certificates/copied-centers-network.json", + "producer": "scripts/copied_centers_producer.py", + "dependency_manifest": "references/copied-centers/MANIFEST.json", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "scope": "Conditional on retained analytic and fixed-tape interfaces; exact finite moments and assembly.", + "curation": "Selected finite inputs, reproducible checks and necessary proof sources. Excludes alternatives, terminal-eligibility research metadata, raw graph dumps and duplicate history.", + "adopted": [ + { + "contributor": "Aurel Prosz (Paureel)", + "commit": "c82d09eb4781b68435e3fa3eb6beea72fa900fab", + "role": "Two-stage topology and paid endpoint-copy interface" + }, + { + "contributor": "Swapnil Jain", + "commit": "ae405eb474d1486b2d8aef90139869f927f4836a", + "role": "Linked two-stage development credited by PR29; no source code imported" + }, + { + "contributor": "Zhihao Chen (jacklightChen)", + "pr": 29, + "commit": "9d963275075fa98f1da821e27757b238dafd6b3c", + "role": "Unequal two-stage compatibility, common basis, gauges and physical accounting" + }, + { + "contributor": "Rohan Arun", + "pr": 31, + "commit": "02f68f95369c39955c5ffcfddbd75cd83e26b305", + "role": "Corner incidence method, symbolic zero partitions and rational pivot witnesses" + }, + { + "contributor": "Dominik Scholz", + "pr": 33, + "commit": "a499a345c040aa15b68e984a0904eadc485c7a7e", + "role": "Parameterized corner generator specialized to (25,23)" + } + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + } + ], + "continuing_analytic_dependencies": "See structured_bulk_extension.adopted and references/semantic-bulk/MANIFEST.json." + }, + "stopped_product_extension": { + "contributor": "icekylinx", + "base_commit": "56b66d58297deca1d7dd130247d720e960f77a37", + "proof_predecessor_PR": "https://github.com/CrocSwap/integer-mult-bounds/pull/36", + "proof_predecessor_commit": "11817ccacb564bb7f98789c20dc11d3fece207e3", + "predecessor_merged": true, + "archive": "integer_mult_round5_kappa_7_79476e-5_complete.zip", + "archive_sha256": "714cbffa0cccba3c18f046a63e62d6981683cb386b5d5cd09761be7b70f0b0be", + "kappa": "194869/2500000000", + "proof": "notes/stopped-product-note.tex", + "certificate": "certificates/stopped-product-network.json", + "producer": "scripts/stopped_product_producer.py", + "assistance": "Substantial OpenAI GPT-6 Astra and Codex assistance.", + "scope": "Conditional on the retained analytic and fixed-tape framework; new product-ring and exact rational-grid arguments supplied as written proofs.", + "continuing_dependencies": [ + "copied_centers_extension", + "structured_bulk_extension" + ], + "icekylinx_lineage": [ + { + "pr": 10, + "commit": "62691e395a0458ce089a1c7b5d89e74291e95e29" + }, + { + "pr": 18, + "commit": "f2ab41aebad47861caf6316282c1793e5513845e" + }, + { + "pr": 24, + "commit": "ed90fd940279c336ebc45968631bdebfb087b505" + }, + { + "pr": 32, + "commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52" + }, + { + "pr": 36, + "commit": "11817ccacb564bb7f98789c20dc11d3fece207e3" + } + ], + "curation": "Selected h23/h24 inputs, generator, exact certificate and proofs only; excludes raw graphs, research alternatives and recursive predecessor copies." + } +} diff --git a/references/stopped-recursion/pr107/certificates/copied-centers-bit-axes.json b/references/stopped-recursion/pr107/certificates/copied-centers-bit-axes.json new file mode 100644 index 0000000000..bfb3a217ee --- /dev/null +++ b/references/stopped-recursion/pr107/certificates/copied-centers-bit-axes.json @@ -0,0 +1,78 @@ +[ + { + "h": 25, + "v": 2300, + "R": 51299, + "matching": 1589, + "histogram": [ + 12884, + 50477, + 41948, + 11341, + 13202, + 2948, + 6911, + 1451, + 5205, + 2429, + 3751, + 1361, + 3720, + 2639, + 3241, + 1571, + 3334, + 3366, + 2963, + 4019, + 2608, + 4868, + 12360, + 2802, + 25, + 25 + ], + "loss": 600, + "q": 6925, + "c": 45963, + "baseline_R": 52888, + "label_source": "positive" + }, + { + "h": 23, + "v": 1771, + "R": 38776, + "matching": 1324, + "histogram": [ + 9840, + 38409, + 32471, + 8898, + 9754, + 2116, + 5737, + 1725, + 4145, + 1547, + 3128, + 1551, + 2893, + 1925, + 2841, + 2450, + 2327, + 3096, + 2344, + 3628, + 9435, + 2110, + 23, + 23 + ], + "loss": 506, + "q": 5336, + "c": 34764, + "baseline_R": 40100, + "label_source": "positive" + } +] diff --git a/references/stopped-recursion/pr107/certificates/copied-centers-network.json b/references/stopped-recursion/pr107/certificates/copied-centers-network.json new file mode 100644 index 0000000000..20bbb6806c --- /dev/null +++ b/references/stopped-recursion/pr107/certificates/copied-centers-network.json @@ -0,0 +1,684 @@ +{ + "adopted_sources": { + "files": { + "PROVENANCE.json": "27df488b36b4fa599b6e6b92408a4b37169125f40918c6ff29bb035e4342a7d4", + "README.md": "add72b080a24707aeda0d7a9ab8147003e3dc972575954d597b078aa82fb9619", + "SOURCES.json": "fd12f8ce03a9f504cbf62351e8f5f09b6209e6f9929081f7ad24a8e55cf09d64", + "pr29/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "pr29/NOTICE": "1b4512d2fe2063aca8e59529f5f1552641b41128872fefa1f3411c991097a49f", + "pr29/SOURCE.json": "b2b71c863ebdb37c4110a13136490b1ee573258a4bc5ec0f72e725513d3896f3", + "pr29/paureel-direct-transfer.tex": "573bbc0ca0799dc255febb4dd35fba1549f3771480a32aa8e181ff62bc7cb253", + "pr29/two-stage-16-note.tex": "e01fc480181fb00d90599e002126b06056e5e574f97fd1d5698cdedb9097b54d", + "pr33/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "pr33/NOTICE": "6cdb4f22681c300d0cfaa1cc28b7dc0ac3a3295f8ad5d76f779ceebced592847", + "pr33/SOURCE.json": "bb8f77e7da502ae2d36c81e74a899c8356eb21964310c894f4d76c61c7a1ee7f", + "pr33/two-stage-corners-47-45-note.tex": "eba0e302370c0628bab27f675c8961b3005ef2edc2ccb5591465c7f7ef559e5a" + } + }, + "assembly": { + "absorption_gap": "20374595379574062554852831/500038459899423101496154010000000000", + "margins": { + "Gaussian_arithmetic": "2307743950002130057689850384599/40003076791953848119692320800000000", + "bulk_exposure": "384599/10000000000", + "compact_phase_layer": "1922994942310150384599/50003845989942310149615401", + "coordinate_movement": "384599/10000000000", + "dimension": "49999999500000000000000000/50003845989942310149615401", + "original_prefix": "192349498077004980770049615401/5000384598994231014961540100000000", + "scalar_work": "3077141950002129750010650384599/40003076791953848119692320800000000" + }, + "minimum_margin": "1922994942310150384599/50003845989942310149615401", + "parameters": { + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "a_bit": "384599/10000000000", + "a_complex": "717/10000000", + "alpha_squared_power": "2884742442310150000000/50003845989942310149615401", + "beta": "1/4", + "c": "1922994980770049615401/50000000000000000000000000", + "delta": "1/800000000", + "epsilon": "49999999500000000000000000/50003845989942310149615401", + "eta": "1/100000000", + "kappa": "384569/10000000000", + "lambda_": "999961540100384599/1000000000000000000", + "lambda_prime": "499980770050384599/500000000000000000", + "q": "19229949615401/500000000000000000", + "sigma": "9999283/10000000", + "tau": "9999615401/10000000000" + }, + "recurrence": { + "internal": "9999615401/10000000000", + "leaf": "39997849/40000000", + "reservations": "49998077005019229950384599/50000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "19233740653041002898391369320637/1000076919798846202992308020000000000", + "K_dominates_log": "192299496154009980770050384599/5000384598994231014961540100000000", + "K_geometry": "192349498077004980770049615401/5000384598994231014961540100000000", + "alpha_below_one": "50000961247499999999615401/50003845989942310149615401", + "alpha_below_one_fourth": "49992307020173069549615401/200015383959769240598461604", + "alpha_positive": "2884742442310150000000/50003845989942310149615401", + "artificial_boundary": "280025384083626938967288577050384599/40003076791953848119692320800000000", + "beta_below_one": "3/4", + "beta_positive": "1/4", + "bit_positive": "384599/10000000000", + "bulk_exposure_above_kappa": "3/1000000000", + "c_below_one": "49998077005019229950384599/50000000000000000000000000", + "c_positive": "1922994980770049615401/50000000000000000000000000", + "cell_above_band": "49999037752500000000384599/100007691979884620299230802", + "compact_leaf": "7657550384599/500000000000000000", + "compact_phase_layer_above_kappa": "20374595379574062554852831/500038459899423101496154010000000000", + "compact_reservations": "19229949615401/50000000000000000000000000", + "complex_above_bit": "332401/10000000000", + "complex_below_one_over32": "311783/10000000", + "coordinate_movement_above_kappa": "3/1000000000", + "delta_below_one_eighth": "99999999/800000000", + "delta_positive": "1/800000000", + "dimension_above_kappa": "499980765070951493875728072554852831/500038459899423101496154010000000000", + "epsilon_below_one": "3846489942310149615401/50003845989942310149615401", + "epsilon_positive": "49999999500000000000000000/50003845989942310149615401", + "gamma_sublinear": "961747499999999615401/50003845989942310149615401", + "guard_width": "3846489942310149615401/50003845989942310149615401", + "lambda_above_internal": "384599/1000000000000000000", + "lambda_above_sigma": "33240100384599/1000000000000000000", + "lambda_above_tau": "384599/1000000000000000000", + "lambda_prime_above_lambda": "384599/1000000000000000000", + "lambda_prime_below_one": "19229949615401/500000000000000000", + "leaf_saving_above_bit": "153151/10000000000", + "literal_scalar_guard": "9693793493753822316795466474748", + "original_prefix_above_kappa": "5020759194373805077516392931/500038459899423101496154010000000000", + "phase_boundary": "2307743950002130057689850384599/40003076791953848119692320800000000", + "phase_local": "3077141950002129750010650384599/40003076791953848119692320800000000", + "prime_interval_packing": "3846489942310149615401/50003845989942310149615401", + "q_below_internal": "384599/500000000000000000", + "q_below_leaf": "7657550384599/500000000000000000", + "q_below_reservations": "19229949615401/50000000000000000000000000", + "q_positive": "19229949615401/500000000000000000", + "record_suffix": "3846489942310149615401/50003845989942310149615401", + "row_product_gap": "6548/25", + "scalar_work_above_kappa": "38468690653040995206411369320637/1000076919798846202992308020000000000", + "short_record_fallback": "499980763570836114177458768066390801/500038459899423101496154010000000000", + "small_field_exposure": "1923494999999999230802/50003845989942310149615401" + } + }, + "bit": { + "counts": { + "B1": 90850529, + "B2": 89184800, + "L": 2226400, + "N": 4073300, + "W": 188181929, + "child_multiplicities": { + "1": 2552008332, + "11": 12368273, + "13": 12508849, + "15": 21109768, + "17": 30321728, + "19": 26742560, + "21": 21308442, + "23": 97375675, + "25": 90850529, + "3": 10167311, + "481": 8146600, + "5": 9316541, + "525": 90850529, + "529": 89184800, + "7": 11539514, + "9": 11313286 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24 + ], + "h": 25, + "histogram": [ + 12884, + 50502, + 41948, + 11341, + 13202, + 2948, + 6911, + 1451, + 5205, + 2429, + 3751, + 1361, + 3720, + 2639, + 3241, + 1571, + 3334, + 3366, + 2963, + 4019, + 2608, + 4868, + 12360, + 2802, + 25, + 0 + ] + }, + { + "center_ranks": [ + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22, + 22 + ], + "h": 23, + "histogram": [ + 9840, + 38432, + 32471, + 8898, + 9754, + 2116, + 5737, + 1725, + 4145, + 1547, + 3128, + 1551, + 2893, + 1925, + 2841, + 2450, + 2327, + 3096, + 2344, + 3628, + 9435, + 2110, + 23, + 0 + ] + } + ], + "deficit": 1846900, + "dimensions": [ + 25, + 23 + ], + "m": 575, + "maxchild": 529, + "total_rank": 108202762275 + }, + "enclosure": "24-term atanh log with geometric tail; exp upper 1+u+u^2/(2(1-u/3)); upward 2^-100 rounding", + "exponent": "9999615401/10000000000", + "logarithm_upper_bounds": { + "1": "8055120996289039834986510201087/1267650600228229401496703205376", + "11": "2507713807220875766410757505693/633825300114114700748351602688", + "13": "2401830701873955728941732615841/633825300114114700748351602688", + "15": "4622259533413645906880051247065/1267650600228229401496703205376", + "17": "4463596400121548501302116232465/1267650600228229401496703205376", + "19": "4322601157013306540033070101277/1267650600228229401496703205376", + "21": "2097865150350315252806914288597/633825300114114700748351602688", + "23": "4080409871454311703647630964023/1267650600228229401496703205376", + "25": "993677781208682032834719808971/316912650057057350374175801344", + "3": "1665616117285200439675966682269/316912650057057350374175801344", + "481": "226279144409595120389065954927/1267650600228229401496703205376", + "5": "6014916060561883983162694717895/1267650600228229401496703205376", + "525": "28830107311579700491549403293/316912650057057350374175801344", + "529": "105698746619583572308751728139/1267650600228229401496703205376", + "7": "5588386827848868581896472049205/1267650600228229401496703205376", + "9": "5269807941992563682421223258113/1267650600228229401496703205376" + }, + "moment_upper": "458747952400871058655097514872554580863/458747952401838555823394416015651635200", + "rounding_denominator": 1267650600228229401496703205376, + "saving": "384599/10000000000", + "strict_gap": "967497168296901143097054337/458747952401838555823394416015651635200" + }, + "complex": { + "child_width_multiplicities": [ + [ + 1, + 540572760 + ], + [ + 2, + 336785904 + ], + [ + 3, + 161899920 + ], + [ + 4, + 117097344 + ], + [ + 5, + 93051504 + ], + [ + 6, + 64779624 + ], + [ + 7, + 52822224 + ], + [ + 8, + 70243992 + ], + [ + 9, + 32150664 + ], + [ + 10, + 50699376 + ], + [ + 11, + 22728888 + ], + [ + 12, + 47580624 + ], + [ + 13, + 26208000 + ], + [ + 14, + 44907408 + ], + [ + 15, + 24714144 + ], + [ + 16, + 49192416 + ], + [ + 17, + 20815704 + ], + [ + 18, + 52501176 + ], + [ + 19, + 22624056 + ], + [ + 20, + 46348848 + ], + [ + 21, + 37759176 + ], + [ + 22, + 58961448 + ], + [ + 23, + 40773096 + ], + [ + 24, + 38781288 + ], + [ + 25, + 2208024 + ], + [ + 26, + 3741192 + ], + [ + 27, + 43112160 + ], + [ + 729, + 21464352 + ], + [ + 756, + 516232080 + ] + ], + "counts": { + "B1": 258116040, + "B2": 258116040, + "L": 4953312, + "N": 10732176, + "W": 537696432, + "child_multiplicities": { + "1": 540572760, + "10": 50699376, + "11": 22728888, + "12": 47580624, + "13": 26208000, + "14": 44907408, + "15": 24714144, + "16": 49192416, + "17": 20815704, + "18": 52501176, + "19": 22624056, + "2": 336785904, + "20": 46348848, + "21": 37759176, + "22": 58961448, + "23": 40773096, + "24": 38781288, + "25": 2208024, + "26": 3741192, + "27": 43112160, + "3": 161899920, + "4": 117097344, + "5": 93051504, + "6": 64779624, + "7": 52822224, + "729": 21464352, + "756": 516232080, + "8": 70243992, + "9": 32150664 + }, + "copied_center_circuits": [ + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + }, + { + "center_ranks": [ + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27, + 27 + ], + "h": 28, + "histogram": [ + 14796, + 80867, + 51402, + 24710, + 17872, + 14202, + 9887, + 8062, + 10721, + 4907, + 7738, + 3469, + 7262, + 4000, + 6854, + 3772, + 7508, + 3177, + 8013, + 3453, + 7074, + 5763, + 8999, + 6223, + 5919, + 337, + 571, + 28, + 0 + ] + } + ], + "deficit": 5778864, + "dimensions": [ + 28, + 28 + ], + "m": 784, + "maxchild": 756, + "total_rank": 421548223824 + }, + "enclosure": "1+u+u^2/(2(1-u/3))", + "exponent": "9999283/10000000", + "logarithm_upper_bounds": { + "1": "6664409020351/1000000000000", + "10": "4361823927357/1000000000000", + "11": "4266513747553/1000000000000", + "12": "4179502370563/1000000000000", + "13": "4099459662889/1000000000000", + "14": "251584480671/62500000000", + "15": "3956358819249/1000000000000", + "16": "3891820298111/1000000000000", + "17": "766239135259/200000000000", + "18": "754807452491/200000000000", + "19": "116249063787/31250000000", + "2": "5971261839791/1000000000000", + "20": "3668676746797/1000000000000", + "21": "3619886582627/1000000000000", + "22": "3573366566993/1000000000000", + "23": "1764457402211/500000000000", + "24": "3486355190003/1000000000000", + "25": "3445533195483/1000000000000", + "26": "3406312482329/1000000000000", + "27": "3368572154347/1000000000000", + "3": "5565796731683/1000000000000", + "4": "5278114659231/1000000000000", + "5": "5054971107917/1000000000000", + "6": "4872649551123/1000000000000", + "7": "2303954527/488281250", + "729": "36367644171/500000000000", + "756": "36367644171/1000000000000", + "8": "4584967478671/1000000000000", + "9": "893436888603/200000000000" + }, + "moment_upper": "93758349669268174319758205865410416369669365194946428036263324886438920093698460010858713501882394775456058947688857504496378147740660153782705622445171968788940999158190850771009870660961702451316489933657453673410640256343163004633261783258126014322372415015196690665271304600343211202483869148840537844645971747977878306709988702092424295624899718047484041316483866997928443286860331217210569026228462754909148637641705274404842932443778349005557711550186032457951943018925944743009981965944635321901441335715694527157550303349516161701526749290641/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000", + "saving": "717/10000000", + "strict_gap": "799473866277846996709566868461626852274119892073214726922559004722049349860610885265197736074614901241077938822464125203618856630115942991121576126038522365700920238764631890201019076228268900099948049068998325124717427528599065415563911051089321775180102241577945383026678416698968257186466124918166171990724170465498339188718920943864567240237109440116392647851672422772615476546648773879307167872400514966177486129179086589485432748351924928772206631719941743038644792509730653397329958725804455602353626204716908969469523838298473250709359/93758350468742040597605202574977284831296217469066320109478051808997924815747809871469598767080130850070960188766796326960503351359516783898648613566748094827463364859111089535641760861980778679585390033605502742408965381060590533232327198822037065411694190195298932243216687627021627901452126335306662762812143738702048772208327890811345239489466958284593481432876514849600866059475807763859342905535630627309663603819191403583929521929211097357482640322392664177893686057570737252740635363274594047705896938069320731874459272819040000000000000000000" + }, + "finite_bridge": { + "bit": { + "W": 188181929, + "halving_degree": 9, + "m": 575, + "maxchild": 529, + "wire_bits": 28 + }, + "complex": { + "W": 537696432, + "halving_degree": 20, + "m": 784, + "maxchild": 756, + "s": 421548223824, + "scalar_group_upper": 4793351472, + "scalar_terms": [ + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + }, + { + "c": 78437, + "copied_center_extra_groups": 56, + "h": 28, + "invocations": 3276, + "local_group_upper": 729892, + "v": 3276 + } + ], + "wire_bits": 30 + }, + "rows": { + "coefficient": 852, + "contract": "W_complex^D_complex * W_bit^D_bit; one preceding prefix and padding; all temporary copies sequential", + "degree": 2000, + "degree_gap": "6548/25", + "suffix_slope": 8000 + }, + "semantic": { + "B": 9696565176891520488614054257040, + "C0": 2358858462850846165593256368932965330169899180021667007021321420800, + "C1": 1, + "E": 9696565176891520488192506033216, + "induction_gap": 533311084729033626873772984137200, + "literal_charge": 2771683137698171397039558468, + "strict_literal_gap": 9693793493753822316795466474748 + } + }, + "inherited_commit": "0ef3aeb61f55cc0b321ce6a0ef00acee25cefe52", + "kappa": "384569/10000000000", + "scope": "Exact finite moments and assembly; producer and corner certificates checked separately. Copied-stream scheduling, simultaneous basis existence, analytic and tape interfaces remain written proof dependencies.", + "source_sha256": { + "certificates/copied-centers-bit-axes.json": "ed307cef595091b11ba8f8e6ff11302ad8db190227a2fbf34c232fd680206254", + "certificates/copied-centers-complex-input.json": "91a9e54b455ecc36c3150abcf4a1c9138691c8faab464b5ce159ba8e376764e7", + "certificates/copied-centers-corner-25-23.json": "23b0540ddc1d98a775383bfc65c7cf512aad86b399bf71167220b2a8182f5610", + "certificates/copied-centers-input.json": "5f8a57b1a4dd3f271d4e859ad350db3674b74f744127e74a989e7790718cea24", + "notes/copied-centers-assembly.tex": "00117892971ae766188ace0af03030c44164fda105e42b70d84f52c3339a7dcb", + "notes/copied-centers-bit.tex": "ccc8191ddb51698251ed4461a4c26104501b9b2ee37ce3cbe82fa73e85ae40dd", + "notes/copied-centers-complex.tex": "18eac6d5c5755e53230c0c12a633f38b6ce9666ef0322c1aff79394f2952af72", + "notes/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "notes/copied-centers-note.tex": "1099559bea3090399a2496bfb8fdf8966ac39d22fd413e35643af5ee0bb08556", + "references/copied-centers/MANIFEST.json": "5636f7beb34ae439f076d36e13d95d3057ce41ccbdba9da63d7727198b093ccb", + "scripts/copied_centers/README.md": "8d348a28fc11615fb686f7d47548db06a5000378b54e0e47438d17292b5942b9", + "scripts/copied_centers/__init__.py": "13db4f09038a2ff5335cbd4dbd93274b0fb16b3c7b51e4de67cbb2801a3f78e1", + "scripts/copied_centers/corners.py": "9eecdc39c67cc18c806a33f0be03986c28591d322881fd60c11f52c625c8067b", + "scripts/copied_centers/physical.py": "837345d1f8753eab0e70f105b1d1bb0db965b993da037b1825ddef3672609d7d", + "scripts/copied_centers_network.py": "409ebfbd8a41c4c4d089aa0949fcf5a949415dc26f57440ffd48b7bd8881e6a9", + "scripts/copied_centers_producer.py": "33afa6fe25677e13656fa8a200a25ed3510ef70c1ff9f1186612cbd9ee75d209", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "scripts/structured_bulk_assembly.py": "e99467e14211fba699878ed036e1e2362eb8e395dc22f9ecdcecc7fbf2cc736d" + }, + "status": "Conditional copied-center multiplication witness" +} diff --git a/references/stopped-recursion/pr107/certificates/stopped-product-bit-axis.json b/references/stopped-recursion/pr107/certificates/stopped-product-bit-axis.json new file mode 100644 index 0000000000..5824891de9 --- /dev/null +++ b/references/stopped-recursion/pr107/certificates/stopped-product-bit-axis.json @@ -0,0 +1,38 @@ +{ + "h": 23, + "v": 1771, + "c": 34764, + "q": 5336, + "baseline_R": 40100, + "matching": 1324, + "R": 38776, + "loss": 506, + "histogram": [ + 9840, + 38409, + 32471, + 8898, + 9754, + 2116, + 5737, + 1725, + 4145, + 1547, + 3128, + 1551, + 2893, + 1925, + 2841, + 2450, + 2327, + 3096, + 2344, + 3628, + 9435, + 2110, + 23, + 23 + ], + "label_source": "positive", + "description": "Retained-total aligned triple producer, base-two recursion, original maximum carrier matching, and compatible positive labels." +} diff --git a/references/stopped-recursion/pr107/certificates/stopped-product-complex-input.json b/references/stopped-recursion/pr107/certificates/stopped-product-complex-input.json new file mode 100644 index 0000000000..7b1d99c518 --- /dev/null +++ b/references/stopped-recursion/pr107/certificates/stopped-product-complex-input.json @@ -0,0 +1,41 @@ +{ + "h": 24, + "v": 2024, + "c": 45764, + "q": 8120, + "baseline_R": 53884, + "matched": 8966, + "R": 44918, + "orientation_changes": 7338, + "rank_sum": 1079136, + "loss": 552, + "histogram": [ + 8930, + 49042, + 30844, + 15972, + 11883, + 8272, + 6399, + 4356, + 6682, + 2263, + 5109, + 1808, + 5317, + 1733, + 5391, + 1757, + 4908, + 3290, + 6233, + 4363, + 4056, + 264, + 564, + 24, + 24 + ], + "central_disjoint": 24, + "center_denominator": 21 +} diff --git a/references/stopped-recursion/pr107/certificates/stopped-product-input.json b/references/stopped-recursion/pr107/certificates/stopped-product-input.json new file mode 100644 index 0000000000..f0a910a495 --- /dev/null +++ b/references/stopped-recursion/pr107/certificates/stopped-product-input.json @@ -0,0 +1,253 @@ +{ + "bit": { + "dimensions": [ + 23, + 23 + ], + "m": 529, + "N": 3136441, + "W": 143617474, + "L": 1792252, + "total_rank": 75972299557, + "deficit": 1344189, + "maxchild": 506, + "child_multiplicities": { + "1": 139262585, + "2": 115012282, + "3": 31516716, + "4": 34548668, + "5": 7494872, + "6": 20320454, + "7": 6109950, + "8": 14681590, + "9": 5479474, + "10": 11079376, + "11": 5493642, + "12": 10247006, + "13": 6818350, + "14": 10062822, + "15": 8677900, + "16": 8242234, + "17": 10966032, + "18": 8302448, + "19": 12850376, + "20": 33418770, + "21": 7473620, + "22": 12627230, + "484": 6272882, + "506": 137344592 + } + }, + "complex": { + "dimensions": [ + 24, + 24 + ], + "m": 576, + "N": 4096576, + "B1": 90914032, + "B2": 90914032, + "W": 190021216, + "L": 2234496, + "total_rank": 109450358336, + "deficit": 1862080, + "child_multiplicities": { + "552": 181828064, + "529": 8193152, + "1": 202715744, + "2": 124856512, + "3": 64654656, + "4": 48102384, + "5": 33485056, + "6": 25903152, + "7": 17633088, + "8": 27048736, + "9": 9160624, + "10": 20681232, + "11": 7318784, + "12": 21523216, + "13": 7015184, + "14": 21822768, + "15": 7112336, + "16": 19867584, + "17": 13317920, + "18": 25231184, + "19": 17661424, + "20": 16418688, + "21": 1068672, + "22": 2283072, + "23": 16483456 + }, + "maxchild": 552, + "copied_histogram": [ + 8930, + 49066, + 30844, + 15972, + 11883, + 8272, + 6399, + 4356, + 6682, + 2263, + 5109, + 1808, + 5317, + 1733, + 5391, + 1757, + 4908, + 3290, + 6233, + 4363, + 4056, + 264, + 564, + 24, + 0 + ] + }, + "bit_moment_gap": "5833629405069796335513229037/13595148940731587639987765177686687744", + "complex_moment_gap": "5499421901694541095908997425024101371546537414283732387206104389099738183215366564793192567257041780652609318673168302647523216560182242981533611801155442603608986943408777543208667066118724847925169249370145237707441178592436788856344246441565482324551821454604550454953780270300756671351666361036963486701477553679079126088067165335949185500960812006586245961913848693714754073033035419679174118868763905107326417918471742975833959733450001524553321932789312500612407132407690299/41230077325513267360846956938521502341474073689326505257121676970478810391277326276471865083362032190646188250982499628351612283105589897175543987487125650452330304348151388045812369968133964037865011250349179368669257862504666828211703334554008512518414563221340357395437053315115874615168412042904680012697363239611038021437069048505672439008745508864584512067644825937731293242352557278635159598633861792145775836588122497044363982384099548431927704944786606529202786560000000000000000000", + "finite_bridge": { + "bit_coarse": { + "m": 529, + "W": 143617474, + "maxchild": 506, + "halving_degree": 16, + "wire_bits": 28 + }, + "ordinary_leaf_row_degree": 252, + "complex": { + "m": 576, + "W": 190021216, + "s": 109450358336, + "maxchild": 552, + "halving_degree": 17, + "wire_bits": 28, + "scalar_terms": [ + { + "h": 24, + "v": 2024, + "c": 45764, + "invocations": 2024, + "local_group_upper": 408200, + "copied_center_extra_groups": 48 + }, + { + "h": 24, + "v": 2024, + "c": 45764, + "invocations": 2024, + "local_group_upper": 408200, + "copied_center_extra_groups": 48 + } + ], + "scalar_group_upper": 1656684480 + }, + "semantic": { + "E": 403063477262941121443761178688, + "literal_charge": 119639333593035096270287748, + "strict_literal_gap": 402943837929348086347490890940, + "B": 403063477262941121553211537024, + "C0": 2994465792675104952757349965746759652008778122322142627817848832, + "C1": 1, + "induction_gap": 18943983431358232713000942240128, + "fixed_odd_divisor": 21, + "exact_grid": "One common dyadic grid times the fixed odd divisor to K=G*(D_complex+1); no child rounding" + }, + "rows": { + "coefficient": 1176, + "degree": 4000, + "suffix_slope": 16000, + "degree_gap": "40024/25", + "contract": "W_complex^D_complex * W_coarse^D_coarse * W_old^D_old; one preceding prefix and one padding; sequential reuse" + } + }, + "assembly": { + "parameters": { + "actual_bit_saving": "803380799/10000000000000", + "a_bit": "1948995551/25000000000000", + "a_complex": "1949/25000000", + "tau": "24998051004449/25000000000000", + "sigma": "24998051/25000000", + "eta": "1/100000000", + "beta": "1/1000000", + "q": "97449775601004449/1250000000000000000000", + "c": "9744977657550220501004449/125000000000000000000000000000", + "epsilon": "124999998750000000000000000000/125019489955217650665401004449", + "lambda_": "2499805100446848995551/2500000000000000000000", + "lambda_prime": "1249902550224398995551/1250000000000000000000", + "alpha_squared_power": "14618091340150667350000000/125019489955217650665401004449", + "delta": "1/800000000", + "C0": 2994465792675104952757349965746759652008778122322142627817848832, + "C1": 1, + "kappa": "194869/2500000000" + }, + "strict_constraints": { + "bit_positive": "1948995551/25000000000000", + "complex_above_bit": "4449/25000000000000", + "complex_below_one_over32": "779301/25000000", + "beta_positive": "1/1000000", + "beta_below_one": "999999/1000000", + "leaf_saving_above_bit": "1/10000000000", + "q_positive": "97449775601004449/1250000000000000000000", + "q_below_internal": "1948995551/1250000000000000000000", + "q_below_leaf": "126948995551/1250000000000000000000", + "c_positive": "9744977657550220501004449/125000000000000000000000000000", + "c_below_one": "124990255022342449779498995551/125000000000000000000000000000", + "q_below_reservations": "97449775601004449/125000000000000000000000000000", + "lambda_above_tau": "1948995551/2500000000000000000000", + "lambda_above_sigma": "446848995551/2500000000000000000000", + "lambda_above_internal": "1948995551/2500000000000000000000", + "lambda_prime_above_lambda": "1948995551/2500000000000000000000", + "compact_leaf": "126948995551/1250000000000000000000", + "compact_reservations": "97449775601004449/125000000000000000000000000000", + "lambda_prime_below_one": "97449775601004449/1250000000000000000000", + "epsilon_positive": "124999998750000000000000000000/125019489955217650665401004449", + "epsilon_below_one": "19491205217650665401004449/125019489955217650665401004449", + "guard_width": "19491205217650665401004449/125019489955217650665401004449", + "K_geometry": "974622765755022147550220501004449/12501948995521765066540100444900000000", + "K_dominates_log": "974497756010044392550224398995551/12501948995521765066540100444900000000", + "record_suffix": "19491205217650665401004449/125019489955217650665401004449", + "phase_local": "15592839154630577103152893798995551/100015591964174120532320803559200000000", + "phase_boundary": "11694348052630578662349334598995551/100015591964174120532320803559200000000", + "gamma_sublinear": "4873113877499998051004449/125019489955217650665401004449", + "cell_above_band": "124995125636122500001948995551/250038979910435301330802008898", + "prime_interval_packing": "19491205217650665401004449/125019489955217650665401004449", + "alpha_positive": "14618091340150667350000000/125019489955217650665401004449", + "alpha_below_one": "125004871863877499998051004449/125019489955217650665401004449", + "alpha_below_one_fourth": "124961017589857047996001004449/500077959820870602661604017796", + "delta_positive": "1/800000000", + "delta_below_one_eighth": "99999999/800000000", + "short_record_fallback": "3124756306320288991609616461252697967793601/3125487248880441266635025111225000000000000", + "small_field_exposure": "9746227754999996102008898/125019489955217650665401004449", + "artificial_boundary": "700128635079475474301789581367398995551/100015591964174120532320803559200000000", + "literal_scalar_guard": "402943837929348086347490890940", + "row_product_gap": "40024/25", + "original_prefix_above_kappa": "786538948061330309871047284761/78137181222011031665875627780625000000", + "coordinate_movement_above_kappa": "305551/25000000000000", + "compact_phase_layer_above_kappa": "20668543364879972849164027819/312548724888044126663502511122500000000", + "bulk_exposure_above_kappa": "305551/25000000000000", + "Gaussian_arithmetic_above_kappa": "97459317411097999618605138287111327/2500389799104353013308020088980000000000", + "scalar_work_above_kappa": "194921594961097960638694118287111327/2500389799104353013308020088980000000000", + "dimension_above_kappa": "312475634452011916691632483971664027819/312548724888044126663502511122500000000" + }, + "margins": { + "original_prefix": "974622765755022147550220501004449/12501948995521765066540100444900000000", + "coordinate_movement": "1948995551/25000000000000", + "compact_phase_layer": "9744977462650669298995551/125019489955217650665401004449", + "bulk_exposure": "1948995551/25000000000000", + "Gaussian_arithmetic": "11694348052630578662349334598995551/100015591964174120532320803559200000000", + "scalar_work": "15592839154630577103152893798995551/100015591964174120532320803559200000000", + "dimension": "124999998750000000000000000000/125019489955217650665401004449" + }, + "minimum_margin": "9744977462650669298995551/125019489955217650665401004449", + "absorption_gap": "20668543364879972849164027819/312548724888044126663502511122500000000", + "recurrence": { + "internal": "24998051004449/25000000000000", + "leaf": "24998051001949/25000000000000", + "reservations": "124990255022342449779498995551/125000000000000000000000000000" + } + } +} diff --git a/references/stopped-recursion/pr107/notes/batched-23-note.tex b/references/stopped-recursion/pr107/notes/batched-23-note.tex new file mode 100644 index 0000000000..14b4c40160 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-23-note.tex @@ -0,0 +1,139 @@ +\documentclass[11pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{amsmath,amssymb,amsthm,mathtools,booktabs,longtable} +\usepackage{microtype} +\usepackage{enumitem} +\usepackage[hidelinks]{hyperref} +\setlist{itemsep=3pt,topsep=5pt} +\setlength{\parindent}{1.25em} +\setlength{\parskip}{2pt} +\setlength{\emergencystretch}{2em} +\allowdisplaybreaks[2] +\numberwithin{equation}{section} +\newtheorem{theorem}{Theorem}[section] +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{corollary}[theorem]{Corollary} +\title{Bulk Recursion for Integer Multiplication\\[4pt] + \large Large projector blocks, whole residuals, and a pathwise precision guard} +\author{icekylinx\\\small With substantial OpenAI GPT-6 Astra and Codex assistance} +\date{8 October 2026} +\begin{document} +\maketitle +\begin{abstract} +We batch rational projector blocks and whole complex residuals in the +retained finite networks. A controlled common basis yields contiguous +recursive calls; mixed-width moment bounds and a dependency-path precision +guard give a saving beyond $2^{-23}$. The construction includes integer +remainders, bounded row padding, and a corrected Gaussian input error +bound. The conclusion is conditional on the pinned upstream multiplication +theorem and the retained finite-network and analytic interfaces. +\end{abstract} +\vspace{1.5em} +\[ +\boxed{T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=\frac{6149999}{5\cdot10^{13}}>2^{-23}.} +\] +\clearpage +\tableofcontents +\clearpage + +\section{Result and retained framework} +The model is a fixed finite-alphabet Turing machine with a fixed number +of one-dimensional tapes. Section~\ref{sec:batched-final-assembly} gives +the rational parameters and strict assembly margins. +All constants defining the finite networks, their rational bases, +the address radix, and the number of tapes are fixed independently +of $n$. The scalar domains and the address-label fields are distinct. +The interchange network carries fixed $\mathbb F_3$ payloads and uses +rational address matrices. The complex network carries Gaussian dyadic +values and uses binary subspace labels. + +The finite constructions are those of Zhihao Chen's PR~\#7 +\cite{pr7}, at commit +\begin{center} +\texttt{6725c6a17b17871a35353fd29157f4ed851bc114}. +\end{center} +That contribution supplies the ternary five-subset network, the paired +complex producer, their frame schedules, and their finite counts. +It builds on Douglas Colkitt's compact-control framework +\cite{main}, Bortlesboat's alignment \cite{pr2}, eumemic's complex +producer and Gaussian resampling \cite{pr3,pr5,pr6}, and dleen's +retained totals and stage sharing \cite{pr4}. The upstream manuscript +is pinned at OpenAI commit +\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a} +\cite{upstream}. + +\section{Large rational projectors} +\input{notes/projector-batching.tex} + +\section{The explicit interchange recurrence} +\input{notes/batched-bit-rank-accounting.tex} +\input{notes/controlled-projector-basis.tex} + +\section{Integer widths and bit-stream rows} +\input{notes/batched-bit-rows.tex} + +\section{Complex residuals and arithmetic depth} +\input{notes/batched-path-budget.tex} +\input{notes/bulk-complex-guard.tex} + +\section{The complete layer on mixed widths} +\input{notes/batched-complex-rows.tex} + +\section{Exact conditional assembly} +\input{notes/batched-assembly.tex} + +\section{Precision correction to the retained Gaussian interface} +\input{notes/chirp-scaling-correction.tex} + +\section{Constructive algorithm specification} +\input{notes/batched-algorithms.tex} + +\section{Reproduction and attribution} +Run \texttt{make verify} for the finite producers, exact certificates, +regression checks, and manuscript patches. Run \texttt{make batched-note} +to rebuild this note. The source pins and licenses are in +\texttt{SOURCES.json} and \texttt{NOTICE}. + +The bulk-recursion contribution is by icekylinx, with substantial +OpenAI GPT-6 Astra assistance. Review corrections and integration used +OpenAI Codex assistance. Prior constructions retain the attribution +listed above and in the bibliography. + +\clearpage +{\small\raggedright +\begin{thebibliography}{9} +\bibitem{upstream} OpenAI. +\emph{Integer multiplication below $n\log n$}, result family \#109. +Pinned source commit \texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}. +\url{https://github.com/openai/math}. +\bibitem{main} Douglas Colkitt. +\emph{A sharper exponent for integer multiplication}. +\texttt{CrocSwap/integer-mult-bounds}, main commit +\texttt{6e564879f51ae16f23d392e9e196c605f36d90df}. +\url{https://github.com/CrocSwap/integer-mult-bounds}. +\bibitem{pr2} Bortlesboat. +\emph{Align pair groups for a conditional $17\cdot2^{-63}$ bound}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/2}. +\bibitem{pr3} eumemic. +\emph{Compress the complex network for a conditional $59/10^{11}$ bound}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/3}. +\bibitem{pr4} dleen. +\emph{Combine PR \#3 shared exclusions with retained totals and stage sharing}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/4}. +\bibitem{pr5} eumemic. +\emph{Faster Gaussian resampling for a conditional $1479/10^{12}$ bound}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/5}. +\bibitem{pr6} eumemic. +\emph{Aligned bit circuit with cheaper centers for a conditional +$1624/10^{12}$ bound}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/6}. +\bibitem{pr7} Zhihao Chen (jacklightChen). +\emph{Ternary five-subset networks for a conditional $373/10^{11}$ bound}. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/7}. +\end{thebibliography} +} +\end{document} diff --git a/references/stopped-recursion/pr107/notes/batched-algorithms.tex b/references/stopped-recursion/pr107/notes/batched-algorithms.tex new file mode 100644 index 0000000000..557cf12d7c --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-algorithms.tex @@ -0,0 +1,265 @@ +\subsection{Constructive algorithm for batched integer-width interchange} +\label{sec:batched-algorithms} + +The following pseudocode specifies how the fixed finite circuit becomes +an interchange procedure. It uses the retained single-digit streaming, +ordered-affine streaming, finite-circuit transfer, and depth-first tape +primitives. + +\paragraph{One-time finite preparation in the controlled tensor basis.} +Start from the prime-field five-subset circuit, its corrected role +permutation, and its all-role rational endpoint matrices. The payload +alphabet is $\mathbb F_3$; the integer-address radix below is a separate +fixed odd prime $q$. + +Put $H_0=h^2=784$ and reorder the finite label-space tensor factors so +that the original third factor is first. Write the resulting space as +$F\otimes V$, where $\dim F=h$ and $\dim V=H_0$, with coordinates +$(\alpha,i)$, $1\le\alpha\le h$, $1\le i\le H_0$, and $i$ varying +fastest. The controlled basis of +Lemma~\ref{lem:controlled-projector-basis} has the form +\[ + T(u\otimes e_i)=G_i u\otimes e_i, + \qquad S=T(I_F\otimes K), +\] +where $K\in\operatorname{GL}_{H_0}(\mathbb Q)$ and the +$G_i\in\operatorname{GL}_h(\mathbb Q)$ are chosen independently. +This choice applies to the assigned finite matrices; it introduces no +extra change of coordinates on the tape streams. + +\begin{verbatim} +PREPARE_FINITE_DATA(circuit): + Reorder the finite tensor coordinates as (third, first-and-second). + Enumerate rational invertible K and rational invertible G_i. + Form T(u tensor e_i) = G_i*u tensor e_i; S = T*(I tensor K). + Retain the first choice satisfying the finite controlled-basis tests: + A1: its first 2h by last 2h corner is nonsingular. + A3: its first H0+h-1 by last H0+h-1 corner is nonsingular. + A2: its first H0 by last H0 corner is diagonal and nonsingular. + Conjugate every terminal and gate matrix by this same S. + For each edge, form A = matrix_at_head - matrix_at_tail. + If A belongs to A1 or A3, of rank a: + r = m-a; t = 2*a-m. + Store lower-triangular factors A = E1*Pi*E2. + Store r corner pivots and one middle identity block of t slots. + If A belongs to A2: + Store lower-triangular factors A = E1*Pi*E2. + Store the aligned corner identity block of H0 slots and + the middle identity block of m-2*H0 slots. + Store no singleton corner pivots. + Otherwise: + Store the ordinary lower-triangular partial-permutation form. + Choose an odd prime q avoiding all prepared denominators and + all diagonal numerators needed to keep the factors invertible. + Form the fixed list of child multipliers t_i in [1, m-1]. + Set tau = 1 - 246/10^9, using the certified strict moment bound. + Return the finite tables, q, tau, and t_star = 21840. +\end{verbatim} + +The corner tests are applied to the conjugated projectors in the three +selected classes. The controlled-basis lemma proves that the required +rational parameter choice exists, hence that this finite search +terminates. Every test can be performed by rational elimination. +The lower-triangular factorization normalizes every stored pivot to one. +For the second class, +\[ + A_2=(I_F-\Pi_t)\otimes I_V, +\] +the factor $I_F\otimes K$ commutes with $A_2$. Its first-to-last block +after conjugation by $T$ is diagonal in $i$, with entries +$[G_i(I_F-\Pi_t)G_i^{-1}]_{1,h}$. These nonzero entries are normalized +by fixed diagonal units. They therefore give one identity block in +matching physical order between the first $H_0$ fields of $H$ and the +last $H_0$ fields of $D$. The Schur complement supplies the second, +contiguous middle identity block. It is this prescribed matching order +that permits the corner to use a single block interchange. + +The common conjugation preserves every edge rank and every all-role +endpoint difference $I_m$. Ordinary rational elimination constructs +all unselected factorizations. The prime can be selected by trial +division after the finite forbidden factors are known. None of this +preparation depends on the input width. + +For $m=21952$ and $h=28$, write $B=v^2R$ and $N=v^3$. +The prepared calls for the three selected classes are +\[ +\begin{array}{c|c|r|r|l} + \text{class}&\text{copies}&\text{rank}&\text{singletons}& + \text{contiguous block sizes}\\ \hline + A_1\text{, stage 1--3 join}&B&21896&56&21840\\ + A_2\text{, stage 2 sink}&B&21168&0&784,\ 20384\\ + A_3\text{, stage 3 data entrance}&2N&21141&811&20330 +\end{array} +\] +The singleton count, including all ordinary calls on other edges, is +\[ + n_1=s-B(21840+20384+784)-2N\cdot20330 + =105555640096680883200. +\] +Thus the child multipliers are exactly +\[ + 1,\quad 784,\quad 21840,\quad 20384,\quad 20330, +\] +with multiplicities $n_1,B,B,B,2N$, respectively. The exact moment is +\[ + \Psi(x)=\frac{n_1+B(784^x+21840^x+20384^x)+2N\,20330^x}{Wm^x}, + \qquad \Psi(1)=\frac{s}{Wm}. +\] +The controlled-basis certificate proves +\[ + \Psi\!\left(1-\frac{246}{10^9}\right)<1. +\] +All other edges retain the ordinary rank-one implementation, including +any full-rank edge. + +\paragraph{Depth and row contract.} +Every recursive invocation below receives an explicit row field preceding +both target chunks. Its row count $R$ is divisible by $W^{D(e)}$. +Spectator fields of arbitrary lengths may occur elsewhere. + +\begin{verbatim} +DEPTH(e): + depth = 0 + while e >= m: + e = t_star * floor(e/m) + depth = depth + 1 + return depth +\end{verbatim} + +This computes the function $D$ of Section~\ref{sec:mixed-width-rows}. +It terminates, is nondecreasing, and bounds the number of recursive +circuit invocations on every dependency path. Every child of a width-$e$ +node has depth bound at most $D(e)-1$. + +\paragraph{The elementary componentwise shear.} +Suppose two groups each contain $t$ contiguous width-$f$ fields, with the +first group before the second. The groups can be separated by arbitrary +spectators. Addition and subtraction in the following routine are +componentwise modulo $q^f$. + +\begin{verbatim} +BLOCK_SHEAR(H_block, D_block, t, f, R): + for i = 1,...,t: + D_i = D_i + H_i # ordered-affine streaming + INTERCHANGE_WITH_ROWS(H_block, D_block, t*f, R) + for i = 1,...,t: + D_i = H_i - D_i # ordered-affine streaming +\end{verbatim} + +The returned pair is $(H+D,D)$. The sole recursive call exchanges the +two contiguous blocks without reversing their internal field order. +For $t=1$ the same routine implements an ordinary pivot shear, including +when its two fields have different coordinate indices. + +\begin{verbatim} +EDGE_SHEAR(A, H, D, f, R_role): + Read the stored factors A = E1 * Pi * E2. + Apply D = E2*D and H = inverse(E1)*H by ordered streaming. + For each stored singleton pivot (i,j): + BLOCK_SHEAR(H_i, D_j, 1, f, R_role). + For each stored identity block (row_start, column_start, t): + BLOCK_SHEAR(the t consecutive H fields at row_start, + the t consecutive D fields at column_start, + t, f, R_role). + Apply H = E1*H and D = inverse(E2)*D by ordered streaming. +\end{verbatim} + +This is the address shear $(H,D)\mapsto(H+AD,D)$. +The finite factors are invertible over $\mathbb Z/q^f\mathbb Z$ for +all positive $f$. Each unbatched pivot uses one width-$f$ call. Classes $A_1,A_3$ +use their singleton corner calls and one middle-block call. Class $A_2$ +uses two block calls, of widths $784f$ and $20384f$, with no singleton +corner calls. All these widths are strictly less than $mf$. + +\paragraph{The finite circuit on complete rows.} +For a main width $mf$, let $H,D$ denote its two $m$-component field +vectors. All edges below act on one role stream, whose row count is +$R/W$ and logical volume is $V/W$. + +\begin{verbatim} +CIRCUIT_SHEAR(H, D, f, R): + Split each complete row by its index u = W*g + w. + Process the fixed circuit in chronological order: + On each edge e: + EDGE_SHEAR(A_e, H, D, f, R/W) on its role stream. + At each scalar gate: + Apply its fixed F_3 table pointwise at matching addresses. + Merge roles, undoing the known final role permutation. + Return the original row order. + +MAIN_INTERCHANGE(H, D, f, R): + Apply D = D - H componentwise by ordered-affine streaming. + CIRCUIT_SHEAR(H, D, f, R) + Apply D = H - D componentwise by ordered-affine streaming. +\end{verbatim} + +The all-role endpoint identity makes \texttt{CIRCUIT\_SHEAR} equal to +$H\leftarrow H+D$ on every original row, including rows assigned to +auxiliary roles. The three displayed operations in +\texttt{MAIN\_INTERCHANGE} therefore exchange the two main chunks. +All gates allow arbitrary initial auxiliary payloads. Pointwise +operations preserve the row and spectator coordinates, and the final +merge returns every row to its original index. + +\paragraph{An integer width with already available rows.} + +\begin{verbatim} +INTERCHANGE_WITH_ROWS(H, D, e, R): + Require R to be divisible by W^DEPTH(e). + if e < m: + Interchange the e corresponding digits individually; return. + f = floor(e/m); r = e - m*f. + Split H = (H_plus,H_minus), D = (D_plus,D_minus), + with the two high parts of length r. + Interchange the corresponding high-part digits individually. + Gather H_plus immediately before H_minus, obtaining + (D_plus, H_plus, H_minus, gap, D_minus). + MAIN_INTERCHANGE(H_minus, D_minus, f, R). + Move H_plus back immediately before the final H_minus. +\end{verbatim} + +The result is +$(D^+,D^-,\mathrm{gap},H^+,H^-)$. Fewer than a fixed multiple of $m$ +single-digit operations handle the remainder. No chunk range is padded +inside this routine. Every recursive child width is at most +$t_*\lfloor e/m\rfloor$, so splitting the rows once supplies its full +row-divisibility requirement. + +\paragraph{An arbitrary radix-$q$ call without a row promise.} + +\begin{verbatim} +INTERCHANGE_RADIX_Q(H, D, e): + depth = DEPTH(e) + rho = least nonnegative integer with q^(2*rho) >= W^depth + if e < m or 2*rho >= e: + Interchange corresponding digits individually; return. + Split the high rho digits from each chunk. + Interchange those high parts digit by digit. + Gather the two high parts before both remaining chunks. + Regard their joint range q^(2*rho) as an opaque row field. + Pad complete rows to R = W^depth * ceil(q^(2*rho)/W^depth). + INTERCHANGE_WITH_ROWS(the remaining chunks, e-rho, R). + Remove the padded rows. + Undo the gathering move, preserving the completed high-part swap. +\end{verbatim} + +The row range is enlarged by less than two, once. The existing high +digits supply all its other capacity. Since $\rho=O(\log e)$, the +fallback condition $2\rho\ge e$ holds for only a fixed finite set of +widths. Thus its individual-digit cost changes only the constant in +the asymptotic bound. Computing the displayed powers and comparisons +uses ordinary integer arithmetic; no real logarithm is required at +runtime. The row count is divisible by $W^{D(e)}$, hence also by +$W^{D(e-\rho)}$. + +\paragraph{Binary input chunks.} +For equal binary chunk widths $u$, choose the least integer $e$ with +$q^e\ge2^u$. Pad each target range numerically from $[2^u]$ to $[q^e]$, +putting zeros on invalid addresses. Call +\texttt{INTERCHANGE\_RADIX\_Q}, then delete the invalid addresses. +This is the original streaming radix conversion: numerical order is +preserved, each target range expands by less than $q$, and total volume +expands by less than $q^2$. The completed exchange preserves the set of +valid address pairs. Since $q$ is fixed and $e=O(u)$, this gives +$O(Vu^\tau)$ for arbitrary binary chunk widths and arbitrary prefix, +gap, and suffix ranges. diff --git a/references/stopped-recursion/pr107/notes/batched-assembly.tex b/references/stopped-recursion/pr107/notes/batched-assembly.tex new file mode 100644 index 0000000000..c92598b1f5 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-assembly.tex @@ -0,0 +1,155 @@ +\subsection{An exact complex exponent after bulk recursion} +\label{sec:batched-complex-parameters} + +Keep the paired complex producer of PR~\#7. Its constants are +\[ + h=28,\quad v_{\rm c}=\binom{28}{3}=3276,\quad m=21952, + \quad R_{\rm c}=93838. +\] +There are $R_{\rm c}+h+1=93867$ auxiliary roles per invocation, including +the original central roles. Write +\[ + B_{\rm c}=v_{\rm c}^2(R_{\rm c}+h+1)=1007397164592, +\] +\[ + W_{\rm c}=2v_{\rm c}^2(v_{\rm c}+R_{\rm c}+h+1)=2085111546336, +\] +\[ + L_{\rm c}=3v_{\rm c}^2h(h+1)=26143580736, + \qquad + s_{\rm c}=W_{\rm c}m-2v_{\rm c}^3+2L_{\rm c}=45772350635112192. +\] +The two selected whole-residual classes have ranks $a_1=21896$ and +$a_2=21168$, each with $B_{\rm c}$ copies. The number of remaining +singleton children is +\[ + S_{\rm c}=s_{\rm c}-B_{\rm c}(a_1+a_2)=2389799139122304. +\] +Their time moment is +\[ + \Xi(\sigma)=\frac{S_{\rm c}}{W_{\rm c}m^\sigma} + +\frac{B_{\rm c}}{W_{\rm c}} + \left[\left(\frac{a_1}{m}\right)^\sigma + +\left(\frac{a_2}{m}\right)^\sigma\right]. +\] +At $\sigma=1$, this equals +$1-\eta_{\rm c}$ with $\eta_{\rm c}=5/12693352$. + +Take +\[ + a_{\rm c}=\frac7{10^7},\qquad \sigma=1-a_{\rm c}. +\] +The same positive logarithm series used in the bit certificate gives +\[ + \log m<\frac{9997}{1000},\qquad + \log\frac m{a_1}=\log\frac{392}{391}<\frac{2555}{10^6}, + \qquad + \log\frac m{a_2}=\log\frac{28}{27}<\frac{36368}{10^6}. +\] +Let these upper bounds be $\ell_0,\ell_1,\ell_2$ and put +\[ + w_0=\frac{S_{\rm c}}{W_{\rm c}m},\qquad + w_i=\frac{B_{\rm c}a_i}{W_{\rm c}m}\quad(i=1,2). +\] +The exact rational comparison is +\[ + \Xi(1-a_{\rm c}) + <\sum_{i=0}^2\frac{w_i}{1-a_{\rm c}\ell_i}<1. +\] +The gap in the last inequality is +\[ + \frac{24132873235669673777179671369131} + {1525632551364197359955324563293421369131} + >1.58\times10^{-8}. +\] +This certifies the stronger complex exponent with the unchanged +finite producer and the new whole-residual recursion. + +\subsection{Final multiplication parameters and margins} +\label{sec:batched-final-assembly} + +Use the controlled-basis projector-batched interchange saving +$a_{\rm b}=246/10^9$ and the preceding complex saving $a_{\rm c}=7/10^7$. +The complete rational parameter choice is +\[ +\begin{aligned} + \tau&=1-\frac{246}{10^9},& + \sigma&=1-\frac7{10^7},& + \epsilon&=\frac{7999999}{16000000},\\ + c&=1,& \beta&=\frac1{1000},& \delta&=\frac1{10^{10}},\\ + \zeta&=\frac1{10000},& C_1&=\frac{11999}{10000},\\ + \lambda&=1-\frac{246}{10^9}+\frac1{10^{16}},& + \lambda'&=1-\frac{246}{10^9}+\frac2{10^{16}},\\ + \kappa&=\frac{6149999}{5\cdot10^{13}}. +\end{aligned} +\] +The value $c=1$ is allowed by the compact-control construction. Its +reservation exponent $\max\{1-c,0\}$ is zero, while +$1-\epsilon(1+c)=1/8000000>0$ still ensures $K=o(\ell)$ for $K=d$. +The larger fixed constants in the mixed-width row reservations do not +alter any power of $p$. + +Since $\sigma<\tau$, the compact-control internal exponent is $\tau$. +Its leaf exponent is +\[ + \sigma+\beta(1-\sigma)=1-\frac{6993}{10^{10}}<\tau. +\] +The strict gaps of $10^{-16}$ between $\tau,\lambda,\lambda'$ absorb +the fixed powers of $\log p$ in the layer construction. The new +coefficient guard satisfies +\[ + 1-\epsilon C_1=\frac{64008011999}{160000000000}>0. +\] +The fast Gaussian construction retains +$\alpha=\lfloor\sqrt{b/(8d)}\rfloor$ and $\gamma=2d\alpha^2\le b/4$. +Here $1-2\epsilon=1/8000000>0$, so its eventual hypotheses +$b\ge64d^2$, $\alpha^2\theta_i\ge1$ and the prime-interval growth +condition all continue to hold. The numerical maps, their target errors, +the final rounding step and the input/output format are unchanged. +For the retained chirp input generator, use +$F=2^{\lceil1.14\alpha^2\rceil}$ to bound both magnitude and shifted +absolute error; the corrected block argument still uses $P=34p$. + +The seven margins below one in the assembly cost table are +\[ +\begin{aligned} + g_1&=1-\epsilon(1+c),& + g_2&=\epsilon c(1-\tau),& + g_3&=\epsilon(1-\lambda'),\\ + g_4&=(1-\epsilon)(1-\tau),& + g_5&=1-\delta-2\epsilon,& + g_6&=1-\delta-\epsilon,& + g_7&=\epsilon. +\end{aligned} +\] +Their exact values are +\[ +\begin{array}{c|c} + \text{margin}&\text{value}\\\hline + g_1&1/8000000\\ + g_2&983999877/8000000000000000\\ + g_3&9839998762000001/80000000000000000000000\\ + g_4&984000123/8000000000000000\\ + g_5&1249/10000000000\\ + g_6&312500039/625000000\\ + g_7&7999999/16000000 +\end{array} +\] +All twenty-nine parameter constraints are strict. The minimum final +margin is $G=g_3$, and +\[ + G-\kappa= + \frac{362000001}{80000000000000000000000}>0. +\] +This last fixed positive gap absorbs the remaining logarithmic factors. +The resulting conditional multiplication bound is +\[ + \boxed{ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \kappa=\frac{6149999}{5\cdot10^{13}} + =1.2299998\times10^{-7}>2^{-23}.} +\] + +The exact comparisons are reproduced by +\texttt{scripts/batched\_network.py} and recorded in +\texttt{certificates/batched-network.json}. diff --git a/references/stopped-recursion/pr107/notes/batched-bit-rank-accounting.tex b/references/stopped-recursion/pr107/notes/batched-bit-rank-accounting.tex new file mode 100644 index 0000000000..311f6055b5 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-bit-rank-accounting.tex @@ -0,0 +1,138 @@ +\subsection{Three geometric rank classes in the retained ternary network} +\label{sec:batched-bit-rank-accounting} + +The five-subset producer of PR~\#7 is retained. Put +\[ + h=28,\quad v=\binom{28}{5}=98280,\quad m=h^3=21952, + \quad R=11840940,\quad N=v^3, +\] +\[ + W=2v^2(v+R),\qquad + L=3v^2\binom h2(h-2),\qquad + s=Wm-N+2L. +\] +This subsection needs the producer's proved width upper bound and frame +schedule; it does not enumerate its internal addition graph again. +If the producer uses fewer than $R$ roles, insert dummy auxiliary roles +with identity gates at the ordinary low and high frames of every invocation. +Do this before identifying the first- and third-stage banks. Every dummy +role restores its arbitrary scalar, has no decreasing edge, and contributes +exactly $m$ to the final rank sum. Thus the stated width and the rank classes +below are realized exactly, including any padding. + +Write $a=h^{j-1}$ at tensor stage $j$. With the notation of the retained +frame proof, the early auxiliary frame is +\[ + D_0=(B\otimes F)\otimes Q,\qquad \dim D_0=(a-1)h, +\] +and the final auxiliary frame is +\[ + D_1=(A\otimes F)\otimes Q,\qquad \dim D_1=ah. +\] +The two auxiliary banks give the following edges. + +\begin{enumerate} +\item Each role joining stages one and three passes from a frame of + dimension $h$ to a containing frame of dimension $m-h$. + This is a projector edge of rank $m-2h$. + There are $B=v^2R$ such roles. +\item Each stage-two auxiliary role passes from its final frame of + dimension $h^2$ to the full sink frame of dimension $m$. + Its rank is $m-h^2$, again with $B=v^2R$ copies. +\end{enumerate} + +There is one further large class on the data wires. The incoming physical +$X$ and $Y$ dimensions at stage $j$ are $a$ and $a-1$. Their first relevant +frames have dimensions $(a-1)h+1$ and $(a-1)h$, respectively. Hence both +entrance edges have rank +\[ + d_j=(a-1)(h-1). +\] +The remaining growth of each data role in that stage is $h-1$. +These dimensions hold for the reverse middle-stage schedule as well: +its low source copy and its target-line injection give precisely the same +physical frames. At stage three, +\[ + d_3=(h^2-1)(h-1)=21141>m/2, +\] +and there are $2N$ copies. The special negative source matrix contributes +one rank-one edge on each physical $X$ source, as in PR~\#7. +Consequently the complete data rank sum is +\[ + 2N\sum_{j=1}^3\bigl(d_j+h-1\bigr)+N=2Nm-N. +\] +All remaining auxiliary changes inside an invocation have rank at most +$h$, and a stage-two auxiliary entrance has rank $h^2-h$. Thus the three +classes listed above exhaust the ranks exceeding $m/2$, although exhaustion +is not needed for the certificate: leaving any other edge unbatched can +only weaken the claimed upper bound. + +Apply the large-projector batching lemma to these classes. A rank-$a_i$ +projector with $a_i>m/2$ uses $m-a_i$ singleton pivot interchanges and +one contiguous interchange of $(2a_i-m)$ subfields. The resulting table is +\[ +\begin{array}{c|r|r|r|r} + \text{class}&\text{copies }B_i&\text{rank }a_i& + \text{singleton pivots}&\text{batched width }k_i\\\hline + \text{stage 1--3 join}&v^2R&21896&56&21840\\ + \text{stage 2 sink}&v^2R&21168&784&20384\\ + \text{stage 3 data entrance}&2v^3&21141&811&20330 +\end{array} +\] +Treat every rank unit outside these three middle blocks as a singleton +interchange. The number of singleton calls is therefore exactly +\[ + S=s-\sum_{i=1}^3B_i k_i. +\] +At a parent width $e$, the child widths are $e/m$ with multiplicity $S$ +and $k_i e/m$ with multiplicity $B_i$; all children operate on streams of +volume $V/W$. The finite mixed-width recurrence consequently has normalized +moment +\[ + \Psi(\tau)=\frac{S}{Wm^\tau} + +\sum_{i=1}^3\frac{B_i}{W}\left(\frac{k_i}{m}\right)^\tau. +\] +At $\tau=1$ this is $s/(Wm)=1-\eta$, where +$\eta=39/520019360$. + +\paragraph{The intermediate middle-block certificate.} +This paragraph records the first batching step. The controlled basis in +the following subsection increases its saving from $177/10^9$ to +$246/10^9$, which is the value used in the final assembly. +Set +\[ + a_{\rm b}=\frac{177}{10^9},\qquad \tau=1-a_{\rm b}. +\] +Let $r_0=1/m$, $r_i=k_i/m$, and +\[ + w_0=\frac S{Wm},\qquad w_i=\frac{B_i k_i}{Wm}. +\] +Then $\sum_iw_i=1-\eta$ and +$\Psi(1-a_{\rm b})=\sum_iw_i\exp(a_{\rm b}\log(1/r_i))$. +Use the rational logarithm upper bounds +\[ + \log m<\frac{9997}{1000},\quad + \log\frac{196}{195}<\frac{512}{100000},\quad + \log\frac{14}{13}<\frac{7411}{100000},\quad + \log\frac{21952}{20330}<\frac{768}{10000}. +\] +They follow from the positive series +\[ + \log x=2\sum_{j\ge0}\frac{z^{2j+1}}{2j+1},\qquad + z=\frac{x-1}{x+1}, +\] +using sixteen terms and remainder at most +$2z^{33}/(33(1-z^2))$; for $m$, first extract its power of two. +For $0\le t<1$, $e^t\le(1-t)^{-1}$. Calling the four displayed upper +bounds $\ell_i$, exact rational arithmetic gives +\[ + \Psi(1-a_{\rm b}) + <\sum_{i=0}^3\frac{w_i}{1-a_{\rm b}\ell_i}<1. +\] +The strict gap in this last bound is greater than $1.78\times10^{-10}$. +All integers, rational logarithm enclosures, weights and the exact gap are +supplied by \texttt{scripts/batched\_bit\_rank\_moment.py} and its JSON +certificate. Under the accompanying arbitrary-width recurrence lemma, +this proves the interchange saving $a_{\rm b}=177/10^9$ for the unchanged +finite scalar producer. A smaller role upper bound can be inserted directly +into the same three-class formula. diff --git a/references/stopped-recursion/pr107/notes/batched-bit-rows.tex b/references/stopped-recursion/pr107/notes/batched-bit-rows.tex new file mode 100644 index 0000000000..cbaa8cb42c --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-bit-rows.tex @@ -0,0 +1,123 @@ +\subsection{Integer widths, bounded row padding, and mixed contractions} +\label{sec:mixed-width-rows} + +The batched residual construction uses a fixed finite list of child sizes, +not only powers of one radix. The following implementation supplies the +corresponding integer-width recursion. All constants in this subsection +are fixed finite circuit constants, independent of the input length. + +\paragraph{A general moment condition.} +Let $m,W\ge2$ be fixed. At one circuit invocation, let the list +$t_1,\ldots,t_J$ contain integers in $[1,m-1]$. A child of type $i$ has +width $t_i f$, where $f=\lfloor e/m\rfloor$, and operates on exactly +$1/W$ of the parent's logical volume. Repetitions in the list represent +separate calls. An ordinary rank-one call has $t_i=1$; a batched block +has the corresponding larger value of $t_i$. Full-rank edges may retain +their original $m$ rank-one calls, so no same-width recursive call is +needed. Put +\[ + \Psi(x)=\frac1W\sum_{i=1}^J(t_i/m)^x, + \qquad t_* = \max_i t_i \tau$, every internal width is at least $d^\beta$, so +$e^\tau\le d^{\beta(\tau-\sigma)}e^\sigma$; summing the strict +$\sigma$-moment gives +$O(G^\tau d^{\sigma+\beta(\tau-\sigma)})$. +Thus in both cases, with +\[ + \chi=\tau+(1-\beta)\max\{\sigma-\tau,0\}, +\] +the complete normalized layer cost is +\[ + O\!\left((\log p)^3\left[ + d^\chi+d^{\sigma+\beta(1-\sigma)} + +d^{\max\{1-c,0\}}+1\right]\right). +\] +The displayed logarithmic factor conservatively retains the existing +layout and descriptor allowances. Hence the original strict conditions +\[ + \max\{\tau,\sigma,\chi\}<\lambda<\lambda'<1, + \qquad + \max\{\sigma+\beta(1-\sigma),1-c,0\}<\lambda' +\] +continue to imply the complete $O(Vd^{\lambda'})$ layer bound. + +\paragraph{Compatibility with the new dependency guard.} +The separate dependency-path estimate uses $q=m+6h=22120$, observes that +one path crosses at most one selected bulk residual, and bounds its +$\rho$-moment by +\[ + \max\left\{ + \frac q{m^\rho},\quad + \frac{q-a_1}{m^\rho}+\left(\frac{a_1}{m}\right)^\rho,\quad + \frac{q-a_2}{m^\rho}+\left(\frac{a_2}{m}\right)^\rho + \right\}<\frac{999}{1000} + \quad\left(\rho=\frac65\right). +\] +Integer floors only shrink these children. For sufficiently large $d$, +an internal parent has $e\ge d^\beta\ge2m$, hence every recursive child +has width at least $\lfloor e/m\rfloor\ge d^\beta/(2m)$ whenever it +becomes a stopping leaf. The at most $m-1$ individually processed +remainder axes at each internal node belong to its fixed local overhead; +add their bounded coefficient contribution to the guard's fixed constant +$E$. They are not extra arbitrarily small stopping leaves. Thus the +separately established guard exponent +\[ + C_1=\rho-(\rho-1)\beta+\zeta + =\frac65-\frac\beta5+\zeta +\] +applies to this integer-width implementation. All stopping tests can be +performed by the existing rational-power integer comparison. diff --git a/references/stopped-recursion/pr107/notes/batched-path-budget.tex b/references/stopped-recursion/pr107/notes/batched-path-budget.tex new file mode 100644 index 0000000000..be338f96e8 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/batched-path-budget.tex @@ -0,0 +1,68 @@ +\subsection{The weighted arithmetic-path budget} +\label{sec:pathwise-guard} + +The precision analysis uses the length of an arithmetic dependency path +through the framed complex network. We first measure this path in +directional rank units, before grouping some units into bulk children. + +\paragraph{A weighted path bound.} +Use the retained triple-based complex motif on $h$ points, with +$m=h^3$. This includes the paired complex producer and its shared +first- and third-stage auxiliary banks. Regard every scalar gate as a +map from saved inputs to its outputs. All of its inputs and outputs +have one common subspace label. A directed dependency path can therefore +enter a gate on one physical wire and leave on another without changing +label dimension at the gate itself. + +For a network edge $a$, let $U_a^-$ and $U_a^+$ be its labels and write +$r_a=|\dim U_a^+-\dim U_a^-|$. The edge implementation has exactly +$r_a$ recursive calls, each implementing one directional $C$ tensor +on $e/m$ selected axes. Binary changes of coordinates before and after +these calls permute coefficients and add no arithmetic depth. An inverse +direction is implemented using one forward child and its sign and +fourth-root wrappers, so it has the same recursive-call count. + +If $P$ is a directed scalar dependency path, its common gate labels give +the exact identity +\[ + \sum_{a\in P}r_a + =\dim U_{\rm end}-\dim U_{\rm start} + +2\sum_{\substack{a\in P\\\dim U_a^+<\dim U_a^-}} + (\dim U_a^--\dim U_a^+). +\] +The endpoint difference is at most $m$. + +Every side-producer edge is increasing. This follows from nested source +labels for the nonconstant middle mixer, complemented labels in its +reverse-direction counterpart, and constant early and late frames. +The data-wire and interstage edges are increasing as in the retained +motif. The stage-sharing joins are also increasing. The only decreasing +edges are the retained central returns, each of dimension loss $h$. + +There are three tensor stages. Within a stage, the $v^2$ invocations +use disjoint data and auxiliary wires, and each invocation has a single +central-return frontier. Equivalently, its point and total central wires +all return between the same two blocks of the transparent schedule. +A directed path crosses that frontier at most once. Gates acting on +different invocations do not connect their wires. Thus a path encounters +at most one central return per stage, even though the machine executes +all invocations sequentially on its fixed tapes. Sharing stage-1 and +stage-3 banks only links their existing stage boundaries and creates no +additional return. Consequently +\begin{equation}\label{eq:pathwise-child-bound} + \sum_{a\in P}r_a\le q:=m+6h. +\end{equation} +The bound also applies to a path ending at an intermediate gate or inside +an edge implementation: complete its current edge, and then any suffix +to a terminal vertex. All weights are nonnegative. + +\paragraph{From a scalar path to a coefficient path.} +A coefficient dependency path in the actual tape algorithm projects to +a directed path of the scalar network: inside a scalar gate it follows +one of the saved operands that contributes to the chosen output; inside +an edge it stays on the edge's role stream. A child can permute or combine +addresses within that role, but cannot move a value into a different +parent role. The row split, parking, padding and reassembly operations +do not create arithmetic dependencies between distinct parent roles. +This projection justifies using \eqref{eq:pathwise-child-bound} for the +implemented recursion, rather than merely for a drawn finite circuit. diff --git a/references/stopped-recursion/pr107/notes/bulk-complex-guard.tex b/references/stopped-recursion/pr107/notes/bulk-complex-guard.tex new file mode 100644 index 0000000000..a37613f05f --- /dev/null +++ b/references/stopped-recursion/pr107/notes/bulk-complex-guard.tex @@ -0,0 +1,168 @@ +\subsection{A whole-residual complex child} +\label{sec:bulk-complex-child} + +The complex phase interface admits a further batching step. On an edge +with residual dimension $a$, the existing binary change of basis puts +an orthonormal residual basis into the first $a$ slots. If each slot has +$f$ selected axes, those first $a$ slots form one contiguous interval +of $af$ axes. Instead of $a$ child calls on $f$ axes, use one child +on that interval. + +The directions need not all have the same sign. A basis vector's weight +modulo four may make its directional kernel an inverse even on an +increasing edge. Let $B$ be the set of negative residual slots and +let $Z_B$ multiply an address by $-1$ precisely when the parity of its +selected bits in those slots is odd. The exact identity +$C^{-1}=-iZCZ$ gives +\[ + \bigotimes_{j=1}^{a}(C^{\varepsilon_j})^{\otimes f} + =(-i)^{f|B|}Z_B C^{\otimes af}Z_B, + \qquad \varepsilon_j\in\{1,-1\}. +\] +Thus one forward child, two address-sign passes and one fixed +fourth-root phase implement the mixed signs. The same binary basis +changes before and after the child are retained. The wrappers cost +$O(V)$: their sign is computed from the current address descriptor, +whose polynomial work per record is absorbed by the existing +superpolynomial record length. They introduce at most four elementary +coefficient operations per value and no further recursive call. + +We batch only the two specified auxiliary edge classes of ranks +\[ + a_1=m-2h,\qquad a_2=m-h^2. +\] +All other edges continue to use their old one-direction children. +The first class is the increasing join between a completed stage-1 +auxiliary bank, at dimension $h$, and its matched stage-3 bank, at +dimension $m-h$. The second is the stage-2 auxiliary exit from +dimension $h^2$ to the full terminal frame. These are complete +auxiliary banks, including the central roles when those are shared. +If a width bound requires padding, add dummy auxiliary roles with +identity scalar gates at the ordinary low and high frames before +matching the first- and third-stage banks. Their labels only increase, +their arbitrary scalar values are restored, and both counted auxiliary +classes are then present for every padded role. The changed +volume-weighted time expression is consequently +\[ + \frac1W\left[ + \left(s-n_1a_1-n_2a_2\right)m^{-\sigma} + +n_1\left(\frac{a_1}{m}\right)^\sigma + +n_2\left(\frac{a_2}{m}\right)^\sigma + \right], +\] +where $n_1,n_2$ count the chosen edges. It has value $s/(Wm)<1$ +at $\sigma=1$. Strict comparison below one supplies the new complex +recursion exponent. The separate mixed-width row construction handles +$f=\lfloor e/m\rfloor$, the at most $m-1$ individually processed +remaining axes, and a row reservation sufficient for the longer but +still $O(\log d)$ recursion. + +\subsection{A depth guard for the unequal complex children} +\label{sec:bulk-complex-guard} + +The dependency-path argument of Section~\ref{sec:pathwise-guard} +still bounds the sum of edge ranks on one scalar path by +\[ + q=m+6h. +\] +For $h=28$ its relevant constants are +\[ + m=21952,\quad q=22120,\quad a_1=21896,\quad a_2=21168. +\] +Both selected ranks exceed $q/2$. Therefore every arithmetic dependency +path encounters at most one selected bulk edge. At a call on $e$ axes, +put $f=\lfloor e/m\rfloor$. Ignoring the local additive operations, +the path has one of the following child-depth bounds: +\[ + qA(f),\qquad + (q-a_1)A(f)+A(a_1f),\qquad + (q-a_2)A(f)+A(a_2f). +\] +The weight budget accounts for both increasing and decreasing frame +edges and for paths that switch wires at a scalar gate. Inverse-child +and endpoint sign corrections add no child. Individually processing +the fewer than $m$ leftover axes adds at most $8m$ elementary +operations, absorbed into the local constant below. + +Take $\rho=6/5$. The following three normalized path expressions have +a rational common upper bound strictly below one: +\begin{equation}\label{eq:bulk-path-moments} + \max\left\{\frac q{m^\rho},\quad + \frac{q-a_1}{m^\rho}+\left(\frac{a_1}m\right)^\rho,\quad + \frac{q-a_2}{m^\rho}+\left(\frac{a_2}m\right)^\rho\right\} + <\overline\theta:=\frac{999}{1000}. +\end{equation} +Here is an entirely rational verification. First +$160000^5160000$. For $00$, set +\[ + C_1=\rho-(\rho-1)\beta+\zeta, + \qquad + C_0=\left\lceil128m(1+1/\zeta)C_{\rm dep}\right\rceil, + \qquad \Delta=\lceil C_0d^{C_1}\rceil. +\] +The root bound from \eqref{eq:bulk-depth-power} is +$C_{\rm dep}d^{\rho-(\rho-1)\beta}$. This covers the direct arbitrary-width +root construction; it also covers every retained base-$m$ piece. +Even retaining the older bound of +$m(1+1/\zeta)d^\zeta$ such pieces, their concatenation, all reserved +axis kernels, the outer phases and the $b^D$ conversion have depth +at most $C_0d^{C_1}$. The original elementary-depth induction +therefore supplies exact denominator and magnitude guards of +$p+\Delta$ fractional bits and $\Delta+3$ integer/sign bits. +The width remains $O(p)$ when $\epsilon C_1<1$. + +In particular, $\beta=1/1000$ and $\zeta=1/10000$ give +\[ + C_1=\frac{11999}{10000},\qquad + 1-\frac{7999999}{16000000}C_1 + =\frac{64008011999}{160000000000}>0. +\] +Thus bulk complex children preserve the near-half dimension exponent +while allowing the improved complex time exponent to be used with +almost no loss at the stopping leaves. diff --git a/references/stopped-recursion/pr107/notes/chirp-scaling-correction.tex b/references/stopped-recursion/pr107/notes/chirp-scaling-correction.tex new file mode 100644 index 0000000000..a7917c5534 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/chirp-scaling-correction.tex @@ -0,0 +1,30 @@ +\label{sec:chirp-scaling-correction} + +The retained fast Gaussian construction generates +$2^{-B}e^{\pi\alpha^2\beta_j^2}$ at precision $P$, where +$B=\lceil1.14\alpha^2\rceil$, then shifts by $B$ and multiplies by +the disk-grid input $u_j$. The exponential interface gives absolute +error at most $2^{1-P}$ before the shift. Thus the error after shifting +is controlled by $2^{B+1-P}$, not by a constant multiple of +$2^{-P}e^{\pi\alpha^2/4}$ uniformly in $\alpha$. + +Set $F=2^B$ in the retained chirped-correlation block lemma. Since +$|\beta_j|\le1/2$ and $\pi/(4\log 2)<1.14$, this bounds the exact +input magnitude. Including the product and rounding, it also gives +the required input accuracy $|\widetilde f_j-f_j|\le2^{4-P}F$. +The distinction matters: $2^B/e^{\pi\alpha^2/4}$ is unbounded, so +the smaller exact-magnitude bound alone does not justify this accuracy. + +No additional asymptotic precision is needed. For the inherited integer +parameters $p>100$ and $2\le\alpha<\sqrt p$, let +$L_A=3\lceil\sqrt p/(2\alpha)\rceil+1$ and $\Gamma=29p$. +Then $L_A\le p$, $\lceil\log_2 L_A\rceil\le p-1$ and +$B\le1.14p+1$. The block lemma requires +\[ + P\ge p+\Gamma+\lceil\log_2(FL_A)\rceil+11. +\] +Its right side is at most $32.14p+11<34p$, so the retained +$P=34p$ satisfies the corrected error budget. The packing widths +remain $O(p)$, and the target errors, tape-time exponents and final +rounding guarantee are unchanged. The combined manuscript patch +includes this correction directly in the retained Gaussian proof. diff --git a/references/stopped-recursion/pr107/notes/compact-control-guard.tex b/references/stopped-recursion/pr107/notes/compact-control-guard.tex new file mode 100644 index 0000000000..bfc3b3bf9a --- /dev/null +++ b/references/stopped-recursion/pr107/notes/compact-control-guard.tex @@ -0,0 +1,45 @@ +\subsection{A generalized stopped-depth guard} +\label{sec:compact-stopped-guard} +Use the complex network's own constants $m,W,s$, independently of the bit +network used by swaps. Assume $m\ge3$ and $2\le s0$, put +\[ + E=64(W+m+1)^3,\quad B=s+E,\quad C_1=5-4\beta+\zeta, +\] +\[ + C_0=\left\lceil\max\{128mB^2,18mB^2(1+1/\zeta)\}\right\rceil, + \qquad \Delta=\lceil C_0d^{C_1}\rceil. +\] +As in the retained exact-arithmetic guard proof, a dependency-depth upper +bound is +\[ + A(e)\le sA(e/m)+E\quad\hbox{internally},\qquad A(e)\le8e + \quad(e1$. Individually processed +row, front and back axes are disjoint and number at most $d$, so their +depth is at most $8d$. The outer phases and $b^D$ conversion add at most +$\lfloor D/2\rfloor+9$ units, including denominator shifts. Consequently +\[ + A_{\rm layer}\le9mB^2(1+1/\zeta)d^{C_1}+18d + \le C_0d^{C_1}. +\] +The exact integer comparison for the final inequality is included in the +certificate. The usual induction gives denominator exponent at most +$p+\Delta$ and magnitude at most $2^\Delta$. Thus $p+\Delta$ fractional +bits and $\Delta+3$ integer/sign bits suffice per component. The condition +$\epsilon C_1<1$ makes these widths $O(p)$, uniformly over the retained +parameter bands. Integer power comparisons implement the rational guard +ceilings in polynomial descriptor time. diff --git a/references/stopped-recursion/pr107/notes/compact-control-layout.tex b/references/stopped-recursion/pr107/notes/compact-control-layout.tex new file mode 100644 index 0000000000..16f4d23347 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/compact-control-layout.tex @@ -0,0 +1,118 @@ +\paragraph{Rows and complete compact fields.} +Let $m,W,s$ denote the complex network constants and keep the layer's global +$p,d,K$ at every node. Put +\[ + G=4\lceil\log_2p\rceil+6,\quad H=dG,\quad + q_F=\left\lceil\frac{2H}{K}\right\rceil,\quad + q_B=\left\lceil\frac{H}{K}\right\rceil, +\] +\[ + q_0=\lceil\log_2W\rceil\lceil\log_m(2d)\rceil, + \quad k_0=\lceil\log_m d\rceil,\quad Q_0=q_0+q_F+q_B. +\] +If $D\le Q_0$, apply all $D$ selected kernels individually. Otherwise, +process individually the first $q_0+q_F$ and last $q_B$ selected axes. +This uses existing coordinates only. The remaining active axes are a +consecutive middle block of length $D-Q_0$. + +Regard the first $q_0$ chunks as the row index. Immediately after it, the +next $q_F$ chunks have at least $2H$ bits. Reinterpret these consecutive +bits as two $H$-bit front fields and a spectator remainder; a remainder +of length zero is omitted. The last $q_B$ chunks similarly supply one +$H$-bit back field and a spectator remainder. These reinterpretations move +no records and preserve the total address space. For a call with $f$ axes +per slot, carve $nG=(f-1)G\le H$ consecutive bits from each of these +fields; collapse their unused bits into spectators. The resulting field +list has a fixed number of entries. Both front fields precede all active +slots and the back field follows them, so the compact-control proposition +applies to every ordered pair of slots. For $f=1$ no compact fields are used. + +The original row range has length $R_{\rm row}=2^{q_0K}\ge W^{k_0}$. +For each original prefix, pad this row range to the next multiple of +$W^{k_0}$ by adding zero rows. A row includes the entire complete front +fields, active middle block, back field, all spectator coordinates and +polynomial record suffix. Padding adds whole such rows, so increases total +volume by at most two and does not change any within-row range. + +At a node write the row index as $u=Wg+w$, $0\le w2^{-34}$. The underlying manuscript's algorithmic and +analytic interfaces remain assumptions. This is a research draft awaiting +independent review. +\end{abstract} + +\section{Scope and dependencies} +The source is OpenAI's \emph{Integer multiplication below $n\log n$}, pinned +at +\begin{center}\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}.\end{center} +The computational +model is a fixed finite alphabet and a fixed number of one-dimensional +tapes. We retain the published paired-bit construction and its arbitrary-width +swap exponent $\tau=1-296/10^{11}$, the nonadjacent CRT/axis routing, the +Gaussian width $\alpha=\lceil(32db)^{1/4}\rceil$, the prime selection, +resampling, synthetic-transform, error and final rounding interfaces. + +The compact-control idea was supplied by an independent research agent. +This note supplies the wider-control streaming argument, explicit reservations, +repair accounting and recurrence integration needed beyond its address algebra. +All temporary values may be arbitrary. No independent address coordinates are +added to create scratch space. The exact tests check finite implementations and +arithmetic; the general claims rest on the written arguments, not on simulation +or formal verification. + +\section{The replacement movement primitive} +\input{compact-control-movement.tex} + +\section{A complete recursive layout} +Retain the layer input contract: complete address set +$[P]\times[2^K]^D\times[S]$, $1\le D\le d$, with polynomial records of +$\Theta(rp)$ bits, $d=\Theta(p^\epsilon)$, $K=\lfloor d^c\rfloor$, +$r=2^{\Theta(p/d)}$, and address/descriptor bit length $O(p)$. All parameter +bands are fixed before taking $p$ large. A finite complex network with +$m$ selected-coordinate dimensions, $W$ roles and $s$ residual children +supplies the same phase decomposition as in the upstream layer construction. +Each child uses $e/m$ selected axes and exactly $1/W$ of the parent volume. +\input{compact-control-layout.tex} +\input{compact-control-guard.tex} + +\section{Separating the bit and complex arities} +\input{independent-complex.tex} + +\section{Parameters and complete assembly} +Put $a=296/10^{11}$ and $a_{\rm c}=418/10^{12}$. Choose +\begin{gather*} + \tau=1-a,\quad\sigma=1-a_{\rm c},\quad + \epsilon=\frac{1999}{10000},\quad c=\frac15,\quad + \beta=\frac1{1000},\quad\zeta=\frac1{10000},\quad\delta=\frac1{10^6},\\ + C_1=\frac{49961}{10000},\quad + \lambda=1-\frac{1671}{4\cdot10^{12}},\quad + \lambda'=1-\frac{167}{4\cdot10^{11}},\quad + \kappa=\frac{83}{10^{12}}. +\end{gather*} +The layer exponents are +\[ + \chi=\tau+(1-\beta)(\sigma-\tau),\qquad + \chi_{\rm leaf}=\sigma+\beta(1-\sigma),\qquad + \chi_{\rm reserve}=1-c=\frac45. +\] +Exact rational comparisons show +$\max\{\tau,\sigma,\chi\}<\lambda<\lambda'<1$ and +$\max\{\chi_{\rm leaf},\chi_{\rm reserve}\}<\lambda'$. +Also $\epsilon C_1=99872039/10^8<1$. This supplies the same completed +normalized-butterfly contract as the original layer theorem, with exact +evaluation before truncation and the same disk and error guarantees. + +The retained Gaussian choice satisfies +$\alpha^4\theta_i>8b>p=6b$. It gives +\[ + \alpha=\Theta(p^{11999/40000}),\qquad + \gamma=O(p^{15997/20000})=o(p). +\] +Since $\epsilon<1/5$, $b\ge2^{40}$ implies +$46b^{(1+3\epsilon)/2}\le b/4$: indeed $184<2^8$. +Prime selection still has $1-2\epsilon=3001/5000>0$. +The polynomial record length remains superpolynomial, while +$\epsilon(1+c)<1$ ensures $K=o(\ell)$ and the required address-size bounds. +The new reserved-axis count is $O(\log d+d^{1-c}\log p)=o(d)$. +For small $D$ the individual-kernel fallback was already charged. + +The seven normalized assembly margins are unchanged in form: +\begin{align*} + g_1&=1-\epsilon(1+c),&g_2&=\epsilon c(1-\tau),\\ + g_3&=\epsilon(1-\lambda'),&g_4&=(1-\tau)(1-\epsilon),\\ + g_5&=1/4-\delta-5\epsilon/4,&g_6&=1-\delta-\epsilon,\qquad g_7=\epsilon. +\end{align*} +All reservation, compact movement and repair costs have been included in the +layer bound, so require no extra assembly term. Exact arithmetic gives +\[ + G_*:=\min_i g_i=g_3=\frac{333833}{4\cdot10^{15}},\qquad + G_*-\kappa=\frac{1833}{4\cdot10^{15}}>0. +\] +This strict gap absorbs all remaining fixed powers of $\log p$. Hence the +retained multiplication assembly yields +\[ + T(n)=O\bigl(n(\log n)^{1-83/10^{12}}\bigr),\qquad + 2^{-34}<\frac{83}{10^{12}}<2^{-33}, +\] +conditional on the identified upstream and extension proofs. The simpler +dyadic statement with $\kappa=2^{-34}$ follows immediately. + +\paragraph{Exceptional streams must be charged locally.} +The original manuscript separately bounded the global sorting work using +an exponentially small $2^{-K}$ bad fraction. The compact gadget instead +has an $O(p^{-3})$ fraction. We do not reuse that global $o(V)$ claim. +For each call, key sorting costs $O(V_{\rm call}p^{-2})$ and extraction and +reinsertion cost $O(V_{\rm call})$. Those costs were included in every +node of the volume-weighted recurrence. Summing that recurrence, including +all children and base-$m$ pieces, already proves the stated layer cost. +Polynomial setup per record is independently absorbed by the superpolynomial +record suffix, as in the retained proof. Thus there is no uncharged factor +equal to the number of recursion nodes. + +\paragraph{Earlier targets and the next ceiling.} +The exact checker also verifies the previously hypothetical $2^{-39}$ +parameters using the original $h=50$ complex saving, and the $2^{-34}$ +parameters using $h=25$, now with the compact cost and reservation term. +For the fixed $h=25$ complex motif, its actual saving is at most an exact +enclosure of approximately $4.1847990372\cdot10^{-10}$. The retained +Gaussian margin forces $\epsilon<1/5$, while the leaf margin forces +$1-\lambda'<(1-\beta)(1-\sigma)<1-\sigma$. Consequently this motif and +these assembly inequalities have the strict ceiling +\[ + \kappa<\frac{a_{\rm c}^{\rm actual}}5 + <8.369598075\cdot10^{-11}<2^{-33}. +\] +The displayed witness exceeds 99\% of this upper enclosure. This is not an +optimality theorem for other complex networks, stronger leaf routines, or +different multiplication algorithms. A next dyadic improvement within this +strategy requires improving one of those ingredients. + +\section{Reproducibility and review boundary} +The principal artifacts are +\begin{itemize} +\item \path{scripts/audit_compact_controls.py}: modular address permutation, +inverse, control order and exceptional repair; +\item \path{scripts/compact_control_layer.py}, with certificate +\newline\path{certificates/compact-control-layer.json}: reservations, recurrence, +guard, motif exponents, seven margins and the scoped ceiling; +\item \path{patches/compact-control-34.patch}: an independent patch against +the pinned source, preserving the old wide-slot lemma for its appendix users; +\item the compact-control test suites, including explicit whole-row padding +and recursive splitting, two-piece stream rotations, all exponent orderings, +dirty temporaries and bad-address repair. +\end{itemize} +The patch updates the layer's own complex constants, the generalized guard, +reserved-coordinate accounting, numerical setup, and global exceptional-stream +paragraph. The published $2^{-59}$ artifacts and pinned upstream files remain +unchanged. Neither the tests nor the PDF build constitute independent proof +review or a formalization of the upstream theorem. +\end{document} diff --git a/references/stopped-recursion/pr107/notes/complex-circuit-construction.tex b/references/stopped-recursion/pr107/notes/complex-circuit-construction.tex new file mode 100644 index 0000000000..a5887b38d4 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/complex-circuit-construction.tex @@ -0,0 +1,218 @@ +\subsection{A compressed side circuit for the complex network} +\label{sec:complex-side-circuit} +Keep the complex motif of Section~\ref{sec:independent-complex}: $h=25$, +$v=\binom{25}3=2300$, $N=v^3$, $m=h^3=15625$, scalars in +$\mathbb Z[i,1/2]$, labels in $F=\mathbb F_2^{25}$ with the dot product, the +$h+1$ central wires, and the gather and scatter maps. For a triple $S$ write +$t_S$ for its indicator. The original side wires add +\begin{equation}\label{eq:complex-side-map} + \frac12\sum_{T\cap S=\varnothing}x_T-\frac12\sum_{|T\cap S|=2}x_T +\end{equation} +to $y_S$. With the central coefficient $(|S\cap T|-1)/2$ this gives +$y\gets y+x$. They use one wire per ordered neighbor pair, that is +$vz_{\rm c}=3693800$ side wires per invocation. We compute the same map with +shared sums. + +All sums below are formal sums of inputs $x_T$ whose two summands have +disjoint supports, so a source contributes to a node exactly when a directed +path joins them. Equal supports are identified within each of the two +families below, and nodes that feed no injected piece are removed. + +\paragraph{Disjoint sums.} +Order the points $0,\ldots,24$. For a list of nodes indexed by distinct +points and $k\le3$, the routine $\mathrm{vec}$ returns, for every set $E$ of +at most $k$ of these points, the sum of the nodes whose points avoid $E$. It +splits the list at $\lfloor n/2\rfloor$, recurses, and forms each output by one +addition of a left and a right output whose exclusion sets have total size at +most $k$. For a point list $X$ and weights $w(u,v)$ on its pairs, the routine +$\mathrm{pairs}$ returns the sums over pairs avoiding $E$, $|E|\le3$: split $X$ +into halves $L,R$, recurse on both, apply $\mathrm{vec}$ to each cross row +$(w(u,r))_{r\in R}$, then apply $\mathrm{vec}$ down the columns of these +row outputs with the remaining exclusion budget, and add the three disjoint +regions. The routine $\mathrm{tri}$ does the same for triple sums: with halves +$L,R$ of $X$, put +\[ + P_r=\mathrm{pairs}\bigl(L,(u,v)\mapsto x_{uvr}\bigr),\qquad + P'_u=\mathrm{pairs}\bigl(R,(a,b)\mapsto x_{uab}\bigr), +\] +apply $\mathrm{vec}$ over $r\in R$ to $P_r[E_L]$ and over $u\in L$ to +$P'_u[E_R]$, and add the four disjoint regions: triples in $L$, triples in $R$, +two points in $L$ with one in $R$, and one point in $L$ with two in $R$. + +At the top level $L=\{0,\ldots,11\}$ and $R=\{12,\ldots,24\}$. For a target +$S$ with $S_L=S\cap L$ and $S_R=S\cap R$ the disjoint pieces are +\[ + \mathrm{tri}(L)[S_L],\qquad \mathrm{tri}(R)[S_R], +\] +the two $\mathrm{vec}$ outputs over the halves $R_1=\{12,\ldots,17\}$ and +$R_2=\{18,\ldots,24\}$ of the family $P_r[S_L]$, and the two $\mathrm{vec}$ +outputs over the halves $L_1=\{0,\ldots,5\}$ and $L_2=\{6,\ldots,11\}$ of +the family $P'_u[S_R]$. These six pieces partition the triples disjoint from +$S$. They are internal nodes of the full computations because +$\mathrm{vec}$ splits at the same halves. + +\paragraph{Pair stars.} +For a pair $a(14/10^9)(966/100)$ give, by $e^{-x}>1-x$, +\begin{equation}\label{eq:compressed-complex-exponent} + s_{\rm c}/W_{\rm c}6$. + +In the third case both unions have at least four points. The complement +of any source triple line within $U$ contains a coordinate unit outside +that triple. The complement of $U$ within $t_T^\perp$ contains a coordinate +unit in the target union outside $T$. The spaces $U$ and $U^\perp$ are +coordinate spaces. Consequently all nonzero residuals in +$0\subset\langle t_S\rangle\subset U\subset t_T^\perp\subset F$, +and all skipped transitions actually used by input-only or output-only +roles, have norm-one vectors. Every such nondegenerate residual has an +orthonormal basis by the retained binary-space lemma. + +The partition is explicit. For disjoint $a$- and $b$-subsets of $[n]$, +$0\le a,b\le3$, allow row stars, column stars, and a split into $l$ and +$n-l$ points. Split cases by the source and target cardinalities in the +first part, and use the product of the already chosen smaller partitions. +For a plan let $(C,L,R)$ be its rectangle count and source/target membership +counts. Products multiply these counts coordinatewise and cases add them. +An empty relation has zero counts; if one subset size is zero, use the full +rectangle. Try all split sizes and choose the least $L+R-C$, breaking ties +by row stars, then column stars, then increasing split size. This finite +recursion is a construction, not a global rectangle optimality claim. + +At $h=26$, the counts are +\[ + (C,L,R)=(24870,217255,299571),\qquad R_0=L+R-C=491956. +\] +The exact checker verifies that each of the $4604600$ ordered disjoint +triple pairs appears once. It also checks the frame-case hypotheses for +every generated rectangle. Every such rectangle has scalar weight $+1/2$. + +\subsection{Intersection two: an orthonormal sum compiler} +Fix the unique common pair $P=\{i,j\}$. The source and target triples +are $P\cup\{a\}$ and $P\cup\{b\}$ with $a\ne b$ outside $P$. +The binary vectors +\[ + t_a=e_i+e_j+e_a\quad(a\notin P) +\] +are pairwise orthonormal. Since $h$ is even, adjoining +\[ + r_i=e_i+\sum_{a\notin P}e_a,\qquad + r_j=e_j+\sum_{a\notin P}e_a +\] +gives an orthonormal basis of the entire $F$: each extra vector has odd +weight $h-1$, their mutual product is $h-2=0$ in $\mathbb F_2$, and both +are orthogonal to every $t_a$. + +Compute each leave-one-out sum with prefix and suffix sums on the $n=h-2$ +inputs. Omit unused totals and intern equal input-support sets. The active +circuit has $3n-6$ additions and $n$ outputs, hence $4n-6$ roles. Each sum +is cancellation-free over the integers. Inject each output with weight +$-1/2$. Distinct triples intersecting in two points have a unique common +pair, so these circuits give every required coefficient exactly once. + +At a forward node let $U$ span its ancestor vectors $t_a$; in the inverse +middle circuit let $U$ span the reachable output vectors $t_b$. Nested +support differences are spanned by subsets of an orthonormal family. +No source can reach its excluded output. At the final transition into +the relevant $t_b^\perp$, the residual has an orthonormal basis consisting +of the remaining $t_a$ and the two extra vectors $r_i,r_j$. Cleanup +complements have the same property. Thus every required residual is +zero or nonalternating and nondegenerate in both directions. + +This argument applies to any disjoint-support circuit for the same relation, +not only prefix/suffix sums. It is a reusable phase-frame transfer criterion. +At $h=26$ the role count is +\[ + R_2=\binom{26}{2}(4\cdot24-6)=29250, + \qquad R_{\rm side}=R_0+R_2=521206. +\] + +\section{Whole-network composition and accounting} +All local frames above are tensored with the original future line $Q$. +The original data boundaries remain +$A\otimes\langle t\rangle\otimes Q$ to $D_1\otimes Q$ on $X$ and +$B\otimes\langle t\rangle\otimes Q$ to $Y_t\otimes Q$ on $Y$. +Their residuals and the original tensor complements have norm-one witnesses +as in the retained proof. Tensoring nonalternating nondegenerate factors +preserves a norm-one witness. All new side transitions are increasing. +Only the $h+1$ centers decrease once per invocation, by dimension $h$. +Thus $L=3v^2h(h+1)$ is unchanged. + +Pair consecutive ground points and put $\pi(T)=\{x\mathbin\oplus1:x\in T\}$. +This is an involution of triples. A triple with a full ground-point pair +intersects its image in two points; otherwise the intersection is empty. +Hence $t_T\perp t_{\pi(T)}$. Match the complete stage-1 auxiliary bank +at fixed triples $(A,B)$ to the stage-3 bank at $(B,\pi(A))$, preserving +each local role index. These banks have equal size, the matching is bijective, +and no simultaneous roles are identified. Each invocation restores arbitrary +scratch, so its scalar correctness is preserved. + +All auxiliary first frames are $D_0\otimes Q$ and all last frames are +$D_1\otimes Q$. The joining labels are therefore +\[ + E=F\otimes\langle t_A\rangle\otimes\langle t_B\rangle, + \qquad H=\langle t_B\otimes t_{\pi(A)}\rangle^\perp\otimes F. +\] +They are nondegenerate and $E\subset H$. The residual $H\cap E^\perp$ +contains a norm-one coordinate tensor whose second coordinate lies outside +$A\cup\pi(A)$; such a coordinate exists because $h>6$. Thus the join +also has an orthonormal residual basis. Replacing the old edges +$E\to F^{\otimes3}$ and $0\to H$ by $E\to H$ saves exactly $m$ +residual dimensions per removed role and introduces no decrease. + +Consequently the entire network has +\[ + W=2N+2v^2(R_{\rm side}+h+1),\qquad s=Wm-2N+2L. +\] +Forward, inverse, forward stages send $(X,Y)$ to $(-Y,X)$ and restore every +surviving auxiliary role. Data endpoint labels and all scratch endpoints +$0,F^{\otimes3}$ are unchanged. The retained weight-27 phase corrections, +signed-bank correction and return permutation therefore give the same +$C^{\otimes m}$ operator on every role, for any number of columns. Each +orthonormal residual contributes precisely its dimension in forward or +inverse translation kernels. These are the full complex-interface obligations. + +At $h=26$, +\[ + m=17576,\quad v=2600,\quad N=17576000000,\quad L=14236560000, +\] +\[ + W=7082222160000,\quad s=124477130005280000, + \quad Wm-s=6678880000,\quad \eta=\frac{19}{354111108}. +\] +Exact logarithm bounds give $\eta>(5/10^9)\log m$, and hence +$s/Wa_{\rm b}$ and the reservation +exponent is zero. The seven retained margins have exact minimum +\[ + G_*=\epsilon(1-\lambda')=5771/10^{13}>2^{-31}. +\] +All parameter inequalities have strict slack. The compact reserved-axis +cost is now $O(V\log p)$, and $\epsilon(1+c)<1$ still holds. + +The new scalar mixers use only additions, subtractions and half scalings. +For explicit guard accounting let $M_0=R_0-C$ be the number of additions +in all disjoint-rectangle mixers per invocation. Each pair circuit has +$2(3n-6)$ mixer additions. Let $M$ be their combined mixer count, $V_0$ +the number of input-copy incidences, and $J_0$ the output incidences. +The signed schedule uses at most +\[ + T_{\rm scalar}=3v^2(4M+2V_0+4J_0+18v) +\] +elementary scalar operations, including half scalings. The exact checker +verifies $4T_{\rm scalar}+8s+8W+8m<64(W+m+1)^3$ and $2\le s2r_j^{t_j}$ for largest children $r_b=529,r_c=756$. +At width $e$ reserve the product +$Q=W_c^{D_c(e)}W_b^{D_b(e)}$, with +$D_j(e)=t_j\lceil\log_2e\rceil$. Its coefficient is +$9\cdot28+20\cdot30=852$, and +\[ + 2000>\frac{51}{25}\,852. +\] +The sufficient stock is therefore $p^{2000}$, supplied by the retained +physically preceding transformed prefix and a single complete-row +padding. Nested bit stock is restored before another complex child. +Sequential copies introduce no independent row field. The supplementary +suffix condition $b_{\rm in}^{1-\epsilon}>8000(\log_2b_{\rm in}+8)$ +is eventual for fixed $\epsilon<1$. + +\subsection{Exact conditional assembly} +Use the analytic proof map in +\path{notes/structured-bulk-assembly.tex}: arbitrary-source routing +with active masking and paid repair scans; one rounded phase-cell +matrix with preserved period cuts and downward-weight error bounds; +persistent target halos, sequential overlap tapes and factor pages; +Baker--Harman--Pintz prime packing; and the retained exact-recovery +interface. Their full costs are unchanged. In particular the bulk +bound retains the terms +\[ + O\!\left(Tp\left[p^\tau\operatorname{polylog}p+ + d\operatorname{polylog}p+dp^\delta+w^2p^\delta+ + dw^2p^\delta/L\right]\right)+n^{o(1)}, +\] +with $L=2^{\lceil8\log_2p\rceil}$, +$w^2=O(p^{1-r})$, and normalization exponent requiring +$\epsilon+r<1$. These arguments, not a change of arithmetic model, +justify the seven margins below. + +\begin{theorem}[Conditional fixed-tape multiplication bound] +Under the retained analytic and fixed-tape interfaces of PR23/PR29 +and the preceding proof map, the selected copied-center networks give +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \boxed{\kappa=\frac{384569}{10000000000}=3.84569\times10^{-5}}. +\] +\end{theorem} +\begin{proof} +Take the strict finite savings $a=a_b=384599/10^{10}$ and +$b=a_c=717/10^7$, with $\tau=1-a$, $\sigma=1-b$, and put +\[ +\begin{gathered} + \eta=10^{-8},\quad\beta=\tfrac14,\quad q=a(1-2\eta),\quad + c=q(1+\eta),\quad\epsilon=\frac{1-\eta}{1+c+q},\\ + \lambda'=1-q,\quad\lambda=(\tau+\lambda')/2,\quad + g=\epsilon q,\quad r=(g+1-\epsilon)/2,\quad\delta=\eta/8. +\end{gathered} +\] +The stopped complex leaf saving $(1-\beta)b=53.775\times10^{-6}$ +is strictly above $a$, so paid internal adapters use exponent $\tau$ +and both layer exponents lie below $\lambda'$. The exact certificate +checks all 47 strict constraints of the retained semantic/bulk +composition, using the new literal scalar charge and product-row gap. +These include compact reservations, geometry, the linear guard, +$\epsilon+r<1$, phase-cell/band separation, prime packing, short-record +fallback and artificial-boundary allowances. + +The seven final savings are +\[ + 1-\epsilon(1+c),\quad a,\quad g,\quad a,\quad + \min(1-\epsilon-\delta,r-\delta),\quad + 1-\epsilon-\delta,\quad\epsilon. +\] +Their minimum is exactly $g$ and the prefix margin equals $g+\eta$. +Exact rational comparison gives +\[ + g-\frac{384569}{10^{10}}>4.0746056580\times10^{-11}>0. +\] +These positive gaps absorb fixed logarithms. The all-size conclusion +retains constructive finite setup, descriptor and catalogue domination, +prime existence and analytic recovery as eventual thresholds. The +strict bit and complex moments, copied-stream recurrence contracts and +these assembly inequalities prove the claimed conditional bound. +\end{proof} diff --git a/references/stopped-recursion/pr107/notes/copied-centers-bit.tex b/references/stopped-recursion/pr107/notes/copied-centers-bit.tex new file mode 100644 index 0000000000..1b7a2a88a4 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/copied-centers-bit.tex @@ -0,0 +1,204 @@ +\subsection{Selected producers and two-stage endpoints} +For $h=25,23$ use triple indicators with rational form $I-J/9$. +Their norm is two and their pairwise inner product is $|S\cap T|-1$. +The aligned paired exclusion producer, with local base case two, +equal-support sharing and retained point totals satisfies +\[ + [|S\cap T|=1]+|S\cap T|\pmod2=[S=T]. +\] +Its selected original carrier matching and the saved compatible positive +labels give the following counts: +\[ +\begin{array}{c|rrrrrr} +h&v_h&c_h&q_h&|\mathcal M_h|&R_h&\ell_h\\\hline +25&2300&45963&6925&1589&51299&600\\ +23&1771&34764&5336&1324&38776&506 +\end{array} +\] +Here $R_h=c_h+q_h-|\mathcal M_h|$ includes all retained centers. +The labels are nested along original and matched dependencies and lie +in positive common-point spaces +$U_i=\{x:\sum_jx_j=3x_i\}$, where +$x^t(I-J/9)x=\sum_{j\ne i}x_j^2$. The same matching determines the +role count and old physical histogram $\sum_r rH_{h,r}=hR_h+2\ell_h$. +Apply the copied-center replacement of the preceding section to obtain +$H'_h$; no new producer or new matching is substituted. + +Set $(a,b)=(25,23)$ and $\mathcal F=F_a\otimes F_b$. +Use the first forward shear and second inverse shear, with distinct +auxiliary banks, as in PR29 \cite{pr29}. Their scalar map over +$\mathbb F_2$ is $(x,y)\mapsto(y,x+y)$. For the two triple-line +projectors $P,Q$ let $U=\operatorname{im}(P\otimes Q)$. +The data source frames are $(D_U,I)$ and terminal frames +$(D_{\mathcal F},D_{U^\perp})$. +Stage one grows $X$ from $U$ to $F_a\otimes\operatorname{im}Q$ +and $Y$ from zero to $\operatorname{im}(I-P)\otimes\operatorname{im}Q$; +stage two ends at $(\mathcal F,U^\perp)$. +Stage-one auxiliary frames start at zero and end at $\mathcal F$, +with exterior residual $I_a\otimes(I_b-Q)$ of rank $m-a$. +In stage two set $D_0=(I_a-P)\otimes I_b$, use source $D_{D_0}$ +and sink $D_{I-D_0}$, and raise data to $D_0$ before the inverse copy. +Every local frame contains $D_0$, so the entrance vanishes. Cleanup +ends at $I$, leaving an exit of rank $m-b$. The total auxiliary endpoint +is $D_I$ on arbitrary inputs. + +Writing $T=D_U$, $F=D_I$ and $E=D_{I-U}$, telescoping yields +\[ + A=Fy,\qquad B=Fx+Ey. +\] +Retain $A$, transform a copy by $T$, and XOR it into $B$. +Since $TF=E$, the result is $(Fy,Fx)$. This is Paureel's paid +rank-one correction, once for each data pair. Undo the data-bank exchange +at merge. Every original role, including dirty scratch, receives full +interchange. The center-copy schedule does not alter any of these +source/sink operators or endpoint corrections. + +\subsection{One rational basis for local and exterior blocks} +Use physical order $i=b\alpha+\beta$ and the controlled basis +\[ + K=T_2(I_a\otimes L_b),\qquad + T_2(x\otimes e_\beta)=M_\beta L_ax\otimes e_\beta. +\] +Prescribe first-$2a$ row labels $[I_a,\operatorname{cyc}_{+1}I_a]$ +and last-$2a$ inverse-column labels +$[\operatorname{cyc}_{-1}I_a,I_a]$. +A row label $r$ means $e_\alpha^tM_\beta=e_r^t$ and an inverse +column label $c$ means $M_\beta^{-1}e_\alpha=e_c$. +The effective residue sets are $\{0,1,3\}$ and $\{18,20,21\}$, +which are disjoint; every $M_\beta$ admits a fixed permutation +completion. Keep $L_a,L_b$ free in +$\operatorname{GL}_a(\mathbb Q)\times\operatorname{GL}_b(\mathbb Q)$. + +Absorb these bases into local projectors $p\xi,v\nu$, with +$\xi p=\nu v=1$. At boundary labels $r_i,c_j$ and fast indices +$\beta_i,\gamma_j$, the local corner formulas are +\[ + (A\otimes v\nu)_{ij}=v_{\beta_i}\nu_{\gamma_j}A_{r_i,c_j},\qquad + (p\xi\otimes B)_{ij}=p_{r_i}\xi_{c_j}B_{\beta_i,\gamma_j}. +\] +Their first/last factor-sized restrictions represent each local matrix +up to nonzero diagonal scales. In particular the auxiliary exteriors +have profiles $(25,525)$ and $(23,529)$ in this same basis. +For a local rank-$r$ projector in dimension $h$, the generic ordinary +profile is $r$ singletons when $2r\le h$, and $h-r$ singletons plus +a width-$(2r-h)$ block otherwise; at $r=h$ it is one $h$-block. +These profiles include the retained copied residuals and new complements. +The lower-triangular partial-swap conjugation of +\path{notes/structured-bulk-bit.tex} realizes each contiguous block as +one recursive interchange with linear-volume ordered-affine wrappers. + +\subsection{The selected 47-pivot data corner} +The data projector is $(I-P)\otimes(I-Q)$, with nullity +$d=a+b-1=47$. In its first-$d$/last-$d$ null corner use labels +\[ + R=[0,\ldots,24;1,\ldots,22],\qquad + C=[2,\ldots,23;0,\ldots,24], +\] +with $\beta_i=i\bmod23$ and $\gamma_j=(j+22)\bmod23$. +On the nonzero-coordinate open set the null corner is diagonally +equivalent to +\[ + M_{ij}=x_{R_i}[R_i=C_j]+y_{\beta_i}[\beta_i=\gamma_j]-1, + \qquad x_r=(p_r\xi_r)^{-1},\quad y_t=(v_t\nu_t)^{-1}. +\] +This is the PR31 incidence factorization +$M=F\operatorname{diag}(x_0,\ldots,x_{24},y_0,\ldots,y_{22},-1)G^t$, +where a row of $F$ marks its $R$, fast-coordinate and constant entries, +and a row of $G$ marks its $C$, fast-coordinate and constant entries. + +For any square minor with $e$ rows, partition the 49 coefficient +coordinates as $X\sqcup Y$. For its restricted incidence matrices +$F_*,G_*$ and any diagonal $D$, +\[ + \operatorname{rank}(F_*DG_*^t) + \le\operatorname{rank}(F_*)_X+\operatorname{rank}(G_*)_Y. +\] +This follows by splitting the product into its $X$ and $Y$ terms. +A sum below $e$ therefore certifies a weight-independent zero minor. +The selected PR31 method, parameterized by PR33, supplies such +partitions for every still-available column to the right of each +claimed pivot. There are $21\cdot20/2+15\cdot14/2=315$ such +certificates, whose integer ranks establish the necessary zero patterns. + +The normalized rational witness is +\[ + p_r=v_t=1,\qquad + \xi_r=\frac{(r+1)^2}{\sum_{s=1}^{25}s^2},\qquad + \nu_t=\frac{(t+1)^3}{\sum_{s=1}^{23}s^3}. +\] +Exact rightmost-pivot elimination supplies 47 nonzero pivots at +\[ +\begin{gathered} + (0,46);\quad (i,i+24),\ 1\le i\le21;\\ + (22,24),(23,23),(24,22),(25,21),(26,20),(27,19);\\ + (i,i-24),\ 28\le i\le42;\quad(43,3),(44,2),(45,1),(46,0). +\end{gathered} +\] +The partition identities hold for every parameter value; the witness +proves the selected pivot minors are nonzero rational functions. +Every fixed rank-one projector pair can be conjugated to this witness. +Therefore these conditions, the local ordinary minors and the auxiliary +corners are nonzero on the same irreducible free basis family. Their +finite product is nonzero, so rational enumeration chooses one basis +for every physical edge. Select the address prime afterwards, avoiding +its finitely many bad denominators and minors. + +The pivot-run lengths are +$1,21,1,1,1,1,1,1,15,1,1,1,1$. +In zero-based ambient coordinates the 21-block uses rows $1$ through +$21$, columns $553$ through $573$; the 15-block uses rows $28$ through +$42$, columns $532$ through $546$. The large-projector Schur identity +leaves the middle identity block $47$ through $527$, of width 481. +These are actual contiguous ordered blocks. The full data profile is +\[ + 11\text{ singletons};\quad21;\quad15;\quad481, + \qquad11+21+15+481=528=m-d. +\] + +\subsection{Physical list and exact bit moment} +The global values are +\[ +\begin{aligned} + m_b&=575,&N&=4073300,&B_a&=90850529,&B_b&=89184800,\\ + W_b&=188181929,&L_b&=2226400,&s_b&=108202762275. +\end{aligned} +\] +Here $W_b=2N+B_a+B_b$ and $s_b=W_bm_b-N+L_b$, with deficit +$N-L_b=1846900$. The disjoint physical classes are the two auxiliary +exteriors with multiplicities $B_a,B_b$; $2N$ data macros; $v_b,v_a$ +replications of the respective copied-center local histograms; $2N$ +rank-$(h-1)$ physical data growths for each factor; and $N$ rank-one +endpoint copies. The center-copy residuals are already in $H'_h$. +Collecting widths gives +\[ +\begin{array}{r|r@{\qquad}r|r} +t&n_t&t&n_t\\\hline +1&2552008332&3&10167311\\ +5&9316541&7&11539514\\ +9&11313286&11&12368273\\ +13&12508849&15&21109768\\ +17&30321728&19&26742560\\ +21&21308442&23&97375675\\ +25&90850529&481&8146600\\ +525&90850529&529&89184800 +\end{array} +\] +Their weighted sum is exactly $s_b$ and every $t0\qquad(u\ne0). +\] +Thus all these spans are nondegenerate. At an output, every contributing +source triple is a neighbor of the target triple $T$, giving +$U\subset t_T^\perp$. The output role can consequently grow to the original +physical target frame without decreasing rank. Every node gate has one +common frame on all its incoming and outgoing roles, as required by the +common-frame identity. + +The reversed stage requires a different span assignment. Reverse and invert +the scalar schedule with logical source $Y$ and target $X$. In the middle +$L^{-1}$, label a node by the span of the physical $X$ target indicators +reachable from it in the forward dataflow graph. These descendant sets grow +along reversed edges. Every such triple still contains the same point $i$, +so its span is nondegenerate by the same norm identity. At an original input, +all its reachable targets are neighbors of its physical $Y$ triple; the span +therefore lies in that triple's orthogonal complement. This verifies the +reverse middle computation as well as its endpoints. The source-support +frames of the forward computation are not incorrectly reused in reverse. + +All early mixers and their inverses use $D_0\otimes Q$, and all late cleanup +mixers and inverses use $D_1\otimes Q$. The data-copy and injection gates are +grouped by data triple, with the same individual line and orthogonal-complement +frames as in the rectangle construction. Physical $X$ grows from +$A\otimes\langle t\rangle\otimes Q$ to $(A\otimes F)\otimes Q$; +physical $Y$ grows from $B\otimes\langle t\rangle\otimes Q$ to +$((B\otimes F)\mathbin\perp(P\otimes t^\perp))\otimes Q$. +These are exactly the original stage boundaries. The only decreasing edges +remain the $h$ central returns per invocation, each losing dimension $h$. +Consequently $L_{\rm dec}=3v^2h^2$ is unchanged. + +\subsection{Stage sharing and rank accounting} +Use a bijection $\pi$ of triples with $|T\cap\pi(T)|=1$. One explicit +choice pairs the ground points consecutively. For a triple with a full pair +and a singleton, keep the singleton and cycle the full pair among all pairs +other than the singleton's pair. Otherwise keep the point in the least +indexed pair and flip the other two to their partners. This is a bijection +on the two disjoint classes, with the stated intersection property. + +Share the entire auxiliary bank of the stage-1 invocation with fixed triples +$(A,B)$ with that of stage 3 at $(B,\pi(A))$, keeping each local role index. +Every invocation restores arbitrary scratch, and the sharing is bijective. +The joining labels are +\[ + E=F\otimes\langle t_A\rangle\otimes\langle t_B\rangle, + \qquad H=\langle t_B\otimes t_{\pi(A)}\rangle^\perp\otimes F. +\] +They are nondegenerate and $E\subset H$ since $t_A\perp t_{\pi(A)}$. +Replacing the two former terminal edges by this join saves exactly $m$ in +edge rank per removed role. Thus +\begin{align*} + W_{\rm b}^{\rm dag}&=2N+2v^2(R_{\rm side}+h)=273201575169600,\\ + s_{\rm b}^{\rm dag}&=W_{\rm b}^{\rm dag}m-N+6v^2h^2 + =26592347948314104000,\\ + W_{\rm b}^{\rm dag}m-s_{\rm b}^{\rm dag}&=572394081600>0. +\end{align*} + +\begin{proposition}[Shared-computation bit interface]\label{prop:dag-bit-interface} +The new bit network exchanges the two scalar data banks, restores every +auxiliary value, and satisfies the original all-role endpoint identity with +$W_{\rm b}^{\rm dag}$ roles and total edge rank $s_{\rm b}^{\rm dag}$. +\end{proposition} +\begin{proof} +The transparent schedule proves the scalar shear and arbitrary restoration. +Forward, inverse, forward invocations give the bank exchange. The support +labels and their reverse counterparts establish all common frames and nested +side transitions. Central decreases are unchanged. Telescoping therefore gives +$W_{\rm b}^{\rm dag}m-2N+2L_{\rm dec}$ absolute label change; the original +rational source correction adds $N$. Every surviving auxiliary role still +has endpoint matrices zero and $I_m$ and is fixed by the scalar permutation; +the data endpoints are unchanged. The original common-frame and rational-shear +transfer consequently applies. All compiled gates and bases are fixed finite +data, independent of the eventual input length. +\end{proof} + +\subsection{Explicit rational bounds for the two recurrences} +Put +\[ + a_{\rm b}=\frac{187}{10^{11}},\qquad + a_{\rm c}=\frac9{500000000000},\qquad L_0=\frac{5743}{500}. +\] +The exact deficits satisfy +\[ + \eta_{\rm b}^{\rm dag}=\frac{27}{1254369032}>a_{\rm b}L_0, + \qquad \eta_{\rm c}=\frac7{22253827054}>a_{\rm c}L_0. +\] +The retained rational logarithm enclosure proves $\log mm(1-aL_0)>m(1-\eta)$ for either corresponding pair, and we may take +\begin{equation}\label{eq:explicit-motif-exponents} + \tau=1-a_{\rm b},\qquad\sigma=1-a_{\rm c}. +\end{equation} +This gives $s_{\rm b}^{\rm dag}/W_{\rm b}^{\rm dag}2^{-63}. +\] +The remaining margins are $g_1>1/2$, $g_4=20a/21$, $g_5=13/112$, +$g_6=299/336$, and $g_7=1/21$. The strict gap absorbs fixed logarithmic +factors, giving $O(n(\log n)^{1-2^{-63}})$ under the retained assumptions. +The previous dimension, stopping, and guard audits still apply: the guard +is $p^{20/21}=o(p)$ and $K=\Theta(p^{3a/70})=o(\ell)$ for +$\ell=\Theta(p^{20/21})$, with $K/\log p\to\infty$. + +The companion artifacts are +\begin{itemize} +\item \path{scripts/exclusion_circuit.py} and \path{scripts/dag_network.py}; +\item \path{certificates/dag-network.json}; +\item \path{patches/h46-dag-63.patch}. +\end{itemize} +The certificate checks every output support at $n=45$, the reversible slot +assignment, and both directions of support nesting. Small complete invocations +are checked on every input basis vector, including dirty scratch. A full small +three-stage model checks auxiliary sharing and bank exchange. These checks +support the written transfer argument and do not formally verify the complete +upstream multiplication theorem. +\end{document} diff --git a/references/stopped-recursion/pr107/notes/disjoint-tensor-compression.tex b/references/stopped-recursion/pr107/notes/disjoint-tensor-compression.tex new file mode 100644 index 0000000000..0e3cad1b93 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/disjoint-tensor-compression.tex @@ -0,0 +1,106 @@ +\section{Shared tensor contractions for the complex side map} +\label{sec:disjoint-tensor-compression} +This section changes only the disjoint-triple side circuit of +Section~\ref{sec:complex-compression}. The scalar field, intersection-two +circuit, centers, twelve signed operations, tensor stages, endpoint +corrections, and first/third-stage matching remain as there. It supplies +complex-network headroom, not a new multiplication exponent. + +\subsection{An exact sum recurrence} +Let $D_{a,b}(n)$ send values on $a$-subsets to their sums over subsets +disjoint from each specified $b$-subset. Split the ground set into $l+r=n$. +For sources with left size $i$ and targets with left size $j$, the map is +$D_{i,j}(l)\otimes D_{a-i,b-j}(r)$. Applying its two factors in either order +uses at most +\[ + \min\left\{\binom r{a-i}c(l,i,j)+\binom lj c(r,a-i,b-j),\quad + \binom li c(r,a-i,b-j)+\binom r{b-j}c(l,i,j)\right\} +\] +additions. Here $c$ is the already constructed smaller circuit's addition +bound. Sum these costs over feasible $i,j$, then add +$\binom lj\binom r{b-j}(p_j-1)$ for each $j$ with $p_j>0$ feasible source +splits. Try every split up to $n/2$, as well as the direct row-sum circuit. +Empty maps, copies, and the one-output total are the base cases. +All combined supports are disjoint: the tensor factors partition sources +by their two parts, and the final sum partitions them by $i$. +This proves the integer coefficient map inductively. + +Intern equal formal supports, retaining the first decomposition, and prune +unused nodes. These operations preserve the map and do not increase the +number of additions. Each noninput retained node is still the sum of two +disjoint nonempty supports. At $h=26$ the unshared recurrence gives $74162$ +additions; exact interning and pruning give $57772$ additions and $2600$ +outputs, hence $60372$ reversible roles by the $c+q$ embedding. + +\subsection{A phase enclosure for any disjoint-triple sum DAG} +For a retained node $z$, let $\mathcal S_z$ be its ancestor input triples +and $\mathcal T_z$ the output triples reachable from it. Every pair in +$\mathcal S_z\times\mathcal T_z$ is disjoint. Both families are nonempty. +Write $A_z=\bigcup\mathcal S_z$ and $B_z=\bigcup\mathcal T_z$; thus +$A_z\cap B_z=\varnothing$. In the forward middle mixer assign +\[ + U_z=\begin{cases} + \langle t_S\rangle,&\mathcal S_z=\{S\},\\ + t_T^\perp,&|\mathcal S_z|>1,\ \mathcal T_z=\{T\},\\ + \mathbb F_2^{A_z},&|\mathcal S_z|,|\mathcal T_z|>1. + \end{cases} +\] +Use the same rule with $\mathcal S,\mathcal T$ exchanged for the reverse +middle mixer. This is not obtained by assuming complements preserve +nonalternation. + +Along a forward DAG edge, ancestor families grow and reachable-output +families shrink. Consequently the displayed spaces increase. Lines remain +the same until a second source appears; complements remain the same once +only one target remains. Coordinate spaces increase by inclusion. A line +can enter a coordinate enclosure or target complement, and a coordinate +enclosure can enter a target complement. There are no other distinct +internal transitions. The same proof applies in reverse with the families +exchanged. Initial physical source lines and final physical target +complements fit these inclusions, including nodes that are themselves +outputs and have other later uses. + +Every space is nondegenerate under the standard binary dot product. +A nonzero coordinate residual has a coordinate unit. For a source-line +to coordinate transition, two distinct ancestor triples ensure a point in +$A_z\setminus S$, giving a norm-one residual vector. For a coordinate +space on $A$ entering $t_T^\perp$, the earlier node has another reachable +triple $T'\ne T$ disjoint from $A$. A point in $T'\setminus T$ gives a +coordinate unit orthogonal to both $A$ and $T$. A line-to-complement +transition has a coordinate unit outside $S\cup T$, since $h>6$. +Transitions from zero or to the full space likewise have coordinate units, +except the complement-to-full residual, which is the norm-one line $t_T$. +Thus every nonzero orthogonal residual is nonalternating. The retained +binary-space lemma constructs an orthonormal basis for each residual. +Tensoring and the three-stage frame schedule are consequently licensed +exactly as in Section~\ref{sec:complex-compression}. + +The explicit checker traverses every physical role segment of both middle +orientations, including source, target, fresh, and retired roles. At small +sizes it also constructs every distinct residual basis independently of +the case proof. The scalar checker verifies every output coefficient over +the integers, and the signed dirty-workspace invocation is checked on +independent formal inputs in both directions. + +\subsection{Complete finite accounting} +With $v=\binom h3$, retain $R_2=\binom h2(4(h-2)-6)$ intersection-two roles. +Let $R_0=c+v$ be the new disjoint roles. Then +\[ + W=2v^3+2v^2(R_0+R_2+h+1),\quad m=h^3,\quad + L=3v^2h(h+1),\quad s=Wm-2v^3+2L. +\] +All side and central inputs are arbitrary and restored. The join uses the +same paired-point label permutation as before; its binary residual has a +norm-one coordinate tensor outside the two relevant triple supports. +It removes one auxiliary role and $m$ rank per join without further loss. +At $h=26$, $R_0+R_2=89622$ and $Wm-s=6678880000$; exact logarithm bounds +certify $1-\log_m(s/W)>3\cdot10^{-8}$. + +If the mixer uses $M$ scalar additions, has $C$ data copies and $J$ weighted +output injections, the three-stage scalar step bound remains +$3v^2(4M+2C+4J+18v)$. The checker computes these numbers from the expanded +DAG. With $E=64(W+m+1)^3$, it verifies +$4\,\mathrm{steps}+8s+8W+8m3.6\cdot10^{-8}$. +This is separate complex-interface headroom. It does not change the retained +bit interface or assert a new multiplication exponent. diff --git a/references/stopped-recursion/pr107/notes/endpoint-gauge-assembly.tex b/references/stopped-recursion/pr107/notes/endpoint-gauge-assembly.tex new file mode 100644 index 0000000000..1904cae2a6 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/endpoint-gauge-assembly.tex @@ -0,0 +1,76 @@ +\begin{theorem}[Conditional fixed-tape multiplication bound] +Assume the pinned upstream multiplication theorem and retained analytic, +ordered-affine, compact-control, Gaussian-map, and fixed-tape interfaces +specified in the opening section. The endpoint-gauged interchange interface +and the complex layer proved here may be substituted into those +interfaces. They give +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \boxed{\kappa=\frac{119723}{20000000000} + =5.98615\times10^{-6}}. +\] +\end{theorem} +\begin{proof} +Take the following exact parameters: +\[ +\begin{aligned} + a_b&=\frac{2993093}{250000000000},&a_c&=\frac{3}{125000},\\ + \tau&=1-a_b,&\sigma&=1-a_c,\\ + \epsilon&=\frac1{2+a_b}=\frac{250000000000}{500002993093},&c&=1,\\ + \beta&=\frac1{1000},&\delta&=\frac1{10^{16}},\\ + \lambda&=\tau+\frac1{10^{20}},&\lambda'&=\tau+\frac2{10^{20}},\\ + \zeta&=\frac1{10000},&C_1&=\frac{1187}{625}. +\end{aligned} +\] +The strict bit and complex moments were certified above. Since +$\sigma<\tau$, the internal layer exponent is $\chi=\tau$. +The complex leaf saving is +\[ + (1-\beta)a_c=\frac{2997}{125000000}=2.3976\times10^{-5}>a_b. +\] +Thus both the internal and leaf exponents are strictly below +$\lambda'$, and the displayed gaps between $\tau,\lambda,\lambda'$ +absorb fixed logarithmic factors. The precision guard has +$C_1=19/10-9\beta/10+\zeta$ and $1-\epsilon C_1>0$. +Compact control allows $c=1$; its reservation exponent is zero and +$1-\epsilon(1+c)=1-2\epsilon>0$ gives $K=o(\ell)$ with $K=d$. + +For the retained Gaussian parameters +$\alpha=\lfloor\sqrt{b/(8d)}\rfloor$ and +$\gamma_G=2d\alpha^2\le b/4$, the same positive $1-2\epsilon$ +ensures the eventual conditions $b\ge64d^2$, $\alpha^2\theta_i\ge1$, +and prime-interval growth. Use the corrected chirp input bound +$F=2^{\lceil1.14\alpha^2\rceil}$; the following section proves that +$P=34p$ still suffices. The retained target errors and final rounding +therefore apply. + +The seven assembly savings are the exact rational numbers +\[ +\begin{aligned} + g_1&=1-2\epsilon,&g_2&=\epsilon a_b,& + g_3&=\epsilon(a_b-2/10^{20}),\\ + g_4&=(1-\epsilon)a_b,&g_5&=1-\delta-2\epsilon,& + g_6&=1-\delta-\epsilon,&g_7&=\epsilon. +\end{aligned} +\] +Writing $b_0=a_b/(2+a_b)$ gives $g_1=g_2=b_0$, +$g_3=b_0-2\epsilon/10^{20}$, $g_4>b_0$, +and $g_5=b_0-\delta$. Since $\delta>2\epsilon/10^{20}$, +$g_5$ is the least of the seven. Exact rational subtraction gives +\[ + \min_i g_i-\kappa + =\frac{a_b}{2+a_b}-\frac1{10^{16}} + -\frac{119723}{20000000000} + =\frac{828463377506907}{5000029930930000000000000000}>0. +\] +All retained parameter conditions are strict with this choice; in +particular the finite arithmetic certificate evaluates the complete +29-condition interface and these seven margins with rational arithmetic. +The final positive gap absorbs remaining logarithmic factors, proving +the claimed bound in the retained model. +\end{proof} + +The count and moment data are finite arithmetic certificates for the +specified producer and common-basis construction. The theorem's use of +the pinned analytic interfaces and its fixed rational basis preparation +is separate from checking those integers and rational inequalities. diff --git a/references/stopped-recursion/pr107/notes/endpoint-gauge-basis.tex b/references/stopped-recursion/pr107/notes/endpoint-gauge-basis.tex new file mode 100644 index 0000000000..8bba0203b0 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/endpoint-gauge-basis.tex @@ -0,0 +1,184 @@ +\subsection{The ordinary projector corner} +For a rank-$j$ projector in dimension $h$ with $j>h/2$, put $r=h-j$. +In a generic rational basis its first-$r$/last-$r$ corner is invertible: +one witness pairs these coordinates in rank-one blocks +$\frac12\left(\begin{smallmatrix}1&1\\1&1\end{smallmatrix}\right)$ +and is the identity on the middle $h-2r$ coordinates. Similarity of +rational projectors with the same rank proves that the relevant minor +is a nonzero rational function of the basis. + +Write $I-P=XY$, $YX=I_r$. The corner is $-X_LY_R$, so $X_L,Y_R$ are +invertible. Eliminating it leaves on the middle coordinates +\[ + I-X_MY_M-(-X_MY_R)(-Y_R^{-1}X_L^{-1})(-X_LY_M)=I_{h-2r}. +\] +The resulting lower-lower profile is $r$ singleton pivots and one +contiguous block of width $2j-h$. For $j\le h/2$ retain $j$ singleton +pivots; for $j=h$ use one block of width $h$. The last is still smaller +than the full tensor dimension $m$. Nonzero scalings are absorbed in +the triangular factors. This argument is also the large-projector +identity used in the controlled corners below. + +\subsection{The selected inner family} +Use physical index $i=b\alpha+\beta$, with $\beta$ fastest, and +\[ + K=T_2(I_a\otimes L_b),\quad + T_2(v\otimes e_\beta)=J_\beta v\otimes e_\beta,\quad + J_\beta=M_\beta L_a. +\] +The bases $L_a,L_b$ are free invertible rational matrices. For +$I=(0,\ldots,a-1)$ prescribe the first $2a$ row labels as +$[I,(1,\ldots,a-1,0)]$ and the last $2a$ inverse-column labels as +$[(a-1,0,\ldots,a-2),I]$. +A row label $c$ at $(\alpha,\beta)$ means +$e_\alpha^tM_\beta=e_c^t$; an inverse-column label means +$M_\beta^{-1}e_\alpha=e_c$, equivalently a prescribed column of $M_\beta$. +Their effective residues $\beta-c$ modulo $b$ are $\{0,1,3\}$ and +$\{25,27,28\}$, respectively. Within one side no coefficient coordinate +is repeated at fixed $\beta$; the two residue sets and the physical +boundary positions are disjoint. Each $M_\beta$ thus has a permutation +completion. These linear constraints define an affine space with a +nonempty irreducible invertible locus. + +The first $a$ rows and last $a$ inverse columns match the coordinate +orders of $L_a,L_a^{-1}$, giving every ordinary axis-$a$ corner. +For axis $b$, the inactive first factor is rank one and its weights +separate, giving a diagonal rescaling of $L_bBL_b^{-1}$. These facts +apply to every internal producer projector and the data residuals. + +\subsection{The A5 tree witnesses} +The inner projector $(I-P_a)\otimes(I-P_b)$ has nullity $a+b-1=61$. +After eliminating its first $b$ nullspace coordinates and rescaling +nonzero line entries, its forward restriction is the incidence matrix +on vertices $0,\ldots,b+1$ with edges +\[ +(0,b),(1,b+1);\quad (j+2,j+1)\ (0\le j\le b-3);\quad (0,b-1). +\] +It is the path on $1,\ldots,b-1,0$ with $b,b+1$ attached at the ends. +The dual restriction has edges +\[ +(b,0),(b+1,1),(b+1,2);\quad (j-2,j-1)\ (4\le j\le b+1), +\] +the path $0,b,b-1,\ldots,2,b+1,1$. +Each tree has $a-1$ edges; leaf elimination gives rank $a-1$. +Both nullspace restrictions are therefore nonsingular. The +large-projector identity gives 61 singleton pivots and one 838-block. + +\subsection{Outer matching and the A1 affine witness} +Set +\[ + S=T(I_k\otimes K),\qquad T(u\otimes e_i)=G_i u\otimes e_i. +\] +For $i=0,\ldots,k-1$ prescribe the first row of $G_i$ as row $i$ of a +free $L_k$. At the last $k$ multiplicity indices prescribe the last +inverse columns in matching $L_k^{-1}$ order. The next $a$ first rows +and preceding $a$ inverse columns remain free. The boundary intervals +of length $a+k=72$ are disjoint. Ordinary axis-$k$ corners and the +full $k$-block for unmatched stage-three roles are retained. + +The paired A1 null projector has the form +\[ + Q_1=I_k\otimes P_q+P_t\otimes P_U,\quad + \operatorname{rank}P_q=1,\quad\operatorname{rank}P_U=a,\quad P_qP_U=0. +\] +Write $q_i$ for the transformed line coordinate and $U_i$ for the +transformed $U$ row, impose $q_i\ne0$, and put $z_i=U_i/q_i$. +Absorbing $L_k$ into outer coordinates, the first $k$ nullspace rows are +$[e_p^t,t_pz_p]$, with $t_p\ne0$. The first $a$ vectors $z_p$ are +nonzero multiples of the $L_a$ coordinate basis. Row $p=a$ repeats +coefficient 1 at $\beta=2$ instead of $\beta=1$; its multiplier is +generically different. Indeed the two distinct motif lines have +coordinate ratios not identically equal in these freely chosen +$L_b$ coordinates. Thus $z_0,\ldots,z_a$ affinely span $\mathbb Q^a$. +For each extra row with free first-row functional $g_i$, eliminating +the first $k$ coordinates leaves +\[ + \sum_{p500000000^{10}$ and +$899^9<460^{10}$ give $m^\rho>500000000$ and +$899^{\rho-1}<460$. +If a path has one large child $t$, its moment is at most +\[ + (t/m)^\rho+(q-t)899^{\rho-1}/m^\rho. +\] +This expression increases over the large-child range, since its +numerator derivative is $\rho t^{\rho-1}-899^{\rho-1}>0$. +Use $t=m-b$ and the concavity bound +$(1-x)^{19/10}\le1-19x/10+9x^2/10$ to obtain +\[ + \sum_{\rm path}(r/m)^\rho + <1-\frac{19}{12800}+\frac9{10\cdot1280^2} + +\frac{1194\cdot460}{500000000} + =\frac{51180270301}{51200000000}<\gamma. +\] +Without a large macro the bound is $227493/6250000<\gamma$. + +For coefficient-depth accounting take $E_0=128(W+m+1)^3$. +There are at most $s$ positive-rank residual calls and $W$ endpoint +normalizations. Combining the quadratic phases with the $S$ factors, +each uses at most two diagonal phase passes and one scalar phase. +The inherited gate and remainder count is therefore bounded conservatively by +\[ + 36W^3+16s+16W+8m+44\pi$, the inner sum is less than +$2e^{-\pi\alpha^2\sigma}(1+2e^{-3\pi\alpha^2\sigma})<2.01e^{-\pi\alpha^2\sigma}$. +\end{proof} + +The original estimate $\|E\|^n<2^{-\alpha^2\theta n}$ gains only +$\alpha^2\theta$ bits per term. The lemma gains about +$\pi\alpha^2\log_2e$ bits per term after a burn-in of order +$\alpha^2/\theta$ bits. + +\begin{corollary} +\label{cor:neumann-count} +Assume $\alpha\geq2$, $\alpha^2\theta\geq1$ and $\theta<1$, and let +$n_{\alpha,\theta}$ be as in Lemma~\ref{lem:no-sort-resampling}. +Then $n_{\alpha,\theta}\leq p$ and $\|E^{n_{\alpha,\theta}}\|\leq2^{-p}$. +\end{corollary} + +\begin{proof} +If $n_{\alpha,\theta}=\lceil p/(\alpha^2\theta)\rceil$, then +$n_{\alpha,\theta}\le p$ and $\|E^{n}\|\le\|E\|^n<2^{-\alpha^2\theta n}\le2^{-p}$ +by \eqref{eq:gaussian-public-facts}. Otherwise +$n=n_{\alpha,\theta}\geq(p+1)/(4\alpha^2)+1/\theta$ and $n<\lceil p/(\alpha^2\theta)\rceil\le p$. +Put $\kappa_0=\pi\log_2e$, so $4.531<\kappa_0<4.534$, and note +$\log_22.01<1.01$. Taking base-two logarithms in +Lemma~\ref{lem:correction-powers}, +\[ + \log_2\|E^n\|\leq\kappa_0\alpha^2\Bigl(\frac1{4\theta}+\frac12\Bigr) + -n(\kappa_0\alpha^2\sigma-1.01). +\] +Since $\sigma>1$ and $\alpha\ge2$, the last bracket is at least +$4\alpha^2$. Also $4.534(1/(4\theta)+1/2)\le4/\theta$ because +$\theta<1$. Hence +$\log_2\|E^n\|\leq4\alpha^2/\theta-4\alpha^2n\leq-p-1$. +\end{proof} + +\begin{lemma}[Gaussian maps by chirped correlation] +\label{lem:chirped-gaussian} +Assume the hypotheses of Lemma~\ref{lem:no-sort-resampling}. There are +fixed multitape algorithms computing approximations +$\widetilde{\mathsf S}':\mathbb D_p^s\to\mathbb D_p^t$ of $\mathsf S'$ +and $\widetilde E:\mathbb D_p^s\to\mathbb D_p^s$ of $E$, with errors less +than $16p$ and $p/3$ respectively, outputs in the disk grid, and time +$O((t+p)p^{1+\delta})$ each. Inputs and outputs occur in increasing +coordinate order. The constants are uniform in $p,s,t,\alpha$. +\end{lemma} + +\begin{proof} +\emph{Chirp identity.} For a rational $y$ and integers $a,b$, put +$\hat a=a+y/\sigma$. Expanding both sides and using $\sigma-\theta=1$, +\[ + (\sigma\hat a-b)^2 + =\sigma\theta\hat a^2+\sigma(\hat a-b)^2-\theta b^2 . +\] +Hence, for rational $\lambda>0$, +\begin{equation}\label{eq:chirp-split} + e^{-\pi\lambda(\sigma a+y-b)^2} + =e^{\pi\lambda\theta b^2}\, + e^{-\pi\lambda\sigma\theta(a+y/\sigma)^2}\, + e^{-\pi\lambda\sigma(a-b+y/\sigma)^2}. +\end{equation} +For inputs $f_a$, $0\le a100$, so $\Gamma=\lceil1.4p\rceil$ suffices. Take +$P=3p$, and apply the factor $(2\alpha)^{-1}$ by one more product at +precision $P$. Each output then has error less than +$2^{-p}(1+1/4+1)<3\cdot2^{-p}$, and its norm is less than +$\|\mathsf S'\|+3\cdot2^{-p}<1$. + +\emph{The map $E$.} With $f_j=e^{\pi\alpha^2\beta_j^2}u_j$ and +$\lambda=\alpha^2$, the definition of $N$ gives +\[ + (Nu)_\ell=\sum_je^{-\pi\lambda(\sigma j-q_\ell)^2}f_j, +\] +and its term $j=\ell$ is exactly $u_\ell$. The inputs $f_j$ are formed by +Lemma~2.14 of \cite{HarveyHoeven2021} for +$2^{-\lceil1.14\alpha^2\rceil}e^{\pi\alpha^2\beta_j^2}$, a shift, and one +product with $u_j$. Put $B=\lceil1.14\alpha^2\rceil$ and $F=2^B$. +The shift multiplies the generator's absolute error by $2^B$; +including the product and rounding, the input errors are at most +$2^{4-P}F$. This same $F$ also bounds $|f_j|$. Let +$m=\lceil\sqrt p/(2\alpha)\rceil$, the window of +\cite[Lemma~4.11]{HarveyHoeven2021}. Partition $0\le\ell100$. In particular it bounds the shifted +approximation error as well as the exact chirp magnitude. Moreover, +\[ + \pi\lambda\theta b'^2\le\pi\theta\alpha^2(2m+2)^2 + \le\frac\pi4\bigl(\sqrt p+4\alpha\bigr)^2<\frac{25\pi}4p, +\] +so $\Gamma=29p$ suffices, using +$(\sqrt p+4\alpha)^2<25p$ and $\theta\le1/4$. +For $\alpha\ge2$ and integer $p>100$, +$L_A=3\lceil\sqrt p/(2\alpha)\rceil+1\le p$ and +$\lceil\log_2 L_A\rceil\le p-1$. Hence the block precision requirement is +\[ + p+\Gamma+\lceil\log_2(FL_A)\rceil+11 + \le 32.14p+11<34p. +\] +Thus $P=34p$ still suffices with the enlarged error enclosure. +Select the outputs +$b=q_\ell$ in order, subtract the exact $u_\ell$, and round. The block +contains every term $0<|h|\le m$ of the truncated sum in that lemma, so +the computed $(\widetilde Eu)_\ell$ differs from $(Eu)_\ell$ by less than +$(3+1+1)2^{-p}<(p/3)2^{-p}$. Its norm is less than +$\|E\|+5\cdot2^{-p}<1$. + +\emph{Cost and tape movement.} The selected indices $q_\ell$, the numerators +$s\beta_\ell$, and the block offsets are generated by the +counters already used for $C$, in $O(p)$ time per index. Before a line, +copy $u$ with $3m+3$ periodic records appended at each end, in $O((s+m)p)$ +time; then every block reads one consecutive interval. Consecutive input +intervals overlap in $O(m)$ records, so all reads, packing and unpacking +cost $O((t+m)p)$. There are $O(t/m+1)$ blocks, each costing +$O(mp^{1+\delta})$; in both cases $m<2p$. This gives the time bound +$O((t+p)p^{1+\delta})$. +\end{proof} diff --git a/references/stopped-recursion/pr107/notes/finite-alphabet-transfer.tex b/references/stopped-recursion/pr107/notes/finite-alphabet-transfer.tex new file mode 100644 index 0000000000..bc9540b3c5 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/finite-alphabet-transfer.tex @@ -0,0 +1,79 @@ +\section{A fixed finite scalar alphabet in the interchange transfer} +\label{sec:finite-alphabet-transfer} + +The rational-frame interchange interface does not intrinsically require +XOR as its pointwise scalar operation. The following extension concerns +the swap interface only; it does not change the complex phase interface. +All conclusions remain conditional on the upstream stream procedures. + +\begin{proposition} +Let $\mathcal A$ be a fixed finite alphabet containing distinct symbols +$0,1$. Suppose a fixed finite circuit on $W$ roles consists of fixed +pointwise maps on symbols in $\mathcal A$ and has, on every input in +$\mathcal A^W$, the complete scalar action of a role permutation $\rho$. +Assign the same rational $m$-by-$m$ matrix to all incidences of each gate. +If +\[ + M_{\mathrm{out}(\rho(w))}-M_{\mathrm{in}(w)}=I_m, + \qquad s=\sum_e\operatorname{rank}_{\mathbb Q} + (M_{\mathrm{head}(e)}-M_{\mathrm{tail}(e)})0$ with $s0\quad(u\ne0). +\] +Indeed zero outside coordinates also force $u_i=0$. Thus $U$ is +nondegenerate, including when the ambient form is indefinite. Orthogonality +of all cross pairs gives $\langle t_X\rangle\subset U\subset t_Y^\perp$. + +The common frames of the forward gates, in the displayed chronological order, +are +\[ + D_0,\ D_0,\ D_0,\ D_0,\ X_{t_X},\ D_1,\ D_0,\ + D_U,\ Y_{t_Y},\ D_1,\ D_1,\ D_1. +\] +The gates at $X_{t_X}$ and $Y_{t_Y}$ are grouped separately by data triple; +the middle mixers at $D_U$ are grouped by rectangle. The early side injection +is instead at the common label $D_0$, allowing the earlier scratch mixers. +This is a monotone enlargement of the incoming physical $Y$ label. + +For stage 2 reverse and invert the scalar schedule with logical source $Y$ +and target $X$. Its operations and common frames are respectively +\begin{gather*} + V,\ G,\ L,\ J,\ L^{-1},\ R,\ G,\ V,\ R,\ L,\ J,\ L^{-1},\\ + D_0,\ D_0,\ D_0,\ X_{t_X},\ D_U,\ D_1,\ D_0,\ + Y_{t_Y},\ D_1,\ D_1,\ D_1,\ D_1. +\end{gather*} +Now $U$ is the span of the physical $X$ indicators, which are the rectangle's +logical targets. The same nondegeneracy and orthogonality proof applies. + +All frames above are tensored with $Q$. An input-only side role follows +$D_0\subset X_t\subset D_U\subset D_1$ in a forward invocation; +an output-only role follows $D_0\subset D_U\subset Y_t\subset D_1$; +the pivot follows both. In the reverse invocation the two roles exchange +these physical descriptions. All side edges are therefore increasing, with +nondegenerate orthogonal residuals. Physical $X$ still changes from +$A\otimes\langle t\rangle\otimes Q$ to $(A\otimes F)\otimes Q$, +and physical $Y$ from $B\otimes\langle t\rangle\otimes Q$ to +$Y_t\otimes Q$. These are the original interstage boundaries. +Each central role has one decreasing edge, from $D_1$ to $D_0$, losing +dimension $h$. Thus the total decreasing dimension remains +\[ + L_{\rm dec}=3v^2h^2. +\] + +\subsection{Sharing all first-stage and third-stage auxiliary roles} +Pair the ground points consecutively. Define a permutation $\pi$ of triples +as follows. A triple containing a full pair and a singleton keeps the singleton +and cycles its full pair among the pairs other than the singleton's pair. +A triple using three different pairs keeps the point in the least indexed +pair and flips the other two points to their partners. The first rule is a +cycle on each fixed-singleton class and the second an involution on the +remaining classes. Hence $\pi$ is bijective and $|T\cap\pi(T)|=1$. + +Match the whole auxiliary bank of the stage-1 invocation with fixed triples +$(A,B)$ to that of stage 3 with fixed triples $(B,\pi(A))$, keeping the local +role index. Both invocations restore arbitrary auxiliary inputs, and the +matching is bijective. No simultaneous roles are identified. It includes +centers as well as side roles. + +Every auxiliary first gate now has label $D_0\otimes Q$ and every last gate +has label $D_1\otimes Q$. In a matched pair the joining labels are +\[ + E=F\otimes\langle t_A\rangle\otimes\langle t_B\rangle, + \qquad + H=\langle t_B\otimes t_{\pi(A)}\rangle^\perp_{F\otimes F}\otimes F. +\] +Both are nondegenerate and $E\subset H$, because $t_A\perp t_{\pi(A)}$. +The edge $E\to H$ replaces $E\to F^{\otimes3}$ and $0\to H$, +reducing total projection-difference rank by exactly $m$ per removed role. +No additional decreasing edge arises. The final role count and rank sum are +\begin{align*} + W_{\rm b}^{\rm rect}&=2N+2v^2(R_{\rm side}+h)=1110529317427200,\\ + s_{\rm b}^{\rm rect}&=W_{\rm b}^{\rm rect}m-N+2L_{\rm dec} + =108094481068699857600,\\ + W_{\rm b}^{\rm rect}m-s_{\rm b}^{\rm rect}&=572394081600>0. +\end{align*} + +\begin{proposition}[Rectangle bit interface]\label{prop:incidence-bit-interface} +The rectangle network exchanges the two scalar bit banks and fixes every +auxiliary input. Its rational frames satisfy the original all-role endpoint +identity, with $W_{\rm b}^{\rm rect}$ roles and total edge rank +$s_{\rm b}^{\rm rect}a_{\rm b}L_0, + \qquad \eta_{\rm c}=\frac7{22253827054}>a_{\rm c}L_0. +\] +For $1\le x\le2$, write $z=(x-1)/(x+1)$ and +\[ + S(x)=2\sum_{j=0}^{23}\frac{z^{2j+1}}{2j+1},\qquad + E(x)=\frac{2z^{49}}{49(1-z^2)}. +\] +The logarithm series bounds $S(x)\le\log x\le S(x)+E(x)$. +Exact rational comparison gives +$\log m\le16(S(2)+E(2))+S(m/2^{16})+E(m/2^{16})m(1-aL_0)>m(1-\eta)$ for either corresponding pair. +We may take +\begin{equation}\label{eq:explicit-motif-exponents} + \tau=1-a_{\rm b},\qquad\sigma=1-a_{\rm c}, +\end{equation} +with $s_{\rm b}^{\rm rect}/W_{\rm b}^{\rm rect}2^{-67}. +\] +The other margins are $g_1>1/2$, $g_4=20a/21$, $g_5=13/112$, +$g_6=299/336$, and $g_7=1/21$, all strictly larger. The positive gap absorbs +the fixed logarithmic factors as in the existing strict-margin argument, +yielding $O(n(\log n)^{1-2^{-67}})$ conditionally. + +The dimension exponent, stopping threshold, complex network, and guard +analysis are retained: the guard is $p^{20/21}=o(p)$, the new chunk has +$K=\Theta(p^{3a/70})=o(\ell)$ with $\ell=\Theta(p^{20/21})$, and +$K/\log p\to\infty$. The numerical maps and final rounding are unchanged. +No use is made of the separate recurrence refinement requiring +$\sigma\le\tau$; the original separate layer inequalities pass here. + +\section{Reproduction and boundary of verification} +The companion artifacts are: +\begin{itemize} +\item \path{scripts/incidence_rectangles.py} and \path{scripts/incidence_network.py}; +\item \path{certificates/incidence-network.json}; +\item \path{patches/h46-incidence-67.patch}. +\end{itemize} +The rectangle checker enumerates every +ordered disjoint pair at the target size. Small forward and inverse invocations +are checked on every input basis vector, including every scratch input. A full +three-stage small network checks bank exchange and restoration with shared +nonzero scratch. Rational tests verify the norm identity and sharing inclusion. +The written frame argument and the unchanged upstream machinery remain +mathematical proof obligations; these checks are not a formal proof of the +complete algorithm. +\end{document} diff --git a/references/stopped-recursion/pr107/notes/independent-complex.tex b/references/stopped-recursion/pr107/notes/independent-complex.tex new file mode 100644 index 0000000000..a4429e8ee6 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/independent-complex.tex @@ -0,0 +1,61 @@ +\subsection{An independently sized complex network} +\label{sec:independent-complex} +Keep the paired bit network at $h_{\rm b}=50$, with address-swap exponent +$\tau=1-296/10^{11}$. Instantiate the original complex construction instead +at $h_{\rm c}=25$. Its constants, distinguished from those of the bit +network, are +\[ + m_{\rm c}=15625,\quad v_{\rm c}=2300,\quad N_{\rm c}=12167000000, +\] +\[ + W_{\rm c}=58645352620000,\quad L_{\rm c}=10315500000,\quad + s_{\rm c}=916333630984500000. +\] +Here $W_{\rm c}=2v_{\rm c}^3+3v_{\rm c}^2(v_{\rm c}z_{\rm c}+26)$, +$z_{\rm c}=\binom{22}{3}+66$, and $L_{\rm c}=3v_{\rm c}^2\cdot25\cdot26$. + +\begin{proposition}\label{prop:compact-complex-interface} +The original complex phase interface, including its signed scalar bank +exchange, arbitrary-scratch restoration, binary residual bases and endpoint +corrections, holds with these constants. Its normalized residual saving +supports the strict exponent $\sigma=1-418/10^{12}$. +\end{proposition} +\begin{proof} +The original construction and residual table apply at this ground size. +For an intersection of size $j$, the center coefficient is $(j-1)/2$; the +side correction is its negative for distinct even-intersection neighbors. +Their sum is zero for $j=0,1,2$ and one for $j=3$. The same eight-step +schedule therefore restores arbitrary scratch and gives the elementary bank +shear, and the three stages give the signed exchange. + +Binary triple indicators have norm one. The orthogonal decompositions in +the residual table remain nondegenerate. Every nonzero residual has a +norm-one vector: choose a coordinate outside the support of a triple or two +neighboring triples (at most six coordinates), or outside an earlier/future +tensor indicator (support $3^j<25^j$); tensor with the remaining norm-one +factors. Thus the original nonalternating-space argument supplies the required +orthonormal bases. No even-ground-size matching or rational bit-interface +positivity is needed for this unchanged complex network. + +The rank accounting gives +\[ + s_{\rm c}=W_{\rm c}m_{\rm c}-2N_{\rm c}+2L_{\rm c},\qquad + \eta_{\rm c}=\frac{W_{\rm c}m_{\rm c}-s_{\rm c}}{W_{\rm c}m_{\rm c}} + =\frac{14}{3464399375}>0. +\] +The needed positivity is $L_{\rm c}(418/10^{12})(966/100)$. The inequality +$e^{-x}>1-x$ then yields $s_{\rm c}/W_{\rm c}\frac12. +\] +The first two are the minima for either stated $a$. + +The remaining dependencies can be checked explicitly: +\begin{center} +\begin{tabular}{ll} +\toprule +Quantity & Exponent or implication\\ +\midrule +Guard $d^{20}$ & $p^{1/2}=o(p)$\\ +Resampling $\alpha$ & $\Theta(p^{21/80})=o(p^{1/2})$\\ +Resampling $\gamma$ & $O(p^{11/20})=o(p)$\\ +Prime-interval ratio & $p^{1-2\epsilon}=p^{19/20}\to\infty$\\ +Chunk $K$ & $\Theta(p^{a/80})$, hence $K/\log p\to\infty$\\ +Axis width $\ell$ & $\Theta(p^{39/40})$, hence $K=o(\ell)$\\ +Record length $r$ & $2^{\Theta(p^{39/40})}$ dominates every fixed polynomial\\ +\bottomrule +\end{tabular} +\end{center} +Thus polynomially many exceptional repairs, descriptor preparations and +per-line setup retain their asymptotic bounds. Since $d\to\infty$, prime +search still takes $n^{o(1)}$ time. The explicit root calculation is the +fixed-power comparison $d^{40}\le b$. The original error bound still yields +correct rounding beyond one common cutoff because $\gamma=o(b)$ and $p=6b$. +\end{proof} + +\begin{corollary}[Conditional multiplication bounds] +With the original network and recurrence exponents, the modified schedule +permits $\kappa=2^{-107}$. With the audited $h=46$ network and rational +recurrence saving, it permits $\kappa=2^{-78}$. +\end{corollary} +\begin{proof} +In the original-network case, +$G=2^{-100}/80>2^{-107}$, since $128>80$. +For $h=46$, exact arithmetic gives +\[ + G=\frac{81}{20000000000000000000000000} + =4.05\cdot10^{-24}>2^{-78}. +\] +For the chosen $\kappa$ put $\rho=G-\kappa>0$. Every fixed power of +$\log p$ is eventually at most $p^\rho$, so the total normalized bound is +$O(p^{1-\kappa})$. Apply the unchanged final assembly and finite-cutoff argument. +\end{proof} + +\section{Relationship to the earlier ceiling} +Under the original adjacent-layout accounting, positivity of +$g_4=a-\epsilon(1+a)$ forces $\epsilon0\quad(u\ne0). +\] +Thus $U_z$ is nondegenerate. Along every graph edge $z\to w$, +$U_z\subset U_w$. Forward middle gates use $D_{U_z}$; the physical roles +follow paths, so these frames increase. A designated output for target $T$ +has $U_z\subset t_T^\perp$, because every contributing triple is a neighbor. + +For the reversed middle computation use $D_{U_z^\perp}$. The ambient form +is nondegenerate, so all these complements are nondegenerate. Reversing an +edge reverses inclusion: $U_w^\perp\subset U_z^\perp$. +The original output begins at the physical $X$ line +$\langle t_T\rangle\subset U_z^\perp$; an original input ends at exactly +its physical $Y$ complement $t_S^\perp$. No positivity assumption on the +reachable-target spans is needed. At every gate all incident roles receive +the same frame. Early mixers use $D_0$, and late cleanup uses $D_1$. +Newly active roles enter from $D_0$ and retired roles grow to $D_1$. +Tensoring by $Q$ gives the original data-stage boundaries in both orientations. +The only decreases remain the central returns, each of dimension $h$. + +Share the complete auxiliary bank of a stage-1 invocation $(A,B)$ with stage 3 +at $(B,\pi(A))$, matching local role indices. Here $\pi$ is a bijection of +triples with $|T\cap\pi(T)|=1$: pair consecutive ground points; for a triple +with a full pair and singleton, keep the singleton and cycle the full pair +among pairs not containing it; otherwise keep the point in the least indexed +pair and flip the other two to their partners. Each rule is bijective on its +class. All invocations restore arbitrary scratch, and the joining labels are +\[ + E=F\otimes\langle t_A\rangle\otimes\langle t_B\rangle, + \qquad H=\langle t_B\otimes t_{\pi(A)}\rangle^\perp\otimes F. +\] +They are nondegenerate and $E\subset H$ by the chosen orthogonality. +Each join removes one auxiliary role and exactly $m$ of edge rank. + +\begin{proposition}[Paired-block bit interface]\label{prop:paired-bit-interface} +The new bit network restores arbitrary scratch, exchanges the data banks, +and satisfies the original all-role endpoint identity with +\begin{align*} + W_{\rm b}^{\rm pair}&=2N+2v^2(R+h)=406321422080000,\\ + s_{\rm b}^{\rm pair}&=W_{\rm b}^{\rm pair}m-N+6v^2h^2 + =50790175992864000000,\\ + W_{\rm b}^{\rm pair}m-s_{\rm b}^{\rm pair}&=1767136000000>0. +\end{align*} +\end{proposition} +\begin{proof} +The scalar schedule and both frame assignments were verified above. The total +decreasing dimension is $3v^2h^2$. Telescoping gives total absolute label change +$W_{\rm b}^{\rm pair}m-2N+6v^2h^2$; the unchanged negative source projections +add $N$ rational rank. Data endpoints are unchanged and every surviving +auxiliary role has endpoints zero and $I_m$, with its scalar value restored. +The original common-frame identity and rational-shear transfer apply. All +circuits, rational bases, and gates are fixed finite data. +\end{proof} + +\subsection{Explicit exponents at ground size fifty} +Take $a=296/10^{11}$, $a_{\rm c}=1/10^{11}$, and $L_0=11737/1000$. +The exact deficits satisfy +\[ + \eta_{\rm b}^{\rm pair}=\frac{23}{661055000}>aL_0,\qquad + \eta_{\rm c}=\frac{239}{1202215191250}>a_{\rm c}L_0. +\] +For $1\le x\le2$, put $z=(x-1)/(x+1)$, +$S(x)=2\sum_{j=0}^{23}z^{2j+1}/(2j+1)$, and +$E_0(x)=2z^{49}/(49(1-z^2))$. Then +$S(x)\le\log x\le S(x)+E_0(x)$, and exact rational comparison gives +\[ + \log m\le16(S(2)+E_0(2))+S(m/2^{16})+E_0(m/2^{16})1-x$ therefore proves the required strict bounds with +\begin{equation}\label{eq:explicit-motif-exponents} + \tau=1-\frac{296}{10^{11}},\qquad \sigma=1-\frac1{10^{11}}. +\end{equation} +The complex network itself is unchanged apart from the ground size $h=50$; +its construction, binary residual bases, and scalar corrections remain those +proved above. diff --git a/references/stopped-recursion/pr107/notes/paired-note.tex b/references/stopped-recursion/pr107/notes/paired-note.tex new file mode 100644 index 0000000000..e23e5d215b --- /dev/null +++ b/references/stopped-recursion/pr107/notes/paired-note.tex @@ -0,0 +1,124 @@ +\documentclass[11pt]{article} +\usepackage[T1]{fontenc} +\usepackage{lmodern,amsmath,amssymb,amsthm,booktabs} +\usepackage[margin=1in]{geometry} +\usepackage[hidelinks]{hyperref} +\newtheorem{proposition}{Proposition} +\title{A conditional $2^{-59}$ exponent saving for integer multiplication} +\author{Douglas Colkitt\thanks{Prepared with assistance from OpenAI Codex. +This is not independent review or endorsement by OpenAI.}} +\date{October 7, 2026} +\begin{document} +\maketitle +\begin{abstract} +A weighted paired-block circuit reduces the finite bit network, while two +refinements of the downstream accounting permit a larger transform dimension: +the guard bound uses the actual early stopping depth, and the Gaussian width +is chosen to meet its stated interface directly. At ground size $h=50$, these +changes give the conditional saving $\kappa=2^{-59}$, with a strictly positive +exact margin. This is a factor $128/13$ above the preceding $13\cdot2^{-66}$ +witness. The underlying multiplication theorem remains an assumption. +\end{abstract} +\section{Scope} +The source patch is against OpenAI's \emph{Integer multiplication below +$n\log n$}, pinned at +\begin{center}\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}.\end{center} +The computational model uses a fixed finite alphabet and a fixed number of +one-dimensional tapes. We retain nonadjacent routing, frames from orthogonal +complements, and auxiliary stage sharing. The ground size is +now 50 for both finite networks. The complex motif uses its original family; +only the bit motif receives the new sum circuit. No practical runtime or +unrestricted optimality claim is made. +\input{paired-construction.tex} +\section{The guard refinement} +\input{stopped-guard.tex} +\section{A smaller Gaussian width} +Keep $p=6b$, $\eta=1/(4d)$, and the same prime intervals. They still give +$\theta_i=t_i/s_i-1>1/(4d)$. Replace the earlier Gaussian width by +\[ + \alpha=\left\lceil(32db)^{1/4}\right\rceil,\qquad + \gamma=2d\alpha^2. +\] +Then $\alpha^4\theta_i>8b>p$, precisely the strict hypothesis needed by +the unchanged one-dimensional resampling interface. Also +\[ + \alpha\le2(32db)^{1/4},\qquad + \gamma<46d^{3/2}\sqrt b. +\] +For $d=\Theta(p^\epsilon)$, we now have +$\alpha=\Theta(p^{1/4+\epsilon/4})$ and +$\gamma=O(p^{1/2+3\epsilon/2})$. +Thus $\epsilon<1/3$ implies $\gamma=o(p)$ and +$2\le\alpha<\sqrt p$ eventually. The previous convenient condition +$\epsilon<1/12$ and its bound $\gamma\le28b^{2/3}$ are not needed. + +The unchanged Gaussian line-map cost $O(dTp^{3/2+\delta}\alpha)$ now has +normalized exponent $3/4+\delta+5\epsilon/4$. The other six assembly +exponents are unchanged. Prime selection still requires $1-2\epsilon>0$; +the product of the selected primes remains between $T/2$ and $T$, with the +same separation and coprimality guarantees. The new width satisfies every +stated resampling hypothesis without changing that analytic lemma. + +For the chosen $\epsilon=199/1000$, the exponents of $\alpha$ and $\gamma$ +are respectively $1199/4000$ and $1597/2000$. The explicit cutoff +$b\ge2^{40}$ ensures $46b^{1597/2000}\le b/4$ by integer comparison +$184^{2000}<2^{16120}$. Replacing the former $2^{24}$ cutoff by $2^{40}$ +therefore preserves the source-scaling and final rounding bounds, together +with the other existing eventual cutoffs. All grid, contraction, and error +lemmas are retained with their original hypotheses verified. + +\section{Exact parameters and final margin} +With $a=296/10^{11}$ and $a_{\rm c}=1/10^{11}$ take +\begin{gather*} + \tau=1-a,\quad\sigma=1-a_{\rm c},\quad\beta=999/1000, + \quad\epsilon=199/1000,\quad\delta=1/10000,\quad C_1=2,\\ + c=999a/1000,\quad\lambda=1-1999a^2/2000, + \quad\lambda'=1-999a^2/1000. +\end{gather*} +Here $\tau(1+c/\beta)=1-a^2<\lambda<\lambda'<1$; +$\sigma<\lambda$ and $\sigma+\beta(1-\sigma)<\lambda'$ hold by exact +rational comparison. The stopping test is $e^{1000}2^{-59}. +\] +The ratio $G/2^{-59}$ is approximately $1.00408789$; the displayed strict +rational comparison, not this decimal, is the certificate. The fixed gap +absorbs the remaining fixed powers of $\log p$. + +The guard exponent is $2\epsilon=199/500<1$, the prime-interval growth +exponent is $301/500>0$, and $\ell=\Theta(p^{801/1000})$. +We have $K=\Theta(p^{\epsilon c})=o(\ell)$ and $K/\log p\to\infty$. +The Gaussian margin is $23/20000>0$. Thus all setup, stopping, precision, +layout, and absorption conditions in the patched proof hold, yielding +\[ + T(n)=O\bigl(n(\log n)^{1-2^{-59}}\bigr) +\] +under the retained upstream assumptions. + +\section{Reproducibility and boundary of verification} +The reproducible artifacts are +\begin{itemize} +\item \path{certificates/paired-network.json}; +\item \path{patches/h50-paired-59.patch}; +\item \path{scripts/paired_exclusion_circuit.py}; +\item \path{scripts/shared_point_circuit.py}; +\item \path{scripts/paired_network.py}. +\end{itemize} + +The checks compare every local and global output support exactly, verify both +frame directions on every compiled role, and check small forward and reverse +invocations on every input basis vector, including dirty scratch. Full small +three-stage models check bank exchange and shared auxiliary restoration. +Separate tests cover weighted recursion, stopping-depth bounds, guard-model +selection, revised assembly constraints, and source-patch dependencies. +These checks support the written proofs; they do not independently establish +or formally verify the complete upstream algorithmic theorem. +\end{document} diff --git a/references/stopped-recursion/pr107/notes/parameter-note.tex b/references/stopped-recursion/pr107/notes/parameter-note.tex new file mode 100644 index 0000000000..624c4f8fcf --- /dev/null +++ b/references/stopped-recursion/pr107/notes/parameter-note.tex @@ -0,0 +1,399 @@ +\documentclass[11pt]{article} +\usepackage[T1]{fontenc} +\usepackage{lmodern,amsmath,amssymb,amsthm,booktabs} +\usepackage[margin=1in]{geometry} +\usepackage[hidelinks]{hyperref} +\newtheorem{proposition}{Proposition} +\newtheorem{corollary}[proposition]{Corollary} +\title{A sharper exponent for integer multiplication} +\author{Douglas Colkitt\thanks{Prepared with assistance from OpenAI Codex. This assistance is not independent review or endorsement by OpenAI.}} +\date{October 6, 2026} +\begin{document} +\maketitle +\begin{abstract} +We give exact certificates for improvements to the parameter choices in +OpenAI's manuscript \emph{Integer multiplication below $n\log n$}. +The strongest supplied substitution uses the same symbolic network construction +at $h=46$, a rational recurrence saving, and a variable stopping exponent to give +$\kappa=29/(5\cdot10^{33})=5.8\cdot10^{-33}$. +This exceeds $2^{-111}$ by a factor of approximately $15.1$ and is more +than $99\%$ of a certified upper bound for the stated parameter family. +We also retain simpler substitutions with earlier interfaces frozen. +This is a conditional consequence of the manuscript's algorithmic +interfaces, not an independent verification of its multiplication theorem. +We also determine the supremum of the symmetric numerical constraint +problem and certify $h=46$ as optimal within the specified network-counting +family when a common recurrence exponent is required. +\end{abstract} + +\section{Scope and source} +The source is OpenAI's September 23, 2026 manuscript, released in the +\texttt{openai/math} repository. This note uses commit +\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}. +The repository contains immutable copies of its source and a SHA-256 manifest. +All algorithmic assertions below are conditional on the corresponding +upstream interfaces and their uniform time bounds, on its fixed finite-alphabet +Turing machine with a fixed finite number of one-dimensional tapes. Rational arithmetic +checks prove numerical inequalities; finite tests of selected identities +do not prove the full multitape algorithm. + +The starting parameter choices are +\[ + \tau=\sigma=1-2^{-50},\quad \beta=\tfrac12,\quad + \delta=\tfrac1{16},\quad C_1=20. +\] +The upstream simultaneous-layer proposition permits varying +$c,\epsilon,\lambda,\lambda'$ subject to +\begin{align} + \max\{\tau,\sigma\}&<\lambda<\lambda'<1,\label{eq:layer1}\\ + \tau(1+2c)&<\lambda,\label{eq:layer2}\\ + \sigma+\tfrac12(1-\sigma)&<\lambda',\qquad 20\epsilon<1. + \label{eq:layer3} +\end{align} +Its final assembly requires positive $c,\epsilon$, $\epsilon<1/12$, +and positivity of seven margins: +\begin{align*} + g_1&=1-\epsilon(1+c),&g_2&=\epsilon c(1-\tau),\\ + g_3&=\epsilon(1-\lambda'),&g_4&=1-\tau-\epsilon(2-\tau),\\ + g_5&=\tfrac14-\delta-\tfrac32\epsilon, + &g_6&=1-\delta-\epsilon,\qquad g_7=\epsilon. +\end{align*} +The final proof reserves half the minimum margin: +$2\kappa\le\min_i g_i$. This absorbs any fixed power of $\log p$ into +$p^\kappa$. This half-margin rule is a convenient convention; mathematically +any fixed $\kappa<\min_i g_i$ would suffice for that absorption. + +\section{A substitution with the network frozen} +\begin{proposition}\label{prop:balanced} +Let $02^{-52}$. + +\section{Dependencies outside the final inequalities} +The following implications account for uses of the changed exponents +elsewhere in the construction. They use fixed parameters and permit the +common finite cutoff to increase. +\begin{itemize} +\item $\epsilon C_1<1$ implies $d^{C_1}=o(p)$, so the exact intermediate +dyadic formats still have $O(p)$ bits. +\item $\epsilon c>0$ implies $K=\Theta(p^{\epsilon c})$ grows faster than +$\log p$. Every fixed polynomial times $2^{-K}$ tends to zero, including +the repair cost summed over the polynomially many recursive visits. +\item $\epsilon<1$ gives $r=2^{\Theta(p^{1-\epsilon})}$, which dominates +every fixed polynomial in $p$. It pays for per-record and per-line setup. +\item $1-\epsilon-\epsilon c>0$ gives $K=o(\ell)$, as required for the +synthetic-transform layout. +\item $1-2\epsilon>0$ yields the prime-interval hypotheses eventually. +The trial-division setup remains $n^{o(1)}$ since $d\to\infty$. +\item $\epsilon<1/12$ retains +$\alpha=\Theta(p^{1/4+\epsilon/2})<\sqrt p$ and +$\gamma=O(p^{1/2+2\epsilon})=o(p)$. +Thus the upstream error bound $448b\,2^{-b+\gamma}<1/2$ still holds +eventually with $p=6b$. +\item The integer-root exponents are fixed integers. Their size affects +the fixed machine description and constants, not uniformity in input length. +\end{itemize} +No unchanged algorithmic interface is established merely by these +implications. They close the parameter-dependence part of the audit. + +\section{The numerical supremum} +\begin{proposition}\label{prop:supremum} +For fixed rational $00$. +Also $\lambda>1-a$, $\lambda'<1$ and +$\lambda'>1-a/2$. Since $\epsilonm(1-aL)>m(1-\eta), +\] +which supplies the strict recurrence comparison for either network. +All comparisons used here have rational certificates. A positive Taylor +partial sum exceeding $m$ proves $e^L>m$ without floating-point arithmetic. + +For $h=100$, the published deficits exceed $14\cdot2^{-42}$ and +$\log(10^6)<14$. Thus the same network supports the comparison with +$a=2^{-42}$. Proposition~\ref{prop:balanced} then gives the candidate +$\kappa=2^{-129}$, improving on the unbalanced $2^{-130}$ candidate. +The separate \texttt{same-network-129.patch} updates the proposition statements +that fix the recurrence exponents and the displayed exponent comparison. + +For $h=46$, the formulas give +\[ + m=97336,\quad \eta_b=\frac9{43518487588},\quad + \eta_c=\frac7{22253827054}. +\] +Both deficits exceed $12\cdot2^{-36}$ and $\log m<12$. +The guard calculation has +$B=s_c+64(W_c+m+1)^3$ with $m^{10}6$. The tensor depth remains +three and the endpoint weight remains $27$. These observations explain +why the symbolic construction is a plausible extension; the counting +certificate alone does not certify that extension or its implementation. + +\section{A certified discrete optimum} +For the stated admissible family ($h\ge7$, $h\ne9$, and both +$L_b,L_cA(h)$ for all other admissible +integers $h$. It compares rational logarithm enclosures for $h<200$, +and bounds the infinite tail as follows: +\[ + \eta_b<\frac1{3z_bm},\qquad + A(h)\le\frac{-\log(1-\eta_b)}{\log m} + <\frac1{3z_bm-1}\quad(h\ge200). +\] +Both $z_b$ and $m$ increase with $h$, and the bound at $200$ is already +below the certified lower bound for $A(46)$. + +For $1\le x\le2$, the logarithm enclosures use +\[ + z=\frac{x-1}{x+1},\quad + 2\sum_{j=0}^{J-1}\frac{z^{2j+1}}{2j+1} + \le\log x\le + 2\sum_{j=0}^{J-1}\frac{z^{2j+1}}{2j+1} + +\frac{2z^{2J+1}}{(2J+1)(1-z^2)}. +\] +Integer logarithms are reduced using +$\log m=k\log2+\log(m/2^k)$. +This proves an optimum for a common recurrence exponent within these +counting formulas. It does not optimize separate $\tau,\sigma$, altered +tensor depth, different networks, or the full space of multiplication algorithms. + +\section{Rational parameters and variable stopping exponent} +The sharper rational choice +\[ + a=\frac9{500000000000},\qquad L=\frac{5743}{500} +\] +is certified at $h=46$: both exact rank deficits exceed $aL$, and the +logarithm enclosure above with $J=24$ proves $\log(97336)\max\{\lambda,\sigma+\beta(1-\sigma)\}$. + +The initial row preprocessing remains $O(V\log d)$. The depth is at most +$\lceil\log_m d\rceil$ and each leaf has $e\le d$, so the same row +padding and guard-depth bounds apply. For $\beta=u/v$ the stopping test +is the exact integer comparison $e^v0. +\] +Both endpoints exceed $1-a$. The leaf inequality is +$1-a/1000<1-998a^2/1000$, which holds since $998a<1$. +The dimension and guard requirements hold because $\epsilon\kappa. +\] +Here $g_1,g_6>1/2$, $g_5>1/8$, $g_4>a/2000$ and $g_7>a/2$; +all exceed $G$. The other side conditions in the dependency section hold +by substitution. Put $\rho=G-\kappa>0$. Every fixed logarithmic factor +is eventually at most $p^\rho$, giving +$p^{1-G}(\log p)^{O(1)}=O(p^{1-\kappa})$. +\end{proof} + +Two simpler intermediate witnesses are also supplied: +\[ +\begin{array}{c|c|c|c|c|c} +\kappa&\beta&\epsilon&c&\lambda&\lambda'\\\hline +2^{-109}&1/2&3a/4&a/2&1-3a^2/4&1-a^2/2\\ +2^{-108}&3/4&3a/4&3a/4&1-7a^2/8&1-3a^2/4 +\end{array} +\] +Their minimum margins are respectively $3a^3/8$ and $9a^3/16$, +strictly above the listed $\kappa$. Each patch updates the rational +integer-power setup, network comparison, and final absorption argument. + +\section{A ceiling for further parameter tuning} +This ceiling allows variable $\beta$ and unequal $\tau,\sigma$, but retains +the stated network rank bounds and seven-margin accounting. +Write $a=1-\tau$. Since $g_4>0$, we have $\epsilona_b. +\] +Thus both the internal and leaf exponents are strictly below +$\lambda'$, and the displayed gaps between $\tau,\lambda,\lambda'$ +absorb fixed logarithmic factors. The precision guard has +$C_1=6/5-\beta/5+\zeta$ and $1-\epsilon C_1>0$. +Compact control allows $c=1$; its reservation exponent is zero and +$1-\epsilon(1+c)=1-2\epsilon>0$ gives $K=o(\ell)$ with $K=d$. + +For the retained Gaussian parameters +$\alpha=\lfloor\sqrt{b/(8d)}\rfloor$ and +$\gamma_G=2d\alpha^2\le b/4$, the same positive $1-2\epsilon$ +ensures the eventual conditions $b\ge64d^2$, $\alpha^2\theta_i\ge1$, +and prime-interval growth. Use the corrected chirp input bound +$F=2^{\lceil1.14\alpha^2\rceil}$; the following section proves that +$P=34p$ still suffices. The retained target errors and final rounding +therefore apply. + +The seven assembly savings are the exact rational numbers +\[ +\begin{aligned} + g_1&=1-2\epsilon,&g_2&=\epsilon a_b,& + g_3&=\epsilon(a_b-2/10^{20}),\\ + g_4&=(1-\epsilon)a_b,&g_5&=1-\delta-2\epsilon,& + g_6&=1-\delta-\epsilon,&g_7&=\epsilon. +\end{aligned} +\] +Writing $b_0=a_b/(2+a_b)$ gives $g_1=g_2=b_0$, +$g_3=b_0-2\epsilon/10^{20}$, $g_4>b_0$, +and $g_5=b_0-\delta$. Since $\delta>2\epsilon/10^{20}$, +$g_5$ is the least of the seven. Exact rational subtraction gives +\[ + \min_i g_i-\kappa + =\frac{a_b}{2+a_b}-\frac1{10^{16}} + -\frac{942293}{500000000000} + >\frac{44822}{10^{17}}>0. +\] +All retained parameter conditions are strict with this choice; in +particular the finite arithmetic certificate evaluates the complete +29-condition interface and these seven margins with rational arithmetic. +The final positive gap absorbs remaining logarithmic factors, proving +the claimed bound in the retained model. +\end{proof} + +The count and moment data are finite arithmetic certificates for the +specified producer and common-basis construction. The theorem's use of +the pinned analytic interfaces and its fixed rational basis preparation +is separate from checking those integers and rational inequalities. diff --git a/references/stopped-recursion/pr107/notes/partial-swap-basis.tex b/references/stopped-recursion/pr107/notes/partial-swap-basis.tex new file mode 100644 index 0000000000..2c54b85c42 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/partial-swap-basis.tex @@ -0,0 +1,206 @@ +\subsection{The ordinary projector corner} +For a rank-$j$ projector in dimension $h$ with $j>h/2$, put $r=h-j$. +In a generic rational basis its first-$r$/last-$r$ corner is invertible: +one witness pairs these coordinates in rank-one blocks +$\frac12\left(\begin{smallmatrix}1&1\\1&1\end{smallmatrix}\right)$ +and is the identity on the middle $h-2r$ coordinates. Similarity of +rational projectors with the same rank proves that the relevant minor +is a nonzero rational function of the basis. + +Write $I-P=XY$, $YX=I_r$. The corner is $-X_LY_R$, so $X_L,Y_R$ are +invertible. Eliminating it leaves on the middle coordinates +\[ + I-X_MY_M-(-X_MY_R)(-Y_R^{-1}X_L^{-1})(-X_LY_M)=I_{h-2r}. +\] +The resulting lower-lower profile is $r$ singleton pivots and one +contiguous block of width $2j-h$. For $j\le h/2$ retain $j$ singleton +pivots; for $j=h$ use one block of width $h$. The last is still smaller +than the full tensor dimension $m$. Nonzero scalings are absorbed in +the triangular factors. This argument is also the large-projector +identity used in the controlled corners below. + +\subsection{Inner boundary prescriptions} +Use $F_1=\mathbb Q^{25}$, $F_2=\mathbb Q^{23}$, $F_3=\mathbb Q^{57}$, +$H=575$ and $m=32775$. For physical inner index $i=23\alpha+\beta$ set +\[ + K=T_2(I_{25}\otimes L_2),\qquad + T_2(u\otimes e_\beta)=J_\beta u\otimes e_\beta, + \qquad J_\beta=M_\beta L_1, +\] +where $L_1,L_2$ are free invertible rational bases. Put $n=82$, +$I=(0,\ldots,24)$, $\Sigma=(0,\ldots,6)$ and +\[ + R=[I,\Sigma,I,I],\qquad C=[I,I,\Sigma,I]. +\] +For $ih/2$ it is +$h-j$ singletons and one width-$(2j-h)$ block; otherwise it is $j$ +singletons. Width-one blocks are folded into +$c_1=179603173231020$. These prescriptions define every $c_t$ exactly, +without a separate choice of producer histogram. Their rank sum is +\[ + \sum_t c_tt=s=Wm-2N+2L. +\] +All widths are strictly less than $m$. Define +\[ + \Psi(x)=\frac{\sum_tc_tt^x}{Wm^x},\qquad + a_b=\frac{188459}{50000000000},\quad \tau=1-a_b. +\] +For completeness the exact rational enclosure used for the certificate +is as follows. For $1\le y\le2$, put $z=(y-1)/(y+1)$ and +\[ + L(y)=2\sum_{j=0}^{23}\frac{z^{2j+1}}{2j+1} + +\frac{2z^{49}}{49(1-z^2)}\ \ge\log y. +\] +Extract powers of two in $m/t$ and round the resulting upper logarithm +up to a multiple of $10^{-12}$, calling it $\ell_t$. +Since $e^u\le1+u+u^2/(2(1-u/3))$ for $0\le u<3$, +\[ + \Psi(\tau)\le\sum_t\frac{c_tt}{Wm} + \left(1+a_b\ell_t+\frac{(a_b\ell_t)^2}{2(1-a_b\ell_t/3)}\right) + <1-6.1778\times10^{-14}. +\] +The first inequality follows termwise from +$(t/m)^{1-a_b}=(t/m)\exp(a_b\log(m/t))$; the final comparison is an +exact rational certificate. Together with the integer-width and row +construction below, it supplies the retained interchange interface with +exponent $\tau$. diff --git a/references/stopped-recursion/pr107/notes/partial-swap-complex.tex b/references/stopped-recursion/pr107/notes/partial-swap-complex.tex new file mode 100644 index 0000000000..98c343640a --- /dev/null +++ b/references/stopped-recursion/pr107/notes/partial-swap-complex.tex @@ -0,0 +1,153 @@ +\subsection{Five macro classes and the internal histogram} +Keep the retained complex producer with +\[ + h=28,\quad v=3276,\quad m=21952,\quad N=v^3=35158608576, + \quad R_c=93838, +\] +\[ + B=v^2(R_c+29)=1007397164592,\qquad + W=2N+2B=2085111546336. +\] +The 29 center roles are included. The whole-residual macro classes are +\[ +\begin{array}{c|rrrrr} + t&21896&21168&21141&756&729\\\hline + n_t&B&B&2N&B-N&3N +\end{array} +\] +and before internal batching the remaining singleton count is +$91318626008064$. The per-invocation internal histogram, indexed from +zero, is +\begin{small}\begin{align*} + H_c=[&13776,93912,23891,21224,31667,13552,9128,9240,10912,5656,\\ + &8456,4284,7598,4872,7448,4536,7803,4228,8232,4872,7482,7224,\\ + &5901,8400,11550,1512,5180,0,87]. +\end{align*}\end{small} +It satisfies $\sum_r rH_c[r]=2629900=28(R_c+29)+2\cdot28\cdot29$. +For each $r\ge2$, replace $3v^2rH_c[r]$ singleton rank units by +$3v^2H_c[r]$ width-$r$ children. All five macro counts remain unchanged. +The resulting singleton count is $n_1=9668617358400$, and +\[ + \sum_tn_tt=45772350635112192. +\] + +The retained residual basis map puts all $r$ directions into a contiguous +prefix. Their $rf$ selected axes are one child. If directional signs +differ, the exact identity $C^{-1}=-iZCZ$ gives +\[ + \bigotimes_{j=1}^r(C^{\varepsilon_j})^{\otimes f} + =(-i)^{f|B_-|}Z_{B_-}C^{\otimes rf}Z_{B_-}. +\] +The two address-sign passes and fourth-root phase cost $O(V)$, make no +recursive call, and contribute only a fixed number of coefficient +operations per value. This also covers the uniform-sign internal +residuals; it does not assume that arbitrary binary residual directions +always have identical signs. + +Set $a_c=417/100000000$, $\sigma=1-a_c$. Using the same rational +logarithm upper bounds $\ell_t\ge\log(m/t)$ as for the bit moment, +\[ + \mathcal C(\sigma)=\frac1W\sum_t n_t(t/m)^\sigma + \le\sum_t\frac{n_tt}{Wm}\frac1{1-a_c\ell_t} + <1-2.3982\times10^{-11}. +\] +All denominators are positive. The bound $e^u\le(1-u)^{-1}$ for +$0\le u<1$ makes the final comparison entirely rational. + +\subsection{A uniform dependency-path guard} +The retained scalar path argument counts both orientations of frame +edges and paths changing wires at a gate: the total residual rank on +one arithmetic dependency path is at most $q=m+6h=22120$. +Take $\rho=6/5$. The exact integer inequality $160000^5160000$, and at most one residual can exceed $q/2$. +If it is 21896, the remaining rank is at most 224; no 729- or +756-residual fits, so all remaining ranks are at most 28. Hence +\[ + \sum_{\text{path}}(r/m)^\rho + <(391/392)^{6/5}+448/160000 + <0.996941+0.0028<\gamma:=4999/5000. +\] +The middle bound can be checked rationally from +$(1-u)^{6/5}\le1-6u/5+3u^2/(25(1-u))$, at $u=1/392$. +If the large residual is 21168 or 21141, the remaining rank is at +most 979 and remaining widths at most 756; since $756^{1/5}<4$, +\[ + \sum_{\text{path}}(r/m)^\rho<27/28+4\cdot979/160000<0.989. +\] +If none of those three large residuals occurs, every residual is at +most 756 and the bound is $4q/160000<0.554$. Thus $\gamma$ is uniform +for the five macro classes and all internal children together. + +Stop at width $e0$ put +\[ + C_1=\rho-(\rho-1)\beta+\zeta,\qquad + C_0=\left\lceil128m(1+1/\zeta)C_{\rm dep}\right\rceil, + \qquad \Delta=\lceil C_0d^{C_1}\rceil. +\] +The retained elementary-depth induction, including reserved axes, +outer phases and conversion, then gives $p+\Delta$ fractional bits +and $\Delta+3$ integer/sign bits. If $\epsilon C_1<1$, their width +is $O(p)$. + +\subsection{Rows, stopping, and transfer to the layer interface} +Let $t_*0. +\] +Before the initial inverse-stage copy, raise the physical $Y$ data +frame to its common starting frame $D_0$ and copy with both roles at +$D_0$. This moves an existing enlargement earlier; all later frames +contain $D_0$. The direct auxiliary entrance replaces the split entrance +with equal rank mass. It gives exactly $B_2$ copies of class A4 and +$2N$ copies of A5 in the following table. diff --git a/references/stopped-recursion/pr107/notes/partial-swap-note.tex b/references/stopped-recursion/pr107/notes/partial-swap-note.tex new file mode 100644 index 0000000000..5799f6a1fe --- /dev/null +++ b/references/stopped-recursion/pr107/notes/partial-swap-note.tex @@ -0,0 +1,94 @@ +\documentclass[11pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage[T1]{fontenc} +\usepackage{lmodern,amsmath,amssymb,amsthm,mathtools,booktabs,longtable,microtype} +\usepackage[hidelinks]{hyperref} +\setlength{\emergencystretch}{3em} +\allowdisplaybreaks +\newtheorem{theorem}{Theorem}[section] +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\title{Partial-swap frames for integer multiplication\\ +\large Retained triples, controlled blocks, and exact conditional assembly} +\author{icekylinx\\\small With substantial OpenAI GPT-6 Astra and Codex assistance} +\date{8 October 2026} +\begin{document} +\maketitle +\begin{abstract} +We record the selected $(25,23,57)$ retained-triple construction, its +rational partial-swap compiler, compatible carrier histograms, controlled +contiguous blocks, and the strengthened complex recurrence. Subject to the +pinned upstream analytic and fixed-tape interfaces, the exact parameters give +$T(n)=O(n(\log n)^{1-\kappa})$ with +$\kappa=942293/500000000000=1.884586\times10^{-6}$. +The finite arithmetic certificates check counts and inequalities; they are +not a formal verification or an implementation of a complete multiplication +machine. The common-basis step is a rational generic-existence proof. +\end{abstract} + +\section{Scope and attribution} +The computational model is a fixed finite-alphabet multitape Turing machine. +Every finite network, basis, prime, and tape count is fixed independently of +the input length. The bit payload field is $\mathbb F_2$; its address +geometry is rational and is subsequently reduced at a suitable odd prime. +These two fields have different purposes. The complex payload consists of +Gaussian dyadics and uses the retained binary address-label interface. + +The retained framework is Douglas Colkitt's compact-control construction +\cite{main}, with Bortlesboat's alignment \cite{pr2}, eumemic's complex +producer and Gaussian resampling \cite{pr3,pr5,pr6}, dleen's retained totals +and stage sharing \cite{pr4}, and Zhihao Chen's finite-network contribution +\cite{pr7}, pinned at +\texttt{6725c6a17b17871a35353fd29157f4ed851bc114}. +The upstream multiplication manuscript is pinned at +\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a} \cite{upstream}. +The partial-swap and selected retained-triple development is by icekylinx, +with substantial OpenAI GPT-6 Astra assistance; review and integration used +OpenAI Codex assistance. Prior contributions retain their attribution and +licenses in \texttt{NOTICE} and \texttt{SOURCES.json}. +This submission extends icekylinx's bulk-recursion PR~\#10 \cite{pr10}, +pinned at \texttt{62691e395a0458ce089a1c7b5d89e74291e95e29}; its +parameterized mixed-width and corrected Gaussian arguments are retained +below with the new construction and constants. + +\section{Partial swaps and the retained scalar producer} +\input{notes/partial-swap-construction.tex} +\section{One controlled rational basis} +\input{notes/partial-swap-basis.tex} +\section{Integer widths and complete bit rows} +The following retained generic mixed-width proof is used with the new +partial-swap child list. Its ordered-affine passes are the triangular +wrappers proved above; a contiguous partial permutation is implemented +directly by an interchange. None of the older numerical moment values is +used. +\input{notes/batched-bit-rows.tex} +\section{Complex residuals and the precision guard} +\input{notes/partial-swap-complex.tex} +\section{Exact conditional assembly} +\input{notes/partial-swap-assembly.tex} +\section{Gaussian input-error correction} +\input{notes/chirp-scaling-correction.tex} + +\begin{thebibliography}{10} +\bibitem{upstream} OpenAI. \emph{Integer multiplication below $n\log n$}, +result family \#109. \url{https://github.com/openai/math}. +\bibitem{main} Douglas Colkitt. \emph{A sharper exponent for integer +multiplication}. Main commit +\texttt{6e564879f51ae16f23d392e9e196c605f36d90df}. +\url{https://github.com/CrocSwap/integer-mult-bounds}. +\bibitem{pr2} Bortlesboat. Alignment contribution. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/2}. +\bibitem{pr3} eumemic. Compressed complex network. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/3}. +\bibitem{pr4} dleen. Retained totals and stage sharing. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/4}. +\bibitem{pr5} eumemic. Faster Gaussian resampling. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/5}. +\bibitem{pr6} eumemic. Aligned circuit and cheaper centers. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/6}. +\bibitem{pr7} Zhihao Chen (jacklightChen). Ternary five-subset networks. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/7}. +\bibitem{pr10} icekylinx. Bulk recursion and controlled projector blocks. +\url{https://github.com/CrocSwap/integer-mult-bounds/pull/10}. +\end{thebibliography} +\end{document} diff --git a/references/stopped-recursion/pr107/notes/prime-field28-construction.tex b/references/stopped-recursion/pr107/notes/prime-field28-construction.tex new file mode 100644 index 0000000000..21ce20f336 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/prime-field28-construction.tex @@ -0,0 +1,260 @@ +\subsection{A five-subset interchange motif over $\mathbb F_3$} +Let $h=28$, $\mathcal T=\binom{[h]}5$, $v=98280$, $m=h^3=21952$, +and $N=v^3$. Scalars in the interchange network lie in $\mathbb F_3$. +Use the rational address-label space +\[ + F=\mathbb Q^h,\qquad H=I-\frac2{25}J. +\] +Its exceptional eigenvalue is $1-2h/25=-31/25$, so it is nondegenerate. +For the indicator $t_T$ of a five-set, +\[ + \langle t_S,t_T\rangle=|S\cap T|-2,\qquad + \langle t_T,t_T\rangle=3. +\] +Neighbors have intersection two. For every pair $C\in\binom{[h]}2$, retain +\[ + A_C=\sum_{T\supset C}x_T,\qquad + D_{C,E}=\sum_{T=C\cup U,\ U\cap E=\varnothing}x_T + \quad\left(E\in\binom{[h]\setminus C}3\right). +\] +Scatter $\sum_{C\subset S}A_C$ to $y_S$ and inject +$-\sum_{C\subset S}D_{C,S\setminus C}$. A source and target with intersection +$k$ have coefficient $\binom{k}{2}-[k=2]$ modulo three. For $0\le k\le5$ +this is $[k=5]$. Thus their combined map is the identity. + +\paragraph{Cancellation-free triple exclusion.} +The local producer works with a polynomial of degree at most three whose +monomials have disjoint formal source supports. Pair its point indices. +Aggregate a monomial according to the set of pairs it touches, and recurse +on those pair indices. To exclude a set $E$ of at most three points, let $G$ +be its touched pair indices. Begin with the coarsened sum excluding $G$. +For every nonempty subset $K$ of the surviving partners in the pairs $G$, +add the contraction that selects exactly $K$ there and avoids the remaining +pairs of $G$. These cases partition the permitted monomials. +A one-point contraction has degree at most two and uses the repository's +weighted paired-exclusion recursion. A two-point contraction is a weighted +vector exclusion, and a three-point contraction is one original coefficient. +At at most four points direct summation supplies the base case. The exported +producer checks all $\binom{26}3=2600$ output coefficient vectors exactly. +Retaining the total adds twelve ancestors to its 41427 active additions. + +For each common pair, order the intact global pairs first and place the +partners of its removed points last. Identify equal source supports across +these local producers, retaining an existing decomposition, then remove +unused ancestors. Source-support cardinality strictly increases at every +addition, so this identification cannot create a cycle. There are 11240978 +addition nodes and $q=10v+\binom h2=983178$ designated output uses before +the next compression. + +An addition shared between different common pairs has actual source +intersection of size three or four. In the first case its support is specified +exactly by the common three-set and a bit vector of remaining pairs; in the +second by the common four-set and a bit vector of remaining points. +These are exact keys, with full equality comparison after hashing. Nodes +with common intersection of size two belong to a unique local context. +Consequently the global enumeration does not rely on probabilistic hashes. + +\paragraph{Resynthesizing four-point stars.} +For each four-set $B$, extract every sum of $x_{B\cup\{u\}}$ used by a node +outside that star or by a designated output. Replace the entire star +subgraph by a cancellation-free circuit for precisely those sums. A +reproducible greedy common-subexpression rule combines the pair of current +terms that occurs in most requested sums; ties are broken by increasing +support cardinality, union mask, and operand masks. An already constructed +union is reused. Every maintained expression is a partition of its requested +support. Thus each replacement addition is disjoint and each boundary +coefficient vector is unchanged. + +Canonical ordering puts intact global pairs before the remaining partners. +The 20475 stars require 365 distinct templates. The independent C++ checker +verifies both operands and their disjointness at every template gate and +checks every required boundary sum against the independently reconstructed +global DAG. This replaces 3006276 additions by at most 2623060. Hence the +complete producer has at most +\[ + c=10857762,\qquad q=983178,\qquad R=c+q=11840940 +\] +reversible auxiliary roles. The bound remains valid if a replacement creates +unused nodes: delete them and after stage sharing, pad by untouched auxiliary roles with source +matrix zero and sink matrix $I_m$ when exact width is wanted. + +\paragraph{Nondegenerate source spans.} +Label every producer node by the rational span $U$ of its source indicators. +Each retained node, including every replacement star node, has a common +pair $\{a,b\}$. Every vector $u\in U$ satisfies +$u_a=u_b=t$ and $\sum_i u_i=5t$, so +\[ + u^{\mathsf T}Hu=\sum_{i\notin\{a,b\}}u_i^2. +\] +If the right side vanishes, $\sum_{i\notin\{a,b\}}u_i=3t$ gives $t=0$. +Thus $U$ is positive definite. Along every addition edge source supports +and their spans are nested. Every side-output source meets its target in +exactly two points, so $U\subset t_S^\perp$. Orthogonal complements supply +the increasing labels in the reversed computation as in the shared-point +construction. No binary orthonormal-basis condition is imposed on these +rational labels. + +The retained total $A_C$ has source span of dimension $h-2$. Indeed, its +coordinates outside $C$ are the indicators of all triples on $h-2$ points, +which span the whole rational coordinate space: differences of triples give +all coordinate differences, and any triple has nonzero coordinate sum. +The two coordinates on $C$ are both one third of the outside coordinate sum. + +\paragraph{Transparent retained-total schedule.} +The retained-total wrapper follows PRs~\#4 and~\#6; the paired input ordering +follows the aligned common-point idea in PR~\#2. Use the outgoing-use/pivot +compiler on this addition DAG. Its invertible +mixer $L$ uses one role per addition plus one per output use. Write $V$ for +source copy, $R_0$ for retained-total scatter, and $J$ for the negative side +injection. In chronological order apply +\[ + L,-R_0,-J,L^{-1},V,L,R_0,J,L^{-1},-V. +\] +For arbitrary initial auxiliary vector $z$, this subtracts $(R_0+J)Lz$, +adds $(R_0+J)L(z+Vx)$, restores $z$, and changes the target by $x$. +Its inverse gives the inverse shear. The three tensor stages send +$(X,Y)$ to $(-Y,X)$; a final pointwise negation on $X$, at its existing full +frame, produces the exact exchange and adds zero edge rank. + +Use the original prefix decomposition $A=B\perp P$ and future line $Q$. +Set $D_0=(B\otimes F)\otimes Q$, $D_1=(A\otimes F)\otimes Q$, and +$D_U=D_0\perp(P\otimes U\otimes Q)$. Early mixers and scatters have frame +$D_0$, the source copy its source-line frame, the middle mixer $D_U$, the +retained scatter $D_0$, the side injection its target-complement frame, +and cleanup $D_1$. Only the retained output roles decrease, from $D_U$ to +$D_0$, by $h-2$ each. In the inverse schedule the retained scatter is at +$D_1$ and the following inverse mixer uses $D_{U^\perp}$, giving the same +loss. The source and target data boundaries are the original tensor-stage +boundaries. Thus total decreasing dimension is +\[ + L_{\rm b}=3v^2\binom h2(h-2). +\] + +\paragraph{Sharing first- and third-stage banks.} +An explicit neighbor permutation $\pi$ of the five-sets is obtained by +pairing the ground points. For a set containing no full pair, keep the two +singletons in its least indexed pairs and flip its other three singletons. +For one full pair, keep it and flip the three singletons. For two full pairs, +flip the singleton, and move the unordered pair of full-pair indices to the +next edge of a fixed Euler circuit of the complete graph on the other +thirteen pair indices. That graph has even degree twelve. Its Euler edges +are distinct, consecutive edges meet in exactly one vertex, and their cyclic +successor is a bijection. The three cases preserve their classes and all +have $|T\cap\pi(T)|=2$. + +Match the stage-1 bank with fixed coordinates $(A,B)$ to the stage-3 bank +with fixed coordinates $(B,\pi(A))$, keeping local role indices. Each +invocation restores arbitrary auxiliary inputs. The joining labels are +\[ + E=F\otimes\langle t_A\rangle\otimes\langle t_B\rangle, + \qquad H=(\langle t_B\otimes t_{\pi(A)}\rangle)^\perp\otimes F. +\] +Orthogonality in the middle factor gives $E\subset H$. Their dimensions +are $h$ and $m-h$. Replacing the separate endpoint edges by this join +removes one role and exactly $m$ rank units, preserving the absolute deficit. +All roles retain the required source/sink matrices. Therefore +\[ + W_{\rm b}=2v^2(v+R)=230640858616896000, + \quad s_{\rm b}=W_{\rm b}m-N+2L_{\rm b} + =5063027748645128371200. +\] +The extra $N$ source ranks come from the unchanged negative source projections. +Consequently +\[ + \eta_{\rm b}=\frac{W_{\rm b}m-s_{\rm b}}{W_{\rm b}m} + =\frac{39}{520019360}> + \frac3{400000000}\frac{9997}{1000}, + \qquad \log(21952)<\frac{9997}{1000}. +\] +\begin{proposition}\label{prop:prime-field-bit-interface} +The fixed $\mathbb F_3$ circuit exchanges the two data banks, restores every +auxiliary input, and satisfies the all-role rational endpoint identity with +width $W_{\rm b}$ and rank sum $s_{\rm b}$ above. Its interchange exponent is +$\tau=1-3/400000000$. +\end{proposition} +\begin{proof} +The scalar schedule, nested rational frames, bank matching and negative +source projections just established give the interface. The strict +rank-ratio comparison and the finite-alphabet argument below give the exponent. +\end{proof} + +\paragraph{Finite-alphabet interchange.} +The address radix in the rational-shear construction is still the fixed +prime chosen to avoid the rational matrix denominators; it is unrelated to +the payload field $\mathbb F_3$. Represent original bits as payload symbols +zero and one. Recursive role streams may contain symbol two. Address +permutations commute with pointwise $\mathbb F_3$ gates exactly as they do +with XOR gates, and all local gates are fixed finite tables. At completion +the corrected scalar permutation restores the original payload symbols. +Thus the all-role endpoint identity and the recurrence +$F_k\le(s_{\rm b}/W_{\rm b})F_{k-1}+O(1)$ hold over this fixed alphabet. +There is no conversion between binary and ternary numerical addresses and +no multiplicative per-level encoding cost. Existing record streams may be +processed bit-position by bit-position with this fixed payload alphabet. + +\subsection{Paired triple exclusion on the complex side} +Keep the triple-based complex motif, binary labels, coefficient ring, and +injection rule of eumemic's PR~\#3. Replace only its disjoint producer by +the paired weighted-triple circuit above, now at $h=28$. Transfer its nodes +with coordinate labels, and recursively split any injected node covering +all points outside its target, exactly as in PR~\#3. The pair-star correction +and its labels are unchanged. Every addition is disjoint; the original +coordinate, input-line and pair-star residual proofs apply unchanged. +The full finite check gives 61022 additions, 32816 injected pieces and +$R_{\rm c}=93838$ roles per invocation. + +Share complete stage-1 and stage-3 auxiliary banks, including centers, as +in dleen's PR~\#4. The triple permutation flipping every point to its partner +has even intersection with its input. The join $E\subset H$ above therefore +holds over $\mathbb F_2$. A tensor of coordinate units outside $B$ in its +first and third factors belongs to $H\cap E^\perp$ and has norm one. +Its nonzero residual is nonalternating and has an orthonormal basis. +The phase interface and weight-27 endpoint corrections are unchanged. +With $v_{\rm c}=3276$ and $m_{\rm c}=21952$, +\[ + W_{\rm c}=2v_{\rm c}^2(v_{\rm c}+R_{\rm c}+h+1)=2085111546336, + \quad L_{\rm c}=3v_{\rm c}^2h(h+1), + \quad s_{\rm c}=W_{\rm c}m_{\rm c}-2v_{\rm c}^3+2L_{\rm c}. +\] +Here $\eta_{\rm c}=5/12693352>(39/10^9)\cdot10$ and +$\log m_{\rm c}<10$, giving $\sigma=1-39/10^9$. +\begin{proposition}\label{prop:prime-field-complex-interface} +The paired complex network satisfies the retained binary phase interface, +including arbitrary auxiliary inputs and all endpoint corrections, with the +constants $m_{\rm c},W_{\rm c},s_{\rm c}$ above and $\sigma=1-39/10^9$. +\end{proposition} +\begin{proof} +The unchanged local binary residual proofs apply to the new disjoint +producer, the verified injection splits, and the pair-star correction. +The preceding norm-one join witness covers bank sharing. Telescoping and +the retained weight-27 corrections therefore give the interface, and the +strict logarithm comparison gives the exponent. +\end{proof} +The normalized gate coefficients remain in $\{0,\pm1,\pm1/2\}$. +The scalar gate count is $3v_{\rm c}^2(4(61022+3276)+4v_{\rm c}+4)$, +less than $12W_{\rm c}$; the retained stopped-depth guard applies with these +new constants, subject to its separately checked finite inequalities. + +\subsection{Conditional assembly at $2^{-28}$} +Combine these two finite interfaces with the compact-control movement and +stopping guard and with eumemic's fast Gaussian resampling in PR~\#5. +Take +\[ +\begin{aligned} + \epsilon&=\frac{4999}{10000}, & c&=\frac{9999}{10000}, & \beta&=\frac{19}{25},\\ + \lambda&=1-\frac{749}{10^{11}}, & + \lambda'&=1-\frac{748}{10^{11}}, & \delta&=10^{-6},\\ + \zeta&=10^{-4}, & C_1&=\frac{19601}{10000}, & + \kappa&=\frac{373}{10^{11}}>2^{-28}. +\end{aligned} +\] + +With compact-control packed and reserved-axis exponents, every constraint +is strict. The smallest of the seven assembly margins is +\[ + g_3=\frac{934813}{250000000000000},\qquad + g_3-\kappa=\frac{2313}{250000000000000}>0. +\] +This is a conditional asymptotic exponent claim under the same retained +fixed-tape, analytic and numerical interfaces, not a full formalization of +integer multiplication and not a practical running-time measurement. diff --git a/references/stopped-recursion/pr107/notes/projector-batching.tex b/references/stopped-recursion/pr107/notes/projector-batching.tex new file mode 100644 index 0000000000..c4e3984390 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/projector-batching.tex @@ -0,0 +1,152 @@ +\subsection{Batching a large-rank projector edge} +\label{sec:projector-batching} + +The usual matrix-shear compiler uses one smaller interchange per rank +unit. For a projector of rank close to the ambient dimension, most of +these pivot interchanges can instead be one interchange of two +contiguous longer fields. The construction below does not gather +separated fields or reverse their digits. + +\paragraph{A simultaneous rational change of basis.} +Let $\mathcal P$ be a fixed finite family of rational idempotents of +dimension $m$. For $P\in\mathcal P$ with +$m/20$. On the first and last $r$ coordinates take $r$ disjoint +rank-one blocks +\[ + \frac12\begin{pmatrix}1&1\\1&1\end{pmatrix}, +\] +pairing coordinate $i$ with $m+1-i$, and take the identity on the middle +$t$ coordinates. This is a rational rank-$a$ idempotent whose indicated +corner is invertible. Hence the determinant of that corner of $SPS^{-1}$ +is not the zero rational function of the entries of $S$. Clear powers +of $\det S$ from its denominator. The product of the resulting nonzero +polynomials for the finite family, and $\det S$, is nonzero over +$\mathbb Q$. A nonzero polynomial over the infinite field $\mathbb Q$ +cannot vanish at every rational point. This proves simultaneous existence. + +The choice is effective: enumerate integer matrices and retain the first +invertible one satisfying all the indicated rational determinant tests. +This search terminates. The family and $m$ are fixed, so this finite +calculation is part of the fixed-machine preparation. Conjugate every +terminal and gate matrix by this same $S$. Common gate matrices, +every edge rank, the scalar circuit, and the endpoint identity are +preserved, since $SIS^{-1}=I$. The address prime is then chosen after +this conjugation and the triangular factorizations, avoiding their +finitely many denominators and invertible diagonal numerators as in the +original construction. + +Only the edges selected for batching need belong to $\mathcal P$. +All other matrices can continue to use the original rank-by-rank +compiler. In the present finite network, every selected edge is a +nonzero scalar multiple of an idempotent: for nested nondegenerate +labels $U\subset V$, +\[ + (P_V-P_U)^2=P_V-P_U, +\] +and reversing the edge only changes its sign. Scalar multiples do not +change the pivot locations and are absorbed into the triangular factors. + +\paragraph{The contiguous middle pivots.} +Let $P^2=P$ have rank $a>m/2$, let $r=m-a>0$, and assume its +first-$r$-row, last-$r$-column corner is invertible. Split the ordered +coordinates into +\[ + L=[1,r],\qquad M=[r+1,m-r],\qquad R=[m-r+1,m]. +\] +The complement $Q=I-P$ has rank $r$. Write $Q=UV$, where $U$ has +$r$ columns, $V$ has $r$ rows, and $VU=I_r$. Such a factorization +comes from a basis of $\operatorname{im}Q$. As $L$ and $R$ are disjoint, +\[ + P_{L,R}=-U_LV_R. +\] +Its invertibility makes both square matrices $U_L,V_R$ invertible. + +Run the lower-lower elimination in the retained physical order. Its +first $r$ pivots occupy the rows $L$ and the columns $R$, in some +permutation. Indeed their corner is invertible, so at each of these +steps the next row has a nonzero entry in an as-yet active column of +$R$, which precedes all other candidates in the rightmost-pivot rule. +The active Schur complement on rows $M\cup R$ and columns $L\cup M$ +has middle block +\begin{align*} + P_{M,M}-P_{M,R}P_{L,R}^{-1}P_{L,M} + &=I-U_MV_M + -(-U_MV_R)(-V_R^{-1}U_L^{-1})(-U_LV_M)\\ + &=I_{m-2r}. +\end{align*} +Thus the next $m-2r$ pivots are precisely the diagonal positions +$(i,i)$ with $i\in M$. Columns $L$ lie to their left and are cleared +by the allowed lower-triangular column operations. The remaining +block has rank zero, because the number of isolated pivots is already +$r+(m-2r)=m-r=a$. + +Consequently the factorization $P=E_1\Pi E_2$, with $E_1,E_2$ +invertible lower triangular, has exactly $r$ corner pivots and one +contiguous identity block of size +\[ + t=m-2r=2a-m. +\] +The same conclusion holds for $cP$ with any fixed nonzero rational $c$. +No assertion that an arbitrary rank-$a$ matrix has this pivot profile +is needed; the idempotent identity is what makes the middle block +exactly an identity matrix. + +\paragraph{One call for the identity block.} +Subdivide each original contiguous chunk into $m$ consecutive fields +of width $b$. The triangular factors still cost $O(V)$ in the retained +later-field affine primitive. Each of the $r$ corner pivots uses one +ordinary width-$b$ interchange. For all $i\in M$ together, perform +\[ + D_i\leftarrow D_i+H_i, + \qquad + (H_M,D_M)\leftarrow(D_M,H_M), + \qquad + D_i\leftarrow H_i-D_i, +\] +over $\mathbb Z/q^b\mathbb Z$. +The first and last maps are coordinatewise later-field updates, each +using a fixed number of linear scans. The middle map is a single +interchange of the two contiguous width-$tb$ chunks $H_M,D_M$. +It preserves the order of their $b$-digit fields and hence implements +all diagonal pivots exactly. The intervening fields are spectators. +In particular, addition is componentwise modulo $q^b$, not addition +with carries across the concatenated width-$tb$ chunks. + +The edge cost therefore has $r$ recursive calls of width $b$ and one +of width $tb$, in place of $a$ calls of width $b$, with the same +$O(V)$ nonrecursive work. If $a=m$, one may leave the edge in its +original $m$-singleton form. This avoids any same-width recursion. +For every batched edge in this paragraph, $0\max\{\tau,\sigma\}$, $\epsilon<1/12$, +$\epsilon C_1=20/21<1$, and $0<\delta<1/8$. +The seven margins are +\begin{align*} + g_1&=1-\tfrac1{21}(1+9a/10),& + g_2&=\epsilon ca=\tfrac{3a^2}{70},\\ + g_3&=\epsilon(1-\lambda')=\tfrac{3a^2}{70},& + g_4&=a(1-\epsilon)=\tfrac{20a}{21},\\ + g_5&=\tfrac14-\delta-\tfrac32\epsilon=\tfrac{13}{112},& + g_6&=1-\delta-\epsilon=\tfrac{299}{336},\qquad + g_7=\tfrac1{21}. +\end{align*} +Here $g_1>1/2$, and each margin other than $g_2,g_3$ exceeds $G$. +For $\rho=G-\kappa>0$, every fixed power of $\log p$ is eventually bounded +by $p^\rho$. The same final absorption argument applies. +\end{proof} + +For the audited network saving $a=9/500000000000$, +\[ + G=\frac{243}{17500000000000000000000000} + \approx1.38857\cdot10^{-23}>2^{-76} + \approx1.32349\cdot10^{-23}. +\] +This is a fourfold increase in the supplied $\kappa$ from $2^{-78}$. +The recipe improves the available minimum margin over $a^2/80$ by exactly +$24/7$. It transfers to stronger primitive exponents if they satisfy the +same interfaces and guard bound; it does not construct such primitives. + +\section{Composition and dependency audit} +The earlier variable-threshold proof applies for every fixed rational +$0<\beta<1$. At an internal node $e\ge d^\beta$, the packed overhead is +$O(e^{\tau(1+c/\beta)}+1)$. The geometric sum is bounded by $O(e^\lambda)$. +Leaves contribute $O(e^\sigma d^{\beta(1-\sigma)})$; the logarithmic number +of base-$m$ pieces is absorbed by $\lambda'$. +For the present threshold the exact stopping test is $e^{10}0$ for $u\ne0$. +The preceding proposition therefore applies, including after cross-group +sharing. The physical reversible roles are compiled afresh from this graph; +they are not obtained by identifying simultaneously occupied scratch slots. + +For completeness, if a graph has $c$ additions and $q$ output uses, it has +$2c+q$ outgoing uses in total. Input gates allocate one role per use, and each +addition identifies its pivot input with one outgoing role. The resulting +invertible gather-and-fanout product $L$ uses $c+q$ roles. With $V$ the source +copy, $J$ the output injection, and $G,R$ the retained central operations, use +\[ + L,\ J,\ L^{-1},\ R,\ V,\ G,\ R,\ L,\ J,\ L^{-1},\ G,\ V. +\] +The two side injections sum to $JLz+JL(z+Vx)=JLVx$, and the final cleanup +restores arbitrary scratch $z$. Centers are also restored. Since $JLV+RG=I$, +each invocation is the original bank shear. The reversed invocation uses the +reversed inverse schedule and the complement frames just proved. + +The only decreasing transitions remain the original central returns, of total +dimension $L_{\rm dec}=3v^2h^2$. Every auxiliary role starts at $D_0$ and ends +at $D_1$, so the previous bijective first/third-stage sharing, including centers, +still applies without changing its joining labels. Thus +\begin{align*} + W_{\rm b}^{\rm shared}&=2N+2v^2(R+h)=252137288620800,\\ + s_{\rm b}^{\rm shared}&=W_{\rm b}^{\rm shared}m-N+6v^2h^2 + =24542034552800107200,\\ + W_{\rm b}^{\rm shared}m-s_{\rm b}^{\rm shared}&=572394081600. +\end{align*} +\begin{proposition}[Cross-group shared-computation bit interface] +\label{prop:shared-point-bit-interface} +The shared-point bit network exchanges the scalar banks, restores arbitrary +auxiliary inputs, and satisfies the original all-role endpoint identity with +$W_{\rm b}^{\rm shared}$ roles and total edge rank $s_{\rm b}^{\rm shared}$. +\end{proposition} +\begin{proof} +The scalar and frame arguments above preserve the original stage boundaries. +Forward, inverse, forward shears exchange the banks. All surviving auxiliary +roles have endpoint matrices zero and $I_m$ and are fixed by the exchange. +Telescoping gives $W_{\rm b}^{\rm shared}m-2N+2L_{\rm dec}$ total absolute +label change, and the unchanged rational source correction adds $N$. +The original common-frame and rational-shear transfer applies; all graphs, +bases, and gates are fixed finite data. +\end{proof} + +\subsection{Explicit rational bounds for the shared-point recurrences} +Put $a_{\rm b}=203/10^{11}$, $a_{\rm c}=9/500000000000$, and $L_0=5743/500$. +The exact comparisons are +\[ + \eta_{\rm b}^{\rm shared}=\frac{27}{1157655136}>a_{\rm b}L_0, + \qquad \eta_{\rm c}=\frac7{22253827054}>a_{\rm c}L_0. +\] +Together with the retained logarithm enclosure $\log m1-x$ for $x>0$, these imply the required strict recurrence bounds with +\begin{equation}\label{eq:explicit-motif-exponents} + \tau=1-\frac{203}{10^{11}},\qquad \sigma=1-\frac9{500000000000}. +\end{equation} diff --git a/references/stopped-recursion/pr107/notes/shared-point-note.tex b/references/stopped-recursion/pr107/notes/shared-point-note.tex new file mode 100644 index 0000000000..2c342a4ee7 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/shared-point-note.tex @@ -0,0 +1,69 @@ +\documentclass[11pt]{article} +\usepackage[T1]{fontenc} +\usepackage{lmodern,amsmath,amssymb,amsthm} +\usepackage[margin=1in]{geometry} +\usepackage[hidelinks]{hyperref} +\newtheorem{proposition}{Proposition} +\title{Complement frames and sharing across common-point groups} +\author{Douglas Colkitt\thanks{Prepared with assistance from OpenAI Codex. +This is not independent review or endorsement by OpenAI.}} +\date{October 7, 2026} +\begin{document} +\maketitle +\begin{abstract} +Orthogonal complements of forward source spans supply the reversed-stage +frames, allowing equal intermediate sums from different common-point groups +to be shared. The new conditional saving is $\kappa=13\cdot2^{-66}$, +a factor $13/8$ above the preceding $2^{-63}$ witness. This is a small +refinement and a reusable transfer lemma, not an exponent in the 50s or an +optimality claim for general finite networks. +\end{abstract} +\section{Scope} +This note extends the preceding shared-computation and rectangle constructions. +It retains their reversible embedding, central network, and first/third-stage +auxiliary matching, and the unchanged interfaces of OpenAI's +\emph{Integer multiplication below $n\log n$}, pinned at +\begin{center}\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}.\end{center} +The fixed finite-alphabet, fixed finite number of one-dimensional tapes model, +complex network, numerical maps, and rounding are unchanged. The accompanying +independent upstream patch includes the preceding constructions in full. +\input{shared-point-construction.tex} +\section{Conditional exponent and checks} +With $a=203/10^{11}$ use +\[ + \epsilon=1/21,\quad \beta=9/10,\quad c=9a/10,\quad + \lambda=1-19a^2/20,\quad\lambda'=1-9a^2/10, + \quad\delta=1/16,\quad C_1=20. +\] +The existing exact constraint checker gives +\[ + \min_j g_j=\frac{3a^2}{70} + =\frac{17661}{10^{23}}>\frac{13}{2^{66}}. +\] +This strict margin absorbs the fixed logarithmic factors in the retained +assembly argument. The resulting conditional bound is +$O(n(\log n)^{1-13\cdot2^{-66}})$. + +Every retained addition is checked by exact source-support comparison in local +pair coordinates. Equal sums from different groups are decoded by their fixed +pair and variable vertices. Both directions of frame inclusion are checked on +every compiled physical role. Small complete invocations are independently +expanded on every input basis vector, including every dirty-scratch input, +and a full small three-stage model checks bank exchange and scratch sharing. +The written complement-frame proof supplies the rational interpretation of +these checks. They do not formally verify the upstream theorem. + +The artifacts are \path{scripts/shared_point_circuit.py}, +\path{scripts/shared_point_network.py}, +\path{certificates/shared-point-network.json}, and +\path{patches/h46-shared-point.patch}. + +\section{What this does and does not open up} +For this particular finite graph, the retained necessary inequality +$\kappa0. +\end{align*} +The relative deficit increases because the absolute deficit is preserved while +the denominator decreases. The resulting new relative deficit is +\[ + \eta_{\rm b}^*=\frac9{29015910268}. +\] +This changes a network hypothesis of the previous fixed-network tuning bound; +it does not contradict that bound. + +\section{Conditional multiplication witness} +Put +\[ + a=\frac{27}{10^{12}},\qquad a_{\rm c}=\frac9{500000000000}, + \qquad L=\frac{5743}{500}. +\] +The existing exact logarithm certificate proves $\log maL$. Therefore +$m^{1-a}>m(1-aL)>m(1-\eta_{\rm b}^*)$. +The unchanged complex network supports $\sigma=1-a_{\rm c}$ as before. +Choose +\begin{gather*} + \tau=1-a,\quad \sigma=1-a_{\rm c},\quad + \epsilon=\frac1{21},\quad \beta=\frac9{10},\quad c=\frac{9a}{10},\\ + \lambda=1-\frac{19a^2}{20},\quad \lambda'=1-\frac{9a^2}{10},\quad + \delta=\frac1{16},\quad C_1=20. +\end{gather*} +The packed condition is $\tau(1+c/\beta)=1-a^2<\lambda<\lambda'<1$. +The separate conditions involving $\sigma$ follow from +$19a^2/202^{-75}, +\] +with $g_1>1/2$, $g_4=20a/21$, $g_5=13/112$, $g_6=299/336$ and +$g_7=1/21$, all larger than $G$. +For $\rho=G-2^{-75}>0$, the existing strict-gap argument absorbs fixed +logarithmic factors and yields $O(n(\log n)^{1-2^{-75}})$ conditionally. + +The dimension exponent, stopping threshold and guard bound match the 2$^{-76}$ +tuning note. Thus the guard is $p^{20/21}=o(p)$, +$\alpha=\Theta(p^{23/84})$ and $\gamma=O(p^{25/42})=o(p)$. +The enlarged chunk has $K=\Theta(p^{3a/70})$, still $K=o(\ell)$ and +$K/\log p\to\infty$, where $\ell=\Theta(p^{20/21})$. +Record length remains superpolynomial. The bit-network change affects only +finite constants in its fixed-tape implementation; the complex network, its +arithmetic guard analysis, the numerical maps and final rounding are retained. +No appeal is made to the separate recurrence refinement, which had assumed +$\sigma\le\tau$; here $\sigma>\tau$ and the original layer inequalities pass. + +\section{Artifacts and review boundary} +The companion repository supplies an exact parameter and count certificate, +a standalone patch, and finite checks: +\begin{itemize} +\item \path{scripts/reuse_network.py} and \path{certificates/stage-reuse.json}; +\item \path{patches/h46-shared-side-75.patch}; +\item \path{tests/test_reuse_network.py}. +\end{itemize} +The matching is checked on every one of the 15,180 triples at $h=46$. +Small rational projection checks verify the orthogonality used in the nesting +argument. A complete $h=6$ scalar model checks the bank exchange and restoration +of 151,200 auxiliary roles with nonzero initial values. These +finite tests support the written proof; they do not independently establish the +upstream algorithm or its time bounds. No global optimality claim is made. +\end{document} diff --git a/references/stopped-recursion/pr107/notes/stopped-guard.tex b/references/stopped-recursion/pr107/notes/stopped-guard.tex new file mode 100644 index 0000000000..da5ea40785 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/stopped-guard.tex @@ -0,0 +1,67 @@ +\subsection{A guard bound using the actual stopping depth} +\label{sec:stopped-guard} +The complex network is still evaluated exactly until a complete normalized +butterfly layer is finished. Write $W=W_{\rm c}$ and $s=s_{\rm c}$ for that +network, and retain +\[ + E=64(W+m+1)^3,\quad B=s+E,\quad C_0=128mB^2. +\] +At $h=50$ the exact values are +\[ + m=125000,\quad W=369474390296480000,\quad + s=46184298777878576000000, +\] +so $m\ge3$ and $2\le s0$, this follows from the last internal size +$e/m^{j-1}\ge d^\beta$; for $j=0$ it is immediate. Hence +\[ + s^j\le s\,d^{5(1-\beta)},\qquad + A(e)\le8d^\beta s^j+E\sum_{i2r_j^{t_j}$ gives depth at most +$t_j\lceil\log_2\max(2,e)\rceil$ plus a fixed constant. +The new coarse bit family has $(t_j,\operatorname{bitlength}W_j)=(16,28)$, +the ordinary leaf family $(9,28)$, and the complex family $(17,28)$. +The required reserve is the product of all three stocks: +\[ + Q=W_c^{D_c}W_b^{D_b}W_{\rm old}^{D_{\rm old}}. +\] +After the complex and coarse divisions, the old stock remains available +to every peeled-atom or stopped-leaf call. Sequential copies and outer +ordinary wrappers reuse restored rows; they introduce no independent +row factor. The combined coefficient is +\[ + 16\cdot28+9\cdot28+17\cdot28=1176, + \qquad4000-\frac{51}{25}\,1176=\frac{40024}{25}>0. +\] +Thus the retained logarithmic comparison, for eventual $e\le Cp$, +supplies a sufficient $p^{4000}$ stock including the fixed constants. +Use one physically preceding transformed prefix and one complete-row +padding, as in \path{notes/structured-bulk-assembly.tex}. Complete +spectators and parked fields are preserved by every descendant. +The suffix condition +$b_{\rm in}^{1-\epsilon}>16000(\log_2b_{\rm in}+8)$ is eventual +for every fixed $\epsilon<1$. + +\subsection{Analytic transfer and selected parameters} +The retained analytic proof map in +\path{notes/structured-bulk-assembly.tex} supplies the active-masked +arbitrary-source router with paid repair scans, the rounded phase-cell +inverse, persistent bulk halos with original period cuts, sequential +overlap tapes and factor pages, prime packing and exact recovery. +The new ordinary bit primitive has precisely the arbitrary-width, +complete-spectator and restored-row contract consumed by that router. +The new complex primitive supplies the exact completed tensor contract +on one common grid. Its outer grid conversions add only logarithmic +work. The changed finite implementations therefore meet the same +analytic interfaces, including the full bulk bound +\[ + O\!\left(Tp\left[p^\tau\operatorname{polylog}p+ + d\operatorname{polylog}p+dp^\delta+w_G^2p^\delta+ + dw_G^2p^\delta/L\right]\right)+n^{o(1)}, +\] +where $L=2^{\lceil8\log_2p\rceil}$, Gaussian band width +$w_G^2=O(p^{1-r})$, and normalization retains $\epsilon+r<1$. +Here $w_G$ is unrelated to the address atom width. + +Use the proved ordinary bit saving $a_b=803380799/10^{13}$ and complex +saving $b=1949/25000000$. To instantiate the retained assembly, weaken +the bit parameter explicitly to +\[ + \beta=10^{-6},\qquad + a=(1-\beta)b-10^{-10}=\frac{1948995551}{25000000000000}6.6129027953\times10^{-11}>0. +\] +The strict gaps absorb fixed logarithms, including the common-grid +conversions. The stopped atom recurrence supplies the ordinary +interchange interface, the rational-center construction supplies the +exact complex interface, and the product stock supports all nested +recursions. The unchanged analytic transfer then proves the stated +bound, with its constructive setup, descriptor and catalogue domination, +prime-existence and exact-recovery thresholds retained as eventual +conditions. +\end{proof} diff --git a/references/stopped-recursion/pr107/notes/stopped-product-complex.tex b/references/stopped-recursion/pr107/notes/stopped-product-complex.tex new file mode 100644 index 0000000000..4a9037137c --- /dev/null +++ b/references/stopped-recursion/pr107/notes/stopped-product-complex.tex @@ -0,0 +1,137 @@ +\subsection{All-disjoint retained centers} +Use two factors $h=24$. For triple inputs write $G=\sum_TX_T$, +$T_i=\sum_{T\ni i}X_T$, and retain all $A_i=G-T_i$. +Each input triple avoids exactly 21 points, so +\[ + \sum_{i=1}^{24}A_i=21G,\qquad G=\frac1{21}\sum_i A_i. +\] +For a target triple $S$ the central correction is +\[ + G-\frac12\sum_{i\in S}A_i + =\frac{\sum_{i\in S}T_i-G}{2}. +\] +An input triple meeting $S$ in $j$ points has central coefficient +$(j-1)/2$. Adding half the disjoint sum and subtracting half the +intersection-two sum leaves coefficient one exactly when $j=3$. +The scalar source-to-scatter transfer is therefore the identity. +The transparent old-value subtraction and new-value addition use this +identity only on fresh contributions and restore arbitrary old values. + +The base-two paired exclusion and aligned pair-star producer retains +nested binary labels: common-pair supports have their orthonormal triple +span, other ordinary sums have their coordinate cover. Each retained +$A_i$ has the nondegenerate coordinate hyperplane excluding $i$, +of dimension 23. Hence all copied-center arguments and general +nondegenerate binary residuals of the preceding proof apply. The +selected local counts are +\[ + v=2024,\quad c_h=45764,\quad q_h=8120,\quad + |\mathcal M|=8966,\quad R=44918,\quad\ell=552. +\] +The old internal histogram, starting at rank zero, is +\begin{small}\begin{align*} +[&8930,49042,30844,15972,11883,8272,6399,4356,6682,2263,\\ + &5109,1808,5317,1733,5391,1757,4908,3290,6233,4363,\\ + &4056,264,564,24,24]. +\end{align*}\end{small} +It has rank mass $24R+2\ell$. Replace 24 rank-24 original transitions +by 24 rank-one transitions; all rank-23 copied transforms remain. +The new mass is $24R+\ell$. + +\subsection{Physical endpoints and strict complex moment} +The copied-center two-stage complex contract in +\path{notes/copied-centers-complex.tex} is unchanged by the scalar +center decoding. For the tensor triple line $U$, let +$T=C_U$, $F=C_I$, $E=C_{U^\perp}=FT^{-1}$. +The two data outputs are $A=-Fy$ and $B=FT^{-2}x+Ey$. +Add $T^{-1}$ applied to a copy of $A$ into $B$, paying one rank-one +child per data pair. The inherited input/output $Z$ phases and +$i^{9f}$ scalar normalize $FT^{-2}$ to $F$; sign and bank corrections +complete the exact tensor $C$. Auxiliary source/sink operators remain +$C_{D_0}$ and $FC_{D_0}$ in the second stage. Every original role +therefore returns the exact selected-axis tensor operation on arbitrary +inputs. This algebraic statement holds over $\mathbb Q(i)$ as well as +over Gaussian dyadics. + +With $m_c=576$, $N_c=v^2=4096576$, $B_c=vR=90914032$, put +\[ + W_c=2N_c+2B_c=190021216,\quad L_c=2v\ell=2234496, +\] +\[ + s_c=W_cm_c-N_c+L_c=109450358336,\qquad N_c-L_c=1862080. +\] +The complete list is $2B_c$ width-552 auxiliary exteriors, +$2N_c$ width-529 data macros, $2vH'_r$ width-$r$ internal children, +$4N_c$ width-23 data fronts, and $N_c$ width-one endpoint copies. +These disjoint classes include both kinds of paid copies and sum to +$s_c$. All binary residuals, including alternating forms, use the retained +one-child Gauss normal form with paid bit adapters and unit phases. +At $a_c=1949/25000000$ the exact rational enclosure gives +\[ + \sum_r\frac{n_r}{W_c}(r/m_c)^{1-a_c} + <1-1.3338373969\times10^{-10}. +\] + +\subsection{One exact odd-denominator grid} +The only new odd divisor is 21. Let $d$ bound the root axis count, +$D$ bound its maximum complex recursion depth, and $G_0$ bound the +number of grouped scalar operations per node. Choose +\[ + K=G_0(D+1),\qquad \text{common grid }2^{-P}21^{-K}. +\] +Root inputs and arbitrary dirty auxiliaries start Gaussian dyadic. +Multiply their integer numerators by $21^K$ once at the outer boundary. +Every local coefficient contains at most one factor 21 in its denominator, +so a local finite program adds at most $G_0$ to the odd-denominator +exponent. A completed $u$-axis child has Gaussian-dyadic coefficients +and therefore preserves its input's existing odd-denominator exponent; +it adds no new odd factor. Only the active chain of unfinished calls +can accumulate new factors. Its length is at most $D+1$, proving that +all intermediates lie on the common grid and every local division by +21 is an exact integer division of its encoded numerator. + +This divisibility claim uses the root dyadic-input invariant, not an +assumption about arbitrary numerators on the finest grid. Internal values +may have odd denominators. They are neither rounded nor re-encoded when +a child returns. At the completed outer return the operator is the exact +Gaussian-dyadic tensor on root dyadic inputs, so the final numerators +are divisible by $21^K$; exact unscaling restores dyadic encoding. + +Since the largest child is $552<576$, $D=O(\log d)$ and +$K=O(\log d)$ with fixed constants. Constant-divisor long division +is linear in numerator length. Initial and final scaling by $K$ +successive constant multiplications/divisions cost $O(V\log d)$ and +occur only at the outer boundary. The extra numerator length is +$O(\log d)$, preserving the retained $O(p)$ word bound. This overhead +is subordinate to the positive-power complex layer bound. + +For explicit semantic constants use +\[ + g_h=4(c_h+v)+10v+4hv+4h^2+8h+8=408200, +\] +\[ + G_0=N_c+2v(g_h+2h)=1656684480, +\] +where endpoint additions and copied-center scalar work are included. +The complete child contributes at most $u$ binary denominator bits +and row-norm factor $2^u$, with no additional odd exponent. A local +21-division contributes fewer than five denominator-height bits, +covered by the fixed scalar charge. Set +\[ +\begin{aligned} + E_0&=64(W_c+m_c+G_0+1)^3=403063477262941121443761178688,\\ + \mathcal E&=2G_0W_c^2+8s_c+4W_c+4+32m_c\\ + &=1196393335930350962702877484.2909639537\times10^{-10}. +\] +It uses the retained 24-term positive atanh-series logarithm enclosure, +its geometric tail, range reduction and upward rational exponential +bound. Also $\mu_1=s_b/(W_bm_b)<1$. These are the two gaps used below. diff --git a/references/stopped-recursion/pr107/notes/stopped-product-interface.tex b/references/stopped-recursion/pr107/notes/stopped-product-interface.tex new file mode 100644 index 0000000000..20c44ce486 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/stopped-product-interface.tex @@ -0,0 +1,95 @@ +\subsection{Paid atom adapters and remainders} +Expand each fixed lower-triangular formal factor into unit scalings and +additions from earlier to later formal fields. Execute intrabank targets +in descending formal-field order, so earlier controls still have their +required original values. Every atom update reads only physically earlier +controls. In a cross-bank shear the update is +\[ + D_{i,t}\leftarrow D_{i,t}+k_{ij}H_{j,f-1-t}. +\] +Even with the reversed source index, the source lies in the earlier head +bank. The retained ordered-affine streaming primitive applies to each +ordinary width-$w$ atom update, costing $O(V)$ per pass. +There are $O(f)$ passes per fixed matrix and thus $O(Vn)$ per finite +node. The reversed control is an indexed earlier atom, not a reversed +field operation. Atom loops use binary descriptors on a fixed tape set; +all inactive digits remain complete spectators. The inherited parking +schedule never scans through parked ancestors, and polynomial descriptor +work is absorbed by the complete stream volume. + +For $n=m_bf+\delta$, $0\le\deltaa_b$, the paid adapter term is strictly lower order. +All bounded widths use the old interface. Numerical padding of a binary +chunk range to the least suitable radix-$q$ range has volume factor +below $q^2$; it preserves numerical order and is removed after the +completed ordinary wrapper, whose endpoint is ordinary interchange. + +If external rows are unavailable, use the inherited ordinary high-digit +borrowing construction from \path{notes/batched-bit-rows.tex}. +Borrow $O(\log e)$ high digits, exchange and join them into a preceding +row field, pad that field once, act on the body, and separate the high +parts. It applies literally to the completed ordinary wrapper; no claim +about borrowed high positions is made for an unwrapped reversed call. +Single-digit moves cost $O(V\log e)$, and small widths use the old +algorithm. Atom indices and rational coefficients are finitely specified; +the algorithm uses the same fixed tape set and complete spectator ranges. diff --git a/references/stopped-recursion/pr107/notes/stopped-product-note.tex b/references/stopped-recursion/pr107/notes/stopped-product-note.tex new file mode 100644 index 0000000000..a8b23254c8 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/stopped-product-note.tex @@ -0,0 +1,76 @@ +\documentclass[11pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage[T1]{fontenc} +\usepackage{lmodern,amsmath,amssymb,amsthm,mathtools,booktabs,longtable,microtype} +\usepackage[hidelinks]{hyperref} +\setlength{\emergencystretch}{3em} +\allowdisplaybreaks +\newtheorem{theorem}{Theorem}[section] +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\title{A conditional integer-multiplication saving of $194869/2500000000$\\ +\large Stopped product-ring interchange and rational retained centers} +\author{icekylinx\\\small With substantial OpenAI GPT-6 Astra and Codex assistance} +\date{9 October 2026} +\begin{document}\maketitle +\begin{abstract} +A common rational basis and opposite bank orders reduce each projector +residual to one contiguous reversed child over a fixed atom product ring. +Ordered atom adapters are paid explicitly; stopping at a growing atom +width and using the retained ordinary primitive supplies an ordinary +bit interface. An independent 24-dimensional complex producer uses +rational retained-center decoding on one exact common grid. The selected +interfaces and retained semantic/bulk assembly give the conditional bound +$T(n)=O(n(\log n)^{1-\kappa})$, where +$\kappa=194869/2500000000=0.0000779476$. +\end{abstract} + +\section{Scope and retained dependencies} +The model is the retained fixed finite-alphabet multitape Turing machine. +Finite graphs, rational bases, address primes, coefficient tables and tape +counts are fixed independently of input length. Bit payload arithmetic is +binary, while its address geometry is rational and then evaluated on atom +rings. Complex payloads use exact Gaussian rational arithmetic with the +specified common grid; their address labels remain binary. + +The proof predecessor is icekylinx's merged copied-center PR36, +\texttt{11817ccacb564bb7f98789c20dc11d3fece207e3}, whose proof is +\path{notes/copied-centers-note.tex}. Its ordinary interchange saving +$a_{\rm old}=384599/10^{10}$, copied-center schedule in both orientations, +two-stage data and auxiliary endpoint identities, general binary residual +normal form, and fixed-tape complete-row contracts are retained. +The present opposite-bank factorization, stopped product-ring interface, +rational-center specialization and exact composition are by icekylinx, +with substantial OpenAI GPT-6 Astra assistance and Codex integration. +Earlier own contributions include PR10 batching, PR18 partial swaps, +PR24 endpoint gauges and PR32 structured blocks and semantic composition. + +Aurel Prosz (Paureel) supplies the two-stage topology and paid endpoint +copy, with Swapnil Jain's linked development credited by Zhihao Chen's +PR29. The retained leaf proof also credits Rohan Arun's PR31 corner method +and Dominik Scholz's PR33 parameterization. Zhihao Chen's PR21/23 and the +RaD/hipotures PR20 source provide the phase endpoints, semantic guard, +arbitrary-source routing, phase-cell inverse and bulk locality/tape +interfaces. Their pinned proof map remains in +\path{notes/structured-bulk-assembly.tex}; adopted sources and notices are +in \path{references/semantic-bulk/} and \path{references/copied-centers/}. +The underlying Douglas Colkitt framework, OpenAI manuscript, eumemic, +Bortlesboat, dleen, earlier finite contributions and Harvey--van der Hoeven +analytic work retain their credits and recorded AI assistance in +\texttt{NOTICE} and \texttt{SOURCES.json}. + +The conclusion remains conditional on those analytic, ordered-affine, +exact-recovery and machine interfaces and their eventual setup and +prime-existence thresholds. The new algebraic and tape constructions +below establish the changed finite interfaces; exact arithmetic certifies +their selected counts and margins. + +\section{One reversed child for each projector} +\input{notes/stopped-product-factorization.tex} +\section{Stopped atom recursion and ordinary interchange} +\input{notes/stopped-product-interface.tex} +\section{Rational centers and exact semantic precision} +\input{notes/stopped-product-complex.tex} +\section{Product rows and exact assembly} +\input{notes/stopped-product-assembly.tex} +\end{document} diff --git a/references/stopped-recursion/pr107/notes/structured-bulk-assembly.tex b/references/stopped-recursion/pr107/notes/structured-bulk-assembly.tex new file mode 100644 index 0000000000..9bd11d88d2 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/structured-bulk-assembly.tex @@ -0,0 +1,275 @@ +\subsection{Literal scalar charge and linear semantic precision} +This adapts the completed-child argument of RaD and PR23 +\cite{rad,pr23} to the selected complex circuit. Its grouped scalar +operation count is bounded by +\[ + G=\sum_{i=1}^3\frac{N_c}{v_{h_i}} + \bigl[4(c_{h_i}+v_{h_i})+10v_{h_i}+4h_iv_{h_i} + +4h_i^2+8h_i+8\bigr] + =120574759558400. +\] +Four mixer sweeps use $4(c_h+v_h)$ groups; counting inputs as mixer +groups only enlarges the bound. Two source copies and two four-side +injections use $10v_h$. Four expanded center gather/scatter maps fit +in $4hv_h$, and the remaining terms cover center decoding and scalar +normalizations. Orientation matching does not add a new scalar map. +Each group has at most $W_c$ inputs and outputs, fixed bounded +coefficients, and at most seven extra denominator bits. A charge +$2W_c^2$ per group bounds both magnitude and denominator excess. +Define fixed integers +\[ +\begin{aligned} + E&=64(W_c+m_c+G+1)^3,\qquad B=s_c+E,\qquad C_0=32m_cB^2,\\ + \mathcal E&=2GW_c^2+8s_c+4W_c+4+32m_c2r_j^{t_j}$. Exact integer comparisons give +\[ + (t_b,t_c)=(399,832),\qquad + (r_b,r_c)=(34500,35970),\qquad W_b,W_c<2^{43}. +\] +Then $D_j(e)=t_j\lceil\log_2 e\rceil$ bounds recursive depth using +a conservative global width bound. Nested bit adapters require +\[ + Q=W_c^{D_c(e)}W_b^{D_b(e)}. +\] +A bit adapter consumes its own factor temporarily inside a complex +node and restores it before the next complex child. Both factors are +reserved simultaneously. + +Apply individual $C$ kernels once to a physically preceding prefix of +$q_0=\lceil\log_2Q\rceil$ selected axes, retaining their complete +chunks. If fewer axes exist, execute the whole call elementarily. +Otherwise that prefix gives $R\ge Q$ complete rows; pad once to +$Q\lceil R/Q\rceil<2R$. Descendants inherit full active, control, +spectator and inactive fields. Their all-role return restores appended +zero rows to zero, allowing their eventual removal. The prefix remains +in its preceding position and is not transformed again by descendants. + +For eventual $e\le Cp$, $p\ge C$ and $\log_2p\ge25$, +\[ + \log_2Q\le\frac{51}{25}K\log_2p, + \qquad K=43(399+832)=52933. +\] +The sufficient stock is $p^{108000}$, since +$108000-(51/25)K=417/25>0$. The supplementary suffix condition +\[ + b_{\rm in}^{1-\epsilon}>432000(\log_2b_{\rm in}+8) +\] +holds eventually for every fixed $\epsilon<1$. These stocks and the +literal scalar bound instantiate the complete-row proofs in +\path{whole-complex-concatenation.md} and +\path{whole-complex-prefix-and-wrapper-qualification.md}, located in +the RaD report directory cited below. + +Stop complex recursion below $d^\beta$. The potential equal to relative +logical volume times $e^\sigma$ contracts by the strict complex +characteristic. Hence total elementary leaf work has exponent +$\sigma+\beta(1-\sigma)$. Since $\tau>\sigma$, paid bit-adapter work +sums geometrically with exponent $\tau$; compact reservations have +exponent $\max(1-c,0)$. All remainders and scans are retained, and +unequal child depths require no extra assumption. + +\subsection{Adopted analytic and tape proof map}\label{sec:transfer} +PR23's retained composition proof is +\path{references/semantic-bulk/pr23/semantic-bulk-17-note.tex}. +The underlying RaD files below are in +\path{references/semantic-bulk/rad20/reports/}. +They supply analytic and machine arguments, rather than finite-network +counts. The files beginning with \texttt{review-} are retained for their +written mathematical derivations; their historical titles do not assert +a new external audit of this result. + +\paragraph{Coordinate routing.} +\path{compact-arbitrary-source-routing.md} proves active-masked +arbitrary-source XOR routing on complete rectangular streams. Its +four-update identity restores temporary and guard digits before source +reload. The actual modular rotations are bijections; exceptional records +are corrected by $TS^{-1}$ at their current addresses using stable +reinsertion into the marked holes. Every extraction, reinsertion and +rewind is paid using the local density bound. Three untouched reservoirs +partition a matching, and two matchings implement a coordinate +permutation. Short coefficient records receive a separate complete +spectator of width $\Theta(p^{1-\epsilon})$ through original chunk +interchanges. With the selected arbitrary-width bit contract, the cost +is $O(Vp^\tau\operatorname{polylog}p+\operatorname{poly}p)$; the +short-width fallback requires $\epsilon>a_b$. + +\paragraph{Rounded phase-cell inverse.} +\path{downstream-phase-cell-inverse.md}, with the elimination and error +arguments in \path{review-reusable-banded-inverse.md} and +\path{review-phase-cell-inverse.md}, constructs one global rounded +matrix $H$. Its diagonal is exactly one, gap at least $1/(8p)$, +and inverse row norm at most $8p$. Within a physical phase cell it +is exactly a diagonal similarity of a width-truncated Toeplitz matrix. +Similarity weights are computable downward approximations with a +four-ulp allowance; their ratio perturbation is explicitly bounded. +Short Gohberg--Semencul convolutions, ordered Schur complements and +rounded banded boundary solves have $O(p)$-bit online coefficients. +Exact rational setup is reused once per axis and costs $n^{o(1)}$. +An unconditional conventional multiplier handles the short convolutions. +With $\alpha^2=\Theta(p^r)$, the band obeys $w^2=O(p^{1-r})$. +The normalized inverse has norm at most $1/8$, and its normalization is +\[ + \gamma=d\bigl(2\alpha^2+\lceil\log_2(32p)\rceil+1\bigr). +\] +Thus $\epsilon+r<1$ remains essential. The retained disk and exact +recovery error interfaces are discharged by these rounded-map bounds, +including their logarithmic normalization. + +\paragraph{Bulk locality and fixed tapes.} +\path{downstream-microbox-resampling.md} takes principal restrictions +of that same global rounded $H$. For a width-$w$ matrix, powers below +$J$ cannot carry a core row across an artificial boundary more than +$Jw$ away. The two Neumann tails bound the difference by +$32p\,2^{-J/(16p)}$. Choose $J=512p^2$, target core length +$L=2^{\lceil8\log_2p\rceil}$, and halo $A=4096p^3$. +Then the error is below $2^{-16p}$. Require the eventual complement +condition $s_i>2(L+2A+2w)$ and preserve each original physical period +cut in every lifted window. Restricted normalized maps retain norm +headroom, so tensor errors add in row norm without a volume factor. + +\path{bulk-resampling-tape-transfer.md} implements those windows by +sequential tape operations. Near-one source halos fit into $L$ slots +using $L\ge64dA$ and the retained capacity $T/S<2$. +Target halos persist with length $L+2A$ and total volume at most +$T(1+2A/L)^{d-1}<2T$. Only the currently moved short field receives +temporary binary padding. Alternating overlap tapes emit windows +monotonically; ordered factor pages are scanned and reused over +complete spectator fields. Crop an axis only after its own inverse +completes, retaining halos on the remaining axes. Final ordered cores +restore the original prime-box row order. This yields +\[ + O\!\left(Tp\left[p^\tau\operatorname{polylog}p + +d\operatorname{polylog}p+dp^\delta+w^2p^\delta + +\frac{dw^2p^\delta}{L}\right]\right)+n^{o(1)}. +\] +Every term is represented in the final inequalities below. + +\paragraph{Prime supply and complete assembly.} +The prime argument recorded in the banded-inverse derivation and PR23 +uses Baker--Harman--Pintz \cite{bhp}: sufficiently large $x$ has a prime +in $[x-x^{21/40},x]$. Packing $d$ disjoint such intervals into the +required window is ensured by $12d^2a_b$, +so the internal paid-adapter exponent is $\tau$, and both internal +and leaf exponents are strictly below $\lambda'$. +The exact certificate evaluates 47 strictly positive constraints: +primitive and stopping ranges; the orderings of $\tau,\sigma, +\lambda,\lambda'$; compact reservation $c>q$, geometry and +superlogarithmic fields; $\epsilon<1$ for precision, row suffix and +prime packing; $\epsilon+r<1$ and +$\epsilon>(1-r)/2$ for normalization and cell/band separation; +the phase-local, boundary, short-record and artificial-boundary +allowances; the literal scalar and product-row gaps; and each of the +seven absorption margins. The explicit definitions above are used in +those comparisons, without floating-point parameter selection. + +The seven savings are +\[ +\begin{array}{c|c} +\text{operation}&\text{saving}\\\hline +\text{original prefix}&1-\epsilon(1+c)\\ +\text{coordinate movement}&a_b\\ +\text{compact phase layer}&\epsilon q\\ +\text{bulk exposure}&a_b\\ +\text{Gaussian arithmetic}&\min(1-\epsilon-\delta,r-\delta)\\ +\text{scalar work}&1-\epsilon-\delta\\ +\text{dimension}&\epsilon +\end{array} +\] +Their exact minimum is $g$, and the prefix margin equals $g+\eta$. +The two Gaussian terms are paid separately in their displayed minimum; +the bulk artificial-boundary term has positive additional slack +$8-\epsilon+r-\delta-g$. In exact rational arithmetic, +\[ + g=\frac{6261864812144051252373}{500012523729812144048747627}, +\] +\[ + g-\kappa= + \frac{94455653180082150647362759} + {100002504745962428809749525400000000000} + >9.4453287365\times10^{-13}>0. +\] +All fixed logarithms are absorbed by these strict gaps. The constructive +setup, catalogue domination, prime existence and retained analytic +recovery have their additional eventual thresholds. This proves the +stated conditional bound in the fixed-tape model. +\end{proof} diff --git a/references/stopped-recursion/pr107/notes/structured-bulk-bit.tex b/references/stopped-recursion/pr107/notes/structured-bulk-bit.tex new file mode 100644 index 0000000000..fe13b87bf4 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/structured-bulk-bit.tex @@ -0,0 +1,227 @@ +\subsection{Retained scalar and partial-swap contract} +The bit payload is $\mathbb F_2$; its address geometry is rational and +is later reduced at a suitable odd prime. Let $v_h=\binom h3$ and use +$H_h=I-J/9$ on triple indicators. Their inner product is +$|S\cap T|-1$, so intersection-one lines are orthogonal and each line +has norm two. The retained paired exclusion producer computes the +side sums and the $h$ point totals. Its scalar copy, reversible mixer, +and scatter maps satisfy $JLV=I$. The chronological dirty-scratch word +\[ + L,\ J,\ L^{-1},\ V,\ L,\ J,\ L^{-1},\ V +\] +adds $JLz+JL(z+Vx)=x$ and restores every arbitrary auxiliary value $z$. +Three alternating data shears implement exchange. The positive source +envelopes and selected compatible enlargements make all required +projector differences nondegenerate. Carrier reuse joins only nested, +properly ordered continuations; it changes physical roles, not the +scalar map. These are the construction and histogram identities of +\path{notes/endpoint-gauge-construction.tex}. + +For a rational projector $P$ the partial swap is +\[ + D_P=\begin{pmatrix}I-P&P\\P&I-P\end{pmatrix},\qquad D_P^2=I. +\] +If $U\subset V$ are nondegenerate then +$D_{P_V}D_{P_U}=D_{P_V-P_U}$. The retained exact lower-triangular +conjugation sends $D_P$ to its cross-bank pivot swaps: if +$P=L\Pi R$, put $C=RL$, $Q_X=\Pi\Pi^t$, $Q_Y=\Pi^t\Pi$, and +\[ + K_0=Q_YC-CQ_X,\qquad + G_0=\begin{pmatrix}L&0\\0&R^{-1}\end{pmatrix} + \begin{pmatrix}I&0\\K_0&I\end{pmatrix}. +\] +Then +\[ + G_0^{-1}D_PG_0= + \begin{pmatrix}I-Q_X&\Pi\\\Pi^t&I-Q_Y\end{pmatrix}. +\] +All wrappers are ordered-affine operations. A contiguous diagonal run +of $t$ pivots therefore uses one width-$t$ interchange, with no gathering +of separated positions. The address prime excludes the finitely many +bad denominators and nonzero minors after the rational basis is fixed. + +For stage two use $P_0=(I-P_a)\otimes I_b\otimes P_k$, +$Q=P_a\otimes I_b\otimes P_k$ and $P_1=P_0+Q$. +The source $D_{P_0}$ and sink $D_{I-P_0}$ have endpoint product $D_I$ +on every restored auxiliary role. The retained inverse-copy schedule +raises source data to $P_0$ before copying, and all subsequent producer +frames contain $P_0$. The entrance vanishes; the exit is +$D_{I-P_0}D_{P_1}=D_{I-Q}$ of rank $m-b$. Its rank equals the sum of +its two former boundary charges. This applies to the full stage-two +bank, including fanout and reused carriers. + +\subsection{One controlled basis with a fixed middle factor} +Fix $(a,b,k)=(32,30,36)$, $H=ab=960$, and $m_b=Hk=34560$. +Use $i=b\alpha+\beta$ as inner physical index and +\[ + K=T_2(I_a\otimes L_b),\quad + T_2(v\otimes e_\beta)=M_\beta L_av\otimes e_\beta, + \quad L_b=I_b+J_b. +\] +Keep the inherited inner boundary prescription: the first $2a$ row +labels are $[I_a,\operatorname{cyc}_{+1}I_a]$ and the last $2a$ +inverse-column labels are $[\operatorname{cyc}_{-1}I_a,I_a]$. +A label $c$ at $(\alpha,\beta)$ prescribes +$e_\alpha^tM_\beta=e_c^t$ or $M_\beta^{-1}e_\alpha=e_c$, +respectively. The residue sets $\{0,1,3\}$ and $\{25,27,28\}$ are +disjoint. Thus each $M_\beta$ has a permutation completion, and the +remaining invertible locus is a nonempty irreducible rational family. +The first and third axis bases $L_a,L_k$ remain generic. + +Set $S=T(I_k\otimes K)$ with +$T(u\otimes e_i)=G_i u\otimes e_i$. Match only the first $k$ rows +of $G_i$ to the coordinate rows of $L_k$, and the last $k$ inverse +columns to the matching columns of $L_k^{-1}$. The next $a$ rows +and preceding $a$ inverse columns are free. The two length-$(a+k)$ +boundary intervals are disjoint. + +Fixing $L_b$ requires a new nonvanishing justification. For each triple +indicator $t$, +\[ + L_bt=t+3\mathbf1,\qquad + \phi_tL_b^{-1}=\tfrac12\left(t-\frac{10}{3(b+1)}\mathbf1\right)^t. +\] +Every primal and dual coordinate is nonzero. Distinct triple lines +remain independent, so their coordinate-ratio vector is nonconstant. +These facts preserve the diagonal stage-two corner, the inner tree +witness, and the matched outer A3 corner. + +For completeness, the A1 null projector is +\[ + Q_1=I_k\otimes P_q+P_t\otimes P_U,\qquad + \operatorname{rank}P_q=1,\quad\operatorname{rank}P_U=a,\quad P_qP_U=0. +\] +After normalizing line coordinates its first $k$ nullspace rows have +form $[e_p^t,t_pz_p]$, where $t_p\ne0$. The first $a$ points $z_p$ +are nonzero multiples of a coordinate basis and span an affine +hyperplane $\mathcal H$. The repeated labels among the first $2a$ +points compare adjacent fast-coordinate ratios around the entire +$b$-cycle. If all these points lay in $\mathcal H$, every such ratio +would agree, contradicting independence of the two motif lines. +Since $2a\le a+k$, either the first $k$ points already affinely span +$\mathbb Q^a$, or an extra point lies outside $\mathcal H$. +For a free extra row $g_i$, elimination of the first $k$ coordinates +leaves +\[ + \sum_{pn$, +the outputs are empty sums; if $a=0$, copy the sole input. Both have +zero cost. If $b=0$, sum the $\binom na$ inputs at cost $\binom na-1$. +Otherwise start with separate query sums, costing +$\binom nb(\binom{n-b}a-1)$. For each $1\le l\le\lfloor n/2\rfloor$, +put $r_0=n-l$ and split the ground set into its first $l$ and last $r_0$ +points. For every feasible input split $i$ and query split $j$, contract +one factor and then the other, at cost +\[ + \min\left\{ + \binom{r_0}{a-i}Z(l,i,j)+\binom lj Z(r_0,a-i,b-j),\quad + \binom li Z(r_0,a-i,b-j)+\binom{r_0}{b-j}Z(l,i,j) + \right\}. +\] +Feasibility requires the subset sizes to fit their factors and +$i+j\le l$, $a-i+b-j\le r_0$. For each $j$, add the resulting terms +for each full query: if there are $t_j>0$ feasible $i$, this costs +$\binom lj\binom{r_0}{b-j}(t_j-1)$. Choose a split only if its total +strictly improves the current best, testing $l$ in increasing order. +For the displayed minimum prefer its first contraction order on a tie. +Use lexicographic subset order and increasing split indices; sum lists +by recursively splitting them into two halves. Intern every equal formal +support at each addition, retaining its first decomposition. The initial +template is the resulting $(n,a,b)=(h,3,3)$ DAG. This describes a +cancellation-free integer coefficient computation: disjointness factors +across the two ground sets, and the input split partitions the sources. + +Within a group, intern equal full formal support sets. Across groups, +let $I$ be the intersection of all full five-subset source labels of a +nontrivial sum. A sum shared by distinct groups has $|I|\ge3$. +If $|I|=3$, its exact signature is $I$ and the set of residual pairs +$S\setminus I$; if $|I|=4$, use $I$ and its residual points. These +signatures reconstruct the full set of five-subset variables, so there +are no hash collisions at the mathematical level. A nontrivial sum +cannot have $|I|=5$. Sums with $|I|=2$ belong only to that common-pair +group. Equal singleton inputs are identified by their five-subset labels. +Retain the first decomposition of each sum and prune unused nodes after +all groups are processed. + +The exact integer DAG-array construction at $h=29$ gives +\[ + c=19593239,\qquad q=1187550,\qquad S=c+q=20780789. +\] +Here $c$ counts active additions after pruning, not allocated nodes. +The implementation independently expands every support and output row +at $h=8,9$, checks the signature identifications there, and regenerates +the full integer DAG counts at $h=29$. The general exact-signature +argument above justifies the large sharing operation; the small tests +are implementation controls, not an extrapolated proof. + +\subsection{Restoration and rational side frames} +A cancellation-free addition DAG with $c$ additions and $q$ output uses +has an invertible gather-and-fanout embedding on $S=c+q$ roles: each +binary addition identifies one input pivot with an output use, while +all other uses receive their own role. No initial side value is assumed +zero. Let its invertible scalar operation be $L$, its data copy be $V$, +and its signed output injection be $J$ (coefficient $-1$ at every partial +output). With central gather $G=B^{\mathsf T}$ and scatter $R=B$, use +\[ + L,\ -J,\ L^{-1},\ -R,\ V,\ G,\ R,\ L,\ J,\ L^{-1},\ -G,\ -V. +\] +On arbitrary side input $z$, the two injections contribute +$-JLz+JL(z+Vx)=JLVx=-A_2x$. The inverse mixers and final negative copy +restore $z$. Central input cancels in the same way, leaving $RGx=Cx$. +Thus $y\gets y+x$ and every auxiliary input is restored. The actual +reverse inverse schedule gives $y\gets y-x$. + +Every nonzero vector $u$ in the span of five-subset indicators containing +one fixed pair $\{a,b\}$ satisfies +\[ + u_a=u_b,\quad \sum_i u_i=5u_a,\quad + u^{\mathsf T}Hu=\sum_{i\notin\{a,b\}}u_i^2>0. +\] +If the last sum vanished, the first two identities would give +$2u_a=5u_a$, hence $u=0$. Therefore every source span appearing in an +original group is nondegenerate. Interning an equal formal sum does not +change its span, so this remains true after cross-group sharing. + +For a DAG node $v$ choose the orthogonal projection $E_v$ onto its source +span. These projections increase along forward edges. Every ancestor +source is orthogonal to every reachable target, so the final projection +at a partial output lies below $I-P_T$ for its target $T$. For the +reverse mixer use $I-E_v$. Orthogonal complementation reverses the +inclusions and gives increasing reverse edges, including the target +lines at entry and source complements at exit. Rational nondegeneracy +suffices; no characteristic-two orthonormal-residual assumption is used. + +\subsection{Complete tensor circuit and rank ledger} +Index the data banks by $\mathcal T^3$, with $N=n^3$ and $m=h^3$. +Use the first-coordinate shears, inverse second-coordinate shears with +logical banks exchanged, and third-coordinate shears. The scalar action +is $(X,Y)\mapsto(-Y,X)$. Negate the physical $X$ bank at its final identity +frame to obtain the unsigned bank exchange. This fixed pointwise gate +has zero added edge rank and leaves all restored auxiliaries unchanged. + +For a stage write $A=B_0\mathbin\perp P$, where $P$ is its preceding +label tensor line, and suppress the future tensor line $Q$. Put +\[ + D_0=B_0\otimes I,\quad D_1=A\otimes I,\quad + D(E)=D_0+P\otimes E. +\] +The common frames of the forward twelve operations are +\[ + D_0,D_0,D_0,D_0,D(P_T),D_1,D_0,D(E_v),D(I-P_T),D_1,D_1,D_1. +\] +For the reversed inverse invocation they are +\[ + D_0,D_0,D_0,D(P_T),D(I-E_v),D_1,D_0,D(I-P_T),D_1,D_1,D_1,D_1. +\] +Copy and injection gates are grouped by their data role, including all +partial outputs for that target. Central gates retain every data and +central incidence, including zero factor coefficients. All frames are +tensored with $Q$. These are the same tensor boundaries as the general +three-stage compiler. All side changes increase; only the central return +decreases, by $h$ on each of the $r$ central roles in each invocation. +Thus the total decreasing dimension is +\[ + L_{\mathrm{dec}}=3n^2rh. +\] +The signed dimension telescoping gives $Wm-2N+2L_{\mathrm{dec}}$. +Replace the physical $X$ source projections $P_a$ by $-P_a$; because +$2\ne0$ in the rational frame field, this adds exactly $N$ to the rank +sum. Source frames are now $-P_a,0$, sink frames $I,I-P_a$, and each +restored auxiliary has source $0$, sink $I$. The unsigned scalar exchange +therefore satisfies every endpoint difference $I_m$. + +The bipartite double cover of the intersection-two graph is regular of +positive degree $10\binom{h-5}3$. Hall's condition follows by edge +counting, and a fixed deterministic matching algorithm supplies an +orthogonal label permutation $\pi$. Share stage-one invocation $(A,B)$ +with stage-three invocation $(B,\pi(A))$, keeping local auxiliary indices. +The boundary projections are +\[ + E=I\otimes P_A\otimes P_B,\qquad + H_0=(I-P_B\otimes P_{\pi(A)})\otimes I. +\] +They satisfy $EH_0=H_0E=E$. The twelve-operation schedule already has +initial frame $D_0$ on every auxiliary, so the join replaces two boundary +segments by one and saves exactly $m$ ranks per identified role. +Consequently +\[ + W=2n^3+2n^2(S+r),\quad + \Delta=Wm-s=n^3-6n^2rh. +\] +Numerically, +\[ +\begin{split} + m&=24389,\qquad N=1674772079218875,\\ + W&=589493540769997500,\\ + L_{\mathrm{dec}}&=498137336383050,\\ + \Delta&=678497406452775,\\ + s&=14377157287342062574725. +\end{split} +\] +Writing $\eta=\Delta/(Wm)$, the exact logarithm enclosure verifies +\[ + \eta>\frac{467}{10^{11}}\log m. +\] +Since $1-\eta0. +\] +Subject to the retained upstream and written extension hypotheses, this +therefore supports $T(n)=O(n(\log n)^{1-2^{-30}})$. It is an asymptotic +exponent comparison, not a practical runtime claim or independent +verification of the upstream multiplication theorem. diff --git a/references/stopped-recursion/pr107/notes/ternary-note.tex b/references/stopped-recursion/pr107/notes/ternary-note.tex new file mode 100644 index 0000000000..bbc1da1788 --- /dev/null +++ b/references/stopped-recursion/pr107/notes/ternary-note.tex @@ -0,0 +1,50 @@ +\documentclass[11pt]{article} +\usepackage[T1]{fontenc} +\usepackage{lmodern,microtype,amsmath,amssymb,amsthm,booktabs} +\usepackage[margin=1in]{geometry} +\usepackage[hidelinks]{hyperref} +\newtheorem{proposition}{Proposition} +\title{A ternary finite network for integer multiplication} +\author{Douglas Colkitt\thanks{Prepared with assistance from OpenAI Codex. +This is not independent review or endorsement by OpenAI.}} +\date{October 8, 2026} +\begin{document} +\maketitle +\begin{abstract} +We extend the rational-frame interchange transfer to a fixed finite scalar +alphabet and construct a ternary five-subset network with shared common-pair +side computations. Every auxiliary role carries arbitrary data and is +restored. The finite circuit supports bit saving $467/10^{11}$. Combined +with the retained complex network, compact-control movement and precision +proofs, it gives the conditional exponent $\kappa=2^{-30}$. +The upstream algorithmic claims remain assumptions. +\end{abstract} +The upstream manuscript is pinned at +\begin{center}\texttt{adc7f1241b42e322a6451854ab7e4b4c146bf78a}.\end{center} +This result uses the same fixed finite-alphabet, fixed-tape machine model. +It makes no practical runtime or unrestricted optimality claim. +\paragraph{Related submissions and attribution.} +Zhihao Chen (\texttt{jacklightChen}) submitted the same ternary five-subset +motif and finite-alphabet direction earlier in +\href{https://github.com/CrocSwap/integer-mult-bounds/pull/7}{PR~\#7}, +with a different compressed producer and a stronger claimed witness. +The present note records a separate implementation and a weaker conditional +checkpoint; it makes no priority claim for that motif. The related complex +compression submission by +\href{https://github.com/CrocSwap/integer-mult-bounds/pull/3}{\texttt{eumemic} +in PR~\#3} is related work. The release includes its own retained complex +construction, not an adoption or verification of those pending PRs. +See the repository's contribution-review index for the dependency review queue. + +\input{finite-alphabet-transfer.tex} +\input{ternary-five-subsets.tex} +\section{Reproduction} +The construction and exact conditional assembly are checked by +\path{scripts/audit_ternary_side.py}. The complete independent manuscript +patch is \path{patches/ternary-30.patch}, generated by +\path{scripts/make_ternary_patch.py}. Its finite alphabet, separate network +arities, retained movement proofs, parameter substitutions and internal +references are checked by \path{tests/test_ternary_patch.py}. +Earlier certificates, notes and patches are preserved. Finite controls do +not replace the general construction proofs or independently verify upstream. +\end{document} diff --git a/references/stopped-recursion/pr107/references/copied-centers/MANIFEST.json b/references/stopped-recursion/pr107/references/copied-centers/MANIFEST.json new file mode 100644 index 0000000000..7c430d61a2 --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/MANIFEST.json @@ -0,0 +1,16 @@ +{ + "files": { + "PROVENANCE.json": "27df488b36b4fa599b6e6b92408a4b37169125f40918c6ff29bb035e4342a7d4", + "README.md": "add72b080a24707aeda0d7a9ab8147003e3dc972575954d597b078aa82fb9619", + "SOURCES.json": "fd12f8ce03a9f504cbf62351e8f5f09b6209e6f9929081f7ad24a8e55cf09d64", + "pr29/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "pr29/NOTICE": "1b4512d2fe2063aca8e59529f5f1552641b41128872fefa1f3411c991097a49f", + "pr29/SOURCE.json": "b2b71c863ebdb37c4110a13136490b1ee573258a4bc5ec0f72e725513d3896f3", + "pr29/paureel-direct-transfer.tex": "573bbc0ca0799dc255febb4dd35fba1549f3771480a32aa8e181ff62bc7cb253", + "pr29/two-stage-16-note.tex": "e01fc480181fb00d90599e002126b06056e5e574f97fd1d5698cdedb9097b54d", + "pr33/LICENSE": "c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c", + "pr33/NOTICE": "6cdb4f22681c300d0cfaa1cc28b7dc0ac3a3295f8ad5d76f779ceebced592847", + "pr33/SOURCE.json": "bb8f77e7da502ae2d36c81e74a899c8356eb21964310c894f4d76c61c7a1ee7f", + "pr33/two-stage-corners-47-45-note.tex": "eba0e302370c0628bab27f675c8961b3005ef2edc2ccb5591465c7f7ef559e5a" + } +} diff --git a/references/stopped-recursion/pr107/references/copied-centers/PROVENANCE.json b/references/stopped-recursion/pr107/references/copied-centers/PROVENANCE.json new file mode 100644 index 0000000000..23bf52d541 --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/PROVENANCE.json @@ -0,0 +1,19 @@ +{ + "scope": "Unmodified adopted written proof sources and notices; old numerical witnesses are source context, not the selected current result. Source manifests describe their original packages, not this curated directory.", + "pr29_commit": "9d963275075fa98f1da821e27757b238dafd6b3c", + "paureel_commit": "c82d09eb4781b68435e3fa3eb6beea72fa900fab", + "pr31_method_commit": "02f68f95369c39955c5ffcfddbd75cd83e26b305", + "pr33_commit": "a499a345c040aa15b68e984a0904eadc485c7a7e", + "files_from_supplied_handoff": { + "pr29/LICENSE": "references/pr29/LICENSE", + "pr29/NOTICE": "references/pr29/NOTICE", + "pr29/SOURCE.json": "references/pr29/research/two-stage/SOURCE.json", + "pr29/two-stage-16-note.tex": "references/pr29/notes/two-stage-16-note.tex", + "pr29/paureel-direct-transfer.tex": "references/pr29/research/two-stage/paureel-direct-transfer.tex", + "pr33/LICENSE": "LICENSE", + "pr33/NOTICE": "references/pr33/NOTICE", + "pr33/SOURCE.json": "references/pr33/research/two-stage-dimensions/corners/SOURCE.json", + "pr33/two-stage-corners-47-45-note.tex": "references/pr33/notes/two-stage-corners-47-45-note.tex" + }, + "license_note": "The PR33 snapshot supplies NOTICE and an explicit Apache-2.0 source declaration; its license text is the supplied handoff Apache-2.0 LICENSE." +} diff --git a/references/stopped-recursion/pr107/references/copied-centers/README.md b/references/stopped-recursion/pr107/references/copied-centers/README.md new file mode 100644 index 0000000000..9adb20300f --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/README.md @@ -0,0 +1,7 @@ +# Adopted copied-center dependencies + +These unmodified proof sources support the selected construction in `notes/copied-centers-note.tex`. PR29 supplies the unequal two-stage compatibility and Paureel copied-stream contract. PR33 states the parameterized PR31 incidence and rank-partition corner proof. The current note specializes those methods to `(25,23)` and proves the new center-copy schedule separately. + +`SOURCES.json` records contribution-level credit. `PROVENANCE.json` maps retained files to the supplied source archive. The two imported `SOURCE.json` files describe their original packages; they are not manifests of this curated directory. `MANIFEST.json` records the actual retained bytes. Historical numerical witnesses in these unmodified references are not current selected parameters. + +Original notices and Apache-2.0 terms are preserved, including the sources’ recorded AI assistance. PR33’s license text comes from the supplied archive’s Apache-2.0 `LICENSE`; its own source declaration explicitly identifies that license. No raw repository history, alternative producer, or historical verification suite is imported here. diff --git a/references/stopped-recursion/pr107/references/copied-centers/SOURCES.json b/references/stopped-recursion/pr107/references/copied-centers/SOURCES.json new file mode 100644 index 0000000000..99481f67ff --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/SOURCES.json @@ -0,0 +1,39 @@ +{ + "adopted_proof_sources": [ + { + "contributor": "Aurel Prosz (Paureel)", + "commit": "c82d09eb4781b68435e3fa3eb6beea72fa900fab", + "repository": "https://github.com/Paureel/integer-mult-bounds", + "contribution": "Two-stage topology and charged copied-stream endpoint correction", + "file": "pr29/paureel-direct-transfer.tex" + }, + { + "contributor": "Zhihao Chen (jacklightChen)", + "commit": "9d963275075fa98f1da821e27757b238dafd6b3c", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/29", + "contribution": "Unequal-stage compatibility, basis, gauges and physical accounting", + "file": "pr29/two-stage-16-note.tex" + }, + { + "contributor": "Rohan Arun", + "commit": "02f68f95369c39955c5ffcfddbd75cd83e26b305", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/31", + "contribution": "Incidence factorization, rank-partition zero certificates and exact rational pivots", + "file": "pr33/SOURCE.json" + }, + { + "contributor": "Dominik Scholz", + "commit": "a499a345c040aa15b68e984a0904eadc485c7a7e", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/33", + "contribution": "Dimension-parameterized specialization of the PR29/31 construction", + "file": "pr33/two-stage-corners-47-45-note.tex" + } + ], + "additional_credit": { + "contributor": "Swapnil Jain", + "commit": "ae405eb474d1486b2d8aef90139869f927f4836a", + "repository": "https://github.com/Swapnil-jain/integer-mult-kappa", + "contribution": "Linked two-stage batching development credited by PR29; no source code imported here." + }, + "license": "Apache-2.0; original NOTICE files retained. Recorded assistance remains attributed to its source, without a new external review claim." +} diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr29/LICENSE b/references/stopped-recursion/pr107/references/copied-centers/pr29/LICENSE new file mode 100644 index 0000000000..57bc88a15a --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr29/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr29/NOTICE b/references/stopped-recursion/pr107/references/copied-centers/pr29/NOTICE new file mode 100644 index 0000000000..0fb470fb5a --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr29/NOTICE @@ -0,0 +1,118 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The new research note, scripts, certificates, patches, and documentation +were prepared by Douglas Colkitt with assistance from OpenAI Codex. +This project is not an official OpenAI release or an OpenAI endorsement. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Translated partial-swap and complex phase frames, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen) + +This extension combines icekylinx's PR18 partial-swap construction with a new +multiplicative auxiliary endpoint translation and its contiguous corner, +and an operator-correct complex phase translation with the necessary new +physical histogram and precision guard. It certifies kappa=5499/10^9>2^-18. +The source-frame idea is credited to eumemic's Claude-assisted PR13; nested +basis context is in Zhihao Chen's PR16. PR10, PR7 and all preceding notices +remain in force. Rohan Arun's PR14 independently gives overlapping data corners. +Development used substantial OpenAI Codex assistance. Prior GPT-6 Astra +attribution is retained as recorded, without asserting a runtime model here. +Future research using this contribution should explicitly acknowledge Zhihao +Chen (jacklightChen), cite it, and retain all relevant preceding attribution. +This provenance request adds no license condition; Apache-2.0 is unchanged. +No worldwide first or exclusive-priority claim is made. + +Semantic precision and bulk-resampling composition, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen) + +This extension composes the unchanged PR21 finite interfaces with the RaD +project (hipotures) contribution exposed by PR20, pinned at RaD commit +45d9b60355872041f9275f77c057514def0d45bc. Credit for semantic child bounds, +arbitrary-source routing, phase-cell inverse and bulk resampling belongs +to that source, with its recorded Codex and GPT-6.1-Sol Ultra assistance. +The new contribution is the PR21-specific compatibility, literal scalar +charge, combined row stock and strict kappa=1099/10^8 witness. +Zhihao Chen prepared this composition with OpenAI Codex assistance. +Preserve the previous GPT-6 Astra attribution without inferring the current +runtime model. Future research using this contribution should acknowledge +Zhihao Chen and all other dependencies used. No additional license condition +or worldwide-first claim is imposed. Imported RaD source retains CC0 and its +separate notices; original upstream source remains under its existing license. + +Unequal two-stage composition, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen). Apache-2.0. +With substantial OpenAI Codex assistance; earlier GPT-6 Astra attribution +remains as recorded, without inferring current runtime model identity. +Credit Aurel Prosz (Paureel) for the two-stage topology and paid copy +correction; Swapnil Jain for the linked batching development; icekylinx +for PR24 producers and the controlled inner family; RaD/hipotures for +the semantic/bulk ingredients; and all authors retained above. +This contribution supplies the unequal two-stage compatibility, finite +common-basis witness, actual new producers and kappa=15536/10^9 assembly. +Future research using it should acknowledge Zhihao Chen and cite it, while +retaining credit to all other dependencies. This adds no license condition +and makes no worldwide-first or exclusive priority claim. + diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr29/SOURCE.json b/references/stopped-recursion/pr107/references/copied-centers/pr29/SOURCE.json new file mode 100644 index 0000000000..617fde9fbe --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr29/SOURCE.json @@ -0,0 +1,60 @@ +{ + "license": "Apache-2.0 for this contribution and copied PR24/Paureel files; retained RaD imports remain CC0", + "dependencies": { + "PR23": { + "repository": "jacklightChen/integer-mult-bounds", + "commit": "661ebabc1076c9f525d7ce4967c876b203fa9827", + "use": "Unchanged complex finite interface and semantic/bulk integration" + }, + "PR24": { + "repository": "icekylinx/integer-mult-bounds", + "commit": "ed90fd940279c336ebc45968631bdebfb087b505", + "use": "Unmodified producer_bit.py and retained inner-basis/construction sources" + }, + "Paureel": { + "repository": "Paureel/integer-mult-bounds", + "commit": "c82d09eb4781b68435e3fa3eb6beea72fa900fab", + "use": "Two-stage topology and paid copy correction; two notes retained unmodified" + }, + "Swapnil": { + "repository": "Swapnil-jain/integer-mult-kappa", + "commit": "ae405eb474d1486b2d8aef90139869f927f4836a", + "use": "Research route to two-stage macro batching; no source copied" + } + }, + "source_sha256": { + "notes/two-stage-16-note.tex": "5476adb07c300bffeb9308be5319f40c3f3eb938f2f8aeafc6f8a8b3c732fb3d", + "research/two-stage/README.md": "76a49c4fd2943dba3e95530fae63794aab7826224af3dece953909cd748a3c83", + "research/two-stage/assembly.py": "c44457ce8c3f58838f2f03797f8f4fa3e3cdbd59f9c19a9de9666ca2823358b1", + "research/two-stage/check_unequal_corners.py": "6c6cd41fe9954203cdf10ea1e6dd485dc8f8bf5d7a32e1386bc614ff58440cc6", + "research/two-stage/controls.py": "ec67890dae8a07f5e887d71842e081ae57440bbf5e3a163239f2e7440cb12e14", + "research/two-stage/label_audit.cpp": "41d64c19c30c056c2b73aef605cc6e30309c83b6731a608eaf754d1dafe1be15", + "research/two-stage/labels-53.json": "3fc7605212801f46152e26b9bb1e10281f065fd46d056c3b1cc2845c429d7e0f", + "research/two-stage/labels-55.json": "14e2d1ab0d096bda7c5c2dca266825277467d43fd9416355008cf103c2cf3a67", + "research/two-stage/paureel-direct-transfer.tex": "2ce8374fbcfe95f91f38a30e790f0d8ebc96685162257b2ae96980adf0d58043", + "research/two-stage/paureel-two-stage.tex": "7b6691245a61249830981c9d39e81cb65a57ebc225144732afab809d9f0ebe17", + "research/two-stage/pr24-basis.tex": "2dfe641fba04bc6b3560fc24101eb2f188429a8910e450f48695352cf4faa2b8", + "research/two-stage/pr24-construction.tex": "7dcd7a1b858877d36969fb4d10bf51d2fee2bd5ee9dfdd44329cb71f910d9659", + "research/two-stage/producer-53.json": "eb429b9444a12db37fd55312afa2fc6df0da46b74baa377dbe279f7c0a6df567", + "research/two-stage/producer-55.json": "3546c3ac1a349c4d11f4c79a02ebed9dcaca6b64fdae75874384a9e1d3737d54", + "research/two-stage/producer.py": "a0af66a1c51eafd7ab452b917f196d598c8958ee927068f9c4119292f3722b56", + "research/two-stage/producer_bit.py": "5b2817bd1b35a42fabb636541907fcbdc394ed2ef1405099a10de9c9cf524b09", + "research/two-stage/two_stage_unequal.py": "767e5cc7233ac7eca4525033d8a0694ce6aac2113f71ce74bc1bbb515e25e6e1", + "research/two-stage/verify.py": "24bac5b4c307854526325582d06fbb89f3392d91533f29051184ef0a51403fe9", + "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", + "scripts/paired_exclusion_circuit.py": "8f05f04cf06217befd6d0ee0f2d7d0c5c5eb32cfab8c9a8ca7917fd6d620b7d2", + "scripts/partial_swap/__init__.py": "0438eaa34134600467a5864f93c3e15142eb025b35cef189c2e969cffea72a7f", + "scripts/partial_swap/binary.py": "d32d7a23548cc738e974e8e55dd1fa2a8b11d2b80228515617ffe35410bb8805", + "scripts/partial_swap/binary_io.hpp": "7e143eb75bb342ac8f0c82a60005e7c35c9ec827de479bf6fb773151f3af5fa1", + "scripts/partial_swap/graph.py": "fd8c567759e26a10d2bad05508fd0355eb70fb116664d4e06e1858d0d8cb2ef9", + "scripts/partial_swap/match_exported_dag.cpp": "7901b0fb1b80b628a24cfd7fda57bbc32f58771594d08b318b90e4b8cdf0ef82", + "scripts/partial_swap/match_positive_dag.cpp": "8a6d64e2d0ac2c69210fb0b8a5bd0d714ad40b3609f75a5fddfcba3291a3d552", + "scripts/partial_swap/paired.py": "ddcecace3a8e04d690914cbd64873ab8dde8c0c3477a255767b0ed6f639bb0c7", + "scripts/partial_swap/positive.py": "1dadf771226d6e4f3bf9ce3aae2e6a2ad7173f4d1c900299d0663fc4c432f3e8", + "scripts/partial_swap/shared.py": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34", + "scripts/partial_swap_network.py": "acdd81b4dea2815f8838a0c3ea8ac4968f2bc13fd7c99173473d865779096782", + "tests/test_two_stage.py": "7dfbfdf80c819432aa7b80a684518a7e78a3f08faff6aa3069147aea4376f8bf", + "artifacts/two-stage-16-note.pdf": "ca9d566bf972a948fdfb1bfed4f3a89e46e8fd479902cad848464f942426cff4" + } +} + diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr29/paureel-direct-transfer.tex b/references/stopped-recursion/pr107/references/copied-centers/pr29/paureel-direct-transfer.tex new file mode 100644 index 0000000000..510699d65f --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr29/paureel-direct-transfer.tex @@ -0,0 +1,104 @@ +\subsection{A direct partial-swap transfer} +\label{sec:direct-swap-transfer} +The preceding shear transfer is retained as a historical construction. The +new bit network instead uses direct partial-swap frames. For a nondegenerate +rational subspace $U\subset\mathbb Q^m$, let $p_U$ be its orthogonal +projector and define the address matrix +\[ + S_U=\begin{pmatrix}I-p_U&p_U\\p_U&I-p_U\end{pmatrix} + \quad\text{on }(H,D). +\] +It is an involution. Orthogonal summands give commuting factors: +$S_US_V=S_{U\perp V}$ when $U\perp V$. In particular +$S_{U^\perp}S_U=S_{\mathcal F}$, the full interchange. +These rational address matrices induce permutations of bit arrays; the +pointwise scalar circuit still operates over $\mathbb F_2$. + +\begin{lemma}[One interchange for a partial-swap line] +\label{lem:direct-swap-line} +For a fixed nonisotropic rational vector $v$, the address permutation +$S_{\langle v\rangle}$ uses one interchange of an earlier and a later +equal-width field and $O(V)$ additional work on the retained fixed tapes. +\end{lemma} +\begin{proof} +Write $d=v^{\mathsf T}Gv\ne0$ and +\[ + u=(v,-v)^{\mathsf T},\qquad + \phi=(v^{\mathsf T}G,-v^{\mathsf T}G)/d. +\] +Then $S_{\langle v\rangle}=I-u\phi$ and $\phi u=2$. +Let $i$ be the first nonzero coordinate of $u$ and $j$ the last nonzero +coordinate of $\phi$. The first is in $H$ and the second in $D$, so $i2^{-16}$} +\author{Zhihao Chen (jacklightChen)\\\small With substantial OpenAI Codex assistance} +\date{8 October 2026} +\begin{document}\maketitle +\begin{abstract} +We combine Paureel's two-stage partial-swap topology, including its paid +rank-one copy correction, with icekylinx's retained-total producers and +controlled inner basis. At factor dimensions $(55,53)$, one rational basis +supports both auxiliary small corners and all local projector blocks. +The resulting bit saving is $15537/10^9$. Keeping the PR21 complex circuit +and PR23 semantic/bulk transfer gives the conditional final saving +$\kappa=15536/10^9>2^{-16}$. The construction uses actual regenerated +finite producers, exact rational containment checks and an exact modular +nonvanishing witness for the common-basis argument. It retains the +predecessors' analytic and fixed-tape hypotheses; it is not a formal +verification or a practical multiplication implementation. +\end{abstract} + +\section{Dependencies and scope} +The retained computational model is a fixed finite-alphabet multitape +Turing machine. Every finite graph, rational basis, eligible odd prime, +constant and tape count is independent of input length. Payload arithmetic +in the new network is over $\mathbb F_2$; address geometry is rational, +subsequently reduced at an eligible odd prime. These fields are distinct. +The complex payload remains Gaussian dyadic. + +The two-stage topology and its one-child correction are Aurel Prosz's +(Paureel) construction, pinned at +\texttt{c82d09eb4781b68435e3fa3eb6beea72fa900fab}. Swapnil Jain's +\texttt{integer-mult-kappa} research led us to this topology and its +macro batching. The ordinary-base-four producer and controlled inner +basis are icekylinx PR24, pinned at +\texttt{ed90fd940279c336ebc45968631bdebfb087b505}, building on PR18/10. +The unchanged complex circuit is Zhihao Chen's PR21; the semantic guard, +product row stock and analytic composition are PR23, pinned at +\texttt{661ebabc1076c9f525d7ce4967c876b203fa9827}. +RaD/hipotures PR20 +supplies the credited semantic, routing, phase-cell inverse and bulk +ingredients, with the provenance and CC0 notices already preserved there. + +The present contribution is the compatible unequal two-factor composition, +its physical accounting, a common-basis nonvanishing certificate, the two +regenerated finite graphs and the new assembled witness. Earlier credits, +including eumemic's source frames, Douglas Colkitt's framework, OpenAI's +upstream manuscript, and Harvey--van der Hoeven's analytic background, +remain in force. PR25's A5 subblock and PR27's endpoint composition are +concurrent work; neither extra block nor their numerical witness is used. +Earlier GPT-6 Astra assistance remains attributed as recorded, without +inferring the present runtime model. Future work using this contribution +should acknowledge Zhihao Chen and every other dependency used. This is +a provenance request, not an additional license condition or a worldwide +priority claim. + +\section{Finite scalar interfaces} +For $h=53,55$, let $v_h=\binom h3$ and use the rational metric $I-J/9$. +A triple indicator has norm $2$, and indicators with intersection one +are orthogonal. The PR24 producer retains three side outputs per target +and all $h$ point totals. For triples $S,T$, their combined scalar +coefficient is +\[ + [|S\cap T|=1]+|S\cap T|\pmod2=[S=T]. +\] +Thus the designated injection $J$, reversible producer $L$ and source +copy $V$ satisfy $JLV=I$. The chronological word +$L,J,L^{-1},V,L,J,L^{-1},V$ adds the input to the target and restores +every auxiliary, regardless of its initial contents. Both orientations +use this same identity and reversed complementary frames. + +The cancellation-free paired exclusion producer, equal-support sharing, +positive labels and oriented carrier matching are unchanged algorithms +from PR24/18, now run at the selected two dimensions. Their outputs are +\[ +\begin{array}{c|rrrrrr} +h&v_h&c_h&q_h&|\mathcal M_h|&R_h&\ell_h\\\hline +53&23426&518699&70331&8243&580787&2756\\ +55&26235&582658&78760&8829&652589&2970 +\end{array} +\] +Here $R_h=c_h+q_h-|\mathcal M_h|$ already includes the retained centers; +no additional $h$ center roles are added. Their loss is +$\ell_h=h(h-1)$, not $h^2$. The internal rank histograms satisfy +\[ + \sum_r rH_{h,r}=hR_h+2\ell_h. +\] +They are supplied entry by entry in the producer certificates. + +Every actual support and output was rebuilt. In addition to the inherited +matching checks, a separate exact integer audit checks that each original +support envelope lies in its enlarged positive label and that every +dependency is a rational subspace inclusion. It checks 1,101,357 envelopes, +2,202,714 directed dependencies and 149,091 output frames. A positive label +lies in $U_i=\{x:\sum_jx_j=3x_i\}$, where +$x^t(I-J/9)x=\sum_{j\ne i}x_j^2$; hence it is nondegenerate. Inclusion +duality gives the reverse complementary orientation exactly. Carrier +continuations are separately required to be increasing in event order and +compatible in the matching algorithm. The retained proof of that compiler +therefore applies to every generated gate and both invocation orientations. + +\section{Two stages, endpoints and the copy correction} +Put $a=55$, $b=53$, $m=ab=2915$, $N=v_av_b$ and +$\mathcal F=F_a\otimes F_b$. Write $P,Q$ for the two triple-line +projectors and $U=\operatorname{im}(P\otimes Q)$. For any rational +projector $A$, the partial-swap address frame is +\[ + D_A=\begin{pmatrix}I-A&A\\A&I-A\end{pmatrix}. +\] +Nested nondegenerate labels give $D_AD_B=D_{B-A}$ when $A\le B$; +the same positive residual executes either orientation. + +Use the first forward scalar shear, followed by the second inverse shear. +Their binary scalar map is $(x,y)\mapsto(y,x+y)$, with distinct restored +auxiliary banks. The data source frames are $(D_U,I)$ and terminal frames +$(D_{\mathcal F},D_{U^\perp})$. The tensor-stage boundary labels are +the first two stages of the retained construction: stage one grows +$X:U\to F_a\otimes\operatorname{im}Q$ and +$Y:0\to\operatorname{im}(I-P)\otimes\operatorname{im}Q$; +stage two ends at $(\mathcal F,U^\perp)$. + +Stage-one auxiliary source and sink are $0,\mathcal F$. Its final +outer residual is $I_a\otimes(I_b-Q)$, rank $m-a$. +In stage two use auxiliary source +$D_0=(I_a-P)\otimes I_b$ and complementary sink $I-D_0$. +Raise the physical data source to $D_0$ before its initial inverse copy, +as in PR21/24. Every subsequent local label contains $D_0$, so the +auxiliary entrance vanishes. Cleanup ends at $I$, giving exit $D_{D_0}$, +rank $m-b$. Arbitrary-scratch restoration makes the total auxiliary +endpoint $D_{I-D_0}D_{D_0}=D_I$; no physical preparation or free +reordering is assumed. The two stage banks are not shared. + +Let $F=D_I$, $E=D_{I-P\otimes Q}$ and $T=D_{P\otimes Q}$. The framed +data outputs are +\[ + A=Fy,\qquad B=Fx+Ey. +\] +Retain $A$, copy it to a temporary stream, apply $T$ to that copy, and +XOR into $B$. Since $TF=E$, the result is $(Fy,Fx)$. This is exactly +Paureel's correction, charged as one rank-one child per pair. Its volume +is the existing role volume $V/W$. Copy, XOR and erasure cost $O(V/W)$; +the original is parked without recursively restoring it. Processing these +copies sequentially adds a fixed stream to the retained parking stack, +not a new row-index family. After undoing the data row-bank exchange, +every role, including arbitrary scratch, receives full interchange. + +\section{One common basis for both axes} +Use the PR24 inner family with physical index $i=b\alpha+\beta$, +\[ + K=T_2(I_a\otimes L_b),\qquad + T_2(x\otimes e_\beta)=M_\beta L_a x\otimes e_\beta. +\] +Prescribe first-$2a$ row coefficient labels +$R=[0,\ldots,a-1,1,\ldots,a-1,0]$ and last-$2a$ inverse-column labels +$C=[a-1,0,\ldots,a-2,0,\ldots,a-1]$. +Their effective residues are $\{0,1,3\}$ and +$\{b-5,b-3,b-2\}$ modulo $b$. They are disjoint at $b=53$; +the finite certificate constructs all 53 permutation completions. +Fix these $M_\beta$, leaving $L_a,L_b$ free. + +Absorb $L_a,L_b$ into local matrices and denote the transformed line +projectors by $p\xi,v\nu$, with $\xi p=\nu v=1$. If boundary row $i$ +and column $j$ have labels $r_i,c_j$ and second-factor indices +$\beta_i,\delta_j$, the two local corner formulas are +\[ +\begin{aligned} + (A\otimes v\nu)_{ij}&=v_{\beta_i}\nu_{\delta_j}A_{r_i,c_j},\\ + (p\xi\otimes B)_{ij}&=p_{r_i}\xi_{c_j}B_{\beta_i,\delta_j}. +\end{aligned} +\] +These are direct contractions of the prescribed rows and inverse columns. +On first/last $a$ coordinates, $r_i=c_i=i$. Thus the corner of +$I_a\otimes v\nu$ is diagonal and invertible, and any local $A$ is +represented up to nonzero diagonal row and column scalings. On first/last +$b$ coordinates, $\beta_i=\delta_i=i$, $r_i=i$, $c_i=i+2$. +Thus $p\xi\otimes I_b$ also has an invertible diagonal corner, and every +local $B$ is represented up to such scalings. Consequently the two +auxiliary profiles are $(a,m-2a)$ and $(b,m-2b)$ simultaneously. + +For a local rank-$r$ projector in dimension $h$, the retained generic +projector identity gives $h-r$ singleton pivots and a block $2r-h$ if +$2r>h$; otherwise retain $r$ singletons. At $r=h$ use a whole $h$-block. +The first/last local corner formulas just proved transfer all these +profiles to the ambient physical order. Each needed ordinary minor is +nonzero as a rational function of the corresponding free $L_h$ by +similarity of rank-$r$ projectors and the usual rank-one pairing witness. + +The remaining data macro is $(I-P)\otimes(I-Q)$, with nullity +$d=a+b-1=107$. Its null-corner has entries +\[ + Z_{ij}=[\beta_i=\delta_j]p_{r_i}\xi_{c_j} + +[r_i=c_j]v_{\beta_i}\nu_{\delta_j} + -p_{r_i}\xi_{c_j}v_{\beta_i}\nu_{\delta_j}. +\] +The exact certificate supplies normalized line coordinates modulo the +prime 1,000,003 and proves this $107$-square matrix has full rank. +This is a nonvanishing witness, not a numerical inference: lift the +coordinates to integers and normalize the two dual vectors over +$\mathbb Q$. The normalization denominators are $1$ modulo this prime, +so the lifted rational determinant is nonzero. Any fixed pair of rank-one +projectors can be conjugated over $\mathbb Q$ to these lifted projectors. +Hence this determinant is a nonzero rational function on the free +$\mathrm{GL}_a\times\mathrm{GL}_b$ family for each physical data pair. +The large-projector identity then gives $107$ singleton pivots and a +block $m-214=2701$. + +There are finitely many physical local projectors and data pairs. +The ordinary minors, line coordinates and displayed data determinants +are individually nonzero rational functions on this same irreducible +parameter space. Clearing denominators, their finite product is nonzero. +Rational enumeration therefore constructs one common basis satisfying all +requirements. Choose the address prime after this choice, avoiding its +finitely many bad denominators and minors. The witness prime above is +only a certificate device and need not be this address prime. + +The retained lower-triangular conjugation for $D_A$ turns every contiguous +identity-pivot block into one child interchange. Nonzero diagonal scales +are absorbed in the triangular factors. Thus there is no uncharged +gather, reversal or independent per-edge choice of basis. + +\section{Complete physical list and exact moment} +Set $B_a=v_bR_a$, $B_b=v_aR_b$, +\[ + W=2N+B_a+B_b=31753659079,\quad + L=v_b\ell_a+v_a\ell_b=141878880. +\] +The following list includes all physical edges and the correction: +\[ +\begin{array}{l|r|l} +\text{class}&\text{multiplicity}&\text{profile}\\\hline +\text{first auxiliary exterior}&B_a&55,2805\\ +\text{second auxiliary exterior}&B_b&53,2809\\ +\text{interstage data macro}&2N&107\text{ singletons};2701\\ +\text{axis }h\text{ internal rank }r&v_{\rm other}H_{h,r}&\text{ordinary }(h,r)\\ +\text{axis }55\text{ physical growth}&2N&1,53\\ +\text{axis }53\text{ physical growth}&2N&1,51\\ +\text{endpoint copy correction}&N&1 +\end{array} +\] +The local histograms exclude auxiliary exterior and physical data edges; +their rank identity therefore checks this enumeration without overlap. +Both orientations have the same positive residual profiles. Its rank is +\[ + s=Wm-N+2L=92561585391935,\qquad Wm-s=330823350. +\] +The extra $N$ correction calls are already included. Each child has the +same role-volume fraction $1/W$, including the copied stream. + +Let $n_t$ be this exact list, $a_b=15537/10^9$ and $\tau=1-a_b$. +The retained rational logarithm enclosure and +$e^u\le1+u+u^2/[2(1-u/3)]$ give +\[ + \frac{\sum_t n_t t^\tau}{Wm^\tau} + <1-2.7\times10^{-10}. +\] +All widths satisfy $0(51/25)22969$, a $p^{47000}$ stock suffices by the same PR23 +product argument. Use one leading prefix, one padding, and restore the +bit factor within every complex descendant. A parked correction copy +introduces no new independent row index or internal padding. + +Choose $a=a_b$, $b=a_c$, $h=10^{-8}$ and $\beta=1/10$, and set +\[ +\begin{gathered} + q=a(1-2h),\quad\lambda'=1-q,\quad + \lambda=(1-a+\lambda')/2,\quad c=q(1+h),\\ + \epsilon=\frac{1-h}{1+c+q},\quad G=\epsilon q,\quad + r=(G+1-\epsilon)/2,\quad\delta=h/8,\quad C_1=1. +\end{gathered} +\] +The complex leaf saving is $(1-\beta)b=16.2\times10^{-6}>a$. +PR23's exact seven margins are +\[ + 1-\epsilon(1+c),\ a,\ G,\ a,\ + \min(1-\epsilon-\delta,r-\delta),\ 1-\epsilon-\delta,\ \epsilon. +\] +The certificate recomputes all 47 strict conditions, including the actual +scalar charge and new product-stock gap. Their minimum margin is $G$, and +\[ + G-\frac{15536}{10^9}>5\times10^{-10}. +\] +The strict slack absorbs logarithmic factors. The unchanged arbitrary-source +router, phase-cell inverse, microbox halo and fixed-tape bulk interfaces, +prime-packing argument, and exact-recovery conditions of PR23 apply at +these parameters. Their fixed constants and setup, logarithmic absorption, +prime thresholds and table domination remain eventual conditions; no +practical input-size cutoff is asserted here. + +\begin{theorem} +Under the retained analytic and fixed-tape interfaces, the construction gives +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \kappa=\frac{15536}{10^9}=1.5536\times10^{-5}>2^{-16}. +\] +\end{theorem} +\begin{proof} +The finite scalar identities, label inclusions, physical list, common basis +and charged correction establish the bit interface. The complex interface +and semantic bound are retained by source hash. The product stock supplies +both recursions, and the exact margins above instantiate the PR23 assembly. +\end{proof} + +\section{Reproduction and verification boundary} +\texttt{python3 research/two-stage/producer.py} regenerates both new graphs, +all scalar supports, labels, matchings and histograms, and the separate +integer containment audit. \texttt{python3 research/two-stage/verify.py} +checks the exact moment, modular common-basis witness, retained source hashes, +row stock and final assembly. Four focused tests include the complete small +data/dirty-auxiliary endpoint basis, missing-correction and wrong-order +negatives, and rejection of the old guard/exposure formulas and $2^{-15}$. +The unchanged PR23 producer and analytic controls are preserved by source +hash rather than unnecessarily rerun. Finite evidence and written proofs +have distinct scopes; this is neither full formal verification nor completed +external expert review. The canonical citations and source licenses are +listed in \texttt{research/two-stage/SOURCE.json} and \texttt{NOTICE}. +\end{document} + diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr33/LICENSE b/references/stopped-recursion/pr107/references/copied-centers/pr33/LICENSE new file mode 100644 index 0000000000..57bc88a15a --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr33/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr33/NOTICE b/references/stopped-recursion/pr107/references/copied-centers/pr33/NOTICE new file mode 100644 index 0000000000..65f27fece6 --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr33/NOTICE @@ -0,0 +1,138 @@ +A sharper exponent for integer multiplication +Copyright 2026 Douglas Colkitt + +This project includes unmodified source files from OpenAI's manuscript +"Integer multiplication below n log n" and its accompanying repository: +https://github.com/openai/math +Commit: adc7f1241b42e322a6451854ab7e4b4c146bf78a + +The original manuscript identifies OpenAI as its author. Its Apache-2.0 +license is retained at upstream/LICENSE. The exact source URLs and hashes +are recorded in upstream/manifest.json. Proposed modifications are supplied +as separate files under patches/; upstream source files remain unchanged. + +The new research note, scripts, certificates, patches, and documentation +were prepared by Douglas Colkitt with assistance from OpenAI Codex. +This project is not an official OpenAI release or an OpenAI endorsement. + +Ternary five-subset construction and common-four-point resynthesis +Copyright 2026 Zhihao Chen (jacklightChen) + +This is Zhihao Chen's first submission of this specific construction to this +repository. Research, proof development, code and verification were prepared +with substantial assistance from GPT-6 Astra (OpenAI Codex), as identified by +the contributor. This is not independent review or an OpenAI endorsement. +Future research building on this contribution should explicitly acknowledge +Zhihao Chen (jacklightChen), cite the accompanying note and pull request, and +retain the preceding contributors' attribution. This notice records research +provenance; the repository's Apache-2.0 license remains unchanged. + +Dependencies retained from eumemic's Claude-assisted PRs #3 and #5: +https://github.com/CrocSwap/integer-mult-bounds/pull/3 +https://github.com/CrocSwap/integer-mult-bounds/pull/5 +PR #5 commit: d3d370c34937503bd3fa63c83d505a05e8e50893 +These include complex_circuit.py, complex_network.py, fast_gaussian.py, +their generators, construction notes and certificates. The Gaussian input +scaling proof is corrected in this derivative; see the modification notice below. +Aligned pairing also appears in Bortlesboat's PR #2. Retained totals and bank +sharing appear in dleen's PR #4 and cheaper retained centers in eumemic's PR #6. +Their results and ideas are credited separately from this new construction. + +Bulk recursion and controlled tensor basis, 8 October 2026 +Copyright 2026 icekylinx + +The new projector batching, controlled simultaneous basis, mixed-width tape +recursions, whole-residual complex recursion, and dependency-path precision +guard in the batched-23 proof package are contributed by icekylinx, developed +with substantial OpenAI GPT-6 Astra assistance. Review corrections and +repository integration were prepared with OpenAI Codex assistance. They build on the retained +PR #7 finite producers and the preceding contributions credited above. +The new package retains the repository's Apache-2.0 license and the original +authors' attribution. It is not an official OpenAI release or endorsement. + +Modification notice, 8 October 2026 (icekylinx): the retained fast Gaussian +proof now bounds shifted approximation error by F=2^ceil(1.14 alpha^2). +The P=34p precision budget and asymptotic exponent are unchanged. New batching +checks are integrated into make verify. Existing attribution and licenses +are retained. + +Partial-swap extension, 8 October 2026 +Copyright 2026 icekylinx + +The partial-swap framing, binary retained-total triple construction, +dependency-preserving positive labels and carrier reuse, unequal (25,23,57) +common basis, improved complex batching, and exact assembly are contributed +by icekylinx with substantial OpenAI GPT-6 Astra and Codex assistance. +This extension directly inherits PR #10, commit +62691e395a0458ce089a1c7b5d89e74291e95e29. The portable producer adapters +modify the retained paired-exclusion and shared-point implementations credited +above. The original licenses, attribution, and Gaussian correction are retained. + +Translated partial-swap and complex phase frames, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen) + +This extension combines icekylinx's PR18 partial-swap construction with a new +multiplicative auxiliary endpoint translation and its contiguous corner, +and an operator-correct complex phase translation with the necessary new +physical histogram and precision guard. It certifies kappa=5499/10^9>2^-18. +The source-frame idea is credited to eumemic's Claude-assisted PR13; nested +basis context is in Zhihao Chen's PR16. PR10, PR7 and all preceding notices +remain in force. Rohan Arun's PR14 independently gives overlapping data corners. +Development used substantial OpenAI Codex assistance. Prior GPT-6 Astra +attribution is retained as recorded, without asserting a runtime model here. +Future research using this contribution should explicitly acknowledge Zhihao +Chen (jacklightChen), cite it, and retain all relevant preceding attribution. +This provenance request adds no license condition; Apache-2.0 is unchanged. +No worldwide first or exclusive-priority claim is made. + +Semantic precision and bulk-resampling composition, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen) + +This extension composes the unchanged PR21 finite interfaces with the RaD +project (hipotures) contribution exposed by PR20, pinned at RaD commit +45d9b60355872041f9275f77c057514def0d45bc. Credit for semantic child bounds, +arbitrary-source routing, phase-cell inverse and bulk resampling belongs +to that source, with its recorded Codex and GPT-6.1-Sol Ultra assistance. +The new contribution is the PR21-specific compatibility, literal scalar +charge, combined row stock and strict kappa=1099/10^8 witness. +Zhihao Chen prepared this composition with OpenAI Codex assistance. +Preserve the previous GPT-6 Astra attribution without inferring the current +runtime model. Future research using this contribution should acknowledge +Zhihao Chen and all other dependencies used. No additional license condition +or worldwide-first claim is imposed. Imported RaD source retains CC0 and its +separate notices; original upstream source remains under its existing license. + +Unequal two-stage composition, 8 October 2026 +Copyright 2026 Zhihao Chen (jacklightChen). Apache-2.0. +With substantial OpenAI Codex assistance; earlier GPT-6 Astra attribution +remains as recorded, without inferring current runtime model identity. +Credit Aurel Prosz (Paureel) for the two-stage topology and paid copy +correction; Swapnil Jain for the linked batching development; icekylinx +for PR24 producers and the controlled inner family; RaD/hipotures for +the semantic/bulk ingredients; and all authors retained above. +This contribution supplies the unequal two-stage compatibility, finite +common-basis witness, actual new producers and kappa=15536/10^9 assembly. +Future research using it should acknowledge Zhihao Chen and cite it, while +retaining credit to all other dependencies. This adds no license condition +and makes no worldwide-first or exclusive priority claim. + +Two-stage dimension refinement (2026-10-08) +Dominik Scholz contributes the (47,45) dimension search, regenerated finite +evidence and assembled witness, with substantial Anthropic Claude Opus 5.5, +OpenAI GPT-6 Astra and Codex assistance. The construction and finite +checkers are inherited from Zhihao Chen's PR29, including Paureel/Aurel +Prosz's paid correction and Swapnil Jain's linked two-stage development; +icekylinx's producer/basis, PR21/23 and RaD/hipotures transfers remain +credited. Rohan Arun's concurrent PR31 is the comparison benchmark. +All earlier notices and licenses are retained. + +Contiguous data blocks at (47,45) (2026-10-08) +This extension uses Rohan Arun's PR31 coefficient rank-partition identities, +search, independent audit, exact moment, parameterized assembly and cutoff +modules, pinned at 02f68f95369c39955c5ffcfddbd75cd83e26b305. Those contributions +and their substantial OpenAI Codex assistance are retained and credited. +Dominik Scholz, assisted substantially by Anthropic Claude Opus 5.5 and +OpenAI GPT-6 Astra/Codex, specializes the construction to (47,45), regenerates +the exact evidence, and refines beta, headroom and rational savings. +All PR29, PR21/23, Paureel, Swapnil Jain, icekylinx, RaD/hipotures and preceding +notices remain in force under their original licenses. diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr33/SOURCE.json b/references/stopped-recursion/pr107/references/copied-centers/pr33/SOURCE.json new file mode 100644 index 0000000000..93a04ab819 --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr33/SOURCE.json @@ -0,0 +1,24 @@ +{ + "author": "Rohan Arun", + "commit": "02f68f95369c39955c5ffcfddbd75cd83e26b305", + "license": "Apache-2.0", + "local_sha256": { + "a5-residual-symbolic.py": "100622b679f5277bb11a53aa312549ba1ce4611086068be183ecf8335b7a90cd", + "assembly_parameterized.py": "75560157128aeb2cd1a67195f921a7ec1e8a720427d26533df5b0a002ca6a2ff", + "corner_search.py": "02cb89638078b6587a8a17f0c000e8a79aa2ce06eb1204a2152820e78cf0256f", + "cutoffs.py": "d3df65291d867e92863ecb4206d7ec230ed1e5c6bc99ee456a76d77b07d133d3", + "independent_param.py": "7c09a1751fde9daa8d8655f3543c84b33fec482640286066e58f7a0ec87cccd3", + "moment.py": "57b6b37538b8d8385cdcd61377e413897dc1b6dd293268dbe7c1f76d5be30cf7" + }, + "modifications": "corner_search.py and independent_param.py parameterize the original selected dimensions; all other imported modules are byte-identical. New composition by Dominik Scholz with substantial Anthropic Claude Opus 5.5 and OpenAI GPT-6 Astra/Codex assistance.", + "pull_request": 31, + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "upstream_sha256": { + "a5-residual-symbolic.py": "100622b679f5277bb11a53aa312549ba1ce4611086068be183ecf8335b7a90cd", + "a5-residual-two-stage.py": "56139d8ded0e9e2bc0424dc35a62bf3ce89d725b8387af21550707219238337e", + "assembly_parameterized.py": "75560157128aeb2cd1a67195f921a7ec1e8a720427d26533df5b0a002ca6a2ff", + "cutoffs.py": "d3df65291d867e92863ecb4206d7ec230ed1e5c6bc99ee456a76d77b07d133d3", + "independent.py": "6602fe221415e245d6900adbc7d01ad47a39e8382398d25971b2880cfff0ecb8", + "moment.py": "57b6b37538b8d8385cdcd61377e413897dc1b6dd293268dbe7c1f76d5be30cf7" + } +} diff --git a/references/stopped-recursion/pr107/references/copied-centers/pr33/two-stage-corners-47-45-note.tex b/references/stopped-recursion/pr107/references/copied-centers/pr33/two-stage-corners-47-45-note.tex new file mode 100644 index 0000000000..1f8bcffeda --- /dev/null +++ b/references/stopped-recursion/pr107/references/copied-centers/pr33/two-stage-corners-47-45-note.tex @@ -0,0 +1,211 @@ +\documentclass[11pt]{article} +\usepackage[margin=1in]{geometry} +\usepackage{amsmath,amssymb,amsthm,booktabs,microtype} +\usepackage[hidelinks]{hyperref} +\setlength{\emergencystretch}{3em} +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\title{Two-stage controlled corners at factor dimensions $(47,45)$\\ +with contiguous data-corner blocks\\ +\large A conditional multiplication saving $1638103206/10^{14}$} +\author{Dominik Scholz, with substantial Anthropic Claude Opus 5.5\\ +OpenAI GPT-6 Astra and Codex assistance\\ +\small composing Zhihao Chen's PR29 and Rohan Arun's PR31 with credited predecessors} +\date{8 October 2026} +\begin{document}\maketitle +\begin{abstract} +PR29 (Zhihao Chen) builds the two-stage partial-swap construction at +factor dimensions $(55,53)$, and PR31 (Rohan Arun) exposes two contiguous +blocks in its data null-corner. Both constructions are parametric in +$(a,b)$ with $a=b+2$. At $(a,b)=(47,45)$ we rebuild both producers with the +exact label audit and regenerate the common-basis prescriptions. We also +regenerate PR31's weight-independent zero-minor certificates, now 1569 of +them, and its exact rational pivot witness. The data profile becomes +$11$ singletons $+[43,37,1933]$. The bit saving is $1638156876/10^{14}$. +With the unchanged PR21 complex circuit, the PR23 semantic/bulk transfer +and the stopped-leaf parameter $\beta=1/20$ and headroom $h=10^{-12}$, the conditional final saving is +$\kappa=1638103206/10^{14}=1.638103206\times10^{-5}>2^{-16}$. This is not a formal +verification or a practical multiplication implementation. +\end{abstract} + +\section{Dependencies, credit and scope} +The construction and proofs are those of the following contributions. +\begin{itemize} +\item Zhihao Chen (jacklightChen), PR29, \texttt{9d963275}: two-stage +composition, common basis, physical list, correction accounting and +assembly. +\item Rohan Arun (rohanarun), PR31, \texttt{02f68f95}: the data-corner +factorization, the rank-partition identities, the search and audit +programs, the exact witness, and parametrized moment, assembly and cutoff +code. +\item Aurel Prosz (Paureel): two-stage topology and paid copy correction. +\item Swapnil Jain: two-stage development. +\item icekylinx: PR24 producer and controlled inner basis, building on +PR18/10. +\item Zhihao Chen: PR21 complex circuit and PR23 semantic/bulk assembly. +\item RaD/hipotures: PR20 semantic, routing, phase-cell inverse and bulk +ingredients. +\item eumemic: source frames and resampling. +\item Douglas Colkitt's framework, OpenAI's upstream manuscript and +Harvey--van der Hoeven's analytic background. +\end{itemize} +All authors and AI-assistance disclosures recorded in \texttt{NOTICE} +remain in force. + +The present contribution consists of: +\begin{enumerate} +\item the dimension choice $(47,45)$; +\item the regenerated finite evidence at those dimensions; +\item the choice $\beta=1/20$; +\item the refined rational savings and headroom $h=10^{-12}$; +\item the recomputed certificate. +\end{enumerate} +No analytic, Gaussian-inverse, uniformity, ordered-affine, exact-recovery +or fixed finite-alphabet multitape hypothesis is removed or added. + +\section{Bit interface at $(47,45)$} +Every step of PR29 is stated for general $(a,b)$ with $a=b+2$, except +finitely many finite checks. These are redone as follows; the details are +in the companion note \texttt{two-stage-47-45-note.tex}. +\begin{itemize} +\item \emph{Producers.} Both are rebuilt with the exact label audit: +$663{,}929$ envelopes, $1{,}327{,}858$ inclusions and $91{,}307$ frames. +\[ +\begin{array}{c|rrrrrr} +h&v_h&c_h&q_h&|\mathcal M_h|&R_h&\ell_h\\\hline +45&14190&309138&42615&5649&346104&1980\\ +47&16215&354791&48692&6135&397348&2162 +\end{array} +\] +\item \emph{Common basis.} The $45$ permutation completions exist because +the residues $\{0,1,3\}$ and $\{40,42,43\}$ are disjoint. +\item \emph{Auxiliary corners.} They are diagonal invertible, of sizes $47$ +and $45$. +\end{itemize} + +Put $m=2115$, $N=230{,}090{,}850$ and $W=11{,}710{,}626{,}180$. Then +\[ + s=Wm-N+2L=24{,}767{,}869{,}848{,}810,\qquad Wm-s=104{,}521{,}890. +\] + +\section{Data corner} +Set $d=a+b-1=91$. The inherited prescriptions restricted to the first $d$ +rows and last $d$ columns are +\[ +R=[0,\ldots,46;1,\ldots,44],\qquad C=[2,\ldots,45;0,\ldots,46]. +\] +The row residue is $\beta_i=i\bmod45$. The column residue is +$\gamma_j=(m-d+j)\bmod45=(j+44)\bmod45$, since $(m-d)\bmod b=44=b-1$, as at +PR31's dimensions. Exactly as in PR31, on the nonzero-coordinate open set +the null corner of $(I-p\xi)\otimes(I-v\nu)$ is diagonally equivalent to +\[ + M_{ij}=x_{R_i}\mathbf 1_{R_i=C_j}+y_{\beta_i}\mathbf 1_{\beta_i=\gamma_j}-1 + =\bigl(F\operatorname{diag}(x_0,\ldots,x_{46},y_0,\ldots,y_{44},-1)G^T\bigr)_{ij}. +\] +Here $f_i$ has ones at $R_i$, $\beta_i$ and the constant, and $g_j$ has ones +at $C_j$, $\gamma_j$ and the constant. + +\begin{lemma}[PR31] +Let $U,V$ have $e$ rows, let $D$ be diagonal, and let the coefficient set +split as $E=X\sqcup Y$. Then +$\operatorname{rank}(UDV^T)\le\operatorname{rank}U_X+\operatorname{rank}V_Y$. +\end{lemma} +If this bound is below $e$, the minor vanishes identically in all weights. + +The claimed rightmost-pivot sequence is +\[ +\begin{gathered} +(0,90);\quad(i,i+46),\ 1\le i\le43;\\ +(44,46),(45,45),(46,44),(47,43),(48,42),(49,41);\\ +(i,i-46),\ 50\le i\le86;\quad(87,3),(88,2),(89,1),(90,0). +\end{gathered} +\] +For each claimed pivot and each still-available column to its right, the +certificate gives a partition $X\sqcup Y$ of the $93$ coefficient +coordinates. Its two integer ranks sum to less than the augmented minor +size. There are $43\cdot42/2+37\cdot36/2=1569$ such minors. All $3138$ +ranks are checked by integer elimination, independently of the +matroid-intersection search that found the partitions. + +The exact normalized witness is +\[ +p_r=v_t=1,\qquad \xi_r=\frac{(r+1)^2}{\sum_{s=1}^{47}s^2},\qquad +\nu_t=\frac{(t+1)^3}{\sum_{s=1}^{45}s^3}. +\] +It is reconstructed over $\mathbb Q$. Rightmost-nonzero elimination +reproduces the $91$ stored pivot values, all nonzero, with run lengths +$1,43,1,1,1,1,1,1,37,1,1,1,1$. The PR29/PR31 finite-product argument places +these minors, the auxiliary and local minors and the basis determinants in +the same irreducible free $\mathrm{GL}_{47}\times\mathrm{GL}_{45}$ family. A +single common rational basis therefore satisfies all of them, and the +address prime is chosen afterwards. + +The runs are physically contiguous: +\begin{itemize} +\item width $43$ uses rows $1$--$43$ and columns $2071$--$2113$; +\item width $37$ uses rows $50$--$86$ and columns $2028$--$2064$; +\item the middle block is $91$--$2023$, of width $1933$. +\end{itemize} +These ranges are disjoint, so no gathering is needed. The data profile is +\[ +11\text{ singletons}+[43,37,1933],\qquad 11+43+37+1933=2024=m-d. +\] +Across the $2N$ data macros, $160N$ singleton calls are removed and $2N$ +calls of each width $43$ and $37$ are added. The weight $W$, the rank mass +$s$, the largest child $2025$, the auxiliary profiles $(47,2021)$ and +$(45,2025)$, the growth profiles and the paid $N$ copy corrections are all +unchanged. + +\section{Exact moment and assembly} +The rational logarithm enclosure and $e^u\le1+u+u^2/[2(1-u/3)]$ certify +$a_b=1638156876/10^{14}$; the next grid point $1638156877/10^{14}$ fails the +same enclosure. + +\paragraph{Row stock.} The bit halving degree is $16$ and the wire +exponent $34$. The coefficient is $16\cdot34+544\cdot41=22848$, and +$47000>(51/25)\,22848$, so the stock is unchanged. + +\paragraph{Stopped leaves.} PR23's stopped complex tree charges leaves at +$ea_b$ fails at PR29's +$\beta=1/10$ ($16.2\times10^{-6}a_b$. PR21 already used $\beta=1/1000$, so +smaller $\beta$ is admissible in this framework; it changes only the +explicit stopped-leaf cutoff, which becomes $357$ bits and stays far below +the common eventual cutoff. + +\paragraph{Assembly.} With $h=10^{-12}$ and +\[ +q=a_b(1-2h),\quad c=q(1+h),\quad \epsilon=\frac{1-h}{1+c+q},\quad +G=\epsilon q, +\] +together with PR23's remaining definitions, all $47$ strict constraints +and seven margins hold. The minimum margin is $G$, and +$G-1638103206/10^{14}>5.9\times10^{-15}$. The next $\kappa$ grid point fails. + +\paragraph{Negative controls.} The following are all rejected: +\begin{itemize} +\item the old guard and old exposures; +\item $\beta=1/10$; +\item a corrupted identity certificate; +\item omitting the data blocks, which lowers the certified saving. +\end{itemize} + +\begin{theorem} +Under the retained analytic and fixed-tape interfaces of PR23/PR29, +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \kappa=\frac{1638103206}{10^{14}}=1.638103206\times10^{-5}>2^{-16}. +\] +\end{theorem} + +\section{Reproduction} +From the repository root at PR29: +\begin{itemize} +\item \texttt{make two-stage-dimensions-producer} rebuilds the +producers ; +\item \texttt{make two-stage-corners-47-regenerate} regenerates the +certificates ; +\item \texttt{make two-stage-corners-47-check} runs all checks . +\end{itemize} +\end{document} diff --git a/references/stopped-recursion/pr107/references/semantic-bulk/MANIFEST.json b/references/stopped-recursion/pr107/references/semantic-bulk/MANIFEST.json new file mode 100644 index 0000000000..983e06d3e2 --- /dev/null +++ b/references/stopped-recursion/pr107/references/semantic-bulk/MANIFEST.json @@ -0,0 +1,23 @@ +{ + "scope": "Selected unmodified proof dependencies and original notices. Source manifests describe their full upstream packages; this manifest describes this curated subset.", + "files": { + "pr23/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "pr23/NOTICE": "5ee775c6435a29e4e516e4280a310898a08edabe0572456614fe0c9c861fba0d", + "pr23/SOURCES.json": "05c64e3516634f6f46e7023abd56caebad8afc79d1f12ffd0d9e9cb18007adea", + "pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "pr21/translated-partial-complex.tex": "c5c9bb75a3eede63ad706eabac58c7d31ee480d92fd7e065f5302e726834ee52", + "rad20/LICENSE": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", + "rad20/NOTICE": "82fc72aff49769ae82a8ce886846d9bd0601827a09c955042d26a61177d14369", + "rad20/SOURCE.json": "63477ee5103e4c1d0d1665bf2d1cfb91af5bcdef59cac6e46f4d6a1579b8eb2e", + "rad20/reports/downstream-semantic-child-guard.md": "dda9f678ab5afee88b70e405fb70ad47fa2273bd940e9daf603831925d0ef087", + "rad20/reports/downstream-semantic-bulk-assembly.md": "ccdeaeac7c6a1c08483fea2285a7d089d782f2c18b7be867c3fc9f77457637fd", + "rad20/reports/compact-arbitrary-source-routing.md": "3df36853a181fd5d331811b5c4859a1980116c69f447eb78c40a551ff28cde79", + "rad20/reports/downstream-phase-cell-inverse.md": "3cdf492bcb719db4295658604dc202d6a2c5a008b87de43ec54f0107c64db730", + "rad20/reports/downstream-microbox-resampling.md": "9598c236eed7e44ac5eb41cc20f7c23249829e195247d15e2857a34e14222c49", + "rad20/reports/bulk-resampling-tape-transfer.md": "cda26d5aca04b9c824eb6c4f50bee564fb7fa908b09a72e76852df5e0b9d2622", + "rad20/reports/whole-complex-concatenation.md": "5781af807210dc3ac740e876cdb8073683ea3658f4b8aa067605608919a8f520", + "rad20/reports/whole-complex-prefix-and-wrapper-qualification.md": "84ebd3bb5327ccd04134db36d0b109b377c6d6cf2c0c82923d1c35b596dc43b2", + "rad20/reports/review-reusable-banded-inverse.md": "801359569c92f9d5ddd128b694993a5ac22a468e87bfea478cecc0ee413d058b", + "rad20/reports/review-phase-cell-inverse.md": "113927dd4fb77a55a457bd5f6da8cbfc7262d0fbc4e9d708b591a1d632e6caf6" + } +} diff --git a/references/stopped-recursion/pr107/references/semantic-bulk/README.md b/references/stopped-recursion/pr107/references/semantic-bulk/README.md new file mode 100644 index 0000000000..528a9d85a7 --- /dev/null +++ b/references/stopped-recursion/pr107/references/semantic-bulk/README.md @@ -0,0 +1,29 @@ +# Adopted proof dependencies + +These selected source files are copied unchanged from the supplied pinned +snapshots. `MANIFEST.json` hashes this curated subset. The original source +manifests remain unchanged and describe their larger upstream packages. + +- **Zhihao Chen (jacklightChen), PR #23**, commit + `661ebabc1076c9f525d7ce4967c876b203fa9827`: semantic compatibility, + scalar-charge and product-row accounting, and bulk assembly. +- **Zhihao Chen (jacklightChen), PR #21**, commit + `5ba6cf0bfb68f2be8d15610e7972207c50254d6a`: translated complex endpoints. + This file retains the parent repository's Apache-2.0 terms, copied in + `pr23/LICENSE`, with attribution in `pr23/NOTICE` and the root `NOTICE`. +- **RaD project (hipotures)**, commit + `45d9b60355872041f9275f77c057514def0d45bc`, exposed through PR #20: + completed-child semantic bounds, arbitrary-coordinate routing, the + phase-cell Gaussian inverse and bulk tape transfer. Its separate CC0 + license and original notice are in `rad20/`. + +The current proof applies these interfaces to the selected finite networks. +Inherited parameter choices and historical claims in these unmodified sources +belong to their authors' original constructions. Exploratory variants and +historical computational review suites are omitted from this subset; the +complete handoff remains outside the submission. + +The two retained reports named `review-reusable-banded-inverse.md` and +`review-phase-cell-inverse.md` contain necessary banded-inverse and +phase-cell error proofs used by the selected analytic interface. Their +historical filenames do not indicate a new external review of this work. diff --git a/references/stopped-recursion/pr107/references/semantic-bulk/pr21/translated-partial-complex.tex b/references/stopped-recursion/pr107/references/semantic-bulk/pr21/translated-partial-complex.tex new file mode 100644 index 0000000000..1b8fb41963 --- /dev/null +++ b/references/stopped-recursion/pr107/references/semantic-bulk/pr21/translated-partial-complex.tex @@ -0,0 +1,234 @@ +\section{Translated auxiliary phase frames for the complex layer} +\label{sec:translated-partial-complex} +We use the retained $h=28$ paired complex producer and its original +three-stage schedule, with the changed endpoints below. This replaces, +rather than combines with, the different complex data-entrance regrouping +in the partial-swap package. The finite producer and its complete frame +checks come from PR~7; whole-residual recursion and the fixed-tape transfer +come from icekylinx's PR~10. The freedom to move auxiliary endpoint frames +is inspired by \emph{eumemic}'s Claude-assisted PR~13. The transfer to +phase operators, complete physical audit, explicit phase certificate, and +enlarged precision guard below are the present contribution. All inherited +conditional hypotheses remain in force. + +\subsection{An operator identity for arbitrary dirty auxiliary inputs} +\label{sec:translated-complex-source} +Let $F=\mathbb F_2^{28}$ with its standard dot product. For a nondegenerate +binary space $U$, let $P_U$ be its orthogonal projector and $C_U$ its +retained phase operator. In common Hadamard coordinates, $C_U$ is diagonal +with entries $i^{\operatorname{wt}(P_Ux)}$. These operators commute and +are invertible over the Gaussian dyadic ring. If $U\perp V$, then +$C_{U\mathbin\perp V}=C_UC_V$: the correction in +$\operatorname{wt}(u+v)=\operatorname{wt}(u)+\operatorname{wt}(v) +-2|\operatorname{supp}(u)\cap\operatorname{supp}(v)|$ is divisible by +four when $u\cdot v=0$ over $\mathbb F_2$. + +For a stage-two invocation let $P,Q$ be its norm-one triple lines. Put +\[ + D_0=P^\perp\otimes F\otimes Q,\qquad D_1=F\otimes F\otimes Q, + \qquad E=P\otimes F\otimes Q. +\] +Then $D_1=D_0\mathbin\perp E$, with dimensions $756,784,28$ respectively. +Each stage-two auxiliary role, including all 29 centers, has first common +gate frame $C_{D_0}$ and last common gate frame $C_{D_1}$. +Give it source operator $C_{D_0}$ and sink operator $C_I C_{D_0}$, +leaving every common gate unchanged. For arbitrary physical input $f$, +interpret the logical input as $g=C_{D_0}^{-1}f$. The scalar identity +restores every auxiliary $g$, so its physical output remains +$C_I C_{D_0}g=C_If$. This is a proof invariant, not executed source +preprocessing: formal denominators of $g$ are never stored. Scalar +cancellation holds for arbitrary arrays over the Gaussian dyadic ring. +Data endpoints, signed scalar exchange, and their corrections are unchanged. + +The first edge is identity; the final edge is exactly +\begin{equation} + (C_I C_{D_0})C_{D_1}^{-1}=C_I C_E^{-1}=C_{E^\perp}. + \label{eq:translated-complex-exit} +\end{equation} +This is multiplicative operator cancellation. Replacing $C_I C_{D_0}$ +by a binary projector expression would incorrectly discard repeated phases. +The common-frame invariant and arbitrary-input scratch restoration permit +this independent endpoint choice on each auxiliary role. + +\subsection{Residual basis and a phase certificate on all addresses} +\label{sec:translated-complex-phases} +Coordinate permutations in the first and third factors reduce every +actual pair $P,Q$ to $t=e_0+e_1+e_2$. They preserve inner products and +integer Hamming weights. An explicit orthonormal basis of $t^\perp$ is +\[ + e_3+e_0+e_1,\ e_3+e_1+e_2,\ e_3+e_0+e_2,\ e_4,\ldots,e_{27}. +\] +An orthonormal basis of $E^\perp$ is the disjoint union +\[ + (\mathcal B_{P^\perp}\otimes\mathcal E_F\otimes\mathcal E_F) + \ \cup\ (t_P\otimes\mathcal E_F\otimes\mathcal B_{Q^\perp}). +\] +The two orthogonal parts have dimensions 21168 and 756. Their total +$21924=m-28$ is proper and nonalternating. Of the basis vectors, 18900 +have weight $1\bmod4$ and 3024 have weight $3\bmod4$. The whole-residual +identity uses one width-$21924f$ child, two parity-sign passes, and +constant phase $(-i)^{3024f}=1$. The sign passes remain necessary. +Inverse orientations use the inverse signed wrappers; all other residual +bases and both orientations retain their previous complete checks. + +The control additionally proves the phase equality on every binary address. +Set +\[ + \delta(x)=\operatorname{wt}(x)+\operatorname{wt}(P_{D_0}x) + -\operatorname{wt}(P_{D_1}x)-\operatorname{wt}(P_{E^\perp}x)\pmod4. +\] +Its polarization is +$2x^t(I+P_{D_0}+P_{D_1}+P_{E^\perp})y=0\pmod4$, by the symmetric +idempotent projector identities. Hence $\delta$ is additive. +On the 21952 coordinate vectors the weight triples are $(0,0,1)$, +$(3,3,1)$, $(6,3,8)$, with counts 19600, 2100, 252. The script checks +every coordinate and obtains zero in each case. Additivity proves +$\delta=0$ on all $2^{21952}$ addresses. Tensor Gram identities and the +coordinate-permutation reduction cover every actual invocation. + +\subsection{Every physical edge and the exact time moment} +\label{sec:translated-complex-edges} +The retained parameters are +\[ + h=28,\quad v=3276,\quad R=93838,\quad m=21952, + \quad B=v^2(R+29)=1007397164592, +\] +\[ + W=2v^2(v+R+29)=2085111546336,\quad + D=2v^3-6v^2h(h+1)=18030055680, +\] +\[ + s=Wm-D=45772350635112192. +\] +Each of the $B$ changed roles replaces ranks $756,21168$ by $0,21924$. +Width, total rank, and deficit are unchanged. The complete histogram is +$3v^2$ times the following local histogram, plus four external classes: +\begin{small}\[ +\begin{split} +(H_1,\ldots,H_{28})={}&(93912,23891,21224,31667,13552,9128,9240,10912,\\ + &5656,8456,4284,7598,4872,7448,4536,7803,4228,8232,\\ + &4872,7482,7224,5901,8400,11550,1512,5180,6552,87). +\end{split} +\]\end{small} +\[ +\begin{array}{c|rrrr} +\text{rank}&21896&21924&729&21141\\\hline +\text{copies}&B&B&2v^3&2v^3 +\end{array} +\] +These are respectively the shared auxiliary join, new auxiliary exit, +and the stage-two and stage-three data entrances. No rank-$m$ edge occurs. + +The audit executes the actual compiled forward and inverse/complement +schedules at global tensor dimensions. It counts every incident wire, +including unchanged controls, every carrier, all data boundaries, and the +shared bank. A separate count from DAG degrees and label dimensions plus +the four macro classes gives exactly the same histogram. The gate offset +in stage $j$ is $(h^{j-1}-1)h$. Stage one ends its auxiliary bank at $h$; +stage three starts the shared bank there, so no endpoint or join is counted +twice. The dimension-27 local entries include both physical data frontiers. + +Let $n_r$ be the complete histogram. Put $a_c=18/10^6$ and +$\sigma=1-a_c$. Exact rational upper bounds $\ell_r\ge\log(m/r)$, +obtained from the atanh series with powers-of-two range reduction, give +\[ + \frac1W\sum_r n_r(r/m)^\sigma + \le\sum_r\frac{n_rr}{Wm}\frac1{1-a_c\ell_r}<1. +\] +All denominators are positive. The exact certified gap exceeds +$6.6652\times10^{-9}$; this decimal only reports a lower bound on the +rational certificate. The rank weights sum exactly to $1-D/(Wm)$. + +\subsection{A precision guard across endpoints and stage boundaries} +\label{sec:translated-complex-guard} +Keep the original common-gate dimension potential. Give a changed source +potential $756$ and its sink the formal potential $m+756=22708$. +The latter is bookkeeping, not a binary subspace: its difference from the +last actual gate dimension $784$ is precisely the new rank $21924$. +Every physical edge rank is the absolute change in potential; a scalar +gate permits a path to change role without changing its common potential. +The only decreasing edges are the retained central returns, losing $h$ +each. Invocations in one stage are disjoint, so a path meets at most one +return per stage. Telescoping across the entire physical path gives +\[ + \sum_i r_i\le q'=m+(h^2-h)+6h=22876. +\] +This includes paths entering stage-two auxiliaries from data. The old +$m+6h$ cannot be reused, because such a path may reach the enlarged exit +without traversing the removed auxiliary entrance. + +The finite audit conservatively connects every incident input at each +gate to every incident output. At each tensor-stage data boundary it uses +the maximum over the entire incoming data bank, covering all coordinate +permutations. For the shared bank it preserves the exact per-role depths +from stage one into stage three: the local programs and zero initial +depth are identical, and the bank matching preserves local role indices. +It bounds the maximum rank sum by 22820 and the maximum squared-rank sum +by 481197866. These are conservative envelopes, not claimed realizable +maximizing paths. + +Every recursive child stays within its parent role. Frame basis changes, +row splitting, and parking permute addresses without creating cross-role +arithmetic dependencies. Therefore physical coefficient paths project to +scalar paths with $\sum r_i\le q'$ and $r_i\le M=m-h=21924$. +Since $M