From 10255d48152ed9f159f7c51028b1fc34a4ccc982 Mon Sep 17 00:00:00 2001 From: Jeremy Kothe Date: Tue, 13 Oct 2026 05:04:39 +1100 Subject: [PATCH] Conditional kappa 0.001622285497914735: exact per-time-Hall owner map for the PR604 cold-ended witness --- research/complex-571-cold14-r1/LICENSE | 201 + research/complex-571-cold14-r1/MANIFEST.json | 43 + research/complex-571-cold14-r1/NOTICE.md | 27 + .../PROOF-COMMUTING-PREFIX.md | 91 + research/complex-571-cold14-r1/README.md | 155 + .../complex-571-cold14-r1/code/assemble.py | 213 + .../code/assembly_controls.py | 251 + .../code/audit_allcold.py | 232 + .../code/bind_providers_portable.py | 66 + .../code/build_cold_end.py | 125 + .../code/build_gate_moves.py | 61 + .../complex-571-cold14-r1/code/build_hpe.py | 123 + .../code/cold_end_controls.py | 86 + .../code/emit_allcold.py | 144 + .../code/generated_identity.py | 62 + .../code/generated_identity_controls.py | 227 + .../code/hpe_adapters_local.py | 116 + .../code/hpe_audit_and_transport.py | 301 + .../code/hpe_audit_local.py | 171 + .../code/hpe_controls_atc.py | 119 + .../code/hpe_emit_local.py | 163 + .../code/invoice_allcold.py | 323 + .../code/phase_timing_controls.py | 36 + .../complex-571-cold14-r1/code/witness.py | 38 + .../complex-571-cold14-r1/data/OWNERS.json.gz | Bin 0 -> 420827 bytes research/complex-571-cold14-r1/data/PLAN.json | 43331 ++++++++++++++++ research/complex-571-cold14-r1/data/SPEC.json | 2860 + .../data/recipes/atm3-step0-promote.json | 1 + .../recipes/atm3-step1-greedy_kernels.json | 561 + .../recipes/atm3-step2-frame_coalesce.json | 173 + .../atm3-step3-gate_move_coalesce.json | 85 + .../recipes/atm3-step4-hyperplane_end.json | 649 + .../data/recipes/atm3-step5-cold_end.json.gz | Bin 0 -> 32701 bytes .../data/recipes/ck-step0-greedy_kernels.json | 550 + .../data/recipes/ck-step1-frame_coalesce.json | 173 + .../recipes/ck-step2-gate_move_coalesce.json | 85 + .../data/recipes/ck-step3-hyperplane_end.json | 649 + .../data/recipes/ck-step4-cold_end.json.gz | Bin 0 -> 32702 bytes .../recipes/jp8-step4-hyperplane_end.json | 649 + .../data/recipes/jp8-step5-cold_end.json.gz | Bin 0 -> 30748 bytes research/complex-571-cold14-r1/verify.py | 283 + research/complex-571-cold14-r1/verify.sh | 14 + 42 files changed, 53437 insertions(+) create mode 100644 research/complex-571-cold14-r1/LICENSE create mode 100644 research/complex-571-cold14-r1/MANIFEST.json create mode 100644 research/complex-571-cold14-r1/NOTICE.md create mode 100644 research/complex-571-cold14-r1/PROOF-COMMUTING-PREFIX.md create mode 100644 research/complex-571-cold14-r1/README.md create mode 100644 research/complex-571-cold14-r1/code/assemble.py create mode 100644 research/complex-571-cold14-r1/code/assembly_controls.py create mode 100644 research/complex-571-cold14-r1/code/audit_allcold.py create mode 100644 research/complex-571-cold14-r1/code/bind_providers_portable.py create mode 100644 research/complex-571-cold14-r1/code/build_cold_end.py create mode 100644 research/complex-571-cold14-r1/code/build_gate_moves.py create mode 100644 research/complex-571-cold14-r1/code/build_hpe.py create mode 100644 research/complex-571-cold14-r1/code/cold_end_controls.py create mode 100644 research/complex-571-cold14-r1/code/emit_allcold.py create mode 100644 research/complex-571-cold14-r1/code/generated_identity.py create mode 100644 research/complex-571-cold14-r1/code/generated_identity_controls.py create mode 100644 research/complex-571-cold14-r1/code/hpe_adapters_local.py create mode 100644 research/complex-571-cold14-r1/code/hpe_audit_and_transport.py create mode 100644 research/complex-571-cold14-r1/code/hpe_audit_local.py create mode 100644 research/complex-571-cold14-r1/code/hpe_controls_atc.py create mode 100644 research/complex-571-cold14-r1/code/hpe_emit_local.py create mode 100644 research/complex-571-cold14-r1/code/invoice_allcold.py create mode 100644 research/complex-571-cold14-r1/code/phase_timing_controls.py create mode 100644 research/complex-571-cold14-r1/code/witness.py create mode 100644 research/complex-571-cold14-r1/data/OWNERS.json.gz create mode 100644 research/complex-571-cold14-r1/data/PLAN.json create mode 100644 research/complex-571-cold14-r1/data/SPEC.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step0-promote.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step1-greedy_kernels.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step2-frame_coalesce.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step3-gate_move_coalesce.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step4-hyperplane_end.json create mode 100644 research/complex-571-cold14-r1/data/recipes/atm3-step5-cold_end.json.gz create mode 100644 research/complex-571-cold14-r1/data/recipes/ck-step0-greedy_kernels.json create mode 100644 research/complex-571-cold14-r1/data/recipes/ck-step1-frame_coalesce.json create mode 100644 research/complex-571-cold14-r1/data/recipes/ck-step2-gate_move_coalesce.json create mode 100644 research/complex-571-cold14-r1/data/recipes/ck-step3-hyperplane_end.json create mode 100644 research/complex-571-cold14-r1/data/recipes/ck-step4-cold_end.json.gz create mode 100644 research/complex-571-cold14-r1/data/recipes/jp8-step4-hyperplane_end.json create mode 100644 research/complex-571-cold14-r1/data/recipes/jp8-step5-cold_end.json.gz create mode 100644 research/complex-571-cold14-r1/verify.py create mode 100644 research/complex-571-cold14-r1/verify.sh diff --git a/research/complex-571-cold14-r1/LICENSE b/research/complex-571-cold14-r1/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/complex-571-cold14-r1/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/research/complex-571-cold14-r1/MANIFEST.json b/research/complex-571-cold14-r1/MANIFEST.json new file mode 100644 index 0000000000..1c3d07e297 --- /dev/null +++ b/research/complex-571-cold14-r1/MANIFEST.json @@ -0,0 +1,43 @@ +{ + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE.md": "70d718df296439d2df1a0da6e4f0a1c824a4782b0a072751074f3bf187f11231", + "PROOF-COMMUTING-PREFIX.md": "59899b2a1a76d88275e57f983c0aea391dc2c7f1d2d66c33b92429be0a1cf5e1", + "README.md": "15ea82f9738d67cd7edf40e9983ee673d8da74ad86225a2f28da4508dda23057", + "code/assemble.py": "7d3b340817ff0e2b9054286c24af622500d31c3b175caec14dacd71e5a3e5414", + "code/assembly_controls.py": "7ec40d7a223b3525ef672b2d491979f11d9be913b90c9fe5ae54160ae91538a2", + "code/audit_allcold.py": "e92859025b6e853a8060f5ec63146f8b40ea01978b52b3c1920e2e3a750a7c71", + "code/bind_providers_portable.py": "ff9c025f628dcf16b6ba281d288bd80aa418ee9685ab90b8266049fbd1b01c93", + "code/build_cold_end.py": "39bde5d87e84c683a8ab83a66fe103f31a63b1007d9320029c73b8f68cfbab74", + "code/build_gate_moves.py": "08bf1c2652307aeefbab089fdaf02f82e2c396ca23a1eb68e294a67e74c44252", + "code/build_hpe.py": "ba2001695d8c7547a82260c3b016e01dac686e95a61757ca124eb9879078ea8e", + "code/cold_end_controls.py": "e4947d8639dfb7eda67be52b095f10a9eb3937b24dc9e7a2b810cf29f20adb06", + "code/emit_allcold.py": "5b4a6fffbdff16e27f87683274470a0a21ae224ff55f34b9839f451f2930d517", + "code/generated_identity.py": "c8af22719c0f3097a991a3f6ccac8f090afd2faba554745733d9ea88f2c25708", + "code/generated_identity_controls.py": "5ea88b559f0e8f29c6a3c814d6abcd2007abcff97d6bd2acced3fafda074375d", + "code/hpe_adapters_local.py": "eb0b5c6c7161e18dc22168da3211448d321586edd15bcfb4b4741174d36993cf", + "code/hpe_audit_and_transport.py": "4aa2e230bec9fd5c46937b10d3611f572cf2e5048600f3f42b2cadd27883aa4b", + "code/hpe_audit_local.py": "6bd9a1e279c9c9e4f3767d9f82e537b559292906feb2ddab02f380fb6523a810", + "code/hpe_controls_atc.py": "63aa3909b5bfd3bf270c313bebb5c46e7789c67a8f2439f568bc4b2b4a35d17b", + "code/hpe_emit_local.py": "7e4a6fbc38c8228157b6311457d1496bf460291393043932d2c365f004f77805", + "code/invoice_allcold.py": "308800f513c73dfb1aacd42e44092b52f5b00e9db45de4fb18d0653c3e97e027", + "code/phase_timing_controls.py": "1692ccee3da4b1781408d126ee4999f3e31a505cd83c64823a404033da3a6339", + "code/witness.py": "73161e25b354ee2acdfdc1abe0c925290d1e6eb9dfcf2b309f610cb90eaebac4", + "data/OWNERS.json.gz": "61783b9832b2684ddea6be870c635832304e9e0029b6bd72274d7ee0589e80a0", + "data/PLAN.json": "91e60c12c364c44efe62d489beef82cfe90939b72b4dc50a9041dbb9ba966784", + "data/SPEC.json": "1fb889491a88a0b365bd1c7c265b05f7c2dd99c47820b44e1e75d0ed069eda98", + "data/recipes/atm3-step0-promote.json": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "data/recipes/atm3-step1-greedy_kernels.json": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "data/recipes/atm3-step2-frame_coalesce.json": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "data/recipes/atm3-step3-gate_move_coalesce.json": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "data/recipes/atm3-step4-hyperplane_end.json": "aaf94d63a3756211f08d73ebe30bcba5554bf543b77311294aaff3ab3bfb5d13", + "data/recipes/atm3-step5-cold_end.json.gz": "a1669e97de185a9eb054f95dcf54f0c99b11fd51a71fb4b7d8b161fa2ad8a8b0", + "data/recipes/ck-step0-greedy_kernels.json": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "data/recipes/ck-step1-frame_coalesce.json": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "data/recipes/ck-step2-gate_move_coalesce.json": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "data/recipes/ck-step3-hyperplane_end.json": "e771ec08d638071283afed235bf4d35550b38bebe648d2a0377a430e96327e15", + "data/recipes/ck-step4-cold_end.json.gz": "0190c405f59859d1c4750557c14e2dd39a39b75411b320d5b9c280a654608671", + "data/recipes/jp8-step4-hyperplane_end.json": "7e3d021c7498b3a65345d74d008af5aa87249ec1dc082914ea0beb17908f8f81", + "data/recipes/jp8-step5-cold_end.json.gz": "56f5be104c6a943115ffd845c0967b552870fc5da96e74aecc15dea9a3c8d77a", + "verify.py": "1d3aca7d1ce35fd5c55189641e8f14478b5540e3e6ac81f13572ca109d982eb4", + "verify.sh": "a712359dbf33033c93ff17e2fdc6d15249bc2b0eec8876ffbb30293f69b22291" +} diff --git a/research/complex-571-cold14-r1/NOTICE.md b/research/complex-571-cold14-r1/NOTICE.md new file mode 100644 index 0000000000..fe3e3f3efe --- /dev/null +++ b/research/complex-571-cold14-r1/NOTICE.md @@ -0,0 +1,27 @@ +# Attribution and scope + +Four verified provider types are offered to every call: PR571's prefix word with twelve multi-cut cold kernels (PR568's unchanged constructor), the same word with forty width-five entrance promotions (PR569's unchanged frame constructor) before those kernels, PR575's plain joint-prefix provider, and PR568's eight-cold provider. A window MILP with an exact per-pattern model chooses the dispatch and a literal owner map. PR583's six source-bound kernel frame coalescences (its unchanged constructor and negative controls) are applied to every PR571-prefix provider word (ck and atm3), followed by two further coalescences that each first move one addition past two commuting additions (package code/build_gate_moves.py, extending PR583's constructor); a final hyperplane_end step (package code/build_hpe.py) then runs 46 single-gate cleanups h -= p right after part B at the dim-8 join U of their registers, so 46 width-8 entering helpers per call end at U with width 7; each such gate commutes with every earlier cleanup gate on its registers (for 8 of them the partner's one earlier gate x -= p only reads p), and the reordered program is replayed exactly. A window MILP (exact windows, RINS around an LP vertex) gives the dispatch ck 45 / atm3 21 / jp8 6 and the literal owner map. + +Pinned external sources (unchanged; `verify.py` checks their manifests and every file it uses): +- PR568 (`research/complex-multicold`, commit `71c99ac935a33bb7b59a1b4a7af8725a939b0b90`). +- PR571 (`research/structural-gain`, commit `b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3`). +- PR569 (`research/larger-gain`, commit `897213a855b7fb8a1b8b0e552a2f5c42e6c1b326`). +- PR575 (`research/complex-joint-prefix`, commit `eac6f7e378ab622dac50a2fd4b7ef6eab014de44`). +- PR583 (`research/kernel-frame-coalescing`, commit `89be768f0157f5a3d8e4db69cf1748768605eac9`). + +Provider construction is described as typed steps in `data/SPEC.json` (`build`); `verify.py` runs only allowlisted step types with their paired omission audits and checks every input and output content hash. `code/` holds the spec-driven global admission scripts adapted from PR571's `frontier-composition/global-code/` (OpenAI Codex assisted, Apache-2.0): every expected value is read from `data/SPEC.json` and compared only after independent recomputation. `code/generated_identity.py` and `code/generated_identity_controls.py`, and the decompressed-content artifact identities in the bind, audit, invoice, assembly and phase-timing scripts, are taken unchanged from PR586 by chafreaky (`research/promoted-kernel-coalescing`, commit `4846fee5b06af770e9b3a10c36200f673d656725`, OpenAI Codex assisted, Apache-2.0), including its proof-content and reference/metadata mutation controls; the normalization of descriptive width metadata after frame changes follows the same PR. + +The owner map was nominated by a HiGHS window MILP (adapted from PR569's `global/nominate_width7.py`) with lazy cross-time Hall cuts; it is not an admission dependency. + +Prepared by Claude Code (Anthropic) research agents. Apache-2.0 applies; LICENSE is included. All notices, licenses, source pins and AI disclosures of the pinned sources and their ancestry are retained in those packages and are not replaced by this notice. All inherited conditional assumptions remain conditional. + +**This package (complex-571-cold14, DreamingOfClouds).** It starts from PR601 (jeremykothe2, `research/complex-571-hpem46`, commit `529ab7dcb59d5ea7a5798e9e06cf5b3aee8a1550`). Everything above is kept unchanged except the following: +- every provider chain (ck, atm3, jp8) gains the typed step `cold_end` (`code/build_cold_end.py`, `code/cold_end_controls.py`; recipes `data/recipes/*-cold_end.json.gz`); +- the generalised native chain and the global admission scripts accept cold helpers that end below FULL (with `0:U` wrappers), a refactored exact cleanup, and check the wrapper order; +- `data/PLAN.json` / `data/OWNERS.json.gz` (dispatch and literal owner map) come from a relocate/swap/ejection-chain/provider-flip annealing search started from PR601's map (not an admission dependency); +- `data/SPEC.json` holds the expected values, recorded by a discovery run and then checked by a strict run. + +The cold-end construction (a row-plus-column cone condition for low-frame ends, a rank-0 dirt-spread premix and multi-gate lower-frame cleanup) builds on PR591 / PR592 / PR593 / PR601 (jeremykothe2) and our PR599 (Lean: multi-gate and cold hyperplane-end tails). DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. Build on this at your own risk. + + +**This package (complex-571-cold14-r1, jeremykothe2).** It is PR604's `complex-571-cold14` (DreamingOfClouds, commit `af8c23b`) with only the literal owner map, plan windows/profile and expected values changed, from an exact per-time-Hall window MIP. All construction, code, controls and proofs are PR604's and earlier contributors', unchanged. diff --git a/research/complex-571-cold14-r1/PROOF-COMMUTING-PREFIX.md b/research/complex-571-cold14-r1/PROOF-COMMUTING-PREFIX.md new file mode 100644 index 0000000000..f3ab78dba0 --- /dev/null +++ b/research/complex-571-cold14-r1/PROOF-COMMUTING-PREFIX.md @@ -0,0 +1,91 @@ +# Hyperplane ends past a commuting cleanup prefix (46 helpers per call) + +Status: for independent review. Code: `scratch/MultiHPEScout/pipe/` (a copy of `scratch/Pipeline`; only +`code/build_hpe.py` and `code/hpe_controls_atc.py` differ). Lean: PR #593 (`research/hyperplane-end-lean`, Tail.lean / +Main.lean / Labels.lean) and PR #599 (Multi.lean), archived at `scratch/MultiHPEScout/research/hyperplane-end-lean`. + +## 0. The change + +`build_hpe.py` (#596) admitted an early cleanup gate `g = cleanup[i] = h -= p` only when `g` was the **first** cleanup +gate on both `h` and `p`. The relaxed rule admits `g` when it **commutes with every earlier cleanup gate on its registers** +(`commute()` in build_hpe.py: neither gate writes a register the other touches, or both are additions into one target +and neither reads the other's target). All other conditions are unchanged: `h` is an entering helper with exactly one +cleanup gate, `U` = join of the last A/B frames of `h` and `p` (dim 8), early gates share no register. + +On #596's ck, atm3 and jp8 words this admits 8 more helpers per word (38 → 46): `h ∈ {496, 497, 520, 521, 544, 545, +568, 569}`. In each case the partner `p` (299, 33, 331, 105, 363, 41, 395, 97) has exactly one earlier cleanup gate, +`x -= p` (x = 283, 9, 315, 65, 347, 1, 379, 73; cleanup 440–447), which only **reads** `p`. `h` has no earlier cleanup +gate. E is dim 1 ((24) or (30)), the last frames of h / p have dim 7 / 5 and U has dim 8. + +Per helper: width 8 → 7; paid `{1:+2, 2:−1, 3:+1, 4:−1}` (h 7→9 becomes 7→8; p 5→9 becomes 5→8→9). Rank mass −1 with +hosted width −1, so total mass and the 2560 deficit are unchanged. The constructor's profile is reproduced by an +independent build of coldk-hpe with the same rule (`coldk-multi.exe info`). + +Multi-gate tails and cold E = ⊥ helpers (#599) admit nothing further on these words; see `CENSUS.md`. + +## 1. Why #593's hypotheses still hold + +#593's theorems are about the word **as executed**, `a ++ tail ++ b ++ [post]`. Nothing in them refers to the original +cleanup order: the order matters only through the scalar hypothesis `hS` (unit helper row, zero column), which the +tools check on the reordered program. + +1. **Labels** — `hpe_labels` (Tail.lean:44; equally `hpe_labels_multi`, Multi.lean:195, as the one-gate instance via + `tail_eq_mtail`). Hypotheses: + * `ha`: `a` = precondition + compensation + A + cut + B is the inherited part, unchanged. + * `tail h p Ah Ap U q` is well labelled by `tail_labels` (Tail.lean:30): h and p climb to U, the gate runs at U (G0). + * `hb`: `b` = the final climbs + the remaining FULL cleanup. The skipped gate `x -= p` now runs in `b` after `p` has + climbed U → FULL in the final phase, so both operands are at FULL (G0). `b` is well labelled exactly as for the 38 + (the partner of each of the 38 likewise continues U → FULL). + * `hmv`: no event of `b` moves `h`. True because `h` has exactly one cleanup gate (constructor assert; audit assert + `cleanup on non-FULL end`, hpe_audit_and_transport.py:216). + The skipped gate touches `p` and `x`, never `h`, so the relaxation does not affect `hmv`. +2. **Scalars** — `hS` and the endpoint (E). `hpe_audit_and_transport.py:116-124` replays `precondition + compensation + + A + cut + B + tail + rest` exactly (forward and inverse-transpose, all 728 columns) and asserts the inherited scalar + identity. Why it passes: as matrices, `t += a·s` is `I + a·E_ts`, and + `(I + a E_ts)(I + b E_uv) = I + a E_ts + b E_uv + ab·[s = u]·E_tv`. For `x -= p` (t = x, s = p) and `h -= p` + (u = h, v = p): `s = p ≠ h = u` and `v = p ≠ x = t`, so both products equal `I − E_xp − E_hp`; the gates commute and the + reordered program is the same linear map as the original. A skipped gate that **writes** `p` (`p += c·y`: t = p = v) + or touches `h` fails this and is refused by the constructor; any such move that reached the audit is rejected by the + replay (control below). +3. **(N)** — the new helpers use (E, U) pairs `((24), U₂₄)` and `((30), U₃₀)`. The wrapper check + (`hpe_adapters_local.py`, `WRAPPER-CHECKS.json`) checks T_U T_E⁻¹ = L (C_[7] ⊗ I) R exactly with phase for **every** + (E, U) pair of the emitted word; #593's `factor_of_exact` then gives (F), and `hpe_word` (Main.lean:86) gives the + endpoint `χ⁻¹ (C_[7] ⊗ I₂) χ`. `code/check_hpe_pairs.py` (#593 §4) re-checks the shape on the emitted local run. +4. **Accounting** — unchanged rules: width = |final| − |E| at the emit/audit/invoice sites, mass neutrality as in + `HostingShapeScout/PROOF-HYPERPLANE-END.md` §2 (the partner pays last → U → FULL, h pays last → U). + +No verifier rule changes: the audit, emitter, adapters, invoice and global stage already accept any exact reordering. +Only the constructor's admissibility rule (a sufficient condition for the replay to pass) is widened. + +## 2. Negative controls (`code/hpe_controls_atc.py`, run by verify.py's hyperplane_end step) + +Inherited raw-word controls (8), all rejected; the first is the audit-level one for this change: an early gate that does +not commute with its skipped prefix (a gate whose source was written by an earlier cleanup gate) is rejected by the +exact replay. + +New controls (13; PrefixReviewer fixes applied). Every constructor control must fail with a **pinned** assertion message +(`NONCOMMUTE` = "cleanup gate does not commute with the skipped cleanup gates on its registers", `ONEGATE` = "helper must +have exactly this one cleanup gate"); a different failure aborts the control run. Helpers are paired with their early +gate through the gate's target `cleanup[i][1]` (checked against `helper_final`), not through dict order. +* Synthetic, gate inserted at the head of the cleanup (skipped by the first early gate `h -= p`): + positive `x -= p` (only reads p) accepted; `p -= x` → NONCOMMUTE; `p *= −1` → NONCOMMUTE; + an extra gate reading `h` → ONEGATE; an extra gate adding into `h` → ONEGATE (these two exercise the one-gate rule, + not the commutation check). +* Real helpers: for each helper admitted only by the commutation rule (496, 497, 520, 521, 544, 545, 568, 569 on ck), + its actual skipped gate `x -= p` (cleanup 447 … 440) is flipped in place to `p -= x` → NONCOMMUTE (8 controls). The + unflipped word's own changes are re-built (positive). +* Raw word (audit): `local_profile['1'] −= 8` (the 8 new partners' U → FULL climbs not charged) → rejected by the + audit's paid-profile assert. + +Result on `w_ck`: `PASS 21 HPE raw-word mutations rejected` (9 raw-word + 12 constructor). + +## 3. Evidence from the strict build (`prop_m46/build`, pipe/propose.py --until build, dev reuse of baseline558 only) + +* `{ck,atm3,jp8}-step*-hyperplane_end-construction.log`: `PASS 46 hyperplane-ended helpers` each. +* `{ck,atm3,jp8}-step*-hyperplane_end-controls.log`: `PASS 12 HPE raw-word mutations rejected` each (8 inherited + 4 + constructor; the positive reader case built). +* `{ck,atm3,jp8}-local/WRAPPER-CHECKS.json`: `PASS_RESIDUAL_WRAPPERS_ARE_EXACT`; plus the local native checks + (all-columns-native-frames = exact replay of the reordered program, phase edges, reflected ledgers, independent local + controls) that the build runs on every provider. +* #593's independent instance check `code/check_hpe_pairs.py RUN --mutants` on each local: PASS, 46 helpers, 3 distinct + (E, U) pairs (24 / 12 / 10 helpers; #596 had 24 / 8 / 6 — the same three pairs), 6/6 mutants rejected. diff --git a/research/complex-571-cold14-r1/README.md b/research/complex-571-cold14-r1/README.md new file mode 100644 index 0000000000..d1334a775f --- /dev/null +++ b/research/complex-571-cold14-r1/README.md @@ -0,0 +1,155 @@ +# complex-571-cold14-r1: conditional κ 0.001622285497914735 + +This package is PR604's `complex-571-cold14` (DreamingOfClouds) with an improved literal owner map at the same dispatch (ck ×44, atm3 ×22, jp8 ×6). The map comes from an exact per-time-Hall (König-realizable) exact-window MIP, solved by RINS around the exact-window LP vertex. Only `data/OWNERS.json.gz`, `data/PLAN.json` (profile/windows) and `data/SPEC.json` (expected values) differ; the construction, code and controls are PR604's, byte for byte. The rest of this README is PR604's, with paths updated. + +**Build on this at your own risk.** DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. This package awaits independent review. + +## Result + +κ = **0.001620147045734211** (conservative model 0.001620147042858282). That is **+0.368% over PR601** (0.001614202339036103) on dispatch ck ×44, atm3 ×22, jp8 ×6. The value comes from `ASSEMBLY.json` of the strict `verify.py` run on this package's literal owner map. The paid profile is {1:185869, 2:32471, 3:23609, 4:14128, 5:5040, 6:2016, 7:6, 8:581, 16:15, 24:1, 32:76, 48:2039} (live 7168, deficit 2560). + +The complex side binds: + +| quantity | value | +|---|---| +| native complex lower bound | 0.001622776181770995425298 | +| bit supplier value (PR543) | 0.0016538 (`bit_lower` 0.001653826988146798944268) | +| κ with the bit cap | 0.001620147045734211 | +| κ without the bit cap | 0.001620147045734211 | + +The bit value is above the complex bound, so it does not bind, and κ is the same with or without the cap. + +## What changes relative to PR601 + +PR601 (jeremykothe2) dispatches three provider words: **ck**, **atm3** and **jp8**. In each word, 46 entering helpers per call end at a hyperplane. The mechanism comes from PR591, PR592 and PR601. The Lean side is Lemma A with an arbitrary terminal frame (PR593) and multi-gate tails (PR599). + +This package appends one typed build step, `cold_end`, to each of the three chains, after `hyperplane_end`. In every call, 14 **cold** factory-scratch helpers end at a **4-dimensional frame U_b** instead of FULL, so their residual width drops from 9 to 4. These helpers are `S b.10`, one per factory block b: registers 234, 250, …, 442. The step has three parts. + +1. **Premix.** 142 rank-0 gates at frame `[]` sit at the head of section A. For each block b, the premix swaps the dirt of `S b.0` and `S b.10`. It then fans the candidate's initial value out into `S b.1 … S b.7` with ±1 coefficients. The premix runs after the entry adapters and paid wrappers, so every gate on a cold-ended helper follows its pre-wrapper R_{0,U}^-1. The compensation reads no cold-ended helper. +2. **Lower-frame cleanup.** For each candidate h, four multi-gate tail gates run right after B at frame U_b: + - `h += −½·P_a` + - `h += P_b` + - `P_c += h` + - `P_d += h` + + Here P_a … P_d are data ports whose end-of-B frames lie in U_b. After these gates, h's row and column of the state are unit vectors. The 46 inherited hyperplane-end gates follow unchanged. +3. **Exact FULL remainder.** A dyadic Gauss–Jordan refactorisation of the rest of the inverse replaces the literal reversed-inverse cleanup. It touches no helper that ends below FULL. + +**Why the premix makes this possible.** A helper h can end at a frame U only if two things hold at the end of B, under every monotone common-frame cleanup: +- the row of h in the inverse state map is supported on registers whose frames lie in U; +- the column of h (every register carrying h's initial dirt) is supported on registers whose frames lie in U. + +The premix spreads each candidate's initial dirt over `S b.0 … S b.7`. That collapses its dirt column to three low-frame registers, which is what makes the dim-4 frame reachable. + +Effect per call and per provider: +- the paid local profile changes by {1:+28, 5:+14, 6:−28}; +- 14 helpers go from width 9 to width 4. + +The dispatch and the literal owner map are re-solved for the new widths (`data/PLAN.json`, `data/OWNERS.json.gz`). They come from an annealing search started from PR601's map, using relocate, swap, ejection-chain, bin-evacuation and provider-flip moves. Every inherited window, family and capacity constraint is kept. + +The approach borrows from the uncomputation literature: Bennett 1989; Gidney 2015 (borrowed dirty ancillas); Häner–Roetteler–Svore 2017. + +## Why the cold ends are legitimate + +**Labels and realisation.** PR599's `hpe_labels_multi` / `hpe_word_multi` (Lean) cover: +- any number of tail gates per helper, as target or partner; +- interleaved helpers; +- any terminal frame; +- an unrestricted entrance, so the cold case E = ⊥ is included. + +`exact_cold` reduces (N) for (⊥, U) to a monomial factorisation of T_U, which is how `canonical_frame` defines T_U. + +**(N) for every (0, U_b) pair.** This is checked exactly here. `hpe_adapters_local.py` verifies L^-1 T_U R^-1 = C_[4] ⊗ I, global phase included, for all 14 dim-4 pairs. It rejects these wrapper mutants: +- identity pre or post wrapper; +- no wrappers; +- FULL decode; +- width 9; +- wrong U; +- wrong phase. + +PR599's `cold_hyperplane_width` lemma is the dim-8 case. Here the width |U| − |E| = 4 − 0 is the |final| − |start| rule that PR591's verifier already applies at every global site. + +**The refactored cleanup is not trusted.** `hpe_audit_and_transport.py` accepts a non-literal cleanup only when the word carries `refactored_cleanup`. Such a cleanup must: +- touch only non-target registers; +- use only dyadic additions and signed binary scales; +- make the arbitrary-dirt endpoint replay of the full reordered program exact in both orientations. + +The transport also checks the row and column cone conditions above for every helper that ends below FULL. + +**Wrapper order.** Two independent checks enforce it: +- The transport rejects any zero-frame precondition or compensation gate that touches a cold-ended helper. +- The event-level replay (`hpe_audit_local.py`) requires every scalar on a wrapped helper to lie between that helper's pre and post residual adapters. A negative control that hoists a premix gate in front of the pre-wrapper must be rejected. + +## Verifier changes (inert for words without cold ends) + +- `code/hpe_audit_and_transport.py`: + - cold helpers may end at a proper subframe U (here dim 4) with `0:U` wrappers; + - the row/column cone pre-check; + - the refactored-cleanup switch; + - the zero-frame wrapper-order assertion. +- `code/hpe_emit_local.py`, `hpe_audit_local.py`, `hpe_adapters_local.py`: + - `0:U` wrappers for cold low-frame ends; + - the event-level wrapper-order check; + - 7 event-level and 7–8 recipe-level cold mutants. +- `code/audit_allcold.py`, `invoice_allcold.py`, `assemble.py`: a cold helper may end below FULL with `0:U` wrappers, and these count as wrappers. +- New step `cold_end`: + - `code/build_cold_end.py` splices the recipe data and recomputes the profile and widths from the frame chains; + - `code/cold_end_controls.py` holds 14 raw-word mutants that must be rejected, including a premix moved into the precondition. +- `code/witness.py` adds `WITNESS_RECORD`, used for discovery bookkeeping only. + +## Future optimization (results and open headroom) + +All LP figures below are first-order bounds. They come from the aggregate hosting LP (the whole-owner model on PR601's windows, objective Σ r·ln(73/r)), calibrated against exact moment-engine prices. On PR601's own dispatch and widths, the LP lies within 0.005% of PR601's literal map. + +| quantity | value | +|---|---| +| LP ceiling, fixed dispatch (PR601's ck 45 / atm3 21 / jp8 6, all cold) | ≈ +0.49% | +| LP ceiling, free dispatch over {ck, atm3, jp8} cold | ≈ +0.71% | +| this package's literal map | +0.368% | +| remaining owner-map headroom on the fixed dispatch | ≈ 0.12 pt | + +- **Free dispatch is jp8-heavy.** The LP puts about 70 calls on jp8 and about 2 on atm3. The LP's idle remainder is pure rank-48 idle children, whereas the literal map still leaves some rank-16 and rank-32 idle children. +- **What limits jp8.** The time windows do not limit jp8. Time-refinability does: within each owner group, each port may host at most one helper per call. The aggregate optimum ignores this, and the exact per-port refinement of it is infeasible. Literal maps for jp8-heavy dispatches found so far are worse than PR601's dispatch. +- **Closing the gap.** An exact, edge-colourable owner model is the remaining owner-side lever: per-time Hall conditions, or a pattern-restricted model warm-started from this map. +- **End dimension (first-order).** Raising a unit's end frame from dim 4 to dim d needs the last tail gate at that frame, which lifts one partner. This adds 2ψ(d−4) + ψ(9−d) − ψ(5) to the local cost per unit, where ψ(r) = r·ln(73/r). That is +6.8, +10.6, +13.0 and +14.1 for d = 5…8. The remaining hosting headroom is about 1–2 per unit, so d = 4 is the best end dimension for these units. +- **Necessary condition, for any cleanup factorisation.** A helper h can end at a frame U only if, at the end of B, the supports of its row in the inverse state map and of its dirt column both lie in Q_U, the registers whose end-of-B frames lie in U. The transport checks this condition for every low-frame end. Choosing which units satisfy it, through the premix, is the supply question. This package uses 14 units per word. Their optimality per word is not certified here. + +## Verification + +Fetch the pinned sources exactly as for PR601, then run: + +```sh +research/complex-571-cold14-r1/verify.sh /tmp/complex-571-cold14-r1 .. +# kappa 0.001620147045734211 +``` + +`verify.py` uses only the standard library and requires assertions. It runs these stages: + +1. It checks the MANIFEST and every source, PLAN, OWNERS and recipe pin. +2. It replays PR558. +3. It rebuilds the three provider words through their typed chains. That is 17 steps, each with pinned input and output content hashes and paired controls. +4. It localizes each word through the generalised native chain: + - exact scalar replay and the cone pre-check; + - both reflected ledgers; + - the independent local replay with its mutants; + - exact wrappers; + - all phase edges. +5. It runs binding and the physical owner audit with its controller mutants. +6. It runs a fresh finite invoice and both exact moment engines. +7. It runs the assembly controls, the phase-timing controls and the generated-identity controls. + +The result is conditional on the inherited assumptions listed in NOTICE.md. + +## Credits + +- **jeremykothe2**: + - PR601, PR600, PR596, PR592 and PR591: hyperplane-ended helpers, the HPE verifier, and the packages and owner maps this one starts from; + - PR593: Lean Lemma A with an arbitrary terminal frame. +- **icekylinx**: PR531 and PR535 (entrance and kernel machinery). +- **DreamingOfClouds**: + - PR509 and PR516 (the Lemma A / Lemma G Lean line); + - PR599 (multi-gate and cold hyperplane-end Lean); + - PR484. +- The pinned PR568, PR569, PR571, PR575 and PR583 packages and their authors, as listed in NOTICE.md. + +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. diff --git a/research/complex-571-cold14-r1/code/assemble.py b/research/complex-571-cold14-r1/code/assemble.py new file mode 100644 index 0000000000..7a6bcd73f9 --- /dev/null +++ b/research/complex-571-cold14-r1/code/assemble.py @@ -0,0 +1,213 @@ +"""Hardened 63 width-seven (#571 prefix word) and 9 plain eight-cold (#568 E8) provider assembly with the native exact-complex moment. + +Prepared with OpenAI Codex assistance. The rational engines and outer +constraints are retained from PR547/PR548 and their preserved ancestry. +The bit operator is the cited unchanged PR543 supplier. The complex owner +and invoice inputs must be freshly emitted by the packaged physical replay. +All conservative admission guards and conservative moment/outer witnesses run +before the PR559 native-complex correction. The bit surcharge is retained. +""" +from pathlib import Path +from fractions import Fraction as Q +from decimal import Decimal, localcontext +import argparse,json,hashlib,importlib.util,os,sys +from collections import Counter +assert __debug__, 'Assertions required' +P=Path(sys.argv[1] if __name__=='__main__' else os.environ['GAIN_PR564_SOURCE']).resolve() +read=lambda p:json.loads(p.read_text()) +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +hash_ok=lambda x:isinstance(x,str) and len(x)==64 and all(t in '0123456789abcdef'for t in x) +digest=lambda x:hashlib.sha256(json.dumps(x,separators=(',',':')).encode()).hexdigest() +def load(n): + s=importlib.util.spec_from_file_location(n,P/'engines'/(n+'.py'));m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +M,B,A=[load(n)for n in ('moment','base_two_moment','outer')] +def dec(x): + with localcontext()as ctx:ctx.prec=70;return str(Decimal(x.numerator)/Decimal(x.denominator)) +from witness import DISPATCH,CALL_ORDER,COUNTS,PIDS,X,DISCOVER,pin + + +def assemble(owner,invoice,owner_sha,invoice_sha): + # These are admission receipts, not optional collections of successful rows. + # Require both orientations and every finite check before pricing anything. + assert owner['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert invoice['status']=='PASS_INDEPENDENT_MIXED_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE' + assert all(hash_ok(x)for x in (owner_sha,invoice_sha,owner['template_sha256'],owner['controller_audit_sha256'],invoice['parent_template_sha256'])) + checks={'local_primitive_bound','logical','router','literal','mass','precision','tape','row','halving'} + assert set(invoice['strict_checks'])==checks + assert all(invoice['strict_checks'][name] is True for name in checks) + assert set(invoice['providers'])==set(PIDS) + assert invoice['provider_counts']==COUNTS + assert owner['all_live_owners_per_call_distinct'] is True + assert owner['owners_per_call']==728 and owner['actual_helper_owner_charts']==owner['hosted_residuals']==pin('expected.hosted_residuals',owner['hosted_residuals']) + pin('expected.rank_mass',owner['rank_mass']) + pin('expected.actual_73column_sigmas',owner['actual_73column_sigmas']);pin('expected.cross_replica_helper_roles',owner['cross_replica_helper_roles']) + pin('expected.idle_remainders',owner['explicit_idle_remainder_children']) + assert invoice['complete_invocation_sweeps']==invoice['bridge_sweeps']==72 + assert invoice['live']==owner['live'] and invoice['physical']==owner['physical'] + assert invoice['helpers']==504 and invoice['centres']==8 + assert invoice['physical_stock_identity']==dict(data_and_owner_families=7168,local_helpers=504,private_centres=8,coefficient_work=2) + assert sum(invoice['physical_stock_identity'].values())==invoice['physical'] + assert invoice['controller_audit_sha256']==owner['controller_audit_sha256'] + for pid,p in invoice['providers'].items(): + assert set(p['local'])=={'forward','backward'} + assert p['helpers']==504 and p['centres']==8 and p['n']==728 and p['v']==112 and p['h']==9 + K='providers.'+pid+'.';pin(K+'entering',p['entering_helpers']);pin(K+'entrance',p['entrance_rank']) + pin(K+'inventory',p['width_inventory']) + assert all(type(w) is int and 0=0 for n in idle.values()) + idle=+idle;assert sum(idle.values())==owner['explicit_idle_remainder_children'] + pin('expected.idle_remainder_profile',{str(r):n for r,n in sorted(idle.items())}) + paid.update(idle) + assert dict(paid)=={int(r):n for r,n in owner['paid_profile'].items()} + assert invoice['compiler']==64*74**3 + assert invoice['local_adapters']==max(p['local_adapters']for p in invoice['providers'].values()) + assert invoice['local_primitive_bound']==max(p['local_primitive_bound']for p in invoice['providers'].values()) + # Recount the retained dedicated-bank envelope independently. Its geometry + # stays fixed, while every local primitive and wrapper comes from the actual + # selected provider/orientation sums above. + parent_live,parent_physical,parent_idle=11704,12218,16128 + assert owner['source_idle_children_charged']==parent_idle + bridges,shifts=2*112*72,4*112*8;moves=2*shifts + nonlocal_items=(4*112*8*9+2*112*8*9+2*72*504+parent_idle+9*504+bridges+shifts+moves+parent_live+parent_physical+invoice['wrapper_elementary_factors_charged']) + outside=8*nonlocal_items+64*73 + pervertex=(invoice['selected_real_component_primitives']+bridges+shifts+moves+parent_live+(72*invoice['local_adapters']+outside)*invoice['compiler']+64*parent_physical) + rebased=pervertex+65*(invoice['physical']-parent_physical)+(invoice['live']-parent_live) + assert invoice['unhosted_pervertex']==pervertex and invoice['hosted_rebased_pervertex']==rebased + used=max(pervertex,rebased) + prior=invoice['retained_prior_overcharge'] + if prior is not None: + assert hash_ok(prior['sha256']) and type(prior['previous_pervertex_allowance']) is int and prior['previous_pervertex_allowance']>0 + assert prior['added_complete_new_pervertex']==pervertex + assert prior['policy']=='Retain old allowance and add entire fresh mixed recount.' + used=max(used,prior['previous_pervertex_allowance']+pervertex) + assert invoice['conservative_pervertex_used']==used + finite=invoice['finite'] + assert 02*48*48) + assert actual_checks==invoice['strict_checks'] and all(actual_checks.values()) + bit_path=P/'inputs/PR543-EXPECTED.json';bit_data=bit_path.read_bytes() + assert hashlib.sha1(b'blob '+str(len(bit_data)).encode()+b'\0'+bit_data).hexdigest()=='b61d859826246e0c3dabbe096e57ad7015eadfd5' + bit=json.loads(bit_data)['nine'] + c=Q(bit['bit_lower']) + H={int(r):n for r,n in owner['paid_profile'].items()};pin('expected.global_profile',owner['paid_profile']) + # Claimed lower endpoints come from the spec; discovery derives them with the same certified moment engine. + # Either way they are verified below (accepted at b, rejected at b+1e-24). + if DISCOVER:b=Q(M.certify(H,73,owner['live'],False)['lower']);conservative_b=Q(M.certify(H,73,owner['live'],True)['lower']) + else:b=Q(X['complex_lower']);conservative_b=Q(X['conservative_complex_lower']) + assert owner['template_sha256']==invoice['template_sha256'] and owner_sha==invoice['owner_audit_sha256'] + pin('expected.live',owner['live']);pin('expected.physical',owner['physical']);assert owner['deficit']==2560 + assert owner['banked_residuals']==0 + def check_moment(side,h,m,W,lower,deficit,bad): + assert m*W-sum(r*n for r,n in h.items())==deficit and m*m>2*max(h)**2 + rows=[] + for z,accept in [(lower,True),(lower+Q(1,10**24),False)]: + l,u=M.moment(h,m,W,z,bad);ll,uu=B.moment(m,W,list(h.items()),z) + if bad: + fl,fu=B.moment(m,W,[(1,32*m*m*sum(h.values()))],z);ll+=fl/10**16;uu+=fu/10**16 + assert (u<1 and uu<1)if accept else(l>1 and ll>1) + rows.append(dict(side=side,surcharge=bad,endpoint=str(z),accept=accept,mercator=[str(l-1),str(u-1)],base_two=[str(ll-1),str(uu-1)])) + return rows + bitH={int(r):n for r,n in bit['profile'].items()} + bit_moments=check_moment('bit',bitH,64,bit['bit']['live'],c,9984,True) + conservative_moments=check_moment('conservative_complex',H,73,owner['live'],conservative_b,2560,True) + assert bit['bit']['two_level_coefficient_bits']0 + ceil=lambda x:-(-x.numerator//x.denominator);cut=max(ceil(36/gap**2),ceil(2*(4+512)/gap));assert cut*gap**2>=36 and cut*gap>=2*(4+512) + cuts.append(dict(exponent=str(a),gap=str(gap),cutoff_log2=str(cut)));chain.append(a) + q=chain[-1]*(1-2*eta);margin=(1-eta)*q/(1+q);ticks=margin*10**18;k=Q((ticks.numerator-1)//ticks.denominator,10**18) + bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1},'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} + outer=A.assembly(chain[-1],bb,bridge,k,eta=eta,beta=beta);assert len(outer['strict_constraints'])==47 and all(v>0 for v in outer['strict_constraints'].values()) + controls=[] + for name,kk,ee,be in [('next_grid',k+Q(1,10**18),eta,beta),('zero_eta',k,Q(0),beta),('zero_beta',k,eta,Q(0)),('unit_beta',k,eta,Q(1))]: + try:A.assembly(chain[-1],bb,bridge,kk,eta=ee,beta=be) + except AssertionError:controls.append(name) + else:raise AssertionError(name) + return k,cuts,outer,controls + conservative_k,conservative_cuts,conservative_outer,conservative_controls=outer_witness(conservative_b) + pin('expected.conservative_kappa_decimal',dec(conservative_k)) + # Only after every conservative supplier/admission/outer check succeeds is + # the reviewed native exact-complex recurrence selected. Bit charge stays. + native_moments=check_moment('complex',H,73,owner['live'],b,2560,False) + k,cuts,outer,controls=outer_witness(b) + pin('expected.kappa_decimal',dec(k)) + assert M.moment(H,73,owner['live'],b,True)[0]>1 + assert M.moment(bitH,64,bit['bit']['live'],c+Q(1,10**24),False)[1]<1 + model_controls=['native_complex_endpoint_rejected_with_old_surcharge','omitting_bit_surcharge_would_fail_next_endpoint_rejection'] + moments=bit_moments+native_moments + input_hashes={'owner_audit':owner_sha,'fresh_invoice':invoice_sha,'inputs/PR543-EXPECTED.json':sha(bit_path)} + input_hashes.update({'engines/'+name+'.py':sha(P/'engines'/(name+'.py'))for name in ('moment','base_two_moment','outer')}) + return dict(status='PASS_FRESH_MIXED_048_ALLCOLD_NATIVE_EXACT_ASSEMBLY',kappa=str(k),kappa_decimal=dec(k),complex_lower=str(b),complex_decimal=dec(b),bit_lower=str(c),bit_decimal=dec(c),binding='complex',gain_over_pinned569_percent=dec(100*(k/Q(X['gain_baseline_kappa'])-1)),complex_profile=H,provider_counts=invoice['provider_counts'],surcharge_model={'complex':False,'bit':True},conservative_complex_lower=str(conservative_b),conservative_complex_decimal=dec(conservative_b),conservative_kappa=str(conservative_k),conservative_kappa_decimal=dec(conservative_k),conservative_moments=conservative_moments,conservative_bootstrap=conservative_cuts,conservative_outer={n:str(v)for n,v in conservative_outer['strict_constraints'].items()},conservative_controls=conservative_controls,model_controls=model_controls,native_correction_gain=dec(k-conservative_k),template_sha256=owner['template_sha256'],input_sha256=input_hashes,bit_supplier=dict(pr=543,repository='eumemic/integer-mult-bounds',commit='2065fe4f72a914d907f1046603f5a36f17018535',path='research/e8-bit-r420/EXPECTED.json',git_blob_sha1='b61d859826246e0c3dabbe096e57ad7015eadfd5',replay_scope='Cited unchanged supplier; this assembly reprices its full profile and does not rebuild its bit circuit.'),moments=moments,bootstrap=cuts,outer={n:str(v)for n,v in outer['strict_constraints'].items()},controls=controls,scope='Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification.') +if __name__=='__main__': + import sys + package,C,out=map(Path,sys.argv[1:4]);assert package.resolve()==P and not out.exists() + owner_path=C/'audit/OWNERS-AND-PROFILE.json';invoice_path=C/'audit/PREFIX-AND-INVOICE.json' + owner,invoice=read(owner_path),read(invoice_path) + assert owner['template_sha256']==read(C/'hosted/HOSTED.json')['template_sha256'] + r=assemble(owner,invoice,sha(owner_path),sha(invoice_path));out.write_text(json.dumps(r,indent=2)+'\n');print(r['status'],r['kappa_decimal']) diff --git a/research/complex-571-cold14-r1/code/assembly_controls.py b/research/complex-571-cold14-r1/code/assembly_controls.py new file mode 100644 index 0000000000..fdc35bb4c9 --- /dev/null +++ b/research/complex-571-cold14-r1/code/assembly_controls.py @@ -0,0 +1,251 @@ +"""Independent admission controls for the N-provider native-complex assembly (per-provider controls). + +Prepared with OpenAI Codex assistance; Apache-2.0. Mutation receipts are +rebound to their new owner digest, so unrelated stale hashes cannot conceal +an incomplete width, provider, orientation, paid-profile or finite check. +The fresh physical replay remains a separate prerequisite. +""" +import argparse +import copy +import itertools +import math +import hashlib +import json +import os +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * + +assert __debug__, 'Assertions required' +P = Path(__file__).resolve().parent +sha = lambda p: hashlib.sha256(p.read_bytes()).hexdigest() +digest = lambda x: hashlib.sha256(json.dumps(x, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + + +def verify(owner_path, invoice_path, source_package): + os.environ['GAIN_PR564_SOURCE'] = str(source_package.resolve()) + from assemble import assemble + owner = json.loads(owner_path.read_text()) + invoice = json.loads(invoice_path.read_text()) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + + def empty_maps(o, i): + i['strict_checks'] = {} + i['providers'] = {} + + def understated_stock(o, i): + o['physical'] -= 1 + i['physical'] -= 1 + i['physical_stock_identity']['coefficient_work'] -= 1 + + def changed_profile(o, i): + o['paid_profile']['1'] += 2 + o['paid_profile']['2'] -= 1 + + def wrong_orientation(o, i): + c = next(c for c in i['selected_calls'] if c['stage'] == 0) + c['orientation'] = 'backward' + p = i['providers'][c['provider_id']] + z = p['local']['backward'] + c['program_sha256'] = p['program_hashes']['backward'] + for name in ('events', 'macros', 'real_component_primitives', + 'coefficient_work_primitive_count', 'pre_wrappers', 'post_wrappers'): + c[name] = z[name] + i['selected_real_component_primitives'] = sum(c['real_component_primitives'] for c in i['selected_calls']) + i['selected_coefficient_work_primitive_count'] = sum(c['coefficient_work_primitive_count'] for c in i['selected_calls']) + + def understated_prefix(o, i): + for p in i['providers'].values(): + for z in p['local'].values(): + z['prefix_bits'], z['prefix_l1'] = 1, '1' + i['global_prefix_bits'] = 1 + 37 + 72 + 72 + 4 + + def reordered_calls(o, i): + i['selected_calls'][0], i['selected_calls'][1] = i['selected_calls'][1], i['selected_calls'][0] + + def no_cold_wrappers(o, i): + for p in i['providers'].values(): + p['entering_helpers'] -= 4 + for z in p['local'].values():z['pre_wrappers'] = z['post_wrappers'] = p['entering_helpers'] + for c in i['selected_calls']: + c['entering_helpers'] = c['pre_wrappers'] = c['post_wrappers'] = i['providers'][c['provider_id']]['entering_helpers'] + i['wrapper_elementary_factors_charged'] = sum(2*c['pre_wrappers'] for c in i['selected_calls'])*i['factors_per_wrapper'] + + controls = [ + ('empty_certification_maps', empty_maps), + ('failed_invoice_status', lambda o, i: i.__setitem__('status', 'FAIL')), + ('nonboolean_precision_check', lambda o, i: i['strict_checks'].__setitem__('precision', 'true')), + ('wrong_owner_role_count', lambda o, i: o.__setitem__('actual_helper_owner_charts', o['actual_helper_owner_charts'] - 1)), + ('understated_physical_stock', understated_stock), + ('changed_profile_same_rank_mass', changed_profile), + ('insufficient_finite_C0', lambda o, i: i['finite'].__setitem__('required_C0_bits', 210001)), + ('missing_finite_check', lambda o, i: i['strict_checks'].pop('halving')), + ('wrong_reflected_orientation_selfconsistent_totals', wrong_orientation), + ('missing_selected_call', lambda o, i: i['selected_calls'].pop()), + ('wrong_selected_primitive_sum', lambda o, i: i.__setitem__('selected_real_component_primitives', i['selected_real_component_primitives'] - 1)), + ('wrong_selected_coefficient_work_sum', lambda o, i: i.__setitem__('selected_coefficient_work_primitive_count', i['selected_coefficient_work_primitive_count'] - 1)), + ('unpaid_wrapper_factors', lambda o, i: i.__setitem__('wrapper_elementary_factors_charged', i['wrapper_elementary_factors_charged'] - 144)), + ('wrong_global_compiler', lambda o, i: i.__setitem__('compiler', 1)), + ('wrong_global_adapter_maximum', lambda o, i: i.__setitem__('local_adapters', 1)), + ('understated_exact_prefix_and_global_sum', understated_prefix), + ('wrong_global_prefix_sum', lambda o, i: i.__setitem__('global_prefix_bits', 224)), + ('wrong_row_prefix_reserve', lambda o, i: i.__setitem__('row_prefix_extra', 0)), + ('wrong_parent_geometry_charge', lambda o, i: i.__setitem__('unhosted_pervertex', 1)), + ('wrong_rebased_geometry_charge', lambda o, i: i.__setitem__('hosted_rebased_pervertex', 1)), + ('wrong_complete_pervertex_envelope', lambda o, i: i.__setitem__('conservative_pervertex_used', 1)), + ('wrong_prior_added_complete_invoice', lambda o, i: i['retained_prior_overcharge'].__setitem__('added_complete_new_pervertex', 1)), + ('wrong_finite_router_bits', lambda o, i: i['finite'].__setitem__('router_bits', 1)), + ('wrong_finite_literal_bits', lambda o, i: i['finite'].__setitem__('literal_bits', 1)), + ('wrong_finite_physical_stock_bits', lambda o, i: i['finite'].__setitem__('physical_stock_bits', 1)), + ('wrong_finite_row_coefficient', lambda o, i: i['finite'].__setitem__('physical_row_coefficient', 1)), + ('reordered_complete_calls', reordered_calls), + ('understated_explicit_idle_remainders', lambda o, i: o.__setitem__('explicit_idle_remainder_children', o['explicit_idle_remainder_children']-1)), + ('understated_actual_chart_types', lambda o, i: o.__setitem__('actual_73column_sigmas', o['actual_73column_sigmas']-1)), + ('wrong_cross_replica_role_count', lambda o, i: o.__setitem__('cross_replica_helper_roles', o['cross_replica_helper_roles']-1)), + ('old_no_cold_wrapper_counts_selfconsistent', no_cold_wrappers), + ] + + def resync(i, c): + p = i['providers'][c['provider_id']] + c['program_sha256'] = p['program_hashes'][c['orientation']] + c['entering_helpers'], c['entrance_rank'] = p['entering_helpers'], p['entrance_rank'] + for name in ('events','macros','real_component_primitives','coefficient_work_primitive_count','pre_wrappers','post_wrappers'): + c[name] = p['local'][c['orientation']][name] + + # Every provider gets the full per-provider control set, substituting a partner provider where needed. + for P in PIDS: + Qp = partner(P) + widths = invoice['providers'][P]['widths'] + + def forged_program_hash(o, i, P=P): + i['providers'][P]['program_hashes']['forward'] = '0' * 64 + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = '0' * 64 + + def wrong_selected_call(o, i, P=P): + c = next(c for c in i['selected_calls'] if c['provider_id'] == P) + d = next(d for d in i['selected_calls'] if d['provider_id'] != P and (d['stage'] - c['stage']) % 2 == 0) + c['stage'], d['stage'], c['replica'], d['replica'] = d['stage'], c['stage'], d['replica'], c['replica'] + + def stale_program(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['program_hashes'] = copy.deepcopy(i['providers'][Qp]['program_hashes']) + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = p['program_hashes'][c['orientation']] + + def stale_profile(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['paid_profile'] = copy.deepcopy(i['providers'][Qp]['paid_profile']) + p['children'] = sum(p['paid_profile'].values()) + + def moved(o, i, P=P): + a = next(c for c in i['selected_calls'] if c['provider_id'] == P) + b = next(c for c in i['selected_calls'] if c['provider_id'] != P and c['orientation'] == a['orientation']) + a['provider_id'], b['provider_id'] = b['provider_id'], a['provider_id'] + resync(i, a); resync(i, b) + + def compensating(o, i, P=P, Qp=Qp): + # Two dishonest profiles that cancel exactly in the dispatch-weighted aggregate. + g = math.gcd(COUNTS[P], COUNTS[Qp]); dp, dq = COUNTS[Qp] // g, COUNTS[P] // g + p, q = i['providers'][P], i['providers'][Qp] + p['paid_profile']['1'] += dp; q['paid_profile']['1'] -= dq + p['children'] += dp; q['children'] -= dq + + def forged_recipe(o, i, P=P): + name = 'CLIFFORD-RECIPES.json' + i['providers'][P]['artifacts'][name] = '0'*64 + o['source_artifacts']['providers/'+P+'/'+name] = '0'*64 + + def forged_phase(o, i, P=P): + i['providers'][P]['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] = '0'*64 + o['provider_phase_semantic_sha256'][P] = i['provider_phase_semantic_sha256'][P] = '0'*64 + + controls += [ + (P + ':missing_provider', lambda o, i, P=P: i['providers'].pop(P)), + (P + ':missing_backward_orientation', lambda o, i, P=P: i['providers'][P]['local'].pop('backward')), + (P + ':unpaid_scalar_primitive', lambda o, i, P=P: i['providers'][P]['local']['forward'].__setitem__('real_component_primitives', i['providers'][P]['local']['forward']['real_component_primitives'] - 1)), + (P + ':wrong_local_artifact_binding', lambda o, i, P=P: i['providers'][P]['artifacts'].__setitem__('LOCAL-PROGRAMS.json.gz', '0' * 64)), + (P + ':false_dirty_restoration', lambda o, i, P=P: i['providers'][P]['local']['backward'].__setitem__('all_dirty_helper_columns_restored', False)), + (P + ':wrong_declared_provider_count', lambda o, i, P=P: i['provider_counts'].__setitem__(P, i['provider_counts'][P] + 1)), + (P + ':wrong_local_compiler', lambda o, i, P=P: i['providers'][P].__setitem__('compiler', 1)), + (P + ':wrong_local_adapter_charge', lambda o, i, P=P: i['providers'][P].__setitem__('local_adapters', 1)), + (P + ':wrong_local_primitive_bound', lambda o, i, P=P: i['providers'][P].__setitem__('local_primitive_bound', 1)), + (P + ':forged_provider_and_call_program_hash', forged_program_hash), + (P + ':provider_at_wrong_call', wrong_selected_call), + (P + ':stale_partner_program_consistent_call_hashes', stale_program), + (P + ':stale_partner_profile_consistent_child_total', stale_profile), + (P + ':relocated_against_partner_same_counts', moved), + (P + ':compensating_false_profiles_with_' + Qp, compensating), + (P + ':synchronized_forged_source_recipe_hash', forged_recipe), + (P + ':synchronized_forged_phase_review_semantics', forged_phase), + ] + # Width order and inventory: swap the first helper of every pair of distinct widths (same inventory), + # and shift one unit between them (same total). + first = {} + for h, w in enumerate(widths): + first.setdefault(w, h) + for wa, wb in itertools.combinations(sorted(first), 2): + def swap(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a], w[b] = w[b], w[a] + def shift(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a] += 1; w[b] -= 1 + controls.append((P + ':width_order_swap_%d_%d' % (wa, wb), swap)) + controls.append((P + ':width_inventory_shift_%d_%d' % (wa, wb), shift)) + for h in (270, 282, 294, 306): + def cold_swap(o, i, P=P, h=h): + w = i['providers'][P]['widths']; j = w.index(9); w[h], w[j] = w[j], w[h] + controls.append((P + ':cold_helper_width_swap_%d' % h, cold_swap)) + rejected = [] + accepted = [] + for name, mutate in controls: + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + mutate(o, i) + oh = digest(o) + i['owner_audit_sha256'] = oh + try: + assemble(o, i, oh, digest(i)) + except (AssertionError, KeyError): + rejected.append(name) + else: + # Discovery has no pinned values to reject spec-only mutations; the strict run must reject every control. + if not DISCOVER: + raise AssertionError('Invalid admission receipt accepted: ' + name) + accepted.append(name) + try: + assemble(owner, invoice, '0' * 64, sha(invoice_path)) + except AssertionError: + rejected.append('wrong_owner_receipt_hash') + else: + raise AssertionError('Wrong owner digest accepted') + pin('expected.assembly_controls_rejected', len(rejected)) + assert baseline['controls'] == ['next_grid', 'zero_eta', 'zero_beta', 'unit_beta'] + assert baseline['conservative_controls'] == baseline['controls'] + assert baseline['surcharge_model'] == {'complex': False, 'bit': True} + assert len(baseline['model_controls']) == 2 + return dict( + status='PASS_EXACT_MIXED_048_ALLCOLD_NATIVE_ASSEMBLY_ADMISSION_NEGATIVE_CONTROLS', + valid_receipt_kappa=baseline['kappa'], + input_sha256=baseline['input_sha256'], + assembler_sha256=sha(Path(__file__).resolve().parent / 'assemble.py'), + rejected_controls=rejected, + discovery_accepted_controls=accepted, + exact_outer_controls=baseline['controls'], + conservative_outer_controls=baseline['conservative_controls'], + recurrence_model_controls=baseline['model_controls'], + scope='Complete receipt schema; ordered widths and both reflected providers; exact program, work and paid-profile binding; independently recounted compiler, conservative envelope and finite inequalities. Does not replace fresh physical replay.', + ) + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--source-package', type=Path, required=True) + ap.add_argument('--owner', type=Path, required=True) + ap.add_argument('--invoice', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + assert not a.out.exists() + result = verify(a.owner, a.invoice, a.source_package) + a.out.write_text(json.dumps(result, indent=2) + '\n') + print(result['status'], len(result['rejected_controls'])) diff --git a/research/complex-571-cold14-r1/code/audit_allcold.py b/research/complex-571-cold14-r1/code/audit_allcold.py new file mode 100644 index 0000000000..48c47a467f --- /dev/null +++ b/research/complex-571-cold14-r1/code/audit_allcold.py @@ -0,0 +1,232 @@ +"""OpenAI Codex independent serialized ASYNCHRONOUS controller/spectator audit. +Imports no emitter, optimizer, expander, edge-coloring, or source hosting code. +CLI: BASE HOSTED REPORT [--mutation-controls] +Each provider is independently read from BASE/providers, never from a baseline width histogram. +OpenAI Codex two-provider width-seven extension; retains all inherited independent controller checks. +The exact 63 width-seven and 9 plain calls are frozen below. +""" +import sys,json,gzip,hashlib,copy +assert __debug__, 'Assertions must remain enabled' +from pathlib import Path +from collections import Counter,defaultdict +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +BASE,OUT,REPORT=map(lambda p:Path(p).resolve(),sys.argv[1:4]);read=lambda p:json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +parent=read(BASE/'split-centres/GLOBAL-TEMPLATE.json.gz') +ph=read(BASE/'work/complex-nine-native/DATA-PHASES.json') +ct=read(OUT/'GLOBAL-TEMPLATE.json.gz');summary=read(OUT/'HOSTED.json') +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +provider_ids=PIDS +providers={};registry={};phase_semantic_hashes={};artifact_semantic_hashes={} +required_artifacts={'work/complex-nine-native/DATA-PHASES.json'} +provider_files=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json') +for pid in provider_ids: + p=BASE/'providers'/pid + c=read(p/'CANONICAL-WORD.json.gz');checks=read(p/'LOCAL-CHECKS.json') + programs=read(p/'LOCAL-PROGRAMS.json.gz');replay=read(p/'INDEPENDENT-LOCAL-REPLAY.json') + phase=read(p/'CLIFFORD-REVIEW.json');adapters=read(p/'RESIDUAL-ADAPTERS.json')['recipes'] + widths=[len(c['frames'][c['final'][2*c['v']+h]])-len(c['frames'][c['start'][2*c['v']+h]])for h in range(c['R'])] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in (270,282,294,306));pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + canonical_sha=sha(p/'CANONICAL-WORD.json.gz');programs_sha=sha(p/'LOCAL-PROGRAMS.json.gz') + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==canonical_sha and replay['local_programs_sha256']==programs_sha + assert replay['v']==c['v'] and replay['helpers']==c['R'] + assert set(programs)==set(checks)==set(replay['local'])==set(replay['paid_profiles'])=={'forward','backward'} + for orientation,events in programs.items(): + ck=checks[orientation];rr=replay['local'][orientation] + assert hashlib.sha256(json.dumps(events,sort_keys=True,separators=(',',':')).encode()).hexdigest()==ck['sha256'] + assert ck['events']==len(events) and ck['all_columns']==2*c['v']+c['R'] + assert ck['private_centers_cleared'] and ck['private_coefficient_stream_cleared_after_each_macro'] + assert rr['all_exact_columns']==2*c['v']+c['R'] and rr['private_work_erased'] + literal=Counter(e[-1]for e in events if e[0]in('climb','center')) + assert dict(literal)=={int(r):n for r,n in ck['paid_profile'].items()}=={int(r):n for r,n in c['local_profile'].items()} + assert ck['paid_profile']==replay['paid_profiles'][orientation] + assert phase['canonical_word_sha256']==canonical_sha and phase['recipe_sha256']==sha(p/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] + artifact_semantic_hashes[pid]=artifact_identities(p) + pin('providers.%s.artifact_semantic_sha256'%pid,artifact_semantic_hashes[pid]) + phase_semantic_hashes[pid]=artifact_semantic_hashes[pid]['CLIFFORD-REVIEW.json'] + for h,w in enumerate(widths): + assert 0>i)&1==0);a=q^(1<>i&1 else 0)for i in order]+[1<2*max(paid)**2 + return dict(profile=dict(sorted(paid.items())),mass=mass,hosted=HOSTED,entering=entering,cross_replica=cross,sigma_digest=digest.hexdigest(),sigmas=sigmas,idle_remainders=len(wanted),busy_family_checks=len(roles),invocations=72) + +r=audit(ct);raw=gzip.decompress((OUT/'GLOBAL-TEMPLATE.json.gz').read_bytes());assert hashlib.sha256(raw).hexdigest()==summary['template_sha256'];assert r['profile']=={int(k):v for k,v in summary['global_profile'].items()};assert r['sigmas']==read(OUT/'ACTUAL-SIGMAS.json.gz');assert r['sigma_digest']==summary['sigma_stream_sha256'] +assert all(hashlib.sha256((BASE/name).read_bytes()).hexdigest()==value for name,value in summary['source_artifacts'].items()) +controls=[] +def reject(name,mut): + if '--mutation-controls' not in sys.argv[4:]:return + q=copy.deepcopy(ct);mut(q) + try:audit(q) + except(AssertionError,KeyError,IndexError,ValueError,TypeError):controls.append(name) + else:raise AssertionError('ACCEPTED '+name) +enter=lambda q:next(o for c in q['calls']for o in c['owners'][(2*V):]if o[1][0]==4) +reject('alias two whole owners',lambda q:q['calls'][0]['owners'].__setitem__((2*V+1),q['calls'][0]['owners'][(2*V)])) +reject('helper on active data family',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,q['calls'][0]['owners'][0][0])) +reject('owner in private namespace',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,DATA)) +reject('wrong residual width',lambda q:enter(q)[1].__setitem__(3,enter(q)[1][3]-1)) +reject('wrong spectator coordinate',lambda q:enter(q)[1][4].__setitem__(0,72)) +reject('omit idle remainder',lambda q:q['idle_children'].pop()) +reject('understate physical reserve',lambda q:q.__setitem__('physical',PHYSICAL-1)) +# Per-provider substitution controls: every provider is swapped against a partner provider. +for P in provider_ids: + Qp=partner(P) + at_p=lambda q,P=P:next(c for c in q['calls']if c['provider_id']==P) + diff=[h for h in range(R)if providers[P]['widths'][h]!=providers[Qp]['widths'][h]] + narrow=next(h for h in range(R)if providers[P]['widths'][h]<9) + reject(P+': wrong provider at its invocation',lambda q,P=P,Qp=Qp,at_p=at_p:at_p(q).__setitem__('provider_id',Qp)) + reject(P+': stale per-call local program hash',lambda q,Qp=Qp,at_p=at_p:at_p(q).__setitem__('local_program_sha256',registry[Qp]['local_program_checks'][at_p(q)['orientation']]['sha256'])) + reject(P+': stale serialized provider program',lambda q,P=P,Qp=Qp:q['local_providers'][P].__setitem__('local_programs',registry[Qp]['local_programs'])) + reject(P+': unbound residual adapter hash',lambda q,P=P:q['local_providers'][P].__setitem__('residual_adapter_sha256','0'*64)) + if diff:reject(P+': partner width in provider width registry',lambda q,P=P,Qp=Qp,h=diff[0]:q['local_providers'][P]['widths'].__setitem__(h,providers[Qp]['widths'][h])) + reject(P+': wrong per-call residual width',lambda q,at_p=at_p,h=narrow:at_p(q)['owners'][2*V+h][1].__setitem__(3,at_p(q)['owners'][2*V+h][1][3]-1)) + reject(P+': wrong sweep provider',lambda q,P=P,Qp=Qp:next(e for e in q['execution_schedule']if e['kind']=='local_cover_sweep'and DISPATCH[e['stage'],e['replica']]==P).__setitem__('provider_id',Qp)) + reject(P+': entering helper width silently restored to nine',lambda q,P=P,h=narrow:q['local_providers'][P]['widths'].__setitem__(h,9)) +report=dict(status='PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS',template_sha256=summary['template_sha256'],complex_template_sha256=summary['template_sha256'],complex_live=DATA,complex_profile=r['profile'],complex_hosted_residuals=HOSTED,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,entering_helper_roles=r['entering'],cross_replica_helper_roles=r['cross_replica'],one_owner_per_complete_invocation=True,helper_busy_family_window_checks=r['busy_family_checks'],complete_invocations=r['invocations'],actual_orthogonal_73column_maps=len(r['sigmas']),actual_sigma_stream_sha256=r['sigma_digest'],all_actual_residual_and_spectator_charts=True,idle_remainders=r['idle_remainders'],mutations_rejected=controls,mutation_controls_run='--mutation-controls' in sys.argv[4:],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,widths_by_provider={pid:dict(sorted(Counter(providers[pid]['widths']).items()))for pid in provider_ids},provider_counts=dict(Counter(c['provider_id']for c in ct['calls'])),all_provider_program_phase_and_wrapper_bindings=True,scope='Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses per-invocation local providers bound by exact scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations.') +REPORT.parent.mkdir(parents=True,exist_ok=True) +REPORT.write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report,indent=2)) + +owners=dict(status='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE',template_sha256=summary['template_sha256'],paid_profile=r['profile'],live=DATA,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,hosted_residuals=HOSTED,banked_residuals=0,all_live_owners_per_call_distinct=True,owners_per_call=N,actual_helper_owner_charts=HOSTED,actual_73column_sigmas=len(r['sigmas']),cross_replica_helper_roles=r['cross_replica'],explicit_idle_remainder_children=r['idle_remainders'],source_idle_children_charged=sum(x['replicas']for x in parent['idle_children']),source_artifacts=summary['source_artifacts'],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,controller_audit_sha256=hashlib.sha256(REPORT.read_bytes()).hexdigest()) +(REPORT.parent/'OWNERS-AND-PROFILE.json').write_text(json.dumps(owners,indent=2)+'\n') + +# Literal residual frames are a compact export of the already checked offsets, +# not another global replay. Every row names its actual inherited axes. +frames=[] +for z in ct['idle_children']: + axes=list(map(int,ph['recipes'][z['port']]['idle_children'][z['child']]['orthogonal_axes'])) + tail=axes[z['pending_offset']:] + assert len(tail)==z['rank'] + frames.append(dict(z,orthogonal_axes=tail)) +frame_raw=json.dumps(frames,sort_keys=True,separators=(',',':')).encode() +portable=bytearray(gzip.compress(frame_raw,mtime=0));portable[9]=255 +(OUT/'IDLE-REMAINDER-FRAMES.json.gz').write_bytes(bytes(portable)) +frame_receipt=dict(status='PASS_LITERAL_IDLE_REMAINDER_FRAMES',template_sha256=summary['template_sha256'], + uncompressed_frames_sha256=hashlib.sha256(frame_raw).hexdigest(),children=len(frames), + rank_profile=dict(sorted(Counter(z['rank']for z in frames).items())), + source_data_phase_sha256=hashlib.sha256((BASE/'work/complex-nine-native/DATA-PHASES.json').read_bytes()).hexdigest(), + scope='Actual orthogonal axes after the independently checked whole-owner prefix in each inherited pending child.') +(REPORT.parent/'IDLE-REMAINDER-FRAMES.json').write_text(json.dumps(frame_receipt,indent=2)+'\n') + diff --git a/research/complex-571-cold14-r1/code/bind_providers_portable.py b/research/complex-571-cold14-r1/code/bind_providers_portable.py new file mode 100644 index 0000000000..d859aeba0a --- /dev/null +++ b/research/complex-571-cold14-r1/code/bind_providers_portable.py @@ -0,0 +1,66 @@ +"""Bind freshly verified plain and width-seven four-cold providers to the frozen literal owner plan. +Prepared with OpenAI Codex assistance; Apache-2.0. All byte-stable native +files are pinned to the plan. Only validated phase-receipt timing/serialization +and directory fields are rebound; no dispatch, width or owner choice changes. +""" +import argparse,copy,gzip,hashlib,json,shutil +from collections import Counter +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +assert __debug__, 'Assertions required' +ap=argparse.ArgumentParser(description=__doc__) +for name in ('baseline','plan','out'):ap.add_argument('--'+name,type=Path,required=True) +ap.add_argument('--provider',action='append',required=True,help='PID=DIR');a=ap.parse_args();assert not a.out.exists();a.out.mkdir(parents=True) +def read(p):return json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +base=a.out/'base';shutil.copytree(a.baseline/'complex-global/base',base) +ap2=dict(x.split('=',1)for x in a.provider);dirs={k:Path(v)for k,v in ap2.items()};assert set(dirs)==set(PIDS) +for pid,src in dirs.items():shutil.copytree(src,base/'providers'/pid) +pin('data.plan_sha256',sha(a.plan)) +plan=read(a.plan);original=copy.deepcopy(plan);sources={} +assert set(plan['provider_registry'])==set(dirs) +assert {(c['stage'],c['replica']):c['provider']for c in plan['provider_calls']}==DISPATCH,'PLAN dispatch differs from spec dispatch' +stable=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json') +for pid,desc in plan['provider_registry'].items(): + d=base/'providers'/pid + word,program,checks,native,phase=[read(d/name)for name in('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json')] + assert (word['v'],word['h'],word['R'],len(word['centers']))==(112,9,504,8) + assert word['ports']==desc['ports'] and word['centers']==desc['centers'] + widths=[len(word['frames'][word['final'][r]])-len(word['frames'][word['start'][r]])for r in range(224,728)] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in (270,282,294,306)) + assert widths==desc['widths'];pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + assert native['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + pin('providers.%s.native_negative_controls'%pid,len(native['negative_controls_rejected'])) + assert native['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and native['local_programs_sha256']==sha(d/'LOCAL-PROGRAMS.json.gz') + assert phase['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' + assert phase['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and phase['recipe_sha256']==sha(d/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] is True and phase['endpoint_adapters']==224 + pin('providers.%s.phase_edges'%pid,phase['directed_edges']) + assert set(program)==set(checks)=={'forward','backward'} + expected={int(r):n for r,n in checks['forward']['paid_profile'].items()};pin('providers.%s.expected_profile'%pid,checks['forward']['paid_profile']) + for orientation,events in program.items(): + profile=Counter() + for e in events: + if e[0]=='climb':profile[e[5]]+=1 + elif e[0]=='center':profile[e[4]]+=1 + assert dict(profile)==expected=={int(r):n for r,n in checks[orientation]['paid_profile'].items()}=={int(r):n for r,n in native['paid_profiles'][orientation].items()} + assert hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest()==checks[orientation]['sha256'] + identities=artifact_identities(d) + pin('providers.%s.artifact_semantic_sha256'%pid,identities) + assert identities==desc['artifact_semantic_sha256'] + for name in ('LOCAL-CHECKS.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json'): + assert sha(d/name)==desc['artifact_sha256'][name],(pid,name,'changed non-reference artifact') + for c in plan['provider_calls']: + if c['provider']==pid: + assert c['orientation']==('forward'if c['stage']%2==0 else'backward') + assert c['local_program_sha256']==checks[c['orientation']]['sha256'] + desc['directory']='providers/'+pid + desc['artifact_sha256']={name:sha(d/name)for name in desc['artifact_sha256']} + sources[pid]=dict(artifact_sha256=desc['artifact_sha256'],canonical_content_sha256=hashlib.sha256(json.dumps(word,sort_keys=True,separators=(',',':')).encode()).hexdigest(),all_phase_edges=phase['directed_edges']) +plan['runtime_source_plan_sha256']=sha(a.plan) +(a.out/'PLAN.json').write_text(json.dumps(plan,indent=2)+'\n') +receipt=dict(status='PASS_FROZEN_048_ALLCOLD_DISPATCH_FRESH_PROVIDER_BINDING',source_plan_sha256=sha(a.plan),runtime_plan_sha256=sha(a.out/'PLAN.json'),providers=sources,only_rebound_fields=['provider_registry.directory','provider_registry.artifact_sha256','runtime_source_plan_sha256']) +(a.out/'BINDING.json').write_text(json.dumps(receipt,indent=2)+'\n') +print(receipt['status']) diff --git a/research/complex-571-cold14-r1/code/build_cold_end.py b/research/complex-571-cold14-r1/code/build_cold_end.py new file mode 100644 index 0000000000..ad0464a954 --- /dev/null +++ b/research/complex-571-cold14-r1/code/build_cold_end.py @@ -0,0 +1,125 @@ +"""Cold low-frame-ended helpers with a refactored exact cleanup: constructor. Apache-2.0. +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. + +usage: build_cold_end.py --input FULL-WORD.json.gz --recipe RECIPE.json.gz --out DIR + +The input is a hyperplane-ended (HPE) provider word. RECIPE (all data, no code): + premix rank-0 gates on helpers at their start frame (frame [] for cold helpers, E for entering ones); they become the + head of section A, i.e. they run after the entry + adapters and paid wrappers, so every gate on a cold-ended helper follows its wrapper R_{0,U}^-1; + cleanup the complete new cleanup gate list (an exact refactorisation of the inverse, not the literal one); + early_cleanup [[cleanup index, frame], ...]: gates run right after B at the given frame (the multi-gate tail); + cold_ends {helper: frame}: cold helpers (no entrance) that end at that frame instead of FULL; + entering_ends optional {helper: frame}: further entering helpers ending below FULL under the same refactored cleanup; + refactored_cleanup descriptive metadata copied into the word (it also switches the transport audit from the literal + cleanup assertion to exact replay of the refactored one); + output_content_sha256. +The constructor only splices. It checks the recipe's shape (premix on cold helpers at frame [], cold ends on cold +helpers, every inherited hyperplane-end gate and terminal frame kept) and recomputes the paid local profile and the +descriptive width inventory from the actual frame chains. Exactness of the scalar program, all frame chains, the cone +pre-check, the wrapper order and the profile are re-checked independently by hpe_audit_and_transport.py; the paired +raw-word mutation audit is cold_end_controls.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return tuple(p[k] for k in sorted(p, reverse=True)) + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def chain_profile(w): + """Paid climbs of the A, B, tail and final chains (centre descents are unchanged by this step and not counted).""" + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [() for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = span([p]) + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = span(f) + prof = Counter() + + def climb(r, F): + assert span(list(cur[r]) + list(F)) == F, ('nonmonotone', r) + if len(F) > len(cur[r]): prof[len(F) - len(cur[r])] += 1 + cur[r] = F + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): climb(r, span(e[-1])) + for i, f in w.get('early_cleanup', []): + for r in regs(w['cleanup'][i]): climb(r, span(f)) + full = span([1 << i for i in range(9)]) + final = {int(r): span(f) for r, f in w.get('helper_final', {}).items()} + for r in range(n): + if v <= r < 2*v: continue # targets end at their port level; unchanged by this step (same A/B chains) + climb(r, final.get(r, full)) + return prof, cur + + +def apply(w, r): + assert 'helper_final' in w and 'early_cleanup' in w and 'refactored_cleanup' not in w, 'input must be an HPE word' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + entering = set(map(int, w['start_extra'])) + cold = {x for x in range(2*v, n) if x not in entering} + start = lambda x: span(w['start_extra'].get(str(x), [])) + for e in r['premix']: # rank 0: every register is a helper still at its start frame (cold: [], entering: E) = the gate frame + assert e[0] in ('add', 'scale') and all(2*v <= x < n and start(x) == span(e[-1]) for x in regs(e)), ('premix gate not rank-0 on helpers at their start frame', e) + ends = {int(h): f for h, f in r['cold_ends'].items()} + assert ends and all(h in cold and str(h) not in w['helper_final'] for h in ends), 'cold ends must be new cold helpers' + eends = {int(h): f for h, f in r.get('entering_ends', {}).items()} # optional: further ENTERING helpers ending below FULL + assert all(h in entering and str(h) not in w['helper_final'] for h in eends), 'entering ends must be new entering helpers' + assert all(len(span(f)) < 9 for f in list(ends.values()) + list(eends.values())) + new_early = [(i, f) for i, f in r['early_cleanup']] + kept = {(json.dumps(r['cleanup'][i][:-1]), json.dumps(f)) for i, f in new_early} + for i, f in w['early_cleanup']: # every inherited hyperplane-end gate stays in the tail at its frame + assert (json.dumps(w['cleanup'][i][:-1]), json.dumps(f)) in kept, ('inherited HPE gate missing', i) + old_prof, _ = chain_profile(w) + out = dict(w) + out['A'] = [list(e) for e in r['premix']] + w['A'] + out['cleanup'] = r['cleanup'] + out['early_cleanup'] = [[i, f] for i, f in new_early] + out['helper_final'] = dict(w['helper_final'], **{str(h): f for h, f in sorted({**ends, **eends}.items())}) + out['refactored_cleanup'] = r['refactored_cleanup'] + new_prof, cur = chain_profile(out) + assert all(cur[h] == span(f) for h, f in {**ends, **eends}.items()), 'end frame is not the last frame of the helper' + lp = Counter({int(k): c for k, c in w['report']['local_profile'].items()}) + lp.subtract(old_prof); lp.update(new_prof) + assert min(lp.values()) >= 0 + rep = dict(w['report']) + rep['local_profile'] = {str(k): c for k, c in sorted(lp.items()) if c} + rep['local_rank_mass'] = sum(k*c for k, c in lp.items()) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for h, f in ends.items(): inv[9] -= 1; inv[len(span(f))] += 1 # cold: width = |U| - 0 + for h, f in eends.items(): # entering: width = |U| - |E| + e = len(span(w['start_extra'][str(h)])); inv[9 - e] -= 1; inv[len(span(f)) - e] += 1 + assert min(inv.values()) >= 0 + rep['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + out['report'] = rep + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + rd = lambda p: json.loads(gzip.decompress(p.read_bytes()) if p.suffix == '.gz' else p.read_bytes()) + w, r = rd(a.input), rd(a.recipe) + w = apply(w, r) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'COLD-END-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_COLD_LOW_FRAME_ENDS_SPLICED', + cold_ended_helpers=sorted(int(x) for x in r['cold_ends']), terminal_dims=sorted(Counter(len(span(f)) for f in r['cold_ends'].values()).items()), + premix_gates=len(r['premix']), early_cleanup_gates=len(r['early_cleanup']), cleanup_gates=len(r['cleanup']), + local_profile=w['report']['local_profile'], width_inventory=w['report']['width_inventory']), indent=1) + '\n', newline='\n') + print('PASS', len(r['cold_ends']), 'cold low-frame-ended helpers;', len(r['premix']), 'premix gates;', len(r['cleanup']), 'cleanup gates') diff --git a/research/complex-571-cold14-r1/code/build_gate_moves.py b/research/complex-571-cold14-r1/code/build_gate_moves.py new file mode 100644 index 0000000000..03114099c6 --- /dev/null +++ b/research/complex-571-cold14-r1/code/build_gate_moves.py @@ -0,0 +1,61 @@ +"""Move commuting gates, then apply source-bound frame coalescences; the scalar map stays identical. +Extends PR583's build_frames.py (chafreaky, OpenAI Codex assisted, Apache-2.0) with commuting gate moves found by +Claude Code research agents. Apache-2.0. + +Recipe: input_content_sha256, before/after profiles, moves [{section, from, to}] (applied in order; every gate the +moved gate passes must commute with it), and changes [{section, index, before, after}] (indices after the moves; +each change only raises the gate frame and must save exactly {1:-2, 2:+1}). The cleanup section is rebuilt with the +inherited rule (the input word must already satisfy it), and the helper responses must be unchanged. +""" +from pathlib import Path +import argparse,copy,gzip,hashlib,json,sys +from collections import Counter +assert __debug__,'Assertions required' +ap=argparse.ArgumentParser();ap.add_argument('--input',type=Path,required=True);ap.add_argument('--recipe',type=Path,required=True);ap.add_argument('--gk-dir',type=Path,required=True);ap.add_argument('--out',type=Path,required=True);a=ap.parse_args();assert not a.out.exists() +sys.path.insert(0,str(a.gk_dir));import gk_word as G,gk_common as C +G.V=C.V=112;G.DATA=C.DATA=7168 +raw=json.loads(gzip.decompress(a.input.read_bytes()));recipe=json.loads(a.recipe.read_text());enc=lambda x:json.dumps(x,sort_keys=True,separators=(',',':')).encode();sha=lambda x:hashlib.sha256(x).hexdigest() +assert sha(enc(raw))==recipe['input_content_sha256'];before=G.profile(raw);assert dict(before)=={int(r):n for r,n in recipe['before'].items()} +def regs(e):return(e[1],e[2])if e[0]=='add'else(e[1],) +def commute(x,y): + """Two additions commute unless one writes the other's source; any other pair must touch disjoint registers.""" + if x[0]=='add'and y[0]=='add':return x[1]!=y[2]and y[1]!=x[2] + return not set(regs(x))&set(regs(y)) +cleanup=lambda w:[G.inverse(e,G.FULL)for e in reversed(w['A']+w['B'])if not 112<=e[1]<224] +assert raw['cleanup']==cleanup(raw),'input cleanup is not the inherited inverse rule' +w=copy.deepcopy(raw);moved=[] +for m in recipe['moves']: + L=w[m['section']];i,j=m['from'],m['to'];assert i!=j and 0<=ii else range(j,i);assert all(commute(L[i],L[k])for k in passed),'noncommuting move %s'%m + L.insert(j,L.pop(i));moved.append(dict(m,passed=len(passed))) +w['cleanup']=cleanup(w);responses=G.responses(w);assert responses==G.responses(raw),'scalar responses changed by the moves' +assert G.profile(w)==before,'moves alone changed the profile';trace=[] +for change in recipe['changes']: + part,i=change['section'],change['index'];assert w[part][i]==change['before'];assert change['before'][:-1]==change['after'][:-1] + w[part][i]=change['after'];after=G.profile(w);delta={r:after[r]-before[r]for r in set(after)|set(before)if after[r]!=before[r]};assert delta=={1:-2,2:1};trace.append(dict(section=part,index=i,delta=delta));before=after +w['cleanup']=cleanup(w) +assert dict(G.profile(w))=={int(r):n for r,n in recipe['after'].items()} +for key in raw: + if key not in ('A','B','cleanup','report'):assert w[key]==raw[key] +for part in ('A','B'):assert sorted(map(enc,(e[:-1]for e in w[part])))==sorted(map(enc,(e[:-1]for e in raw[part]))) +assert G.widths_of(w)==G.widths_of(raw);responses=G.responses(w);assert responses==G.responses(raw) +assert all(not responses[int(r)-224]for r in w['start_extra']) +# Fresh negative controls: every omitted coalescence loses the new profile, every full-space frame replacement violates +# a chain/cut bound, and every move reverted before its coalescence is rejected. +rejected=[] +for c in recipe['changes']: + z=copy.deepcopy(w);z[c['section']][c['index']]=c['before'];assert G.profile(z)!=G.profile(w);rejected.append('omission-%s-%d'%(c['section'],c['index'])) + z=copy.deepcopy(w);z[c['section']][c['index']][-1]=list(G.FULL) + try:G.profile(z) + except AssertionError:rejected.append('overpromotion-%s-%d'%(c['section'],c['index'])) + else:raise AssertionError('Invalid frame accepted') +for m in reversed(recipe['moves']): + z=copy.deepcopy(w);L=z[m['section']];L.insert(m['from'],L.pop(m['to'])) + try:ok=G.profile(z)==G.profile(w) + except AssertionError:ok=False + assert not ok,'unmoved coalescence accepted';rejected.append('unmoved-%s-%d'%(m['section'],m['from'])) +w['report'].update(local_profile=dict(G.profile(w)),local_rank_mass=sum(r*n for r,n in G.profile(w).items()),status='GATE_MOVE_FRAME_COALESCENCES_PENDING_NATIVE_PHASE_ADMISSION', + # descriptive inventory fields recomputed from the actual widths (as PR586's adapted PR583 constructor does) + width_inventory={str(k):v for k,v in sorted(Counter(G.widths_of(w)).items())},entering_helpers=sum(v<9 for v in G.widths_of(w)),entrance_rank=sum(9-v for v in G.widths_of(w))) +a.out.mkdir(parents=True);(a.out/'FULL-WORD.json.gz').write_bytes(G.dump(w));receipt=dict(status='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES',input_content_sha256=sha(enc(raw)),output_content_sha256=sha(enc(w)),profile_before=recipe['before'],profile_after=recipe['after'],moves=moved,changes=trace,negative_controls_rejected=rejected,all_scalar_responses_unchanged=True,all_entering_helper_responses_zero=True,helper_widths_unchanged=True,cleanup_rebuilt_by_inherited_rule=True,scope='Construction, commutation, frame/profile and scalar response checks only; native, phase and global admission are separate.') +(a.out/'FRAME-CONSTRUCTION.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n');print(json.dumps(receipt,indent=2)) diff --git a/research/complex-571-cold14-r1/code/build_hpe.py b/research/complex-571-cold14-r1/code/build_hpe.py new file mode 100644 index 0000000000..830906acf2 --- /dev/null +++ b/research/complex-571-cold14-r1/code/build_hpe.py @@ -0,0 +1,123 @@ +"""Hyperplane-ended helpers (HPE) constructor. Apache-2.0. Prepared with Claude Code assistance. + +usage: build_hpe.py --input FULL-WORD.json.gz --recipe RECIPE.json --out DIR + +RECIPE: {"changes": [{"helper": h, "cleanup_index": i, "frame": [raw vectors]}, ...], "output_content_sha256": hex}. +Each change must be an admissible early-cleanup move: + * h is an entering helper (start_extra) touched by exactly one cleanup gate, cleanup[i]; + * cleanup[i] commutes with every earlier cleanup gate on its registers (commute(): neither writes a register the + other touches, or both add into one target without reading each other's target), so it commutes with the whole + skipped cleanup prefix; in practice the skipped gates only read the partner (x -= p); + * frame == join of the registers' last A/B frames and has dimension < 9. +The output word gets early_cleanup [[i, U]], helper_final {h: U} and the exact paid profile (only the two registers' +final chains change: h ends at U instead of FULL; the partner climbs through U). Exactness of the reordered program, +the frame chains and the profile are re-checked independently by hpe_audit_and_transport.py; the paired control audit +is controls_hpe_atc.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return [p[k] for k in sorted(p, reverse=True)] + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def commute(a, b): + """Sufficient syntactic commutation of two scalar gates (t += q*s, t *= q): neither writes a register the other + touches, or both are additions into the same target with neither reading the other's target.""" + ra, rb = set(regs(a)), set(regs(b)) + if a[1] not in rb and b[1] not in ra: return True + return a[0] == 'add' and b[0] == 'add' and a[1] == b[1] and a[2] != b[1] and b[2] != a[1] + + +def last_frames(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [[] for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = [p] + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = list(f) + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): cur[r] = list(e[-1]) + return cur + + +def apply(w, changes): + assert 'early_cleanup' not in w and 'helper_final' not in w, 'input already has hyperplane-ended helpers' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + lp = Counter({int(r): c for r, c in w['report']['local_profile'].items()}) + seen = set() + for z in changes: + h, i, U = z['helper'], z['cleanup_index'], z['frame'] + assert 2*v <= h < n and str(h) in w['start_extra'], ('not an entering helper', h) + assert count[h] == 1 and first[h] == i, ('helper must have exactly this one cleanup gate', h) + e = w['cleanup'][i]; rs = regs(e) + assert all(commute(w['cleanup'][j], e) for r in rs for j in on[r] if j < i), ('cleanup gate does not commute with the skipped cleanup gates on its registers', i) + assert not seen & set(rs), 'registers shared between changes'; seen |= set(rs) + assert span([x for r in rs for x in cur[r]]) == U and len(U) < 9, ('frame is not the join of the last frames', h) + for r in rs: # old: last -> FULL; new: last -> U (-> FULL for the partner) + d0 = 9 - len(span(cur[r])) + if d0: lp[d0] -= 1 + d1 = len(U) - len(span(cur[r])) + if d1: lp[d1] += 1 + if r != h and len(U) < 9: lp[9 - len(U)] += 1 + w['early_cleanup'] = [[z['cleanup_index'], z['frame']] for z in changes] + w['helper_final'] = {str(z['helper']): z['frame'] for z in changes} + w['report']['local_profile'] = {str(r): c for r, c in sorted(lp.items()) if c} + w['report']['local_rank_mass'] = sum(r*c for r, c in lp.items()) + if 'width_inventory' in w['report']: # descriptive metadata: one width-w helper becomes width w-(9-dim U) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for z in changes: + e = len(w['start_extra'][str(z['helper'])]); inv[9 - e] -= 1; inv[len(z['frame']) - e] += 1 + assert min(inv.values()) >= 0 + w['report']['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + assert min(lp.values()) >= 0 + return w + + +def candidates(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + out = [] + for h in range(2*v, n): + if count[h] != 1 or str(h) not in w.get('start_extra', {}): continue + i = first[h]; rs = regs(w['cleanup'][i]) + if not all(commute(w['cleanup'][j], w['cleanup'][i]) for r in rs for j in on[r] if j < i): continue + U = span([x for r in rs for x in cur[r]]) + if len(U) < 9: out.append(dict(helper=h, cleanup_index=i, frame=U)) + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path) + ap.add_argument('--out', type=Path); ap.add_argument('--nominate', type=Path, help='write a recipe with every candidate') + a = ap.parse_args() + w = json.loads(gzip.decompress(a.input.read_bytes())) + if a.nominate: + a.nominate.write_text(json.dumps(dict(changes=candidates(w), output_content_sha256=''), indent=1) + '\n', newline='\n') + raise SystemExit(0) + r = json.loads(a.recipe.read_bytes()) + w = apply(w, r['changes']) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'HPE-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_HYPERPLANE_ENDED_HELPERS', helpers=[z['helper'] for z in r['changes']], + local_profile=w['report']['local_profile']), indent=1) + '\n', newline='\n') + print('PASS', len(r['changes']), 'hyperplane-ended helpers') diff --git a/research/complex-571-cold14-r1/code/cold_end_controls.py b/research/complex-571-cold14-r1/code/cold_end_controls.py new file mode 100644 index 0000000000..07d023938c --- /dev/null +++ b/research/complex-571-cold14-r1/code/cold_end_controls.py @@ -0,0 +1,86 @@ +"""cold_end_controls.py COLD-END-WORD.json.gz ROUTING OUTDIR : raw-word negative controls for the cold low-frame ends and the +refactored cleanup accepted by hpe_audit_and_transport.py. Every mutation MUST be rejected (AssertionError); the +unmutated word MUST pass. Apache-2.0. DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code.""" +import copy, gzip, json, shutil, sys, tempfile +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import hpe_audit_and_transport as atc + +src, routing, outdir = Path(sys.argv[1]), Path(sys.argv[2]), Path(sys.argv[3]) +word = json.load(gzip.open(src)) +v, R = word['report']['v'], word['report']['R']; n = 2*v + R +regs = lambda e: [e[1]] + ([e[2]] if e[0] == 'add' else []) +meta = word['refactored_cleanup'] +cold = [int(h) for h in meta['cold_low_frame_ended_helpers']] +npre = meta['premix_gates']; nlow = meta['lower_frame_gates'] +early = word['early_cleanup']; eidx = {i for i, _ in early} +rest = [i for i in range(len(word['cleanup'])) if i not in eidx] + + +def trial(w): + tmp = Path(tempfile.mkdtemp()) + p = tmp/'w.json.gz'; p.write_bytes(gzip.compress(json.dumps(w).encode(), mtime=0)) + try: + atc.run(p, routing, tmp/'out') + return True + except AssertionError: + return False + finally: + shutil.rmtree(tmp, ignore_errors=True) + + +assert trial(word), 'unmutated cold-end word must pass' +results = [] + + +def reject(name, mut): + w = copy.deepcopy(word); mut(w) + assert not trial(w), 'cold-end mutation accepted: ' + name + results.append(name); print('rejected', name, flush=True) + + +h0 = cold[0] +i0, U0 = next((i, f) for i, f in early if h0 in regs(word['cleanup'][i])) +r0 = rest[len(rest)//2] + + +def premix_to_precondition(w): # premix before the wrappers; compensation then reads the cold ends + w['precondition'] = w['precondition'] + w['A'][:npre]; w['A'] = w['A'][npre:] + + +def lower_gate_into_full(w): # a lower-frame gate on a cold-ended helper executed in the FULL remainder instead + w['early_cleanup'] = [x for x in w['early_cleanup'] if x[0] != i0] + + +def drop_cleanup_gate(w, i): + w['cleanup'].pop(i) + w['early_cleanup'] = [[j - (j > i), f] for j, f in w['early_cleanup']] + + +def other_frame(w): # a different frame of the same dimension as the cold end (another cold helper's) + f = next(w['helper_final'][str(h)] for h in cold if w['helper_final'][str(h)] != w['helper_final'][str(h0)]) + w['helper_final'][str(h0)] = f + + +def extra_cold_end(w): # declare a premixed partner of h0 cold-ended at h0's frame: fails the row/column cone + p = next(r for e in w['A'][:npre] for r in regs(e) if r != h0 and h0 in regs(e)) + w['helper_final'][str(p)] = w['helper_final'][str(h0)] + + +reject('premix placed in the zero-frame precondition (before the cold wrappers)', premix_to_precondition) +reject('one premix gate dropped', lambda w: w['A'].pop(npre - 1)) +reject('one lower-frame cleanup gate dropped', lambda w: drop_cleanup_gate(w, i0)) +reject('one FULL-remainder gate dropped', lambda w: drop_cleanup_gate(w, r0)) +reject('lower-frame gate coefficient changed', lambda w: w['cleanup'][i0].__setitem__(3, w['cleanup'][i0][3] * 2)) +reject('lower-frame gate moved into the FULL remainder (touches a cold-ended helper at FULL)', lower_gate_into_full) +reject('lower-frame gate frame below its registers\' frames', lambda w: next(x for x in w['early_cleanup'] if x[0] == i0).__setitem__(1, U0[:-1])) +reject('cold end at another dim-4 frame', other_frame) +reject('cold end dropped (helper climbs to FULL but nothing cleans it there)', lambda w: w['helper_final'].pop(str(h0))) +reject('extra cold end on a premixed partner (row/column cone)', extra_cold_end) +reject('refactored-cleanup marker removed (literal-inverse rule applies)', lambda w: w.pop('refactored_cleanup')) +reject('remainder gate retargeted to a target register', lambda w: w['cleanup'][r0].__setitem__(1, v + 3)) +reject('non-dyadic remainder coefficient', lambda w: w['cleanup'][r0].__setitem__(4 if w['cleanup'][r0][0] == 'add' else 3, 3 * w['cleanup'][r0][4 if w['cleanup'][r0][0] == 'add' else 3])) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('5', w['report']['local_profile']['5'] - 1)) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'COLD-END-CONTROLS.json').write_text(json.dumps(dict(status='PASS_COLD_END_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'cold-end raw-word mutations rejected') diff --git a/research/complex-571-cold14-r1/code/emit_allcold.py b/research/complex-571-cold14-r1/code/emit_allcold.py new file mode 100644 index 0000000000..574de85b52 --- /dev/null +++ b/research/complex-571-cold14-r1/code/emit_allcold.py @@ -0,0 +1,144 @@ +"""Two-provider width-seven whole-owner derivative, adapted with OpenAI Codex assistance. +Based on PR514 and its credited PR484/507 lineage. +CLI: --base VERIFIED_VARIANT --owners ASYNC-OWNERS.json.gz --plan ASYNC-PLAN.json --out OUT +No optimizer or unpublished word builder runs. The frozen map explicitly names +one whole helper per family per complete invocation, plus borrowed spectators. +""" +import sys,json,gzip,hashlib,copy,argparse +from pathlib import Path +from collections import Counter,defaultdict +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +parser=argparse.ArgumentParser(description=__doc__) +parser.add_argument('--base',type=Path,required=True);parser.add_argument('--owners',type=Path,required=True);parser.add_argument('--plan',type=Path,required=True);parser.add_argument('--out',type=Path,required=True) +a=parser.parse_args();BASE,MAP,PLAN,OUT=(p.resolve()for p in(a.base,a.owners,a.plan,a.out));assert not OUT.exists();OUT.mkdir(parents=True) +class OH: + @staticmethod + def idle_basis(q): + z=next(i for i in range(9)if not(q>>i)&1);u=q^(1<>i&1 else 0)for i in order]+[1<=0 and off+w<=rank[i] + assert z['time']==at[s,rep] and z['time'] in plan['windows'][f'{orp},{i}'][1] + B=OH.idle_basis(canon['ports'][port]);pending=list(map(int,ph['recipes'][port]['idle_children'][i]['orthogonal_axes']));assert len(pending)==rank[i] + occ=[B.index(v)for v in pending[off:off+w]];sp=OH.spectators(canon['ports'][port],pending,off,w)if w<9 else[] + order=occ+sp+[j for j in range(M)if j not in occ and j not in sp];assert len(order)==len(set(order))==M + sigma=[B[j]for j in order];sigmahash=hashlib.sha256(json.dumps(sigma,separators=(',',':')).encode()).hexdigest();sigmas[sigmahash]=sigma + route=[4,i,off,w,sp]if w<9 else[3,i,off];bycall[s,rep][h]=[f,route];entering+=w<9 + cells=set(range(off,off+w));assert not used[i,orp,port]&cells;used[i,orp,port]|=cells + digest.update(json.dumps([s,rep,h,f,sigmahash],separators=(',',':')).encode()+b'\n') +for c in t['calls']: + k=(c['stage'],c['replica']);assert set(bycall[k])==set(range(R)) + c['owners']=c['owners'][:(2*V)]+[bycall[k][h]for h in range(R)];assert len({f for f,r in c['owners']})==2*V+R and all(f2*max(paid)**2 + +assert all(c['local_program_sha256']==registry[c['provider_id']]['local_program_checks'][c['orientation']]['sha256']for c in t['calls']) +t['provider_dispatch']='For each indivisible local_cover_sweep, execute local_providers[call.provider_id].local_programs[call.orientation] with that provider residual adapters and Clifford recipes. The sweep provider_id must equal its call provider_id.' +raw=json.dumps(t,sort_keys=True,separators=(',',':')).encode();(OUT/'GLOBAL-TEMPLATE.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +res=dict(status='EMITTED_MIXED_PROVIDER_ASYNCHRONOUS_WHOLE_OWNER_COMPLEX_TEMPLATE', + template_sha256=hashlib.sha256(raw).hexdigest(), + parent_template_sha256=hashlib.sha256(gzip.decompress((BASE/'split-centres/GLOBAL-TEMPLATE.json.gz').read_bytes())).hexdigest(), + live=DATA,physical=physical,global_profile=dict(sorted(paid.items())), + rank_mass=sum(r*n for r,n in paid.items()),deficit=2560,maxchild=max(paid), + hosted_residuals=len(roles),banks_per_stage=[0]*9,entering_helper_roles=entering, + unique_actual_73column_sigmas=len(sigmas),sigma_stream_sha256=digest.hexdigest(), + cross_replica_helper_roles=sum(z['replica']!=z['owner_replica']for z in roles), + asynchronous_order_sha256=hashlib.sha256(json.dumps(call_order,separators=(',',':')).encode()).hexdigest(), + source_artifacts=source_artifacts,provider_counts=dict(Counter(c['provider_id']for c in t['calls'])), + scope='Two actual verified plain/width-seven providers dispatched per complete invocation; independent controller/spectator/normalization and complete finite invoice admission required.') +(OUT/'HOSTED.json').write_text(json.dumps(res,indent=2)+'\n');(OUT/'ACTUAL-SIGMAS.json.gz').write_bytes(gzip.compress(json.dumps(sigmas,separators=(',',':')).encode(),mtime=0));print(json.dumps(res,indent=2)) diff --git a/research/complex-571-cold14-r1/code/generated_identity.py b/research/complex-571-cold14-r1/code/generated_identity.py new file mode 100644 index 0000000000..74a9b60479 --- /dev/null +++ b/research/complex-571-cold14-r1/code/generated_identity.py @@ -0,0 +1,62 @@ +"""Proof-relevant identities for generated artifacts, independent of gzip streams. + +Immutable source archives retain their exact byte hashes. For freshly emitted +artifacts, gzip identity is the exact decompressed payload and JSON identity +retains every field. Only CLIFFORD-REVIEW's root timing field is excluded. +Literal receipt references are checked against actual files before replacing +the three gzip references (and the phase recipe reference) with content hashes. +Prepared with OpenAI Codex assistance; Apache-2.0. +""" +from pathlib import Path +import copy +import gzip +import hashlib +import json +import math + +if not __debug__: + raise RuntimeError('Assertions must remain enabled') + +FILES=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json') + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + +def json_identity(value): + return hashlib.sha256(json.dumps(value,sort_keys=True,separators=(',',':'),allow_nan=False).encode('utf-8')).hexdigest() + +def payload_identity(path): + return hashlib.sha256(gzip.decompress(Path(path).read_bytes())).hexdigest() + +def phase_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'CLIFFORD-REVIEW.json').read_bytes())if value is None else value) + assert value['canonical_word_sha256']==sha(directory/'CANONICAL-WORD.json.gz'),'stale phase canonical word reference' + assert value['recipe_sha256']==sha(directory/'CLIFFORD-RECIPES.json'),'stale phase recipe reference' + seconds=value.pop('seconds') + assert type(seconds)in(int,float) and math.isfinite(seconds) and seconds>=0,'invalid phase timing metadata' + value['canonical_word_sha256']=payload_identity(directory/'CANONICAL-WORD.json.gz') + value['recipe_sha256']=json_identity(json.loads((directory/'CLIFFORD-RECIPES.json').read_bytes())) + return value + +def native_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'INDEPENDENT-LOCAL-REPLAY.json').read_bytes())if value is None else value) + for field,name in [('canonical_word_sha256','CANONICAL-WORD.json.gz'),('local_programs_sha256','LOCAL-PROGRAMS.json.gz')]: + assert value[field]==sha(directory/name),'stale native artifact reference: '+field + value[field]=payload_identity(directory/name) + return value + +def artifact_identities(directory): + directory=Path(directory) + result={} + for name in FILES: + path=directory/name + if name.endswith('.gz'): + result[name]=payload_identity(path) + else: + value=phase_value(directory)if name=='CLIFFORD-REVIEW.json'else native_value(directory)if name=='INDEPENDENT-LOCAL-REPLAY.json'else json.loads(path.read_bytes()) + result[name]=json_identity(value) + return result diff --git a/research/complex-571-cold14-r1/code/generated_identity_controls.py b/research/complex-571-cold14-r1/code/generated_identity_controls.py new file mode 100644 index 0000000000..def4135cb3 --- /dev/null +++ b/research/complex-571-cold14-r1/code/generated_identity_controls.py @@ -0,0 +1,227 @@ +"""Actual gzip/receipt portability and consistently rebound semantic controls. + +Only scratch copies of generated provider files are changed. Each assembly +control recomputes raw artifact links, all seven portable identities and the +owner/invoice digests. This tests identity admission, not a replacement for the +full physical replay. Prepared with OpenAI Codex assistance; Apache-2.0. +""" +import argparse +import copy +import gzip +import hashlib +import json +import math +import shutil +import tempfile +from pathlib import Path + +import os +assert os.environ.get('GAIN_PR564_SOURCE'), 'Explicit engine source required' +from assemble import assemble +from witness import PROVIDERS +from generated_identity import FILES, artifact_identities, json_identity, sha + +if not __debug__: + raise RuntimeError('Assertions required; refusing optimized verification') + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def write_json(path, value): + # Nonfinite numbers are emitted only by deliberate invalid-timing controls. + path.write_text(json.dumps(value, indent=2)+'\n', encoding='utf-8', newline='\n') + + +def write_gzip(path, value): + payload = json.dumps(value, sort_keys=True, separators=(',', ':')).encode() + path.write_bytes(gzip.compress(payload, compresslevel=1, mtime=123456789)) + + +def refresh_links(directory): + """Rebind only the three actual gzip references and the phase recipe link.""" + native = read(directory/'INDEPENDENT-LOCAL-REPLAY.json') + native['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + native['local_programs_sha256'] = sha(directory/'LOCAL-PROGRAMS.json.gz') + write_json(directory/'INDEPENDENT-LOCAL-REPLAY.json', native) + phase = read(directory/'CLIFFORD-REVIEW.json') + phase['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + phase['recipe_sha256'] = sha(directory/'CLIFFORD-RECIPES.json') + write_json(directory/'CLIFFORD-REVIEW.json', phase) + + +def rebound(owner, invoice, pid, directory): + """Return complete consistent receipt links to the changed actual files.""" + identities = artifact_identities(directory) + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + p = i['providers'][pid] + for name in FILES: + raw = sha(directory/name) + p['artifacts'][name] = raw + o['source_artifacts']['providers/'+pid+'/'+name] = raw + p['semantic_artifact_sha256'] = identities + o['provider_artifact_semantic_sha256'][pid] = identities + phase = identities['CLIFFORD-REVIEW.json'] + o['provider_phase_semantic_sha256'][pid] = phase + i['provider_phase_semantic_sha256'][pid] = phase + owner_hash = json_identity(o) + i['owner_audit_sha256'] = owner_hash + return o, i, owner_hash, json_identity(i), identities + + +def run(base, audit, out, provider_root=None): + assert not out.exists() + out.parent.mkdir(parents=True, exist_ok=True) + source = provider_root or base/'providers' + owner_path, invoice_path = audit/'OWNERS-AND-PROFILE.json', audit/'PREFIX-AND-INVOICE.json' + owner, invoice = read(owner_path), read(invoice_path) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + accepted, rejected, references, source_identities = [], [], [], {} + raw_changed = {} + with tempfile.TemporaryDirectory(prefix='generated-identity-controls-', dir=out.parent) as td: + scratch = Path(td) + for pid in sorted(PROVIDERS): + original = source/pid + ids = artifact_identities(original) + assert ids == PROVIDERS[pid]['artifact_semantic_sha256'] + source_identities[pid] = dict(raw={name:sha(original/name) for name in FILES}, semantic=ids) + # The optional provider-root can use another Python/zlib environment. + o, i, oh, ih, _ = rebound(owner, invoice, pid, original) + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + + def fresh(tag): + directory = scratch/(pid+'-'+tag) + directory.mkdir() + for name in FILES: + shutil.copyfile(original/name, directory/name) + return directory + + def reject_semantics(tag, mutate, changed_file): + directory = fresh(tag) + mutate(directory) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids[changed_file] != ids[changed_file], (tag, 'mutation disappeared from identity') + try: + assemble(o, i, oh, ih) + except AssertionError: + rejected.append(dict(provider=pid, case=tag, changed_identity=changed_file, + all_raw_and_semantic_links_rebound=True)) + else: + raise AssertionError('semantic mutation accepted: '+tag) + + def json_mutation(name, change): + def mutate(directory): + value = read(directory/name) + change(value) + write_json(directory/name, value) + return mutate + + directory = fresh('recompression') + changed = [] + for name in ('CANONICAL-WORD.json.gz', 'LOCAL-PROGRAMS.json.gz'): + before = (directory/name).read_bytes() + payload = gzip.decompress(before) + after = gzip.compress(payload, compresslevel=1, mtime=123456789) + assert after != before and gzip.decompress(after) == payload + (directory/name).write_bytes(after) + changed.append(name) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids == ids + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + accepted.append(dict(provider=pid, case='recompressed_same_payloads', changed_raw_artifacts=changed, + all_seven_identities_unchanged=True, all_raw_links_rebound=True)) + raw_changed[pid] = {name:[sha(original/name),sha(directory/name)] for name in changed} + + # A stale literal link must fail before any normalization can hide it. + for tag, name, receipt, field in ( + ('stale_native_word_link','CANONICAL-WORD.json.gz','INDEPENDENT-LOCAL-REPLAY.json','canonical_word_sha256'), + ('stale_native_program_link','LOCAL-PROGRAMS.json.gz','INDEPENDENT-LOCAL-REPLAY.json','local_programs_sha256'), + ('stale_phase_word_link','CANONICAL-WORD.json.gz','CLIFFORD-REVIEW.json','canonical_word_sha256'), + ('stale_phase_recipe_link','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json','recipe_sha256')): + directory = fresh(tag) + value = read(directory/receipt) + value[field] = '0'*64 + write_json(directory/receipt, value) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid, case=tag, rejected_before_projection=True)) + else: + raise AssertionError('stale literal reference normalized away: '+tag) + + def change_scalar(directory): + programs = read(directory/'LOCAL-PROGRAMS.json.gz') + event = next(e for e in programs['forward'] if e[0]=='scalar' and e[1][0]=='add') + event[1][3] = -event[1][3] + write_gzip(directory/'LOCAL-PROGRAMS.json.gz', programs) + reject_semantics('changed_actual_scalar', change_scalar, 'LOCAL-PROGRAMS.json.gz') + + def change_frame(directory): + word = read(directory/'CANONICAL-WORD.json.gz') + old = word['start'][518] + replacement = next(j for j,f in enumerate(word['frames']) + if j != old and len(f) == len(word['frames'][old])) + word['start'][518] = replacement + write_gzip(directory/'CANONICAL-WORD.json.gz', word) + reject_semantics('changed_actual_start_frame_same_rank', change_frame, 'CANONICAL-WORD.json.gz') + reject_semantics('native_false_restoration', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['forward'].__setitem__('private_work_erased',False)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_wrong_column_count', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['backward'].__setitem__('all_exact_columns',727)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_changed_profile', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['paid_profiles']['forward'].__setitem__('1',x['paid_profiles']['forward']['1']+1)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('phase_false_global_equality', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('all_child_equalities_include_global_phase',False)), + 'CLIFFORD-REVIEW.json') + + # This event hash is proof data, even when its value equals a gzip hash. + def change_event_hash(directory): + value = read(directory/'LOCAL-CHECKS.json') + value['forward']['sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + write_json(directory/'LOCAL-CHECKS.json', value) + assert artifact_identities(directory)['LOCAL-CHECKS.json'] == json_identity(value) + reject_semantics('local_event_hash_is_not_a_container_reference', change_event_hash, 'LOCAL-CHECKS.json') + reject_semantics('unrelated_native_root_seconds_retained', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x.__setitem__('seconds',7)), 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('nested_phase_seconds_retained', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('additional_evidence',{'seconds':7})), 'CLIFFORD-REVIEW.json') + + for tag,value in [('negative',-1),('boolean',True),('string','1'),('nan',float('nan')), + ('infinity',float('inf'))]: + directory = fresh('invalid-timing-'+tag) + phase = read(directory/'CLIFFORD-REVIEW.json');phase['seconds'] = value + write_json(directory/'CLIFFORD-REVIEW.json', phase) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid,case='invalid_phase_seconds_'+tag, + rejected_before_projection=True)) + else: + raise AssertionError('invalid timing silently erased: '+tag) + n=len(PROVIDERS) + assert len(accepted)==n and len(rejected)==9*n and len(references)==9*n + assert {x['provider']for x in accepted}=={x['provider']for x in rejected}=={x['provider']for x in references}==set(PROVIDERS) + report=dict(status='PASS_GENERATED_ARTIFACT_RECOMPRESSION_AND_REBOUND_MUTATIONS', + kappa=baseline['kappa'], source_owner_sha256=sha(owner_path),source_invoice_sha256=sha(invoice_path), + source_providers=source_identities,recompression_changed_raw_hashes=raw_changed, + accepted=accepted,semantic_mutations_rejected=rejected,invalid_references_or_metadata_rejected=references, + counts=dict(recompression_accepted=n,semantic_rejected=9*n,reference_or_metadata_rejected=9*n), + scope='Actual copied gzip streams and receipt JSON are changed. All seven content identities, raw source links and owner/invoice digests are recomputed consistently before assembly. Only identical decompressed payloads are accepted; scalar, same-rank frame, native proof fields, global phase, event hashes and unrelated seconds remain pinned. Literal references and invalid phase timing are rejected before normalization. Full physical replay remains a separate prerequisite.') + write_json(out,report) + print(report['status'],report['counts']) + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + for name in ('base','audit','out'): + parser.add_argument('--'+name,type=Path,required=True) + parser.add_argument('--provider-root',type=Path) + args=parser.parse_args() + run(args.base,args.audit,args.out,args.provider_root) diff --git a/research/complex-571-cold14-r1/code/hpe_adapters_local.py b/research/complex-571-cold14-r1/code/hpe_adapters_local.py new file mode 100644 index 0000000000..8f77ccf02d --- /dev/null +++ b/research/complex-571-cold14-r1/code/hpe_adapters_local.py @@ -0,0 +1,116 @@ +"""Paid residual wrappers for entering helpers (Lemma A): generation and independent decoding. Apache-2.0. +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. The wrapper construction follows PR #458 +(chafreaky): a helper that starts at frame E and ends at FULL has the physical residual S_E = T_FULL T_E^-1 (apply T_E^-1 first); +S_E = L_E (C_[w] x I) R_E with R_E applied first; the wrappers R_E^-1 before the whole local invocation and L_E^-1 after its +full-frame cleanup turn the residual into the coordinate factor C_[w] x I and restore the other 9 - w coordinates identically. +usage: adapters_gk.py CANONICAL-WORD.json.gz RESIDUAL-ADAPTERS.json OUT-LEMMA-A.json +Writes the recipes (generation uses clifford_exact.lower_child) and then DECODES the serialized monomials with the primitive +constructors of clifford_exact (not lower_child) and checks, for every entrance frame, that L_E^-1 S_E R_E^-1 has exactly the +tableau and zero-state vector (global phase included) of fourier(9, range(w)); mutated recipes (wrong phase, swapped sides, wrong +translation, wrong width) must be rejected.""" +import copy, gzip, json, sys +from pathlib import Path +# Package-path adaptation only; the exact wrapper mathematics is unchanged. +import os +R = Path(os.environ['MULTICOLD_SOURCE']) / 'vendor/pr558/vendor/pr552/complex-global/vendor531' # HPE: the pinned vendor531 clifford_exact +sys.path.insert(0, str(R / 'vendor/clifford')) +from clifford_exact import canonical_frame, lower_child, fourier, diag, perm, xgate, Op, identity +n = 9; FULL = tuple(1 << i for i in range(n)) +def monomial_op(rec): + """decode a serialized monomial (matrix rows, quadratic rows, Z4 linear part, translation, phase)""" + out = diag(n, tuple(rec['quadratic_rows']), tuple(rec['linear_Z4'])).then(perm(n, tuple(rec['matrix_rows']))).then(xgate(n, rec['offset'])) + return out.then(Op(n, identity(n), [('phase', rec['phase'])])) +def S_of(U, END=FULL): + # HPE: a helper that starts at E=U and ends at END has residual T_END T_E^-1 (END = FULL is the inherited case) + return canonical_frame(n, tuple(U)).adjoint().then(canonical_frame(n, tuple(END))) +def wrapped_ok(U, rec, END=FULL): + """exactly: L^-1 S R^-1 = C_[w] x I (apply order: R^-1, S, L^-1), w = dim END - dim E""" + w = len(END) - len(U); S = S_of(U, END); Rm = monomial_op(rec['right']); Lm = monomial_op(rec['left']) + net = Rm.adjoint().then(S).then(Lm.adjoint()); target = fourier(n, range(w)) + return rec['rank'] == w and net.tab == target.tab and net.zero_state() == target.zero_state() +def _contains(a, b): + a = list(a) + for x in b: + for y in sorted(a, reverse=True): + if x >> (y.bit_length() - 1) & 1: x ^= y + if x: return False + return True +def main(): + c = json.load(gzip.open(sys.argv[1])); frames = c['frames']; v = c['v'] + starts = sorted({c['start'][r] for r in range(2 * v, len(c['start'])) if c['start'][r] != 0 and c['final'][r] == 1}) + # HPE: (entrance, terminal) pairs of helpers ending at a proper subspace; key 'E:U'. Inherited words have none. + ends = sorted({(c['start'][r], c['final'][r]) for r in range(2 * v, len(c['start'])) if c['final'][r] != 1}) + # COLD-HPE: e == 0 (a cold helper, entrance = bottom, T_0 = I) is allowed: the (0, U) recipe is keyed '0:U' + assert all(len(frames[u]) < n and _contains(frames[u], frames[e]) for e, u in ends) + cold_ends = [(e, u) for e, u in ends if e == 0] + recipes = {} + for f in starts: + U = frames[f]; rec, compiled = lower_child(S_of(U)) + recipes[str(f)] = dict(frame=f, vectors=list(U), entrance_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + for e, u in ends: + E, U = frames[e], frames[u]; rec, compiled = lower_child(S_of(E, U)) + recipes['%d:%d' % (e, u)] = dict(frame=e, terminal=u, vectors=list(E), terminal_vectors=list(U), entrance_rank=len(E), + terminal_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + Path(sys.argv[2]).write_text(json.dumps(dict(status='RESIDUAL_ADAPTER_RECIPES', recipes=recipes), sort_keys=True, separators=(',', ':')) + '\n') + # ---- independent decode of the serialized file + data = json.loads(Path(sys.argv[2]).read_text())['recipes'] + dot = lambda a, b: bin(a & b).count('1') & 1 + detail = [] + for f in starts: + rec = data[str(f)]; U = frames[f] + assert wrapped_ok(U, rec), ('wrapper product is not C_[w] x I', f) + detail.append(dict(frame=f, entrance_rank=len(U), residual_width=n - len(U), vectors=list(U), all_even_weight=all(bin(x).count('1') % 2 == 0 for x in U), + totally_isotropic=all(dot(a, b) == 0 for a in U for b in U))) + hdetail = [] + for e, u in ends: # HPE: independent decode, residual width = dim U - dim E + rec = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + assert wrapped_ok(E, rec, U), ('HPE wrapper product is not C_[w] x I', e, u) + hdetail.append(dict(frame=e, terminal=u, entrance_rank=len(E), terminal_rank=len(U), residual_width=len(U) - len(E))) + controls = [] + def reject(name, fn): + f = starts[0]; rec = copy.deepcopy(data[str(f)]); fn(rec) + if wrapped_ok(frames[f], rec): raise AssertionError('mutated wrapper accepted: ' + name) + controls.append(name) + reject('wrong global phase', lambda r: r['right'].__setitem__('phase', (r['right']['phase'] + 1) % 4)) + reject('wrong translation', lambda r: r['left'].__setitem__('offset', r['left']['offset'] ^ 1)) + reject('wrong quadratic form', lambda r: r['right'].__setitem__('quadratic_rows', [x ^ 2 if i == 0 else x for i, x in enumerate(r['right']['quadratic_rows'])]) if False else r['right']['linear_Z4'].__setitem__(0, (r['right']['linear_Z4'][0] + 2) % 4)) + reject('sides swapped', lambda r: (r.__setitem__('left', r['right']), r.__setitem__('right', r['left']))) + reject('wrong width', lambda r: r.__setitem__('rank', r['rank'] + 1)) + if ends: # HPE controls on the first (E, U) pair + e, u = next((p for p in ends if p[0] != 0), ends[0]); rec0 = data['%d:%d' % (e, u)] # COLD-HPE: an entering pair if any (= ends[0] without cold ends) + def hreject(name, ok): + if ok: raise AssertionError('HPE mutation accepted: ' + name) + controls.append(name) + hreject('hpe: U-wrapper decoded against a FULL ending', wrapped_ok(frames[e], rec0)) + hreject('hpe: width misreported as 9 - dim E', wrapped_ok(frames[e], dict(rec0, rank=n - len(frames[e])), frames[u])) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u]) and _contains(frames[f], frames[e])) + hreject('hpe: wrong terminal hyperplane', wrapped_ok(frames[e], rec0, frames[other])) + fe = next(((e2, u2) for e2, u2 in ends if str(e2) in data), None) + if fe: # an entrance shared with FULL-ended helpers: R_{E,FULL} must not serve as R_{E,U} + r2 = data['%d:%d' % fe] + hreject('hpe: pre wrapper resolved to the FULL recipe R_{E,FULL}', wrapped_ok(frames[fe[0]], dict(r2, right=data[str(fe[0])]['right']), frames[fe[1]])) + hreject('hpe: wrong global phase', wrapped_ok(frames[e], dict(rec0, left=dict(rec0['left'], phase=(rec0['left']['phase'] + 1) % 4)), frames[u])) + if cold_ends: # COLD-HPE controls on the first cold pair (0, U): factor_iff_pre says only R_{0,U} itself may precede + e, u = cold_ends[0]; recc = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + ID = dict(matrix_rows=[1 << i for i in range(n)], offset=0, quadratic_rows=[0] * n, linear_Z4=[0] * n, phase=0) + assert monomial_op(ID).tab == identity(n) # the control's wrapper really is the identity + def creject(name, ok): + if ok: raise AssertionError('cold HPE mutation accepted: ' + name) + controls.append(name) + creject('cold hpe: identity pre wrapper instead of R_{0,U}', wrapped_ok(E, dict(recc, right=ID), U)) + creject('cold hpe: identity post wrapper instead of L_{0,U}', wrapped_ok(E, dict(recc, left=ID), U)) + creject('cold hpe: no wrappers (cold FULL convention L = R = I)', wrapped_ok(E, dict(recc, left=ID, right=ID), U)) + creject('cold hpe: U-wrapper decoded against a FULL ending', wrapped_ok(E, recc)) + creject('cold hpe: width misreported as 9', wrapped_ok(E, dict(recc, rank=n), U)) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u])) + creject('cold hpe: wrong terminal hyperplane', wrapped_ok(E, recc, frames[other])) + creject('cold hpe: wrong global phase', wrapped_ok(E, dict(recc, right=dict(recc['right'], phase=(recc['right']['phase'] + 1) % 4)), U)) + ent = next((p for p in ends if p[0] != 0 and p[1] == u), None) + same = lambda x, y: monomial_op(x).tab == monomial_op(y).tab and monomial_op(x).zero_state() == monomial_op(y).zero_state() + if ent and not same(data['%d:%d' % ent]['right'], recc['right']): # an entering helper ending at the same U: its R_{E,U} must not serve as R_{0,U} + creject('cold hpe: pre wrapper resolved to an entering recipe R_{E,U}', wrapped_ok(E, dict(recc, right=data['%d:%d' % ent]['right']), U)) + res = dict(status='PASS_RESIDUAL_WRAPPERS_ARE_EXACT', frames=len(detail), **({'hyperplane_end_pairs': hdetail} if ends else {}), **({'cold_hyperplane_end_pairs': len(cold_ends)} if cold_ends else {}), wrappers_reject=controls, all_even_weight=all(d['all_even_weight'] for d in detail), + all_totally_isotropic=all(d['totally_isotropic'] for d in detail), detail=detail) + Path(sys.argv[3]).write_text(json.dumps(res, indent=1) + '\n') + print('Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for', len(detail), 'entrance frames, global phase included;', len(controls), 'wrapper mutations rejected; all-even-weight:', res['all_even_weight']) +if __name__ == '__main__': main() diff --git a/research/complex-571-cold14-r1/code/hpe_audit_and_transport.py b/research/complex-571-cold14-r1/code/hpe_audit_and_transport.py new file mode 100644 index 0000000000..c566f54b57 --- /dev/null +++ b/research/complex-571-cold14-r1/code/hpe_audit_and_transport.py @@ -0,0 +1,301 @@ +"""Rebuild arbitrary-dirt compensation and transport a changed local word. + +Prepared for icekylinx with GPT-6 Astra assistance. Apache-2.0. +Adapted from PR425/433 (icekylinx), PR484's audit_gk.py +(DreamingOfClouds), and Round19's 112-port transport. This auditor does not +import a constructor, a nominated compensation table, or a global price. +Only the changed scalar word and its actual frame chains are checked here. +""" +import argparse +import copy +import gzip +import hashlib +import json +import time +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def content_hash(path): + data = path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix == '.gz' else data).hexdigest() + + +def basis(vs): + pivots = {} + for x in vs: + for k in sorted(pivots, reverse=True): + if x >> k & 1: + x ^= pivots[k] + if x: + k = x.bit_length() - 1 + for j in pivots: + if pivots[j] >> k & 1: + pivots[j] ^= x + pivots[k] = x + return tuple(pivots[k] for k in sorted(pivots, reverse=True)) + + +def apply(e, rows): + if e[0] == 'scale': + _, target, a, b, *_ = e + q = Q(a, b) + assert q + rows[target] = {j: q*x for j, x in rows[target].items()} + else: + _, target, source, a, b, *_ = e + assert target != source + q = Q(a, b) + for j, x in list(rows[source].items()): + value = rows[target].get(j, Q(0)) + q*x + if value: + rows[target][j] = value + else: + rows[target].pop(j, None) + + +def inverse(e): + e = copy.deepcopy(e) + if e[0] == 'add': + e[3] *= -1 + else: + e[2], e[3] = e[3], e[2] + return e + + +def dual(e): + e = inverse(e) + if e[0] == 'add': + e[1], e[2] = e[2], e[1] + return e + + +def state_maps(prefix, n): + """P = exact state map of the prefix (precondition + compensation + A + cut + B), and P^-1 (rows as sparse dicts).""" + P = [{r: Q(1)} for r in range(n)] + for e in prefix: + apply(e, P) + Pinv = [{r: Q(1)} for r in range(n)] + for e in reversed(prefix): + apply(inverse(e), Pinv) + return P, Pinv + + +def cone_violations(P, Pinv, hpe, mapping, endB, final, frames): + """COLD-HPE / CONE PRE-CHECK. Necessary conditions for helper h (raw index) to end at U = final[h] under ANY + monotone common-frame cleanup of the end-of-B state P (frames only climb, every gate at a common frame): + row (J26-H dependency bound): every g in supp(row h of P^-1) has end-of-B frame <= U -- h is rebuilt from them; + column (dirt-column lemma): every g != h with P[g][h] != 0 has end-of-B frame <= U -- the column of P at h, + restricted to rows whose frame is not <= U, changes only by invertible row operations unless h is read at a + frame not <= U, so it can reach e_h only if it is already zero there. + Both are implied by the exact endpoint replay plus the frame checks below; here they fail FAST, with the reason.""" + inside = lambda a, b: basis(frames[a] + frames[b]) == frames[b] + viol = [] + for h in hpe: + U = final[mapping[h]] + viol += [('row', h, g) for g, x in sorted(Pinv[h].items()) if x and not inside(endB[mapping[g]], U)] + viol += [('column', h, g) for g in range(len(P)) if g != h and P[g].get(h) and not inside(endB[mapping[g]], U)] + return viol + + +def run(raw_path, routing_path, out): + start_time = time.monotonic() + word, routing = read(raw_path), read(routing_path) + v, h, helpers = word['report']['v'], word['report']['h'], word['report']['R'] + assert h == 9 and v == 112 and routing['v'] == v + n = 2*v + helpers + ident = lambda: [{r: Q(1)} for r in range(n)] + main = word['A'] + word['cut'] + word['B'] + assert all(not v <= e[2] < 2*v for e in word['A'] + word['B'] + if e[0] == 'add' and not v <= e[1] < 2*v) + matrix = ident() + for e in main: + apply(e, matrix) + dirty = [{} for _ in range(n)] + for r in range(v, 2*v): + dirty[r] = {j: x for j, x in matrix[r].items() if j >= 2*v} + for e in word['precondition']: + apply(e, dirty) + compensation = [['add', r, j, -q.numerator, q.denominator, []] + for r in range(v, 2*v) for j, q in sorted(dirty[r].items())] + entering = set(map(int, word.get('start_extra', {}))) + assert all(e[2] not in entering for e in compensation) + cleanup = [inverse(e) for e in reversed(word['A'] + word['B']) + if not v <= e[1] < 2*v] + if 'refactored_cleanup' in word: + # REFACTORED CLEANUP (cold low-frame ends): the cleanup is not the literal reversed inverse of A+B but another exact + # factorisation of the same inverse. Nothing about it is trusted: it may only touch non-target registers (T rows + # stay the compensated data accumulators), every gate is dyadic (checked below), and the arbitrary-dirt endpoint + # replay below must be exact in BOTH orientations for the full reordered program. Inherited words keep the literal + # assertion (the else branch), so their outputs are unchanged. + assert all(not v <= r < 2*v for e in word['cleanup'] for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'refactored cleanup touches a target' + assert all(e[0] in ('add', 'scale') for e in word['cleanup']) + cleanup = word['cleanup'] + else: + assert [e[:-1] for e in cleanup] == [e[:-1] for e in word['cleanup']] + # HPE: hyperplane-ended helpers. 'early_cleanup' = [[cleanup index, frame vectors], ...] are cleanup gates executed + # right after B (before the final climbs) at the given frame; 'helper_final' = {helper: frame vectors} replaces FULL as + # that helper's terminal frame. The scalar program is the reordered one and is replayed exactly below, so a move that + # does not commute with the skipped cleanup prefix is rejected by the arbitrary-dirt endpoint assertion. + early = [(int(i), f) for i, f in word.get('early_cleanup', [])] + helper_final = {int(r): f for r, f in word.get('helper_final', {}).items()} + early_idx = [i for i, _ in early] + assert len(set(early_idx)) == len(early_idx) and all(0 <= i < len(cleanup) for i in early_idx) + assert all(2*v <= r < n for r in helper_final) + # COLD-HPE: a COLD helper (not in start_extra, entrance frame 0 = bottom) may also end at a proper subspace U. + # It is the E = bottom instance of #593's theorems: its wrappers are the (0, U) recipes R_{0,U}, L_{0,U} (checked + # exactly by hpe_adapters_local), emitted as residual_adapter events like an entering helper's. + cold_hpe = sorted(r for r in helper_final if r not in entering) + # COLD-HPE wrapper order: R_{0,U}^-1 is emitted with the entry adapters, after the zero-frame precondition and + # compensation, so (exactly as for an entering helper, asserted above) nothing before it may touch a cold-ended helper. + assert all(r not in set(cold_hpe) for e in word['precondition'] + compensation for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'zero-frame precondition/compensation touches a cold hyperplane-ended helper before its wrapper' + tail =[word['cleanup'][i][:-1] + [f] for i, f in early] + rest = [e for i, e in enumerate(word['cleanup']) if i not in set(early_idx)] + program = word['precondition'] + compensation + main + tail + rest + for backward in (False, True): + actual = ident() + for e in program: + apply(dual(e) if backward else e, actual) + expected = ident() + for t in range(v): + expected[t if backward else v+t][v+t if backward else t] = Q(-1 if backward else 1) + assert actual == expected, ('arbitrary-dirt endpoint', backward) + # The native scalar compiler allows dyadic additions and signed binary scales. + for e in program: + q = Q(e[3], e[4]) if e[0] == 'add' else Q(e[2], e[3]) + assert q.denominator & (q.denominator-1) == 0 + if e[0] == 'scale': + a = abs(q.numerator) + assert a and a & (a-1) == 0 + + tau = lambda x: x ^ (43 if (x & 43).bit_count() % 2 else 0) + ports = routing['ports'] + assert len(set(ports)) == v and set(map(tau, word['ports'])) == set(ports) + mapping = {i: ports.index(tau(p)) for i, p in enumerate(word['ports'])} + mapping.update({v+i: v+mapping[i] for i in range(v)}) + mapping.update({r: r for r in range(2*v, n)}) + full = tuple(1 << i for i in range(h-1, -1, -1)) + frames, frame_ids = [(), full], {(): 0, full: 1} + + def fid(vectors): + frame = basis(vectors) + if frame not in frame_ids: + frame_ids[frame] = len(frames) + frames.append(frame) + return frame_ids[frame] + + def transform(e): + e = copy.deepcopy(e) + e[1] = mapping[e[1]] + if e[0] == 'add': + e[2] = mapping[e[2]] + if e[-1] is not None: + e[-1] = fid([tau(x) for x in e[-1]]) + return e + + canonical = {key: [transform(e) for e in word[key]] + for key in ('A', 'B', 'cut', 'cleanup', 'precondition')} + canonical['compensation'] = [transform(e) for e in compensation] + if tail: + canonical['tail'] = [transform(e) for e in tail] # HPE (absent for inherited words: identical output) + canonical['cleanup'] = [transform(e) for e in rest] # HPE (full cleanup minus the early gates) + canonical['start'] = [fid([p]) for p in ports] + [0]*(v+helpers) + for r, frame in word.get('start_extra', {}).items(): + assert 2*v <= int(r) < n + canonical['start'][int(r)] = fid([tau(x) for x in frame]) + canonical['final'] = ([1]*v + + [fid(x for x in range(1, 1 << h) if (x & p).bit_count() % 2 == 0) for p in ports] + + [1]*helpers) + for r, frame in helper_final.items(): # HPE + canonical['final'][r] = fid([tau(x) for x in frame]) + canonical.update(h=h, v=v, R=helpers, ports=ports, frames=frames, + centers=[mapping[r] for r in word['centers']], + center_frames=[fid(tau(x) for x in frame) for frame in word['center_frames']]) + levels = {mapping[v+int(t)]-v: fid(tau(x) for x in frame) + for t, frame in word.get('target_levels', {}).items()} + canonical['target_levels'] = {str(t): f for t, f in levels.items()} + current, paid, edges = canonical['start'].copy(), Counter(), set() + + def climb(r, f): + old = current[r] + assert basis(frames[old] + frames[f]) == frames[f], ('nonmonotone', r, old, f) + if old != f: + degree = len(frames[f]) - len(frames[old]) + assert degree > 0 + paid[degree] += 1 + edges.add((old, f)) + current[r] = f + + for part in ('A', 'B'): + if part == 'B': + assert all(current[r] == f for r, f in zip(canonical['centers'], canonical['center_frames'])) + assert all(current[v+t] == levels.get(t, 0) for t in range(v)) + for r, frame in zip(canonical['centers'], canonical['center_frames']): + served = {levels.get(e[1]-v, 0) for e in canonical['cut'] if e[2] == r} + old = frame + for f in sorted(served, key=lambda f: -len(frames[f])): + assert basis(frames[old] + frames[f]) == frames[old] + if old != f: + paid[len(frames[old])-len(frames[f])] += 1 + edges.add((old, f)) + edges.add((f, old)) + old = f + for e in canonical[part]: + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + if helper_final: # COLD-HPE / CONE PRE-CHECK at the end-of-B frames + P, Pinv = state_maps(word['precondition'] + compensation + main, n) + cone = cone_violations(P, Pinv, sorted(helper_final), mapping, current.copy(), canonical['final'], frames) + assert not cone, ('hpe cone pre-check (row / column)', cone[:8]) + for e in canonical.get('tail', []): # HPE: early cleanup gates at their common frame + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + for r, f in enumerate(canonical['final']): + climb(r, f) + # HPE: the remaining cleanup runs at FULL, so it may touch only registers whose terminal frame is FULL; a + # hyperplane-ended helper is touched by nothing after its tail gates. + for e in canonical['cleanup']: + assert all(canonical['final'][r] == 1 for r in [e[1]] + ([e[2]] if e[0] == 'add' else [])), ('cleanup on non-FULL end', e) + assert all(len(frames[canonical['final'][r]]) < h for r in helper_final) + assert dict(paid) == {int(r): count for r, count in word['report']['local_profile'].items()} + canonical['local_profile'] = dict(sorted(paid.items())) + canonical['edges'] = sorted(edges) + out.mkdir(parents=True, exist_ok=False) + payload = json.dumps(canonical, sort_keys=True, separators=(',', ':')).encode() + (out/'CANONICAL-WORD.json.gz').write_bytes(gzip.compress(payload, mtime=0)) + (out/'FULL-WORD.json.gz').write_bytes(gzip.compress(json.dumps(word, sort_keys=True, separators=(',', ':')).encode(), mtime=0)) + receipt = dict(status='PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES', + input_content_sha256=content_hash(raw_path), routing_content_sha256=content_hash(routing_path), + canonical_content_sha256=hashlib.sha256(payload).hexdigest(), + live_columns_each_orientation=n, helpers=helpers, + compensation_additions=len(compensation), scalar_operations=len(program), + center_rank_sum=sum(map(len, word['center_frames'])), + local_profile=dict(sorted(paid.items())), local_rank_mass=sum(r*z for r, z in paid.items()), + widths=[len(frames[canonical['final'][r]])-len(frames[canonical['start'][r]]) for r in range(2*v, n)], + frames=len(frames), directed_edges=len(edges), + tau=43, target_port_order_matches_baseline=True, + seconds=time.monotonic()-start_time, + scope='Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.') + if tail or helper_final: + receipt.update(hyperplane_ended_helpers=sorted(helper_final), early_cleanup_gates=len(tail)) + if cold_hpe: # COLD-HPE (absent for words without cold ends) + receipt.update(cold_hyperplane_ended_helpers=cold_hpe) + if 'refactored_cleanup' in word: # REFACTORED CLEANUP (absent for inherited words) + receipt.update(refactored_cleanup_gates=len(word['cleanup']), refactored_cleanup=word['refactored_cleanup']) + (out/'SCALAR-FRAME-AUDIT.json').write_text(json.dumps(receipt, indent=2)+'\n') + print(json.dumps({k: value for k, value in receipt.items() if k != 'widths'}, indent=2), flush=True) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--raw', type=Path, required=True) + parser.add_argument('--routing', type=Path, required=True) + parser.add_argument('--out', type=Path, required=True) + args = parser.parse_args() + run(args.raw, args.routing, args.out) diff --git a/research/complex-571-cold14-r1/code/hpe_audit_local.py b/research/complex-571-cold14-r1/code/hpe_audit_local.py new file mode 100644 index 0000000000..17bccb64fd --- /dev/null +++ b/research/complex-571-cold14-r1/code/hpe_audit_local.py @@ -0,0 +1,171 @@ +# Local-only extraction of the attributed PR514 / PR433 independent replay. +# Prepared for icekylinx with OpenAI Codex assistance. Apache-2.0. +# The complete local checker and its negative controls are retained verbatim. +# Global hosting is verified separately for the changed 112-port geometry. +import copy,gzip,hashlib,json,sys +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +OUT=Path(sys.argv[1]) +c=json.load(gzip.open(OUT/'CANONICAL-WORD.json.gz')) +ir={'local_programs':json.load(gzip.open(OUT/'LOCAL-PROGRAMS.json.gz'))} +v,R,h=c['v'],c['R'],c['h'];n=2*v+R;frames=c['frames'] +levels={int(t):f for t,f in c.get('target_levels',{}).items()} +entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] +plain={r for r in range(n) if r not in set(entering)} + +def contains(a,b): + for x in a: + for y in b: + if x>>(y.bit_length()-1)&1:x^=y + if x:return False + return True +hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: helpers whose terminal frame is a proper subspace U of FULL +assert all(len(frames[c['final'][r]])0 + hist[rank]+=1;cur[r]=b + elif tag=='center': + _,k,a,b,rank=event + assert phases[-1]=='centers' and private=={('C',k):a} + cf=c['center_frames'][k];cr=len(frames[cf]) + # GK: stepwise descent cf -> served levels -> lowest (forward), reversed ascent (backward); each step is a nested child + assert contains(frames[a],frames[b]) if back else contains(frames[b],frames[a]) + assert rank==abs(len(frames[a])-len(frames[b]))>0 + chain.setdefault(k,[]).append((a,b)) + private['C',k]=b;hist[rank]+=1;centers.append(k) + elif tag=='scalar': + _,e,f=event;op=e[0];target=tuple(e[1]);source=tuple(e[2]) if op in ('copy','add') else None + if target[0]=='C' and op=='clear': + assert private.get(target,f)==f + private.pop(target,None) + else: + for r in (target,source): + if r is None:continue + if r[0]=='L':assert cur[r[1]]==f and (r[1] not in wset or (r[1] in pre_seen and r[1] not in post_seen)),('common frame / wrapper order',r,cur[r[1]],f) + else: + if r==target and r not in private:private[r]=f + assert private[r]==f + if op=='clear':rows[target]={};norm[target]=Q(0) + elif op=='copy':rows[target]=dict(rows[source]);norm[target]=norm[source] + elif op=='scale': + q=Q(e[2],e[3]);a,b=abs(q.numerator),q.denominator + assert a&(a-1)==0 and b&(b-1)==0 + rows[target]={j:q*x for j,x in rows[target].items()};norm[target]*=abs(q) + else: + q=Q(e[3],e[4]);a,b=abs(q.numerator),q.denominator + assert source!=target and b&(b-1)==0 + # Independent symbolic replay of the cleared coefficient work. + w=0 + for bit in bin(a)[2:]:w=2*w+int(bit) + assert Q(w,b)*(1 if q>0 else -1)==q + prefix=max(prefix,Q(a)*norm[source]) + norm[target]=norm.get(target,Q(0))+abs(q)*norm[source] + row=rows.setdefault(target,{}) + for j,x in list(rows[source].items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + prefix=max(prefix,norm[target]) + else:raise AssertionError(tag) + assert phases==allowed and set(centers)==set(range(len(c['centers']))) and not private + assert sorted(r for k,r,_ in wrappers if k=='pre')==wrapped and sorted(r for k,r,_ in wrappers if k=='post')==wrapped # GK + for k,st in chain.items(): # GK: the steps of each centre chain link up and end at the centre frame + cf=c['center_frames'][k] + if back:assert st[-1][1]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + else:assert st[0][0]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + assert all(not row for reg,row in rows.items() if reg[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r i0])) +reject('early gate frame below its registers\' frames', lambda w: w['early_cleanup'][0].__setitem__(1, U0[:-1])) +reject('hyperplane end on a non-entering helper', lambda w: (w['start_extra'].pop(h0))) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-3)) +reject('profile without 8 partner U->FULL climb charges', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-8)) +reject('duplicate early gate', lambda w: w['early_cleanup'].append(list(w['early_cleanup'][0]))) + +# Constructor controls for build_hpe's commutation rule (an early gate h -= p may skip earlier cleanup gates on p only +# when they commute with it, i.e. only read p). base = the word without its hyperplane ends; a skipped gate that WRITES +# the partner (an addition into p or a scale of p) or touches h must make build_hpe.apply refuse the recipe, while a +# skipped gate that only reads p is accepted. +import build_hpe +base = copy.deepcopy(word); base.pop('early_cleanup'); base.pop('helper_final') +hf = {int(h) for h in word['helper_final']} +changes = [] +for i, U in word['early_cleanup']: # pair each early gate with its helper via the gate's target + h = cl[i][1] + assert h in hf and word['helper_final'][str(h)] == U + changes.append(dict(helper=h, cleanup_index=i, frame=U)) +z0 = changes[0]; g0 = cl[z0['cleanup_index']]; p0 = g0[2] +x0 = next(r for r in range(2*v, n) if r not in {z['helper'] for z in changes} | {cl[z['cleanup_index']][2] for z in changes}) +NONCOMMUTE = 'cleanup gate does not commute with the skipped cleanup gates on its registers' +ONEGATE = 'helper must have exactly this one cleanup gate' + + +def build_with(w): + return build_hpe.apply(w, changes) + + +def inserted(pre): + """base with gate `pre` inserted at cleanup position 0; the changes' indices shift by one""" + w = copy.deepcopy(base); w['cleanup'].insert(0, pre) + return w, [dict(z, cleanup_index=z['cleanup_index'] + 1) for z in changes] + + +def cfail(name, w, ch, expect): + """the constructor must refuse with the pinned message `expect`""" + try: + build_hpe.apply(w, ch) + except AssertionError as e: + assert expect in str(e), ('constructor control %r failed with the wrong message: %s' % (name, e)) + results.append('constructor: ' + name); print('rejected constructor:', name, '--', expect, flush=True); return + raise AssertionError('HPE constructor mutation accepted: ' + name) + + +build_hpe.apply(*inserted(['add', x0, p0, -1, 1, FULL])) # positive: a skipped gate that only reads the partner commutes +cfail('skipped cleanup gate adds into the partner', *inserted(['add', p0, x0, -1, 1, FULL]), NONCOMMUTE) +cfail('skipped cleanup gate scales the partner', *inserted(['scale', p0, -1, 1, FULL]), NONCOMMUTE) +cfail('extra cleanup gate reading the helper (one-gate rule)', *inserted(['add', x0, z0['helper'], -1, 1, FULL]), ONEGATE) +cfail('extra cleanup gate adding into the helper (one-gate rule)', *inserted(['add', z0['helper'], x0, -1, 1, FULL]), ONEGATE) +# Real helpers admitted only by the commutation rule: their partner has an earlier cleanup gate x -= p (reads p). +# Flipping that gate in place to p -= x (writes p) must be refused by the commutation assert. +first = {} +for i, e in enumerate(cl): + for r in regs(e): first.setdefault(r, i) +relaxed = [z for z in changes if any(first[r] < z['cleanup_index'] for r in regs(cl[z['cleanup_index']]))] +for z in relaxed: + i = z['cleanup_index']; p = cl[i][2] + j = next(j for j in range(i) if p in regs(cl[j])) + e = cl[j]; assert e[0] == 'add' and e[2] == p and e[1] != p, ('skipped gate on a relaxed helper is not a reader', j, e) + build_hpe.apply(copy.deepcopy(base), changes) # positive: the real word's own changes + w = copy.deepcopy(base); w['cleanup'][j] = ['add', p, e[1]] + e[3:] + cfail('real helper %d: skipped gate %d flipped from %d -= %d to %d -= %d' % (z['helper'], j, e[1], p, p, e[1]), w, changes, NONCOMMUTE) +print('relaxed helpers', [z['helper'] for z in relaxed], flush=True) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'HPE-ATC-CONTROLS.json').write_text(json.dumps(dict(status='PASS_HPE_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'HPE raw-word mutations rejected') diff --git a/research/complex-571-cold14-r1/code/hpe_emit_local.py b/research/complex-571-cold14-r1/code/hpe_emit_local.py new file mode 100644 index 0000000000..534fdc71f7 --- /dev/null +++ b/research/complex-571-cold14-r1/code/hpe_emit_local.py @@ -0,0 +1,163 @@ +# GK: modified copy of PR #433's complex_emit.py (icekylinx with Codex assistance; PR #425) by DreamingOfClouds with Claude Opus 5.5 +# (Anthropic), via Claude Code. Every change is marked "GK:". On a word without start_extra / target_levels the behaviour +# and every written file equal PR #433's (regression anchor in verify.py). +import sys as _sys, os as _os; _sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) +# Adapted from PR425 by icekylinx with Codex assistance. +"""Emit both local programs, integrate the fixed nine-stage geometry, and bill. + +The expanded scalar interface is justified in PROOF.txt. This script does not +claim a Lean proof or discharge the inherited all-size/analytic interfaces. +""" +import copy,gzip,hashlib,importlib.util,json,math +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + +OUT=Path(_sys.argv[1]);cp=OUT/'CANONICAL-WORD.json.gz' +c=json.load(gzip.open(cp)) +frames=c['frames'];v,R,h=c['v'],c['R'],c['h'];n=2*v+R +def digest(x):return hashlib.sha256(json.dumps(x,sort_keys=True,separators=(',',':')).encode()).hexdigest() +def basis(vs): + b={} + for x in vs: + for p in sorted(b,reverse=True): + if x>>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def dual(e): + e=list(e) + if e[0]=='add':e[1],e[2]=e[2],e[1];e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + return e +def scalar(e,back): + e=dual(e) if back else list(e) + if e[0]=='add':return ['add',['L',e[1]],['L',e[2]],e[3],e[4]] + return ['scale',['L',e[1]],e[2],e[3]] +def primitive_bound(e): + if e[0] in ('clear','copy'):return 1 + q=Q(e[3],e[4]) if e[0]=='add' else Q(e[2],e[3]) + a,b=abs(q.numerator),q.denominator + assert b&(b-1)==0 + if e[0]=='scale': + assert a&(a-1)==0 + return abs(a.bit_length()-b.bit_length())+int(q<0) + # Exact binary Horner multiplication on a cleared private stream, repeated + # halving, signed accumulation into the target, then clear the private stream. + return 3+(a.bit_length()-1)+a.bit_count()+(b.bit_length()-1) + +def emit(back): + out=[];cur=c['start'].copy() + def event(e):out.append(e) + def scal(e,f):event(['scalar',e,f]) + event(['phase','zero_frame_precondition']) + for e in c['precondition']+c['compensation']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['start'][r]==0 for r in regs) + scal(scalar(e,back),0) + event(['phase','entry_adapters']) + # GK: a helper that starts at a nonzero entrance frame has NO entry adapter; its paid wrapper R_E^-1 (Lemma A) precedes every gate + # that touches it and L_E^-1 follows the full-frame cleanup. Words without entrances emit PR #433's events. + entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] + hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: hyperplane-ended helpers (terminal frame != FULL) + # COLD-HPE: a cold helper (start frame 0) ending at U also carries the paid wrappers R_{0,U}^-1 / L_{0,U}^-1 (the + # E = bottom instance of #593); without cold ends wrapped == entering and the event stream is the inherited one. + wrapped=sorted(set(entering)|hpe) + for r,f in enumerate(c['start']): + if r in wrapped:event(['residual_adapter','pre',r,f]+([c['final'][r]] if c['final'][r]!=1 else [])) # HPE: R_{E,U}^-1 names U + else:event(['adapter','old_to_new',r,f]) + def climb(r,f,part): + old=cur[r] + if old==f:return + assert basis(frames[old]+frames[f])==tuple(frames[f]) + rank=len(frames[f])-len(frames[old]);assert rank>0 + event(['climb',part,r,old,f,rank]);cur[r]=f + # HPE: 'cleanup_tail' = early cleanup gates at their own frames; emitted only when the word has them, so a word + # without hyperplane-ended helpers yields exactly the inherited event stream. + for part in ('A','centers','B')+(('cleanup_tail',) if c.get('tail') else ())+('final',): + event(['phase',part]) + if part in ('A','B','cleanup_tail'): + for e in (c['tail'] if part=='cleanup_tail' else c[part]): + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + for r in regs:climb(r,e[-1],part) + scal(scalar(e,back),e[-1]) + elif part=='centers': + # GK: targets sit at their nonzero-frame-compensation level (0 at the defaults); a centre copy descends + # cf -> served levels (descending chain) -> lowest served level and scatters into each target at its level + lv=lambda r:c.get('target_levels',{}).get(str(r-v),0) + assert all(cur[r]==lv(r) for r in range(v,2*v)) + for k,r in enumerate(c['centers']): + cf=c['center_frames'][k];assert cur[r]==cf + terms=[e for e in c['cut'] if e[2]==r] + path=[cf]+sorted({lv(e[1]) for e in terms}-{cf},key=lambda x:-len(frames[x])) + C=['C',k] + if not back: + scal(['clear',C],cf);scal(['copy',C,['L',r]],cf) + for a in range(len(path)): + if a>0:event(['center',k,path[a-1],path[a],len(frames[path[a-1]])-len(frames[path[a]])]) + for e in terms: + if lv(e[1])==path[a]:scal(['add',['L',e[1]],C,e[3],e[4]],path[a]) + scal(['clear',C],path[-1]) + else: + scal(['clear',C],path[-1]) + for a in range(len(path)-1,-1,-1): + for e in terms: + if lv(e[1])==path[a]:scal(['add',C,['L',e[1]],e[3],e[4]],path[a]) + if a>0:event(['center',k,path[a],path[a-1],len(frames[path[a-1]])-len(frames[path[a]])]) + scal(['add',['L',r],C,-1,1],cf);scal(['clear',C],cf) + else: + for r,f in enumerate(c['final']):climb(r,f,part) + event(['phase','exit_adapters']) + for r,f in enumerate(c['final']): + if r not in hpe:event(['adapter','new_to_old',r,f]) # HPE: no old-convention exit for a helper that ends at U; its post wrapper is L_{E,U}^-1 + event(['phase','full_frame_cleanup']) + for e in c['cleanup']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['final'][r]==1 for r in regs) + scal(scalar(e,back),1) + for r in wrapped:event(['residual_adapter','post',r,c['start'][r]]+([c['final'][r]] if r in hpe else [])) # HPE: 5th field = terminal frame U # GK: L_E^-1 after the full-frame cleanup + event(['phase','done']) + return out + +def check_local(events,back): + # Literal scalar replay of the emitted stream, including center lifetimes. + state={('L',r):{r:Q(1)} for r in range(n)};live=[];paid=Counter();prims=0;macros=0 + for e in events: + if e[0]=='climb':assert not live;paid[e[5]]+=1 + elif e[0]=='center':assert live==[e[1]];paid[e[4]]+=1 + elif e[0]=='scalar': + op=e[1];tag=op[0];t=tuple(op[1]);macros+=1;prims+=2*primitive_bound(op) + if tag=='clear': + state[t]={} + if t[0]=='C' and t[1] in live:live.remove(t[1]) + elif tag=='copy':state[t]=dict(state.get(tuple(op[2]),{}));live.append(t[1]) + elif tag=='scale':state[t]={j:Q(op[2],op[3])*x for j,x in state[t].items()} + else: + s=tuple(op[2]);q=Q(op[3],op[4]);row=state.setdefault(t,{}) + if t[0]=='C' and t[1] not in live:live.append(t[1]) + for j,x in list(state.get(s,{}).items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + assert not live and all(not row for r,row in state.items() if r[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r PR552 -> +PR531 invoice_final.py, whose notices and sources are preserved in the package. +Every call selects a hash-bound provider. Shared compiler reserves use maxima; +primitive work, coefficient work, local children and wrappers are also summed +from actual selected provider/orientation records. +""" +import argparse, gzip, hashlib, json +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +assert __debug__, 'Assertions required' + +def read(path): + data=path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix=='.gz' else data) +def filehash(path): return hashlib.sha256(path.read_bytes()).hexdigest() +def contenthash(path): + data=path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix=='.gz' else data).hexdigest() +def programhash(events): + return hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest() + +def recount_provider(local_dir, registry): + cp=local_dir/'CANONICAL-WORD.json.gz'; pp=local_dir/'LOCAL-PROGRAMS.json.gz' + rp=local_dir/'INDEPENDENT-LOCAL-REPLAY.json' + w,programs,replay=read(cp),read(pp),read(rp) + checks=read(local_dir/'LOCAL-CHECKS.json') + assert set(programs)=={'forward','backward'} + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==filehash(cp)==registry['canonical_word_sha256'] + assert replay['local_programs_sha256']==filehash(pp)==registry['local_programs_sha256'] + assert programs==registry['local_programs'] + assert checks==registry['local_program_checks'] + assert filehash(local_dir/'CLIFFORD-RECIPES.json')==registry['exact_local_clifford_recipe_sha256'] + assert filehash(local_dir/'RESIDUAL-ADAPTERS.json')==registry['residual_adapter_sha256'] + v,helpers,h,m=w['v'],w['R'],w['h'],73 + assert (v,helpers,h)==(112,504,9) + assert registry['v']==v and registry['R']==helpers and registry['h']==h + assert registry['ports']==w['ports'] and registry['centers']==w['centers'] + assert replay['v']==v and replay['helpers']==helpers + n=2*v+helpers + widths = [len(w['frames'][w['final'][r]])-len(w['frames'][w['start'][r]]) for r in range(2*v, 2*v+helpers)] # HPE: |final|-|start| + terminal_codim = sum(h-len(w['frames'][w['final'][r]]) for r in range(2*v, 2*v+helpers)) # HPE: 0 for FULL-ended helpers + ends = {r: f for r, f in enumerate(w['final']) if r >= 2*v and f != 1} + assert len(widths) == helpers + entrances = {r: f for r, f in enumerate(w['start']) if r >= 2*v and f != 0} + entering = len(entrances) + wrapped = {**entrances, **{r: 0 for r in ends if r not in entrances}} # COLD-HPE: cold hyperplane-ended helpers carry wrappers too + cold_ends = len(wrapped) - len(entrances) + assert entering == replay['entering_helpers'] + local = {} + for orientation, events in programs.items(): + # Endpoint equality and native frames were already independently + # replayed on all n columns in the hash-bound receipt above. + env = {('L', r): Q(1) for r in range(n)} + peak = Q(1) + real = macros = workops = 0 + paid = Counter() + wrappers = {'pre': set(), 'post': set()} + for event in events: + tag = event[0] + if tag == 'climb': + paid[event[5]] += 1 + elif tag == 'center': + paid[event[4]] += 1 + elif tag == 'residual_adapter': + _, kind, register, frame, *end = event + assert kind in wrappers and wrapped.get(register) == frame + assert end == ([ends[register]] if register in ends else []) # HPE: R_{E,U}^-1 and L_{E,U}^-1 name U + assert register not in wrappers[kind] + wrappers[kind].add(register) + elif tag == 'scalar': + macros += 1 + scalar = event[1] + op, target = scalar[0], tuple(scalar[1]) + if op == 'clear': + env[target] = Q(0) + count = 1 + elif op == 'copy': + env[target] = env[tuple(scalar[2])] + count = 1 + elif op == 'scale': + q = Q(scalar[2], scalar[3]) + numerator, denominator = abs(q.numerator), q.denominator + assert numerator and numerator & (numerator-1) == 0 + assert denominator & (denominator-1) == 0 + env[target] *= abs(q) + count = abs(numerator.bit_length()-denominator.bit_length()) + int(q < 0) + elif op == 'add': + source = tuple(scalar[2]) + q = Q(scalar[3], scalar[4]) + numerator, denominator = abs(q.numerator), q.denominator + assert source != target and numerator > 0 + assert denominator & (denominator-1) == 0 + acc, count = 0, 1 # clear coefficient work + for i, bit in enumerate(bin(numerator)[2:]): + if i: + acc *= 2 + count += 1 + peak = max(peak, acc*env[source]) + if bit == '1': + acc += 1 + count += 1 + peak = max(peak, acc*env[source]) + value = Q(acc) + for _ in range(denominator.bit_length()-1): + value /= 2 + count += 1 + peak = max(peak, value*env[source]) + assert value == abs(q) + count += 2 # signed accumulation and work clear + env[target] = env.get(target, Q(0)) + abs(q)*env[source] + workops += count + else: + raise AssertionError(op) + real += 2*count + peak = max(peak, env[target]) + else: + assert tag in ('adapter', 'phase') + assert wrappers['pre'] == wrappers['post'] == set(wrapped) + assert all(value == 0 for register, value in env.items() if register[0] == 'C') + prior = replay['local'][orientation] + assert prior['all_exact_columns'] == n and prior['private_work_erased'] + assert peak == Q(prior['prefix_l1_upper']) and peak < 2**prior['charged_payload_bits'] + bits = peak.numerator.bit_length()-peak.denominator.bit_length()+1 + assert bits == prior['prefix_bits_upper'] + assert real == checks[orientation]['real_component_primitive_bound'] + assert macros == checks[orientation]['scalar_macros'] + assert dict(paid) == {int(r): count for r, count in checks[orientation]['paid_profile'].items()} + assert dict(paid) == {int(r): count for r, count in replay['paid_profiles'][orientation].items()} + local[orientation] = dict( + events=len(events), macros=macros, real_component_primitives=real, + prefix_l1=str(peak), prefix_bits=bits, + coefficient_work_primitive_count=workops, all_exact_columns=n, + dirty_helper_columns=helpers, all_dirty_helper_columns_restored=True, + private_centres_and_coefficient_work_cleared=True, + pre_wrappers=len(wrappers['pre']), post_wrappers=len(wrappers['post']), + endpoint_evidence='Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json') + + centres = len(w['centers']) + children = sum(checks['forward']['paid_profile'].values()) + assert checks['forward']['paid_profile'] == checks['backward']['paid_profile'] + macro_bound = max(row['macros'] for row in local.values()) + compiler = 64*(m+1)**3 + adapters = 16*(macro_bound+children+n+centres)+64*m + primitive_bound = max(row['real_component_primitives'] for row in local.values())+adapters*compiler + + assert widths==registry['widths'] + artifacts={f.name:filehash(f) for f in local_dir.iterdir() if f.is_file()} + phase_review=read(local_dir/'CLIFFORD-REVIEW.json') + return dict(local=local,helpers=helpers,centres=centres,v=v,h=h,n=n, + entering_helpers=entering,entrance_rank=sum(len(w['frames'][f]) for f in w['start'][2*v:]), + terminal_codimension=terminal_codim, hyperplane_ended_helpers=len(ends), # HPE: always reported (0 for FULL-ended words) + **({'cold_hyperplane_ended_helpers': cold_ends} if cold_ends else {}), # COLD-HPE: absent without cold ends + width_inventory=dict(sorted(Counter(widths).items())),widths=widths, + local_adapters=adapters,local_primitive_bound=primitive_bound, + compiler=compiler,children=children,artifacts=artifacts, + paid_profile=checks['forward']['paid_profile'], + program_hashes={o:programhash(events) for o,events in programs.items()},semantic_artifact_sha256=artifact_identities(local_dir)) + + +def run(base, hosted, audit, out, retained_invoice=None): + local_dir=base/'split-centres' + parent=read(local_dir/'GLOBAL-TEMPLATE.json.gz') + template_path=hosted/'GLOBAL-TEMPLATE.json.gz' + template=read(template_path); summary=read(hosted/'HOSTED.json') + owners=read(audit/'OWNERS-AND-PROFILE.json'); control=read(audit/'ASYNC-AUDIT.json') + template_hash=contenthash(template_path) + assert template_hash==control['complex_template_sha256']==owners['template_sha256']==summary['template_sha256'] + assert owners['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert template['recipe']==parent['recipe'] + assert 'local_programs' not in template + assert set(template['local_providers'])==set(PIDS) + providers={pid:recount_provider(base/'providers'/pid,registry) + for pid,registry in template['local_providers'].items()} + for pid,p in providers.items(): + assert owners['provider_phase_semantic_sha256'][pid]==control['provider_phase_semantic_sha256'][pid]==p['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] + # The fresh controller admission must cite precisely these provider bytes. + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json'): + path='providers/'+pid+'/'+name + assert summary['source_artifacts'][path]==p['artifacts'][name] + assert owners['source_artifacts'][path]==p['artifacts'][name] + v,helpers,h,m,centres,n=112,504,9,73,8,728 + stages,replicas,blocks_per_stream=9,8,4 + call_count=len(template['calls']) + assert call_count==stages*replicas==control['complete_invocations'] + assert control['one_owner_per_complete_invocation'] + assert len({(c['stage'],c['replica']) for c in template['calls']})==call_count + parent_calls={(c['stage'],c['replica']):c for c in parent['calls']} + sweeps=[e for e in template['execution_schedule'] if e['kind']=='local_cover_sweep'] + assert len(sweeps)==call_count + selected=[]; selected_paid=Counter(); provider_counts=Counter(); orientation_counts=Counter() + scalar=coefficient_work=macros=0; wrapper_factors=0 + factors_per_wrapper=2*(m-1) + for c in template['calls']: + pid,orientation=c['provider_id'],c['orientation']; p=providers[pid] + old=parent_calls[(c['stage'],c['replica'])] + assert orientation==old['orientation'] and c['owners'][:2*v]==old['owners'][:2*v] + assert c['local_program_sha256']==p['program_hashes'][orientation] + r=p['local'][orientation] + scalar+=r['real_component_primitives']; coefficient_work+=r['coefficient_work_primitive_count']; macros+=r['macros'] + wrapper_factors+=(r['pre_wrappers']+r['post_wrappers'])*factors_per_wrapper + provider_counts[pid]+=1; orientation_counts[(pid,orientation)]+=1 + selected_paid.update({int(k):v for k,v in p['paid_profile'].items()}) + selected.append(dict(stage=c['stage'],replica=c['replica'],provider_id=pid,orientation=orientation, + program_sha256=c['local_program_sha256'],events=r['events'],macros=r['macros'], + real_component_primitives=r['real_component_primitives'], + coefficient_work_primitive_count=r['coefficient_work_primitive_count'], + entering_helpers=p['entering_helpers'],entrance_rank=p['entrance_rank'], + pre_wrappers=r['pre_wrappers'],post_wrappers=r['post_wrappers'])) + assert provider_counts==COUNTS + # The sweep registry is executable: no hidden use of the historical supplier. + by_call={(c['stage'],c['replica']):c for c in template['calls']} + for e in sweeps: + c=by_call[(e['stage'],e['replica'])] + assert e['provider_id']==c['provider_id'] + assert set(p['compiler'] for p in providers.values())=={64*(m+1)**3} + compiler=64*(m+1)**3 + adapters=max(p['local_adapters'] for p in providers.values()) + primitive_bound=max(p['local_primitive_bound'] for p in providers.values()) + bridge_steps=sum(event['kind']=='bridge' for event in parent['recipe']) + bridge_sweeps=sum(event['kind']=='bridge' for event in template['execution_schedule']) + assert bridge_sweeps==replicas*bridge_steps + bridge_additions=2*v*bridge_sweeps + shifts=blocks_per_stream*v*replicas; moves=2*shifts + parent_live,parent_physical=parent['live'],parent['physical'] + data_stock=2*v*blocks_per_stream*replicas + assert (parent_live-data_stock)%stages==0 + parent_banks=(parent_live-data_stock)//stages + assert parent_banks>=0 and parent_physical==parent_live+helpers+centres+2 + nonlocal_items=(4*v*replicas*stages+2*v*replicas*stages+2*call_count*helpers + +sum(child['replicas'] for child in parent['idle_children'])+stages*parent_banks + +bridge_additions+shifts+moves+parent_live+parent_physical+wrapper_factors) + outside=8*nonlocal_items+64*m + parent_pervertex=(scalar+bridge_additions+shifts+moves+parent_live + +(call_count*adapters+outside)*compiler+64*parent_physical) + live,physical=template['live'],template['physical'] + mass,profile=owners['rank_mass'],owners['paid_profile'] + assert m*live-mass==owners['deficit']==2560 + assert mass==sum(int(r)*count for r,count in profile.items()) + assert physical==live+helpers+centres+2 + assert live==owners['live'] and physical==owners['physical'] + assert live<=parent_live and physical<=parent_physical + assert not template['bank_padding']['families'] + assert owners['explicit_idle_remainder_children']<=owners['source_idle_children_charged'] + # The old dedicated-bank geometry is only a conservative reserve envelope. + # Its singular program is never used as evidence for a mixed invocation. + rebased=parent_pervertex+65*(physical-parent_physical)+(live-parent_live) + used=max(rebased,parent_pervertex); retained=None; payload=512 + if retained_invoice is not None: + previous=read(retained_invoice) + assert previous['compiler']==compiler and previous['charged_prefix_bits']==payload + previous_bound=previous['conservative_pervertex_used'] + used=max(used,previous_bound+parent_pervertex) + retained=dict(sha256=filehash(retained_invoice),previous_pervertex_allowance=previous_bound, + added_complete_new_pervertex=parent_pervertex,policy='Retain old allowance and add entire fresh mixed recount.') + half=m//2; group=2**(half*half) + for i in range(1,half+1): group*=2**(2*i)-1 + stock,streamed_mass=group*physical,group*mass + logical=group*used+64; router=compiler*(logical+1)*(stock+1)**2 + g_bound,e_bound,c0=2**30000,2**100000,2**210000 + total_mass=streamed_mass+e_bound + literal=2*g_bound*stock**2+8*streamed_mass+4*stock+4+32*m + row=2*stock.bit_length()+9909+252+2*payload + maxchild=max(map(int,profile)) + inequalities=dict(local_primitive_bound=primitive_bound<2**48, + logical=logical<2**6050,router=router2*maxchild*maxchild) + assert all(inequalities.values()) + localbits=max(r['prefix_bits'] for p in providers.values() for r in p['local'].values()) + input_l2_bits=(m+1)//2 + required_prefix=localbits+input_l2_bits+call_count+bridge_sweeps+4 + assert required_prefix1 + return PIDS[(PIDS.index(pid)+1)%len(PIDS)] diff --git a/research/complex-571-cold14-r1/data/OWNERS.json.gz b/research/complex-571-cold14-r1/data/OWNERS.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8cc2fc782317556a0fa31c514d1c7f92cbfb2199 GIT binary patch literal 420827 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 WI?mc2lpd`gQ5i7~3EXegqWV8rCh!LU literal 0 HcmV?d00001 diff --git a/research/complex-571-cold14-r1/data/PLAN.json b/research/complex-571-cold14-r1/data/PLAN.json new file mode 100644 index 0000000000..6c049b5409 --- /dev/null +++ b/research/complex-571-cold14-r1/data/PLAN.json @@ -0,0 +1,43331 @@ +{ + "status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION", + "mode": "frozen-saturation-pattern-time-matching", + "K": 4, + "T": 8, + "M": 73, + "L": 9, + "live": 7168, + "deficit": 2560, + "profile": { + "1": 185721, + "2": 32464, + "3": 23600, + "4": 14128, + "5": 5040, + "6": 2016, + "7": 1, + "8": 576, + "32": 1, + "48": 2100 + }, + "order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "windows": { + "0,0": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,2": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,1": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,3": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,5": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,7": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,9": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,11": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,12": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,13": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,14": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,15": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,16": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,17": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "1,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,1": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,3": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,5": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,7": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,9": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,11": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,12": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,13": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,14": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,15": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,16": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,17": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "2,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,1": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,3": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,5": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,7": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,9": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,11": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,12": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,13": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,14": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,15": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,16": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,17": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "3,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,1": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,3": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,5": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,7": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,9": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,11": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,12": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,13": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,14": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,15": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,16": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,17": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "4,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,1": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,3": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,5": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,7": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,9": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,11": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,12": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,13": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,14": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,15": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,16": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,17": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "5,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,1": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,3": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,5": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,7": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,9": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,11": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,12": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,13": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,14": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,15": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,16": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,17": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "6,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,1": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,3": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,5": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,7": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,9": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,11": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,12": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,13": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,14": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,15": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,16": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,17": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "7,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,1": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,3": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,5": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,7": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,9": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,11": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,12": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,13": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,14": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,15": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,16": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,17": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ] + }, + "sides": { + "0": 0, + "2": 1, + "1": 0, + "3": 1, + "4": 0, + "6": 1, + "5": 0, + "7": 1, + "8": 0, + "10": 1, + "9": 0, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1 + }, + "pairs": { + "0": 1, + "2": 1, + "1": 1, + "3": 1, + "4": 2, + "6": 2, + "5": 2, + "7": 2, + "8": 3, + "10": 3, + "9": 3, + "11": 3, + "12": 0, + "13": 0, + "14": 1, + "15": 1, + "16": 2, + "17": 2 + }, + "solver_status": "relocate_swap_chain_flip_annealing_of_pr601_literal_map", + "gap": null, + "provider_calls": [ + { + "time": 0, + "stage": 0, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 1, + "stage": 0, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 2, + "stage": 1, + "replica": 0, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 3, + "stage": 0, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 4, + "stage": 1, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 5, + "stage": 2, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 6, + "stage": 0, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 7, + "stage": 1, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 8, + "stage": 2, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 9, + "stage": 3, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 10, + "stage": 0, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 11, + "stage": 1, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 12, + "stage": 2, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 13, + "stage": 3, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 14, + "stage": 4, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 15, + "stage": 0, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 16, + "stage": 1, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 17, + "stage": 2, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 18, + "stage": 3, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 19, + "stage": 4, + "replica": 1, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 20, + "stage": 5, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 21, + "stage": 0, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 22, + "stage": 1, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 23, + "stage": 2, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 24, + "stage": 3, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 25, + "stage": 4, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 26, + "stage": 5, + "replica": 1, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 27, + "stage": 0, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 28, + "stage": 6, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 29, + "stage": 1, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 30, + "stage": 2, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 31, + "stage": 3, + "replica": 4, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 32, + "stage": 4, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 33, + "stage": 5, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 34, + "stage": 6, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 35, + "stage": 1, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 36, + "stage": 7, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 37, + "stage": 2, + "replica": 6, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 38, + "stage": 3, + "replica": 5, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 39, + "stage": 4, + "replica": 4, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 40, + "stage": 5, + "replica": 3, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 41, + "stage": 6, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 42, + "stage": 7, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 43, + "stage": 2, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 44, + "stage": 8, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 45, + "stage": 3, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 46, + "stage": 4, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 47, + "stage": 5, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 48, + "stage": 6, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 49, + "stage": 7, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 50, + "stage": 8, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 51, + "stage": 3, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 52, + "stage": 4, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 53, + "stage": 5, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 54, + "stage": 6, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 55, + "stage": 7, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 56, + "stage": 8, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 57, + "stage": 4, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 58, + "stage": 5, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 59, + "stage": 6, + "replica": 5, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 60, + "stage": 7, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 61, + "stage": 8, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 62, + "stage": 5, + "replica": 7, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 63, + "stage": 6, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 64, + "stage": 7, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 65, + "stage": 8, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 66, + "stage": 6, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 67, + "stage": 7, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 68, + "stage": 8, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 69, + "stage": 7, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 70, + "stage": 8, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 71, + "stage": 8, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + } + ], + "per_call_widths": [ + { + "stage": 0, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + } + ], + "provider_registry": { + "atm3": { + "directory": "providers/atm3", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "3162da180b7da8bd9d9fcded2d3618ad19110be8dab68a25099dc3565ad7b10b", + "LOCAL-PROGRAMS.json.gz": "3a21c1f45cbba24e0e2666ddfe6e9c3a2c99db9828b2080bf48c6b3b16ea88e2", + "LOCAL-CHECKS.json": "8a8ac44c79691aed3008e1bd4211cd6479ee7e6bca27c822591aee49a3c9d4a2", + "INDEPENDENT-LOCAL-REPLAY.json": "00e67d2100f8e80a1c4bb45f586e9d560b03584987c2714ef728bfe94087747d", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "dbf6926b1ee518e94148aca0e0f632d2f52a76124d54216f11903f2c45fbf397", + "RESIDUAL-ADAPTERS.json": "6c0dc81ae31583c9c099bf74eaa5d607bc6fa108c10edb4a1cf8dfa26dfeee9e" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f", + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "ck": { + "directory": "providers/ck", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "905455c055b9cb621ab484145a70ebba9aff39c01804ed4e9c3bdd21ad2ff102", + "LOCAL-PROGRAMS.json.gz": "5985ef4cb25adce746d4c74c5c0858bc8311091abf5b85802ccba9d92602a4a2", + "LOCAL-CHECKS.json": "5d3ab8bbe152d1e8e1c6ccaacdb37a74308b3ae6ebf9ec3c86dbc233bcc92dad", + "INDEPENDENT-LOCAL-REPLAY.json": "9e57dd6d3a8eed601f497e858275014f03e31aa6ac06226df75dd9f00f28655a", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "fc1cd2ccf0b55fe100611149bd785a68eeee690e1d74c9082497ab154f2cac2e", + "RESIDUAL-ADAPTERS.json": "fd34bb086ed7078bbc420c167459bf7bc8b48c8497dcb4280d65eb3df2e62e2b" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab", + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + } + }, + "jp8": { + "directory": "providers/jp8", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "137c7b29a3088e2722c60d5df1f6d352d619eba3057a91cd8e1b8d0a2e4327aa", + "LOCAL-PROGRAMS.json.gz": "7f3ccd0d058e817b1bb12f9dc7c1b9c719f2e78e4f12f257dcfbb688fcb96261", + "LOCAL-CHECKS.json": "62f7d8218432f27af220a4ca3b22a90a9ddb5d637b3880b4d7cf55042ee07b62", + "INDEPENDENT-LOCAL-REPLAY.json": "40c6da4caa854459d1d0354a983aabdea0804740281deed06d01d7d2249fffcb", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "424238ad34892eff68e60a456d563e0f65db83b5761cacac8a09467c362b82b4", + "RESIDUAL-ADAPTERS.json": "daf5f638a222d5b48e60a60e9f8badf8c4f46da1f7e472e91f350881b808be6f" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24", + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + } + } + }, + "source_plan_sha256": "329750b57d80ee60893ca1be6bba38f39a2264dd63bf2158ca0ac68f406326cd", + "assignment_sha256": "61783b9832b2684ddea6be870c635832304e9e0029b6bd72274d7ee0589e80a0", + "source_owners_sha256": "ad0e3e6fd1743792257e5e935164680aa0dba832c45daee9a8a0fc985948af1a" +} diff --git a/research/complex-571-cold14-r1/data/SPEC.json b/research/complex-571-cold14-r1/data/SPEC.json new file mode 100644 index 0000000000..b5d83c4314 --- /dev/null +++ b/research/complex-571-cold14-r1/data/SPEC.json @@ -0,0 +1,2860 @@ +{ + "schema": "witness-spec/1", + "name": "cold14", + "data": { + "plan_sha256": "91e60c12c364c44efe62d489beef82cfe90939b72b4dc50a9041dbb9ba966784", + "owners_sha256": "61783b9832b2684ddea6be870c635832304e9e0029b6bd72274d7ee0589e80a0" + }, + "providers": { + "atm3": { + "semantic_phase_sha256": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "width_digest": "d8f672f88571c6d783df116271639de33cf174409208896e5cc8aa441e438a3b", + "program_hashes": { + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9", + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "LOCAL-CHECKS.json": "8a8ac44c79691aed3008e1bd4211cd6479ee7e6bca27c822591aee49a3c9d4a2", + "RESIDUAL-ADAPTERS.json": "6c0dc81ae31583c9c099bf74eaa5d607bc6fa108c10edb4a1cf8dfa26dfeee9e" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "prefix_bits": 46, + "coefficient_work_primitive_count": 104091, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "prefix_bits": 41, + "coefficient_work_primitive_count": 104059, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 228, + "entrance_rank": 476, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 62, + "5": 8, + "7": 78, + "8": 94, + "9": 262 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 420208, + "local_primitive_bound": 10897815672078, + "compiler": 25934336, + "children": 3668, + "paid_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9", + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "expected_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "coefficient_work_primitive_count": 104091 + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "coefficient_work_primitive_count": 104059 + } + }, + "entering": 228, + "entrance": 476, + "inventory": { + "4": 62, + "5": 8, + "7": 78, + "8": 94, + "9": 262 + }, + "wrappers": 242, + "phase_edges": 3040, + "native_negative_controls": 25 + }, + "ck": { + "semantic_phase_sha256": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "width_digest": "14aced4c069fd0bb6beef61e440fb553ae2830626a981c3939212526e6d1cfa1", + "program_hashes": { + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254", + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "LOCAL-CHECKS.json": "5d3ab8bbe152d1e8e1c6ccaacdb37a74308b3ae6ebf9ec3c86dbc233bcc92dad", + "RESIDUAL-ADAPTERS.json": "fd34bb086ed7078bbc420c167459bf7bc8b48c8497dcb4280d65eb3df2e62e2b" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "prefix_bits": 46, + "coefficient_work_primitive_count": 104091, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "prefix_bits": 41, + "coefficient_work_primitive_count": 104059, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 228, + "entrance_rank": 436, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 22, + "5": 48, + "7": 78, + "8": 94, + "9": 262 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 420208, + "local_primitive_bound": 10897815672078, + "compiler": 25934336, + "children": 3668, + "paid_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254", + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + } + }, + "expected_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "coefficient_work_primitive_count": 104091 + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "coefficient_work_primitive_count": 104059 + } + }, + "entering": 228, + "entrance": 436, + "inventory": { + "4": 22, + "5": 48, + "7": 78, + "8": 94, + "9": 262 + }, + "wrappers": 242, + "phase_edges": 3040, + "native_negative_controls": 25 + }, + "jp8": { + "semantic_phase_sha256": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "width_digest": "b343e61e4e27f00bd5ebec34bd679b5044305a43d3677d8150be28f3d59505b0", + "program_hashes": { + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892", + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "LOCAL-CHECKS.json": "62f7d8218432f27af220a4ca3b22a90a9ddb5d637b3880b4d7cf55042ee07b62", + "RESIDUAL-ADAPTERS.json": "daf5f638a222d5b48e60a60e9f8badf8c4f46da1f7e472e91f350881b808be6f" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205524, + "prefix_l1": "1136522369138750", + "prefix_bits": 51, + "coefficient_work_primitive_count": 101768, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 230, + "post_wrappers": 230, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205476, + "prefix_l1": "17821429754809/2", + "prefix_bits": 44, + "coefficient_work_primitive_count": 101736, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 230, + "post_wrappers": 230, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 216, + "entrance_rank": 392, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 22, + "5": 48, + "7": 46, + "8": 114, + "9": 274 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 410672, + "local_primitive_bound": 10650505839316, + "compiler": 25934336, + "children": 3576, + "paid_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892", + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + } + }, + "expected_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205524, + "prefix_l1": "1136522369138750", + "coefficient_work_primitive_count": 101768 + }, + "forward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205476, + "prefix_l1": "17821429754809/2", + "coefficient_work_primitive_count": 101736 + } + }, + "entering": 216, + "entrance": 392, + "inventory": { + "4": 22, + "5": 48, + "7": 46, + "8": 114, + "9": 274 + }, + "wrappers": 230, + "phase_edges": 2951, + "native_negative_controls": 25 + } + }, + "dispatch": [ + [ + 0, + 0, + "ck" + ], + [ + 0, + 1, + "ck" + ], + [ + 0, + 2, + "atm3" + ], + [ + 0, + 3, + "ck" + ], + [ + 0, + 4, + "ck" + ], + [ + 0, + 5, + "ck" + ], + [ + 0, + 6, + "ck" + ], + [ + 0, + 7, + "atm3" + ], + [ + 1, + 0, + "ck" + ], + [ + 1, + 1, + "ck" + ], + [ + 1, + 2, + "ck" + ], + [ + 1, + 3, + "ck" + ], + [ + 1, + 4, + "ck" + ], + [ + 1, + 5, + "ck" + ], + [ + 1, + 6, + "atm3" + ], + [ + 1, + 7, + "jp8" + ], + [ + 2, + 0, + "ck" + ], + [ + 2, + 1, + "ck" + ], + [ + 2, + 2, + "ck" + ], + [ + 2, + 3, + "ck" + ], + [ + 2, + 4, + "ck" + ], + [ + 2, + 5, + "ck" + ], + [ + 2, + 6, + "atm3" + ], + [ + 2, + 7, + "ck" + ], + [ + 3, + 0, + "jp8" + ], + [ + 3, + 1, + "ck" + ], + [ + 3, + 2, + "ck" + ], + [ + 3, + 3, + "ck" + ], + [ + 3, + 4, + "atm3" + ], + [ + 3, + 5, + "atm3" + ], + [ + 3, + 6, + "ck" + ], + [ + 3, + 7, + "ck" + ], + [ + 4, + 0, + "ck" + ], + [ + 4, + 1, + "atm3" + ], + [ + 4, + 2, + "atm3" + ], + [ + 4, + 3, + "jp8" + ], + [ + 4, + 4, + "atm3" + ], + [ + 4, + 5, + "ck" + ], + [ + 4, + 6, + "ck" + ], + [ + 4, + 7, + "atm3" + ], + [ + 5, + 0, + "atm3" + ], + [ + 5, + 1, + "atm3" + ], + [ + 5, + 2, + "atm3" + ], + [ + 5, + 3, + "atm3" + ], + [ + 5, + 4, + "ck" + ], + [ + 5, + 5, + "jp8" + ], + [ + 5, + 6, + "ck" + ], + [ + 5, + 7, + "atm3" + ], + [ + 6, + 0, + "atm3" + ], + [ + 6, + 1, + "jp8" + ], + [ + 6, + 2, + "ck" + ], + [ + 6, + 3, + "ck" + ], + [ + 6, + 4, + "ck" + ], + [ + 6, + 5, + "atm3" + ], + [ + 6, + 6, + "ck" + ], + [ + 6, + 7, + "ck" + ], + [ + 7, + 0, + "atm3" + ], + [ + 7, + 1, + "jp8" + ], + [ + 7, + 2, + "atm3" + ], + [ + 7, + 3, + "ck" + ], + [ + 7, + 4, + "ck" + ], + [ + 7, + 5, + "ck" + ], + [ + 7, + 6, + "atm3" + ], + [ + 7, + 7, + "ck" + ], + [ + 8, + 0, + "atm3" + ], + [ + 8, + 1, + "ck" + ], + [ + 8, + 2, + "atm3" + ], + [ + 8, + 3, + "ck" + ], + [ + 8, + 4, + "ck" + ], + [ + 8, + 5, + "ck" + ], + [ + 8, + 6, + "ck" + ], + [ + 8, + 7, + "ck" + ] + ], + "call_order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "expected": { + "provider_counts": { + "ck": 44, + "atm3": 22, + "jp8": 6 + }, + "global_profile": { + "1": 185721, + "2": 32464, + "3": 23600, + "4": 14128, + "5": 5040, + "6": 2016, + "7": 1, + "8": 576, + "32": 1, + "48": 2100 + }, + "owners_per_call": 728, + "hosted_residuals": 36288, + "rank_mass": 520704, + "actual_73column_sigmas": 6933, + "cross_replica_helper_roles": 26870, + "idle_remainders": 2103, + "live": 7168, + "physical": 7682, + "deficit": 2560, + "entering_helper_roles": 16344, + "idle_remainder_profile": { + "1": 1, + "7": 1, + "32": 1, + "48": 2100 + }, + "complex_lower": "1624921584636740466629/1000000000000000000000000", + "conservative_complex_lower": "406230395437465176833/250000000000000000000000", + "kappa": "324457099582947/200000000000000000", + "kappa_decimal": "0.001622285497914735", + "conservative_kappa_decimal": "0.001622285495037214", + "gain_baseline_kappa": "0.001601260169988325", + "mutations_rejected": 31, + "assembly_controls_rejected": 155 + }, + "build": { + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "sources": { + "multicold": { + "dir": "complex-multicold", + "pr": 568, + "commit": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "manifest_sha256": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "full_tree": true, + "files": { + "data/EIGHT-COLD.json": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "data/EIGHT-MULTICOLD.json": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9" + } + }, + "structural_gain": { + "dir": "structural-gain", + "pr": 571, + "commit": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "manifest_sha256": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "full_tree": false, + "files": { + "frontier-composition/combined-prefix-word/FULL-WORD.json.gz": "a6cd88224427bad6d00b6fbe1d201a2c09e496c90e2cecdc04d7f2ff11a4ba42" + } + }, + "larger_gain": { + "dir": "larger-gain", + "pr": 569, + "commit": "897213a855b7fb8a1b8b0e552a2f5c42e6c1b326", + "manifest_sha256": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "full_tree": false, + "files": { + "providers/build_entrance_promotions.py": "50737e20553b5d44381c58e5b35b5031a6797dfdda1c67a1656069f1f6203cd2", + "providers/coupled_frames_base.py": "b6033cd2959297a624b557f3d04665c8fbb680a4c0987daf0704ef93711700bd", + "providers/search_suffix_kernels.py": "0523c90f036ff01cac9299fe4e47dc40dd04f264f09415985d2c98b4da43371c" + } + }, + "joint_prefix": { + "dir": "complex-joint-prefix", + "pr": 575, + "commit": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "manifest_sha256": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "full_tree": false, + "files": { + "code/audit_joint_prefix.py": "c01836709f3650a39c46418ac1771980b4b96288e60b51032b5d31419e484c37", + "code/audit_multicold_controls.py": "3ff631f0bdc7e707d4296ff441802cc26da9c6556650469f09ab7253558b4017", + "code/build_joint_prefix.py": "d7804669e528b6fd8d80195a4a2e76efac9bc67440b82c73973f4bc9fe273783", + "data/EIGHTCOLD-JOINT-KERNELS.json": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "data/JOINT-PREFIX.json": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2" + } + }, + "frame_coalescing": { + "dir": "kernel-frame-coalescing", + "pr": 583, + "commit": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "manifest_sha256": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "full_tree": false, + "files": { + "code/build_frames.py": "59f486c52293c76f1f6140c5f12f7a555a956b455e853c79136fc227deefbc3d" + } + } + }, + "providers": { + "atm3": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6" + }, + "steps": [ + { + "type": "promote", + "recipe": "pkg:data/recipes/atm3-step0-promote.json", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "recipe_sha256": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "omission_controls": 4, + "output_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9" + }, + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/atm3-step1-greedy_kernels.json", + "input_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9", + "recipe_sha256": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "omission_controls": 48, + "output_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/atm3-step2-frame_coalesce.json", + "input_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236", + "recipe_sha256": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "negative_controls": 12, + "output_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/atm3-step3-gate_move_coalesce.json", + "input_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472", + "recipe_sha256": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "negative_controls": 6, + "output_content_sha256": "f3f56a044177e0d4e3c0a8d47ce8d7ae90ad3332935d0c7dfb6b8cf28e290df4" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/atm3-step4-hyperplane_end.json", + "input_content_sha256": "f3f56a044177e0d4e3c0a8d47ce8d7ae90ad3332935d0c7dfb6b8cf28e290df4", + "recipe_sha256": "aaf94d63a3756211f08d73ebe30bcba5554bf543b77311294aaff3ab3bfb5d13", + "negative_controls": 21, + "output_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/atm3-step5-cold_end.json.gz", + "input_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6", + "recipe_sha256": "a1669e97de185a9eb054f95dcf54f0c99b11fd51a71fb4b7d8b161fa2ad8a8b0", + "negative_controls": 14, + "output_content_sha256": "c808d7e69b2ffeec967381845fd4f0fc9c5fff5674d7eaa43339ca1c940c8a2c" + } + ], + "word_content_sha256": "c808d7e69b2ffeec967381845fd4f0fc9c5fff5674d7eaa43339ca1c940c8a2c" + }, + "ck": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6" + }, + "steps": [ + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/ck-step0-greedy_kernels.json", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "recipe_sha256": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "omission_controls": 48, + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/ck-step1-frame_coalesce.json", + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "recipe_sha256": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "negative_controls": 12, + "output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/ck-step2-gate_move_coalesce.json", + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "recipe_sha256": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "negative_controls": 6, + "output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/ck-step3-hyperplane_end.json", + "input_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "recipe_sha256": "e771ec08d638071283afed235bf4d35550b38bebe648d2a0377a430e96327e15", + "negative_controls": 21, + "output_content_sha256": "1f113dd38e5a6f4250cbcb6f15514e0b9ef79c1076a21116b181918a68c5aa9a" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/ck-step4-cold_end.json.gz", + "input_content_sha256": "1f113dd38e5a6f4250cbcb6f15514e0b9ef79c1076a21116b181918a68c5aa9a", + "recipe_sha256": "0190c405f59859d1c4750557c14e2dd39a39b75411b320d5b9c280a654608671", + "negative_controls": 14, + "output_content_sha256": "7521225922d79abaa44aa313a90fbdb94a1cd78f2dd089f51bb149a6481afcb9" + } + ], + "word_content_sha256": "7521225922d79abaa44aa313a90fbdb94a1cd78f2dd089f51bb149a6481afcb9" + }, + "jp8": { + "base": { + "kind": "frozen558_promoted", + "content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d" + }, + "steps": [ + { + "type": "cold_kernel", + "recipe": "multicold:data/EIGHT-COLD.json", + "input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "recipe_sha256": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "omission_controls": 6, + "output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d" + }, + { + "type": "multicut", + "recipe": "multicold:data/EIGHT-MULTICOLD.json", + "input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "recipe_sha256": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9", + "omission_controls": 32, + "output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f" + }, + { + "type": "frozen558_scalar_audits" + }, + { + "type": "joint_prefix", + "variant": "eightcold", + "kernel_recipes": "joint_prefix:data/EIGHTCOLD-JOINT-KERNELS.json", + "recipe": "joint_prefix:data/JOINT-PREFIX.json", + "input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "recipe_sha256": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2", + "kernel_recipes_sha256": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "omission_controls": 135, + "rank5_controls": 8, + "joint_negative_controls": 15, + "output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/jp8-step4-hyperplane_end.json", + "input_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533", + "recipe_sha256": "7e3d021c7498b3a65345d74d008af5aa87249ec1dc082914ea0beb17908f8f81", + "negative_controls": 21, + "output_content_sha256": "b31897ec0a49cdf2988f2533e8030e34b8cd7b7a940d137bea35a91db97465c7" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/jp8-step5-cold_end.json.gz", + "input_content_sha256": "b31897ec0a49cdf2988f2533e8030e34b8cd7b7a940d137bea35a91db97465c7", + "recipe_sha256": "56f5be104c6a943115ffd845c0967b552870fc5da96e74aecc15dea9a3c8d77a", + "negative_controls": 14, + "output_content_sha256": "2c7bfea5286d6831e7fe14b4b10acce73bb949bee83513324cf2f181a510c054" + } + ], + "word_content_sha256": "2c7bfea5286d6831e7fe14b4b10acce73bb949bee83513324cf2f181a510c054" + } + } + } +} diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step0-promote.json b/research/complex-571-cold14-r1/data/recipes/atm3-step0-promote.json new file mode 100644 index 0000000000..1f078bea4f --- /dev/null +++ b/research/complex-571-cold14-r1/data/recipes/atm3-step0-promote.json @@ -0,0 +1 @@ +[{"pivot": 627, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 629, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 630, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 631, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 635, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 637, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 638, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 639, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 651, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 653, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 654, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 655, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 659, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 661, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 662, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 663, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 667, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 669, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 670, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 671, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 683, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 685, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 686, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 687, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 691, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 693, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 694, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 695, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 699, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 701, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 702, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 703, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 707, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 709, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 710, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 711, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 715, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 717, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 718, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 719, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}] \ No newline at end of file diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step1-greedy_kernels.json b/research/complex-571-cold14-r1/data/recipes/atm3-step1-greedy_kernels.json new file mode 100644 index 0000000000..db3a406ee2 --- /dev/null +++ b/research/complex-571-cold14-r1/data/recipes/atm3-step1-greedy_kernels.json @@ -0,0 +1,561 @@ +{ + "input_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9", + "output_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236", + "kernels": [ + { + "pivot": 462, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 39, + "donor": 476, + "coefficient": "1", + "donor_state": [ + 476, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 40, + "donor": 477, + "coefficient": "1", + "donor_state": [ + 477, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 49, + "donor": 463, + "coefficient": "-1", + "donor_state": [ + 463, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 464, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 25, + "donor": 474, + "coefficient": "1", + "donor_state": [ + 474, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 26, + "donor": 475, + "coefficient": "1", + "donor_state": [ + 475, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 465, + "coefficient": "-1", + "donor_state": [ + 465, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 466, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 35, + "donor": 478, + "coefficient": "1", + "donor_state": [ + 478, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 36, + "donor": 479, + "coefficient": "1", + "donor_state": [ + 479, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 467, + "coefficient": "-1", + "donor_state": [ + 467, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 468, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 29, + "donor": 480, + "coefficient": "1", + "donor_state": [ + 480, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 30, + "donor": 481, + "coefficient": "1", + "donor_state": [ + 481, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 469, + "coefficient": "-1", + "donor_state": [ + 469, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 490, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 33, + "donor": 491, + "coefficient": "-1", + "donor_state": [ + 491, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 502, + "coefficient": "1", + "donor_state": [ + 502, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 503, + "coefficient": "1", + "donor_state": [ + 503, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 492, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 44, + "donor": 493, + "coefficient": "-1", + "donor_state": [ + 493, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 504, + "coefficient": "1", + "donor_state": [ + 504, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 505, + "coefficient": "1", + "donor_state": [ + 505, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 514, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 38, + "donor": 526, + "coefficient": "1", + "donor_state": [ + 526, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 39, + "donor": 527, + "coefficient": "1", + "donor_state": [ + 527, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 57, + "donor": 515, + "coefficient": "-1", + "donor_state": [ + 515, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 516, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 51, + "donor": 528, + "coefficient": "1", + "donor_state": [ + 528, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 52, + "donor": 529, + "coefficient": "1", + "donor_state": [ + 529, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 64, + "donor": 517, + "coefficient": "-1", + "donor_state": [ + 517, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 510, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 712, + "donor": 511, + "coefficient": "-1", + "donor_state": [ + 511, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 524, + "coefficient": "1", + "donor_state": [ + 524, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 525, + "coefficient": "1", + "donor_state": [ + 525, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 512, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 717, + "donor": 513, + "coefficient": "-1", + "donor_state": [ + 513, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 522, + "coefficient": "1", + "donor_state": [ + 522, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 523, + "coefficient": "1", + "donor_state": [ + 523, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 586, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 822, + "donor": 587, + "coefficient": "-1", + "donor_state": [ + 587, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 598, + "coefficient": "1", + "donor_state": [ + 598, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 599, + "coefficient": "1", + "donor_state": [ + 599, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 588, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 827, + "donor": 589, + "coefficient": "-1", + "donor_state": [ + 589, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 600, + "coefficient": "1", + "donor_state": [ + 600, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 601, + "coefficient": "1", + "donor_state": [ + 601, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + } + ], + "source": "coldk greedy (multi-cut, cand all, ranks [1, 2, 3], targets false, kmax 6) on w/A_t_m3/FULL-WORD.json.gz", + "final_local_profile": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "seconds": 0.5898449 +} diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step2-frame_coalesce.json b/research/complex-571-cold14-r1/data/recipes/atm3-step2-frame_coalesce.json new file mode 100644 index 0000000000..fb5e59269a --- /dev/null +++ b/research/complex-571-cold14-r1/data/recipes/atm3-step2-frame_coalesce.json @@ -0,0 +1,173 @@ +{ + "after": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 465, + 464, + 1, + 1, + [ + 126, + 1 + ] + ], + "before": [ + "add", + 465, + 464, + 1, + 1, + [ + 1 + ] + ], + "index": 78, + "section": "A" + }, + { + "after": [ + "add", + 467, + 466, + 1, + 1, + [ + 121, + 7 + ] + ], + "before": [ + "add", + 467, + 466, + 1, + 1, + [ + 7 + ] + ], + "index": 75, + "section": "A" + }, + { + "after": [ + "add", + 469, + 468, + 1, + 1, + [ + 120, + 7 + ] + ], + "before": [ + "add", + 469, + 468, + 1, + 1, + [ + 7 + ] + ], + "index": 72, + "section": "A" + }, + { + "after": [ + "add", + 463, + 462, + 1, + 1, + [ + 120, + 1 + ] + ], + "before": [ + "add", + 463, + 462, + 1, + 1, + [ + 1 + ] + ], + "index": 69, + "section": "A" + }, + { + "after": [ + "add", + 517, + 516, + 1, + 1, + [ + 103, + 31 + ] + ], + "before": [ + "add", + 517, + 516, + 1, + 1, + [ + 31 + ] + ], + "index": 66, + "section": "A" + }, + { + "after": [ + "add", + 515, + 514, + 1, + 1, + [ + 102, + 31 + ] + ], + "before": [ + "add", + 515, + 514, + 1, + 1, + [ + 31 + ] + ], + "index": 61, + "section": "A" + } + ], + "input_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236" +} diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step3-gate_move_coalesce.json b/research/complex-571-cold14-r1/data/recipes/atm3-step3-gate_move_coalesce.json new file mode 100644 index 0000000000..ac941259cb --- /dev/null +++ b/research/complex-571-cold14-r1/data/recipes/atm3-step3-gate_move_coalesce.json @@ -0,0 +1,85 @@ +{ + "after": { + "1": 2484, + "2": 492, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 491, + 490, + 1, + 1, + [ + 96, + 25 + ] + ], + "before": [ + "add", + 491, + 490, + 1, + 1, + [ + 25 + ] + ], + "index": 35, + "section": "A" + }, + { + "after": [ + "add", + 493, + 492, + 1, + 1, + [ + 97, + 25 + ] + ], + "before": [ + "add", + 493, + 492, + 1, + 1, + [ + 25 + ] + ], + "index": 48, + "section": "A" + } + ], + "input_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472", + "moves": [ + { + "from": 33, + "section": "A", + "to": 35 + }, + { + "from": 46, + "section": "A", + "to": 48 + } + ] +} diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step4-hyperplane_end.json b/research/complex-571-cold14-r1/data/recipes/atm3-step4-hyperplane_end.json new file mode 100644 index 0000000000..8b3ce2d2e0 --- /dev/null +++ b/research/complex-571-cold14-r1/data/recipes/atm3-step4-hyperplane_end.json @@ -0,0 +1,649 @@ +{ + "changes": [ + { + "helper": 448, + "cleanup_index": 686, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 449, + "cleanup_index": 685, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 450, + "cleanup_index": 684, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 451, + "cleanup_index": 683, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 452, + "cleanup_index": 682, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 453, + "cleanup_index": 681, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 454, + "cleanup_index": 680, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 455, + "cleanup_index": 679, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 456, + "cleanup_index": 678, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 457, + "cleanup_index": 677, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 458, + "cleanup_index": 676, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 459, + "cleanup_index": 675, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 460, + "cleanup_index": 670, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 461, + "cleanup_index": 669, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 470, + "cleanup_index": 660, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 471, + "cleanup_index": 659, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 472, + "cleanup_index": 654, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 473, + "cleanup_index": 653, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 482, + "cleanup_index": 644, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 483, + "cleanup_index": 643, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 496, + "cleanup_index": 621, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 497, + "cleanup_index": 620, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 520, + "cleanup_index": 579, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 521, + "cleanup_index": 578, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 544, + "cleanup_index": 545, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 545, + "cleanup_index": 544, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 568, + "cleanup_index": 513, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 569, + "cleanup_index": 512, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 580, + "cleanup_index": 497, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 581, + "cleanup_index": 496, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 590, + "cleanup_index": 481, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 591, + "cleanup_index": 480, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 592, + "cleanup_index": 475, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 593, + "cleanup_index": 474, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 602, + "cleanup_index": 465, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 603, + "cleanup_index": 464, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 604, + "cleanup_index": 459, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 605, + "cleanup_index": 458, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 606, + "cleanup_index": 457, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 607, + "cleanup_index": 456, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 609, + "cleanup_index": 454, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 611, + "cleanup_index": 452, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 612, + "cleanup_index": 451, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 613, + "cleanup_index": 450, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 614, + "cleanup_index": 449, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 615, + "cleanup_index": 448, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + } + ], + "output_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6" +} diff --git a/research/complex-571-cold14-r1/data/recipes/atm3-step5-cold_end.json.gz b/research/complex-571-cold14-r1/data/recipes/atm3-step5-cold_end.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8cc84ee0dc8daeea521f07edba7d8d5e36d4a4a GIT binary patch literal 32701 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 new frame), frame fields only on scalar events, report changes limited.""" + assert source.keys()==word.keys() + for section in source: + if section in ('A','cut','B','cleanup','precondition'): + assert len(source[section])==len(word[section]) + assert all(x[:-1]==y[:-1]for x,y in zip(source[section],word[section])),'scalar operation changed' + elif section not in ('start_extra','report'):assert source[section]==word[section],'fixed field changed: '+section + entrances=dict(source['start_extra']) + for r in recipes: + k=str(r['pivot']);assert sorted(entrances[k])==sorted(r['old_frame']) and len(r['new_frame'])==len(r['old_frame'])+1,'wrong old entrance '+k + entrances[k]=word['start_extra'][k];assert sorted(entrances[k])==sorted(r['new_frame']),'wrong new entrance '+k + assert word['start_extra']==entrances,'entrance changed outside the recipe' + allowed={'local_profile','local_rank_mass','entrance_rank','entering_helpers','width_inventory'} + assert source['report'].keys()==word['report'].keys() and all(source['report'][k]==word['report'][k]for k in source['report']if k not in allowed) +def promote(word,s,out,tag): + src,builder,deps=PROMOTER;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + for f in deps:ref(src+':'+f) + run(tag+'-construction',ref(src+':'+builder),'--word',word,'--recipes',recipe,'--gk-dir',GK,'--out',out) + a,b,r=read(word),read(out/'FULL-WORD.json.gz'),read(recipe);frame_only(a,b,r) + import copy + rejected=[] + for name,mut in (('reverted_promotion',lambda w:w['start_extra'].__setitem__(str(r[0]['pivot']),list(r[0]['old_frame']))), + ('scalar_operation_changed',lambda w:w['B'][0].insert(0,'mutated')),('extra_entrance_changed',lambda w:w['start_extra'].__setitem__(next(k for k in w['start_extra']if k not in{str(x['pivot'])for x in r}),[])), + ('fixed_field_changed',lambda w:w.__setitem__('cut',w['cut'][:-1]))): + w=copy.deepcopy(b);mut(w) + try:frame_only(a,w,r) + except(AssertionError,KeyError,IndexError,TypeError):rejected.append(name) + else:raise AssertionError('frame-only control accepted: '+name) + dump(out/'FRAME-ONLY-CONTROLS.json',dict(status='PASS_FRAME_ONLY_PROMOTION_TRANSFER',promotions=len(r),controls=rejected)) + omissions(out/'FRAME-ONLY-CONTROLS.json',s,tag) +JOINT=('joint_prefix',('code/build_joint_prefix.py','code/audit_joint_prefix.py','code/audit_multicold_controls.py')) +def joint_prefix(word,s,out,tag): + """PR575's unchanged joint-prefix constructor with its paired audits: all-kernel omissions, rank-five omissions and + the independent literal-prefix/coverage audit (variant and kernel recipe named in the step).""" + src,(builder,audit,omit)=JOINT;recipe=ref(s['recipe']);kern=ref(s['kernel_recipes']);pinned(s,'recipe_sha256',sha(recipe),tag);pinned(s,'kernel_recipes_sha256',sha(kern),tag) + assert s['variant'] in ('eightcold','width7') + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--variant',s['variant'],'--gk-dir',GK,'--out',out) + shutil.copyfile(RAW.parent/'PROMOTION.json',out/'PROMOTION.json') + run(tag+'-all-kernel-omissions',ref(src+':'+omit),'--word',out/'FULL-WORD.json.gz','--recipe',kern,'--out',out/'ALL-KERNEL-CONTROLS.json') + run(tag+'-rank5-omissions',B/'code/audit_promoted_scalar.py',out/'FULL-WORD.json.gz',SEL,out/'RANK5-CONTROLS.json') + run(tag+'-independent-joint-prefix-and-coverage',ref(src+':'+audit),'--source',word,'--word',out/'FULL-WORD.json.gz','--recipe',recipe,'--variant',s['variant'],'--kernel-recipes',kern,'--controls',out/'ALL-KERNEL-CONTROLS.json','--rank5-controls',out/'RANK5-CONTROLS.json','--promotion',out/'PROMOTION.json','--selection',SEL,'--out',out/'JOINT-PREFIX-AUDIT.json') + j=read(out/'JOINT-PREFIX-AUDIT.json');assert j['status']=='PASS_INDEPENDENT_LITERAL_PREFIX_AND_FINAL_KERNEL_COVERAGE' + c=read(out/'ALL-KERNEL-CONTROLS.json');assert all(x['forward_rejected'] and x['reflected_rejected'] for x in c['controls']) + omissions(out/'ALL-KERNEL-CONTROLS.json',s,tag);pinned(s,'rank5_controls',len(read(out/'RANK5-CONTROLS.json')['controls']),tag) + pinned(s,'joint_negative_controls',len(j['negative_controls_rejected']),tag) +COAL=('frame_coalescing','code/build_frames.py') +def frame_coalesce(word,s,out,tag): + """PR583's unchanged frame-coalescence constructor (it re-checks profiles, scalar operations, widths and helper + responses and rejects every omission/over-promotion control), plus an independent check that only the recipe's + gate frames changed (old -> new) and every other field of the word is identical.""" + src,builder=COAL;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_SIX_EXACT_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz');ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'frame changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')) +def gate_move_coalesce(word,s,out,tag): + """This package's code/build_gate_moves.py (PR583's constructor extended by commuting gate moves): every passed gate + must commute, helper responses and widths are unchanged, cleanup follows the inherited inverse rule, and every + omission/over-promotion/unmoved control is rejected; then the same independent comparison as frame_coalesce.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_gate_moves.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes'])+len(r['moves']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz') + for m in r['moves']:L=x[m['section']];L.insert(m['to'],L.pop(m['from'])) + ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','cleanup','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'gate changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + meta=('width_inventory','entering_helpers','entrance_rank');assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')+meta) + sys.path.insert(0,str(GK));import gk_common as GC;GC.V=112;ws=GC.widths_of(y) + assert y['report']['width_inventory']=={str(k):v for k,v in sorted(Counter(ws).items())} and y['report']['entering_helpers']==sum(v<9 for v in ws) and y['report']['entrance_rank']==sum(9-v for v in ws),'descriptive width metadata not normalized' +def hyperplane_end(word,s,out,tag): + """This package's code/build_hpe.py: cleanup gates that commute with the whole skipped cleanup prefix run right after B + at the join frame U of their registers, and the helper ends at U (residual T_U T_E^-1, width |U|-|E|; Lemma C, nested + children, Lemma A). Paired audit: code/hpe_controls_atc.py (exact replay of the reordered program plus HPE raw-word + mutations). Then an independent comparison: only early_cleanup, helper_final and the paid profile change.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_hpe.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/hpe_controls_atc.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'HPE-ATC-CONTROLS.json');assert c['status']=='PASS_HPE_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'early_cleanup','helper_final'} and 'early_cleanup' not in x and all(x[k]==y[k]for k in x if k!='report') + assert y['early_cleanup']==[[z['cleanup_index'],z['frame']]for z in r['changes']] and y['helper_final']=={str(z['helper']):z['frame']for z in r['changes']} + assert x['report'].keys()==y['report'].keys() and all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','width_inventory')) + inv=Counter({int(k):n for k,n in x['report']['width_inventory'].items()}) + for z in r['changes']:e=len(x['start_extra'][str(z['helper'])]);inv[9-e]-=1;inv[len(z['frame'])-e]+=1 + assert y['report']['width_inventory']=={str(k):n for k,n in sorted(inv.items())if n},'descriptive width metadata not |final|-|start|' +def cold_end(word,s,out,tag): + """This package's code/build_cold_end.py: cold helpers end at a low-dimensional frame U (width |U|) under a refactored + exact cleanup: a rank-0 premix at the head of A, multi-gate lower-frame cleanup gates in the early tail and an exact + dyadic FULL remainder that touches no helper ending below FULL. Paired audit: code/cold_end_controls.py (raw-word + mutations of premix placement, lower-frame gates, remainder, cold ends and marker, each rejected by the extended + transport audit). Then an independent comparison: only A's head, the cleanup, early_cleanup, helper_final, the + refactored_cleanup marker and the paid profile / width metadata change, and every inherited HPE end is kept.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_cold_end.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/cold_end_controls.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'COLD-END-CONTROLS.json');assert c['status']=='PASS_COLD_END_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'refactored_cleanup'} and 'refactored_cleanup' not in x + assert all(x[k]==y[k]for k in x if k not in('A','cleanup','early_cleanup','helper_final','report')) + st=lambda h:sorted(x['start_extra'].get(str(h),[]));assert all(2*x['report']['v']<=h and st(h)==sorted(e[-1]) for e in r['premix'] for h in [e[1]]+([e[2]] if e[0]=='add' else [])) + assert y['A']==r['premix']+x['A'] and y['cleanup']==r['cleanup'] and y['early_cleanup']==r['early_cleanup'] + ee=r.get('entering_ends',{});assert y['helper_final']==dict(x['helper_final'],**r['cold_ends'],**ee) and not (set(r['cold_ends'])|set(ee))&set(x['helper_final']) + assert all(h not in x['start_extra'] for h in r['cold_ends']) and all(h in x['start_extra'] for h in ee) and not set(ee)&set(r['cold_ends']) + assert x['report'].keys()==y['report'].keys() and all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','width_inventory')) + inv=Counter({int(k):n for k,n in x['report']['width_inventory'].items()}) + for h,f in r['cold_ends'].items():inv[9]-=1;inv[len(f)]+=1 + for h,f in ee.items():e=len(x['start_extra'][h]);inv[9-e]-=1;inv[len(f)-e]+=1 + assert y['report']['width_inventory']=={str(k):n for k,n in sorted(inv.items())if n},'descriptive width metadata not |final|-|start|' +STEPS={'cold_end':cold_end,'hyperplane_end':hyperplane_end,'cold_kernel':cold_kernel,'multicut':multicut,'greedy_kernels':multicut,'promote':promote,'joint_prefix':joint_prefix,'frame_coalesce':frame_coalesce,'gate_move_coalesce':gate_move_coalesce} +def build_word(pid,d): + base=d['base'];assert base['kind']in('frozen558_promoted','source_file'),base['kind'] + word=RAW if base['kind']=='frozen558_promoted' else ref(base['file']) + pinned(base,'content_sha256',content(word),pid+'.base') + for i,s in enumerate(d['steps']): + tag='%s-step%d-%s'%(pid,i,s['type']);out=O/tag + if s['type']=='frozen558_scalar_audits': + # inherited static44 and rank-five omission audits on a frozen558-descended word + out.mkdir();run(tag+'-static44',F/'complex-local/static44/audit_scalar.py',word,SEL,out/'STATIC44-SCALAR-AUDIT.json') + shutil.copyfile(RAW.parent/'PROMOTION.json',word.parent/'PROMOTION.json') + run(tag+'-rank5',B/'code/audit_promoted_scalar.py',word,SEL,out/'PROMOTED-SCALAR-AUDIT.json');continue + assert s['type'] in STEPS,'step type not allowlisted: '+s['type'] + pinned(s,'input_content_sha256',content(word),tag) + STEPS[s['type']](word,s,out,tag);word=out/'FULL-WORD.json.gz' + pinned(s,'output_content_sha256',content(word),tag) + pinned(d,'word_content_sha256',content(word),pid) + return word +def localize(pid,word): + local=O/(pid+'-local') + # HPE words (helper_final present) use this package's generalised native chain; every other word the unchanged vendor531 one + hp='helper_final' in read(word);NC=(lambda f:P/'code'/('hpe_'+f))if hp else(lambda f:V/'code'/f) + run(pid+'-all-columns-native-frames',NC('audit_and_transport.py'),'--raw',word,'--routing',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz','--out',local) + run(pid+'-both-reflected-ledgers',NC('emit_local.py'),local) + run(pid+'-independent-local-controls',NC('audit_local.py'),local) + run(pid+'-normalized-wrappers',NC('adapters_local.py'),local/'CANONICAL-WORD.json.gz',local/'RESIDUAL-ADAPTERS.json',local/'WRAPPER-CHECKS.json') + run(pid+'-all-phase-edges',B/'code/phases_full.py',local,V/'vendor/clifford') + r=BUILD['providers'][pid].get('retained_local') + if r: # a pinned retained local must be reproduced byte for byte (phase review up to timing) + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','WRAPPER-CHECKS.json','CLIFFORD-RECIPES.json'): + assert sha(local/name)==sha(ref(r+'/'+name)),(pid,name) + fresh,old=read(local/'CLIFFORD-REVIEW.json'),read(ref(r+'/CLIFFORD-REVIEW.json')) + assert {k:v for k,v in fresh.items()if k!='seconds'}=={k:v for k,v in old.items()if k!='seconds'} + return local +reuse=dict(x.split('=',1)for x in a.reuse_local) +words={} +def provider(pid): + word=words[pid]=build_word(pid,BUILD['providers'][pid]) + return Path(reuse[pid]).resolve()if pid in reuse else localize(pid,word) +with ThreadPoolExecutor(max(1,min(a.jobs,len(BUILD['providers']))))as pool: + futures={pid:pool.submit(provider,pid)for pid in sorted(BUILD['providers'])};locals_={pid:f.result()for pid,f in futures.items()} +dump(O/'LOCALS.json',dict(locals={pid:str(l)for pid,l in locals_.items()},words={pid:str(w)for pid,w in words.items()},baseline=str(baseline),discovered=discovered)) +if a.until=='locals':print('LOCALS READY');raise SystemExit(0) +assert not DISCOVER +G=O/'mixed-global' +run('bind-providers',P/'code/bind_providers_portable.py','--baseline',baseline,*[x for pid,l in sorted(locals_.items())for x in('--provider','%s=%s'%(pid,l))],'--plan',P/'data/PLAN.json','--out',G) +run('emit-controller',P/'code/emit_allcold.py','--base',G/'base','--owners',P/'data/OWNERS.json.gz','--plan',G/'PLAN.json','--out',G/'hosted') +(G/'audit').mkdir() +run('independent-controller-and-controls',P/'code/audit_allcold.py',G/'base',G/'hosted',G/'audit/ASYNC-AUDIT.json','--mutation-controls') +run('fresh-invoice',P/'code/invoice_allcold.py','--base',G/'base','--hosted',G/'hosted','--audit',G/'audit','--out',G/'audit','--retained-invoice',V/'evidence/audit/PREFIX-AND-INVOICE.json') +run('conservative-and-native-exact-assembly',P/'code/assemble.py',S,G,O/'ASSEMBLY.json') +run('admission-controls',P/'code/assembly_controls.py','--source-package',S,'--owner',G/'audit/OWNERS-AND-PROFILE.json','--invoice',G/'audit/PREFIX-AND-INVOICE.json','--out',O/'ASSEMBLY-CONTROLS.json') +run('phase-timing-portability-controls',P/'code/phase_timing_controls.py',S,G/'base',G/'audit',O/'PHASE-TIMING-CONTROLS.json') +run('actual-recompression-and-rebound-controls',P/'code/generated_identity_controls.py','--base',G/'base','--audit',G/'audit','--out',O/'GENERATED-IDENTITY-CONTROLS.json') +X=SPEC['expected'] +for pid,local in locals_.items(): + r=read(local/'INDEPENDENT-LOCAL-REPLAY.json');ph=read(local/'CLIFFORD-REVIEW.json') + assert len(r['negative_controls_rejected'])==SPEC['providers'][pid]['native_negative_controls'] and r['paid_profiles']['forward']==r['paid_profiles']['backward'] + assert ph['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' and ph['all_child_equalities_include_global_phase']is True and ph['directed_edges']==SPEC['providers'][pid]['phase_edges'] and ph['endpoint_adapters']==224 +assert len(read(G/'audit/ASYNC-AUDIT.json')['mutations_rejected'])==X['mutations_rejected'] +assert len(read(O/'ASSEMBLY-CONTROLS.json')['rejected_controls'])==X['assembly_controls_rejected'] +z=read(O/'ASSEMBLY.json');assert Q(z['kappa_decimal'])==Q(X['kappa_decimal']) and Q(z['conservative_kappa_decimal'])==Q(X['conservative_kappa_decimal']) +assert {str(k):v for k,v in z['complex_profile'].items()}==X['global_profile'] and z['provider_counts']==X['provider_counts'] +r=dict(status=SPEC['build']['status'],kappa=z['kappa'],kappa_decimal=z['kappa_decimal'],complex_lower=z['complex_lower'],bit_lower=z['bit_lower'],conservative_kappa_decimal=z['conservative_kappa_decimal'],conservative_complex_lower=z['conservative_complex_lower'],global_profile=z['complex_profile'],provider_counts=z['provider_counts'],surcharge_model=z['surcharge_model'],seconds=time.monotonic()-start,reused=dict(baseline=bool(a.reuse_baseline),locals=sorted(reuse)),scope=z['scope']);dump(O/'RESULT.json',r) +paths=['PHASE-TIMING-CONTROLS.json','GENERATED-IDENTITY-CONTROLS.json','mixed-global/audit/IDLE-REMAINDER-FRAMES.json','RESULT.json','ASSEMBLY.json','ASSEMBLY-CONTROLS.json','mixed-global/BINDING.json','mixed-global/audit/ASYNC-AUDIT.json','mixed-global/audit/OWNERS-AND-PROFILE.json','mixed-global/audit/PREFIX-AND-INVOICE.json'] +paths+=sorted(f.relative_to(O).as_posix()for f in O.glob('*-step*/*.json')) +for pid in sorted(set(locals_)-set(reuse)): + for fn in ('INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json','WRAPPER-CHECKS.json'):paths.append(pid+'-local/'+fn) +dump(O/'RECEIPT.json',dict(status=r['status'],steps=steps,artifacts={name:sha(O/name)for name in paths},manifest_sha256=sha(P/'MANIFEST.json'),spec_sha256=sha(SPECFILE),source_manifest_sha256={n:sha(SRC[n]/'MANIFEST.json')for n in SRC})) +print(json.dumps(r,indent=2)) diff --git a/research/complex-571-cold14-r1/verify.sh b/research/complex-571-cold14-r1/verify.sh new file mode 100644 index 0000000000..88025dfed5 --- /dev/null +++ b/research/complex-571-cold14-r1/verify.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# Official replay of complex-571-cold14-r1 from data/SPEC.json (standard library only, assertions on). +# usage: research/complex-571-cold14-r1/verify.sh WORKDIR [SOURCE_ROOT] +# SOURCE_ROOT holds worktrees pr568 pr569 pr571 pr575 pr583 at the pinned commits (default: ..). +set -eu +WORK=${1:?usage: verify.sh WORKDIR [SOURCE_ROOT]} +SRC=${2:-..} +HERE=$(cd "$(dirname "$0")" && pwd) +exec python3 -B "$HERE/verify.py" --work "$WORK" \ + --source multicold="$SRC/pr568/research/complex-multicold" \ + --source structural_gain="$SRC/pr571/research/structural-gain" \ + --source larger_gain="$SRC/pr569/research/larger-gain" \ + --source joint_prefix="$SRC/pr575/research/complex-joint-prefix" \ + --source frame_coalescing="$SRC/pr583/research/kernel-frame-coalescing"