diff --git a/.github/workflows/five-stage-gen5-banks.yml b/.github/workflows/five-stage-gen5-banks.yml new file mode 100644 index 0000000000..a3411535e8 --- /dev/null +++ b/.github/workflows/five-stage-gen5-banks.yml @@ -0,0 +1,39 @@ +name: Verify gen5 bit word in the five-stage completed banks + +on: + push: + paths: + - 'research/five-stage-gen5-banks/**' + - '.github/workflows/five-stage-gen5-banks.yml' + pull_request: + paths: + - 'research/five-stage-gen5-banks/**' + - '.github/workflows/five-stage-gen5-banks.yml' + workflow_dispatch: + +permissions: + contents: read + +jobs: + immutable-replay: + runs-on: ubuntu-24.04 + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + python-version: ['3.11', '3.13'] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + with: + python-version: ${{ matrix.python-version }} + - name: Install the pinned arithmetic dependency + run: python -m pip install --disable-pip-version-check -r research/five-stage-gen5-banks/requirements.txt + - name: Replay every mandatory stage (virtual, raw, bit, scalar, primes, banks, complex, math, finite) + run: python -B research/five-stage-gen5-banks/verify.py --output "$RUNNER_TEMP/gen5-five-stage-verification" + - name: Regenerate the pinned bit word from the generator and both physical-layer producers + run: python -B research/five-stage-gen5-banks/gen5bit/producer/regenerate.py --work "$RUNNER_TEMP/gen5-regeneration" + - name: Require committed files to remain unchanged + run: git diff --exit-code diff --git a/research/five-stage-gen5-banks/BANK-PROOF.md b/research/five-stage-gen5-banks/BANK-PROOF.md new file mode 100644 index 0000000000..523bf12459 --- /dev/null +++ b/research/five-stage-gen5-banks/BANK-PROOF.md @@ -0,0 +1,39 @@ +# Five-stage stage-private completed banks + +This is a finite bank-allocation extension of the PR197/PR200 completed-bank construction to PR234's five-stage bit geometry, retained from eumemic's source527 package and applied here to the gen5 independent helper census. It does not claim a new all-size compiler theorem or replace the scalar admission. + +For one complete local invocation, the source-bound physical telescope has no data/helper cross blocks. On an independent helper with genuine entrance projector sigma its endpoint is the exact partial swap D_(I24-sigma), supported in the active local window. This holds on arbitrary correlated dirty contents. The complemented inverse invocation has the same residual: its reversed endpoints are 0 and I24-sigma. Source-owned gauges are visible-data paths and are excluded from the independent helper census. + +In stage i, PR234 routes the helper at local class d to physical class g=d*tau_i. Relative to g, the residual is P_i=tau_i*diag(I24-sigma,0,...,0)*tau_i, supported only in H_i. We give each stage a disjoint collection of banks. Every bank is filled by disjoint coordinate blocks of total dimension120. For the actual gauge chart B whose columns are residual columns followed by gauge columns, set + + N_b=(b+1)*Pi_b*embed_i(B^-1). + +For an ungauged role B=I24. Pi_b is the explicit coordinate permutation sending the first residual coordinates in H_i to the assigned bank interval. Thus N_b*P_i*N_b^-1 is exactly that coordinate projector. The scalar leaves conjugation unchanged. The checker reconstructs every actual chart, checks both inverse identities, the G-orthogonality of its two summands, its residual action and its elementary factorization. Therefore this is a projector identity for the actual bases, not a rank substitution. + +The bank route is g -> g*N_b^-1, hence d*tau_i*N_b^-1 in the original local invocation. If the bank class is h, its residual is h*N_b*P_i*N_b^-1*h^-1. Every occurrence visits every bank class once because right multiplication is a bijection on the complete GL cover. If two roles in one local invocation are assigned the same bank family, their distinct N_b give distinct bank classes. Distinctness is literal: choose a coordinate j outside H_i. The embedded inverse fixes e_j; N_b*e_j=(b+1)e_(Pi_b(j)). The resulting columns differ for all b, at every eligible prime q>2^80 and every local ring Z/q^w. All scalars are between 1 and 40 and remain distinct units. The proof uses the full GL cover, not a projective quotient. + +Complete the entire cover sweep for each stage and replica in fixed order before its boundary phase. The complete local source endpoint separates every bank from the data and other banks, so each subsequent invocation may receive arbitrary dirty bank contents. For each bank, its block projectors are disjoint and sum to I120. The literal partial swaps therefore compose to D_I120 on every address column. The common inherited ancestor chart is the same for each block and cancels between blocks. The checker verifies all240 address columns, the reverse schedule, and failures from omitting or repeating a block. No new independence assumption on dirt is used. + +The five bank collections remain separate, and each is touched only in its own stage. This gives every physical bank its full required endpoint once. The data stage routes, bridge maps, idle children and final exchanges remain PR234's. Consequently there are no independent exterior rank5a children. Their removal follows from the completed bank endpoint; no internal, data, compensation or copied-center child is removed. + +For gen5 the actual residual families are 3:354 (rank-21 entrances), 4:2182 (rank-20), 6:16 (rank-18), 7:2 (rank-17) and 24:13332 (ungauged roles). The total residual width is even, so sixty physical replicas fill each stage exactly with these 120-dimensional patterns (the rank-17 blocks share mixed banks with rank-20 blocks, as source527's 11/4 banks did): + +| Blocks | Banks per stage | +| --- | ---: | +| 12 of dimension 7 and 9 of dimension 4 | 10 | +| 30 of dimension 4 | 4361 | +| 40 of dimension 3 | 531 | +| 20 of dimension 6 | 48 | +| 5 of dimension 24 | 159984 | + +There are 164934 banks per stage, 824670 total banks and 422400 data families. Literal stock is 1247070. Its per-replica normalized value is 249414/12. The checker enumerates each of 4765800 actual role/replica/stage assignments exactly once, verifies the actual role's chart rank, and hashes the complete allocation. + +Every actual chart (411 distinct entrance bases) uses at most 423 factors. At most 119 coordinate transpositions and 120 scalar-coordinate factors give 662 normalizer factors. A conservative added out-and-back selector bill, in addition to all retained PR234 route and scalar bills, is + + 2*5*60*((1247070-1)+15886*120*662)=757938545400 < 2^40. + +The literal stock, not the rational per-replica stock, must be used for physical role routing and finite storage. All60 scalar replicas execute, and all recursive child counts are multiplied by60 in a literal realization. Any smaller integer normalization used only in the moment arithmetic must be distinguished from the literal replica count. Serial execution may share an external copied-center work stream only after erasure. The fixed bank selector bill is explicitly charged before the inherited positive ordinary-leaf gap absorbs it. After completion removal the maximum child is50 of120, so a single level halves; the histogram remains a one-level profile. + +This witness leaves the full scalar/integer/sign audits, frame ledgers, exact global lowering, prime guard, complete fallback profile and 47 outer inequalities to the integrator (verify.py). Its input charts/census are the independently admitted gen5 helper. Existing compiler, common weighted chart, restored selectors, complete-stream routing and all-size analytic hypotheses remain conditional as in the cited sources. + +Prepared with OpenAI Codex assistance (source527 package, eumemic); gen5 numbers rebound with Claude assistance. Apache-2.0; inherited source attribution remains unchanged. diff --git a/research/five-stage-gen5-banks/LICENSE b/research/five-stage-gen5-banks/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/five-stage-gen5-banks/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/five-stage-gen5-banks/MANIFEST.json b/research/five-stage-gen5-banks/MANIFEST.json new file mode 100644 index 0000000000..91d2a7d9b6 --- /dev/null +++ b/research/five-stage-gen5-banks/MANIFEST.json @@ -0,0 +1,115 @@ +{ + "files": { + "BANK-PROOF.md": "c73e2a07ca7345bb765910c974039a5b4c2ff5b431c8720cde6797f0653e234f", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE.md": "e568be11d66f7225a76affd7af7bffc4e26663b792ba0dca2411cabc0cccd005", + "PR-STATEMENT.md": "847d67fedaf920f7391fac4afa9626b6cb2e6c5614afcc47432dee45535c72b9", + "PROOF.md": "e29c6987437b31a74d83143fcb5bf88930d20f74f48967bc263fc0e6a98dc7c8", + "README.md": "847d67fedaf920f7391fac4afa9626b6cb2e6c5614afcc47432dee45535c72b9", + "UPSTREAM-PR234-NOTICE.md": "ce978c8dfc8a2b36eed7a53014b1a792248b22ef4cee3edd8adab825a571c429", + "UPSTREAM-PR234-PROOF.md": "c9722b07256758cd3b307dd46689f99984c66e16c3dd934f9c34e551620bfc0f", + "bank_check.py": "3d10a5204ccb078bedf8b5ea8150f60b69d9c1e147b719966d5bc688ec8cf65d", + "bank_template.py": "819b79e0486a1005c0cc8c3461c6e73d52ab5f564587c38f5bb397e5dca37045", + "base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "code/complex_basis.py": "52d68781eaf6d9decf02446a532a7336fcf15924a9f6781ba0833d038decb9f8", + "code/complex_labels.py": "ff5d5e914ef1be0f0cc30283a1ee39089b77e4b572f09543e7313d126bd26256", + "code/complex_scalars.py": "fa035447c1f3a5e878dfc18a900942aa180d8bfde03cdce2d21d9bf8b8409429", + "code/complex_splice.py": "ed8f7f55530bab64e25b98ee614e1152ded8a6259c48d32b3ae26bab4b93848c", + "code/geometry527.py": "00c8d1a7bb94c14d581a33954b2577381be493f6a75d53363a69eaf75261afb6", + "code/global_lowering.py": "50dbb71a1de07cafe0a5379a2aa7c011d66702326b028bf6e57dde2f4eb61a2a", + "code/physical527.py": "b71fcc2188d62849031f575355e3e1345146bcf094bea00f47b1ad1494569ffe", + "finite_check.py": "26ac2d004743af9bf0667bc5195b6568276ef237733d20c4bae57742887a21ae", + "gen5bit/NOTICE-PR200": "9e82089424092c1dabc2341a09ead255633d78c90dbdc199c4336ca1c0f3bdf4", + "gen5bit/README.md": "e105d2c2ccb805f372d0e8cd15b7a6d55e7c238408dee76fcc69ad502bb7a71b", + "gen5bit/bit/base_word.py": "9fe3a81b7561d2b09c086f63fac4626e88a32369ef8bc5579c94878de1218a89", + "gen5bit/bit/word.py": "85822e9cca5b1b2335c3704a3df2f3c6ef01e42d8328daacb33701d30cee80ab", + "gen5bit/producer/data/arcs_p12.json": "0e3b26e8c88e3916302a23da0ff3bae01c7137ddf68b34d152e830e85bac5f5f", + "gen5bit/producer/data/local_design_p12.json": "d4ceb6bff765b9332a36735d626decc178415394fc8d8d1f7135f80a87829320", + "gen5bit/producer/data/pair_module_p12.json": "1180b86c71457066a8c035942acd7dec0694b1efebeb55e2becc9c35de34f2c2", + "gen5bit/producer/data/qmod_p12.json": "a134f9edc0f48b708987e8961449e3120f12b5f7a5b9350ec6c0d8fc7e968ef5", + "gen5bit/producer/descent.py": "5284b4ad26ca6472d82d5ad1a5c1e470cb60696ff90adb1fee3922e2cc845ca5", + "gen5bit/producer/make_physical.py": "92d51510de868d030838c452867ae819b7a8081e50308bf1e2c5e825a1be07d7", + "gen5bit/producer/paired_cube_bit_word.py": "02244b4ae9dd6f6fa6f845ef91d581550e2709f337bae1b47584e34dab9cceec", + "gen5bit/producer/regenerate.py": "478eee81813d20d6947e86f2805b209c9c7e4f638dae59c1b9203380fdef1b2c", + "gen5bit/references/pr168-v4/SOURCE.json": "21a412177c9309d89472aabf4c67618d7a546811f7e68a5904304ae46a98d27c", + "gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py": "4d7c86cd999a1519e0dfb6dcf33a8f26e442a353c3665a0f06881216a260fbf3", + "gen5bit/selected/bit/frames_p12.json.gz": "a63f27925eea9e05bd3c72d70456b2342e3d114eb0755d88d772489417a2dda9", + "gen5bit/selected/bit/graph_p12.json": "1234a3e3204dd342886786c0c0c76e8ef4b9b7edac3ec456e400b1bcc3c702d6", + "gen5bit/selected/bit/kchron_p12.json": "3f2091a76c3539439d8fa1dfe130a85c71a8329c72359022c8e6b9e5147387df", + "gen5bit/selected/bit/profile_p12.json": "299e6158d8ed8d6d88e00df624f7aae84a7b52209c9171950cd01ef3b749ecae", + "gen5bit/selected/bit/word_p12.json.gz": "fc291f5628bd3d8925a228d7f4c6edfd70ba2b8644d88cdc6055c7e23c9ca303", + "inputs/complex/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "inputs/complex/NOTICE": "9419dd03a2f52cf8bdfc4d18216ce29f263ab583b27f01ced8e420985bcb7c81", + "inputs/complex/gcert1-p11-pr193.json.gz": "15251deb0c11e0504d7b297c9786818888a93f08b92b03c6c122784b70488633", + "inputs/complex/retained/FINITE_BRIDGE.txt": "66d8f4ea8752abd89952d6674a636575a0db16e18b1c16e293f48f64242f0c46", + "inputs/complex/retained/compact-control-layout.tex": "2bc28e50f3eb092195294cafa81213e520f6d42e7935e9905ad8a6199e2a7c87", + "inputs/complex/retained/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "inputs/complex/retained/copied-centers-assembly.tex": "00117892971ae766188ace0af03030c44164fda105e42b70d84f52c3339a7dcb", + "inputs/complex/retained/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "inputs/complex/retained/endpoint-gauge-complex.tex": "dfee33b0281e5551bb6927f757ff0240abade60ae1800f715afd88853ae0191e", + "inputs/complex/retained/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "inputs/complex/retained/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "inputs/complex/source-pins.json": "de0daf6847185d7a6911535e3012c1a91de1e32b5da8204beec26b37523ad569", + "inputs/complex/sources/Work__Bridge__Cert.lean": "5c24746a6330907b9b37d6064095035a58575d64ce793d6d7c9881121fdc3980", + "inputs/complex/sources/Work__Bridge__Net.lean": "cf7d7d330b1bffe2e66712c873e647b13dc32db1ccfc0e0f4cd62ee6caf584f0", + "inputs/complex/sources/Work__Carrier__Live.lean": "6d0649eb62589e66057f044e1e2103fc42f3f57a1498f82a26565bd8eb4026d0", + "inputs/complex/sources/Work__Carrier__Phases.lean": "71dc3dda23dfe510d5d53cbada3a6c540cd1dc2825503fda618a5bd6cfc3e812", + "inputs/complex/sources/Work__Fourier__Main.lean": "2e8e88efd4dcbdf0b1a6e39ce7eea8c5fd5ffee2faf360a8c0c9cba84c0e4ef3", + "inputs/complex/sources/Work__GCert__Chain__Geom.lean": "c302f5834287421f11f3b0da7112fcde876cbc702896f2af4145b2d72ee393a2", + "inputs/complex/sources/Work__GCert__Chain__InvThm.lean": "ade7e7873da75ca63a4b5ce2f562dde9c12bfbb69d87d7ae831039ff790e5adb", + "inputs/complex/sources/Work__GCert__Chain__NetCert.lean": "22ae34809466b4ac2a2c5cdde526f51ff246f5189f7c142b38aa4c0dcffb04a4", + "inputs/complex/sources/Work__GCert__Chain__NetDef.lean": "6e17a68b1e988969f6eb77000028f7ed877e687b8ad3976ec1707fcfe1d2f520", + "inputs/complex/sources/Work__GCert__Chain__NetStage.lean": "c122bc01392a6fdcc0bee918fed81804d3c9b1d3e071016dab65a4ed804ef0b6", + "inputs/complex/sources/Work__GCert__Chain__Phased.lean": "0de429c80231334f1ce92575c1e8ac382ca2d5e7d956767b547639a8941d9a8c", + "inputs/complex/sources/Work__GCert__Chain__WinB.lean": "c33ec3fce09c0971c32ddcbb86d9383ffbe4c6d05cf36f20460005e6547bb845", + "inputs/complex/sources/Work__GCert__Data__B2Gp193Main.lean": "cb61f304da51f1dd0a2ec25bca4b63eb095eeb2863289e1e2bdee7c82beff48b", + "inputs/complex/sources/Work__GCert__Data__Glue.lean": "d5314f2b93a7f0e1c949fb502331825bfc6d9d8762d35f865443e7c95b6c7ef7", + "inputs/complex/sources/Work__GCert__Data__InstB2Gp193.lean": "9587ddb9961f44938032b609307ab91c0b0e757e3991f1ad95480dd50fd4f72b", + "inputs/complex/sources/Work__GCert__Data__P193Cert.lean": "d92ee6889be4753fc99f467bd84039743325123a1165128378b9c906a04f2703", + "inputs/complex/sources/Work__GCert__Data__P193Price.lean": "0299bcd0fe255960eec682eef0f045f7e5cb1e4711af2aab4393526eae2caea3", + "inputs/complex/sources/Work__GCert__Data__P193ScalOK.lean": "479434815822e98f015e335361089c3788d00dc3dd39c2944f75410aa0c158fe", + "inputs/complex/sources/Work__GCert__Data__RateB2Gp193x.lean": "6b40cac1481c931d47b1a092e382d04716ede0e785c492a2f2983e886a257c3f", + "inputs/complex/sources/Work__GCert__Data__Raw.lean": "aba94a004c94dcae7cf3047c88a6da9561555f4ebe8ab92e299e6ce09ee7aa66", + "inputs/complex/sources/Work__GCert__Data__SolutionB2Gp193x.lean": "45c768c9d71a7cc18bd6db74cb036db880d89580ca60557bb4a492280296b169", + "inputs/complex/sources/Work__GFrame__Engine__Adapt.lean": "feec0a3828867968a5c7c2c30b86ed70449abc3c660a60ada67203a75bae2ef7", + "inputs/complex/sources/Work__GFrame__Engine__Letters.lean": "34906dbf5ae16b5174db00b4881a5cc1d2e583b8c8806db6523a5e2f86565f09", + "inputs/complex/sources/Work__GFrame__Engine__Level.lean": "80fb3daa9a45de0ed6da570eb4476b9104734be65d0116f58bcfcbcd67f771d0", + "inputs/complex/sources/tools__gx__ORIGIN.md": "6ba897a9495ddadcf8558b93133fdfaf66fc35ce7fa2c53e2d5667335c315e0b", + "inputs/complex/sources/tools__gx__gxbind.py": "9c9dcfac47f0535bf3aa8ebf7c662cdef0ebda50a9f0a9282b8f3cf34809f835", + "inputs/complex/sources/tools__gx__gxconv.py": "dab7fec9f44c2d368ed334055d7126e202017feb46e41a8d86e2d998720f67c2", + "inputs/complex/sources/tools__gx__gxcore.py": "eb972c06fe8c322db2d9a8d9a7d05596e8f40c4ca8e5f42eb6df3c7361b5d517", + "math_check.py": "48ee2f755871bf06726f039c0cd231a6f65d04b9a7fea0415c6805cdbe91b246", + "moment.py": "9d465c716c6b910ff66e1453e3bf0057608a787b5f5361be93781f42cb3370f7", + "notices/PR210-coordinated-crossover-NOTICE": "9fc5561c0995892dbdde777c713899486920c32d3562392f5f72377a4953bf98", + "notices/PR230-NOTICE": "7dfbad087ee49b74fd5075d517eaa263c5dd3d4fbd4c69bfba34ee1cb55e837f", + "notices/PR230-PROVENANCE.json": "19957e28a8ad26281bfe8bfaf8ae16191be53e729a8870a6154671b3384959d4", + "notices/README.md": "8ef9877ac04d8006ba334ed9f73f1810d07c9d6cb5abc09baa55c872fd0658cc", + "notices/base-bit-PR200-PR202-NOTICE": "c9850418622aea8d1382a230306c940947b5da818f4854b4b272ed60cf239f6c", + "notices/source527-loader-NOTICE.md": "ee632728cc4d89565292d288f8289f483ac794b5d02cc6e42c2b2c43c43ff1d8", + "outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "parity_transform.py": "ccbb276f0f11d4c99816e9f1c95be653818917edc5527d73dedebacf12110890", + "portable_bit.py": "fbe6cc4ba3eba6789218b14b1c436fe1fa1feb76c72fe2686cbf2266a0419ca7", + "portable_complex.py": "797e144c0040d78a4731a6eaa61c0edb9803a08462f885ed014cbca9d9991d82", + "prepare.py": "ff7bd4a9461950f1073c32368cb7c823e5be64c9ab1c7cf77bc95575a8815355", + "prime_check.py": "50c821a0460937d0c43f243a97c6f85ef5923fd44c35316c21757ed1db5ae966", + "prime_witnesses.py": "98cd03bc9582e7bd0ab194c191ea8eea940539e510051443ab9fd3e572a364ab", + "proof/FINITE_BIT_ACCOUNTING.md": "602923520af184670170bf159fde7b4c72e79a72570eddd7746b7c97bc51fc5b", + "proof/INTEGRATED_PROOF.md": "cff22391e71a50bad27a1e832d5c0a2c8b2446df55adb1297c8b1485b3761257", + "proof/PARITY-CONTRACT.md": "a9246be656e31f1a21d5ec714e002f51be0aa07c36e1528066a25b2c7a02db91", + "proof/README.md": "f3f324e9d88b93dfe6d5aa9917bc21bb7cd1beb2e98e1b73f92f8ced9d19dedc", + "proof/copied-centers-lemma.tex": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "proof/primary/03-motifs.tex": "ed76761194988a01af77ead0ea6469cb5dcd29690ab985a0b5a4006b0f2b69bb", + "proof/primary/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "proof/primary/PROVENANCE.md": "dd9054c58aa92c44b0ef5f691ad4dc52b8ead2f20a9843d4399d6c300d616023", + "proof/primary/UPSTREAM-README.md": "8d1ceff898a4e0e681679f91c4def485820be9e99f04e4861f2ce601a364723e", + "proof/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "proof/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "raw_ledger.py": "6b1790d3c547bad6af04463a1c8a378bd8449966de049aea3cfe8e6638a9cf17", + "requirements.txt": "25f9f1fb1988b230147a1d3092d34e09c069eb7a6c6d6df46b3973b9f2d36efc", + "scalar/word.py": "e675d4eb9d90ff0b44279fae0b46f1a8b39f65421cc38454b70a6b75d0e10b42", + "scalar_check.py": "99d97196b0c03334fb95c6e5d0e7bed2c41a1fb904b230d0d7c1eaf75356e1a3", + "verify.py": "44a034ee9e031e5a6799f6e81a602012518b37142c60463e4118b36d7db202f1", + "virtual_check.py": "6645c7959face5e230c39bf413ca5907e62770c9ccc63d7b078da2670995f020" + }, + "schema": "gen5-parity-fused-five-stage-banks-inputs/1" +} diff --git a/research/five-stage-gen5-banks/NOTICE.md b/research/five-stage-gen5-banks/NOTICE.md new file mode 100644 index 0000000000..3a110e116d --- /dev/null +++ b/research/five-stage-gen5-banks/NOTICE.md @@ -0,0 +1,56 @@ +# Attribution and licence + +Apache-2.0 applies. Original headers, licences, notices and AI-assistance disclosures are preserved. The +credits below do not imply review or endorsement. + +## Inherited, unchanged or with rebound constants + +- **Five-stage architecture and finite interface package:** Henry Grant (hcg890), PR234, and Jacob + Sussman's five-stage construction and gcert/1 export. The complete inherited five-stage credits are in + `UPSTREAM-PR234-NOTICE.md`. +- **Package machinery:** eumemic's source527 package, prepared with substantial OpenAI Codex assistance, + with its lineage: Dugongue's PR207/PR216 finite and bank admissions, Rohan Arun's PR211 and sennemmi's + PR230 frame work, and eumemic's PR210. Their notices are retained verbatim in `notices/`. + This covers the scalar program `scalar/word.py` (byte-identical), the physical event emitter, the parity + fusion, the raw-ledger census, the stage-private bank template and checker, the moment, prime and + finite-bill checks, and `verify.py`. In this package they are rebound to the gen5 helper's constants; + the logic is unchanged. +- **Banks:** Evan McKinney's PR197 completed-bank method. Rohan Arun's PR237 published the width-120 + application first. +- **Complex supplier:** Avi Eisenberg (ikeboy)'s PR193 helper, inside Sussman's five-stage certificate. + The original disclosures are in `inputs/complex`. +- **Physical-word classes:** Chafik Boukhalfa (chafreaky)'s PR200 `bit/word.py` and `bit/base_word.py`, + vendored unchanged in `gen5bit/bit`. `gen5bit/NOTICE-PR200` is PR200's own notice. +- **Checker:** eumemic's PR168-v4 `check_paired_cube_bit.py`, vendored unchanged. +- **Paired-cube framework and its developments:** + - icekylinx's PR144: paired-coordinate/shared-core framework and configurable local channels. + - PR161/PR168 (eumemic): annealed modules, nested schedules and the generator. + - James Chang's PR166 and PR162's carrier rule. + +## New in this package + +**The gen5 modules** (on top of #276's gen4 word): `data/pair_module_p12.json` (pair + centre, debt 164) and +`data/qmod_p12.json` (all-but-one, debt 11), annealed against the exact one-instance compile cost with exact +closed-form rank evaluators; the new frozen arcs `data/arcs_p12.json`; and the `--bank-parity` option of the +pair producer. + +**The gen4 bit word** (from #276, retained). This covers: + +- the arc-aware per-cube local design (`local_design()` recipe trees and `data/local_design_p12.json`); +- the centre-sharing pair-module patch in `finish()`. + +**Its physical-layer producers.** `gen5bit/producer/make_physical.py` and `descent.py` are new +implementations of PR200's stated rules. + +**Package integration.** This covers: + +- `prepare.py` and `virtual_check.py`; +- the rewritten `scalar_check.py` controls; +- the rank-21, rank-18 and rank-17 geometry checks; +- the odd-coefficient choice in the `scalar_check.py` controls; +- the gen5 bank patterns and documentation. + +All of this was prepared by DreamingOfClouds with Anthropic Claude assistance. The circuit and module +search was run by Claude agents (simulated annealing, CP-SAT and exact one-instance compiles), and every +reported number was re-run with the exact generator. No exclusive priority is claimed for any inherited +design or theorem interface. diff --git a/research/five-stage-gen5-banks/PR-STATEMENT.md b/research/five-stage-gen5-banks/PR-STATEMENT.md new file mode 100644 index 0000000000..323b9f9ec7 --- /dev/null +++ b/research/five-stage-gen5-banks/PR-STATEMENT.md @@ -0,0 +1,60 @@ +κ = 7.42785663120535e-4 + +# gen5 bit word in the five-stage completed banks + +A conditional finite construction with **κ = 148557132624107/(2·10¹⁷) ≈ 7.42785663120535 × 10⁻⁴**. + +This package is #276's gen4 package with one change: a new bit word, **gen5**. gen5 keeps gen4's arc-aware +per-cube local circuit and replaces its two module circuits. Both new modules were annealed against the +exact one-instance compile cost. + +| Module | gen4 | gen5 | +| --- | --- | --- | +| pair + copied centre | 448 additions, debt 184 | 463 additions, 299 arcs, debt 164 | +| all-but-one | 34 additions, 22 arcs, debt 12 | 32 additions, 21 arcs, debt 11 | + +Every later stage is unchanged: PR234's five-stage layout, the stage-private width-120 completed banks and +the source527 verification chain (eumemic). The bit supplier still binds, 0.55% below the retained complex +supplier. + +| one invocation, m = 120 | gen4 (#276) | gen5 (this package) | +| --- | ---: | ---: | +| virtual auxiliary roles | 17,904 | **17,292** | +| compensated reuse pairs | 1,494 | 1,406 | +| independent dirty registers R | 16,410 | **15,886** | +| independent entrances (ranks) | 2,466 (20, 21) | 2,554 (17, 18, 20, 21) | +| literal stock, 60 replicas | 1,283,035 | 1,247,070 | +| normalized stock / deficit | 256,607 / 52,800 | 249,414 / 52,800 | +| bit coarse saving | 7.23392746398452e-4 | **7.43337804075788e-4** | +| κ | 7.22869827347495e-4 | **7.42785663120535e-4** | + +Run with Python 3.11+ and assertions enabled: + +```sh +python3 -m pip install -r requirements.txt +python3 -B verify.py --output /tmp/gen5-five-stage-verification +``` + +The output directory must be new and outside this immutable package. Verification takes about five +minutes, uses no network and runs no producer. It performs these checks: + +- the PR168-v4 checker on the virtual word, with its five mutation controls; +- PR200's physical-word proof, exactly as PR200 ran it: frames, handoffs, the physical row and all-column + replays, with 4 adverse controls; +- the retained source527 scalar program on all 19,406 formal F₂ columns, both integer decoder signs and + 11 corruptions; +- the physical event emitter, parity fusion and five-stage global lowering; +- exact h=24/m=120 geometry, including one actual entrance basis of each rank 17, 18, 20 and 21; +- exact determinants for 25,802 bases; +- 411 bank charts and all 4,765,800 bank assignments; +- the retained complex supplier, both rational moment engines, the 47 outer inequalities and the finite + bill. + +`gen5bit/producer/regenerate.py` rebuilds the five pinned bit-word files from the generator and the two +physical-layer producers, and checks them byte for byte. This is provenance only, not part of the proof. + +The result is conditional on the retained all-size compiler, common weighted chart, restored rows, +selectors, tape routing, prime supply, precision/recovery, complex symbolic correctness and analytic +reduction. The included finite checks do not replace those hypotheses. See `PROOF.md` for the +verification chain, `BANK-PROOF.md` for the banks, `gen5bit/README.md` for the bit word and `NOTICE.md` +for attribution. diff --git a/research/five-stage-gen5-banks/PROOF.md b/research/five-stage-gen5-banks/PROOF.md new file mode 100644 index 0000000000..342c920aa0 --- /dev/null +++ b/research/five-stage-gen5-banks/PROOF.md @@ -0,0 +1,153 @@ +κ = 7.42785663120535e-4 + +# Source-bound finite verification + +The bit helper is the gen5 paired-cube bit word, a reversible local word in which all inputs and dirty +registers are formal variables. Every later stage is the source527 package's (eumemic). This file states +what each stage checks for gen5 and what changed relative to source527. gen5 differs from #276's gen4 only +in its two module circuits (see `gen5bit/README.md`); every stage below is #276's, with constants rebound. + +## The bit word + +`gen5bit/selected/bit` pins five files: the signed graph, the virtual profile, the physical word, the exact +frames and the partner-pair chronology. + +**Virtual word.** `virtual_check.py` runs eumemic's PR168-v4 package checker, unmodified and vendored in +`gen5bit/references/pr168-v4`. It checks: + +- exact frames (A·Bᵀ = 0, complementary ranks) and the mod-2 decoder with stars and side parts; +- geometry: source lines, side-root common caps, operand nesting and centre star spans; +- role and target chains on node frames, and the partner chronology; +- G-nondegeneracy of every used frame; +- a literal F₂ dirty-scratch replay and the independent ledger recount. + +All five mutation controls are rejected. The profile is R = 17,292, W = 20,812, m = 72, deficit 1,936, +the same deficit as every PR168-derived word. + +**Physical layer.** The same `virtual` stage then runs Chafik Boukhalfa's PR200 classes +(`gen5bit/bit/word.py` and `base_word.py`), also unmodified, exactly as PR200's `bit/prove.py` runs them on +its own word. `prepare.py` builds the verifier context from the same classes. They check: + +- every changed operation frame (1,710) is nondegenerate and contains its node's value span; +- the execution order preserves each role chronology; +- gauges are untouched in phase one, every gauge read precedes its role's first use, and gauge targets equal response supports; +- the 1,406 handoffs are one-to-one between ungauged non-root donors and gauged recipients; +- each donor is dead before its recipient's read, and its last frame lies in the recipient's gauge frame; +- all gate ports are distinct. + +The stage also recomputes the physical row: + +- phase one is exactly the centre closure; +- every addition's actual operands are checked; +- every physical role chain and the actual target chronology are nested; +- the deficit telescopes, at 1,936. + +It executes the physical word on all 19,406 formal columns over F₂ and on the defining integer decoder. +Four adverse controls are rejected: an omitted compensation, a missing partner delivery, a stale recipient +read, and a zero operation frame. `prepare.py` also recomputes the literal adjoint and asserts it equals +PR200's. + +The handoffs follow PR200's rule. A recipient is read immediately before its first operation. The only +recipients used are rank-21 gauges with no strictly larger gauge later on any of their targets, so every +target chain stays nested. The actual chronology is rechecked by the scalar program. + +## Unchanged scalar program and empty selections + +`scalar/word.py` is the source527 scalar program, byte-identical (sha256 e675d4eb…). Its source527 +selections are all empty for gen5: + +- source loans, early and gauge mixes, retimed prefixes; +- aggregation, rank and echelon groups; +- fresh and paired source reads, terminal sinks. + +The program then executes exactly the PR200 physical word: + +1. dirty compensation at D0; +2. V injection and the phase-one gates; +3. the 24 copied-centre scatters; +4. gauge reads at their read times, interleaved with the remaining gates; +5. side roots, then partner mixes and deliveries; +6. cleanup, the inverse gates, and V removal. + +`scalar_check.py` runs it on all 19,406 formal F₂ columns (1,760 sources, 1,760 targets and 15,886 dirty +registers) and in both defining-integer directions with 24-bit packing. + +The 25 source527 mutations exercise selections that gen5 does not have. They are replaced by 11 +corruptions of the actual gen5 context, each of which must make the unchanged program fail: + +- a dropped gauge, dirty or recipient compensation; +- a misrouted gauge response; +- a flipped compensation sign, checked over Z; +- a recipient read before its donor's last write; +- a gauge read after its first use; +- an omitted gate, centre scatter, partner delivery or source injection. + +## Physical events, parity fusion and global lowering + +`code/physical527.py` observes the scalar program and emits the physical frame tags. The emitter is +source527's, unchanged except the register count. The local scalar projection must equal the independent +observer, and every MOVE is checked as an exact frame inclusion. + +`parity_transform.py` deletes the 1,500,000 even-coefficient payload ADDs, which are identities over F₂. +It merges no MOVE chains for gen5, so the paid local histogram is unchanged. The independent +required-use census rebuilds every path from the surviving operations and mathematical endpoints, checks +both reflected inclusions, and matches the instruction histogram. The 574,832 surviving payload additions +and their literal inverse are replayed on every F₂ column, with cancellation-free signed prefix bounds +46,393 (forward) and 2,282,970 (inverse). The proof/PARITY-CONTRACT.md argument applies unchanged. + +`code/global_lowering.py` is PR234's lowering with the register count and the entrance census rebound. It +expands all five stages, the idle and bridge phases, the 2,554 completions and the terminal exchange. It +checks every operand namespace and the paid five-stage histogram: + +- 479,144 calls; +- rank mass 2,746,720; +- deficit 4,400 = 4v − 5ℓ. + +`code/geometry527.py` checks the exact rational h=24/m=120 routes, the eight idle boundary pairs for two +actual ports, and the completion projectors and five disjoint windows. It does so for two actual rank-20 +entrance bases and one actual basis of each of ranks 21, 18 and 17. + +## Primes, banks, moments and finite bill + +**Primes.** `prime_check.py` recomputes the cleared-Gram determinant of every consumed basis: 25,802 +distinct bases, at most 118 bits. Only 2, 3, 5 and 7 are stripped, every residual is below 2⁸⁰, and the +retained prime range q > 2⁸⁰ is unchanged. + +**Banks.** The independent entrances are 2,182 of rank 20, 354 of rank 21, 16 of rank 18 and 2 of rank 17, +with 411 distinct bases. Their residual families have widths 4, 3, 6 and 7. `BANK-PROOF.md` gives the stage-private banks: + +- (7¹² 4⁹) × 10 banks; +- (4³⁰) × 4,361 banks; +- (3⁴⁰) × 531 banks; +- (6²⁰) × 48 banks; +- (24⁵) × 159,984 banks. + +`bank_check.py` rebuilds the 411 charts (at most 423 factors) and enumerates all 4,765,800 +role/replica/stage assignments, checking the callable route map and both endpoint directions. It removes +exactly the 2,554 rank-5a exterior completions. + +**Moments.** Literal stock is 1,247,070. The normalized profile has m = 120, W = 249,414, rank mass +29,876,880, deficit 52,800 and largest child 50. Two independent rational moment engines, including the +complete 10⁻¹⁶ bad-class fallback, give the bit coarse saving 185834451018947/(2.5·10¹⁷). The adjacent +10⁻¹⁸ grid point is rejected. + +**Assembly.** The retained complex supplier (PR234/PR193 at m = 110, coarse 747454944651775/10¹⁸) is +rerun. The bit supplier binds. Three completed ordinary-leaf levels feed the unchanged balanced outer +assembly: all 47 strict inequalities and seven margins are positive, and the adjacent final grid point +fails. + +**Finite bill.** `finite_check.py` pays every PR234 primitive and router allowance on the literal 60 +replicas and stock, and adds all 757,938,545,400 bank selector calls. + +## Scope + +The proof boundary is unchanged and conditional. The following are inherited interfaces: + +- the all-size weighted compiler and common ancestor charts; +- restored rows and completed ordinary leaves; +- selectors, exact-tape routing and prime supply; +- precision/recovery and retained complex symbolic correctness; +- analytic transfer. + +These checks establish the stated finite construction under those interfaces. They do not rebuild Lean or +execute a multiplier at all input sizes. diff --git a/research/five-stage-gen5-banks/README.md b/research/five-stage-gen5-banks/README.md new file mode 100644 index 0000000000..323b9f9ec7 --- /dev/null +++ b/research/five-stage-gen5-banks/README.md @@ -0,0 +1,60 @@ +κ = 7.42785663120535e-4 + +# gen5 bit word in the five-stage completed banks + +A conditional finite construction with **κ = 148557132624107/(2·10¹⁷) ≈ 7.42785663120535 × 10⁻⁴**. + +This package is #276's gen4 package with one change: a new bit word, **gen5**. gen5 keeps gen4's arc-aware +per-cube local circuit and replaces its two module circuits. Both new modules were annealed against the +exact one-instance compile cost. + +| Module | gen4 | gen5 | +| --- | --- | --- | +| pair + copied centre | 448 additions, debt 184 | 463 additions, 299 arcs, debt 164 | +| all-but-one | 34 additions, 22 arcs, debt 12 | 32 additions, 21 arcs, debt 11 | + +Every later stage is unchanged: PR234's five-stage layout, the stage-private width-120 completed banks and +the source527 verification chain (eumemic). The bit supplier still binds, 0.55% below the retained complex +supplier. + +| one invocation, m = 120 | gen4 (#276) | gen5 (this package) | +| --- | ---: | ---: | +| virtual auxiliary roles | 17,904 | **17,292** | +| compensated reuse pairs | 1,494 | 1,406 | +| independent dirty registers R | 16,410 | **15,886** | +| independent entrances (ranks) | 2,466 (20, 21) | 2,554 (17, 18, 20, 21) | +| literal stock, 60 replicas | 1,283,035 | 1,247,070 | +| normalized stock / deficit | 256,607 / 52,800 | 249,414 / 52,800 | +| bit coarse saving | 7.23392746398452e-4 | **7.43337804075788e-4** | +| κ | 7.22869827347495e-4 | **7.42785663120535e-4** | + +Run with Python 3.11+ and assertions enabled: + +```sh +python3 -m pip install -r requirements.txt +python3 -B verify.py --output /tmp/gen5-five-stage-verification +``` + +The output directory must be new and outside this immutable package. Verification takes about five +minutes, uses no network and runs no producer. It performs these checks: + +- the PR168-v4 checker on the virtual word, with its five mutation controls; +- PR200's physical-word proof, exactly as PR200 ran it: frames, handoffs, the physical row and all-column + replays, with 4 adverse controls; +- the retained source527 scalar program on all 19,406 formal F₂ columns, both integer decoder signs and + 11 corruptions; +- the physical event emitter, parity fusion and five-stage global lowering; +- exact h=24/m=120 geometry, including one actual entrance basis of each rank 17, 18, 20 and 21; +- exact determinants for 25,802 bases; +- 411 bank charts and all 4,765,800 bank assignments; +- the retained complex supplier, both rational moment engines, the 47 outer inequalities and the finite + bill. + +`gen5bit/producer/regenerate.py` rebuilds the five pinned bit-word files from the generator and the two +physical-layer producers, and checks them byte for byte. This is provenance only, not part of the proof. + +The result is conditional on the retained all-size compiler, common weighted chart, restored rows, +selectors, tape routing, prime supply, precision/recovery, complex symbolic correctness and analytic +reduction. The included finite checks do not replace those hypotheses. See `PROOF.md` for the +verification chain, `BANK-PROOF.md` for the banks, `gen5bit/README.md` for the bit word and `NOTICE.md` +for attribution. diff --git a/research/five-stage-gen5-banks/UPSTREAM-PR234-NOTICE.md b/research/five-stage-gen5-banks/UPSTREAM-PR234-NOTICE.md new file mode 100644 index 0000000000..5f8fbb25c1 --- /dev/null +++ b/research/five-stage-gen5-banks/UPSTREAM-PR234-NOTICE.md @@ -0,0 +1,13 @@ +# Attribution and licence + +This contribution uses Apache-2.0. Original source headers, licences and notices are preserved. These credits do not imply review or endorsement by the named contributors or OpenAI. + +- Jacob Sussman: five-stage complex geometry and published gcert/1 export in wht-power-saving-lean at f010392c923279e3dd59ef3aa5fedad23affc5fd. Original Claude assistance disclosure retained in inputs/complex/NOTICE. +- Avi Eisenberg / ikeboy: retained PR193 source-assisted complex helper and donor selection at 187e1010ac8b259af8e9b5166f68b64bc27b4b47. +- eumemic: current PR210 frames, gauges, source borrowing and retimed bit helper at df95878d11190518e45ef9717c9ee05011f88ace. +- Chafik Boukhalfa / chafreaky: PR200 physical bit construction carried by PR202 at 8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d. +- Rohan Arun, Dugongue, evmckinney9, icekylinx, James Chang, Douglas Colkitt, OpenAI and earlier contributors retain the attribution and original assistance disclosures in the supplied source notices. The exact outer assembly also credits Zhihao Chen and the RaD / hipotures balanced reduction in its original header. + +The paired-cube helper design predates Sussman’s certificate export. The new contribution here is the explicit source-bound five-stage composition, adapters, paid accounting and reproducible finite verification. No exclusive priority is claimed for the inherited designs or theorem interfaces. + +Assisted with ChatGPT. diff --git a/research/five-stage-gen5-banks/UPSTREAM-PR234-PROOF.md b/research/five-stage-gen5-banks/UPSTREAM-PR234-PROOF.md new file mode 100644 index 0000000000..dbd8806967 --- /dev/null +++ b/research/five-stage-gen5-banks/UPSTREAM-PR234-PROOF.md @@ -0,0 +1,29 @@ +# Five-stage finite composition and retained hypotheses + +The expected conditional saving is κ = 703701743496697 / 10^18. The fresh verifier establishes the finite construction and exact arithmetic under the inherited source and all-size interfaces below. + +## Bit construction + +The pinned source471 helper is checked on all 20,163 independent F2 source, target and dirty columns. Its physical realization is the exact input/output frame telescope, with all source loans, donor/recipient identifications, compensated reads, terminal substitutions and cleanup retained. Copied centers are complete temporary streams; their reverse implementation copies the original anew, transforms and scatters that copy, then erases it. It does not reverse an erasure. + +The five phase-major invocations use the explicitly routed source owners X1, Y1, X1, Y2 and X2. Each helper's five separated residuals occupy disjoint windows. One split rank-5a exterior correction completes each genuine independent entrance of rank a. All 2,279 corrections remain paid, and source-owned gauges stay within the visible-data paths. Actual rational matrix checks establish bridge equality, nested idle changes and terminal exchanges. Cover expansion has a barrier after each phase, across every class. + +The fresh program has m=120, W=23,683, 495,304 children, rank mass 2,837,560 and deficit 4,400. All 120 rank-22 copied-center calls are included. Exact cleared-Gram determinants and factor witnesses are recomputed for every consumed basis. Fivefold direct sums introduce no new excluded primes. The retained weighted q-local compiler, unit-pivot fallback, prime-supply and complete-stream tape proofs remain hypotheses. + +The proper child ratio 5/6 requires halving degree four. The one-level weighted recurrence is retained; its histogram is not multiplied by four. The finite accounting rederives route factors, scalar work, internal row stock, strict moment/linear gaps and explicit finite cutoff expressions. Unknown constants of inherited primitive implementations remain quantified constants, not invented measured costs. See proof/FINITE_BIT_ACCOUNTING.md and the included original bit/row/copied-center source texts. + +## Complex construction + +The published gcert/1 baseline is pinned to Sussman's f010392 revision and the PR193 paired-cube helper. Its live-label walk, scalar programs, copied-center lifetimes, final climbs before cleanup, exact symbolic splice and finite guard are regenerated. Exact complex frame identities retain their phase representatives. Physical work stock 24,127 is separately charged; the live recursion denominator remains 14,692. + +The pinned scalar identities hAi, hBi, hx, hy and hid, the Lab.inv dirty-lifting theorem and five-window geometry/NetCert theorems are inherited source proofs. The command does not rebuild their Lean proof chain or claim a fresh all-column complex scalar proof. General Clifford synthesis, charged complete-stream movement, common-grid precision and restored-row proofs remain stated analytic dependencies. Their consumed declarations and sources are hash-pinned under inputs/complex/. + +## Arithmetic and outer reduction + +Both rational moments are freshly enclosed. Three finite ordinary-leaf levels start from the retained completed ordinary saving 384599/10^10; the unattained coarse limiting saving is not used as an ordinary leaf. Exact outer assembly checks all 47 strict inequalities and seven margins and rejects the next 10^-18 κ grid point. Precision/recovery, prime supply, completed ordinary leaves and the fixed-tape all-size reduction remain hypotheses. + +proof/INTEGRATED_PROOF.md preserves the detailed original composition argument. Its development filenames identify the original evidence; V8's executable dependency closure is exclusively MANIFEST.json and the fresh calls in verify.py. Development receipts and their historical source trees are not runtime inputs. + +No claim is made of unconditional all-size formalization, global optimality or measured multiplier performance. Original lineage and assistance disclosures are preserved in NOTICE.md and the supplied source notices. + +Assisted with ChatGPT. diff --git a/research/five-stage-gen5-banks/bank_check.py b/research/five-stage-gen5-banks/bank_check.py new file mode 100644 index 0000000000..79e3e8493a --- /dev/null +++ b/research/five-stage-gen5-banks/bank_check.py @@ -0,0 +1,254 @@ +"""Fresh context-bound stage-private120-coordinate completed bank admission. + +No saved chart, receipt, physical census or old source tree is consumed. +The fraction-free inverse routine derives from the retained PR197/PR200 bank +checker. Inherited attribution/notices apply. Apache-2.0. +Prepared with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from math import gcd +from pathlib import Path +import hashlib,json,struct,time +from bank_template import BankPlan + +assert __debug__, 'Do not run bank admission under -O.' +HERE=Path(__file__).resolve().parent + +def inverse_integer(a): + """Fraction-free Gauss-Jordan, returning C,d with aC=Ca=dI.""" + n=len(a);m=[list(row)+[int(i==j)for j in range(n)]for i,row in enumerate(a)] + previous=1;factors=[] + for k in range(n): + pivot=next((i for i in range(k,n)if m[i][k]),None) + assert pivot is not None,'singular actual bank chart' + m[k],m[pivot]=m[pivot],m[k] + if pivot!=k:factors.append(('swap',k,pivot,1,1)) + p=m[k][k] + if p!=previous: + ratio=Q(previous,p);factors.append(('scale',k,k,ratio.numerator,ratio.denominator)) + for i in range(n): + if i==k:continue + u=m[i][k] + if u: + ratio=Q(-u,previous);factors.append(('add',i,k,ratio.numerator,ratio.denominator)) + for j in range(2*n): + if j==k:continue + value=p*m[i][j]-u*m[k][j];assert value%previous==0;m[i][j]=value//previous + m[i][k]=0 + previous=p + d=m[0][0];assert d and all(m[i][j]==d*int(i==j)for i in range(n)for j in range(n)) + c=[row[n:]for row in m];common=abs(d) + for row in c: + for x in row:common=gcd(common,x) + d//=common;c=[[x//common for x in row]for row in c] + if d<0:d=-d;c=[[-x for x in row]for row in c] + return c,d,factors + +def census(context): + W,C,roles=context['W'],context['C'],context['regs'] + assert len(roles)==len(set(roles))==15886 and roles==sorted(roles) + assert set(roles)==set(W.phys.values())-set(context['borrow'])-context['removed'] + assert not(set(roles)&set(context['borrow'])) + gauge_frames={role:W.gauge[role]['frame']for role in roles if role in W.gauge} + assert Counter(C.dimf[f]for f in gauge_frames.values())=={20:2182,21:354,18:16,17:2} + families={} + for role in roles: + rank=24-C.dimf[gauge_frames[role]]if role in gauge_frames else 24 + families.setdefault(rank,[]).append(role) + assert {r:len(xs)for r,xs in families.items()}=={3:354,4:2182,6:16,7:2,24:13332} + return families,gauge_frames + +class BankLowerer: + """Final full-address lowering of the already checked logical IR. + + Scalar/projection/geometry fields are retained byte-for-byte; only stream + operands change to the proven bank namespaces. Completion discharge is + checked separately by run(), and no completion opcode is emitted. + """ + def __init__(self,context,lower): + families,gauges=census(context) + self.plan=BankPlan(families,gauges,context['regs']);self.lower=lower + def iter_stage(self,stage,replica): + for row in self.lower.iter_stage(stage):yield self.plan.map_stage_row(stage,replica,row) + def iter_idle(self,which,replica): + for row in self.lower.iter_idle(which):yield self.plan.map_boundary_row(replica,row) + def iter_bridges(self,which,replica): + for row in self.lower.iter_bridges(which):yield self.plan.map_boundary_row(replica,row) + def iter_exchanges(self,replica): + for row in self.lower.iter_exchanges():yield self.plan.map_boundary_row(replica,row) + def phases(self): + """Each iterator is expanded over all cover classes before next phase.""" + for stage in range(5): + for replica in range(60): + yield('helper',stage,replica,lambda s=stage,r=replica:self.iter_stage(s,r)) + if stage in(1,2,4): + which={1:0,2:1,4:2}[stage] + for replica in range(60): + yield('idle',which,replica,lambda i=which,r=replica:self.iter_idle(i,r)) + yield('bridge',which,replica,lambda i=which,r=replica:self.iter_bridges(i,r)) + for replica in range(60):yield('terminal_exchange',0,replica,lambda r=replica:self.iter_exchanges(r)) + +def bind(context,lower):return BankLowerer(context,lower) + +def run(context,global_result,lower,progress=lambda text:None): + begun=time.monotonic();W,C=context['W'],context['C'] + api_pin=hashlib.sha256((HERE/'bank_template.py').read_bytes()).hexdigest() + families,gauge_frames=census(context);bound=bind(context,lower);plan=bound.plan + assert lower.W is W and lower.C is C + # Derive all actual chart bases and exact inverse/factor programs afresh. + charts=[];maxops=maxnum=maxden=0 + for frame,count in sorted(Counter(gauge_frames.values()).items()): + residual=[] + for a in C.A[frame]: + row=[15*x-sum(a)for x in a];d=gcd(*row);assert d;residual.append([x//d for x in row]) + source=C.B[frame];rank=len(residual) + assert rank+len(source)==24 and len(source)==C.dimf[frame] + assert all(9*sum(x*y for x,y in zip(a,b))-sum(a)*sum(b)==0 for a in residual for b in source) + B=list(map(list,zip(*(residual+list(source)))));A,d,ops=inverse_integer(B) + for L,R in((A,B),(B,A)): + assert all(sum(x*y for x,y in zip(row,col))==d*int(i==j)for i,row in enumerate(L)for j,col in enumerate(zip(*R))) + P=[[sum(B[i][k]*A[k][j]for k in range(rank))for j in range(24)]for i in range(24)] + assert sum(P[i][i]for i in range(24))==d*rank + assert all(sum(P[i][k]*B[k][j]for k in range(24))==(d*B[i][j]if j=4*self.v:return 2*self.v+family-4*self.v + bank,port=divmod(family,self.v) + if bank==self.active[stage][0]:return port + assert bank==self.active[stage][1], 'stage references an inactive data bank' + return self.v+port + + def map_stage_row(self, stage, replica, row, cover='d'): + """Lower an unchanged logical8-field MOVE/ADD/COPY/ERASE record. + + All mathematical fields remain unchanged. The two operand slots now + contain exact (family,route) keys when they denote streams; frame IDs + in MOVE's old/new slots are not mistaken for stream operands. + """ + op,a,b,c,f,z,s,rev=row + assert op in(0,1,2,3) and s==stage and rev==int(stage in(1,3)) + def address(family): + return self.local_address(stage,replica,self.local_from_logical_family(stage,family),cover) + physical_a=address(a) + physical_b=address(b) if op in(1,2) else b + if op in(1,2):assert physical_a!=physical_b + return (op,physical_a,physical_b,c,f,z,s,rev) + + def map_boundary_row(self, replica, row, cover='d'): + """Lower an IDLE/BRIDGE/EXCHANGE with its existing exact projector. + + Boundary projectors already include the checked data-route conjugacy; + their physical class is d. Independent completion rows must be + discharged explicitly by the bank endpoint verifier, never skipped + implicitly by this address mapper. + """ + op,a,b,c,f,z,s,rev=row + assert op in(4,5,7), 'only proved bank completion may discharge opcode6' + def address(family): + assert 0<=family<4*self.v + bank,port=divmod(family,self.v) + return self.data_family(replica,bank,port),('class',cover) + physical_a=address(a) + physical_b=address(b) if op in(5,7) else b + if op in(5,7):assert physical_a!=physical_b + return (op,physical_a,physical_b,c,f,z,s,rev) + + def phase_schedule(self): + """Phase-major schedule; every cover class is completed per replica. + + Each emitted stage phase means: for the indicated replica, iterate + every cover class and execute the entire local scalar telescope. + Boundary phases occur after all60 replicas of that stage finish. + """ + for stage in range(self.stages): + for replica in range(self.replicas): + yield ('stage',stage,replica,'all_cover_classes') + if stage in (1,2,4): + for replica in range(self.replicas): + yield ('idle',stage,replica,'all_cover_classes') + yield ('bridge',stage,replica,'all_cover_classes') + for replica in range(self.replicas): + yield ('terminal_exchange',replica,'all_cover_classes') diff --git a/research/five-stage-gen5-banks/base_two_moment.py b/research/five-stage-gen5-banks/base_two_moment.py new file mode 100644 index 0000000000..14a90fa0e7 --- /dev/null +++ b/research/five-stage-gen5-banks/base_two_moment.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Maintainer arithmetic cross-check of the pinned PR39 certificate. + +Uses no producer/checker imports. Counts are inputs, not proved by this script. +80-term rational logarithms and 12-term exponentials independently enclose +the two moments. The accompanying written review addresses their realization. +""" +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +GRID = 10**30 + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def log_unit(x): + require(1 <= x <= 2, "logarithm range") + z = (x-1)/(x+1) + lo = 2*sum((z**(2*j+1)/(2*j+1) for j in range(80)), Q(0)) + return lo, lo+2*z**161/(161*(1-z*z)) + + +def log_bounds(x): + k = 0 + while x > 2: + x /= 2 + k += 1 + lo, hi = log_unit(x) + l2, u2 = log_unit(Q(2)) + lo, hi = lo+k*l2, hi+k*u2 + # Outward rational rounding keeps later certificates compact. + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + + +def exp_bounds(x): + require(0 <= x < 1, "exponential range") + term = total = Q(1) + for j in range(1, 13): + term *= x/j + total += term + tail = term*x/13/(1-x/14) + return total, total+tail + + +def moment(m, W, entries, saving): + lo = hi = Q(0) + for t, count in entries: + t, count = int(t), int(count) + require(0 < t < m and count > 0, "improper child") + l, u = log_bounds(Q(m, t)) + lower = exp_bounds(saving*l)[0] + upper = exp_bounds(saving*u)[1] + lo += Q(t*count, m*W)*lower + hi += Q(t*count, m*W)*upper + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + diff --git a/research/five-stage-gen5-banks/code/complex_basis.py b/research/five-stage-gen5-banks/code/complex_basis.py new file mode 100644 index 0000000000..8c400798a5 --- /dev/null +++ b/research/five-stage-gen5-banks/code/complex_basis.py @@ -0,0 +1,35 @@ +"""Portable pure functions extracted from the reviewed complex checks; no historical receipt readers.""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +Q=Fraction +from hashlib import sha256 +from pathlib import Path +from math import prod +import gzip,json,sys + +def need(b, why): + if not b: raise ValueError(why) + +def gl_count_test(): + # Exhaustively test a literal binary Gaussian-elimination implementation + # through m=4. Row swaps cost three selected-bit additions. + out=[] + for m in range(1,5): + good=mx=0 + for word in range(1<<(m*m)): + rows=[(word>>(m*i))&((1<>k&1),None) + if p is None: break + if p!=k: rows[p],rows[k]=rows[k],rows[p];ops+=3 + for i in range(m): + if i!=k and rows[i]>>k&1: rows[i]^=rows[k];ops+=1 + else: + need(rows==[1<0, f"{where}: coefficient shape") + q=Fraction(a,b) + odd=q.denominator + while odd%2==0: + odd//=2 + need(odd in (1,3), f"{where}: literal coefficient outside dyadic/divisor-three grid") + return q + +def replay_label_counts(c): + """Full finite LABEL walk only. Never multiplies the 12,052-square scalar map.""" + need(c.get("format")=="gcert/1", "format") + need(all(c.get(k)==v for k,v in BASE.items()), "baseline parameter/count mismatch") + h,v,R=c["h"],c["v"],c["R"]; n=2*v+R + need(c.get("ext")==[], "baseline has no exterior-gauged helper inputs") + frames=c["frames"]; dim=list(map(len,frames)) + need(len(frames)==18248, "baseline frame-table count") + need(frames[0]==[] and frames[1]==[1<piv[i+1] for i in range(len(piv)-1)), "frame pivot order") + need(all(not(b>>p&1) for i,b in enumerate(f) for j,p in enumerate(piv) if i!=j), + "frame is not reduced echelon") + ports=c["ports"] + need(len(ports)==v==len(set(ports)), "port count/uniqueness") + need(all(type(p) is int and 0=4 and g[0] in ("out","in"), where+": gate shape") + tag,f,pivot,terms=g[:4] + need(len(g)==(5 if tag=="out" else 4), where+": gate arity") + need(type(f) is int and 0<=f{tr}"]+=1 + totals[phase]["scalar_additions"]+=1 + if sr==tr=="y": + ybracket[(source,target)]+=q;ypiv.add(source);ytarget.add(target) + for r in regs: + climb(r,f,phase) + if phase=="A": + cut=cur.copy() + need(all(cur[v+t]==0 for t in range(v)), "scatter: Y role moved too early") + for k,r,f in c["ret"]: + need(type(r) is int and 2*v<=r>k&1 else c["scat"]["outside"]),"scatter")) + for p in ports for k in range(22)) + return { + "frame_count":len(frames),"tested_distinct_nested_pairs":len(pairs), + "live_registers_per_invocation":n,"temporary_centers":22, + "ranked_live_transitions":transitions, + "phase_stats":totals,"role_histograms":measured, + "phase_histograms":{p:hist(x) for p,x in by_phase.items()}, + "invocation_histogram":hist(combined),"invocation_calls":sum(combined.values()), + "invocation_rank_mass":mass,"retained_centers":c["ret"], + "phase_state_sha256":{"start":digest(start),"after_A":digest(cut), + "after_B":digest(before_final),"final":digest(final)}, + "literal_gate_coefficients":dict(sorted(literal.items())), + "scalar_role_directions":dict(sorted(kind.items())), + "scatter_coefficients":dict(sorted(scatter.items())), + "scatter_additions":sum(scatter.values()),"Cc_copy_additions":22, + "two_hosts_metadata_count":len(c["two_hosts"]), + "two_hosts_note":"Metadata only; not an independent allocator or host-use proof.", + "Y_bracket_pairs":len(ybracket), + "literal_inverse":"Each nonself additive shear inverts by negating its coefficient; inverse phase reverses order; inverse transpose keeps chronological order and swaps source/target with negation.", + "limits":["No scalar all-column replay","No old-response or cleanup matrix formed", + "No generated Lean data comparison or kernel build","No physical stream compiler"] + } + +def scalar_word(ops): + matrix=[[int(i==j) for j in range(4)] for i in range(4)] + for target,source,q in ops: + matrix[target]=[a+q*b for a,b in zip(matrix[target],matrix[source])] + return matrix diff --git a/research/five-stage-gen5-banks/code/complex_scalars.py b/research/five-stage-gen5-banks/code/complex_scalars.py new file mode 100644 index 0000000000..771057b567 --- /dev/null +++ b/research/five-stage-gen5-banks/code/complex_scalars.py @@ -0,0 +1,216 @@ +"""Portable pure functions extracted from the reviewed complex checks; no historical receipt readers.""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +Q=Fraction +from hashlib import sha256 +from pathlib import Path +from math import prod +import gzip,json,sys + +V,R,H=1320,9412,22 +def need(x,msg): + if not x:raise ValueError(msg) + +def kind(r):return "X" if r>k&1 else c["scat"]["outside"])) + yield add(live(V+t),tmp(r),q) + yield from part(B) + +def old_word(orientation,K): + if orientation=="forward": + yield from (copy(("T",q),live(2*V+q)) for q in range(R)) + for e in K: + op,t,s,a,b=e + yield add(t,s,Q(-a if t[0]=="L" else a,b)) + else: + yield from (clear(("T",q)) for q in range(R)) + for op,t,s,a,b in reversed(K): + yield add(s,t,Q(a,b)) + yield from (add(live(2*V+q),("T",q),Q(1)) for q in range(R)) + yield from (clear(("T",q)) for q in range(R)) + +def cleanup(orientation,AB): + for t,s,q in reversed(AB): + if kind(t)=="Y":continue + if orientation=="forward":yield add(live(t),live(s),-q) + else:yield add(live(s),live(t),q) + +def main_scalar(orientation,A,B,c): + def phase(gs): + for t,s,q in gs: + if orientation=="forward":yield add(live(t),live(s),q) + else:yield add(live(s),live(t),-q) + yield from phase(A) + # Every center is a complete temporary stream and one rank20 child, + # initialized/read/discarded before the next center uses the work stock. + for k,r,_ in c["ret"]: + yield clear(center(k)) + if orientation=="forward":yield add(center(k),live(r),Q(1)) + for t,p in enumerate(c["ports"]): + q=Q(*(c["scat"]["inside"] if p>>k&1 else c["scat"]["outside"])) + if orientation=="backward":yield add(center(k),live(V+t),q) + yield ("recursive_center",k,20) + if orientation=="forward": + for t,p in enumerate(c["ports"]): + q=Q(*(c["scat"]["inside"] if p>>k&1 else c["scat"]["outside"])) + yield add(live(V+t),center(k),q) + else:yield add(live(r),center(k),Q(-1)) + yield clear(center(k)) + yield from phase(B) + +def inv_schedule(orientation,A,B,c): + K=list(old_positive(A,B,c)) + yield from ((p,e) for p,es in [ + ("old_response",old_word(orientation,K)), + ("main",main_scalar(orientation,A,B,c)), + ("cleanup",cleanup(orientation,A+B))] for e in es) + +def coeff_steps(q): + """Non-destructive coefficient expansion using one complete work stream. + Copy source, double/halve/divide by3 as needed, add/subtract, clear. + Counts Gaussian operations; multiply by2 for real/imag component primitives.""" + a,b=abs(q.numerator),q.denominator + need(a in (1,2) and b in (1,2,3,6),"unsupported new coefficient") + return 3+int(a==2)+int(b%2==0)+int(b%3==0) + +def bill(schedule): + phases={p:Counter() for p in ("old_response","main","cleanup")} + coeffs={p:Counter() for p in phases} + tape=sha256() + for p,e in schedule: + tape.update((json.dumps((p,e),separators=(",",":"))+"\n").encode()) + phases[p]["all_macros"]+=1 + if e[0]=="recursive_center": + phases[p]["recursive_centers"]+=1 + phases[p]["recursive_rank_mass"]+=e[2] + continue + phases[p]["scalar_macros"]+=1 + phases[p][e[0]]+=1 + if e[0]=="add": + q=Q(e[3],e[4]);coeffs[p][str(q)]+=1 + phases[p]["Gaussian_primitive_steps"]+=coeff_steps(q) + phases[p]["scalar_log2_magnitude_charge"]+=1+int(abs(q)==2) + phases[p]["halving_exposure"]+=int(q.denominator%2==0) + phases[p]["divisor3_exposure"]+=int(q.denominator%3==0) + else:phases[p]["Gaussian_primitive_steps"]+=1 + for p in phases:phases[p]["real_component_primitive_steps"]=2*phases[p]["Gaussian_primitive_steps"] + total=sum((Counter({k:v for k,v in x.items() if k not in ["recursive_rank_mass"]}) for x in phases.values()),Counter()) + return {"phases":{p:dict(x) for p,x in phases.items()},"coefficient_histograms":{p:dict(x) for p,x in coeffs.items()}, + "totals":dict(total),"schedule_sha256":tape.hexdigest(), + "other_main_recursive_calls":"70147 existing live-label transitions, unchanged; not scalar macros"} + +def mm(A,B):return [[sum((x*y for x,y in zip(row,col)),Q(0)) for col in zip(*B)] for row in A] + +def lifecycle(schedule): + """Verify that new scalar-only work stock never survives into a child.""" + initialized=set();dirty=set();active_centers=set();seen_main=False;children=0 + for phase,e in schedule: + if phase=="main" and not seen_main: + need(not dirty,"old-response tableau survives into recursive main phase") + seen_main=True + need(e[0] in ("add","copy","clear","recursive_center"),"unknown or unpaid recursive operation") + if e[0]=="recursive_center": + k=e[1] + need(type(k) is int and 0<=k<22 and e[2]==20,"new temporary entered uncharged child") + need(phase=="main" and not dirty,"old-response temporary used during child") + need(active_centers<=set([k]),"other center was not discarded before next child") + children+=1 + continue + target=e[1] + source=e[2] if e[0] in ("add","copy") else None + if source and source[0]=="T":need(source[1] in initialized,"uninitialized temporary read") + if target[0]=="T": + need(phase=="old_response","scalar-only tableau touched after recursive phase begins") + initialized.add(target[1]) + if e[0]=="clear":dirty.discard(target[1]) + else:dirty.add(target[1]) + if target[0]=="C": + if e[0]=="clear":active_centers.discard(target[1]) + else:active_centers.add(target[1]) + if e[0]=="add": + # Coefficient expansion is deliberately local: copy into W, + # optionally double/halve/divide3, accumulate, and clear W. + expanded=["copy_work"]+["scale"]*(coeff_steps(Q(e[3],e[4]))-3)+["accumulate","clear_work"] + need(expanded[-1]=="clear_work","coefficient work survived scalar macro") + need(not dirty and not active_centers,"temporary stock not erased at invocation end") + need(children==22,"center child count changed") + return {"tableau_cleared_before_entire_main_phase":True,"tableau_absent_from_all_children":True, + "coefficient_work_cleared_per_add":True,"center_children":children, + "new_recursive_children":0,"moment_live_width":14692, + "new_work_stock_only":9413,"complete_stream_fraction":"1/(14692*|Orth(110,2)|)"} + +def ident(n):return [[Q(int(i==j)) for j in range(n)] for i in range(n)] + +def matrix(n,gs): + a=ident(n) + for t,s,q in gs:a[t]=[x+q*y for x,y in zip(a[t],a[s])] + return a + +def toy_checks(): + # 2 X, 3 S, 2 Y. Explicit nontrivial X mixing is undone; helper map + # and K are otherwise arbitrary. Exact Fraction checks cover every column + # of THIS TINY TEMPLATE, not of the published 12052-register source. + n=7;X={0,1};S={2,3,4};Y={5,6} + gs=[(2,0,Q(1)),(3,2,Q(2)),(5,3,Q(-1,6)),(0,1,Q(1,2)), + (4,0,Q(2)),(2,4,Q(1,2)),(6,2,Q(1,3)),(0,1,Q(-1,2)), + (3,1,Q(-1)),(5,4,Q(1)),(6,0,Q(1))] + M=matrix(n,gs) + need(all(M[i]==ident(n)[i] for i in X),"toy source rows not restored") + Ugs=[e for e in gs if e[0] not in Y] + U=matrix(n,Ugs) + Uinv=matrix(n,[(t,s,-q) for t,s,q in reversed(Ugs)]) + need(mm(Uinv,U)==ident(n),"restricted inverse identity") + Mi=matrix(n,[(t,s,-q) for t,s,q in reversed(gs)]) + g8=[Mi[i] if i in S else ident(n)[i] for i in range(n)] + h8=[M[i] if i in S else ident(n)[i] for i in range(n)] + need(g8==Uinv and h8==U,"cleanup projection identities") + Ut=matrix(n,[(s,t,q) for t,s,q in reversed(Ugs)]) + need(Ut==[list(x) for x in zip(*U)],"backward cleanup transpose") + Kgs=[e for e in gs if e[1] not in X] + Kmat=matrix(n,Kgs) + need(all(Kmat[i][j]==M[i][j] for i in Y for j in S),"zero-source old response") + Kt=matrix(n,[(s,t,q) for t,s,q in reversed(Kgs)]) + need(all(Kt[i][j]==M[j][i] for i in S for j in Y),"old response adjoint") + bad=matrix(n,[(t,s,q) for t,s,q in reversed(Ugs)]) + need(bad!=g8,"wrong inverse sign must fail") + bad_order=matrix(n,[(s,t,q) for t,s,q in Ugs]) + need(bad_order!=Ut,"unreversed transpose must fail") + return {"tiny_exact_template_columns_checked":7,"checks_passed":7, + "wrong_inverse_sign_rejected":True,"unreversed_transpose_rejected":True, + "published_full_scalar_replay":False} diff --git a/research/five-stage-gen5-banks/code/complex_splice.py b/research/five-stage-gen5-banks/code/complex_splice.py new file mode 100644 index 0000000000..11373d1d57 --- /dev/null +++ b/research/five-stage-gen5-banks/code/complex_splice.py @@ -0,0 +1,277 @@ +"""Portable pure functions extracted from the reviewed complex checks; no historical receipt readers.""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +Q=Fraction +from hashlib import sha256 +from pathlib import Path +from math import prod +import gzip,json,sys + +V,R,H,N,W=1320,9412,22,12052,14692 +PHASES=["old_response","ad0","A","centers","B","final","adF","cleanup","done"] +def need(x,s): + if not x:raise ValueError(s) + +def blobhash(p):return sha256(p.read_bytes()).hexdigest() + +def digest(x):return sha256(json.dumps(x,separators=(',',':'),sort_keys=True).encode()).hexdigest() + +def role(r):return 'X' if r0 else -1),clear(work)] + +def emit(c,ori): + """Construct the complete local parametric invocation, before cover routing. + One role stream is its full complete address rectangle. Frame labels denote + exact canonical representatives, never just rank or binary matrices. + """ + A=list(flat(c['A']));B=list(flat(c['B']));cur=c['start'].copy() + K=[] + for part in (A,None,B): + if part is None: + for t,p in enumerate(c['ports']): + for k,r,f in c['ret']: + K.append(add(L(V+t),T(r),Q(*(c['scat']['inside'] if p>>k&1 else c['scat']['outside'])))) + else: + for t,s,q in part: + if role(s)=='X':continue + K.append(add(T(t) if role(t)=='S' else L(t),T(s),q)) + yield ('phase','old_response') + if ori=='forward': + for q in range(R):yield scal('old_response',copy(('T',q),L(2*V+q)),'old0') + for _,t,s,a,b in K:yield scal('old_response',add(t,s,Q(-a if t[0]=='L' else a,b)),'old0') + else: + for q in range(R):yield scal('old_response',clear(('T',q)),'old0') + for _,t,s,a,b in reversed(K):yield scal('old_response',add(s,t,Q(a,b)),'old0') + for q in range(R):yield scal('old_response',add(L(2*V+q),('T',q),Q(1)),'old0') + for q in range(R):yield scal('old_response',clear(('T',q)),'old0') + yield ('phase','ad0') + for r,f in enumerate(c['start']):yield ('adapter','old_to_new',r,f) + for part in ['A','centers','B','final']: + yield ('phase',part) + if part in ['A','B']: + for g in c[part]: + regs=[g[2]]+[x[0] for x in g[3]]+(g[4] if g[0]=='out' else []) + for r in regs: + if cur[r]!=g[1]: + old=cur[r];cur[r]=g[1] + yield ('climb',part,r,old,g[1],len(c['frames'][g[1]])-len(c['frames'][old])) + for t,s,q in flat([g]): + e=add(L(t),L(s),q) if ori=='forward' else add(L(s),L(t),-q) + yield scal('main',e,g[1]) + elif part=='centers': + for k,r,f in c['ret']: + yield scal('main',clear(C(k)),f if ori=='forward' else 0) + if ori=='forward':yield scal('main',add(C(k),L(r),Q(1)),f) + else: + for t,p in enumerate(c['ports']): + yield scal('main',add(C(k),L(V+t),Q(*(c['scat']['inside'] if p>>k&1 else c['scat']['outside']))),0) + yield ('center',k,f if ori=='forward' else 0,0 if ori=='forward' else f,20) + if ori=='forward': + for t,p in enumerate(c['ports']): + yield scal('main',add(L(V+t),C(k),Q(*(c['scat']['inside'] if p>>k&1 else c['scat']['outside']))),0) + else:yield scal('main',add(L(r),C(k),Q(-1)),f) + yield scal('main',clear(C(k)),0 if ori=='forward' else f) + else: + for r,f in enumerate(c['final']): + if cur[r]!=f: + old=cur[r];cur[r]=f + yield ('climb','final',r,old,f,len(c['frames'][f])-len(c['frames'][old])) + yield ('phase','adF') + for r,f in enumerate(c['final']):yield ('adapter','new_to_old',r,f) + yield ('phase','cleanup') + for t,s,q in reversed(A+B): + if role(t)=='Y':continue + e=add(L(t),L(s),-q) if ori=='forward' else add(L(s),L(t),q) + yield scal('cleanup',e,'old1') + yield ('phase','done') + +def contains(U,V): + for u in U: + for v in V: + if u>>(v.bit_length()-1)&1:u^=v + if u:return False + return True + +def validate(events,c,ori,manifest,bill): + phase=None;seen=[];cur=c['start'].copy();cent={};dirty=set();initialized=set() + climbed=Counter();hist=Counter();projection=sha256();whole=sha256();counts=Counter();ad0=[];adF=[] + pairs=set();states={};all_frame_incidence=0;primitive=sha256();primitive_count=0 + for ev in events: + whole.update((json.dumps(ev,separators=(',',':'))+'\n').encode()) + tag=ev[0];counts[tag]+=1 + if tag=='phase': + if phase=='A':states['after_A']=digest(cur) + if phase=='B':states['after_B']=digest(cur) + if phase=='final':states['final']=digest(cur) + phase=ev[1];seen.append(phase) + need(seen==PHASES[:len(seen)],'strict old/A/copy/B/final/adapter/cleanup chronology') + if phase=='ad0':need(not dirty,'old-response tableau survived before label recursion') + if phase=='A':need(ad0==list(enumerate(c['start'])),'missing or reordered exact entry adapter') + if phase=='adF':need(cur==c['final'],'final climbs omitted before cleanup') + if phase=='cleanup':need(adF==list(enumerate(c['final'])),'missing or reordered exact final adapter') + continue + if tag=='adapter': + _,which,r,f=ev + if which=='old_to_new':need(phase=='ad0','entry adapter position');ad0.append((r,f)) + else:need(which=='new_to_old' and phase=='adF','final adapter position');adF.append((r,f)) + elif tag=='climb': + _,p,r,old,new,d=ev + need(phase==p and p in ['A','B','final'],'live child outside source label walk') + need(not dirty and not cent,'new work stock or center active during live child') + need(cur[r]==old and d==len(c['frames'][new])-len(c['frames'][old]) and d>0,'wrong exact child endpoints/rank') + pair=(old,new) + if pair not in pairs:need(contains(c['frames'][old],c['frames'][new]),'nonnested child');pairs.add(pair) + cur[r]=new;climbed[p]+=1;hist[d]+=1 + elif tag=='center': + _,k,old,new,d=ev + need(phase=='centers' and not dirty and set(cent)=={k},'center child ownership') + need(cent[k]==old and (k,c['ret'][k][1],c['ret'][k][2])==tuple(c['ret'][k]),'center input frame') + f=c['ret'][k][2] + need((old,new,d)==((f,0,20) if ori=='forward' else (0,f,20)),'center child direction/rank') + cent[k]=new;hist[d]+=1 + projection.update((json.dumps(('main',('recursive_center',k,d)),separators=(',',':'))+'\n').encode()) + elif tag=='scalar': + _,p,e,f=ev + need(p==('main' if phase in ['A','centers','B'] else phase),'scalar phase binding') + need(e[0] in ['add','copy','clear'],'unpaid scalar operation') + target=e[1];source=e[2] if e[0] in ['add','copy'] else None + for x in [target]+([source] if source else []): + bank,r=x + if bank=='T':need(phase=='old_response' and 0<=r=0 + if f:stage_paid[f]+=1 + if a==WORK: + assert copy_open and c==lower.ZERO and f==22 + elif op==ADD: + assert a in live_image and (b in live_image or b==WORK) and a!=b + assert not(a==WORK) + assert (b==WORK)==(z==center_category) + if b==WORK:assert copy_open and f==lower.ZERO;copy_reads+=1 + adds+=1;coefficient[abs(c)]+=1 + elif op==COPY: + assert not copy_open and a==WORK and b in live_image + assert b>=4*V and lower.C.dimf[f]==22 + copy_open=True;copy_reads=0;copies+=1 + elif op==ERASE: + assert copy_open and a==WORK and f==lower.ZERO and copy_reads==220 + copy_open=False;erases+=1 + else:raise AssertionError('unexpected stage opcode') + data=PACK.pack(*row);digest.update(data);program.update(data);opcode_counts[op]+=1 + assert not copy_open and adds==physical['weighted_scalar_events'] and copies==erases==24 + assert stage_paid==Counter({int(k):n for k,n in physical['paid_histogram'].items()}) + assert coefficient=={int(k):v for k,v in physical['coefficient_histogram'].items()} + paid.update(stage_paid) + stages.append(dict(stage=stage,sha256=digest.hexdigest(),weighted_additions=adds, + fresh_copies=copies,erasures=erases,paid_histogram=dict(sorted(stage_paid.items())), + source_owner=BANKS[ACTIVE[stage][0]],target_owner=BANKS[ACTIVE[stage][1]], + complemented_reverse=stage in(1,3),work_family=WORK)) + if stage in(1,2,4): + which={1:0,2:1,4:2}[stage] + for row in lower.iter_idle(which): + paid[row[4]]+=1;program.update(PACK.pack(*row));opcode_counts[IDLE]+=1 + for row in lower.iter_bridges(which): + program.update(PACK.pack(*row));opcode_counts[BRIDGE]+=1 + for row in lower.iter_completions(): + paid[row[4]]+=1;program.update(PACK.pack(*row));opcode_counts[COMPLETE]+=1 + for row in lower.iter_exchanges(): + program.update(PACK.pack(*row));opcode_counts[EXCHANGE]+=1 + assert opcode_counts[EXCHANGE]==2*V + expected=Counter({int(k):5*n for k,n in raw['one_stage_helper_histogram_including_copies'].items()}) + expected.update({r:2*V for r in(46,23,50,4)}) + expected.update({5*int(a):n for a,n in raw['auxiliary_entrance_rank_histogram'].items()}) + assert paid==expected and sum(paid.values())==raw['five_stage_profile']['calls'] + assert sum(r*n for r,n in paid.items())==raw['five_stage_profile']['rank_mass'] and LIVE*M-sum(r*n for r,n in paid.items())==4400 + assert opcode_counts[BRIDGE]==6*V and opcode_counts[COMPLETE]==2554 + # Independent four-bank all-column F2 composition, no source helper replay. + def bank_endpoint(skip_bridge=None): + banks=[1<','exec'),m.__dict__);scalar=m.replay();scalar_sha=scalar_digest.hexdigest();print('PASS independent F2 event observer',scalar_count,scalar_sha,dict(scalar_coeff),flush=True) + state={i:W.w['source_frame'][i]for i in range(v)};state.update({v+t:ZERO for t in range(v)});state.update({2*v+j:W.gauge[r]['frame']if r in W.gauge else ZERO for j,r in enumerate(regs)});initial_state=state.copy();caps={t:W.register(W.module.kernel([C.cov[t]],W.h)[0])for t in range(v)} + records=array('i');hist=Counter();categories=Counter();coefficients=Counter();centers=[];center=None;used_frames=set(state.values());subcache={};count=0;tag_hash=hashlib.sha256();projection=hashlib.sha256() + # The line binding is checked against the exact generated source digest below. + tags={43:("group['frame']",'equal_inverse'),50:("group['frame']",'rank_inverse'),56:("group['frame']",'echelon_inverse'),62:("W.gauge[s]['frame']",'paired_alias_corruption'),67:("W.gauge[s]['frame']",'fresh_source_read'),81:("W.gauge[s]['frame']",'echelon_read'),96:("read_frames[s,k]",'equal_read'),98:("read_frames[s,k]",'equal_corruption'),108:("W.gauge[s]['frame']if s in W.gauge else ZERO",'dirty_read'),113:("W.opframe[i]if sign==1 else FULL",'gate'),116:("W.w['source_frame'][n]",'inject'),120:("kpair[r['source']]['mix_frame']",'gauge_mix'),127:("kpair[b]['mix_frame']",'partner_mix'),133:('ZERO','center'),137:('ZERO','echelon_setup'),142:('ZERO','rank_setup'),147:('ZERO','equal_setup'),151:('ZERO','terminal_pre'),159:('f','anchor_inject'),166:('W.opframe[i]','terminal_write'),172:("e['root_frame']",'terminal_post'),181:("W.w['root_frame'][j]",'side_root'),184:("kpair[b]['mix_frame']",'partner_mix'),186:("e['deliver_frame']",'partner_delivery'),189:('FULL','partner_cleanup'),192:('FULL','partner_cleanup'),201:('FULL','anchor_restore'),204:('FULL','partner_cleanup'),205:('FULL','uninject')} + category_names=sorted(set(k for f,k in tags.values())|{'forward_gate','cleanup_gate'});kind_ids={k:i for i,k in enumerate(category_names)} + def move(i,f): + used_frames.add(f);old=state[i] + if old==f:return + if(old,f)not in subcache:subcache[old,f]=C.sub(old,f) + assert subcache[old,f],('physical descent',i,old,f,C.dimf[old],C.dimf[f]) + d=C.dimf[f]-C.dimf[old];assert d>=0 + records.extend((0,i,old,f,d,0)) + if d:hist[d]+=1 + state[i]=f + def physical_add(x,c,y,f,kind): + nonlocal count + assert x!=y;move(x,f);physical_y=y + if kind=='center':assert center is not None and center['source']==y and f==ZERO;physical_y=n + else:move(y,f) + records.extend((1,x,physical_y,c,f,kind_ids[kind]));digest_add(projection,[x,y,c]);digest_add(tag_hash,[x,physical_y,c,f,kind]);count+=1;categories[kind]+=1;coefficients[abs(c)]+=1 + return x + def center_begin(source,frame): + nonlocal center + assert center is None;move(source,frame);rank=C.dimf[frame];assert rank==22;hist[rank]+=1 + center=dict(source=source,frame=frame,rank=rank,first_event=count,temporary=n,copy_output_frame=ZERO);centers.append(center);records.extend((2,source,n,frame,ZERO,rank)) + def center_end(): + nonlocal center + assert center is not None;center['after_event']=count;center['scatter_reads']=count-center['first_event'];assert center['scatter_reads']==220 + records.extend((3,center['source'],n,center['frame'],ZERO,center['rank']));center=None + class Tag(ast.NodeTransformer): + def visit_Call(self,node): + self.generic_visit(node) + if isinstance(node.func,ast.Name)and node.func.id=='add'and node.lineno<=205: + frame,kind=tags[node.lineno];node.func.id='physical_add';kindnode=ast.parse("'forward_gate'if sign==1 else'cleanup_gate'",mode='eval').body if kind=='gate'else ast.Constant(kind);node.args += [ast.parse(frame,mode='eval').body,kindnode] + return node + q=Tag().visit(ast.parse(source));fn=q.body[0];end=next(i for i,z in enumerate(fn.body)if isinstance(z,ast.If)and ast.unparse(z.test)=='binary');fn.body=fn.body[:end]+[ast.parse('return dict(center_reads=len(center_reads))').body[0]] + fn.body=[z for z in fn.body if not(isinstance(z,ast.FunctionDef)and z.name=='add')] + for node in ast.walk(fn): + if isinstance(node,ast.Assign)and any(isinstance(t,ast.Name)and t.id=='unit'for t in node.targets):node.value=ast.parse('lambda i:i',mode='eval').body + if isinstance(node,ast.FunctionDef)and node.name=='target_move':node.body.insert(0,ast.parse('move(v+t,f)').body[0]) + if isinstance(node,ast.FunctionDef)and node.name=='source_move':node.body.insert(0,ast.parse('move(physical_id(s),f)').body[0]) + # Modify the center loop without changing any scalar expression or event order. + centerloop=next(z for z in fn.body if isinstance(z,ast.For)and z.lineno==129) + centerloop.target=ast.parse('(j,(r,s))',mode='eval').body;centerloop.target.ctx=ast.Store();centerloop.target.elts[0].ctx=ast.Store();centerloop.target.elts[1].ctx=ast.Store() + for z in centerloop.target.elts[1].elts:z.ctx=ast.Store() + centerloop.iter=ast.Call(func=ast.Name(id='enumerate',ctx=ast.Load()),args=[centerloop.iter],keywords=[]) + block=centerloop.body[0];assert isinstance(block,ast.If);block.body.insert(0,ast.parse("center_begin(value(s),W.w['root_frame'][j])").body[0]);block.body.append(ast.parse('center_end()').body[0]) + ast.fix_missing_locations(q);body=ast.unparse(q); + if D is not None:(D/'generated-physical-word.py').write_text(body+'\n') + m.__dict__.update(dict(physical_id=physical_id,move=move,physical_add=physical_add,center_begin=center_begin,center_end=center_end,ZERO=ZERO,FULL=FULL)) + exec(compile(q,'','exec'),m.__dict__);local=m.replay('token');assert center is None + for i in range(v):move(i,FULL) + for t in range(v):move(v+t,caps[t]) + for j,r in enumerate(regs):move(2*v+j,FULL) + assert count==scalar_count and projection.hexdigest()==scalar_sha and coefficients==scalar_coeff + assert len(centers)==24 and local['center_reads']==5280 + result=dict(status='PASS_PHYSICAL_GEN5_EXACT_SCALAR_PROJECTION_AND_MONOTONE_FRAME_TAGS',scalar_source_sha256=sha(source.encode()),scalar_projection_sha256=scalar_sha,tagged_scalar_sha256=tag_hash.hexdigest(),weighted_scalar_events=count,coefficient_histogram=dict(coefficients),categories=dict(categories),category_names=category_names,physical_registers=n,independent_dirty_registers=len(regs),source_heads=len(m.borrow),positive_rank_moves=sum(hist.values())-24,copied_centers=len(centers),copied_center_blocks=centers,center_scatter_reads=local['center_reads'],paid_histogram=dict(sorted(hist.items())),paid_rank_mass=sum(k*v for k,v in hist.items()),initial_independent_entrances=dict(Counter(C.dimf[initial_state[2*v+j]]for j in range(len(regs))if C.dimf[initial_state[2*v+j]])),used_frames=[dict(frame_id=f,dimension=C.dimf[f],basis_sha256=sha(json.dumps(C.B[f],separators=(',',':')).encode()))for f in sorted(used_frames)],input_pins=dict(source_pins or {}),physical_emitter_sha256=sha(Path(__file__).read_bytes())) + + if D is not None: + (D/'physical.json').write_text(json.dumps(result,indent=2)+'\n') + (D/'records.bin.gz').write_bytes(gzip.compress(records.tobytes(),mtime=0)) + print('PASS PHYSICAL',count,'records',len(records)//6,'rankmass',result['paid_rank_mass'],'tagged',result['tagged_scalar_sha256'],flush=True) + + return dict(context=m.__dict__,W=W,C=C,records=records,physical=result,initial_state=initial_state,ZERO=ZERO,FULL=FULL,result=result,scalar_result=scalar) diff --git a/research/five-stage-gen5-banks/finite_check.py b/research/five-stage-gen5-banks/finite_check.py new file mode 100644 index 0000000000..3f383b30e2 --- /dev/null +++ b/research/five-stage-gen5-banks/finite_check.py @@ -0,0 +1,124 @@ +"""Finite bill for the literal 60-replica banked five-stage gen5 word (source527 finite bill, rebound). +Prepared with substantial OpenAI Codex assistance; Apache-2.0. +Retains PR234exact-tape/prime/ordinary-leaf hypotheses, and pays bankroutes. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import importlib.util,json +HERE=Path(__file__).resolve().parent +THEOREM_PINS={ + 'proof/three-stage-cover-bit.tex':'47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511', + 'proof/three-stage-cover-rows.tex':'6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8', + 'proof/copied-centers-lemma.tex':'d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe'} +def ceilq(x):return -((-x.numerator)//x.denominator) + +def cutoff_log2(delta,C): + assert 0=1 + return max(1,ceilq(36/delta**2),ceilq(2*(4+(C-1).bit_length())/delta)) + +def hist(x):return Counter({int(k):v for k,v in x.items()if v}) + +def route_template(): + """Recompute the actual 48-dimensional rational route, not its receipt.""" + h=24 + I=lambda n:[[Q(i==j)for j in range(n)]for i in range(n)] + q=[int(i<3)for i in range(h)] + P=[[Q(q[i])*(Q(q[j])-Q(1,3))/2 for j in range(h)]for i in range(h)] + K=[[Q(i==j)-P[i][j]for j in range(h)]for i in range(h)] + rho=[P[i]+K[i]for i in range(h)]+[K[i]+P[i]for i in range(h)] + a=[r[:]for r in rho];factors=[] + for j in range(2*h): + p=next(i for i in range(j,2*h)if a[i][j]) + if p!=j:a[j],a[p]=a[p],a[j];factors.append(('swap',j,p,None)) + if a[j][j]!=1: + c=1/a[j][j];a[j]=[c*x for x in a[j]];factors.append(('scale',j,None,c)) + for i in range(2*h): + if i!=j and a[i][j]: + c=-a[i][j];a[i]=[x+c*y for x,y in zip(a[i],a[j])];factors.append(('add',i,j,c)) + assert a==I(2*h) + def replay(omit=None): + a=I(2*h) + for z in reversed(range(len(factors))): + if z==omit:continue + kind,i,j,c=factors[z] + if kind=='swap':a[i],a[j]=a[j],a[i] + elif kind=='scale':a[i]=[x/c for x in a[i]] + else:a[i]=[x-c*y for x,y in zip(a[i],a[j])] + return a + assert replay()==rho + assert replay(next(i for i,f in enumerate(factors)if f[0]=='add'))!=rho + counts=dict(Counter(f[0]for f in factors));denoms=sorted({c.denominator for kind,i,j,c in factors if c is not None}) + assert counts==dict(scale=27,add=195,swap=44) and denoms==[1,2,3,6] + serialization=[[kind,i,j,None if c is None else str(c)]for kind,i,j,c in factors] + return dict(factors=len(factors),factor_counts=counts,denominators=denoms, + factor_program_sha256=sha256(json.dumps(serialization,separators=(',',':')).encode()).hexdigest(), + exact_inverse_reconstruction=True,missing_addition_rejected=True) + +def run(raw,physical,scalar,prime_result,math_result,banks,banked_result,global_result): + for name,h in THEOREM_PINS.items():assert sha256((HERE/name).read_bytes()).hexdigest()==h,('changed theorem',name) + bit=(HERE/'proof/three-stage-cover-bit.tex').read_text();rows=(HERE/'proof/three-stage-cover-rows.tex').read_text();copied=(HERE/'proof/copied-centers-lemma.tex').read_text() + for s in ('constants are independent of $w,n$ and ancestor values','absorbed by the complete $q^w$ target fiber','spectator counters','32m^2','only units are inverted'):assert s in bit + for s in ('W(w)^{D(n)}','padding factor is less than two','below $q^2$'):assert s in rows + assert 'Copying, pointwise reads and erasure are linear'in copied and'fixed work stream'in copied + assert raw['physical_R']==15886 and raw['v']==1760 and raw['h']==24 and raw['source_aliases']==0 + assert scalar['forward']['event_sha256']==physical['scalar_projection_sha256']==global_result['scalar_projection_sha256'] + assert physical['tagged_scalar_sha256']==global_result['local_tagged_sha256'] + f,b=scalar['forward'],scalar['inverse'];n=2*raw['v']+raw['physical_R'];assert n==19406 + for row in(f,b): + assert row['all_source_and_dirty_restored']and row['arbitrary_target_contents_preserved']and row['all_formal_columns']==n + assert row['weighted_additions']==physical['weighted_scalar_events']==574832 + assert hist(row['coefficient_counts'])==hist(physical['coefficient_histogram']) + assert row['literal_unit_additions']==sum(c*v for c,v in hist(row['coefficient_counts']).items())==578352 + assert f['max_intermediate_row_l1']==46393 and b['max_intermediate_row_l1']==2282970 + assert raw['parity_transform']['both_reflected_ledgers'] and raw['parity_transform']['remaining_payload_additions']==574832 + assert raw['parity_transform']['removed_even_add_count']==1500000 + assert physical['copied_centers']==24 and len(physical['copied_center_blocks'])==24 + assert all(z['rank']==22 and z['scatter_reads']==220 for z in physical['copied_center_blocks']) + assert hist(physical['paid_histogram'])==hist(raw['one_stage_helper_histogram_including_copies']) + assert prime_result['all_remaining_factors_below_2_power_80']and prime_result['physical_inventory_bound'] + assert prime_result['independent_entrances']==2554 and prime_result['bundled_unique_bases']==411 + assert hist(prime_result['entrance_rank_counts'])==hist(raw['auxiliary_entrance_rank_histogram']) + assert banks['conservative_extra_selector_calls']==757938545400 and banks['normalizer_factor_bound']==662 + assert banks['physical_replicas']==60 and banks['literal_stock']==1247070 and banks['assignments']==4765800 + assert banked_result['all_assignments_match']and banked_result['all_logical_helpers_bound']and banked_result['independent_completions_removed']==2554 + m=120;v=raw['v'];R=raw['physical_R'];T=banks['physical_replicas'];stock=banks['literal_stock'];d=m*m;N=2*m + H=hist(raw['five_stage_profile']['histogram']);assert H==hist(global_result['paid_histogram']) + for a,cnt in hist(raw['auxiliary_entrance_rank_histogram']).items():assert H.pop(5*a)==cnt + literal=Counter({r:T*cnt for r,cnt in H.items()});E=sum(literal.values());mass=sum(r*cnt for r,cnt in literal.items()) + assert m*stock-mass==264000 and max(literal)==50 and Q(max(literal),m)0 and delta1>0 + chain=[Q(384599,10**10)];gaps=[] + for j in range(3): + old=chain[-1];a=(1-c)*c+c*old;ds=dict(atom=c-a,borrowing=1-a-c,remainder=1-a-c*(1-old),stock=1-c);assert old0 + delta=min(ds.values());L=cutoff_log2(delta,coefficient);assert Q(L)*delta**2>=36 and Q(L)*delta>=2*(4+(coefficient-1).bit_length()) + gaps.append(dict(stage=j+1,gaps={k:str(x)for k,x in ds.items()},minimum_gap=str(delta),cutoff_log2_at_charged_coefficient=str(L),full_cutoff_rule='Apply cutoff_log2(delta, C_full), where C_full bounds the displayed coefficient times every inherited primitive, wrapper and preceding ordinary-level constant.'));chain.append(a) + assert list(map(Q,mathematics['ordinary_bootstrap_chain']))==chain + controls=[] + for name,test in [('zero cutoff gap',lambda:cutoff_log2(Q(0),coefficient)),('negative constant',lambda:cutoff_log2(Q(1,2),0))]: + try:test() + except AssertionError:controls.append(name) + else:raise AssertionError('bad finitecutoff accepted') + return dict(status='PASS_LITERAL_PARITY_FUSED_BANKED_FIVE_STAGE_GEN5_FINITE_BILL',theorem_pins=THEOREM_PINS,source_binding=dict(event=physical['scalar_projection_sha256'],tagged=physical['tagged_scalar_sha256'],global_program=global_result['program_sha256']),paid_inventory=dict(m=m,literal_stock=stock,physical_replicas=T,positive_rank_children=E,rank_mass=mass,weighted_additions=weighted,unit_expanded_additions=unit,bridge_additions=T*6*v,route_families=J,terminal_exchange_stream_movements=T*4*v,high_affine_factors=J*high,low_transposition_coefficient=J*(stock+24),generic_wrappers=E*good,matrix_preparation=E*128*N**3,copy_erase_episodes=120*T,fallback_per_child=32*m*m,extra_bank_selector_calls=K,normalizer_factor_bound=banks['normalizer_factor_bound'],simultaneous_extra_work_streams=1,payload_prefix_upper=payload,payload_prefix_bits=payloadbits),q_power_bound=dict(coefficient=coefficient,low_matrix_power=14400,strict_upper='q^14401'),rational_route=route,row_reserve=row_reserve,moment=dict(coarse=str(c),tau=str(1-c),delta_tau_lower=str(delta_tau),delta_linear=str(delta1),fallback_added_in_full=True),recurrence=dict(bound='A*(n+n^(1-c)*w^(1-a_j))',A='C*(1+1/delta_linear+1/delta_tau)',halving_degree=1,one_level_histogram=True),bootstrap=dict(chain=list(map(str,chain)),ordinary=str(chain[-1]),gaps=gaps),rejected_controls=controls,scope='Actual60replicas/literalbankstock andallfixedbanknormalizerschargedbefore finiteordinaryleaf absorption. Inheritedweightedcompiler,commonancestorchart,restoredrow,routing,prime,recoveryandanalyticinterfacesremainconditional.') diff --git a/research/five-stage-gen5-banks/gen5bit/NOTICE-PR200 b/research/five-stage-gen5-banks/gen5bit/NOTICE-PR200 new file mode 100644 index 0000000000..c2d7935d7f --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/NOTICE-PR200 @@ -0,0 +1,60 @@ +Prepared by Chafik Boukhalfa with substantial Anthropic Claude and OpenAI +Codex assistance. Apache-2.0. Inherited files retain their original notices +and assistance disclosures. This package claims no exclusive priority over +concurrent work. + +Retained sources and lineage: +- icekylinx: PR144 paired cubes, signed decoder, shared-core accounting, + original compiler, configurable local channels and finite bridge; + PR130/generalized Clifford frames. +- eumemic: PR117 module infrastructure; PR155/157 scalar modules, physical + frames/reuse and partner-pair bit word; PR161 output merging and searched + p12 module; PR168 annealed pair, triple and all-but-one modules on both + words, nested-prefix schedules, the L1 local circuits this package varies, + fused outputs, bundle descent, both physical layers, the terminal-sink + gate and the physical bit word, pinned at + 4a3c769e5c5430e7114c4d3e099ff34664677f17. Their Anthropic Claude and + OpenAI Codex disclosures are retained. PR131/143 supply frame/reuse and + late-read lineage; PR154 supplies isolated snapshot verification. +- DaysSky: PR162 generalized carrier extension (`compile_closure` and the + extension rule reused here on the new graph) and full-intersection + compiler lineage. The selected graph retains the PR168 nested schedule. +- jamesyc / James Chang: PR124 compensated birth cuts, PR34 balanced + assembly, and PR166 terminal-output accumulation and exact simultaneous + target-chain checking. The PR166 proof is retained in references/pr166. +- GamingPuzzled / Joel Pulikkan: PR160 searched-bit-module composition. +- gupt1156 PR148 and Abhinav Ramachandran/geckods PR158 (Hermes assistance): + paid atom-toll re-instantiation, including PR158 at + 6e086603f936dbb95c6d7171132ed943cc024db9. +- jacklightChen / Zhihao Chen: PR23/29 ordinary supplier; Rohan Arun + (rohanarun): PR100/103 paid positional layout and deferred signed words. +- Earlier bit lineage retained by the prerequisite: Zhihao Chen PR97, + Swapnil Jain's round-seven checkers, an664 PR128, DaysSky PR150, hpst3r + PR147, SovereignSteak PR122, and the source-notice contributors. + +This package contributes, on the complex side, a random-restart and +coordinate search over PR144's configurable local channel circuit on the +PR168 v4 word, selecting face diagonals for A[0,0], A[0,1] and A[1,1] and +fixed-coordinate differences for three G channels so that the carrier +closure gains 1,485 arcs; our own legal-edge Hopcroft-Karp carrier matching with PR162's +extension; endpoint frame descent and compensated handoffs for the new +graph; independent complete admission of the resulting physical word and +its 44 terminal deletions; independent physical-bit admission and exact +prime witnesses for every used bit frame; and, on the bit side, a fixed-coordinate/face-diagonal variant of PR168's bit +local circuit (A[0,0], A[0,1], A[2,0], A[2,1] face diagonals; A[1,*] +direction-0 edges; G[0,1,0] fixed-coordinate differences), our own carrier +matching, gauge selection and complete physical layer (endpoint frame descent and 1,760 compensated handoffs) for +that graph, with 34 PR166 terminal deletions on face0 roots, independently +admitted with exact prime witnesses for every used bit frame; +and the fully paid balanced composition with finer positive backoffs. Scalar virtual stock, physical +handoffs, terminal removals and every external row reserve remain +distinct. The complete 47-inequality body is source-normalized to PR141. +Prerequisite constructions, the configurable circuit itself and the +terminal-compilation concept are not claimed as original here. + +The package is based on main (3b6b66891c0ac888521cf591fe306c6286601d4f), +which integrates Dugongue's PR186 entrance-bank construction and already +carries PR175's retired-register update. references/pr168-v4 holds +byte-identical copies of the twelve PR168 v4 files this package executes or +pins (icekylinx/eumemic/DaysSky lineage as noted in those files), with +their digests in references/pr168-v4/SOURCE.json. diff --git a/research/five-stage-gen5-banks/gen5bit/README.md b/research/five-stage-gen5-banks/gen5bit/README.md new file mode 100644 index 0000000000..e877df3ffd --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/README.md @@ -0,0 +1,72 @@ +# gen5: the paired-cube bit word + +gen5 is #276's gen4 word (PR168's p = 12 paired-cube bit word with the arc-aware local design and the +centre-sharing pair module) with two module circuits replaced. The generator is identical to #276's +apart from two added comment lines. Only the module data, `producer/data/pair_module_p12.json` and `producer/data/qmod_p12.json`, +and the frozen arcs differ. The roots, decoder, partner-pair mixing and local design are unchanged. + +Its virtual profile: + +- R = 17,292 (= c + q − |M|); +- W = 20,812 and deficit 1,936; +- 3,960 gauges. + +For comparison, gen4 has R = 17,904, PR200's word 18,908 and main's PR168 word 19,788. + +| region | additions − carrier arcs, PR168 (L1) | gen4 | gen5 | +| --- | ---: | ---: | ---: | +| local channels (220 cubes) | 220 × 22 | 220 × 16 | 220 × 16 | +| pair module + centre (24) | 24 × 191 | 24 × 184 | **24 × 164** | +| all-but-one module (132) | 132 × 15 | 132 × 12 | **132 × 11** | +| merges u/w, roots | 1,760 + 6,624 | 1,760 + 6,624 | 1,760 + 6,624 | +| **total R** | **19,788** | **17,904** | **17,292** | + +## The modules, and why their objective is compile cost + +Each module was annealed against the exact one-instance compile cost C. C is the Σ 3t·ln(72/t) ledger of +a single module instance compiled in its real geometry with the generator's own compiler. The search did +not minimize additions − arcs. + +Minimizing debt alone is the wrong objective. A cyclic-interval all-but-one module reaches the proven +floor of debt 10 (80 additions, 70 arcs), yet the whole word then loses 4.5% of its saving, because it cuts +roles into many small rank steps. C predicted that loss. + +| module | additions | arcs | debt | C | gen4 debt / C | +| --- | ---: | ---: | ---: | ---: | --- | +| all-but-one (n = 10) | 32 | 21 | 11 | 11,175.33 | 12 / 11,348.83 | +| pair + centre (n = 11, 56 roots) | 463 | 299 | 164 | 59,098.00 | 184 / 61,303.46 | + +The annealer was fast because it used exact closed forms for node ranks. + +- **Pair module, non-plain node:** rank = 24 − 2|V(E)| + c_b(E) − 2·[reaches the centre]. E is the graph of + output pairs reachable through consumers and arc targets. +- **Pair module, plain node:** rank = span dimension. +- **All-but-one, non-plain node:** rank = 23 − 2|reach|. + +With the compiler's Hopcroft–Karp order, these evaluators reproduce the compile up to a constant offset. + +The all-but-one optimum was reached from several random restarts. It also has no improving 1- or 2-move +rewire, which is strong evidence that it is optimal, though not a proof. + +## Physical layer + +`producer/make_physical.py` (run with `--bank-parity`) adds 1,406 compensated reuse pairs. Each recipient +is a rank-21 gauged role read right before its first operation, and each donor is a dead ungauged non-root +non-source register whose last frame lies in the recipient gauge. The pairing is a maximum Hopcroft–Karp +matching, under PR200's rules. + +The `--bank-parity` option drops one pair if the total residual width of the 60-replica banks would be +odd. That does not happen for gen5. + +`producer/descent.py` moves 1,710 operation frames under PR200's descent rules. + +Physical R = 15,886. + +## Reproduce + +```sh +python3 -B gen5bit/producer/regenerate.py --work /new/scratch/dir +``` + +This runs the generator on frozen arcs, then both producers, and checks that all five pinned files in +`selected/bit` are reproduced exactly. It takes about two minutes. `verify.py` never runs a producer. diff --git a/research/five-stage-gen5-banks/gen5bit/bit/base_word.py b/research/five-stage-gen5-banks/gen5bit/bit/base_word.py new file mode 100644 index 0000000000..044f278fbe --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/bit/base_word.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +"""Reusable independent formal checks for a physical partner-pair bit word. + +The supplied frozen inputs are source-pinned. This never runs their producer. +The Z check is of the defining integer decoder; only its F2 reduction is I. +Prepared with OpenAI Codex assistance; Apache-2.0. +""" +from collections import Counter, defaultdict +import importlib.util +import json +from pathlib import Path +import sys +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +BASE = HERE.parent / 'references/pr168-v4/research/paired-cube-bit' +P = 12 +if sys.flags.optimize: raise SystemExit('refusing -O') + + +def need(ok, msg): + if not ok: + raise ValueError(msg) + +class Candidate: + def exact_frames(self): + C = self.C + C.decoder(); C.geometry() + for i in self.changed_frames: + f = self.opframe[i]; x = self.ops[i][2]; bits = C.sup[x] + need(C.nondeg(f), 'replacement operation frame nondegenerate') + while bits: + low = bits&-bits; s=low.bit_length()-1; bits-=low + need(C.in_frame(C.chi[s],f), 'value span in replacement operation frame') + for b, d in self.pairs: + need(C.sub(self.endframe[d], self.gauge[b]['frame']), 'exact Q donor-to-birth containment') + need(C.nondeg(self.endframe[d]) and C.nondeg(self.gauge[b]['frame']), 'handoff endpoints nondegenerate') + + def register(self, rows): + C = self.C + B,_ = self.module.reduce_rows(rows,self.h if hasattr(self,'h') else C.h) + B = tuple(sorted(map(tuple,B),key=lambda r:next(i for i,x in enumerate(r) if x))) + if not hasattr(self,'frame_ids'): + self.frame_ids = {} + if B in self.frame_ids: return self.frame_ids[B] + f=max(C.B)+1; A,_=self.module.kernel(B,C.h) + C.B[f],C.A[f],C.dimf[f]=B,A,len(B);self.frame_ids[B]=f + return f + + + def row(self): + C,h,v=self.C,self.h,self.v + _,baseline_Y,src,_=C.chains() + seq=defaultdict(list) + for i,(a,b,x) in enumerate(self.ops): + seq[a].append(self.opframe[i]);seq[b].append(self.opframe[i]) + for j,s in enumerate(self.w['rootroles']):seq[s].append(self.w['root_frame'][j]) + start={b:self.w['source_frame'][x] for x,b in self.source.items()} + start.update({b:z['frame'] for b,z in self.gauge.items()}) + recipient={d:b for b,d in self.pairs} + H=Counter() + for s in range(self.R): + if s in self.donor:continue + chain=list(seq[s]) + if s in recipient: + b=recipient[s];chain += [self.gauge[b]['frame']]+seq[b] + chain.append(self.w['full_frame']) + prev=start.get(s);dp=0 if prev is None else C.dimf[prev] + if s in self.source.values():H[1]+=1 + for f in chain: + need(prev is None or C.sub(prev,f),'physical role chain nested') + d=C.dimf[f] + if d>dp:H[d-dp]+=1 + prev,dp=f,d + for j,r in enumerate(self.g['roots']): + if r['kind']=='center':H[C.dimf[self.w['root_frame'][j]]]+=1 + Y=Counter();current=[None]*v + def read(t,f): + old=current[t];d=0 if old is None else C.dimf[old] + need(old is None or C.sub(old,f),'actual target frame chronology') + if C.dimf[f]>d:Y[C.dimf[f]-d]+=1 + current[t]=f + for b in sorted(self.order,key=lambda b:self.readtime[b]): + for t in self.gauge[b]['targets']:read(t,self.gauge[b]['frame']) + deliveries=defaultdict(list) + for e in self.k['entries']:deliveries[e['deliver_after_root']].append(e) + for j,r in enumerate(self.g['roots']): + if r['kind']!='center': + for t in r['targets']:read(t,self.w['root_frame'][j]) + for e in deliveries[j]: + for t in e['receivers']:read(t,e['deliver_frame']) + for t,f in enumerate(current): + need(f is not None and all(self.module.dot(C.cov[t],b)==0 for b in C.B[f]),'final target cap') + gap=h-1-C.dimf[f] + if gap:Y[gap]+=1 + need(sum(r*n for r,n in Y.items())==v*(h-1),'target rank mass') + hist=Counter() + for part in (H,Y,src): + for r,n in part.items(): + if r and n:hist[r]+=3*n + for b,z in self.gauge.items(): + if b not in self.donor:hist[3*z['dim']]+=1 + hist[2]+=2*v + hist={r:n for r,n in sorted(hist.items()) if n} + need(all(00 for r,n in hist.items()),'positive proper child bins') + R=self.R-len(self.pairs);W=2*v+R;mass=sum(r*n for r,n in hist.items());m=3*h + need(W*m-mass==C.prof['deficit_per_vertex'],'reuse preserves telescoping deficit') + return dict(h=h,v=v,R=R,virtual_R=self.R,reused_registers=len(self.pairs),W_per_vertex=W,m=m, + loss=C.prof['loss'],rank_per_vertex=mass,deficit_per_vertex=W*m-mass, + child_histogram=hist,maxchild=max(hist),selected_roles=len(self.gauge)-len(self.pairs), + selected_rank_histogram=dict(Counter(z['dim'] for b,z in self.gauge.items() if b not in self.donor)), + changed_operation_frames=len(self.changed_frames), + frames_not_contained_in_original=sum(not C.sub(self.opframe[i],self.original_opframe[i]) for i in self.changed_frames), + physical_target_histogram=dict(Y),physical_internal_histogram=dict(H), + foreign_producer_replays=0) + + def adjoint(self): + adj = [dict() for _ in range(self.R)] + for r,s in zip(self.g['roots'], self.w['rootroles']): + for t in r['targets']: adj[s][t] = adj[s].get(t,0)+1 + for a,b,_ in reversed(self.ops): + for t,c in adj[a].items(): adj[b][t] = adj[b].get(t,0)+c + return adj + + def formal(self, ring, tamper=None): + """All source, target and dirty-register columns; no random sampling.""" + v, phys = self.v, self.phys + regs = sorted(set(phys.values())); index = {r:2*v+j for j,r in enumerate(regs)} + if ring == 2: + unit = lambda i: 1<=0) + need(closure==set(self.phase1),'phase one is exactly centre closure') + content=[0]*self.R + for n,s in self.source.items():content[s]=1<0,'gauge dimension and complete response support') + src=Counter();members=Counter();labels=list(map(set,self.g['labels'])) + for e in self.k['entries']: + c,d,f,cap=e['carrier'],e['passive'],e['mix_frame'],e['deliver_frame'] + need(len(labels[c]&labels[d])==1,'orthogonal partner pair') + need(C.dimf[f]==2 and C.in_frame(C.chi[c],f) and C.in_frame(C.chi[d],f),'partner mix span') + need(C.sub(f,cap) and all(self.module.dot(C.cov[t],u)==0 for t in e['receivers'] for u in C.B[cap]),'partner mix delivery cap') + need(e['carrier_chain']==[w['source_frame'][c],f,cap,w['full_frame']] and e['passive_chain']==[w['source_frame'][d],f,w['full_frame']],'exact partner chains') + root=self.g['roots'][e['deliver_after_root']] + need(root['kind']=='side' and sorted(e['receivers'])==sorted(root['targets']),'partner delivery at own receiver root') + for chain in (e['carrier_chain'],e['passive_chain']): + for a,b in zip(chain,chain[1:]): + need(C.sub(a,b),'nested source chronology');src[C.dimf[b]-C.dimf[a]]+=1 + members[c]+=1;members[d]+=1 + need(all(members[s]==1 for s in range(v)),'every source in one partner pair') + return Counter(),Counter(),src,self.R diff --git a/research/five-stage-gen5-banks/gen5bit/producer/data/arcs_p12.json b/research/five-stage-gen5-banks/gen5bit/producer/data/arcs_p12.json new file mode 100644 index 0000000000..92fd163fab --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/data/arcs_p12.json @@ -0,0 +1 @@ +[[1760,["op",1773,0]],[1761,["op",1783,0]],[1763,["op",1784,0]],[1764,["op",1775,0]],[1766,["root",14]],[1769,["op",1772,0]],[1770,["op",1774,0]],[1776,["root",17]],[1777,["root",20]],[1779,["root",11]],[1780,["root",8]],[1785,["op",1767,0]],[1787,["op",1768,0]],[1789,["op",1802,0]],[1790,["op",1812,0]],[1792,["op",1813,0]],[1793,["op",1804,0]],[1795,["root",44]],[1798,["op",1801,0]],[1799,["op",1803,0]],[1805,["root",47]],[1806,["root",50]],[1808,["root",41]],[1809,["root",38]],[1814,["op",1796,0]],[1816,["op",1797,0]],[1818,["op",1831,0]],[1819,["op",1841,0]],[1821,["op",1842,0]],[1822,["op",1833,0]],[1824,["root",74]],[1827,["op",1830,0]],[1828,["op",1832,0]],[1834,["root",77]],[1835,["root",80]],[1837,["root",71]],[1838,["root",68]],[1843,["op",1825,0]],[1845,["op",1826,0]],[1847,["op",1860,0]],[1848,["op",1870,0]],[1850,["op",1871,0]],[1851,["op",1862,0]],[1853,["root",104]],[1856,["op",1859,0]],[1857,["op",1861,0]],[1863,["root",107]],[1864,["root",110]],[1866,["root",101]],[1867,["root",98]],[1872,["op",1854,0]],[1874,["op",1855,0]],[1876,["op",1889,0]],[1877,["op",1899,0]],[1879,["op",1900,0]],[1880,["op",1891,0]],[1882,["root",134]],[1885,["op",1888,0]],[1886,["op",1890,0]],[1892,["root",137]],[1893,["root",140]],[1895,["root",131]],[1896,["root",128]],[1901,["op",1883,0]],[1903,["op",1884,0]],[1905,["op",1918,0]],[1906,["op",1928,0]],[1908,["op",1929,0]],[1909,["op",1920,0]],[1911,["root",164]],[1914,["op",1917,0]],[1915,["op",1919,0]],[1921,["root",167]],[1922,["root",170]],[1924,["root",161]],[1925,["root",158]],[1930,["op",1912,0]],[1932,["op",1913,0]],[1934,["op",1947,0]],[1935,["op",1957,0]],[1937,["op",1958,0]],[1938,["op",1949,0]],[1940,["root",194]],[1943,["op",1946,0]],[1944,["op",1948,0]],[1950,["root",197]],[1951,["root",200]],[1953,["root",191]],[1954,["root",188]],[1959,["op",1941,0]],[1961,["op",1942,0]],[1963,["op",1976,0]],[1964,["op",1986,0]],[1966,["op",1987,0]],[1967,["op",1978,0]],[1969,["root",224]],[1972,["op",1975,0]],[1973,["op",1977,0]],[1979,["root",227]],[1980,["root",230]],[1982,["root",221]],[1983,["root",218]],[1988,["op",1970,0]],[1990,["op",1971,0]],[1992,["op",2005,0]],[1993,["op",2015,0]],[1995,["op",2016,0]],[1996,["op",2007,0]],[1998,["root",254]],[2001,["op",2004,0]],[2002,["op",2006,0]],[2008,["root",257]],[2009,["root",260]],[2011,["root",251]],[2012,["root",248]],[2017,["op",1999,0]],[2019,["op",2000,0]],[2021,["op",2034,0]],[2022,["op",2044,0]],[2024,["op",2045,0]],[2025,["op",2036,0]],[2027,["root",284]],[2030,["op",2033,0]],[2031,["op",2035,0]],[2037,["root",287]],[2038,["root",290]],[2040,["root",281]],[2041,["root",278]],[2046,["op",2028,0]],[2048,["op",2029,0]],[2050,["op",2063,0]],[2051,["op",2073,0]],[2053,["op",2074,0]],[2054,["op",2065,0]],[2056,["root",314]],[2059,["op",2062,0]],[2060,["op",2064,0]],[2066,["root",317]],[2067,["root",320]],[2069,["root",311]],[2070,["root",308]],[2075,["op",2057,0]],[2077,["op",2058,0]],[2079,["op",2092,0]],[2080,["op",2102,0]],[2082,["op",2103,0]],[2083,["op",2094,0]],[2085,["root",344]],[2088,["op",2091,0]],[2089,["op",2093,0]],[2095,["root",347]],[2096,["root",350]],[2098,["root",341]],[2099,["root",338]],[2104,["op",2086,0]],[2106,["op",2087,0]],[2108,["op",2121,0]],[2109,["op",2131,0]],[2111,["op",2132,0]],[2112,["op",2123,0]],[2114,["root",374]],[2117,["op",2120,0]],[2118,["op",2122,0]],[2124,["root",377]],[2125,["root",380]],[2127,["root",371]],[2128,["root",368]],[2133,["op",2115,0]],[2135,["op",2116,0]],[2137,["op",2150,0]],[2138,["op",2160,0]],[2140,["op",2161,0]],[2141,["op",2152,0]],[2143,["root",404]],[2146,["op",2149,0]],[2147,["op",2151,0]],[2153,["root",407]],[2154,["root",410]],[2156,["root",401]],[2157,["root",398]],[2162,["op",2144,0]],[2164,["op",2145,0]],[2166,["op",2179,0]],[2167,["op",2189,0]],[2169,["op",2190,0]],[2170,["op",2181,0]],[2172,["root",434]],[2175,["op",2178,0]],[2176,["op",2180,0]],[2182,["root",437]],[2183,["root",440]],[2185,["root",431]],[2186,["root",428]],[2191,["op",2173,0]],[2193,["op",2174,0]],[2195,["op",2208,0]],[2196,["op",2218,0]],[2198,["op",2219,0]],[2199,["op",2210,0]],[2201,["root",464]],[2204,["op",2207,0]],[2205,["op",2209,0]],[2211,["root",467]],[2212,["root",470]],[2214,["root",461]],[2215,["root",458]],[2220,["op",2202,0]],[2222,["op",2203,0]],[2224,["op",2237,0]],[2225,["op",2247,0]],[2227,["op",2248,0]],[2228,["op",2239,0]],[2230,["root",494]],[2233,["op",2236,0]],[2234,["op",2238,0]],[2240,["root",497]],[2241,["root",500]],[2243,["root",491]],[2244,["root",488]],[2249,["op",2231,0]],[2251,["op",2232,0]],[2253,["op",2266,0]],[2254,["op",2276,0]],[2256,["op",2277,0]],[2257,["op",2268,0]],[2259,["root",524]],[2262,["op",2265,0]],[2263,["op",2267,0]],[2269,["root",527]],[2270,["root",530]],[2272,["root",521]],[2273,["root",518]],[2278,["op",2260,0]],[2280,["op",2261,0]],[2282,["op",2295,0]],[2283,["op",2305,0]],[2285,["op",2306,0]],[2286,["op",2297,0]],[2288,["root",554]],[2291,["op",2294,0]],[2292,["op",2296,0]],[2298,["root",557]],[2299,["root",560]],[2301,["root",551]],[2302,["root",548]],[2307,["op",2289,0]],[2309,["op",2290,0]],[2311,["op",2324,0]],[2312,["op",2334,0]],[2314,["op",2335,0]],[2315,["op",2326,0]],[2317,["root",584]],[2320,["op",2323,0]],[2321,["op",2325,0]],[2327,["root",587]],[2328,["root",590]],[2330,["root",581]],[2331,["root",578]],[2336,["op",2318,0]],[2338,["op",2319,0]],[2340,["op",2353,0]],[2341,["op",2363,0]],[2343,["op",2364,0]],[2344,["op",2355,0]],[2346,["root",614]],[2349,["op",2352,0]],[2350,["op",2354,0]],[2356,["root",617]],[2357,["root",620]],[2359,["root",611]],[2360,["root",608]],[2365,["op",2347,0]],[2367,["op",2348,0]],[2369,["op",2382,0]],[2370,["op",2392,0]],[2372,["op",2393,0]],[2373,["op",2384,0]],[2375,["root",644]],[2378,["op",2381,0]],[2379,["op",2383,0]],[2385,["root",647]],[2386,["root",650]],[2388,["root",641]],[2389,["root",638]],[2394,["op",2376,0]],[2396,["op",2377,0]],[2398,["op",2411,0]],[2399,["op",2421,0]],[2401,["op",2422,0]],[2402,["op",2413,0]],[2404,["root",674]],[2407,["op",2410,0]],[2408,["op",2412,0]],[2414,["root",677]],[2415,["root",680]],[2417,["root",671]],[2418,["root",668]],[2423,["op",2405,0]],[2425,["op",2406,0]],[2427,["op",2440,0]],[2428,["op",2450,0]],[2430,["op",2451,0]],[2431,["op",2442,0]],[2433,["root",704]],[2436,["op",2439,0]],[2437,["op",2441,0]],[2443,["root",707]],[2444,["root",710]],[2446,["root",701]],[2447,["root",698]],[2452,["op",2434,0]],[2454,["op",2435,0]],[2456,["op",2469,0]],[2457,["op",2479,0]],[2459,["op",2480,0]],[2460,["op",2471,0]],[2462,["root",734]],[2465,["op",2468,0]],[2466,["op",2470,0]],[2472,["root",737]],[2473,["root",740]],[2475,["root",731]],[2476,["root",728]],[2481,["op",2463,0]],[2483,["op",2464,0]],[2485,["op",2498,0]],[2486,["op",2508,0]],[2488,["op",2509,0]],[2489,["op",2500,0]],[2491,["root",764]],[2494,["op",2497,0]],[2495,["op",2499,0]],[2501,["root",767]],[2502,["root",770]],[2504,["root",761]],[2505,["root",758]],[2510,["op",2492,0]],[2512,["op",2493,0]],[2514,["op",2527,0]],[2515,["op",2537,0]],[2517,["op",2538,0]],[2518,["op",2529,0]],[2520,["root",794]],[2523,["op",2526,0]],[2524,["op",2528,0]],[2530,["root",797]],[2531,["root",800]],[2533,["root",791]],[2534,["root",788]],[2539,["op",2521,0]],[2541,["op",2522,0]],[2543,["op",2556,0]],[2544,["op",2566,0]],[2546,["op",2567,0]],[2547,["op",2558,0]],[2549,["root",824]],[2552,["op",2555,0]],[2553,["op",2557,0]],[2559,["root",827]],[2560,["root",830]],[2562,["root",821]],[2563,["root",818]],[2568,["op",2550,0]],[2570,["op",2551,0]],[2572,["op",2585,0]],[2573,["op",2595,0]],[2575,["op",2596,0]],[2576,["op",2587,0]],[2578,["root",854]],[2581,["op",2584,0]],[2582,["op",2586,0]],[2588,["root",857]],[2589,["root",860]],[2591,["root",851]],[2592,["root",848]],[2597,["op",2579,0]],[2599,["op",2580,0]],[2601,["op",2614,0]],[2602,["op",2624,0]],[2604,["op",2625,0]],[2605,["op",2616,0]],[2607,["root",884]],[2610,["op",2613,0]],[2611,["op",2615,0]],[2617,["root",887]],[2618,["root",890]],[2620,["root",881]],[2621,["root",878]],[2626,["op",2608,0]],[2628,["op",2609,0]],[2630,["op",2643,0]],[2631,["op",2653,0]],[2633,["op",2654,0]],[2634,["op",2645,0]],[2636,["root",914]],[2639,["op",2642,0]],[2640,["op",2644,0]],[2646,["root",917]],[2647,["root",920]],[2649,["root",911]],[2650,["root",908]],[2655,["op",2637,0]],[2657,["op",2638,0]],[2659,["op",2672,0]],[2660,["op",2682,0]],[2662,["op",2683,0]],[2663,["op",2674,0]],[2665,["root",944]],[2668,["op",2671,0]],[2669,["op",2673,0]],[2675,["root",947]],[2676,["root",950]],[2678,["root",941]],[2679,["root",938]],[2684,["op",2666,0]],[2686,["op",2667,0]],[2688,["op",2701,0]],[2689,["op",2711,0]],[2691,["op",2712,0]],[2692,["op",2703,0]],[2694,["root",974]],[2697,["op",2700,0]],[2698,["op",2702,0]],[2704,["root",977]],[2705,["root",980]],[2707,["root",971]],[2708,["root",968]],[2713,["op",2695,0]],[2715,["op",2696,0]],[2717,["op",2730,0]],[2718,["op",2740,0]],[2720,["op",2741,0]],[2721,["op",2732,0]],[2723,["root",1004]],[2726,["op",2729,0]],[2727,["op",2731,0]],[2733,["root",1007]],[2734,["root",1010]],[2736,["root",1001]],[2737,["root",998]],[2742,["op",2724,0]],[2744,["op",2725,0]],[2746,["op",2759,0]],[2747,["op",2769,0]],[2749,["op",2770,0]],[2750,["op",2761,0]],[2752,["root",1034]],[2755,["op",2758,0]],[2756,["op",2760,0]],[2762,["root",1037]],[2763,["root",1040]],[2765,["root",1031]],[2766,["root",1028]],[2771,["op",2753,0]],[2773,["op",2754,0]],[2775,["op",2788,0]],[2776,["op",2798,0]],[2778,["op",2799,0]],[2779,["op",2790,0]],[2781,["root",1064]],[2784,["op",2787,0]],[2785,["op",2789,0]],[2791,["root",1067]],[2792,["root",1070]],[2794,["root",1061]],[2795,["root",1058]],[2800,["op",2782,0]],[2802,["op",2783,0]],[2804,["op",2817,0]],[2805,["op",2827,0]],[2807,["op",2828,0]],[2808,["op",2819,0]],[2810,["root",1094]],[2813,["op",2816,0]],[2814,["op",2818,0]],[2820,["root",1097]],[2821,["root",1100]],[2823,["root",1091]],[2824,["root",1088]],[2829,["op",2811,0]],[2831,["op",2812,0]],[2833,["op",2846,0]],[2834,["op",2856,0]],[2836,["op",2857,0]],[2837,["op",2848,0]],[2839,["root",1124]],[2842,["op",2845,0]],[2843,["op",2847,0]],[2849,["root",1127]],[2850,["root",1130]],[2852,["root",1121]],[2853,["root",1118]],[2858,["op",2840,0]],[2860,["op",2841,0]],[2862,["op",2875,0]],[2863,["op",2885,0]],[2865,["op",2886,0]],[2866,["op",2877,0]],[2868,["root",1154]],[2871,["op",2874,0]],[2872,["op",2876,0]],[2878,["root",1157]],[2879,["root",1160]],[2881,["root",1151]],[2882,["root",1148]],[2887,["op",2869,0]],[2889,["op",2870,0]],[2891,["op",2904,0]],[2892,["op",2914,0]],[2894,["op",2915,0]],[2895,["op",2906,0]],[2897,["root",1184]],[2900,["op",2903,0]],[2901,["op",2905,0]],[2907,["root",1187]],[2908,["root",1190]],[2910,["root",1181]],[2911,["root",1178]],[2916,["op",2898,0]],[2918,["op",2899,0]],[2920,["op",2933,0]],[2921,["op",2943,0]],[2923,["op",2944,0]],[2924,["op",2935,0]],[2926,["root",1214]],[2929,["op",2932,0]],[2930,["op",2934,0]],[2936,["root",1217]],[2937,["root",1220]],[2939,["root",1211]],[2940,["root",1208]],[2945,["op",2927,0]],[2947,["op",2928,0]],[2949,["op",2962,0]],[2950,["op",2972,0]],[2952,["op",2973,0]],[2953,["op",2964,0]],[2955,["root",1244]],[2958,["op",2961,0]],[2959,["op",2963,0]],[2965,["root",1247]],[2966,["root",1250]],[2968,["root",1241]],[2969,["root",1238]],[2974,["op",2956,0]],[2976,["op",2957,0]],[2978,["op",2991,0]],[2979,["op",3001,0]],[2981,["op",3002,0]],[2982,["op",2993,0]],[2984,["root",1274]],[2987,["op",2990,0]],[2988,["op",2992,0]],[2994,["root",1277]],[2995,["root",1280]],[2997,["root",1271]],[2998,["root",1268]],[3003,["op",2985,0]],[3005,["op",2986,0]],[3007,["op",3020,0]],[3008,["op",3030,0]],[3010,["op",3031,0]],[3011,["op",3022,0]],[3013,["root",1304]],[3016,["op",3019,0]],[3017,["op",3021,0]],[3023,["root",1307]],[3024,["root",1310]],[3026,["root",1301]],[3027,["root",1298]],[3032,["op",3014,0]],[3034,["op",3015,0]],[3036,["op",3049,0]],[3037,["op",3059,0]],[3039,["op",3060,0]],[3040,["op",3051,0]],[3042,["root",1334]],[3045,["op",3048,0]],[3046,["op",3050,0]],[3052,["root",1337]],[3053,["root",1340]],[3055,["root",1331]],[3056,["root",1328]],[3061,["op",3043,0]],[3063,["op",3044,0]],[3065,["op",3078,0]],[3066,["op",3088,0]],[3068,["op",3089,0]],[3069,["op",3080,0]],[3071,["root",1364]],[3074,["op",3077,0]],[3075,["op",3079,0]],[3081,["root",1367]],[3082,["root",1370]],[3084,["root",1361]],[3085,["root",1358]],[3090,["op",3072,0]],[3092,["op",3073,0]],[3094,["op",3107,0]],[3095,["op",3117,0]],[3097,["op",3118,0]],[3098,["op",3109,0]],[3100,["root",1394]],[3103,["op",3106,0]],[3104,["op",3108,0]],[3110,["root",1397]],[3111,["root",1400]],[3113,["root",1391]],[3114,["root",1388]],[3119,["op",3101,0]],[3121,["op",3102,0]],[3123,["op",3136,0]],[3124,["op",3146,0]],[3126,["op",3147,0]],[3127,["op",3138,0]],[3129,["root",1424]],[3132,["op",3135,0]],[3133,["op",3137,0]],[3139,["root",1427]],[3140,["root",1430]],[3142,["root",1421]],[3143,["root",1418]],[3148,["op",3130,0]],[3150,["op",3131,0]],[3152,["op",3165,0]],[3153,["op",3175,0]],[3155,["op",3176,0]],[3156,["op",3167,0]],[3158,["root",1454]],[3161,["op",3164,0]],[3162,["op",3166,0]],[3168,["root",1457]],[3169,["root",1460]],[3171,["root",1451]],[3172,["root",1448]],[3177,["op",3159,0]],[3179,["op",3160,0]],[3181,["op",3194,0]],[3182,["op",3204,0]],[3184,["op",3205,0]],[3185,["op",3196,0]],[3187,["root",1484]],[3190,["op",3193,0]],[3191,["op",3195,0]],[3197,["root",1487]],[3198,["root",1490]],[3200,["root",1481]],[3201,["root",1478]],[3206,["op",3188,0]],[3208,["op",3189,0]],[3210,["op",3223,0]],[3211,["op",3233,0]],[3213,["op",3234,0]],[3214,["op",3225,0]],[3216,["root",1514]],[3219,["op",3222,0]],[3220,["op",3224,0]],[3226,["root",1517]],[3227,["root",1520]],[3229,["root",1511]],[3230,["root",1508]],[3235,["op",3217,0]],[3237,["op",3218,0]],[3239,["op",3252,0]],[3240,["op",3262,0]],[3242,["op",3263,0]],[3243,["op",3254,0]],[3245,["root",1544]],[3248,["op",3251,0]],[3249,["op",3253,0]],[3255,["root",1547]],[3256,["root",1550]],[3258,["root",1541]],[3259,["root",1538]],[3264,["op",3246,0]],[3266,["op",3247,0]],[3268,["op",3281,0]],[3269,["op",3291,0]],[3271,["op",3292,0]],[3272,["op",3283,0]],[3274,["root",1574]],[3277,["op",3280,0]],[3278,["op",3282,0]],[3284,["root",1577]],[3285,["root",1580]],[3287,["root",1571]],[3288,["root",1568]],[3293,["op",3275,0]],[3295,["op",3276,0]],[3297,["op",3310,0]],[3298,["op",3320,0]],[3300,["op",3321,0]],[3301,["op",3312,0]],[3303,["root",1604]],[3306,["op",3309,0]],[3307,["op",3311,0]],[3313,["root",1607]],[3314,["root",1610]],[3316,["root",1601]],[3317,["root",1598]],[3322,["op",3304,0]],[3324,["op",3305,0]],[3326,["op",3339,0]],[3327,["op",3349,0]],[3329,["op",3350,0]],[3330,["op",3341,0]],[3332,["root",1634]],[3335,["op",3338,0]],[3336,["op",3340,0]],[3342,["root",1637]],[3343,["root",1640]],[3345,["root",1631]],[3346,["root",1628]],[3351,["op",3333,0]],[3353,["op",3334,0]],[3355,["op",3368,0]],[3356,["op",3378,0]],[3358,["op",3379,0]],[3359,["op",3370,0]],[3361,["root",1664]],[3364,["op",3367,0]],[3365,["op",3369,0]],[3371,["root",1667]],[3372,["root",1670]],[3374,["root",1661]],[3375,["root",1658]],[3380,["op",3362,0]],[3382,["op",3363,0]],[3384,["op",3397,0]],[3385,["op",3407,0]],[3387,["op",3408,0]],[3388,["op",3399,0]],[3390,["root",1694]],[3393,["op",3396,0]],[3394,["op",3398,0]],[3400,["root",1697]],[3401,["root",1700]],[3403,["root",1691]],[3404,["root",1688]],[3409,["op",3391,0]],[3411,["op",3392,0]],[3413,["op",3426,0]],[3414,["op",3436,0]],[3416,["op",3437,0]],[3417,["op",3428,0]],[3419,["root",1724]],[3422,["op",3425,0]],[3423,["op",3427,0]],[3429,["root",1727]],[3430,["root",1730]],[3432,["root",1721]],[3433,["root",1718]],[3438,["op",3420,0]],[3440,["op",3421,0]],[3442,["op",3455,0]],[3443,["op",3465,0]],[3445,["op",3466,0]],[3446,["op",3457,0]],[3448,["root",1754]],[3451,["op",3454,0]],[3452,["op",3456,0]],[3458,["root",1757]],[3459,["root",1760]],[3461,["root",1751]],[3462,["root",1748]],[3467,["op",3449,0]],[3469,["op",3450,0]],[3471,["op",3484,0]],[3472,["op",3494,0]],[3474,["op",3495,0]],[3475,["op",3486,0]],[3477,["root",1784]],[3480,["op",3483,0]],[3481,["op",3485,0]],[3487,["root",1787]],[3488,["root",1790]],[3490,["root",1781]],[3491,["root",1778]],[3496,["op",3478,0]],[3498,["op",3479,0]],[3500,["op",3513,0]],[3501,["op",3523,0]],[3503,["op",3524,0]],[3504,["op",3515,0]],[3506,["root",1814]],[3509,["op",3512,0]],[3510,["op",3514,0]],[3516,["root",1817]],[3517,["root",1820]],[3519,["root",1811]],[3520,["root",1808]],[3525,["op",3507,0]],[3527,["op",3508,0]],[3529,["op",3542,0]],[3530,["op",3552,0]],[3532,["op",3553,0]],[3533,["op",3544,0]],[3535,["root",1844]],[3538,["op",3541,0]],[3539,["op",3543,0]],[3545,["root",1847]],[3546,["root",1850]],[3548,["root",1841]],[3549,["root",1838]],[3554,["op",3536,0]],[3556,["op",3537,0]],[3558,["op",3571,0]],[3559,["op",3581,0]],[3561,["op",3582,0]],[3562,["op",3573,0]],[3564,["root",1874]],[3567,["op",3570,0]],[3568,["op",3572,0]],[3574,["root",1877]],[3575,["root",1880]],[3577,["root",1871]],[3578,["root",1868]],[3583,["op",3565,0]],[3585,["op",3566,0]],[3587,["op",3600,0]],[3588,["op",3610,0]],[3590,["op",3611,0]],[3591,["op",3602,0]],[3593,["root",1904]],[3596,["op",3599,0]],[3597,["op",3601,0]],[3603,["root",1907]],[3604,["root",1910]],[3606,["root",1901]],[3607,["root",1898]],[3612,["op",3594,0]],[3614,["op",3595,0]],[3616,["op",3629,0]],[3617,["op",3639,0]],[3619,["op",3640,0]],[3620,["op",3631,0]],[3622,["root",1934]],[3625,["op",3628,0]],[3626,["op",3630,0]],[3632,["root",1937]],[3633,["root",1940]],[3635,["root",1931]],[3636,["root",1928]],[3641,["op",3623,0]],[3643,["op",3624,0]],[3645,["op",3658,0]],[3646,["op",3668,0]],[3648,["op",3669,0]],[3649,["op",3660,0]],[3651,["root",1964]],[3654,["op",3657,0]],[3655,["op",3659,0]],[3661,["root",1967]],[3662,["root",1970]],[3664,["root",1961]],[3665,["root",1958]],[3670,["op",3652,0]],[3672,["op",3653,0]],[3674,["op",3687,0]],[3675,["op",3697,0]],[3677,["op",3698,0]],[3678,["op",3689,0]],[3680,["root",1994]],[3683,["op",3686,0]],[3684,["op",3688,0]],[3690,["root",1997]],[3691,["root",2000]],[3693,["root",1991]],[3694,["root",1988]],[3699,["op",3681,0]],[3701,["op",3682,0]],[3703,["op",3716,0]],[3704,["op",3726,0]],[3706,["op",3727,0]],[3707,["op",3718,0]],[3709,["root",2024]],[3712,["op",3715,0]],[3713,["op",3717,0]],[3719,["root",2027]],[3720,["root",2030]],[3722,["root",2021]],[3723,["root",2018]],[3728,["op",3710,0]],[3730,["op",3711,0]],[3732,["op",3745,0]],[3733,["op",3755,0]],[3735,["op",3756,0]],[3736,["op",3747,0]],[3738,["root",2054]],[3741,["op",3744,0]],[3742,["op",3746,0]],[3748,["root",2057]],[3749,["root",2060]],[3751,["root",2051]],[3752,["root",2048]],[3757,["op",3739,0]],[3759,["op",3740,0]],[3761,["op",3774,0]],[3762,["op",3784,0]],[3764,["op",3785,0]],[3765,["op",3776,0]],[3767,["root",2084]],[3770,["op",3773,0]],[3771,["op",3775,0]],[3777,["root",2087]],[3778,["root",2090]],[3780,["root",2081]],[3781,["root",2078]],[3786,["op",3768,0]],[3788,["op",3769,0]],[3790,["op",3803,0]],[3791,["op",3813,0]],[3793,["op",3814,0]],[3794,["op",3805,0]],[3796,["root",2114]],[3799,["op",3802,0]],[3800,["op",3804,0]],[3806,["root",2117]],[3807,["root",2120]],[3809,["root",2111]],[3810,["root",2108]],[3815,["op",3797,0]],[3817,["op",3798,0]],[3819,["op",3832,0]],[3820,["op",3842,0]],[3822,["op",3843,0]],[3823,["op",3834,0]],[3825,["root",2144]],[3828,["op",3831,0]],[3829,["op",3833,0]],[3835,["root",2147]],[3836,["root",2150]],[3838,["root",2141]],[3839,["root",2138]],[3844,["op",3826,0]],[3846,["op",3827,0]],[3848,["op",3861,0]],[3849,["op",3871,0]],[3851,["op",3872,0]],[3852,["op",3863,0]],[3854,["root",2174]],[3857,["op",3860,0]],[3858,["op",3862,0]],[3864,["root",2177]],[3865,["root",2180]],[3867,["root",2171]],[3868,["root",2168]],[3873,["op",3855,0]],[3875,["op",3856,0]],[3877,["op",3890,0]],[3878,["op",3900,0]],[3880,["op",3901,0]],[3881,["op",3892,0]],[3883,["root",2204]],[3886,["op",3889,0]],[3887,["op",3891,0]],[3893,["root",2207]],[3894,["root",2210]],[3896,["root",2201]],[3897,["root",2198]],[3902,["op",3884,0]],[3904,["op",3885,0]],[3906,["op",3919,0]],[3907,["op",3929,0]],[3909,["op",3930,0]],[3910,["op",3921,0]],[3912,["root",2234]],[3915,["op",3918,0]],[3916,["op",3920,0]],[3922,["root",2237]],[3923,["root",2240]],[3925,["root",2231]],[3926,["root",2228]],[3931,["op",3913,0]],[3933,["op",3914,0]],[3935,["op",3948,0]],[3936,["op",3958,0]],[3938,["op",3959,0]],[3939,["op",3950,0]],[3941,["root",2264]],[3944,["op",3947,0]],[3945,["op",3949,0]],[3951,["root",2267]],[3952,["root",2270]],[3954,["root",2261]],[3955,["root",2258]],[3960,["op",3942,0]],[3962,["op",3943,0]],[3964,["op",3977,0]],[3965,["op",3987,0]],[3967,["op",3988,0]],[3968,["op",3979,0]],[3970,["root",2294]],[3973,["op",3976,0]],[3974,["op",3978,0]],[3980,["root",2297]],[3981,["root",2300]],[3983,["root",2291]],[3984,["root",2288]],[3989,["op",3971,0]],[3991,["op",3972,0]],[3993,["op",4006,0]],[3994,["op",4016,0]],[3996,["op",4017,0]],[3997,["op",4008,0]],[3999,["root",2324]],[4002,["op",4005,0]],[4003,["op",4007,0]],[4009,["root",2327]],[4010,["root",2330]],[4012,["root",2321]],[4013,["root",2318]],[4018,["op",4000,0]],[4020,["op",4001,0]],[4022,["op",4035,0]],[4023,["op",4045,0]],[4025,["op",4046,0]],[4026,["op",4037,0]],[4028,["root",2354]],[4031,["op",4034,0]],[4032,["op",4036,0]],[4038,["root",2357]],[4039,["root",2360]],[4041,["root",2351]],[4042,["root",2348]],[4047,["op",4029,0]],[4049,["op",4030,0]],[4051,["op",4064,0]],[4052,["op",4074,0]],[4054,["op",4075,0]],[4055,["op",4066,0]],[4057,["root",2384]],[4060,["op",4063,0]],[4061,["op",4065,0]],[4067,["root",2387]],[4068,["root",2390]],[4070,["root",2381]],[4071,["root",2378]],[4076,["op",4058,0]],[4078,["op",4059,0]],[4080,["op",4093,0]],[4081,["op",4103,0]],[4083,["op",4104,0]],[4084,["op",4095,0]],[4086,["root",2414]],[4089,["op",4092,0]],[4090,["op",4094,0]],[4096,["root",2417]],[4097,["root",2420]],[4099,["root",2411]],[4100,["root",2408]],[4105,["op",4087,0]],[4107,["op",4088,0]],[4109,["op",4122,0]],[4110,["op",4132,0]],[4112,["op",4133,0]],[4113,["op",4124,0]],[4115,["root",2444]],[4118,["op",4121,0]],[4119,["op",4123,0]],[4125,["root",2447]],[4126,["root",2450]],[4128,["root",2441]],[4129,["root",2438]],[4134,["op",4116,0]],[4136,["op",4117,0]],[4138,["op",4151,0]],[4139,["op",4161,0]],[4141,["op",4162,0]],[4142,["op",4153,0]],[4144,["root",2474]],[4147,["op",4150,0]],[4148,["op",4152,0]],[4154,["root",2477]],[4155,["root",2480]],[4157,["root",2471]],[4158,["root",2468]],[4163,["op",4145,0]],[4165,["op",4146,0]],[4167,["op",4180,0]],[4168,["op",4190,0]],[4170,["op",4191,0]],[4171,["op",4182,0]],[4173,["root",2504]],[4176,["op",4179,0]],[4177,["op",4181,0]],[4183,["root",2507]],[4184,["root",2510]],[4186,["root",2501]],[4187,["root",2498]],[4192,["op",4174,0]],[4194,["op",4175,0]],[4196,["op",4209,0]],[4197,["op",4219,0]],[4199,["op",4220,0]],[4200,["op",4211,0]],[4202,["root",2534]],[4205,["op",4208,0]],[4206,["op",4210,0]],[4212,["root",2537]],[4213,["root",2540]],[4215,["root",2531]],[4216,["root",2528]],[4221,["op",4203,0]],[4223,["op",4204,0]],[4225,["op",4238,0]],[4226,["op",4248,0]],[4228,["op",4249,0]],[4229,["op",4240,0]],[4231,["root",2564]],[4234,["op",4237,0]],[4235,["op",4239,0]],[4241,["root",2567]],[4242,["root",2570]],[4244,["root",2561]],[4245,["root",2558]],[4250,["op",4232,0]],[4252,["op",4233,0]],[4254,["op",4267,0]],[4255,["op",4277,0]],[4257,["op",4278,0]],[4258,["op",4269,0]],[4260,["root",2594]],[4263,["op",4266,0]],[4264,["op",4268,0]],[4270,["root",2597]],[4271,["root",2600]],[4273,["root",2591]],[4274,["root",2588]],[4279,["op",4261,0]],[4281,["op",4262,0]],[4283,["op",4296,0]],[4284,["op",4306,0]],[4286,["op",4307,0]],[4287,["op",4298,0]],[4289,["root",2624]],[4292,["op",4295,0]],[4293,["op",4297,0]],[4299,["root",2627]],[4300,["root",2630]],[4302,["root",2621]],[4303,["root",2618]],[4308,["op",4290,0]],[4310,["op",4291,0]],[4312,["op",4325,0]],[4313,["op",4335,0]],[4315,["op",4336,0]],[4316,["op",4327,0]],[4318,["root",2654]],[4321,["op",4324,0]],[4322,["op",4326,0]],[4328,["root",2657]],[4329,["root",2660]],[4331,["root",2651]],[4332,["root",2648]],[4337,["op",4319,0]],[4339,["op",4320,0]],[4341,["op",4354,0]],[4342,["op",4364,0]],[4344,["op",4365,0]],[4345,["op",4356,0]],[4347,["root",2684]],[4350,["op",4353,0]],[4351,["op",4355,0]],[4357,["root",2687]],[4358,["root",2690]],[4360,["root",2681]],[4361,["root",2678]],[4366,["op",4348,0]],[4368,["op",4349,0]],[4370,["op",4383,0]],[4371,["op",4393,0]],[4373,["op",4394,0]],[4374,["op",4385,0]],[4376,["root",2714]],[4379,["op",4382,0]],[4380,["op",4384,0]],[4386,["root",2717]],[4387,["root",2720]],[4389,["root",2711]],[4390,["root",2708]],[4395,["op",4377,0]],[4397,["op",4378,0]],[4399,["op",4412,0]],[4400,["op",4422,0]],[4402,["op",4423,0]],[4403,["op",4414,0]],[4405,["root",2744]],[4408,["op",4411,0]],[4409,["op",4413,0]],[4415,["root",2747]],[4416,["root",2750]],[4418,["root",2741]],[4419,["root",2738]],[4424,["op",4406,0]],[4426,["op",4407,0]],[4428,["op",4441,0]],[4429,["op",4451,0]],[4431,["op",4452,0]],[4432,["op",4443,0]],[4434,["root",2774]],[4437,["op",4440,0]],[4438,["op",4442,0]],[4444,["root",2777]],[4445,["root",2780]],[4447,["root",2771]],[4448,["root",2768]],[4453,["op",4435,0]],[4455,["op",4436,0]],[4457,["op",4470,0]],[4458,["op",4480,0]],[4460,["op",4481,0]],[4461,["op",4472,0]],[4463,["root",2804]],[4466,["op",4469,0]],[4467,["op",4471,0]],[4473,["root",2807]],[4474,["root",2810]],[4476,["root",2801]],[4477,["root",2798]],[4482,["op",4464,0]],[4484,["op",4465,0]],[4486,["op",4499,0]],[4487,["op",4509,0]],[4489,["op",4510,0]],[4490,["op",4501,0]],[4492,["root",2834]],[4495,["op",4498,0]],[4496,["op",4500,0]],[4502,["root",2837]],[4503,["root",2840]],[4505,["root",2831]],[4506,["root",2828]],[4511,["op",4493,0]],[4513,["op",4494,0]],[4515,["op",4528,0]],[4516,["op",4538,0]],[4518,["op",4539,0]],[4519,["op",4530,0]],[4521,["root",2864]],[4524,["op",4527,0]],[4525,["op",4529,0]],[4531,["root",2867]],[4532,["root",2870]],[4534,["root",2861]],[4535,["root",2858]],[4540,["op",4522,0]],[4542,["op",4523,0]],[4544,["op",4557,0]],[4545,["op",4567,0]],[4547,["op",4568,0]],[4548,["op",4559,0]],[4550,["root",2894]],[4553,["op",4556,0]],[4554,["op",4558,0]],[4560,["root",2897]],[4561,["root",2900]],[4563,["root",2891]],[4564,["root",2888]],[4569,["op",4551,0]],[4571,["op",4552,0]],[4573,["op",4586,0]],[4574,["op",4596,0]],[4576,["op",4597,0]],[4577,["op",4588,0]],[4579,["root",2924]],[4582,["op",4585,0]],[4583,["op",4587,0]],[4589,["root",2927]],[4590,["root",2930]],[4592,["root",2921]],[4593,["root",2918]],[4598,["op",4580,0]],[4600,["op",4581,0]],[4602,["op",4615,0]],[4603,["op",4625,0]],[4605,["op",4626,0]],[4606,["op",4617,0]],[4608,["root",2954]],[4611,["op",4614,0]],[4612,["op",4616,0]],[4618,["root",2957]],[4619,["root",2960]],[4621,["root",2951]],[4622,["root",2948]],[4627,["op",4609,0]],[4629,["op",4610,0]],[4631,["op",4644,0]],[4632,["op",4654,0]],[4634,["op",4655,0]],[4635,["op",4646,0]],[4637,["root",2984]],[4640,["op",4643,0]],[4641,["op",4645,0]],[4647,["root",2987]],[4648,["root",2990]],[4650,["root",2981]],[4651,["root",2978]],[4656,["op",4638,0]],[4658,["op",4639,0]],[4660,["op",4673,0]],[4661,["op",4683,0]],[4663,["op",4684,0]],[4664,["op",4675,0]],[4666,["root",3014]],[4669,["op",4672,0]],[4670,["op",4674,0]],[4676,["root",3017]],[4677,["root",3020]],[4679,["root",3011]],[4680,["root",3008]],[4685,["op",4667,0]],[4687,["op",4668,0]],[4689,["op",4702,0]],[4690,["op",4712,0]],[4692,["op",4713,0]],[4693,["op",4704,0]],[4695,["root",3044]],[4698,["op",4701,0]],[4699,["op",4703,0]],[4705,["root",3047]],[4706,["root",3050]],[4708,["root",3041]],[4709,["root",3038]],[4714,["op",4696,0]],[4716,["op",4697,0]],[4718,["op",4731,0]],[4719,["op",4741,0]],[4721,["op",4742,0]],[4722,["op",4733,0]],[4724,["root",3074]],[4727,["op",4730,0]],[4728,["op",4732,0]],[4734,["root",3077]],[4735,["root",3080]],[4737,["root",3071]],[4738,["root",3068]],[4743,["op",4725,0]],[4745,["op",4726,0]],[4747,["op",4760,0]],[4748,["op",4770,0]],[4750,["op",4771,0]],[4751,["op",4762,0]],[4753,["root",3104]],[4756,["op",4759,0]],[4757,["op",4761,0]],[4763,["root",3107]],[4764,["root",3110]],[4766,["root",3101]],[4767,["root",3098]],[4772,["op",4754,0]],[4774,["op",4755,0]],[4776,["op",4789,0]],[4777,["op",4799,0]],[4779,["op",4800,0]],[4780,["op",4791,0]],[4782,["root",3134]],[4785,["op",4788,0]],[4786,["op",4790,0]],[4792,["root",3137]],[4793,["root",3140]],[4795,["root",3131]],[4796,["root",3128]],[4801,["op",4783,0]],[4803,["op",4784,0]],[4805,["op",4818,0]],[4806,["op",4828,0]],[4808,["op",4829,0]],[4809,["op",4820,0]],[4811,["root",3164]],[4814,["op",4817,0]],[4815,["op",4819,0]],[4821,["root",3167]],[4822,["root",3170]],[4824,["root",3161]],[4825,["root",3158]],[4830,["op",4812,0]],[4832,["op",4813,0]],[4834,["op",4847,0]],[4835,["op",4857,0]],[4837,["op",4858,0]],[4838,["op",4849,0]],[4840,["root",3194]],[4843,["op",4846,0]],[4844,["op",4848,0]],[4850,["root",3197]],[4851,["root",3200]],[4853,["root",3191]],[4854,["root",3188]],[4859,["op",4841,0]],[4861,["op",4842,0]],[4863,["op",4876,0]],[4864,["op",4886,0]],[4866,["op",4887,0]],[4867,["op",4878,0]],[4869,["root",3224]],[4872,["op",4875,0]],[4873,["op",4877,0]],[4879,["root",3227]],[4880,["root",3230]],[4882,["root",3221]],[4883,["root",3218]],[4888,["op",4870,0]],[4890,["op",4871,0]],[4892,["op",4905,0]],[4893,["op",4915,0]],[4895,["op",4916,0]],[4896,["op",4907,0]],[4898,["root",3254]],[4901,["op",4904,0]],[4902,["op",4906,0]],[4908,["root",3257]],[4909,["root",3260]],[4911,["root",3251]],[4912,["root",3248]],[4917,["op",4899,0]],[4919,["op",4900,0]],[4921,["op",4934,0]],[4922,["op",4944,0]],[4924,["op",4945,0]],[4925,["op",4936,0]],[4927,["root",3284]],[4930,["op",4933,0]],[4931,["op",4935,0]],[4937,["root",3287]],[4938,["root",3290]],[4940,["root",3281]],[4941,["root",3278]],[4946,["op",4928,0]],[4948,["op",4929,0]],[4950,["op",4963,0]],[4951,["op",4973,0]],[4953,["op",4974,0]],[4954,["op",4965,0]],[4956,["root",3314]],[4959,["op",4962,0]],[4960,["op",4964,0]],[4966,["root",3317]],[4967,["root",3320]],[4969,["root",3311]],[4970,["root",3308]],[4975,["op",4957,0]],[4977,["op",4958,0]],[4979,["op",4992,0]],[4980,["op",5002,0]],[4982,["op",5003,0]],[4983,["op",4994,0]],[4985,["root",3344]],[4988,["op",4991,0]],[4989,["op",4993,0]],[4995,["root",3347]],[4996,["root",3350]],[4998,["root",3341]],[4999,["root",3338]],[5004,["op",4986,0]],[5006,["op",4987,0]],[5008,["op",5021,0]],[5009,["op",5031,0]],[5011,["op",5032,0]],[5012,["op",5023,0]],[5014,["root",3374]],[5017,["op",5020,0]],[5018,["op",5022,0]],[5024,["root",3377]],[5025,["root",3380]],[5027,["root",3371]],[5028,["root",3368]],[5033,["op",5015,0]],[5035,["op",5016,0]],[5037,["op",5050,0]],[5038,["op",5060,0]],[5040,["op",5061,0]],[5041,["op",5052,0]],[5043,["root",3404]],[5046,["op",5049,0]],[5047,["op",5051,0]],[5053,["root",3407]],[5054,["root",3410]],[5056,["root",3401]],[5057,["root",3398]],[5062,["op",5044,0]],[5064,["op",5045,0]],[5066,["op",5079,0]],[5067,["op",5089,0]],[5069,["op",5090,0]],[5070,["op",5081,0]],[5072,["root",3434]],[5075,["op",5078,0]],[5076,["op",5080,0]],[5082,["root",3437]],[5083,["root",3440]],[5085,["root",3431]],[5086,["root",3428]],[5091,["op",5073,0]],[5093,["op",5074,0]],[5095,["op",5108,0]],[5096,["op",5118,0]],[5098,["op",5119,0]],[5099,["op",5110,0]],[5101,["root",3464]],[5104,["op",5107,0]],[5105,["op",5109,0]],[5111,["root",3467]],[5112,["root",3470]],[5114,["root",3461]],[5115,["root",3458]],[5120,["op",5102,0]],[5122,["op",5103,0]],[5124,["op",5137,0]],[5125,["op",5147,0]],[5127,["op",5148,0]],[5128,["op",5139,0]],[5130,["root",3494]],[5133,["op",5136,0]],[5134,["op",5138,0]],[5140,["root",3497]],[5141,["root",3500]],[5143,["root",3491]],[5144,["root",3488]],[5149,["op",5131,0]],[5151,["op",5132,0]],[5153,["op",5166,0]],[5154,["op",5176,0]],[5156,["op",5177,0]],[5157,["op",5168,0]],[5159,["root",3524]],[5162,["op",5165,0]],[5163,["op",5167,0]],[5169,["root",3527]],[5170,["root",3530]],[5172,["root",3521]],[5173,["root",3518]],[5178,["op",5160,0]],[5180,["op",5161,0]],[5182,["op",5195,0]],[5183,["op",5205,0]],[5185,["op",5206,0]],[5186,["op",5197,0]],[5188,["root",3554]],[5191,["op",5194,0]],[5192,["op",5196,0]],[5198,["root",3557]],[5199,["root",3560]],[5201,["root",3551]],[5202,["root",3548]],[5207,["op",5189,0]],[5209,["op",5190,0]],[5211,["op",5224,0]],[5212,["op",5234,0]],[5214,["op",5235,0]],[5215,["op",5226,0]],[5217,["root",3584]],[5220,["op",5223,0]],[5221,["op",5225,0]],[5227,["root",3587]],[5228,["root",3590]],[5230,["root",3581]],[5231,["root",3578]],[5236,["op",5218,0]],[5238,["op",5219,0]],[5240,["op",5253,0]],[5241,["op",5263,0]],[5243,["op",5264,0]],[5244,["op",5255,0]],[5246,["root",3614]],[5249,["op",5252,0]],[5250,["op",5254,0]],[5256,["root",3617]],[5257,["root",3620]],[5259,["root",3611]],[5260,["root",3608]],[5265,["op",5247,0]],[5267,["op",5248,0]],[5269,["op",5282,0]],[5270,["op",5292,0]],[5272,["op",5293,0]],[5273,["op",5284,0]],[5275,["root",3644]],[5278,["op",5281,0]],[5279,["op",5283,0]],[5285,["root",3647]],[5286,["root",3650]],[5288,["root",3641]],[5289,["root",3638]],[5294,["op",5276,0]],[5296,["op",5277,0]],[5298,["op",5311,0]],[5299,["op",5321,0]],[5301,["op",5322,0]],[5302,["op",5313,0]],[5304,["root",3674]],[5307,["op",5310,0]],[5308,["op",5312,0]],[5314,["root",3677]],[5315,["root",3680]],[5317,["root",3671]],[5318,["root",3668]],[5323,["op",5305,0]],[5325,["op",5306,0]],[5327,["op",5340,0]],[5328,["op",5350,0]],[5330,["op",5351,0]],[5331,["op",5342,0]],[5333,["root",3704]],[5336,["op",5339,0]],[5337,["op",5341,0]],[5343,["root",3707]],[5344,["root",3710]],[5346,["root",3701]],[5347,["root",3698]],[5352,["op",5334,0]],[5354,["op",5335,0]],[5356,["op",5369,0]],[5357,["op",5379,0]],[5359,["op",5380,0]],[5360,["op",5371,0]],[5362,["root",3734]],[5365,["op",5368,0]],[5366,["op",5370,0]],[5372,["root",3737]],[5373,["root",3740]],[5375,["root",3731]],[5376,["root",3728]],[5381,["op",5363,0]],[5383,["op",5364,0]],[5385,["op",5398,0]],[5386,["op",5408,0]],[5388,["op",5409,0]],[5389,["op",5400,0]],[5391,["root",3764]],[5394,["op",5397,0]],[5395,["op",5399,0]],[5401,["root",3767]],[5402,["root",3770]],[5404,["root",3761]],[5405,["root",3758]],[5410,["op",5392,0]],[5412,["op",5393,0]],[5414,["op",5427,0]],[5415,["op",5437,0]],[5417,["op",5438,0]],[5418,["op",5429,0]],[5420,["root",3794]],[5423,["op",5426,0]],[5424,["op",5428,0]],[5430,["root",3797]],[5431,["root",3800]],[5433,["root",3791]],[5434,["root",3788]],[5439,["op",5421,0]],[5441,["op",5422,0]],[5443,["op",5456,0]],[5444,["op",5466,0]],[5446,["op",5467,0]],[5447,["op",5458,0]],[5449,["root",3824]],[5452,["op",5455,0]],[5453,["op",5457,0]],[5459,["root",3827]],[5460,["root",3830]],[5462,["root",3821]],[5463,["root",3818]],[5468,["op",5450,0]],[5470,["op",5451,0]],[5472,["op",5485,0]],[5473,["op",5495,0]],[5475,["op",5496,0]],[5476,["op",5487,0]],[5478,["root",3854]],[5481,["op",5484,0]],[5482,["op",5486,0]],[5488,["root",3857]],[5489,["root",3860]],[5491,["root",3851]],[5492,["root",3848]],[5497,["op",5479,0]],[5499,["op",5480,0]],[5501,["op",5514,0]],[5502,["op",5524,0]],[5504,["op",5525,0]],[5505,["op",5516,0]],[5507,["root",3884]],[5510,["op",5513,0]],[5511,["op",5515,0]],[5517,["root",3887]],[5518,["root",3890]],[5520,["root",3881]],[5521,["root",3878]],[5526,["op",5508,0]],[5528,["op",5509,0]],[5530,["op",5543,0]],[5531,["op",5553,0]],[5533,["op",5554,0]],[5534,["op",5545,0]],[5536,["root",3914]],[5539,["op",5542,0]],[5540,["op",5544,0]],[5546,["root",3917]],[5547,["root",3920]],[5549,["root",3911]],[5550,["root",3908]],[5555,["op",5537,0]],[5557,["op",5538,0]],[5559,["op",5572,0]],[5560,["op",5582,0]],[5562,["op",5583,0]],[5563,["op",5574,0]],[5565,["root",3944]],[5568,["op",5571,0]],[5569,["op",5573,0]],[5575,["root",3947]],[5576,["root",3950]],[5578,["root",3941]],[5579,["root",3938]],[5584,["op",5566,0]],[5586,["op",5567,0]],[5588,["op",5601,0]],[5589,["op",5611,0]],[5591,["op",5612,0]],[5592,["op",5603,0]],[5594,["root",3974]],[5597,["op",5600,0]],[5598,["op",5602,0]],[5604,["root",3977]],[5605,["root",3980]],[5607,["root",3971]],[5608,["root",3968]],[5613,["op",5595,0]],[5615,["op",5596,0]],[5617,["op",5630,0]],[5618,["op",5640,0]],[5620,["op",5641,0]],[5621,["op",5632,0]],[5623,["root",4004]],[5626,["op",5629,0]],[5627,["op",5631,0]],[5633,["root",4007]],[5634,["root",4010]],[5636,["root",4001]],[5637,["root",3998]],[5642,["op",5624,0]],[5644,["op",5625,0]],[5646,["op",5659,0]],[5647,["op",5669,0]],[5649,["op",5670,0]],[5650,["op",5661,0]],[5652,["root",4034]],[5655,["op",5658,0]],[5656,["op",5660,0]],[5662,["root",4037]],[5663,["root",4040]],[5665,["root",4031]],[5666,["root",4028]],[5671,["op",5653,0]],[5673,["op",5654,0]],[5675,["op",5688,0]],[5676,["op",5698,0]],[5678,["op",5699,0]],[5679,["op",5690,0]],[5681,["root",4064]],[5684,["op",5687,0]],[5685,["op",5689,0]],[5691,["root",4067]],[5692,["root",4070]],[5694,["root",4061]],[5695,["root",4058]],[5700,["op",5682,0]],[5702,["op",5683,0]],[5704,["op",5717,0]],[5705,["op",5727,0]],[5707,["op",5728,0]],[5708,["op",5719,0]],[5710,["root",4094]],[5713,["op",5716,0]],[5714,["op",5718,0]],[5720,["root",4097]],[5721,["root",4100]],[5723,["root",4091]],[5724,["root",4088]],[5729,["op",5711,0]],[5731,["op",5712,0]],[5733,["op",5746,0]],[5734,["op",5756,0]],[5736,["op",5757,0]],[5737,["op",5748,0]],[5739,["root",4124]],[5742,["op",5745,0]],[5743,["op",5747,0]],[5749,["root",4127]],[5750,["root",4130]],[5752,["root",4121]],[5753,["root",4118]],[5758,["op",5740,0]],[5760,["op",5741,0]],[5762,["op",5775,0]],[5763,["op",5785,0]],[5765,["op",5786,0]],[5766,["op",5777,0]],[5768,["root",4154]],[5771,["op",5774,0]],[5772,["op",5776,0]],[5778,["root",4157]],[5779,["root",4160]],[5781,["root",4151]],[5782,["root",4148]],[5787,["op",5769,0]],[5789,["op",5770,0]],[5791,["op",5804,0]],[5792,["op",5814,0]],[5794,["op",5815,0]],[5795,["op",5806,0]],[5797,["root",4184]],[5800,["op",5803,0]],[5801,["op",5805,0]],[5807,["root",4187]],[5808,["root",4190]],[5810,["root",4181]],[5811,["root",4178]],[5816,["op",5798,0]],[5818,["op",5799,0]],[5820,["op",5833,0]],[5821,["op",5843,0]],[5823,["op",5844,0]],[5824,["op",5835,0]],[5826,["root",4214]],[5829,["op",5832,0]],[5830,["op",5834,0]],[5836,["root",4217]],[5837,["root",4220]],[5839,["root",4211]],[5840,["root",4208]],[5845,["op",5827,0]],[5847,["op",5828,0]],[5849,["op",5862,0]],[5850,["op",5872,0]],[5852,["op",5873,0]],[5853,["op",5864,0]],[5855,["root",4244]],[5858,["op",5861,0]],[5859,["op",5863,0]],[5865,["root",4247]],[5866,["root",4250]],[5868,["root",4241]],[5869,["root",4238]],[5874,["op",5856,0]],[5876,["op",5857,0]],[5878,["op",5891,0]],[5879,["op",5901,0]],[5881,["op",5902,0]],[5882,["op",5893,0]],[5884,["root",4274]],[5887,["op",5890,0]],[5888,["op",5892,0]],[5894,["root",4277]],[5895,["root",4280]],[5897,["root",4271]],[5898,["root",4268]],[5903,["op",5885,0]],[5905,["op",5886,0]],[5907,["op",5920,0]],[5908,["op",5930,0]],[5910,["op",5931,0]],[5911,["op",5922,0]],[5913,["root",4304]],[5916,["op",5919,0]],[5917,["op",5921,0]],[5923,["root",4307]],[5924,["root",4310]],[5926,["root",4301]],[5927,["root",4298]],[5932,["op",5914,0]],[5934,["op",5915,0]],[5936,["op",5949,0]],[5937,["op",5959,0]],[5939,["op",5960,0]],[5940,["op",5951,0]],[5942,["root",4334]],[5945,["op",5948,0]],[5946,["op",5950,0]],[5952,["root",4337]],[5953,["root",4340]],[5955,["root",4331]],[5956,["root",4328]],[5961,["op",5943,0]],[5963,["op",5944,0]],[5965,["op",5978,0]],[5966,["op",5988,0]],[5968,["op",5989,0]],[5969,["op",5980,0]],[5971,["root",4364]],[5974,["op",5977,0]],[5975,["op",5979,0]],[5981,["root",4367]],[5982,["root",4370]],[5984,["root",4361]],[5985,["root",4358]],[5990,["op",5972,0]],[5992,["op",5973,0]],[5994,["op",6007,0]],[5995,["op",6017,0]],[5997,["op",6018,0]],[5998,["op",6009,0]],[6000,["root",4394]],[6003,["op",6006,0]],[6004,["op",6008,0]],[6010,["root",4397]],[6011,["root",4400]],[6013,["root",4391]],[6014,["root",4388]],[6019,["op",6001,0]],[6021,["op",6002,0]],[6023,["op",6036,0]],[6024,["op",6046,0]],[6026,["op",6047,0]],[6027,["op",6038,0]],[6029,["root",4424]],[6032,["op",6035,0]],[6033,["op",6037,0]],[6039,["root",4427]],[6040,["root",4430]],[6042,["root",4421]],[6043,["root",4418]],[6048,["op",6030,0]],[6050,["op",6031,0]],[6052,["op",6065,0]],[6053,["op",6075,0]],[6055,["op",6076,0]],[6056,["op",6067,0]],[6058,["root",4454]],[6061,["op",6064,0]],[6062,["op",6066,0]],[6068,["root",4457]],[6069,["root",4460]],[6071,["root",4451]],[6072,["root",4448]],[6077,["op",6059,0]],[6079,["op",6060,0]],[6081,["op",6094,0]],[6082,["op",6104,0]],[6084,["op",6105,0]],[6085,["op",6096,0]],[6087,["root",4484]],[6090,["op",6093,0]],[6091,["op",6095,0]],[6097,["root",4487]],[6098,["root",4490]],[6100,["root",4481]],[6101,["root",4478]],[6106,["op",6088,0]],[6108,["op",6089,0]],[6110,["op",6123,0]],[6111,["op",6133,0]],[6113,["op",6134,0]],[6114,["op",6125,0]],[6116,["root",4514]],[6119,["op",6122,0]],[6120,["op",6124,0]],[6126,["root",4517]],[6127,["root",4520]],[6129,["root",4511]],[6130,["root",4508]],[6135,["op",6117,0]],[6137,["op",6118,0]],[6139,["op",6152,0]],[6140,["op",6162,0]],[6142,["op",6163,0]],[6143,["op",6154,0]],[6145,["root",4544]],[6148,["op",6151,0]],[6149,["op",6153,0]],[6155,["root",4547]],[6156,["root",4550]],[6158,["root",4541]],[6159,["root",4538]],[6164,["op",6146,0]],[6166,["op",6147,0]],[6168,["op",6181,0]],[6169,["op",6191,0]],[6171,["op",6192,0]],[6172,["op",6183,0]],[6174,["root",4574]],[6177,["op",6180,0]],[6178,["op",6182,0]],[6184,["root",4577]],[6185,["root",4580]],[6187,["root",4571]],[6188,["root",4568]],[6193,["op",6175,0]],[6195,["op",6176,0]],[6197,["op",6210,0]],[6198,["op",6220,0]],[6200,["op",6221,0]],[6201,["op",6212,0]],[6203,["root",4604]],[6206,["op",6209,0]],[6207,["op",6211,0]],[6213,["root",4607]],[6214,["root",4610]],[6216,["root",4601]],[6217,["root",4598]],[6222,["op",6204,0]],[6224,["op",6205,0]],[6226,["op",6239,0]],[6227,["op",6249,0]],[6229,["op",6250,0]],[6230,["op",6241,0]],[6232,["root",4634]],[6235,["op",6238,0]],[6236,["op",6240,0]],[6242,["root",4637]],[6243,["root",4640]],[6245,["root",4631]],[6246,["root",4628]],[6251,["op",6233,0]],[6253,["op",6234,0]],[6255,["op",6268,0]],[6256,["op",6278,0]],[6258,["op",6279,0]],[6259,["op",6270,0]],[6261,["root",4664]],[6264,["op",6267,0]],[6265,["op",6269,0]],[6271,["root",4667]],[6272,["root",4670]],[6274,["root",4661]],[6275,["root",4658]],[6280,["op",6262,0]],[6282,["op",6263,0]],[6284,["op",6297,0]],[6285,["op",6307,0]],[6287,["op",6308,0]],[6288,["op",6299,0]],[6290,["root",4694]],[6293,["op",6296,0]],[6294,["op",6298,0]],[6300,["root",4697]],[6301,["root",4700]],[6303,["root",4691]],[6304,["root",4688]],[6309,["op",6291,0]],[6311,["op",6292,0]],[6313,["op",6326,0]],[6314,["op",6336,0]],[6316,["op",6337,0]],[6317,["op",6328,0]],[6319,["root",4724]],[6322,["op",6325,0]],[6323,["op",6327,0]],[6329,["root",4727]],[6330,["root",4730]],[6332,["root",4721]],[6333,["root",4718]],[6338,["op",6320,0]],[6340,["op",6321,0]],[6342,["op",6355,0]],[6343,["op",6365,0]],[6345,["op",6366,0]],[6346,["op",6357,0]],[6348,["root",4754]],[6351,["op",6354,0]],[6352,["op",6356,0]],[6358,["root",4757]],[6359,["root",4760]],[6361,["root",4751]],[6362,["root",4748]],[6367,["op",6349,0]],[6369,["op",6350,0]],[6371,["op",6384,0]],[6372,["op",6394,0]],[6374,["op",6395,0]],[6375,["op",6386,0]],[6377,["root",4784]],[6380,["op",6383,0]],[6381,["op",6385,0]],[6387,["root",4787]],[6388,["root",4790]],[6390,["root",4781]],[6391,["root",4778]],[6396,["op",6378,0]],[6398,["op",6379,0]],[6400,["op",6413,0]],[6401,["op",6423,0]],[6403,["op",6424,0]],[6404,["op",6415,0]],[6406,["root",4814]],[6409,["op",6412,0]],[6410,["op",6414,0]],[6416,["root",4817]],[6417,["root",4820]],[6419,["root",4811]],[6420,["root",4808]],[6425,["op",6407,0]],[6427,["op",6408,0]],[6429,["op",6442,0]],[6430,["op",6452,0]],[6432,["op",6453,0]],[6433,["op",6444,0]],[6435,["root",4844]],[6438,["op",6441,0]],[6439,["op",6443,0]],[6445,["root",4847]],[6446,["root",4850]],[6448,["root",4841]],[6449,["root",4838]],[6454,["op",6436,0]],[6456,["op",6437,0]],[6458,["op",6471,0]],[6459,["op",6481,0]],[6461,["op",6482,0]],[6462,["op",6473,0]],[6464,["root",4874]],[6467,["op",6470,0]],[6468,["op",6472,0]],[6474,["root",4877]],[6475,["root",4880]],[6477,["root",4871]],[6478,["root",4868]],[6483,["op",6465,0]],[6485,["op",6466,0]],[6487,["op",6500,0]],[6488,["op",6510,0]],[6490,["op",6511,0]],[6491,["op",6502,0]],[6493,["root",4904]],[6496,["op",6499,0]],[6497,["op",6501,0]],[6503,["root",4907]],[6504,["root",4910]],[6506,["root",4901]],[6507,["root",4898]],[6512,["op",6494,0]],[6514,["op",6495,0]],[6516,["op",6529,0]],[6517,["op",6539,0]],[6519,["op",6540,0]],[6520,["op",6531,0]],[6522,["root",4934]],[6525,["op",6528,0]],[6526,["op",6530,0]],[6532,["root",4937]],[6533,["root",4940]],[6535,["root",4931]],[6536,["root",4928]],[6541,["op",6523,0]],[6543,["op",6524,0]],[6545,["op",6558,0]],[6546,["op",6568,0]],[6548,["op",6569,0]],[6549,["op",6560,0]],[6551,["root",4964]],[6554,["op",6557,0]],[6555,["op",6559,0]],[6561,["root",4967]],[6562,["root",4970]],[6564,["root",4961]],[6565,["root",4958]],[6570,["op",6552,0]],[6572,["op",6553,0]],[6574,["op",6587,0]],[6575,["op",6597,0]],[6577,["op",6598,0]],[6578,["op",6589,0]],[6580,["root",4994]],[6583,["op",6586,0]],[6584,["op",6588,0]],[6590,["root",4997]],[6591,["root",5000]],[6593,["root",4991]],[6594,["root",4988]],[6599,["op",6581,0]],[6601,["op",6582,0]],[6603,["op",6616,0]],[6604,["op",6626,0]],[6606,["op",6627,0]],[6607,["op",6618,0]],[6609,["root",5024]],[6612,["op",6615,0]],[6613,["op",6617,0]],[6619,["root",5027]],[6620,["root",5030]],[6622,["root",5021]],[6623,["root",5018]],[6628,["op",6610,0]],[6630,["op",6611,0]],[6632,["op",6645,0]],[6633,["op",6655,0]],[6635,["op",6656,0]],[6636,["op",6647,0]],[6638,["root",5054]],[6641,["op",6644,0]],[6642,["op",6646,0]],[6648,["root",5057]],[6649,["root",5060]],[6651,["root",5051]],[6652,["root",5048]],[6657,["op",6639,0]],[6659,["op",6640,0]],[6661,["op",6674,0]],[6662,["op",6684,0]],[6664,["op",6685,0]],[6665,["op",6676,0]],[6667,["root",5084]],[6670,["op",6673,0]],[6671,["op",6675,0]],[6677,["root",5087]],[6678,["root",5090]],[6680,["root",5081]],[6681,["root",5078]],[6686,["op",6668,0]],[6688,["op",6669,0]],[6690,["op",6703,0]],[6691,["op",6713,0]],[6693,["op",6714,0]],[6694,["op",6705,0]],[6696,["root",5114]],[6699,["op",6702,0]],[6700,["op",6704,0]],[6706,["root",5117]],[6707,["root",5120]],[6709,["root",5111]],[6710,["root",5108]],[6715,["op",6697,0]],[6717,["op",6698,0]],[6719,["op",6732,0]],[6720,["op",6742,0]],[6722,["op",6743,0]],[6723,["op",6734,0]],[6725,["root",5144]],[6728,["op",6731,0]],[6729,["op",6733,0]],[6735,["root",5147]],[6736,["root",5150]],[6738,["root",5141]],[6739,["root",5138]],[6744,["op",6726,0]],[6746,["op",6727,0]],[6748,["op",6761,0]],[6749,["op",6771,0]],[6751,["op",6772,0]],[6752,["op",6763,0]],[6754,["root",5174]],[6757,["op",6760,0]],[6758,["op",6762,0]],[6764,["root",5177]],[6765,["root",5180]],[6767,["root",5171]],[6768,["root",5168]],[6773,["op",6755,0]],[6775,["op",6756,0]],[6777,["op",6790,0]],[6778,["op",6800,0]],[6780,["op",6801,0]],[6781,["op",6792,0]],[6783,["root",5204]],[6786,["op",6789,0]],[6787,["op",6791,0]],[6793,["root",5207]],[6794,["root",5210]],[6796,["root",5201]],[6797,["root",5198]],[6802,["op",6784,0]],[6804,["op",6785,0]],[6806,["op",6819,0]],[6807,["op",6829,0]],[6809,["op",6830,0]],[6810,["op",6821,0]],[6812,["root",5234]],[6815,["op",6818,0]],[6816,["op",6820,0]],[6822,["root",5237]],[6823,["root",5240]],[6825,["root",5231]],[6826,["root",5228]],[6831,["op",6813,0]],[6833,["op",6814,0]],[6835,["op",6848,0]],[6836,["op",6858,0]],[6838,["op",6859,0]],[6839,["op",6850,0]],[6841,["root",5264]],[6844,["op",6847,0]],[6845,["op",6849,0]],[6851,["root",5267]],[6852,["root",5270]],[6854,["root",5261]],[6855,["root",5258]],[6860,["op",6842,0]],[6862,["op",6843,0]],[6864,["op",6877,0]],[6865,["op",6887,0]],[6867,["op",6888,0]],[6868,["op",6879,0]],[6870,["root",5294]],[6873,["op",6876,0]],[6874,["op",6878,0]],[6880,["root",5297]],[6881,["root",5300]],[6883,["root",5291]],[6884,["root",5288]],[6889,["op",6871,0]],[6891,["op",6872,0]],[6893,["op",6906,0]],[6894,["op",6916,0]],[6896,["op",6917,0]],[6897,["op",6908,0]],[6899,["root",5324]],[6902,["op",6905,0]],[6903,["op",6907,0]],[6909,["root",5327]],[6910,["root",5330]],[6912,["root",5321]],[6913,["root",5318]],[6918,["op",6900,0]],[6920,["op",6901,0]],[6922,["op",6935,0]],[6923,["op",6945,0]],[6925,["op",6946,0]],[6926,["op",6937,0]],[6928,["root",5354]],[6931,["op",6934,0]],[6932,["op",6936,0]],[6938,["root",5357]],[6939,["root",5360]],[6941,["root",5351]],[6942,["root",5348]],[6947,["op",6929,0]],[6949,["op",6930,0]],[6951,["op",6964,0]],[6952,["op",6974,0]],[6954,["op",6975,0]],[6955,["op",6966,0]],[6957,["root",5384]],[6960,["op",6963,0]],[6961,["op",6965,0]],[6967,["root",5387]],[6968,["root",5390]],[6970,["root",5381]],[6971,["root",5378]],[6976,["op",6958,0]],[6978,["op",6959,0]],[6980,["op",6993,0]],[6981,["op",7003,0]],[6983,["op",7004,0]],[6984,["op",6995,0]],[6986,["root",5414]],[6989,["op",6992,0]],[6990,["op",6994,0]],[6996,["root",5417]],[6997,["root",5420]],[6999,["root",5411]],[7000,["root",5408]],[7005,["op",6987,0]],[7007,["op",6988,0]],[7009,["op",7022,0]],[7010,["op",7032,0]],[7012,["op",7033,0]],[7013,["op",7024,0]],[7015,["root",5444]],[7018,["op",7021,0]],[7019,["op",7023,0]],[7025,["root",5447]],[7026,["root",5450]],[7028,["root",5441]],[7029,["root",5438]],[7034,["op",7016,0]],[7036,["op",7017,0]],[7038,["op",7051,0]],[7039,["op",7061,0]],[7041,["op",7062,0]],[7042,["op",7053,0]],[7044,["root",5474]],[7047,["op",7050,0]],[7048,["op",7052,0]],[7054,["root",5477]],[7055,["root",5480]],[7057,["root",5471]],[7058,["root",5468]],[7063,["op",7045,0]],[7065,["op",7046,0]],[7067,["op",7080,0]],[7068,["op",7090,0]],[7070,["op",7091,0]],[7071,["op",7082,0]],[7073,["root",5504]],[7076,["op",7079,0]],[7077,["op",7081,0]],[7083,["root",5507]],[7084,["root",5510]],[7086,["root",5501]],[7087,["root",5498]],[7092,["op",7074,0]],[7094,["op",7075,0]],[7096,["op",7109,0]],[7097,["op",7119,0]],[7099,["op",7120,0]],[7100,["op",7111,0]],[7102,["root",5534]],[7105,["op",7108,0]],[7106,["op",7110,0]],[7112,["root",5537]],[7113,["root",5540]],[7115,["root",5531]],[7116,["root",5528]],[7121,["op",7103,0]],[7123,["op",7104,0]],[7125,["op",7138,0]],[7126,["op",7148,0]],[7128,["op",7149,0]],[7129,["op",7140,0]],[7131,["root",5564]],[7134,["op",7137,0]],[7135,["op",7139,0]],[7141,["root",5567]],[7142,["root",5570]],[7144,["root",5561]],[7145,["root",5558]],[7150,["op",7132,0]],[7152,["op",7133,0]],[7154,["op",7167,0]],[7155,["op",7177,0]],[7157,["op",7178,0]],[7158,["op",7169,0]],[7160,["root",5594]],[7163,["op",7166,0]],[7164,["op",7168,0]],[7170,["root",5597]],[7171,["root",5600]],[7173,["root",5591]],[7174,["root",5588]],[7179,["op",7161,0]],[7181,["op",7162,0]],[7183,["op",7196,0]],[7184,["op",7206,0]],[7186,["op",7207,0]],[7187,["op",7198,0]],[7189,["root",5624]],[7192,["op",7195,0]],[7193,["op",7197,0]],[7199,["root",5627]],[7200,["root",5630]],[7202,["root",5621]],[7203,["root",5618]],[7208,["op",7190,0]],[7210,["op",7191,0]],[7212,["op",7225,0]],[7213,["op",7235,0]],[7215,["op",7236,0]],[7216,["op",7227,0]],[7218,["root",5654]],[7221,["op",7224,0]],[7222,["op",7226,0]],[7228,["root",5657]],[7229,["root",5660]],[7231,["root",5651]],[7232,["root",5648]],[7237,["op",7219,0]],[7239,["op",7220,0]],[7241,["op",7254,0]],[7242,["op",7264,0]],[7244,["op",7265,0]],[7245,["op",7256,0]],[7247,["root",5684]],[7250,["op",7253,0]],[7251,["op",7255,0]],[7257,["root",5687]],[7258,["root",5690]],[7260,["root",5681]],[7261,["root",5678]],[7266,["op",7248,0]],[7268,["op",7249,0]],[7270,["op",7283,0]],[7271,["op",7293,0]],[7273,["op",7294,0]],[7274,["op",7285,0]],[7276,["root",5714]],[7279,["op",7282,0]],[7280,["op",7284,0]],[7286,["root",5717]],[7287,["root",5720]],[7289,["root",5711]],[7290,["root",5708]],[7295,["op",7277,0]],[7297,["op",7278,0]],[7299,["op",7312,0]],[7300,["op",7322,0]],[7302,["op",7323,0]],[7303,["op",7314,0]],[7305,["root",5744]],[7308,["op",7311,0]],[7309,["op",7313,0]],[7315,["root",5747]],[7316,["root",5750]],[7318,["root",5741]],[7319,["root",5738]],[7324,["op",7306,0]],[7326,["op",7307,0]],[7328,["op",7341,0]],[7329,["op",7351,0]],[7331,["op",7352,0]],[7332,["op",7343,0]],[7334,["root",5774]],[7337,["op",7340,0]],[7338,["op",7342,0]],[7344,["root",5777]],[7345,["root",5780]],[7347,["root",5771]],[7348,["root",5768]],[7353,["op",7335,0]],[7355,["op",7336,0]],[7357,["op",7370,0]],[7358,["op",7380,0]],[7360,["op",7381,0]],[7361,["op",7372,0]],[7363,["root",5804]],[7366,["op",7369,0]],[7367,["op",7371,0]],[7373,["root",5807]],[7374,["root",5810]],[7376,["root",5801]],[7377,["root",5798]],[7382,["op",7364,0]],[7384,["op",7365,0]],[7386,["op",7399,0]],[7387,["op",7409,0]],[7389,["op",7410,0]],[7390,["op",7401,0]],[7392,["root",5834]],[7395,["op",7398,0]],[7396,["op",7400,0]],[7402,["root",5837]],[7403,["root",5840]],[7405,["root",5831]],[7406,["root",5828]],[7411,["op",7393,0]],[7413,["op",7394,0]],[7415,["op",7428,0]],[7416,["op",7438,0]],[7418,["op",7439,0]],[7419,["op",7430,0]],[7421,["root",5864]],[7424,["op",7427,0]],[7425,["op",7429,0]],[7431,["root",5867]],[7432,["root",5870]],[7434,["root",5861]],[7435,["root",5858]],[7440,["op",7422,0]],[7442,["op",7423,0]],[7444,["op",7457,0]],[7445,["op",7467,0]],[7447,["op",7468,0]],[7448,["op",7459,0]],[7450,["root",5894]],[7453,["op",7456,0]],[7454,["op",7458,0]],[7460,["root",5897]],[7461,["root",5900]],[7463,["root",5891]],[7464,["root",5888]],[7469,["op",7451,0]],[7471,["op",7452,0]],[7473,["op",7486,0]],[7474,["op",7496,0]],[7476,["op",7497,0]],[7477,["op",7488,0]],[7479,["root",5924]],[7482,["op",7485,0]],[7483,["op",7487,0]],[7489,["root",5927]],[7490,["root",5930]],[7492,["root",5921]],[7493,["root",5918]],[7498,["op",7480,0]],[7500,["op",7481,0]],[7502,["op",7515,0]],[7503,["op",7525,0]],[7505,["op",7526,0]],[7506,["op",7517,0]],[7508,["root",5954]],[7511,["op",7514,0]],[7512,["op",7516,0]],[7518,["root",5957]],[7519,["root",5960]],[7521,["root",5951]],[7522,["root",5948]],[7527,["op",7509,0]],[7529,["op",7510,0]],[7531,["op",7544,0]],[7532,["op",7554,0]],[7534,["op",7555,0]],[7535,["op",7546,0]],[7537,["root",5984]],[7540,["op",7543,0]],[7541,["op",7545,0]],[7547,["root",5987]],[7548,["root",5990]],[7550,["root",5981]],[7551,["root",5978]],[7556,["op",7538,0]],[7558,["op",7539,0]],[7560,["op",7573,0]],[7561,["op",7583,0]],[7563,["op",7584,0]],[7564,["op",7575,0]],[7566,["root",6014]],[7569,["op",7572,0]],[7570,["op",7574,0]],[7576,["root",6017]],[7577,["root",6020]],[7579,["root",6011]],[7580,["root",6008]],[7585,["op",7567,0]],[7587,["op",7568,0]],[7589,["op",7602,0]],[7590,["op",7612,0]],[7592,["op",7613,0]],[7593,["op",7604,0]],[7595,["root",6044]],[7598,["op",7601,0]],[7599,["op",7603,0]],[7605,["root",6047]],[7606,["root",6050]],[7608,["root",6041]],[7609,["root",6038]],[7614,["op",7596,0]],[7616,["op",7597,0]],[7618,["op",7631,0]],[7619,["op",7641,0]],[7621,["op",7642,0]],[7622,["op",7633,0]],[7624,["root",6074]],[7627,["op",7630,0]],[7628,["op",7632,0]],[7634,["root",6077]],[7635,["root",6080]],[7637,["root",6071]],[7638,["root",6068]],[7643,["op",7625,0]],[7645,["op",7626,0]],[7647,["op",7660,0]],[7648,["op",7670,0]],[7650,["op",7671,0]],[7651,["op",7662,0]],[7653,["root",6104]],[7656,["op",7659,0]],[7657,["op",7661,0]],[7663,["root",6107]],[7664,["root",6110]],[7666,["root",6101]],[7667,["root",6098]],[7672,["op",7654,0]],[7674,["op",7655,0]],[7676,["op",7689,0]],[7677,["op",7699,0]],[7679,["op",7700,0]],[7680,["op",7691,0]],[7682,["root",6134]],[7685,["op",7688,0]],[7686,["op",7690,0]],[7692,["root",6137]],[7693,["root",6140]],[7695,["root",6131]],[7696,["root",6128]],[7701,["op",7683,0]],[7703,["op",7684,0]],[7705,["op",7718,0]],[7706,["op",7728,0]],[7708,["op",7729,0]],[7709,["op",7720,0]],[7711,["root",6164]],[7714,["op",7717,0]],[7715,["op",7719,0]],[7721,["root",6167]],[7722,["root",6170]],[7724,["root",6161]],[7725,["root",6158]],[7730,["op",7712,0]],[7732,["op",7713,0]],[7734,["op",7747,0]],[7735,["op",7757,0]],[7737,["op",7758,0]],[7738,["op",7749,0]],[7740,["root",6194]],[7743,["op",7746,0]],[7744,["op",7748,0]],[7750,["root",6197]],[7751,["root",6200]],[7753,["root",6191]],[7754,["root",6188]],[7759,["op",7741,0]],[7761,["op",7742,0]],[7763,["op",7776,0]],[7764,["op",7786,0]],[7766,["op",7787,0]],[7767,["op",7778,0]],[7769,["root",6224]],[7772,["op",7775,0]],[7773,["op",7777,0]],[7779,["root",6227]],[7780,["root",6230]],[7782,["root",6221]],[7783,["root",6218]],[7788,["op",7770,0]],[7790,["op",7771,0]],[7792,["op",7805,0]],[7793,["op",7815,0]],[7795,["op",7816,0]],[7796,["op",7807,0]],[7798,["root",6254]],[7801,["op",7804,0]],[7802,["op",7806,0]],[7808,["root",6257]],[7809,["root",6260]],[7811,["root",6251]],[7812,["root",6248]],[7817,["op",7799,0]],[7819,["op",7800,0]],[7821,["op",7834,0]],[7822,["op",7844,0]],[7824,["op",7845,0]],[7825,["op",7836,0]],[7827,["root",6284]],[7830,["op",7833,0]],[7831,["op",7835,0]],[7837,["root",6287]],[7838,["root",6290]],[7840,["root",6281]],[7841,["root",6278]],[7846,["op",7828,0]],[7848,["op",7829,0]],[7850,["op",7863,0]],[7851,["op",7873,0]],[7853,["op",7874,0]],[7854,["op",7865,0]],[7856,["root",6314]],[7859,["op",7862,0]],[7860,["op",7864,0]],[7866,["root",6317]],[7867,["root",6320]],[7869,["root",6311]],[7870,["root",6308]],[7875,["op",7857,0]],[7877,["op",7858,0]],[7879,["op",7892,0]],[7880,["op",7902,0]],[7882,["op",7903,0]],[7883,["op",7894,0]],[7885,["root",6344]],[7888,["op",7891,0]],[7889,["op",7893,0]],[7895,["root",6347]],[7896,["root",6350]],[7898,["root",6341]],[7899,["root",6338]],[7904,["op",7886,0]],[7906,["op",7887,0]],[7908,["op",7921,0]],[7909,["op",7931,0]],[7911,["op",7932,0]],[7912,["op",7923,0]],[7914,["root",6374]],[7917,["op",7920,0]],[7918,["op",7922,0]],[7924,["root",6377]],[7925,["root",6380]],[7927,["root",6371]],[7928,["root",6368]],[7933,["op",7915,0]],[7935,["op",7916,0]],[7937,["op",7950,0]],[7938,["op",7960,0]],[7940,["op",7961,0]],[7941,["op",7952,0]],[7943,["root",6404]],[7946,["op",7949,0]],[7947,["op",7951,0]],[7953,["root",6407]],[7954,["root",6410]],[7956,["root",6401]],[7957,["root",6398]],[7962,["op",7944,0]],[7964,["op",7945,0]],[7966,["op",7979,0]],[7967,["op",7989,0]],[7969,["op",7990,0]],[7970,["op",7981,0]],[7972,["root",6434]],[7975,["op",7978,0]],[7976,["op",7980,0]],[7982,["root",6437]],[7983,["root",6440]],[7985,["root",6431]],[7986,["root",6428]],[7991,["op",7973,0]],[7993,["op",7974,0]],[7995,["op",8008,0]],[7996,["op",8018,0]],[7998,["op",8019,0]],[7999,["op",8010,0]],[8001,["root",6464]],[8004,["op",8007,0]],[8005,["op",8009,0]],[8011,["root",6467]],[8012,["root",6470]],[8014,["root",6461]],[8015,["root",6458]],[8020,["op",8002,0]],[8022,["op",8003,0]],[8024,["op",8037,0]],[8025,["op",8047,0]],[8027,["op",8048,0]],[8028,["op",8039,0]],[8030,["root",6494]],[8033,["op",8036,0]],[8034,["op",8038,0]],[8040,["root",6497]],[8041,["root",6500]],[8043,["root",6491]],[8044,["root",6488]],[8049,["op",8031,0]],[8051,["op",8032,0]],[8053,["op",8066,0]],[8054,["op",8076,0]],[8056,["op",8077,0]],[8057,["op",8068,0]],[8059,["root",6524]],[8062,["op",8065,0]],[8063,["op",8067,0]],[8069,["root",6527]],[8070,["root",6530]],[8072,["root",6521]],[8073,["root",6518]],[8078,["op",8060,0]],[8080,["op",8061,0]],[8082,["op",8095,0]],[8083,["op",8105,0]],[8085,["op",8106,0]],[8086,["op",8097,0]],[8088,["root",6554]],[8091,["op",8094,0]],[8092,["op",8096,0]],[8098,["root",6557]],[8099,["root",6560]],[8101,["root",6551]],[8102,["root",6548]],[8107,["op",8089,0]],[8109,["op",8090,0]],[8111,["op",8124,0]],[8112,["op",8134,0]],[8114,["op",8135,0]],[8115,["op",8126,0]],[8117,["root",6584]],[8120,["op",8123,0]],[8121,["op",8125,0]],[8127,["root",6587]],[8128,["root",6590]],[8130,["root",6581]],[8131,["root",6578]],[8136,["op",8118,0]],[8138,["op",8119,0]],[8140,["op",8179,0]],[8141,["op",8145,0]],[8142,["op",8215,0]],[8143,["op",8166,1]],[8144,["op",8224,0]],[8145,["op",8252,1]],[8146,["op",8532,0]],[8147,["op",8533,0]],[8148,["op",8550,0]],[8149,["op",8180,0]],[8150,["op",8363,0]],[8151,["op",8564,0]],[8152,["op",8599,0]],[8153,["op",8433,0]],[8154,["op",8188,0]],[8155,["op",8567,0]],[8156,["op",8276,0]],[8157,["op",8390,0]],[8158,["op",8370,0]],[8159,["op",8523,0]],[8160,["op",8565,0]],[8161,["op",8493,1]],[8162,["op",8201,1]],[8163,["op",8437,0]],[8164,["op",8367,0]],[8165,["op",8250,0]],[8166,["op",8426,0]],[8167,["op",8469,0]],[8168,["op",8280,0]],[8170,["op",8434,0]],[8171,["op",8305,0]],[8172,["op",8321,0]],[8173,["op",8185,0]],[8174,["op",8477,0]],[8176,["op",8184,0]],[8178,["op",8351,0]],[8179,["op",8254,0]],[8181,["op",8296,0]],[8182,["op",8598,0]],[8183,["op",8571,0]],[8184,["op",8299,0]],[8185,["op",8537,0]],[8186,["op",8354,0]],[8187,["op",8494,0]],[8189,["op",8162,1]],[8190,["op",8167,1]],[8191,["op",8245,0]],[8192,["op",8240,0]],[8193,["op",8436,0]],[8194,["op",8286,0]],[8195,["op",8435,0]],[8196,["op",8310,0]],[8197,["op",8239,0]],[8198,["op",8238,0]],[8199,["op",8165,0]],[8200,["op",8439,0]],[8201,["op",8348,0]],[8202,["op",8225,0]],[8204,["op",8402,0]],[8205,["op",8463,0]],[8206,["op",8282,1]],[8207,["op",8171,0]],[8208,["op",8589,0]],[8209,["op",8518,0]],[8210,["op",8302,0]],[8211,["op",8303,0]],[8213,["op",8372,0]],[8214,["op",8379,0]],[8216,["op",8159,0]],[8217,["op",8191,0]],[8218,["op",8192,0]],[8220,["op",8466,0]],[8221,["op",8432,0]],[8222,["op",8376,1]],[8224,["op",8362,0]],[8225,["op",8295,0]],[8226,["op",8322,0]],[8227,["op",8395,1]],[8228,["op",8402,1]],[8231,["op",8414,0]],[8233,["op",8387,0]],[8234,["op",8368,0]],[8235,["op",8393,0]],[8236,["op",8489,0]],[8238,["op",8400,1]],[8239,["op",8536,1]],[8240,["op",8574,1]],[8241,["op",8205,1]],[8242,["op",8229,0]],[8243,["op",8405,0]],[8244,["op",8196,1]],[8245,["op",8396,0]],[8246,["op",8315,0]],[8247,["op",8347,0]],[8248,["op",8587,0]],[8249,["op",8337,0]],[8251,["op",8564,1]],[8252,["op",8142,1]],[8257,["op",8581,0]],[8259,["op",8451,0]],[8260,["op",8142,0]],[8261,["op",8312,0]],[8262,["op",8247,1]],[8263,["op",8587,1]],[8264,["op",8326,0]],[8265,["op",8341,0]],[8266,["op",8423,0]],[8268,["op",8422,0]],[8269,["op",8256,0]],[8270,["op",8458,0]],[8271,["op",8189,0]],[8272,["op",8420,0]],[8273,["op",8515,0]],[8274,["op",8559,0]],[8275,["op",8359,0]],[8276,["op",8578,0]],[8277,["op",8282,0]],[8278,["op",8207,0]],[8279,["op",8453,0]],[8281,["op",8259,0]],[8282,["op",8346,0]],[8284,["op",8595,0]],[8285,["op",8148,0]],[8286,["op",8545,0]],[8287,["op",8590,0]],[8289,["op",8585,0]],[8290,["op",8198,0]],[8291,["op",8457,1]],[8292,["op",8170,0]],[8293,["op",8514,0]],[8294,["op",8522,0]],[8295,["op",8203,1]],[8296,["op",8313,0]],[8297,["op",8313,1]],[8298,["op",8534,0]],[8300,["op",8577,0]],[8301,["op",8251,1]],[8303,["op",8375,0]],[8304,["op",8177,1]],[8305,["op",8541,1]],[8306,["op",8468,0]],[8308,["op",8505,0]],[8310,["op",8484,0]],[8311,["op",8469,1]],[8313,["op",8326,1]],[8314,["op",8403,1]],[8315,["op",8395,0]],[8317,["op",8263,0]],[8319,["op",8327,0]],[8320,["op",8595,1]],[8321,["op",8342,0]],[8323,["op",8237,0]],[8324,["op",8389,0]],[8326,["op",8319,0]],[8328,["op",8462,1]],[8329,["op",8328,0]],[8330,["op",8475,0]],[8331,["op",8290,0]],[8332,["op",8398,0]],[8333,["op",8497,0]],[8335,["op",8510,0]],[8336,["op",8325,1]],[8337,["op",8580,0]],[8338,["op",8158,1]],[8339,["op",8440,0]],[8340,["op",8168,0]],[8341,["op",8283,0]],[8342,["op",8531,1]],[8343,["op",8152,1]],[8344,["op",8289,0]],[8345,["op",8215,1]],[8346,["op",8210,0]],[8347,["op",8396,1]],[8351,["op",8372,1]],[8352,["op",8447,0]],[8353,["op",8303,1]],[8354,["op",8572,0]],[8356,["op",8309,0]],[8357,["op",8446,0]],[8358,["op",8455,0]],[8360,["op",8258,0]],[8361,["op",8318,1]],[8362,["op",8439,1]],[8363,["op",8219,1]],[8365,["op",8470,0]],[8366,["op",8307,1]],[8367,["op",8485,0]],[8370,["op",8273,0]],[8371,["op",8524,1]],[8372,["op",8597,0]],[8373,["op",8500,0]],[8376,["op",8269,0]],[8377,["op",8270,0]],[8378,["op",8444,0]],[8379,["op",8592,0]],[8380,["op",8377,0]],[8381,["op",8438,1]],[8382,["op",8480,0]],[8383,["op",8187,0]],[8384,["op",8301,0]],[8385,["op",8393,1]],[8386,["op",8485,1]],[8388,["op",8230,0]],[8389,["op",8421,0]],[8391,["op",8555,0]],[8392,["op",8287,1]],[8394,["op",8552,0]],[8395,["op",8388,1]],[8396,["op",8464,1]],[8399,["op",8576,0]],[8400,["op",8200,0]],[8402,["op",8323,0]],[8403,["op",8146,0]],[8404,["op",8318,0]],[8405,["op",8507,0]],[8406,["op",8554,0]],[8407,["op",8470,1]],[8408,["op",8463,1]],[8410,["op",8406,0]],[8411,["op",8298,0]],[8412,["op",8525,0]],[8414,["op",8373,0]],[8415,["op",8562,0]],[8416,["op",8219,0]],[8417,["op",8588,0]],[8418,["op",8408,0]],[8419,["op",8471,0]],[8420,["op",8552,1]],[8421,["op",8342,1]],[8422,["op",8479,0]],[8424,["op",8530,0]],[8425,["op",8553,0]],[8426,["op",8460,0]],[8427,["op",8335,0]],[8429,["op",8513,0]],[8432,["op",8563,1]],[8434,["op",8557,0]],[8435,["op",8429,0]],[8437,["op",8399,1]],[8438,["op",8504,0]],[8441,["op",8516,0]],[8443,["op",8235,0]],[8444,["op",8368,1]],[8449,["op",8472,0]],[8451,["op",8288,0]],[8453,["op",8240,1]],[8454,["op",8459,0]],[8457,["op",8462,0]],[8458,["op",8553,1]],[8460,["op",8392,0]],[8461,["op",8254,1]],[8464,["op",8255,0]],[8465,["op",8474,0]],[8466,["op",8505,1]],[8468,["op",8472,1]],[8469,["op",8248,0]],[8472,["op",8203,0]],[8473,["op",8586,0]],[8475,["op",8526,0]],[8476,["op",8495,0]],[8481,["op",8381,0]],[8482,["op",8480,1]],[8490,["op",8593,0]],[8491,["op",8449,0]],[8493,["op",8332,0]],[8494,["op",8506,0]],[8495,["op",8566,0]],[8497,["op",8570,0]],[8499,["op",8413,0]],[8502,["op",8305,1]],[8506,["op",8528,1]],[8507,["op",8419,1]],[8509,["op",8554,1]],[8510,["op",8583,1]],[8512,["op",8201,0]],[8517,["op",8452,0]],[8518,["op",8548,0]],[8520,["op",8474,1]],[8522,["op",8486,1]],[8524,["op",8487,0]],[8526,["op",8428,0]],[8529,["op",8413,1]],[8532,["op",8578,1]],[8534,["op",8576,1]],[8535,["op",8392,1]],[8536,["op",8441,0]],[8538,["op",8442,0]],[8541,["op",8175,0]],[8547,["op",8151,0]],[8549,["op",8446,1]],[8551,["op",8253,0]],[8559,["op",8448,1]],[8560,["op",8417,1]],[8565,["op",8207,1]],[8567,["op",8488,0]],[8569,["op",8309,1]],[8571,["op",8546,1]],[8574,["op",8523,1]],[8582,["op",8275,0]],[8603,["op",8642,0]],[8604,["op",8608,0]],[8605,["op",8678,0]],[8606,["op",8629,1]],[8607,["op",8687,0]],[8608,["op",8715,1]],[8609,["op",8995,0]],[8610,["op",8996,0]],[8611,["op",9013,0]],[8612,["op",8643,0]],[8613,["op",8826,0]],[8614,["op",9027,0]],[8615,["op",9062,0]],[8616,["op",8896,0]],[8617,["op",8651,0]],[8618,["op",9030,0]],[8619,["op",8739,0]],[8620,["op",8853,0]],[8621,["op",8833,0]],[8622,["op",8986,0]],[8623,["op",9028,0]],[8624,["op",8956,1]],[8625,["op",8664,1]],[8626,["op",8900,0]],[8627,["op",8830,0]],[8628,["op",8713,0]],[8629,["op",8889,0]],[8630,["op",8932,0]],[8631,["op",8743,0]],[8633,["op",8897,0]],[8634,["op",8768,0]],[8635,["op",8784,0]],[8636,["op",8648,0]],[8637,["op",8940,0]],[8639,["op",8647,0]],[8641,["op",8814,0]],[8642,["op",8717,0]],[8644,["op",8759,0]],[8645,["op",9061,0]],[8646,["op",9034,0]],[8647,["op",8762,0]],[8648,["op",9000,0]],[8649,["op",8817,0]],[8650,["op",8957,0]],[8652,["op",8625,1]],[8653,["op",8630,1]],[8654,["op",8708,0]],[8655,["op",8703,0]],[8656,["op",8899,0]],[8657,["op",8749,0]],[8658,["op",8898,0]],[8659,["op",8773,0]],[8660,["op",8702,0]],[8661,["op",8701,0]],[8662,["op",8628,0]],[8663,["op",8902,0]],[8664,["op",8811,0]],[8665,["op",8688,0]],[8667,["op",8865,0]],[8668,["op",8926,0]],[8669,["op",8745,1]],[8670,["op",8634,0]],[8671,["op",9052,0]],[8672,["op",8981,0]],[8673,["op",8765,0]],[8674,["op",8766,0]],[8676,["op",8835,0]],[8677,["op",8842,0]],[8679,["op",8622,0]],[8680,["op",8654,0]],[8681,["op",8655,0]],[8683,["op",8929,0]],[8684,["op",8895,0]],[8685,["op",8839,1]],[8687,["op",8825,0]],[8688,["op",8758,0]],[8689,["op",8785,0]],[8690,["op",8858,1]],[8691,["op",8865,1]],[8694,["op",8877,0]],[8696,["op",8850,0]],[8697,["op",8831,0]],[8698,["op",8856,0]],[8699,["op",8952,0]],[8701,["op",8863,1]],[8702,["op",8999,1]],[8703,["op",9037,1]],[8704,["op",8668,1]],[8705,["op",8692,0]],[8706,["op",8868,0]],[8707,["op",8659,1]],[8708,["op",8859,0]],[8709,["op",8778,0]],[8710,["op",8810,0]],[8711,["op",9050,0]],[8712,["op",8800,0]],[8714,["op",9027,1]],[8715,["op",8605,1]],[8720,["op",9044,0]],[8722,["op",8914,0]],[8723,["op",8605,0]],[8724,["op",8775,0]],[8725,["op",8710,1]],[8726,["op",9050,1]],[8727,["op",8789,0]],[8728,["op",8804,0]],[8729,["op",8886,0]],[8731,["op",8885,0]],[8732,["op",8719,0]],[8733,["op",8921,0]],[8734,["op",8652,0]],[8735,["op",8883,0]],[8736,["op",8978,0]],[8737,["op",9022,0]],[8738,["op",8822,0]],[8739,["op",9041,0]],[8740,["op",8745,0]],[8741,["op",8670,0]],[8742,["op",8916,0]],[8744,["op",8722,0]],[8745,["op",8809,0]],[8747,["op",9058,0]],[8748,["op",8611,0]],[8749,["op",9008,0]],[8750,["op",9053,0]],[8752,["op",9048,0]],[8753,["op",8661,0]],[8754,["op",8920,1]],[8755,["op",8633,0]],[8756,["op",8977,0]],[8757,["op",8985,0]],[8758,["op",8666,1]],[8759,["op",8776,0]],[8760,["op",8776,1]],[8761,["op",8997,0]],[8763,["op",9040,0]],[8764,["op",8714,1]],[8766,["op",8838,0]],[8767,["op",8640,1]],[8768,["op",9004,1]],[8769,["op",8931,0]],[8771,["op",8968,0]],[8773,["op",8947,0]],[8774,["op",8932,1]],[8776,["op",8789,1]],[8777,["op",8866,1]],[8778,["op",8858,0]],[8780,["op",8726,0]],[8782,["op",8790,0]],[8783,["op",9058,1]],[8784,["op",8805,0]],[8786,["op",8700,0]],[8787,["op",8852,0]],[8789,["op",8782,0]],[8791,["op",8925,1]],[8792,["op",8791,0]],[8793,["op",8938,0]],[8794,["op",8753,0]],[8795,["op",8861,0]],[8796,["op",8960,0]],[8798,["op",8973,0]],[8799,["op",8788,1]],[8800,["op",9043,0]],[8801,["op",8621,1]],[8802,["op",8903,0]],[8803,["op",8631,0]],[8804,["op",8746,0]],[8805,["op",8994,1]],[8806,["op",8615,1]],[8807,["op",8752,0]],[8808,["op",8678,1]],[8809,["op",8673,0]],[8810,["op",8859,1]],[8814,["op",8835,1]],[8815,["op",8910,0]],[8816,["op",8766,1]],[8817,["op",9035,0]],[8819,["op",8772,0]],[8820,["op",8909,0]],[8821,["op",8918,0]],[8823,["op",8721,0]],[8824,["op",8781,1]],[8825,["op",8902,1]],[8826,["op",8682,1]],[8828,["op",8933,0]],[8829,["op",8770,1]],[8830,["op",8948,0]],[8833,["op",8736,0]],[8834,["op",8987,1]],[8835,["op",9060,0]],[8836,["op",8963,0]],[8839,["op",8732,0]],[8840,["op",8733,0]],[8841,["op",8907,0]],[8842,["op",9055,0]],[8843,["op",8840,0]],[8844,["op",8901,1]],[8845,["op",8943,0]],[8846,["op",8650,0]],[8847,["op",8764,0]],[8848,["op",8856,1]],[8849,["op",8948,1]],[8851,["op",8693,0]],[8852,["op",8884,0]],[8854,["op",9018,0]],[8855,["op",8750,1]],[8857,["op",9015,0]],[8858,["op",8851,1]],[8859,["op",8927,1]],[8862,["op",9039,0]],[8863,["op",8663,0]],[8865,["op",8786,0]],[8866,["op",8609,0]],[8867,["op",8781,0]],[8868,["op",8970,0]],[8869,["op",9017,0]],[8870,["op",8933,1]],[8871,["op",8926,1]],[8873,["op",8869,0]],[8874,["op",8761,0]],[8875,["op",8988,0]],[8877,["op",8836,0]],[8878,["op",9025,0]],[8879,["op",8682,0]],[8880,["op",9051,0]],[8881,["op",8871,0]],[8882,["op",8934,0]],[8883,["op",9015,1]],[8884,["op",8805,1]],[8885,["op",8942,0]],[8887,["op",8993,0]],[8888,["op",9016,0]],[8889,["op",8923,0]],[8890,["op",8798,0]],[8892,["op",8976,0]],[8895,["op",9026,1]],[8897,["op",9020,0]],[8898,["op",8892,0]],[8900,["op",8862,1]],[8901,["op",8967,0]],[8904,["op",8979,0]],[8906,["op",8698,0]],[8907,["op",8831,1]],[8912,["op",8935,0]],[8914,["op",8751,0]],[8916,["op",8703,1]],[8917,["op",8922,0]],[8920,["op",8925,0]],[8921,["op",9016,1]],[8923,["op",8855,0]],[8924,["op",8717,1]],[8927,["op",8718,0]],[8928,["op",8937,0]],[8929,["op",8968,1]],[8931,["op",8935,1]],[8932,["op",8711,0]],[8935,["op",8666,0]],[8936,["op",9049,0]],[8938,["op",8989,0]],[8939,["op",8958,0]],[8944,["op",8844,0]],[8945,["op",8943,1]],[8953,["op",9056,0]],[8954,["op",8912,0]],[8956,["op",8795,0]],[8957,["op",8969,0]],[8958,["op",9029,0]],[8960,["op",9033,0]],[8962,["op",8876,0]],[8965,["op",8768,1]],[8969,["op",8991,1]],[8970,["op",8882,1]],[8972,["op",9017,1]],[8973,["op",9046,1]],[8975,["op",8664,0]],[8980,["op",8915,0]],[8981,["op",9011,0]],[8983,["op",8937,1]],[8985,["op",8949,1]],[8987,["op",8950,0]],[8989,["op",8891,0]],[8992,["op",8876,1]],[8995,["op",9041,1]],[8997,["op",9039,1]],[8998,["op",8855,1]],[8999,["op",8904,0]],[9001,["op",8905,0]],[9004,["op",8638,0]],[9010,["op",8614,0]],[9012,["op",8909,1]],[9014,["op",8716,0]],[9022,["op",8911,1]],[9023,["op",8880,1]],[9028,["op",8670,1]],[9030,["op",8951,0]],[9032,["op",8772,1]],[9034,["op",9009,1]],[9037,["op",8986,1]],[9045,["op",8738,0]],[9066,["op",9105,0]],[9067,["op",9071,0]],[9068,["op",9141,0]],[9069,["op",9092,1]],[9070,["op",9150,0]],[9071,["op",9178,1]],[9072,["op",9458,0]],[9073,["op",9459,0]],[9074,["op",9476,0]],[9075,["op",9106,0]],[9076,["op",9289,0]],[9077,["op",9490,0]],[9078,["op",9525,0]],[9079,["op",9359,0]],[9080,["op",9114,0]],[9081,["op",9493,0]],[9082,["op",9202,0]],[9083,["op",9316,0]],[9084,["op",9296,0]],[9085,["op",9449,0]],[9086,["op",9491,0]],[9087,["op",9419,1]],[9088,["op",9127,1]],[9089,["op",9363,0]],[9090,["op",9293,0]],[9091,["op",9176,0]],[9092,["op",9352,0]],[9093,["op",9395,0]],[9094,["op",9206,0]],[9096,["op",9360,0]],[9097,["op",9231,0]],[9098,["op",9247,0]],[9099,["op",9111,0]],[9100,["op",9403,0]],[9102,["op",9110,0]],[9104,["op",9277,0]],[9105,["op",9180,0]],[9107,["op",9222,0]],[9108,["op",9524,0]],[9109,["op",9497,0]],[9110,["op",9225,0]],[9111,["op",9463,0]],[9112,["op",9280,0]],[9113,["op",9420,0]],[9115,["op",9088,1]],[9116,["op",9093,1]],[9117,["op",9171,0]],[9118,["op",9166,0]],[9119,["op",9362,0]],[9120,["op",9212,0]],[9121,["op",9361,0]],[9122,["op",9236,0]],[9123,["op",9165,0]],[9124,["op",9164,0]],[9125,["op",9091,0]],[9126,["op",9365,0]],[9127,["op",9274,0]],[9128,["op",9151,0]],[9130,["op",9328,0]],[9131,["op",9389,0]],[9132,["op",9208,1]],[9133,["op",9097,0]],[9134,["op",9515,0]],[9135,["op",9444,0]],[9136,["op",9228,0]],[9137,["op",9229,0]],[9139,["op",9298,0]],[9140,["op",9305,0]],[9142,["op",9085,0]],[9143,["op",9117,0]],[9144,["op",9118,0]],[9146,["op",9392,0]],[9147,["op",9358,0]],[9148,["op",9302,1]],[9150,["op",9288,0]],[9151,["op",9221,0]],[9152,["op",9248,0]],[9153,["op",9321,1]],[9154,["op",9328,1]],[9157,["op",9340,0]],[9159,["op",9313,0]],[9160,["op",9294,0]],[9161,["op",9319,0]],[9162,["op",9415,0]],[9164,["op",9326,1]],[9165,["op",9462,1]],[9166,["op",9500,1]],[9167,["op",9131,1]],[9168,["op",9155,0]],[9169,["op",9331,0]],[9170,["op",9122,1]],[9171,["op",9322,0]],[9172,["op",9241,0]],[9173,["op",9273,0]],[9174,["op",9513,0]],[9175,["op",9263,0]],[9177,["op",9490,1]],[9178,["op",9068,1]],[9183,["op",9507,0]],[9185,["op",9377,0]],[9186,["op",9068,0]],[9187,["op",9238,0]],[9188,["op",9173,1]],[9189,["op",9513,1]],[9190,["op",9252,0]],[9191,["op",9267,0]],[9192,["op",9349,0]],[9194,["op",9348,0]],[9195,["op",9182,0]],[9196,["op",9384,0]],[9197,["op",9115,0]],[9198,["op",9346,0]],[9199,["op",9441,0]],[9200,["op",9485,0]],[9201,["op",9285,0]],[9202,["op",9504,0]],[9203,["op",9208,0]],[9204,["op",9133,0]],[9205,["op",9379,0]],[9207,["op",9185,0]],[9208,["op",9272,0]],[9210,["op",9521,0]],[9211,["op",9074,0]],[9212,["op",9471,0]],[9213,["op",9516,0]],[9215,["op",9511,0]],[9216,["op",9124,0]],[9217,["op",9383,1]],[9218,["op",9096,0]],[9219,["op",9440,0]],[9220,["op",9448,0]],[9221,["op",9129,1]],[9222,["op",9239,0]],[9223,["op",9239,1]],[9224,["op",9460,0]],[9226,["op",9503,0]],[9227,["op",9177,1]],[9229,["op",9301,0]],[9230,["op",9103,1]],[9231,["op",9467,1]],[9232,["op",9394,0]],[9234,["op",9431,0]],[9236,["op",9410,0]],[9237,["op",9395,1]],[9239,["op",9252,1]],[9240,["op",9329,1]],[9241,["op",9321,0]],[9243,["op",9189,0]],[9245,["op",9253,0]],[9246,["op",9521,1]],[9247,["op",9268,0]],[9249,["op",9163,0]],[9250,["op",9315,0]],[9252,["op",9245,0]],[9254,["op",9388,1]],[9255,["op",9254,0]],[9256,["op",9401,0]],[9257,["op",9216,0]],[9258,["op",9324,0]],[9259,["op",9423,0]],[9261,["op",9436,0]],[9262,["op",9251,1]],[9263,["op",9506,0]],[9264,["op",9084,1]],[9265,["op",9366,0]],[9266,["op",9094,0]],[9267,["op",9209,0]],[9268,["op",9457,1]],[9269,["op",9078,1]],[9270,["op",9215,0]],[9271,["op",9141,1]],[9272,["op",9136,0]],[9273,["op",9322,1]],[9277,["op",9298,1]],[9278,["op",9373,0]],[9279,["op",9229,1]],[9280,["op",9498,0]],[9282,["op",9235,0]],[9283,["op",9372,0]],[9284,["op",9381,0]],[9286,["op",9184,0]],[9287,["op",9244,1]],[9288,["op",9365,1]],[9289,["op",9145,1]],[9291,["op",9396,0]],[9292,["op",9233,1]],[9293,["op",9411,0]],[9296,["op",9199,0]],[9297,["op",9450,1]],[9298,["op",9523,0]],[9299,["op",9426,0]],[9302,["op",9195,0]],[9303,["op",9196,0]],[9304,["op",9370,0]],[9305,["op",9518,0]],[9306,["op",9303,0]],[9307,["op",9364,1]],[9308,["op",9406,0]],[9309,["op",9113,0]],[9310,["op",9227,0]],[9311,["op",9319,1]],[9312,["op",9411,1]],[9314,["op",9156,0]],[9315,["op",9347,0]],[9317,["op",9481,0]],[9318,["op",9213,1]],[9320,["op",9478,0]],[9321,["op",9314,1]],[9322,["op",9390,1]],[9325,["op",9502,0]],[9326,["op",9126,0]],[9328,["op",9249,0]],[9329,["op",9072,0]],[9330,["op",9244,0]],[9331,["op",9433,0]],[9332,["op",9480,0]],[9333,["op",9396,1]],[9334,["op",9389,1]],[9336,["op",9332,0]],[9337,["op",9224,0]],[9338,["op",9451,0]],[9340,["op",9299,0]],[9341,["op",9488,0]],[9342,["op",9145,0]],[9343,["op",9514,0]],[9344,["op",9334,0]],[9345,["op",9397,0]],[9346,["op",9478,1]],[9347,["op",9268,1]],[9348,["op",9405,0]],[9350,["op",9456,0]],[9351,["op",9479,0]],[9352,["op",9386,0]],[9353,["op",9261,0]],[9355,["op",9439,0]],[9358,["op",9489,1]],[9360,["op",9483,0]],[9361,["op",9355,0]],[9363,["op",9325,1]],[9364,["op",9430,0]],[9367,["op",9442,0]],[9369,["op",9161,0]],[9370,["op",9294,1]],[9375,["op",9398,0]],[9377,["op",9214,0]],[9379,["op",9166,1]],[9380,["op",9385,0]],[9383,["op",9388,0]],[9384,["op",9479,1]],[9386,["op",9318,0]],[9387,["op",9180,1]],[9390,["op",9181,0]],[9391,["op",9400,0]],[9392,["op",9431,1]],[9394,["op",9398,1]],[9395,["op",9174,0]],[9398,["op",9129,0]],[9399,["op",9512,0]],[9401,["op",9452,0]],[9402,["op",9421,0]],[9407,["op",9307,0]],[9408,["op",9406,1]],[9416,["op",9519,0]],[9417,["op",9375,0]],[9419,["op",9258,0]],[9420,["op",9432,0]],[9421,["op",9492,0]],[9423,["op",9496,0]],[9425,["op",9339,0]],[9428,["op",9231,1]],[9432,["op",9454,1]],[9433,["op",9345,1]],[9435,["op",9480,1]],[9436,["op",9509,1]],[9438,["op",9127,0]],[9443,["op",9378,0]],[9444,["op",9474,0]],[9446,["op",9400,1]],[9448,["op",9412,1]],[9450,["op",9413,0]],[9452,["op",9354,0]],[9455,["op",9339,1]],[9458,["op",9504,1]],[9460,["op",9502,1]],[9461,["op",9318,1]],[9462,["op",9367,0]],[9464,["op",9368,0]],[9467,["op",9101,0]],[9473,["op",9077,0]],[9475,["op",9372,1]],[9477,["op",9179,0]],[9485,["op",9374,1]],[9486,["op",9343,1]],[9491,["op",9133,1]],[9493,["op",9414,0]],[9495,["op",9235,1]],[9497,["op",9472,1]],[9500,["op",9449,1]],[9508,["op",9201,0]],[9529,["op",9568,0]],[9530,["op",9534,0]],[9531,["op",9604,0]],[9532,["op",9555,1]],[9533,["op",9613,0]],[9534,["op",9641,1]],[9535,["op",9921,0]],[9536,["op",9922,0]],[9537,["op",9939,0]],[9538,["op",9569,0]],[9539,["op",9752,0]],[9540,["op",9953,0]],[9541,["op",9988,0]],[9542,["op",9822,0]],[9543,["op",9577,0]],[9544,["op",9956,0]],[9545,["op",9665,0]],[9546,["op",9779,0]],[9547,["op",9759,0]],[9548,["op",9912,0]],[9549,["op",9954,0]],[9550,["op",9882,1]],[9551,["op",9590,1]],[9552,["op",9826,0]],[9553,["op",9756,0]],[9554,["op",9639,0]],[9555,["op",9815,0]],[9556,["op",9858,0]],[9557,["op",9669,0]],[9559,["op",9823,0]],[9560,["op",9694,0]],[9561,["op",9710,0]],[9562,["op",9574,0]],[9563,["op",9866,0]],[9565,["op",9573,0]],[9567,["op",9740,0]],[9568,["op",9643,0]],[9570,["op",9685,0]],[9571,["op",9987,0]],[9572,["op",9960,0]],[9573,["op",9688,0]],[9574,["op",9926,0]],[9575,["op",9743,0]],[9576,["op",9883,0]],[9578,["op",9551,1]],[9579,["op",9556,1]],[9580,["op",9634,0]],[9581,["op",9629,0]],[9582,["op",9825,0]],[9583,["op",9675,0]],[9584,["op",9824,0]],[9585,["op",9699,0]],[9586,["op",9628,0]],[9587,["op",9627,0]],[9588,["op",9554,0]],[9589,["op",9828,0]],[9590,["op",9737,0]],[9591,["op",9614,0]],[9593,["op",9791,0]],[9594,["op",9852,0]],[9595,["op",9671,1]],[9596,["op",9560,0]],[9597,["op",9978,0]],[9598,["op",9907,0]],[9599,["op",9691,0]],[9600,["op",9692,0]],[9602,["op",9761,0]],[9603,["op",9768,0]],[9605,["op",9548,0]],[9606,["op",9580,0]],[9607,["op",9581,0]],[9609,["op",9855,0]],[9610,["op",9821,0]],[9611,["op",9765,1]],[9613,["op",9751,0]],[9614,["op",9684,0]],[9615,["op",9711,0]],[9616,["op",9784,1]],[9617,["op",9791,1]],[9620,["op",9803,0]],[9622,["op",9776,0]],[9623,["op",9757,0]],[9624,["op",9782,0]],[9625,["op",9878,0]],[9627,["op",9789,1]],[9628,["op",9925,1]],[9629,["op",9963,1]],[9630,["op",9594,1]],[9631,["op",9618,0]],[9632,["op",9794,0]],[9633,["op",9585,1]],[9634,["op",9785,0]],[9635,["op",9704,0]],[9636,["op",9736,0]],[9637,["op",9976,0]],[9638,["op",9726,0]],[9640,["op",9953,1]],[9641,["op",9531,1]],[9646,["op",9970,0]],[9648,["op",9840,0]],[9649,["op",9531,0]],[9650,["op",9701,0]],[9651,["op",9636,1]],[9652,["op",9976,1]],[9653,["op",9715,0]],[9654,["op",9730,0]],[9655,["op",9812,0]],[9657,["op",9811,0]],[9658,["op",9645,0]],[9659,["op",9847,0]],[9660,["op",9578,0]],[9661,["op",9809,0]],[9662,["op",9904,0]],[9663,["op",9948,0]],[9664,["op",9748,0]],[9665,["op",9967,0]],[9666,["op",9671,0]],[9667,["op",9596,0]],[9668,["op",9842,0]],[9670,["op",9648,0]],[9671,["op",9735,0]],[9673,["op",9984,0]],[9674,["op",9537,0]],[9675,["op",9934,0]],[9676,["op",9979,0]],[9678,["op",9974,0]],[9679,["op",9587,0]],[9680,["op",9846,1]],[9681,["op",9559,0]],[9682,["op",9903,0]],[9683,["op",9911,0]],[9684,["op",9592,1]],[9685,["op",9702,0]],[9686,["op",9702,1]],[9687,["op",9923,0]],[9689,["op",9966,0]],[9690,["op",9640,1]],[9692,["op",9764,0]],[9693,["op",9566,1]],[9694,["op",9930,1]],[9695,["op",9857,0]],[9697,["op",9894,0]],[9699,["op",9873,0]],[9700,["op",9858,1]],[9702,["op",9715,1]],[9703,["op",9792,1]],[9704,["op",9784,0]],[9706,["op",9652,0]],[9708,["op",9716,0]],[9709,["op",9984,1]],[9710,["op",9731,0]],[9712,["op",9626,0]],[9713,["op",9778,0]],[9715,["op",9708,0]],[9717,["op",9851,1]],[9718,["op",9717,0]],[9719,["op",9864,0]],[9720,["op",9679,0]],[9721,["op",9787,0]],[9722,["op",9886,0]],[9724,["op",9899,0]],[9725,["op",9714,1]],[9726,["op",9969,0]],[9727,["op",9547,1]],[9728,["op",9829,0]],[9729,["op",9557,0]],[9730,["op",9672,0]],[9731,["op",9920,1]],[9732,["op",9541,1]],[9733,["op",9678,0]],[9734,["op",9604,1]],[9735,["op",9599,0]],[9736,["op",9785,1]],[9740,["op",9761,1]],[9741,["op",9836,0]],[9742,["op",9692,1]],[9743,["op",9961,0]],[9745,["op",9698,0]],[9746,["op",9835,0]],[9747,["op",9844,0]],[9749,["op",9647,0]],[9750,["op",9707,1]],[9751,["op",9828,1]],[9752,["op",9608,1]],[9754,["op",9859,0]],[9755,["op",9696,1]],[9756,["op",9874,0]],[9759,["op",9662,0]],[9760,["op",9913,1]],[9761,["op",9986,0]],[9762,["op",9889,0]],[9765,["op",9658,0]],[9766,["op",9659,0]],[9767,["op",9833,0]],[9768,["op",9981,0]],[9769,["op",9766,0]],[9770,["op",9827,1]],[9771,["op",9869,0]],[9772,["op",9576,0]],[9773,["op",9690,0]],[9774,["op",9782,1]],[9775,["op",9874,1]],[9777,["op",9619,0]],[9778,["op",9810,0]],[9780,["op",9944,0]],[9781,["op",9676,1]],[9783,["op",9941,0]],[9784,["op",9777,1]],[9785,["op",9853,1]],[9788,["op",9965,0]],[9789,["op",9589,0]],[9791,["op",9712,0]],[9792,["op",9535,0]],[9793,["op",9707,0]],[9794,["op",9896,0]],[9795,["op",9943,0]],[9796,["op",9859,1]],[9797,["op",9852,1]],[9799,["op",9795,0]],[9800,["op",9687,0]],[9801,["op",9914,0]],[9803,["op",9762,0]],[9804,["op",9951,0]],[9805,["op",9608,0]],[9806,["op",9977,0]],[9807,["op",9797,0]],[9808,["op",9860,0]],[9809,["op",9941,1]],[9810,["op",9731,1]],[9811,["op",9868,0]],[9813,["op",9919,0]],[9814,["op",9942,0]],[9815,["op",9849,0]],[9816,["op",9724,0]],[9818,["op",9902,0]],[9821,["op",9952,1]],[9823,["op",9946,0]],[9824,["op",9818,0]],[9826,["op",9788,1]],[9827,["op",9893,0]],[9830,["op",9905,0]],[9832,["op",9624,0]],[9833,["op",9757,1]],[9838,["op",9861,0]],[9840,["op",9677,0]],[9842,["op",9629,1]],[9843,["op",9848,0]],[9846,["op",9851,0]],[9847,["op",9942,1]],[9849,["op",9781,0]],[9850,["op",9643,1]],[9853,["op",9644,0]],[9854,["op",9863,0]],[9855,["op",9894,1]],[9857,["op",9861,1]],[9858,["op",9637,0]],[9861,["op",9592,0]],[9862,["op",9975,0]],[9864,["op",9915,0]],[9865,["op",9884,0]],[9870,["op",9770,0]],[9871,["op",9869,1]],[9879,["op",9982,0]],[9880,["op",9838,0]],[9882,["op",9721,0]],[9883,["op",9895,0]],[9884,["op",9955,0]],[9886,["op",9959,0]],[9888,["op",9802,0]],[9891,["op",9694,1]],[9895,["op",9917,1]],[9896,["op",9808,1]],[9898,["op",9943,1]],[9899,["op",9972,1]],[9901,["op",9590,0]],[9906,["op",9841,0]],[9907,["op",9937,0]],[9909,["op",9863,1]],[9911,["op",9875,1]],[9913,["op",9876,0]],[9915,["op",9817,0]],[9918,["op",9802,1]],[9921,["op",9967,1]],[9923,["op",9965,1]],[9924,["op",9781,1]],[9925,["op",9830,0]],[9927,["op",9831,0]],[9930,["op",9564,0]],[9936,["op",9540,0]],[9938,["op",9835,1]],[9940,["op",9642,0]],[9948,["op",9837,1]],[9949,["op",9806,1]],[9954,["op",9596,1]],[9956,["op",9877,0]],[9958,["op",9698,1]],[9960,["op",9935,1]],[9963,["op",9912,1]],[9971,["op",9664,0]],[9992,["op",10031,0]],[9993,["op",9997,0]],[9994,["op",10067,0]],[9995,["op",10018,1]],[9996,["op",10076,0]],[9997,["op",10104,1]],[9998,["op",10384,0]],[9999,["op",10385,0]],[10000,["op",10402,0]],[10001,["op",10032,0]],[10002,["op",10215,0]],[10003,["op",10416,0]],[10004,["op",10451,0]],[10005,["op",10285,0]],[10006,["op",10040,0]],[10007,["op",10419,0]],[10008,["op",10128,0]],[10009,["op",10242,0]],[10010,["op",10222,0]],[10011,["op",10375,0]],[10012,["op",10417,0]],[10013,["op",10345,1]],[10014,["op",10053,1]],[10015,["op",10289,0]],[10016,["op",10219,0]],[10017,["op",10102,0]],[10018,["op",10278,0]],[10019,["op",10321,0]],[10020,["op",10132,0]],[10022,["op",10286,0]],[10023,["op",10157,0]],[10024,["op",10173,0]],[10025,["op",10037,0]],[10026,["op",10329,0]],[10028,["op",10036,0]],[10030,["op",10203,0]],[10031,["op",10106,0]],[10033,["op",10148,0]],[10034,["op",10450,0]],[10035,["op",10423,0]],[10036,["op",10151,0]],[10037,["op",10389,0]],[10038,["op",10206,0]],[10039,["op",10346,0]],[10041,["op",10014,1]],[10042,["op",10019,1]],[10043,["op",10097,0]],[10044,["op",10092,0]],[10045,["op",10288,0]],[10046,["op",10138,0]],[10047,["op",10287,0]],[10048,["op",10162,0]],[10049,["op",10091,0]],[10050,["op",10090,0]],[10051,["op",10017,0]],[10052,["op",10291,0]],[10053,["op",10200,0]],[10054,["op",10077,0]],[10056,["op",10254,0]],[10057,["op",10315,0]],[10058,["op",10134,1]],[10059,["op",10023,0]],[10060,["op",10441,0]],[10061,["op",10370,0]],[10062,["op",10154,0]],[10063,["op",10155,0]],[10065,["op",10224,0]],[10066,["op",10231,0]],[10068,["op",10011,0]],[10069,["op",10043,0]],[10070,["op",10044,0]],[10072,["op",10318,0]],[10073,["op",10284,0]],[10074,["op",10228,1]],[10076,["op",10214,0]],[10077,["op",10147,0]],[10078,["op",10174,0]],[10079,["op",10247,1]],[10080,["op",10254,1]],[10083,["op",10266,0]],[10085,["op",10239,0]],[10086,["op",10220,0]],[10087,["op",10245,0]],[10088,["op",10341,0]],[10090,["op",10252,1]],[10091,["op",10388,1]],[10092,["op",10426,1]],[10093,["op",10057,1]],[10094,["op",10081,0]],[10095,["op",10257,0]],[10096,["op",10048,1]],[10097,["op",10248,0]],[10098,["op",10167,0]],[10099,["op",10199,0]],[10100,["op",10439,0]],[10101,["op",10189,0]],[10103,["op",10416,1]],[10104,["op",9994,1]],[10109,["op",10433,0]],[10111,["op",10303,0]],[10112,["op",9994,0]],[10113,["op",10164,0]],[10114,["op",10099,1]],[10115,["op",10439,1]],[10116,["op",10178,0]],[10117,["op",10193,0]],[10118,["op",10275,0]],[10120,["op",10274,0]],[10121,["op",10108,0]],[10122,["op",10310,0]],[10123,["op",10041,0]],[10124,["op",10272,0]],[10125,["op",10367,0]],[10126,["op",10411,0]],[10127,["op",10211,0]],[10128,["op",10430,0]],[10129,["op",10134,0]],[10130,["op",10059,0]],[10131,["op",10305,0]],[10133,["op",10111,0]],[10134,["op",10198,0]],[10136,["op",10447,0]],[10137,["op",10000,0]],[10138,["op",10397,0]],[10139,["op",10442,0]],[10141,["op",10437,0]],[10142,["op",10050,0]],[10143,["op",10309,1]],[10144,["op",10022,0]],[10145,["op",10366,0]],[10146,["op",10374,0]],[10147,["op",10055,1]],[10148,["op",10165,0]],[10149,["op",10165,1]],[10150,["op",10386,0]],[10152,["op",10429,0]],[10153,["op",10103,1]],[10155,["op",10227,0]],[10156,["op",10029,1]],[10157,["op",10393,1]],[10158,["op",10320,0]],[10160,["op",10357,0]],[10162,["op",10336,0]],[10163,["op",10321,1]],[10165,["op",10178,1]],[10166,["op",10255,1]],[10167,["op",10247,0]],[10169,["op",10115,0]],[10171,["op",10179,0]],[10172,["op",10447,1]],[10173,["op",10194,0]],[10175,["op",10089,0]],[10176,["op",10241,0]],[10178,["op",10171,0]],[10180,["op",10314,1]],[10181,["op",10180,0]],[10182,["op",10327,0]],[10183,["op",10142,0]],[10184,["op",10250,0]],[10185,["op",10349,0]],[10187,["op",10362,0]],[10188,["op",10177,1]],[10189,["op",10432,0]],[10190,["op",10010,1]],[10191,["op",10292,0]],[10192,["op",10020,0]],[10193,["op",10135,0]],[10194,["op",10383,1]],[10195,["op",10004,1]],[10196,["op",10141,0]],[10197,["op",10067,1]],[10198,["op",10062,0]],[10199,["op",10248,1]],[10203,["op",10224,1]],[10204,["op",10299,0]],[10205,["op",10155,1]],[10206,["op",10424,0]],[10208,["op",10161,0]],[10209,["op",10298,0]],[10210,["op",10307,0]],[10212,["op",10110,0]],[10213,["op",10170,1]],[10214,["op",10291,1]],[10215,["op",10071,1]],[10217,["op",10322,0]],[10218,["op",10159,1]],[10219,["op",10337,0]],[10222,["op",10125,0]],[10223,["op",10376,1]],[10224,["op",10449,0]],[10225,["op",10352,0]],[10228,["op",10121,0]],[10229,["op",10122,0]],[10230,["op",10296,0]],[10231,["op",10444,0]],[10232,["op",10229,0]],[10233,["op",10290,1]],[10234,["op",10332,0]],[10235,["op",10039,0]],[10236,["op",10153,0]],[10237,["op",10245,1]],[10238,["op",10337,1]],[10240,["op",10082,0]],[10241,["op",10273,0]],[10243,["op",10407,0]],[10244,["op",10139,1]],[10246,["op",10404,0]],[10247,["op",10240,1]],[10248,["op",10316,1]],[10251,["op",10428,0]],[10252,["op",10052,0]],[10254,["op",10175,0]],[10255,["op",9998,0]],[10256,["op",10170,0]],[10257,["op",10359,0]],[10258,["op",10406,0]],[10259,["op",10322,1]],[10260,["op",10315,1]],[10262,["op",10258,0]],[10263,["op",10150,0]],[10264,["op",10377,0]],[10266,["op",10225,0]],[10267,["op",10414,0]],[10268,["op",10071,0]],[10269,["op",10440,0]],[10270,["op",10260,0]],[10271,["op",10323,0]],[10272,["op",10404,1]],[10273,["op",10194,1]],[10274,["op",10331,0]],[10276,["op",10382,0]],[10277,["op",10405,0]],[10278,["op",10312,0]],[10279,["op",10187,0]],[10281,["op",10365,0]],[10284,["op",10415,1]],[10286,["op",10409,0]],[10287,["op",10281,0]],[10289,["op",10251,1]],[10290,["op",10356,0]],[10293,["op",10368,0]],[10295,["op",10087,0]],[10296,["op",10220,1]],[10301,["op",10324,0]],[10303,["op",10140,0]],[10305,["op",10092,1]],[10306,["op",10311,0]],[10309,["op",10314,0]],[10310,["op",10405,1]],[10312,["op",10244,0]],[10313,["op",10106,1]],[10316,["op",10107,0]],[10317,["op",10326,0]],[10318,["op",10357,1]],[10320,["op",10324,1]],[10321,["op",10100,0]],[10324,["op",10055,0]],[10325,["op",10438,0]],[10327,["op",10378,0]],[10328,["op",10347,0]],[10333,["op",10233,0]],[10334,["op",10332,1]],[10342,["op",10445,0]],[10343,["op",10301,0]],[10345,["op",10184,0]],[10346,["op",10358,0]],[10347,["op",10418,0]],[10349,["op",10422,0]],[10351,["op",10265,0]],[10354,["op",10157,1]],[10358,["op",10380,1]],[10359,["op",10271,1]],[10361,["op",10406,1]],[10362,["op",10435,1]],[10364,["op",10053,0]],[10369,["op",10304,0]],[10370,["op",10400,0]],[10372,["op",10326,1]],[10374,["op",10338,1]],[10376,["op",10339,0]],[10378,["op",10280,0]],[10381,["op",10265,1]],[10384,["op",10430,1]],[10386,["op",10428,1]],[10387,["op",10244,1]],[10388,["op",10293,0]],[10390,["op",10294,0]],[10393,["op",10027,0]],[10399,["op",10003,0]],[10401,["op",10298,1]],[10403,["op",10105,0]],[10411,["op",10300,1]],[10412,["op",10269,1]],[10417,["op",10059,1]],[10419,["op",10340,0]],[10421,["op",10161,1]],[10423,["op",10398,1]],[10426,["op",10375,1]],[10434,["op",10127,0]],[10455,["op",10494,0]],[10456,["op",10460,0]],[10457,["op",10530,0]],[10458,["op",10481,1]],[10459,["op",10539,0]],[10460,["op",10567,1]],[10461,["op",10847,0]],[10462,["op",10848,0]],[10463,["op",10865,0]],[10464,["op",10495,0]],[10465,["op",10678,0]],[10466,["op",10879,0]],[10467,["op",10914,0]],[10468,["op",10748,0]],[10469,["op",10503,0]],[10470,["op",10882,0]],[10471,["op",10591,0]],[10472,["op",10705,0]],[10473,["op",10685,0]],[10474,["op",10838,0]],[10475,["op",10880,0]],[10476,["op",10808,1]],[10477,["op",10516,1]],[10478,["op",10752,0]],[10479,["op",10682,0]],[10480,["op",10565,0]],[10481,["op",10741,0]],[10482,["op",10784,0]],[10483,["op",10595,0]],[10485,["op",10749,0]],[10486,["op",10620,0]],[10487,["op",10636,0]],[10488,["op",10500,0]],[10489,["op",10792,0]],[10491,["op",10499,0]],[10493,["op",10666,0]],[10494,["op",10569,0]],[10496,["op",10611,0]],[10497,["op",10913,0]],[10498,["op",10886,0]],[10499,["op",10614,0]],[10500,["op",10852,0]],[10501,["op",10669,0]],[10502,["op",10809,0]],[10504,["op",10477,1]],[10505,["op",10482,1]],[10506,["op",10560,0]],[10507,["op",10555,0]],[10508,["op",10751,0]],[10509,["op",10601,0]],[10510,["op",10750,0]],[10511,["op",10625,0]],[10512,["op",10554,0]],[10513,["op",10553,0]],[10514,["op",10480,0]],[10515,["op",10754,0]],[10516,["op",10663,0]],[10517,["op",10540,0]],[10519,["op",10717,0]],[10520,["op",10778,0]],[10521,["op",10597,1]],[10522,["op",10486,0]],[10523,["op",10904,0]],[10524,["op",10833,0]],[10525,["op",10617,0]],[10526,["op",10618,0]],[10528,["op",10687,0]],[10529,["op",10694,0]],[10531,["op",10474,0]],[10532,["op",10506,0]],[10533,["op",10507,0]],[10535,["op",10781,0]],[10536,["op",10747,0]],[10537,["op",10691,1]],[10539,["op",10677,0]],[10540,["op",10610,0]],[10541,["op",10637,0]],[10542,["op",10710,1]],[10543,["op",10717,1]],[10546,["op",10729,0]],[10548,["op",10702,0]],[10549,["op",10683,0]],[10550,["op",10708,0]],[10551,["op",10804,0]],[10553,["op",10715,1]],[10554,["op",10851,1]],[10555,["op",10889,1]],[10556,["op",10520,1]],[10557,["op",10544,0]],[10558,["op",10720,0]],[10559,["op",10511,1]],[10560,["op",10711,0]],[10561,["op",10630,0]],[10562,["op",10662,0]],[10563,["op",10902,0]],[10564,["op",10652,0]],[10566,["op",10879,1]],[10567,["op",10457,1]],[10572,["op",10896,0]],[10574,["op",10766,0]],[10575,["op",10457,0]],[10576,["op",10627,0]],[10577,["op",10562,1]],[10578,["op",10902,1]],[10579,["op",10641,0]],[10580,["op",10656,0]],[10581,["op",10738,0]],[10583,["op",10737,0]],[10584,["op",10571,0]],[10585,["op",10773,0]],[10586,["op",10504,0]],[10587,["op",10735,0]],[10588,["op",10830,0]],[10589,["op",10874,0]],[10590,["op",10674,0]],[10591,["op",10893,0]],[10592,["op",10597,0]],[10593,["op",10522,0]],[10594,["op",10768,0]],[10596,["op",10574,0]],[10597,["op",10661,0]],[10599,["op",10910,0]],[10600,["op",10463,0]],[10601,["op",10860,0]],[10602,["op",10905,0]],[10604,["op",10900,0]],[10605,["op",10513,0]],[10606,["op",10772,1]],[10607,["op",10485,0]],[10608,["op",10829,0]],[10609,["op",10837,0]],[10610,["op",10518,1]],[10611,["op",10628,0]],[10612,["op",10628,1]],[10613,["op",10849,0]],[10615,["op",10892,0]],[10616,["op",10566,1]],[10618,["op",10690,0]],[10619,["op",10492,1]],[10620,["op",10856,1]],[10621,["op",10783,0]],[10623,["op",10820,0]],[10625,["op",10799,0]],[10626,["op",10784,1]],[10628,["op",10641,1]],[10629,["op",10718,1]],[10630,["op",10710,0]],[10632,["op",10578,0]],[10634,["op",10642,0]],[10635,["op",10910,1]],[10636,["op",10657,0]],[10638,["op",10552,0]],[10639,["op",10704,0]],[10641,["op",10634,0]],[10643,["op",10777,1]],[10644,["op",10643,0]],[10645,["op",10790,0]],[10646,["op",10605,0]],[10647,["op",10713,0]],[10648,["op",10812,0]],[10650,["op",10825,0]],[10651,["op",10640,1]],[10652,["op",10895,0]],[10653,["op",10473,1]],[10654,["op",10755,0]],[10655,["op",10483,0]],[10656,["op",10598,0]],[10657,["op",10846,1]],[10658,["op",10467,1]],[10659,["op",10604,0]],[10660,["op",10530,1]],[10661,["op",10525,0]],[10662,["op",10711,1]],[10666,["op",10687,1]],[10667,["op",10762,0]],[10668,["op",10618,1]],[10669,["op",10887,0]],[10671,["op",10624,0]],[10672,["op",10761,0]],[10673,["op",10770,0]],[10675,["op",10573,0]],[10676,["op",10633,1]],[10677,["op",10754,1]],[10678,["op",10534,1]],[10680,["op",10785,0]],[10681,["op",10622,1]],[10682,["op",10800,0]],[10685,["op",10588,0]],[10686,["op",10839,1]],[10687,["op",10912,0]],[10688,["op",10815,0]],[10691,["op",10584,0]],[10692,["op",10585,0]],[10693,["op",10759,0]],[10694,["op",10907,0]],[10695,["op",10692,0]],[10696,["op",10753,1]],[10697,["op",10795,0]],[10698,["op",10502,0]],[10699,["op",10616,0]],[10700,["op",10708,1]],[10701,["op",10800,1]],[10703,["op",10545,0]],[10704,["op",10736,0]],[10706,["op",10870,0]],[10707,["op",10602,1]],[10709,["op",10867,0]],[10710,["op",10703,1]],[10711,["op",10779,1]],[10714,["op",10891,0]],[10715,["op",10515,0]],[10717,["op",10638,0]],[10718,["op",10461,0]],[10719,["op",10633,0]],[10720,["op",10822,0]],[10721,["op",10869,0]],[10722,["op",10785,1]],[10723,["op",10778,1]],[10725,["op",10721,0]],[10726,["op",10613,0]],[10727,["op",10840,0]],[10729,["op",10688,0]],[10730,["op",10877,0]],[10731,["op",10534,0]],[10732,["op",10903,0]],[10733,["op",10723,0]],[10734,["op",10786,0]],[10735,["op",10867,1]],[10736,["op",10657,1]],[10737,["op",10794,0]],[10739,["op",10845,0]],[10740,["op",10868,0]],[10741,["op",10775,0]],[10742,["op",10650,0]],[10744,["op",10828,0]],[10747,["op",10878,1]],[10749,["op",10872,0]],[10750,["op",10744,0]],[10752,["op",10714,1]],[10753,["op",10819,0]],[10756,["op",10831,0]],[10758,["op",10550,0]],[10759,["op",10683,1]],[10764,["op",10787,0]],[10766,["op",10603,0]],[10768,["op",10555,1]],[10769,["op",10774,0]],[10772,["op",10777,0]],[10773,["op",10868,1]],[10775,["op",10707,0]],[10776,["op",10569,1]],[10779,["op",10570,0]],[10780,["op",10789,0]],[10781,["op",10820,1]],[10783,["op",10787,1]],[10784,["op",10563,0]],[10787,["op",10518,0]],[10788,["op",10901,0]],[10790,["op",10841,0]],[10791,["op",10810,0]],[10796,["op",10696,0]],[10797,["op",10795,1]],[10805,["op",10908,0]],[10806,["op",10764,0]],[10808,["op",10647,0]],[10809,["op",10821,0]],[10810,["op",10881,0]],[10812,["op",10885,0]],[10814,["op",10728,0]],[10817,["op",10620,1]],[10821,["op",10843,1]],[10822,["op",10734,1]],[10824,["op",10869,1]],[10825,["op",10898,1]],[10827,["op",10516,0]],[10832,["op",10767,0]],[10833,["op",10863,0]],[10835,["op",10789,1]],[10837,["op",10801,1]],[10839,["op",10802,0]],[10841,["op",10743,0]],[10844,["op",10728,1]],[10847,["op",10893,1]],[10849,["op",10891,1]],[10850,["op",10707,1]],[10851,["op",10756,0]],[10853,["op",10757,0]],[10856,["op",10490,0]],[10862,["op",10466,0]],[10864,["op",10761,1]],[10866,["op",10568,0]],[10874,["op",10763,1]],[10875,["op",10732,1]],[10880,["op",10522,1]],[10882,["op",10803,0]],[10884,["op",10624,1]],[10886,["op",10861,1]],[10889,["op",10838,1]],[10897,["op",10590,0]],[10918,["op",10957,0]],[10919,["op",10923,0]],[10920,["op",10993,0]],[10921,["op",10944,1]],[10922,["op",11002,0]],[10923,["op",11030,1]],[10924,["op",11310,0]],[10925,["op",11311,0]],[10926,["op",11328,0]],[10927,["op",10958,0]],[10928,["op",11141,0]],[10929,["op",11342,0]],[10930,["op",11377,0]],[10931,["op",11211,0]],[10932,["op",10966,0]],[10933,["op",11345,0]],[10934,["op",11054,0]],[10935,["op",11168,0]],[10936,["op",11148,0]],[10937,["op",11301,0]],[10938,["op",11343,0]],[10939,["op",11271,1]],[10940,["op",10979,1]],[10941,["op",11215,0]],[10942,["op",11145,0]],[10943,["op",11028,0]],[10944,["op",11204,0]],[10945,["op",11247,0]],[10946,["op",11058,0]],[10948,["op",11212,0]],[10949,["op",11083,0]],[10950,["op",11099,0]],[10951,["op",10963,0]],[10952,["op",11255,0]],[10954,["op",10962,0]],[10956,["op",11129,0]],[10957,["op",11032,0]],[10959,["op",11074,0]],[10960,["op",11376,0]],[10961,["op",11349,0]],[10962,["op",11077,0]],[10963,["op",11315,0]],[10964,["op",11132,0]],[10965,["op",11272,0]],[10967,["op",10940,1]],[10968,["op",10945,1]],[10969,["op",11023,0]],[10970,["op",11018,0]],[10971,["op",11214,0]],[10972,["op",11064,0]],[10973,["op",11213,0]],[10974,["op",11088,0]],[10975,["op",11017,0]],[10976,["op",11016,0]],[10977,["op",10943,0]],[10978,["op",11217,0]],[10979,["op",11126,0]],[10980,["op",11003,0]],[10982,["op",11180,0]],[10983,["op",11241,0]],[10984,["op",11060,1]],[10985,["op",10949,0]],[10986,["op",11367,0]],[10987,["op",11296,0]],[10988,["op",11080,0]],[10989,["op",11081,0]],[10991,["op",11150,0]],[10992,["op",11157,0]],[10994,["op",10937,0]],[10995,["op",10969,0]],[10996,["op",10970,0]],[10998,["op",11244,0]],[10999,["op",11210,0]],[11000,["op",11154,1]],[11002,["op",11140,0]],[11003,["op",11073,0]],[11004,["op",11100,0]],[11005,["op",11173,1]],[11006,["op",11180,1]],[11009,["op",11192,0]],[11011,["op",11165,0]],[11012,["op",11146,0]],[11013,["op",11171,0]],[11014,["op",11267,0]],[11016,["op",11178,1]],[11017,["op",11314,1]],[11018,["op",11352,1]],[11019,["op",10983,1]],[11020,["op",11007,0]],[11021,["op",11183,0]],[11022,["op",10974,1]],[11023,["op",11174,0]],[11024,["op",11093,0]],[11025,["op",11125,0]],[11026,["op",11365,0]],[11027,["op",11115,0]],[11029,["op",11342,1]],[11030,["op",10920,1]],[11035,["op",11359,0]],[11037,["op",11229,0]],[11038,["op",10920,0]],[11039,["op",11090,0]],[11040,["op",11025,1]],[11041,["op",11365,1]],[11042,["op",11104,0]],[11043,["op",11119,0]],[11044,["op",11201,0]],[11046,["op",11200,0]],[11047,["op",11034,0]],[11048,["op",11236,0]],[11049,["op",10967,0]],[11050,["op",11198,0]],[11051,["op",11293,0]],[11052,["op",11337,0]],[11053,["op",11137,0]],[11054,["op",11356,0]],[11055,["op",11060,0]],[11056,["op",10985,0]],[11057,["op",11231,0]],[11059,["op",11037,0]],[11060,["op",11124,0]],[11062,["op",11373,0]],[11063,["op",10926,0]],[11064,["op",11323,0]],[11065,["op",11368,0]],[11067,["op",11363,0]],[11068,["op",10976,0]],[11069,["op",11235,1]],[11070,["op",10948,0]],[11071,["op",11292,0]],[11072,["op",11300,0]],[11073,["op",10981,1]],[11074,["op",11091,0]],[11075,["op",11091,1]],[11076,["op",11312,0]],[11078,["op",11355,0]],[11079,["op",11029,1]],[11081,["op",11153,0]],[11082,["op",10955,1]],[11083,["op",11319,1]],[11084,["op",11246,0]],[11086,["op",11283,0]],[11088,["op",11262,0]],[11089,["op",11247,1]],[11091,["op",11104,1]],[11092,["op",11181,1]],[11093,["op",11173,0]],[11095,["op",11041,0]],[11097,["op",11105,0]],[11098,["op",11373,1]],[11099,["op",11120,0]],[11101,["op",11015,0]],[11102,["op",11167,0]],[11104,["op",11097,0]],[11106,["op",11240,1]],[11107,["op",11106,0]],[11108,["op",11253,0]],[11109,["op",11068,0]],[11110,["op",11176,0]],[11111,["op",11275,0]],[11113,["op",11288,0]],[11114,["op",11103,1]],[11115,["op",11358,0]],[11116,["op",10936,1]],[11117,["op",11218,0]],[11118,["op",10946,0]],[11119,["op",11061,0]],[11120,["op",11309,1]],[11121,["op",10930,1]],[11122,["op",11067,0]],[11123,["op",10993,1]],[11124,["op",10988,0]],[11125,["op",11174,1]],[11129,["op",11150,1]],[11130,["op",11225,0]],[11131,["op",11081,1]],[11132,["op",11350,0]],[11134,["op",11087,0]],[11135,["op",11224,0]],[11136,["op",11233,0]],[11138,["op",11036,0]],[11139,["op",11096,1]],[11140,["op",11217,1]],[11141,["op",10997,1]],[11143,["op",11248,0]],[11144,["op",11085,1]],[11145,["op",11263,0]],[11148,["op",11051,0]],[11149,["op",11302,1]],[11150,["op",11375,0]],[11151,["op",11278,0]],[11154,["op",11047,0]],[11155,["op",11048,0]],[11156,["op",11222,0]],[11157,["op",11370,0]],[11158,["op",11155,0]],[11159,["op",11216,1]],[11160,["op",11258,0]],[11161,["op",10965,0]],[11162,["op",11079,0]],[11163,["op",11171,1]],[11164,["op",11263,1]],[11166,["op",11008,0]],[11167,["op",11199,0]],[11169,["op",11333,0]],[11170,["op",11065,1]],[11172,["op",11330,0]],[11173,["op",11166,1]],[11174,["op",11242,1]],[11177,["op",11354,0]],[11178,["op",10978,0]],[11180,["op",11101,0]],[11181,["op",10924,0]],[11182,["op",11096,0]],[11183,["op",11285,0]],[11184,["op",11332,0]],[11185,["op",11248,1]],[11186,["op",11241,1]],[11188,["op",11184,0]],[11189,["op",11076,0]],[11190,["op",11303,0]],[11192,["op",11151,0]],[11193,["op",11340,0]],[11194,["op",10997,0]],[11195,["op",11366,0]],[11196,["op",11186,0]],[11197,["op",11249,0]],[11198,["op",11330,1]],[11199,["op",11120,1]],[11200,["op",11257,0]],[11202,["op",11308,0]],[11203,["op",11331,0]],[11204,["op",11238,0]],[11205,["op",11113,0]],[11207,["op",11291,0]],[11210,["op",11341,1]],[11212,["op",11335,0]],[11213,["op",11207,0]],[11215,["op",11177,1]],[11216,["op",11282,0]],[11219,["op",11294,0]],[11221,["op",11013,0]],[11222,["op",11146,1]],[11227,["op",11250,0]],[11229,["op",11066,0]],[11231,["op",11018,1]],[11232,["op",11237,0]],[11235,["op",11240,0]],[11236,["op",11331,1]],[11238,["op",11170,0]],[11239,["op",11032,1]],[11242,["op",11033,0]],[11243,["op",11252,0]],[11244,["op",11283,1]],[11246,["op",11250,1]],[11247,["op",11026,0]],[11250,["op",10981,0]],[11251,["op",11364,0]],[11253,["op",11304,0]],[11254,["op",11273,0]],[11259,["op",11159,0]],[11260,["op",11258,1]],[11268,["op",11371,0]],[11269,["op",11227,0]],[11271,["op",11110,0]],[11272,["op",11284,0]],[11273,["op",11344,0]],[11275,["op",11348,0]],[11277,["op",11191,0]],[11280,["op",11083,1]],[11284,["op",11306,1]],[11285,["op",11197,1]],[11287,["op",11332,1]],[11288,["op",11361,1]],[11290,["op",10979,0]],[11295,["op",11230,0]],[11296,["op",11326,0]],[11298,["op",11252,1]],[11300,["op",11264,1]],[11302,["op",11265,0]],[11304,["op",11206,0]],[11307,["op",11191,1]],[11310,["op",11356,1]],[11312,["op",11354,1]],[11313,["op",11170,1]],[11314,["op",11219,0]],[11316,["op",11220,0]],[11319,["op",10953,0]],[11325,["op",10929,0]],[11327,["op",11224,1]],[11329,["op",11031,0]],[11337,["op",11226,1]],[11338,["op",11195,1]],[11343,["op",10985,1]],[11345,["op",11266,0]],[11347,["op",11087,1]],[11349,["op",11324,1]],[11352,["op",11301,1]],[11360,["op",11053,0]],[11381,["op",11420,0]],[11382,["op",11386,0]],[11383,["op",11456,0]],[11384,["op",11407,1]],[11385,["op",11465,0]],[11386,["op",11493,1]],[11387,["op",11773,0]],[11388,["op",11774,0]],[11389,["op",11791,0]],[11390,["op",11421,0]],[11391,["op",11604,0]],[11392,["op",11805,0]],[11393,["op",11840,0]],[11394,["op",11674,0]],[11395,["op",11429,0]],[11396,["op",11808,0]],[11397,["op",11517,0]],[11398,["op",11631,0]],[11399,["op",11611,0]],[11400,["op",11764,0]],[11401,["op",11806,0]],[11402,["op",11734,1]],[11403,["op",11442,1]],[11404,["op",11678,0]],[11405,["op",11608,0]],[11406,["op",11491,0]],[11407,["op",11667,0]],[11408,["op",11710,0]],[11409,["op",11521,0]],[11411,["op",11675,0]],[11412,["op",11546,0]],[11413,["op",11562,0]],[11414,["op",11426,0]],[11415,["op",11718,0]],[11417,["op",11425,0]],[11419,["op",11592,0]],[11420,["op",11495,0]],[11422,["op",11537,0]],[11423,["op",11839,0]],[11424,["op",11812,0]],[11425,["op",11540,0]],[11426,["op",11778,0]],[11427,["op",11595,0]],[11428,["op",11735,0]],[11430,["op",11403,1]],[11431,["op",11408,1]],[11432,["op",11486,0]],[11433,["op",11481,0]],[11434,["op",11677,0]],[11435,["op",11527,0]],[11436,["op",11676,0]],[11437,["op",11551,0]],[11438,["op",11480,0]],[11439,["op",11479,0]],[11440,["op",11406,0]],[11441,["op",11680,0]],[11442,["op",11589,0]],[11443,["op",11466,0]],[11445,["op",11643,0]],[11446,["op",11704,0]],[11447,["op",11523,1]],[11448,["op",11412,0]],[11449,["op",11830,0]],[11450,["op",11759,0]],[11451,["op",11543,0]],[11452,["op",11544,0]],[11454,["op",11613,0]],[11455,["op",11620,0]],[11457,["op",11400,0]],[11458,["op",11432,0]],[11459,["op",11433,0]],[11461,["op",11707,0]],[11462,["op",11673,0]],[11463,["op",11617,1]],[11465,["op",11603,0]],[11466,["op",11536,0]],[11467,["op",11563,0]],[11468,["op",11636,1]],[11469,["op",11643,1]],[11472,["op",11655,0]],[11474,["op",11628,0]],[11475,["op",11609,0]],[11476,["op",11634,0]],[11477,["op",11730,0]],[11479,["op",11641,1]],[11480,["op",11777,1]],[11481,["op",11815,1]],[11482,["op",11446,1]],[11483,["op",11470,0]],[11484,["op",11646,0]],[11485,["op",11437,1]],[11486,["op",11637,0]],[11487,["op",11556,0]],[11488,["op",11588,0]],[11489,["op",11828,0]],[11490,["op",11578,0]],[11492,["op",11805,1]],[11493,["op",11383,1]],[11498,["op",11822,0]],[11500,["op",11692,0]],[11501,["op",11383,0]],[11502,["op",11553,0]],[11503,["op",11488,1]],[11504,["op",11828,1]],[11505,["op",11567,0]],[11506,["op",11582,0]],[11507,["op",11664,0]],[11509,["op",11663,0]],[11510,["op",11497,0]],[11511,["op",11699,0]],[11512,["op",11430,0]],[11513,["op",11661,0]],[11514,["op",11756,0]],[11515,["op",11800,0]],[11516,["op",11600,0]],[11517,["op",11819,0]],[11518,["op",11523,0]],[11519,["op",11448,0]],[11520,["op",11694,0]],[11522,["op",11500,0]],[11523,["op",11587,0]],[11525,["op",11836,0]],[11526,["op",11389,0]],[11527,["op",11786,0]],[11528,["op",11831,0]],[11530,["op",11826,0]],[11531,["op",11439,0]],[11532,["op",11698,1]],[11533,["op",11411,0]],[11534,["op",11755,0]],[11535,["op",11763,0]],[11536,["op",11444,1]],[11537,["op",11554,0]],[11538,["op",11554,1]],[11539,["op",11775,0]],[11541,["op",11818,0]],[11542,["op",11492,1]],[11544,["op",11616,0]],[11545,["op",11418,1]],[11546,["op",11782,1]],[11547,["op",11709,0]],[11549,["op",11746,0]],[11551,["op",11725,0]],[11552,["op",11710,1]],[11554,["op",11567,1]],[11555,["op",11644,1]],[11556,["op",11636,0]],[11558,["op",11504,0]],[11560,["op",11568,0]],[11561,["op",11836,1]],[11562,["op",11583,0]],[11564,["op",11478,0]],[11565,["op",11630,0]],[11567,["op",11560,0]],[11569,["op",11703,1]],[11570,["op",11569,0]],[11571,["op",11716,0]],[11572,["op",11531,0]],[11573,["op",11639,0]],[11574,["op",11738,0]],[11576,["op",11751,0]],[11577,["op",11566,1]],[11578,["op",11821,0]],[11579,["op",11399,1]],[11580,["op",11681,0]],[11581,["op",11409,0]],[11582,["op",11524,0]],[11583,["op",11772,1]],[11584,["op",11393,1]],[11585,["op",11530,0]],[11586,["op",11456,1]],[11587,["op",11451,0]],[11588,["op",11637,1]],[11592,["op",11613,1]],[11593,["op",11688,0]],[11594,["op",11544,1]],[11595,["op",11813,0]],[11597,["op",11550,0]],[11598,["op",11687,0]],[11599,["op",11696,0]],[11601,["op",11499,0]],[11602,["op",11559,1]],[11603,["op",11680,1]],[11604,["op",11460,1]],[11606,["op",11711,0]],[11607,["op",11548,1]],[11608,["op",11726,0]],[11611,["op",11514,0]],[11612,["op",11765,1]],[11613,["op",11838,0]],[11614,["op",11741,0]],[11617,["op",11510,0]],[11618,["op",11511,0]],[11619,["op",11685,0]],[11620,["op",11833,0]],[11621,["op",11618,0]],[11622,["op",11679,1]],[11623,["op",11721,0]],[11624,["op",11428,0]],[11625,["op",11542,0]],[11626,["op",11634,1]],[11627,["op",11726,1]],[11629,["op",11471,0]],[11630,["op",11662,0]],[11632,["op",11796,0]],[11633,["op",11528,1]],[11635,["op",11793,0]],[11636,["op",11629,1]],[11637,["op",11705,1]],[11640,["op",11817,0]],[11641,["op",11441,0]],[11643,["op",11564,0]],[11644,["op",11387,0]],[11645,["op",11559,0]],[11646,["op",11748,0]],[11647,["op",11795,0]],[11648,["op",11711,1]],[11649,["op",11704,1]],[11651,["op",11647,0]],[11652,["op",11539,0]],[11653,["op",11766,0]],[11655,["op",11614,0]],[11656,["op",11803,0]],[11657,["op",11460,0]],[11658,["op",11829,0]],[11659,["op",11649,0]],[11660,["op",11712,0]],[11661,["op",11793,1]],[11662,["op",11583,1]],[11663,["op",11720,0]],[11665,["op",11771,0]],[11666,["op",11794,0]],[11667,["op",11701,0]],[11668,["op",11576,0]],[11670,["op",11754,0]],[11673,["op",11804,1]],[11675,["op",11798,0]],[11676,["op",11670,0]],[11678,["op",11640,1]],[11679,["op",11745,0]],[11682,["op",11757,0]],[11684,["op",11476,0]],[11685,["op",11609,1]],[11690,["op",11713,0]],[11692,["op",11529,0]],[11694,["op",11481,1]],[11695,["op",11700,0]],[11698,["op",11703,0]],[11699,["op",11794,1]],[11701,["op",11633,0]],[11702,["op",11495,1]],[11705,["op",11496,0]],[11706,["op",11715,0]],[11707,["op",11746,1]],[11709,["op",11713,1]],[11710,["op",11489,0]],[11713,["op",11444,0]],[11714,["op",11827,0]],[11716,["op",11767,0]],[11717,["op",11736,0]],[11722,["op",11622,0]],[11723,["op",11721,1]],[11731,["op",11834,0]],[11732,["op",11690,0]],[11734,["op",11573,0]],[11735,["op",11747,0]],[11736,["op",11807,0]],[11738,["op",11811,0]],[11740,["op",11654,0]],[11743,["op",11546,1]],[11747,["op",11769,1]],[11748,["op",11660,1]],[11750,["op",11795,1]],[11751,["op",11824,1]],[11753,["op",11442,0]],[11758,["op",11693,0]],[11759,["op",11789,0]],[11761,["op",11715,1]],[11763,["op",11727,1]],[11765,["op",11728,0]],[11767,["op",11669,0]],[11770,["op",11654,1]],[11773,["op",11819,1]],[11775,["op",11817,1]],[11776,["op",11633,1]],[11777,["op",11682,0]],[11779,["op",11683,0]],[11782,["op",11416,0]],[11788,["op",11392,0]],[11790,["op",11687,1]],[11792,["op",11494,0]],[11800,["op",11689,1]],[11801,["op",11658,1]],[11806,["op",11448,1]],[11808,["op",11729,0]],[11810,["op",11550,1]],[11812,["op",11787,1]],[11815,["op",11764,1]],[11823,["op",11516,0]],[11844,["op",11883,0]],[11845,["op",11849,0]],[11846,["op",11919,0]],[11847,["op",11870,1]],[11848,["op",11928,0]],[11849,["op",11956,1]],[11850,["op",12236,0]],[11851,["op",12237,0]],[11852,["op",12254,0]],[11853,["op",11884,0]],[11854,["op",12067,0]],[11855,["op",12268,0]],[11856,["op",12303,0]],[11857,["op",12137,0]],[11858,["op",11892,0]],[11859,["op",12271,0]],[11860,["op",11980,0]],[11861,["op",12094,0]],[11862,["op",12074,0]],[11863,["op",12227,0]],[11864,["op",12269,0]],[11865,["op",12197,1]],[11866,["op",11905,1]],[11867,["op",12141,0]],[11868,["op",12071,0]],[11869,["op",11954,0]],[11870,["op",12130,0]],[11871,["op",12173,0]],[11872,["op",11984,0]],[11874,["op",12138,0]],[11875,["op",12009,0]],[11876,["op",12025,0]],[11877,["op",11889,0]],[11878,["op",12181,0]],[11880,["op",11888,0]],[11882,["op",12055,0]],[11883,["op",11958,0]],[11885,["op",12000,0]],[11886,["op",12302,0]],[11887,["op",12275,0]],[11888,["op",12003,0]],[11889,["op",12241,0]],[11890,["op",12058,0]],[11891,["op",12198,0]],[11893,["op",11866,1]],[11894,["op",11871,1]],[11895,["op",11949,0]],[11896,["op",11944,0]],[11897,["op",12140,0]],[11898,["op",11990,0]],[11899,["op",12139,0]],[11900,["op",12014,0]],[11901,["op",11943,0]],[11902,["op",11942,0]],[11903,["op",11869,0]],[11904,["op",12143,0]],[11905,["op",12052,0]],[11906,["op",11929,0]],[11908,["op",12106,0]],[11909,["op",12167,0]],[11910,["op",11986,1]],[11911,["op",11875,0]],[11912,["op",12293,0]],[11913,["op",12222,0]],[11914,["op",12006,0]],[11915,["op",12007,0]],[11917,["op",12076,0]],[11918,["op",12083,0]],[11920,["op",11863,0]],[11921,["op",11895,0]],[11922,["op",11896,0]],[11924,["op",12170,0]],[11925,["op",12136,0]],[11926,["op",12080,1]],[11928,["op",12066,0]],[11929,["op",11999,0]],[11930,["op",12026,0]],[11931,["op",12099,1]],[11932,["op",12106,1]],[11935,["op",12118,0]],[11937,["op",12091,0]],[11938,["op",12072,0]],[11939,["op",12097,0]],[11940,["op",12193,0]],[11942,["op",12104,1]],[11943,["op",12240,1]],[11944,["op",12278,1]],[11945,["op",11909,1]],[11946,["op",11933,0]],[11947,["op",12109,0]],[11948,["op",11900,1]],[11949,["op",12100,0]],[11950,["op",12019,0]],[11951,["op",12051,0]],[11952,["op",12291,0]],[11953,["op",12041,0]],[11955,["op",12268,1]],[11956,["op",11846,1]],[11961,["op",12285,0]],[11963,["op",12155,0]],[11964,["op",11846,0]],[11965,["op",12016,0]],[11966,["op",11951,1]],[11967,["op",12291,1]],[11968,["op",12030,0]],[11969,["op",12045,0]],[11970,["op",12127,0]],[11972,["op",12126,0]],[11973,["op",11960,0]],[11974,["op",12162,0]],[11975,["op",11893,0]],[11976,["op",12124,0]],[11977,["op",12219,0]],[11978,["op",12263,0]],[11979,["op",12063,0]],[11980,["op",12282,0]],[11981,["op",11986,0]],[11982,["op",11911,0]],[11983,["op",12157,0]],[11985,["op",11963,0]],[11986,["op",12050,0]],[11988,["op",12299,0]],[11989,["op",11852,0]],[11990,["op",12249,0]],[11991,["op",12294,0]],[11993,["op",12289,0]],[11994,["op",11902,0]],[11995,["op",12161,1]],[11996,["op",11874,0]],[11997,["op",12218,0]],[11998,["op",12226,0]],[11999,["op",11907,1]],[12000,["op",12017,0]],[12001,["op",12017,1]],[12002,["op",12238,0]],[12004,["op",12281,0]],[12005,["op",11955,1]],[12007,["op",12079,0]],[12008,["op",11881,1]],[12009,["op",12245,1]],[12010,["op",12172,0]],[12012,["op",12209,0]],[12014,["op",12188,0]],[12015,["op",12173,1]],[12017,["op",12030,1]],[12018,["op",12107,1]],[12019,["op",12099,0]],[12021,["op",11967,0]],[12023,["op",12031,0]],[12024,["op",12299,1]],[12025,["op",12046,0]],[12027,["op",11941,0]],[12028,["op",12093,0]],[12030,["op",12023,0]],[12032,["op",12166,1]],[12033,["op",12032,0]],[12034,["op",12179,0]],[12035,["op",11994,0]],[12036,["op",12102,0]],[12037,["op",12201,0]],[12039,["op",12214,0]],[12040,["op",12029,1]],[12041,["op",12284,0]],[12042,["op",11862,1]],[12043,["op",12144,0]],[12044,["op",11872,0]],[12045,["op",11987,0]],[12046,["op",12235,1]],[12047,["op",11856,1]],[12048,["op",11993,0]],[12049,["op",11919,1]],[12050,["op",11914,0]],[12051,["op",12100,1]],[12055,["op",12076,1]],[12056,["op",12151,0]],[12057,["op",12007,1]],[12058,["op",12276,0]],[12060,["op",12013,0]],[12061,["op",12150,0]],[12062,["op",12159,0]],[12064,["op",11962,0]],[12065,["op",12022,1]],[12066,["op",12143,1]],[12067,["op",11923,1]],[12069,["op",12174,0]],[12070,["op",12011,1]],[12071,["op",12189,0]],[12074,["op",11977,0]],[12075,["op",12228,1]],[12076,["op",12301,0]],[12077,["op",12204,0]],[12080,["op",11973,0]],[12081,["op",11974,0]],[12082,["op",12148,0]],[12083,["op",12296,0]],[12084,["op",12081,0]],[12085,["op",12142,1]],[12086,["op",12184,0]],[12087,["op",11891,0]],[12088,["op",12005,0]],[12089,["op",12097,1]],[12090,["op",12189,1]],[12092,["op",11934,0]],[12093,["op",12125,0]],[12095,["op",12259,0]],[12096,["op",11991,1]],[12098,["op",12256,0]],[12099,["op",12092,1]],[12100,["op",12168,1]],[12103,["op",12280,0]],[12104,["op",11904,0]],[12106,["op",12027,0]],[12107,["op",11850,0]],[12108,["op",12022,0]],[12109,["op",12211,0]],[12110,["op",12258,0]],[12111,["op",12174,1]],[12112,["op",12167,1]],[12114,["op",12110,0]],[12115,["op",12002,0]],[12116,["op",12229,0]],[12118,["op",12077,0]],[12119,["op",12266,0]],[12120,["op",11923,0]],[12121,["op",12292,0]],[12122,["op",12112,0]],[12123,["op",12175,0]],[12124,["op",12256,1]],[12125,["op",12046,1]],[12126,["op",12183,0]],[12128,["op",12234,0]],[12129,["op",12257,0]],[12130,["op",12164,0]],[12131,["op",12039,0]],[12133,["op",12217,0]],[12136,["op",12267,1]],[12138,["op",12261,0]],[12139,["op",12133,0]],[12141,["op",12103,1]],[12142,["op",12208,0]],[12145,["op",12220,0]],[12147,["op",11939,0]],[12148,["op",12072,1]],[12153,["op",12176,0]],[12155,["op",11992,0]],[12157,["op",11944,1]],[12158,["op",12163,0]],[12161,["op",12166,0]],[12162,["op",12257,1]],[12164,["op",12096,0]],[12165,["op",11958,1]],[12168,["op",11959,0]],[12169,["op",12178,0]],[12170,["op",12209,1]],[12172,["op",12176,1]],[12173,["op",11952,0]],[12176,["op",11907,0]],[12177,["op",12290,0]],[12179,["op",12230,0]],[12180,["op",12199,0]],[12185,["op",12085,0]],[12186,["op",12184,1]],[12194,["op",12297,0]],[12195,["op",12153,0]],[12197,["op",12036,0]],[12198,["op",12210,0]],[12199,["op",12270,0]],[12201,["op",12274,0]],[12203,["op",12117,0]],[12206,["op",12009,1]],[12210,["op",12232,1]],[12211,["op",12123,1]],[12213,["op",12258,1]],[12214,["op",12287,1]],[12216,["op",11905,0]],[12221,["op",12156,0]],[12222,["op",12252,0]],[12224,["op",12178,1]],[12226,["op",12190,1]],[12228,["op",12191,0]],[12230,["op",12132,0]],[12233,["op",12117,1]],[12236,["op",12282,1]],[12238,["op",12280,1]],[12239,["op",12096,1]],[12240,["op",12145,0]],[12242,["op",12146,0]],[12245,["op",11879,0]],[12251,["op",11855,0]],[12253,["op",12150,1]],[12255,["op",11957,0]],[12263,["op",12152,1]],[12264,["op",12121,1]],[12269,["op",11911,1]],[12271,["op",12192,0]],[12273,["op",12013,1]],[12275,["op",12250,1]],[12278,["op",12227,1]],[12286,["op",11979,0]],[12307,["op",12346,0]],[12308,["op",12312,0]],[12309,["op",12382,0]],[12310,["op",12333,1]],[12311,["op",12391,0]],[12312,["op",12419,1]],[12313,["op",12699,0]],[12314,["op",12700,0]],[12315,["op",12717,0]],[12316,["op",12347,0]],[12317,["op",12530,0]],[12318,["op",12731,0]],[12319,["op",12766,0]],[12320,["op",12600,0]],[12321,["op",12355,0]],[12322,["op",12734,0]],[12323,["op",12443,0]],[12324,["op",12557,0]],[12325,["op",12537,0]],[12326,["op",12690,0]],[12327,["op",12732,0]],[12328,["op",12660,1]],[12329,["op",12368,1]],[12330,["op",12604,0]],[12331,["op",12534,0]],[12332,["op",12417,0]],[12333,["op",12593,0]],[12334,["op",12636,0]],[12335,["op",12447,0]],[12337,["op",12601,0]],[12338,["op",12472,0]],[12339,["op",12488,0]],[12340,["op",12352,0]],[12341,["op",12644,0]],[12343,["op",12351,0]],[12345,["op",12518,0]],[12346,["op",12421,0]],[12348,["op",12463,0]],[12349,["op",12765,0]],[12350,["op",12738,0]],[12351,["op",12466,0]],[12352,["op",12704,0]],[12353,["op",12521,0]],[12354,["op",12661,0]],[12356,["op",12329,1]],[12357,["op",12334,1]],[12358,["op",12412,0]],[12359,["op",12407,0]],[12360,["op",12603,0]],[12361,["op",12453,0]],[12362,["op",12602,0]],[12363,["op",12477,0]],[12364,["op",12406,0]],[12365,["op",12405,0]],[12366,["op",12332,0]],[12367,["op",12606,0]],[12368,["op",12515,0]],[12369,["op",12392,0]],[12371,["op",12569,0]],[12372,["op",12630,0]],[12373,["op",12449,1]],[12374,["op",12338,0]],[12375,["op",12756,0]],[12376,["op",12685,0]],[12377,["op",12469,0]],[12378,["op",12470,0]],[12380,["op",12539,0]],[12381,["op",12546,0]],[12383,["op",12326,0]],[12384,["op",12358,0]],[12385,["op",12359,0]],[12387,["op",12633,0]],[12388,["op",12599,0]],[12389,["op",12543,1]],[12391,["op",12529,0]],[12392,["op",12462,0]],[12393,["op",12489,0]],[12394,["op",12562,1]],[12395,["op",12569,1]],[12398,["op",12581,0]],[12400,["op",12554,0]],[12401,["op",12535,0]],[12402,["op",12560,0]],[12403,["op",12656,0]],[12405,["op",12567,1]],[12406,["op",12703,1]],[12407,["op",12741,1]],[12408,["op",12372,1]],[12409,["op",12396,0]],[12410,["op",12572,0]],[12411,["op",12363,1]],[12412,["op",12563,0]],[12413,["op",12482,0]],[12414,["op",12514,0]],[12415,["op",12754,0]],[12416,["op",12504,0]],[12418,["op",12731,1]],[12419,["op",12309,1]],[12424,["op",12748,0]],[12426,["op",12618,0]],[12427,["op",12309,0]],[12428,["op",12479,0]],[12429,["op",12414,1]],[12430,["op",12754,1]],[12431,["op",12493,0]],[12432,["op",12508,0]],[12433,["op",12590,0]],[12435,["op",12589,0]],[12436,["op",12423,0]],[12437,["op",12625,0]],[12438,["op",12356,0]],[12439,["op",12587,0]],[12440,["op",12682,0]],[12441,["op",12726,0]],[12442,["op",12526,0]],[12443,["op",12745,0]],[12444,["op",12449,0]],[12445,["op",12374,0]],[12446,["op",12620,0]],[12448,["op",12426,0]],[12449,["op",12513,0]],[12451,["op",12762,0]],[12452,["op",12315,0]],[12453,["op",12712,0]],[12454,["op",12757,0]],[12456,["op",12752,0]],[12457,["op",12365,0]],[12458,["op",12624,1]],[12459,["op",12337,0]],[12460,["op",12681,0]],[12461,["op",12689,0]],[12462,["op",12370,1]],[12463,["op",12480,0]],[12464,["op",12480,1]],[12465,["op",12701,0]],[12467,["op",12744,0]],[12468,["op",12418,1]],[12470,["op",12542,0]],[12471,["op",12344,1]],[12472,["op",12708,1]],[12473,["op",12635,0]],[12475,["op",12672,0]],[12477,["op",12651,0]],[12478,["op",12636,1]],[12480,["op",12493,1]],[12481,["op",12570,1]],[12482,["op",12562,0]],[12484,["op",12430,0]],[12486,["op",12494,0]],[12487,["op",12762,1]],[12488,["op",12509,0]],[12490,["op",12404,0]],[12491,["op",12556,0]],[12493,["op",12486,0]],[12495,["op",12629,1]],[12496,["op",12495,0]],[12497,["op",12642,0]],[12498,["op",12457,0]],[12499,["op",12565,0]],[12500,["op",12664,0]],[12502,["op",12677,0]],[12503,["op",12492,1]],[12504,["op",12747,0]],[12505,["op",12325,1]],[12506,["op",12607,0]],[12507,["op",12335,0]],[12508,["op",12450,0]],[12509,["op",12698,1]],[12510,["op",12319,1]],[12511,["op",12456,0]],[12512,["op",12382,1]],[12513,["op",12377,0]],[12514,["op",12563,1]],[12518,["op",12539,1]],[12519,["op",12614,0]],[12520,["op",12470,1]],[12521,["op",12739,0]],[12523,["op",12476,0]],[12524,["op",12613,0]],[12525,["op",12622,0]],[12527,["op",12425,0]],[12528,["op",12485,1]],[12529,["op",12606,1]],[12530,["op",12386,1]],[12532,["op",12637,0]],[12533,["op",12474,1]],[12534,["op",12652,0]],[12537,["op",12440,0]],[12538,["op",12691,1]],[12539,["op",12764,0]],[12540,["op",12667,0]],[12543,["op",12436,0]],[12544,["op",12437,0]],[12545,["op",12611,0]],[12546,["op",12759,0]],[12547,["op",12544,0]],[12548,["op",12605,1]],[12549,["op",12647,0]],[12550,["op",12354,0]],[12551,["op",12468,0]],[12552,["op",12560,1]],[12553,["op",12652,1]],[12555,["op",12397,0]],[12556,["op",12588,0]],[12558,["op",12722,0]],[12559,["op",12454,1]],[12561,["op",12719,0]],[12562,["op",12555,1]],[12563,["op",12631,1]],[12566,["op",12743,0]],[12567,["op",12367,0]],[12569,["op",12490,0]],[12570,["op",12313,0]],[12571,["op",12485,0]],[12572,["op",12674,0]],[12573,["op",12721,0]],[12574,["op",12637,1]],[12575,["op",12630,1]],[12577,["op",12573,0]],[12578,["op",12465,0]],[12579,["op",12692,0]],[12581,["op",12540,0]],[12582,["op",12729,0]],[12583,["op",12386,0]],[12584,["op",12755,0]],[12585,["op",12575,0]],[12586,["op",12638,0]],[12587,["op",12719,1]],[12588,["op",12509,1]],[12589,["op",12646,0]],[12591,["op",12697,0]],[12592,["op",12720,0]],[12593,["op",12627,0]],[12594,["op",12502,0]],[12596,["op",12680,0]],[12599,["op",12730,1]],[12601,["op",12724,0]],[12602,["op",12596,0]],[12604,["op",12566,1]],[12605,["op",12671,0]],[12608,["op",12683,0]],[12610,["op",12402,0]],[12611,["op",12535,1]],[12616,["op",12639,0]],[12618,["op",12455,0]],[12620,["op",12407,1]],[12621,["op",12626,0]],[12624,["op",12629,0]],[12625,["op",12720,1]],[12627,["op",12559,0]],[12628,["op",12421,1]],[12631,["op",12422,0]],[12632,["op",12641,0]],[12633,["op",12672,1]],[12635,["op",12639,1]],[12636,["op",12415,0]],[12639,["op",12370,0]],[12640,["op",12753,0]],[12642,["op",12693,0]],[12643,["op",12662,0]],[12648,["op",12548,0]],[12649,["op",12647,1]],[12657,["op",12760,0]],[12658,["op",12616,0]],[12660,["op",12499,0]],[12661,["op",12673,0]],[12662,["op",12733,0]],[12664,["op",12737,0]],[12666,["op",12580,0]],[12669,["op",12472,1]],[12673,["op",12695,1]],[12674,["op",12586,1]],[12676,["op",12721,1]],[12677,["op",12750,1]],[12679,["op",12368,0]],[12684,["op",12619,0]],[12685,["op",12715,0]],[12687,["op",12641,1]],[12689,["op",12653,1]],[12691,["op",12654,0]],[12693,["op",12595,0]],[12696,["op",12580,1]],[12699,["op",12745,1]],[12701,["op",12743,1]],[12702,["op",12559,1]],[12703,["op",12608,0]],[12705,["op",12609,0]],[12708,["op",12342,0]],[12714,["op",12318,0]],[12716,["op",12613,1]],[12718,["op",12420,0]],[12726,["op",12615,1]],[12727,["op",12584,1]],[12732,["op",12374,1]],[12734,["op",12655,0]],[12736,["op",12476,1]],[12738,["op",12713,1]],[12741,["op",12690,1]],[12749,["op",12442,0]],[12770,["op",12809,0]],[12771,["op",12775,0]],[12772,["op",12845,0]],[12773,["op",12796,1]],[12774,["op",12854,0]],[12775,["op",12882,1]],[12776,["op",13162,0]],[12777,["op",13163,0]],[12778,["op",13180,0]],[12779,["op",12810,0]],[12780,["op",12993,0]],[12781,["op",13194,0]],[12782,["op",13229,0]],[12783,["op",13063,0]],[12784,["op",12818,0]],[12785,["op",13197,0]],[12786,["op",12906,0]],[12787,["op",13020,0]],[12788,["op",13000,0]],[12789,["op",13153,0]],[12790,["op",13195,0]],[12791,["op",13123,1]],[12792,["op",12831,1]],[12793,["op",13067,0]],[12794,["op",12997,0]],[12795,["op",12880,0]],[12796,["op",13056,0]],[12797,["op",13099,0]],[12798,["op",12910,0]],[12800,["op",13064,0]],[12801,["op",12935,0]],[12802,["op",12951,0]],[12803,["op",12815,0]],[12804,["op",13107,0]],[12806,["op",12814,0]],[12808,["op",12981,0]],[12809,["op",12884,0]],[12811,["op",12926,0]],[12812,["op",13228,0]],[12813,["op",13201,0]],[12814,["op",12929,0]],[12815,["op",13167,0]],[12816,["op",12984,0]],[12817,["op",13124,0]],[12819,["op",12792,1]],[12820,["op",12797,1]],[12821,["op",12875,0]],[12822,["op",12870,0]],[12823,["op",13066,0]],[12824,["op",12916,0]],[12825,["op",13065,0]],[12826,["op",12940,0]],[12827,["op",12869,0]],[12828,["op",12868,0]],[12829,["op",12795,0]],[12830,["op",13069,0]],[12831,["op",12978,0]],[12832,["op",12855,0]],[12834,["op",13032,0]],[12835,["op",13093,0]],[12836,["op",12912,1]],[12837,["op",12801,0]],[12838,["op",13219,0]],[12839,["op",13148,0]],[12840,["op",12932,0]],[12841,["op",12933,0]],[12843,["op",13002,0]],[12844,["op",13009,0]],[12846,["op",12789,0]],[12847,["op",12821,0]],[12848,["op",12822,0]],[12850,["op",13096,0]],[12851,["op",13062,0]],[12852,["op",13006,1]],[12854,["op",12992,0]],[12855,["op",12925,0]],[12856,["op",12952,0]],[12857,["op",13025,1]],[12858,["op",13032,1]],[12861,["op",13044,0]],[12863,["op",13017,0]],[12864,["op",12998,0]],[12865,["op",13023,0]],[12866,["op",13119,0]],[12868,["op",13030,1]],[12869,["op",13166,1]],[12870,["op",13204,1]],[12871,["op",12835,1]],[12872,["op",12859,0]],[12873,["op",13035,0]],[12874,["op",12826,1]],[12875,["op",13026,0]],[12876,["op",12945,0]],[12877,["op",12977,0]],[12878,["op",13217,0]],[12879,["op",12967,0]],[12881,["op",13194,1]],[12882,["op",12772,1]],[12887,["op",13211,0]],[12889,["op",13081,0]],[12890,["op",12772,0]],[12891,["op",12942,0]],[12892,["op",12877,1]],[12893,["op",13217,1]],[12894,["op",12956,0]],[12895,["op",12971,0]],[12896,["op",13053,0]],[12898,["op",13052,0]],[12899,["op",12886,0]],[12900,["op",13088,0]],[12901,["op",12819,0]],[12902,["op",13050,0]],[12903,["op",13145,0]],[12904,["op",13189,0]],[12905,["op",12989,0]],[12906,["op",13208,0]],[12907,["op",12912,0]],[12908,["op",12837,0]],[12909,["op",13083,0]],[12911,["op",12889,0]],[12912,["op",12976,0]],[12914,["op",13225,0]],[12915,["op",12778,0]],[12916,["op",13175,0]],[12917,["op",13220,0]],[12919,["op",13215,0]],[12920,["op",12828,0]],[12921,["op",13087,1]],[12922,["op",12800,0]],[12923,["op",13144,0]],[12924,["op",13152,0]],[12925,["op",12833,1]],[12926,["op",12943,0]],[12927,["op",12943,1]],[12928,["op",13164,0]],[12930,["op",13207,0]],[12931,["op",12881,1]],[12933,["op",13005,0]],[12934,["op",12807,1]],[12935,["op",13171,1]],[12936,["op",13098,0]],[12938,["op",13135,0]],[12940,["op",13114,0]],[12941,["op",13099,1]],[12943,["op",12956,1]],[12944,["op",13033,1]],[12945,["op",13025,0]],[12947,["op",12893,0]],[12949,["op",12957,0]],[12950,["op",13225,1]],[12951,["op",12972,0]],[12953,["op",12867,0]],[12954,["op",13019,0]],[12956,["op",12949,0]],[12958,["op",13092,1]],[12959,["op",12958,0]],[12960,["op",13105,0]],[12961,["op",12920,0]],[12962,["op",13028,0]],[12963,["op",13127,0]],[12965,["op",13140,0]],[12966,["op",12955,1]],[12967,["op",13210,0]],[12968,["op",12788,1]],[12969,["op",13070,0]],[12970,["op",12798,0]],[12971,["op",12913,0]],[12972,["op",13161,1]],[12973,["op",12782,1]],[12974,["op",12919,0]],[12975,["op",12845,1]],[12976,["op",12840,0]],[12977,["op",13026,1]],[12981,["op",13002,1]],[12982,["op",13077,0]],[12983,["op",12933,1]],[12984,["op",13202,0]],[12986,["op",12939,0]],[12987,["op",13076,0]],[12988,["op",13085,0]],[12990,["op",12888,0]],[12991,["op",12948,1]],[12992,["op",13069,1]],[12993,["op",12849,1]],[12995,["op",13100,0]],[12996,["op",12937,1]],[12997,["op",13115,0]],[13000,["op",12903,0]],[13001,["op",13154,1]],[13002,["op",13227,0]],[13003,["op",13130,0]],[13006,["op",12899,0]],[13007,["op",12900,0]],[13008,["op",13074,0]],[13009,["op",13222,0]],[13010,["op",13007,0]],[13011,["op",13068,1]],[13012,["op",13110,0]],[13013,["op",12817,0]],[13014,["op",12931,0]],[13015,["op",13023,1]],[13016,["op",13115,1]],[13018,["op",12860,0]],[13019,["op",13051,0]],[13021,["op",13185,0]],[13022,["op",12917,1]],[13024,["op",13182,0]],[13025,["op",13018,1]],[13026,["op",13094,1]],[13029,["op",13206,0]],[13030,["op",12830,0]],[13032,["op",12953,0]],[13033,["op",12776,0]],[13034,["op",12948,0]],[13035,["op",13137,0]],[13036,["op",13184,0]],[13037,["op",13100,1]],[13038,["op",13093,1]],[13040,["op",13036,0]],[13041,["op",12928,0]],[13042,["op",13155,0]],[13044,["op",13003,0]],[13045,["op",13192,0]],[13046,["op",12849,0]],[13047,["op",13218,0]],[13048,["op",13038,0]],[13049,["op",13101,0]],[13050,["op",13182,1]],[13051,["op",12972,1]],[13052,["op",13109,0]],[13054,["op",13160,0]],[13055,["op",13183,0]],[13056,["op",13090,0]],[13057,["op",12965,0]],[13059,["op",13143,0]],[13062,["op",13193,1]],[13064,["op",13187,0]],[13065,["op",13059,0]],[13067,["op",13029,1]],[13068,["op",13134,0]],[13071,["op",13146,0]],[13073,["op",12865,0]],[13074,["op",12998,1]],[13079,["op",13102,0]],[13081,["op",12918,0]],[13083,["op",12870,1]],[13084,["op",13089,0]],[13087,["op",13092,0]],[13088,["op",13183,1]],[13090,["op",13022,0]],[13091,["op",12884,1]],[13094,["op",12885,0]],[13095,["op",13104,0]],[13096,["op",13135,1]],[13098,["op",13102,1]],[13099,["op",12878,0]],[13102,["op",12833,0]],[13103,["op",13216,0]],[13105,["op",13156,0]],[13106,["op",13125,0]],[13111,["op",13011,0]],[13112,["op",13110,1]],[13120,["op",13223,0]],[13121,["op",13079,0]],[13123,["op",12962,0]],[13124,["op",13136,0]],[13125,["op",13196,0]],[13127,["op",13200,0]],[13129,["op",13043,0]],[13132,["op",12935,1]],[13136,["op",13158,1]],[13137,["op",13049,1]],[13139,["op",13184,1]],[13140,["op",13213,1]],[13142,["op",12831,0]],[13147,["op",13082,0]],[13148,["op",13178,0]],[13150,["op",13104,1]],[13152,["op",13116,1]],[13154,["op",13117,0]],[13156,["op",13058,0]],[13159,["op",13043,1]],[13162,["op",13208,1]],[13164,["op",13206,1]],[13165,["op",13022,1]],[13166,["op",13071,0]],[13168,["op",13072,0]],[13171,["op",12805,0]],[13177,["op",12781,0]],[13179,["op",13076,1]],[13181,["op",12883,0]],[13189,["op",13078,1]],[13190,["op",13047,1]],[13195,["op",12837,1]],[13197,["op",13118,0]],[13199,["op",12939,1]],[13201,["op",13176,1]],[13204,["op",13153,1]],[13212,["op",12905,0]],[13233,["op",13272,0]],[13234,["op",13238,0]],[13235,["op",13308,0]],[13236,["op",13259,1]],[13237,["op",13317,0]],[13238,["op",13345,1]],[13239,["op",13625,0]],[13240,["op",13626,0]],[13241,["op",13643,0]],[13242,["op",13273,0]],[13243,["op",13456,0]],[13244,["op",13657,0]],[13245,["op",13692,0]],[13246,["op",13526,0]],[13247,["op",13281,0]],[13248,["op",13660,0]],[13249,["op",13369,0]],[13250,["op",13483,0]],[13251,["op",13463,0]],[13252,["op",13616,0]],[13253,["op",13658,0]],[13254,["op",13586,1]],[13255,["op",13294,1]],[13256,["op",13530,0]],[13257,["op",13460,0]],[13258,["op",13343,0]],[13259,["op",13519,0]],[13260,["op",13562,0]],[13261,["op",13373,0]],[13263,["op",13527,0]],[13264,["op",13398,0]],[13265,["op",13414,0]],[13266,["op",13278,0]],[13267,["op",13570,0]],[13269,["op",13277,0]],[13271,["op",13444,0]],[13272,["op",13347,0]],[13274,["op",13389,0]],[13275,["op",13691,0]],[13276,["op",13664,0]],[13277,["op",13392,0]],[13278,["op",13630,0]],[13279,["op",13447,0]],[13280,["op",13587,0]],[13282,["op",13255,1]],[13283,["op",13260,1]],[13284,["op",13338,0]],[13285,["op",13333,0]],[13286,["op",13529,0]],[13287,["op",13379,0]],[13288,["op",13528,0]],[13289,["op",13403,0]],[13290,["op",13332,0]],[13291,["op",13331,0]],[13292,["op",13258,0]],[13293,["op",13532,0]],[13294,["op",13441,0]],[13295,["op",13318,0]],[13297,["op",13495,0]],[13298,["op",13556,0]],[13299,["op",13375,1]],[13300,["op",13264,0]],[13301,["op",13682,0]],[13302,["op",13611,0]],[13303,["op",13395,0]],[13304,["op",13396,0]],[13306,["op",13465,0]],[13307,["op",13472,0]],[13309,["op",13252,0]],[13310,["op",13284,0]],[13311,["op",13285,0]],[13313,["op",13559,0]],[13314,["op",13525,0]],[13315,["op",13469,1]],[13317,["op",13455,0]],[13318,["op",13388,0]],[13319,["op",13415,0]],[13320,["op",13488,1]],[13321,["op",13495,1]],[13324,["op",13507,0]],[13326,["op",13480,0]],[13327,["op",13461,0]],[13328,["op",13486,0]],[13329,["op",13582,0]],[13331,["op",13493,1]],[13332,["op",13629,1]],[13333,["op",13667,1]],[13334,["op",13298,1]],[13335,["op",13322,0]],[13336,["op",13498,0]],[13337,["op",13289,1]],[13338,["op",13489,0]],[13339,["op",13408,0]],[13340,["op",13440,0]],[13341,["op",13680,0]],[13342,["op",13430,0]],[13344,["op",13657,1]],[13345,["op",13235,1]],[13350,["op",13674,0]],[13352,["op",13544,0]],[13353,["op",13235,0]],[13354,["op",13405,0]],[13355,["op",13340,1]],[13356,["op",13680,1]],[13357,["op",13419,0]],[13358,["op",13434,0]],[13359,["op",13516,0]],[13361,["op",13515,0]],[13362,["op",13349,0]],[13363,["op",13551,0]],[13364,["op",13282,0]],[13365,["op",13513,0]],[13366,["op",13608,0]],[13367,["op",13652,0]],[13368,["op",13452,0]],[13369,["op",13671,0]],[13370,["op",13375,0]],[13371,["op",13300,0]],[13372,["op",13546,0]],[13374,["op",13352,0]],[13375,["op",13439,0]],[13377,["op",13688,0]],[13378,["op",13241,0]],[13379,["op",13638,0]],[13380,["op",13683,0]],[13382,["op",13678,0]],[13383,["op",13291,0]],[13384,["op",13550,1]],[13385,["op",13263,0]],[13386,["op",13607,0]],[13387,["op",13615,0]],[13388,["op",13296,1]],[13389,["op",13406,0]],[13390,["op",13406,1]],[13391,["op",13627,0]],[13393,["op",13670,0]],[13394,["op",13344,1]],[13396,["op",13468,0]],[13397,["op",13270,1]],[13398,["op",13634,1]],[13399,["op",13561,0]],[13401,["op",13598,0]],[13403,["op",13577,0]],[13404,["op",13562,1]],[13406,["op",13419,1]],[13407,["op",13496,1]],[13408,["op",13488,0]],[13410,["op",13356,0]],[13412,["op",13420,0]],[13413,["op",13688,1]],[13414,["op",13435,0]],[13416,["op",13330,0]],[13417,["op",13482,0]],[13419,["op",13412,0]],[13421,["op",13555,1]],[13422,["op",13421,0]],[13423,["op",13568,0]],[13424,["op",13383,0]],[13425,["op",13491,0]],[13426,["op",13590,0]],[13428,["op",13603,0]],[13429,["op",13418,1]],[13430,["op",13673,0]],[13431,["op",13251,1]],[13432,["op",13533,0]],[13433,["op",13261,0]],[13434,["op",13376,0]],[13435,["op",13624,1]],[13436,["op",13245,1]],[13437,["op",13382,0]],[13438,["op",13308,1]],[13439,["op",13303,0]],[13440,["op",13489,1]],[13444,["op",13465,1]],[13445,["op",13540,0]],[13446,["op",13396,1]],[13447,["op",13665,0]],[13449,["op",13402,0]],[13450,["op",13539,0]],[13451,["op",13548,0]],[13453,["op",13351,0]],[13454,["op",13411,1]],[13455,["op",13532,1]],[13456,["op",13312,1]],[13458,["op",13563,0]],[13459,["op",13400,1]],[13460,["op",13578,0]],[13463,["op",13366,0]],[13464,["op",13617,1]],[13465,["op",13690,0]],[13466,["op",13593,0]],[13469,["op",13362,0]],[13470,["op",13363,0]],[13471,["op",13537,0]],[13472,["op",13685,0]],[13473,["op",13470,0]],[13474,["op",13531,1]],[13475,["op",13573,0]],[13476,["op",13280,0]],[13477,["op",13394,0]],[13478,["op",13486,1]],[13479,["op",13578,1]],[13481,["op",13323,0]],[13482,["op",13514,0]],[13484,["op",13648,0]],[13485,["op",13380,1]],[13487,["op",13645,0]],[13488,["op",13481,1]],[13489,["op",13557,1]],[13492,["op",13669,0]],[13493,["op",13293,0]],[13495,["op",13416,0]],[13496,["op",13239,0]],[13497,["op",13411,0]],[13498,["op",13600,0]],[13499,["op",13647,0]],[13500,["op",13563,1]],[13501,["op",13556,1]],[13503,["op",13499,0]],[13504,["op",13391,0]],[13505,["op",13618,0]],[13507,["op",13466,0]],[13508,["op",13655,0]],[13509,["op",13312,0]],[13510,["op",13681,0]],[13511,["op",13501,0]],[13512,["op",13564,0]],[13513,["op",13645,1]],[13514,["op",13435,1]],[13515,["op",13572,0]],[13517,["op",13623,0]],[13518,["op",13646,0]],[13519,["op",13553,0]],[13520,["op",13428,0]],[13522,["op",13606,0]],[13525,["op",13656,1]],[13527,["op",13650,0]],[13528,["op",13522,0]],[13530,["op",13492,1]],[13531,["op",13597,0]],[13534,["op",13609,0]],[13536,["op",13328,0]],[13537,["op",13461,1]],[13542,["op",13565,0]],[13544,["op",13381,0]],[13546,["op",13333,1]],[13547,["op",13552,0]],[13550,["op",13555,0]],[13551,["op",13646,1]],[13553,["op",13485,0]],[13554,["op",13347,1]],[13557,["op",13348,0]],[13558,["op",13567,0]],[13559,["op",13598,1]],[13561,["op",13565,1]],[13562,["op",13341,0]],[13565,["op",13296,0]],[13566,["op",13679,0]],[13568,["op",13619,0]],[13569,["op",13588,0]],[13574,["op",13474,0]],[13575,["op",13573,1]],[13583,["op",13686,0]],[13584,["op",13542,0]],[13586,["op",13425,0]],[13587,["op",13599,0]],[13588,["op",13659,0]],[13590,["op",13663,0]],[13592,["op",13506,0]],[13595,["op",13398,1]],[13599,["op",13621,1]],[13600,["op",13512,1]],[13602,["op",13647,1]],[13603,["op",13676,1]],[13605,["op",13294,0]],[13610,["op",13545,0]],[13611,["op",13641,0]],[13613,["op",13567,1]],[13615,["op",13579,1]],[13617,["op",13580,0]],[13619,["op",13521,0]],[13622,["op",13506,1]],[13625,["op",13671,1]],[13627,["op",13669,1]],[13628,["op",13485,1]],[13629,["op",13534,0]],[13631,["op",13535,0]],[13634,["op",13268,0]],[13640,["op",13244,0]],[13642,["op",13539,1]],[13644,["op",13346,0]],[13652,["op",13541,1]],[13653,["op",13510,1]],[13658,["op",13300,1]],[13660,["op",13581,0]],[13662,["op",13402,1]],[13664,["op",13639,1]],[13667,["op",13616,1]],[13675,["op",13368,0]],[13696,["op",13735,0]],[13697,["op",13701,0]],[13698,["op",13771,0]],[13699,["op",13722,1]],[13700,["op",13780,0]],[13701,["op",13808,1]],[13702,["op",14088,0]],[13703,["op",14089,0]],[13704,["op",14106,0]],[13705,["op",13736,0]],[13706,["op",13919,0]],[13707,["op",14120,0]],[13708,["op",14155,0]],[13709,["op",13989,0]],[13710,["op",13744,0]],[13711,["op",14123,0]],[13712,["op",13832,0]],[13713,["op",13946,0]],[13714,["op",13926,0]],[13715,["op",14079,0]],[13716,["op",14121,0]],[13717,["op",14049,1]],[13718,["op",13757,1]],[13719,["op",13993,0]],[13720,["op",13923,0]],[13721,["op",13806,0]],[13722,["op",13982,0]],[13723,["op",14025,0]],[13724,["op",13836,0]],[13726,["op",13990,0]],[13727,["op",13861,0]],[13728,["op",13877,0]],[13729,["op",13741,0]],[13730,["op",14033,0]],[13732,["op",13740,0]],[13734,["op",13907,0]],[13735,["op",13810,0]],[13737,["op",13852,0]],[13738,["op",14154,0]],[13739,["op",14127,0]],[13740,["op",13855,0]],[13741,["op",14093,0]],[13742,["op",13910,0]],[13743,["op",14050,0]],[13745,["op",13718,1]],[13746,["op",13723,1]],[13747,["op",13801,0]],[13748,["op",13796,0]],[13749,["op",13992,0]],[13750,["op",13842,0]],[13751,["op",13991,0]],[13752,["op",13866,0]],[13753,["op",13795,0]],[13754,["op",13794,0]],[13755,["op",13721,0]],[13756,["op",13995,0]],[13757,["op",13904,0]],[13758,["op",13781,0]],[13760,["op",13958,0]],[13761,["op",14019,0]],[13762,["op",13838,1]],[13763,["op",13727,0]],[13764,["op",14145,0]],[13765,["op",14074,0]],[13766,["op",13858,0]],[13767,["op",13859,0]],[13769,["op",13928,0]],[13770,["op",13935,0]],[13772,["op",13715,0]],[13773,["op",13747,0]],[13774,["op",13748,0]],[13776,["op",14022,0]],[13777,["op",13988,0]],[13778,["op",13932,1]],[13780,["op",13918,0]],[13781,["op",13851,0]],[13782,["op",13878,0]],[13783,["op",13951,1]],[13784,["op",13958,1]],[13787,["op",13970,0]],[13789,["op",13943,0]],[13790,["op",13924,0]],[13791,["op",13949,0]],[13792,["op",14045,0]],[13794,["op",13956,1]],[13795,["op",14092,1]],[13796,["op",14130,1]],[13797,["op",13761,1]],[13798,["op",13785,0]],[13799,["op",13961,0]],[13800,["op",13752,1]],[13801,["op",13952,0]],[13802,["op",13871,0]],[13803,["op",13903,0]],[13804,["op",14143,0]],[13805,["op",13893,0]],[13807,["op",14120,1]],[13808,["op",13698,1]],[13813,["op",14137,0]],[13815,["op",14007,0]],[13816,["op",13698,0]],[13817,["op",13868,0]],[13818,["op",13803,1]],[13819,["op",14143,1]],[13820,["op",13882,0]],[13821,["op",13897,0]],[13822,["op",13979,0]],[13824,["op",13978,0]],[13825,["op",13812,0]],[13826,["op",14014,0]],[13827,["op",13745,0]],[13828,["op",13976,0]],[13829,["op",14071,0]],[13830,["op",14115,0]],[13831,["op",13915,0]],[13832,["op",14134,0]],[13833,["op",13838,0]],[13834,["op",13763,0]],[13835,["op",14009,0]],[13837,["op",13815,0]],[13838,["op",13902,0]],[13840,["op",14151,0]],[13841,["op",13704,0]],[13842,["op",14101,0]],[13843,["op",14146,0]],[13845,["op",14141,0]],[13846,["op",13754,0]],[13847,["op",14013,1]],[13848,["op",13726,0]],[13849,["op",14070,0]],[13850,["op",14078,0]],[13851,["op",13759,1]],[13852,["op",13869,0]],[13853,["op",13869,1]],[13854,["op",14090,0]],[13856,["op",14133,0]],[13857,["op",13807,1]],[13859,["op",13931,0]],[13860,["op",13733,1]],[13861,["op",14097,1]],[13862,["op",14024,0]],[13864,["op",14061,0]],[13866,["op",14040,0]],[13867,["op",14025,1]],[13869,["op",13882,1]],[13870,["op",13959,1]],[13871,["op",13951,0]],[13873,["op",13819,0]],[13875,["op",13883,0]],[13876,["op",14151,1]],[13877,["op",13898,0]],[13879,["op",13793,0]],[13880,["op",13945,0]],[13882,["op",13875,0]],[13884,["op",14018,1]],[13885,["op",13884,0]],[13886,["op",14031,0]],[13887,["op",13846,0]],[13888,["op",13954,0]],[13889,["op",14053,0]],[13891,["op",14066,0]],[13892,["op",13881,1]],[13893,["op",14136,0]],[13894,["op",13714,1]],[13895,["op",13996,0]],[13896,["op",13724,0]],[13897,["op",13839,0]],[13898,["op",14087,1]],[13899,["op",13708,1]],[13900,["op",13845,0]],[13901,["op",13771,1]],[13902,["op",13766,0]],[13903,["op",13952,1]],[13907,["op",13928,1]],[13908,["op",14003,0]],[13909,["op",13859,1]],[13910,["op",14128,0]],[13912,["op",13865,0]],[13913,["op",14002,0]],[13914,["op",14011,0]],[13916,["op",13814,0]],[13917,["op",13874,1]],[13918,["op",13995,1]],[13919,["op",13775,1]],[13921,["op",14026,0]],[13922,["op",13863,1]],[13923,["op",14041,0]],[13926,["op",13829,0]],[13927,["op",14080,1]],[13928,["op",14153,0]],[13929,["op",14056,0]],[13932,["op",13825,0]],[13933,["op",13826,0]],[13934,["op",14000,0]],[13935,["op",14148,0]],[13936,["op",13933,0]],[13937,["op",13994,1]],[13938,["op",14036,0]],[13939,["op",13743,0]],[13940,["op",13857,0]],[13941,["op",13949,1]],[13942,["op",14041,1]],[13944,["op",13786,0]],[13945,["op",13977,0]],[13947,["op",14111,0]],[13948,["op",13843,1]],[13950,["op",14108,0]],[13951,["op",13944,1]],[13952,["op",14020,1]],[13955,["op",14132,0]],[13956,["op",13756,0]],[13958,["op",13879,0]],[13959,["op",13702,0]],[13960,["op",13874,0]],[13961,["op",14063,0]],[13962,["op",14110,0]],[13963,["op",14026,1]],[13964,["op",14019,1]],[13966,["op",13962,0]],[13967,["op",13854,0]],[13968,["op",14081,0]],[13970,["op",13929,0]],[13971,["op",14118,0]],[13972,["op",13775,0]],[13973,["op",14144,0]],[13974,["op",13964,0]],[13975,["op",14027,0]],[13976,["op",14108,1]],[13977,["op",13898,1]],[13978,["op",14035,0]],[13980,["op",14086,0]],[13981,["op",14109,0]],[13982,["op",14016,0]],[13983,["op",13891,0]],[13985,["op",14069,0]],[13988,["op",14119,1]],[13990,["op",14113,0]],[13991,["op",13985,0]],[13993,["op",13955,1]],[13994,["op",14060,0]],[13997,["op",14072,0]],[13999,["op",13791,0]],[14000,["op",13924,1]],[14005,["op",14028,0]],[14007,["op",13844,0]],[14009,["op",13796,1]],[14010,["op",14015,0]],[14013,["op",14018,0]],[14014,["op",14109,1]],[14016,["op",13948,0]],[14017,["op",13810,1]],[14020,["op",13811,0]],[14021,["op",14030,0]],[14022,["op",14061,1]],[14024,["op",14028,1]],[14025,["op",13804,0]],[14028,["op",13759,0]],[14029,["op",14142,0]],[14031,["op",14082,0]],[14032,["op",14051,0]],[14037,["op",13937,0]],[14038,["op",14036,1]],[14046,["op",14149,0]],[14047,["op",14005,0]],[14049,["op",13888,0]],[14050,["op",14062,0]],[14051,["op",14122,0]],[14053,["op",14126,0]],[14055,["op",13969,0]],[14058,["op",13861,1]],[14062,["op",14084,1]],[14063,["op",13975,1]],[14065,["op",14110,1]],[14066,["op",14139,1]],[14068,["op",13757,0]],[14073,["op",14008,0]],[14074,["op",14104,0]],[14076,["op",14030,1]],[14078,["op",14042,1]],[14080,["op",14043,0]],[14082,["op",13984,0]],[14085,["op",13969,1]],[14088,["op",14134,1]],[14090,["op",14132,1]],[14091,["op",13948,1]],[14092,["op",13997,0]],[14094,["op",13998,0]],[14097,["op",13731,0]],[14103,["op",13707,0]],[14105,["op",14002,1]],[14107,["op",13809,0]],[14115,["op",14004,1]],[14116,["op",13973,1]],[14121,["op",13763,1]],[14123,["op",14044,0]],[14125,["op",13865,1]],[14127,["op",14102,1]],[14130,["op",14079,1]],[14138,["op",13831,0]],[14159,["op",14198,0]],[14160,["op",14164,0]],[14161,["op",14234,0]],[14162,["op",14185,1]],[14163,["op",14243,0]],[14164,["op",14271,1]],[14165,["op",14551,0]],[14166,["op",14552,0]],[14167,["op",14569,0]],[14168,["op",14199,0]],[14169,["op",14382,0]],[14170,["op",14583,0]],[14171,["op",14618,0]],[14172,["op",14452,0]],[14173,["op",14207,0]],[14174,["op",14586,0]],[14175,["op",14295,0]],[14176,["op",14409,0]],[14177,["op",14389,0]],[14178,["op",14542,0]],[14179,["op",14584,0]],[14180,["op",14512,1]],[14181,["op",14220,1]],[14182,["op",14456,0]],[14183,["op",14386,0]],[14184,["op",14269,0]],[14185,["op",14445,0]],[14186,["op",14488,0]],[14187,["op",14299,0]],[14189,["op",14453,0]],[14190,["op",14324,0]],[14191,["op",14340,0]],[14192,["op",14204,0]],[14193,["op",14496,0]],[14195,["op",14203,0]],[14197,["op",14370,0]],[14198,["op",14273,0]],[14200,["op",14315,0]],[14201,["op",14617,0]],[14202,["op",14590,0]],[14203,["op",14318,0]],[14204,["op",14556,0]],[14205,["op",14373,0]],[14206,["op",14513,0]],[14208,["op",14181,1]],[14209,["op",14186,1]],[14210,["op",14264,0]],[14211,["op",14259,0]],[14212,["op",14455,0]],[14213,["op",14305,0]],[14214,["op",14454,0]],[14215,["op",14329,0]],[14216,["op",14258,0]],[14217,["op",14257,0]],[14218,["op",14184,0]],[14219,["op",14458,0]],[14220,["op",14367,0]],[14221,["op",14244,0]],[14223,["op",14421,0]],[14224,["op",14482,0]],[14225,["op",14301,1]],[14226,["op",14190,0]],[14227,["op",14608,0]],[14228,["op",14537,0]],[14229,["op",14321,0]],[14230,["op",14322,0]],[14232,["op",14391,0]],[14233,["op",14398,0]],[14235,["op",14178,0]],[14236,["op",14210,0]],[14237,["op",14211,0]],[14239,["op",14485,0]],[14240,["op",14451,0]],[14241,["op",14395,1]],[14243,["op",14381,0]],[14244,["op",14314,0]],[14245,["op",14341,0]],[14246,["op",14414,1]],[14247,["op",14421,1]],[14250,["op",14433,0]],[14252,["op",14406,0]],[14253,["op",14387,0]],[14254,["op",14412,0]],[14255,["op",14508,0]],[14257,["op",14419,1]],[14258,["op",14555,1]],[14259,["op",14593,1]],[14260,["op",14224,1]],[14261,["op",14248,0]],[14262,["op",14424,0]],[14263,["op",14215,1]],[14264,["op",14415,0]],[14265,["op",14334,0]],[14266,["op",14366,0]],[14267,["op",14606,0]],[14268,["op",14356,0]],[14270,["op",14583,1]],[14271,["op",14161,1]],[14276,["op",14600,0]],[14278,["op",14470,0]],[14279,["op",14161,0]],[14280,["op",14331,0]],[14281,["op",14266,1]],[14282,["op",14606,1]],[14283,["op",14345,0]],[14284,["op",14360,0]],[14285,["op",14442,0]],[14287,["op",14441,0]],[14288,["op",14275,0]],[14289,["op",14477,0]],[14290,["op",14208,0]],[14291,["op",14439,0]],[14292,["op",14534,0]],[14293,["op",14578,0]],[14294,["op",14378,0]],[14295,["op",14597,0]],[14296,["op",14301,0]],[14297,["op",14226,0]],[14298,["op",14472,0]],[14300,["op",14278,0]],[14301,["op",14365,0]],[14303,["op",14614,0]],[14304,["op",14167,0]],[14305,["op",14564,0]],[14306,["op",14609,0]],[14308,["op",14604,0]],[14309,["op",14217,0]],[14310,["op",14476,1]],[14311,["op",14189,0]],[14312,["op",14533,0]],[14313,["op",14541,0]],[14314,["op",14222,1]],[14315,["op",14332,0]],[14316,["op",14332,1]],[14317,["op",14553,0]],[14319,["op",14596,0]],[14320,["op",14270,1]],[14322,["op",14394,0]],[14323,["op",14196,1]],[14324,["op",14560,1]],[14325,["op",14487,0]],[14327,["op",14524,0]],[14329,["op",14503,0]],[14330,["op",14488,1]],[14332,["op",14345,1]],[14333,["op",14422,1]],[14334,["op",14414,0]],[14336,["op",14282,0]],[14338,["op",14346,0]],[14339,["op",14614,1]],[14340,["op",14361,0]],[14342,["op",14256,0]],[14343,["op",14408,0]],[14345,["op",14338,0]],[14347,["op",14481,1]],[14348,["op",14347,0]],[14349,["op",14494,0]],[14350,["op",14309,0]],[14351,["op",14417,0]],[14352,["op",14516,0]],[14354,["op",14529,0]],[14355,["op",14344,1]],[14356,["op",14599,0]],[14357,["op",14177,1]],[14358,["op",14459,0]],[14359,["op",14187,0]],[14360,["op",14302,0]],[14361,["op",14550,1]],[14362,["op",14171,1]],[14363,["op",14308,0]],[14364,["op",14234,1]],[14365,["op",14229,0]],[14366,["op",14415,1]],[14370,["op",14391,1]],[14371,["op",14466,0]],[14372,["op",14322,1]],[14373,["op",14591,0]],[14375,["op",14328,0]],[14376,["op",14465,0]],[14377,["op",14474,0]],[14379,["op",14277,0]],[14380,["op",14337,1]],[14381,["op",14458,1]],[14382,["op",14238,1]],[14384,["op",14489,0]],[14385,["op",14326,1]],[14386,["op",14504,0]],[14389,["op",14292,0]],[14390,["op",14543,1]],[14391,["op",14616,0]],[14392,["op",14519,0]],[14395,["op",14288,0]],[14396,["op",14289,0]],[14397,["op",14463,0]],[14398,["op",14611,0]],[14399,["op",14396,0]],[14400,["op",14457,1]],[14401,["op",14499,0]],[14402,["op",14206,0]],[14403,["op",14320,0]],[14404,["op",14412,1]],[14405,["op",14504,1]],[14407,["op",14249,0]],[14408,["op",14440,0]],[14410,["op",14574,0]],[14411,["op",14306,1]],[14413,["op",14571,0]],[14414,["op",14407,1]],[14415,["op",14483,1]],[14418,["op",14595,0]],[14419,["op",14219,0]],[14421,["op",14342,0]],[14422,["op",14165,0]],[14423,["op",14337,0]],[14424,["op",14526,0]],[14425,["op",14573,0]],[14426,["op",14489,1]],[14427,["op",14482,1]],[14429,["op",14425,0]],[14430,["op",14317,0]],[14431,["op",14544,0]],[14433,["op",14392,0]],[14434,["op",14581,0]],[14435,["op",14238,0]],[14436,["op",14607,0]],[14437,["op",14427,0]],[14438,["op",14490,0]],[14439,["op",14571,1]],[14440,["op",14361,1]],[14441,["op",14498,0]],[14443,["op",14549,0]],[14444,["op",14572,0]],[14445,["op",14479,0]],[14446,["op",14354,0]],[14448,["op",14532,0]],[14451,["op",14582,1]],[14453,["op",14576,0]],[14454,["op",14448,0]],[14456,["op",14418,1]],[14457,["op",14523,0]],[14460,["op",14535,0]],[14462,["op",14254,0]],[14463,["op",14387,1]],[14468,["op",14491,0]],[14470,["op",14307,0]],[14472,["op",14259,1]],[14473,["op",14478,0]],[14476,["op",14481,0]],[14477,["op",14572,1]],[14479,["op",14411,0]],[14480,["op",14273,1]],[14483,["op",14274,0]],[14484,["op",14493,0]],[14485,["op",14524,1]],[14487,["op",14491,1]],[14488,["op",14267,0]],[14491,["op",14222,0]],[14492,["op",14605,0]],[14494,["op",14545,0]],[14495,["op",14514,0]],[14500,["op",14400,0]],[14501,["op",14499,1]],[14509,["op",14612,0]],[14510,["op",14468,0]],[14512,["op",14351,0]],[14513,["op",14525,0]],[14514,["op",14585,0]],[14516,["op",14589,0]],[14518,["op",14432,0]],[14521,["op",14324,1]],[14525,["op",14547,1]],[14526,["op",14438,1]],[14528,["op",14573,1]],[14529,["op",14602,1]],[14531,["op",14220,0]],[14536,["op",14471,0]],[14537,["op",14567,0]],[14539,["op",14493,1]],[14541,["op",14505,1]],[14543,["op",14506,0]],[14545,["op",14447,0]],[14548,["op",14432,1]],[14551,["op",14597,1]],[14553,["op",14595,1]],[14554,["op",14411,1]],[14555,["op",14460,0]],[14557,["op",14461,0]],[14560,["op",14194,0]],[14566,["op",14170,0]],[14568,["op",14465,1]],[14570,["op",14272,0]],[14578,["op",14467,1]],[14579,["op",14436,1]],[14584,["op",14226,1]],[14586,["op",14507,0]],[14588,["op",14328,1]],[14590,["op",14565,1]],[14593,["op",14542,1]],[14601,["op",14294,0]],[14622,["op",14661,0]],[14623,["op",14627,0]],[14624,["op",14697,0]],[14625,["op",14648,1]],[14626,["op",14706,0]],[14627,["op",14734,1]],[14628,["op",15014,0]],[14629,["op",15015,0]],[14630,["op",15032,0]],[14631,["op",14662,0]],[14632,["op",14845,0]],[14633,["op",15046,0]],[14634,["op",15081,0]],[14635,["op",14915,0]],[14636,["op",14670,0]],[14637,["op",15049,0]],[14638,["op",14758,0]],[14639,["op",14872,0]],[14640,["op",14852,0]],[14641,["op",15005,0]],[14642,["op",15047,0]],[14643,["op",14975,1]],[14644,["op",14683,1]],[14645,["op",14919,0]],[14646,["op",14849,0]],[14647,["op",14732,0]],[14648,["op",14908,0]],[14649,["op",14951,0]],[14650,["op",14762,0]],[14652,["op",14916,0]],[14653,["op",14787,0]],[14654,["op",14803,0]],[14655,["op",14667,0]],[14656,["op",14959,0]],[14658,["op",14666,0]],[14660,["op",14833,0]],[14661,["op",14736,0]],[14663,["op",14778,0]],[14664,["op",15080,0]],[14665,["op",15053,0]],[14666,["op",14781,0]],[14667,["op",15019,0]],[14668,["op",14836,0]],[14669,["op",14976,0]],[14671,["op",14644,1]],[14672,["op",14649,1]],[14673,["op",14727,0]],[14674,["op",14722,0]],[14675,["op",14918,0]],[14676,["op",14768,0]],[14677,["op",14917,0]],[14678,["op",14792,0]],[14679,["op",14721,0]],[14680,["op",14720,0]],[14681,["op",14647,0]],[14682,["op",14921,0]],[14683,["op",14830,0]],[14684,["op",14707,0]],[14686,["op",14884,0]],[14687,["op",14945,0]],[14688,["op",14764,1]],[14689,["op",14653,0]],[14690,["op",15071,0]],[14691,["op",15000,0]],[14692,["op",14784,0]],[14693,["op",14785,0]],[14695,["op",14854,0]],[14696,["op",14861,0]],[14698,["op",14641,0]],[14699,["op",14673,0]],[14700,["op",14674,0]],[14702,["op",14948,0]],[14703,["op",14914,0]],[14704,["op",14858,1]],[14706,["op",14844,0]],[14707,["op",14777,0]],[14708,["op",14804,0]],[14709,["op",14877,1]],[14710,["op",14884,1]],[14713,["op",14896,0]],[14715,["op",14869,0]],[14716,["op",14850,0]],[14717,["op",14875,0]],[14718,["op",14971,0]],[14720,["op",14882,1]],[14721,["op",15018,1]],[14722,["op",15056,1]],[14723,["op",14687,1]],[14724,["op",14711,0]],[14725,["op",14887,0]],[14726,["op",14678,1]],[14727,["op",14878,0]],[14728,["op",14797,0]],[14729,["op",14829,0]],[14730,["op",15069,0]],[14731,["op",14819,0]],[14733,["op",15046,1]],[14734,["op",14624,1]],[14739,["op",15063,0]],[14741,["op",14933,0]],[14742,["op",14624,0]],[14743,["op",14794,0]],[14744,["op",14729,1]],[14745,["op",15069,1]],[14746,["op",14808,0]],[14747,["op",14823,0]],[14748,["op",14905,0]],[14750,["op",14904,0]],[14751,["op",14738,0]],[14752,["op",14940,0]],[14753,["op",14671,0]],[14754,["op",14902,0]],[14755,["op",14997,0]],[14756,["op",15041,0]],[14757,["op",14841,0]],[14758,["op",15060,0]],[14759,["op",14764,0]],[14760,["op",14689,0]],[14761,["op",14935,0]],[14763,["op",14741,0]],[14764,["op",14828,0]],[14766,["op",15077,0]],[14767,["op",14630,0]],[14768,["op",15027,0]],[14769,["op",15072,0]],[14771,["op",15067,0]],[14772,["op",14680,0]],[14773,["op",14939,1]],[14774,["op",14652,0]],[14775,["op",14996,0]],[14776,["op",15004,0]],[14777,["op",14685,1]],[14778,["op",14795,0]],[14779,["op",14795,1]],[14780,["op",15016,0]],[14782,["op",15059,0]],[14783,["op",14733,1]],[14785,["op",14857,0]],[14786,["op",14659,1]],[14787,["op",15023,1]],[14788,["op",14950,0]],[14790,["op",14987,0]],[14792,["op",14966,0]],[14793,["op",14951,1]],[14795,["op",14808,1]],[14796,["op",14885,1]],[14797,["op",14877,0]],[14799,["op",14745,0]],[14801,["op",14809,0]],[14802,["op",15077,1]],[14803,["op",14824,0]],[14805,["op",14719,0]],[14806,["op",14871,0]],[14808,["op",14801,0]],[14810,["op",14944,1]],[14811,["op",14810,0]],[14812,["op",14957,0]],[14813,["op",14772,0]],[14814,["op",14880,0]],[14815,["op",14979,0]],[14817,["op",14992,0]],[14818,["op",14807,1]],[14819,["op",15062,0]],[14820,["op",14640,1]],[14821,["op",14922,0]],[14822,["op",14650,0]],[14823,["op",14765,0]],[14824,["op",15013,1]],[14825,["op",14634,1]],[14826,["op",14771,0]],[14827,["op",14697,1]],[14828,["op",14692,0]],[14829,["op",14878,1]],[14833,["op",14854,1]],[14834,["op",14929,0]],[14835,["op",14785,1]],[14836,["op",15054,0]],[14838,["op",14791,0]],[14839,["op",14928,0]],[14840,["op",14937,0]],[14842,["op",14740,0]],[14843,["op",14800,1]],[14844,["op",14921,1]],[14845,["op",14701,1]],[14847,["op",14952,0]],[14848,["op",14789,1]],[14849,["op",14967,0]],[14852,["op",14755,0]],[14853,["op",15006,1]],[14854,["op",15079,0]],[14855,["op",14982,0]],[14858,["op",14751,0]],[14859,["op",14752,0]],[14860,["op",14926,0]],[14861,["op",15074,0]],[14862,["op",14859,0]],[14863,["op",14920,1]],[14864,["op",14962,0]],[14865,["op",14669,0]],[14866,["op",14783,0]],[14867,["op",14875,1]],[14868,["op",14967,1]],[14870,["op",14712,0]],[14871,["op",14903,0]],[14873,["op",15037,0]],[14874,["op",14769,1]],[14876,["op",15034,0]],[14877,["op",14870,1]],[14878,["op",14946,1]],[14881,["op",15058,0]],[14882,["op",14682,0]],[14884,["op",14805,0]],[14885,["op",14628,0]],[14886,["op",14800,0]],[14887,["op",14989,0]],[14888,["op",15036,0]],[14889,["op",14952,1]],[14890,["op",14945,1]],[14892,["op",14888,0]],[14893,["op",14780,0]],[14894,["op",15007,0]],[14896,["op",14855,0]],[14897,["op",15044,0]],[14898,["op",14701,0]],[14899,["op",15070,0]],[14900,["op",14890,0]],[14901,["op",14953,0]],[14902,["op",15034,1]],[14903,["op",14824,1]],[14904,["op",14961,0]],[14906,["op",15012,0]],[14907,["op",15035,0]],[14908,["op",14942,0]],[14909,["op",14817,0]],[14911,["op",14995,0]],[14914,["op",15045,1]],[14916,["op",15039,0]],[14917,["op",14911,0]],[14919,["op",14881,1]],[14920,["op",14986,0]],[14923,["op",14998,0]],[14925,["op",14717,0]],[14926,["op",14850,1]],[14931,["op",14954,0]],[14933,["op",14770,0]],[14935,["op",14722,1]],[14936,["op",14941,0]],[14939,["op",14944,0]],[14940,["op",15035,1]],[14942,["op",14874,0]],[14943,["op",14736,1]],[14946,["op",14737,0]],[14947,["op",14956,0]],[14948,["op",14987,1]],[14950,["op",14954,1]],[14951,["op",14730,0]],[14954,["op",14685,0]],[14955,["op",15068,0]],[14957,["op",15008,0]],[14958,["op",14977,0]],[14963,["op",14863,0]],[14964,["op",14962,1]],[14972,["op",15075,0]],[14973,["op",14931,0]],[14975,["op",14814,0]],[14976,["op",14988,0]],[14977,["op",15048,0]],[14979,["op",15052,0]],[14981,["op",14895,0]],[14984,["op",14787,1]],[14988,["op",15010,1]],[14989,["op",14901,1]],[14991,["op",15036,1]],[14992,["op",15065,1]],[14994,["op",14683,0]],[14999,["op",14934,0]],[15000,["op",15030,0]],[15002,["op",14956,1]],[15004,["op",14968,1]],[15006,["op",14969,0]],[15008,["op",14910,0]],[15011,["op",14895,1]],[15014,["op",15060,1]],[15016,["op",15058,1]],[15017,["op",14874,1]],[15018,["op",14923,0]],[15020,["op",14924,0]],[15023,["op",14657,0]],[15029,["op",14633,0]],[15031,["op",14928,1]],[15033,["op",14735,0]],[15041,["op",14930,1]],[15042,["op",14899,1]],[15047,["op",14689,1]],[15049,["op",14970,0]],[15051,["op",14791,1]],[15053,["op",15028,1]],[15056,["op",15005,1]],[15064,["op",14757,0]],[15085,["op",15124,0]],[15086,["op",15090,0]],[15087,["op",15160,0]],[15088,["op",15111,1]],[15089,["op",15169,0]],[15090,["op",15197,1]],[15091,["op",15477,0]],[15092,["op",15478,0]],[15093,["op",15495,0]],[15094,["op",15125,0]],[15095,["op",15308,0]],[15096,["op",15509,0]],[15097,["op",15544,0]],[15098,["op",15378,0]],[15099,["op",15133,0]],[15100,["op",15512,0]],[15101,["op",15221,0]],[15102,["op",15335,0]],[15103,["op",15315,0]],[15104,["op",15468,0]],[15105,["op",15510,0]],[15106,["op",15438,1]],[15107,["op",15146,1]],[15108,["op",15382,0]],[15109,["op",15312,0]],[15110,["op",15195,0]],[15111,["op",15371,0]],[15112,["op",15414,0]],[15113,["op",15225,0]],[15115,["op",15379,0]],[15116,["op",15250,0]],[15117,["op",15266,0]],[15118,["op",15130,0]],[15119,["op",15422,0]],[15121,["op",15129,0]],[15123,["op",15296,0]],[15124,["op",15199,0]],[15126,["op",15241,0]],[15127,["op",15543,0]],[15128,["op",15516,0]],[15129,["op",15244,0]],[15130,["op",15482,0]],[15131,["op",15299,0]],[15132,["op",15439,0]],[15134,["op",15107,1]],[15135,["op",15112,1]],[15136,["op",15190,0]],[15137,["op",15185,0]],[15138,["op",15381,0]],[15139,["op",15231,0]],[15140,["op",15380,0]],[15141,["op",15255,0]],[15142,["op",15184,0]],[15143,["op",15183,0]],[15144,["op",15110,0]],[15145,["op",15384,0]],[15146,["op",15293,0]],[15147,["op",15170,0]],[15149,["op",15347,0]],[15150,["op",15408,0]],[15151,["op",15227,1]],[15152,["op",15116,0]],[15153,["op",15534,0]],[15154,["op",15463,0]],[15155,["op",15247,0]],[15156,["op",15248,0]],[15158,["op",15317,0]],[15159,["op",15324,0]],[15161,["op",15104,0]],[15162,["op",15136,0]],[15163,["op",15137,0]],[15165,["op",15411,0]],[15166,["op",15377,0]],[15167,["op",15321,1]],[15169,["op",15307,0]],[15170,["op",15240,0]],[15171,["op",15267,0]],[15172,["op",15340,1]],[15173,["op",15347,1]],[15176,["op",15359,0]],[15178,["op",15332,0]],[15179,["op",15313,0]],[15180,["op",15338,0]],[15181,["op",15434,0]],[15183,["op",15345,1]],[15184,["op",15481,1]],[15185,["op",15519,1]],[15186,["op",15150,1]],[15187,["op",15174,0]],[15188,["op",15350,0]],[15189,["op",15141,1]],[15190,["op",15341,0]],[15191,["op",15260,0]],[15192,["op",15292,0]],[15193,["op",15532,0]],[15194,["op",15282,0]],[15196,["op",15509,1]],[15197,["op",15087,1]],[15202,["op",15526,0]],[15204,["op",15396,0]],[15205,["op",15087,0]],[15206,["op",15257,0]],[15207,["op",15192,1]],[15208,["op",15532,1]],[15209,["op",15271,0]],[15210,["op",15286,0]],[15211,["op",15368,0]],[15213,["op",15367,0]],[15214,["op",15201,0]],[15215,["op",15403,0]],[15216,["op",15134,0]],[15217,["op",15365,0]],[15218,["op",15460,0]],[15219,["op",15504,0]],[15220,["op",15304,0]],[15221,["op",15523,0]],[15222,["op",15227,0]],[15223,["op",15152,0]],[15224,["op",15398,0]],[15226,["op",15204,0]],[15227,["op",15291,0]],[15229,["op",15540,0]],[15230,["op",15093,0]],[15231,["op",15490,0]],[15232,["op",15535,0]],[15234,["op",15530,0]],[15235,["op",15143,0]],[15236,["op",15402,1]],[15237,["op",15115,0]],[15238,["op",15459,0]],[15239,["op",15467,0]],[15240,["op",15148,1]],[15241,["op",15258,0]],[15242,["op",15258,1]],[15243,["op",15479,0]],[15245,["op",15522,0]],[15246,["op",15196,1]],[15248,["op",15320,0]],[15249,["op",15122,1]],[15250,["op",15486,1]],[15251,["op",15413,0]],[15253,["op",15450,0]],[15255,["op",15429,0]],[15256,["op",15414,1]],[15258,["op",15271,1]],[15259,["op",15348,1]],[15260,["op",15340,0]],[15262,["op",15208,0]],[15264,["op",15272,0]],[15265,["op",15540,1]],[15266,["op",15287,0]],[15268,["op",15182,0]],[15269,["op",15334,0]],[15271,["op",15264,0]],[15273,["op",15407,1]],[15274,["op",15273,0]],[15275,["op",15420,0]],[15276,["op",15235,0]],[15277,["op",15343,0]],[15278,["op",15442,0]],[15280,["op",15455,0]],[15281,["op",15270,1]],[15282,["op",15525,0]],[15283,["op",15103,1]],[15284,["op",15385,0]],[15285,["op",15113,0]],[15286,["op",15228,0]],[15287,["op",15476,1]],[15288,["op",15097,1]],[15289,["op",15234,0]],[15290,["op",15160,1]],[15291,["op",15155,0]],[15292,["op",15341,1]],[15296,["op",15317,1]],[15297,["op",15392,0]],[15298,["op",15248,1]],[15299,["op",15517,0]],[15301,["op",15254,0]],[15302,["op",15391,0]],[15303,["op",15400,0]],[15305,["op",15203,0]],[15306,["op",15263,1]],[15307,["op",15384,1]],[15308,["op",15164,1]],[15310,["op",15415,0]],[15311,["op",15252,1]],[15312,["op",15430,0]],[15315,["op",15218,0]],[15316,["op",15469,1]],[15317,["op",15542,0]],[15318,["op",15445,0]],[15321,["op",15214,0]],[15322,["op",15215,0]],[15323,["op",15389,0]],[15324,["op",15537,0]],[15325,["op",15322,0]],[15326,["op",15383,1]],[15327,["op",15425,0]],[15328,["op",15132,0]],[15329,["op",15246,0]],[15330,["op",15338,1]],[15331,["op",15430,1]],[15333,["op",15175,0]],[15334,["op",15366,0]],[15336,["op",15500,0]],[15337,["op",15232,1]],[15339,["op",15497,0]],[15340,["op",15333,1]],[15341,["op",15409,1]],[15344,["op",15521,0]],[15345,["op",15145,0]],[15347,["op",15268,0]],[15348,["op",15091,0]],[15349,["op",15263,0]],[15350,["op",15452,0]],[15351,["op",15499,0]],[15352,["op",15415,1]],[15353,["op",15408,1]],[15355,["op",15351,0]],[15356,["op",15243,0]],[15357,["op",15470,0]],[15359,["op",15318,0]],[15360,["op",15507,0]],[15361,["op",15164,0]],[15362,["op",15533,0]],[15363,["op",15353,0]],[15364,["op",15416,0]],[15365,["op",15497,1]],[15366,["op",15287,1]],[15367,["op",15424,0]],[15369,["op",15475,0]],[15370,["op",15498,0]],[15371,["op",15405,0]],[15372,["op",15280,0]],[15374,["op",15458,0]],[15377,["op",15508,1]],[15379,["op",15502,0]],[15380,["op",15374,0]],[15382,["op",15344,1]],[15383,["op",15449,0]],[15386,["op",15461,0]],[15388,["op",15180,0]],[15389,["op",15313,1]],[15394,["op",15417,0]],[15396,["op",15233,0]],[15398,["op",15185,1]],[15399,["op",15404,0]],[15402,["op",15407,0]],[15403,["op",15498,1]],[15405,["op",15337,0]],[15406,["op",15199,1]],[15409,["op",15200,0]],[15410,["op",15419,0]],[15411,["op",15450,1]],[15413,["op",15417,1]],[15414,["op",15193,0]],[15417,["op",15148,0]],[15418,["op",15531,0]],[15420,["op",15471,0]],[15421,["op",15440,0]],[15426,["op",15326,0]],[15427,["op",15425,1]],[15435,["op",15538,0]],[15436,["op",15394,0]],[15438,["op",15277,0]],[15439,["op",15451,0]],[15440,["op",15511,0]],[15442,["op",15515,0]],[15444,["op",15358,0]],[15447,["op",15250,1]],[15451,["op",15473,1]],[15452,["op",15364,1]],[15454,["op",15499,1]],[15455,["op",15528,1]],[15457,["op",15146,0]],[15462,["op",15397,0]],[15463,["op",15493,0]],[15465,["op",15419,1]],[15467,["op",15431,1]],[15469,["op",15432,0]],[15471,["op",15373,0]],[15474,["op",15358,1]],[15477,["op",15523,1]],[15479,["op",15521,1]],[15480,["op",15337,1]],[15481,["op",15386,0]],[15483,["op",15387,0]],[15486,["op",15120,0]],[15492,["op",15096,0]],[15494,["op",15391,1]],[15496,["op",15198,0]],[15504,["op",15393,1]],[15505,["op",15362,1]],[15510,["op",15152,1]],[15512,["op",15433,0]],[15514,["op",15254,1]],[15516,["op",15491,1]],[15519,["op",15468,1]],[15527,["op",15220,0]],[15548,["op",15587,0]],[15549,["op",15553,0]],[15550,["op",15623,0]],[15551,["op",15574,1]],[15552,["op",15632,0]],[15553,["op",15660,1]],[15554,["op",15940,0]],[15555,["op",15941,0]],[15556,["op",15958,0]],[15557,["op",15588,0]],[15558,["op",15771,0]],[15559,["op",15972,0]],[15560,["op",16007,0]],[15561,["op",15841,0]],[15562,["op",15596,0]],[15563,["op",15975,0]],[15564,["op",15684,0]],[15565,["op",15798,0]],[15566,["op",15778,0]],[15567,["op",15931,0]],[15568,["op",15973,0]],[15569,["op",15901,1]],[15570,["op",15609,1]],[15571,["op",15845,0]],[15572,["op",15775,0]],[15573,["op",15658,0]],[15574,["op",15834,0]],[15575,["op",15877,0]],[15576,["op",15688,0]],[15578,["op",15842,0]],[15579,["op",15713,0]],[15580,["op",15729,0]],[15581,["op",15593,0]],[15582,["op",15885,0]],[15584,["op",15592,0]],[15586,["op",15759,0]],[15587,["op",15662,0]],[15589,["op",15704,0]],[15590,["op",16006,0]],[15591,["op",15979,0]],[15592,["op",15707,0]],[15593,["op",15945,0]],[15594,["op",15762,0]],[15595,["op",15902,0]],[15597,["op",15570,1]],[15598,["op",15575,1]],[15599,["op",15653,0]],[15600,["op",15648,0]],[15601,["op",15844,0]],[15602,["op",15694,0]],[15603,["op",15843,0]],[15604,["op",15718,0]],[15605,["op",15647,0]],[15606,["op",15646,0]],[15607,["op",15573,0]],[15608,["op",15847,0]],[15609,["op",15756,0]],[15610,["op",15633,0]],[15612,["op",15810,0]],[15613,["op",15871,0]],[15614,["op",15690,1]],[15615,["op",15579,0]],[15616,["op",15997,0]],[15617,["op",15926,0]],[15618,["op",15710,0]],[15619,["op",15711,0]],[15621,["op",15780,0]],[15622,["op",15787,0]],[15624,["op",15567,0]],[15625,["op",15599,0]],[15626,["op",15600,0]],[15628,["op",15874,0]],[15629,["op",15840,0]],[15630,["op",15784,1]],[15632,["op",15770,0]],[15633,["op",15703,0]],[15634,["op",15730,0]],[15635,["op",15803,1]],[15636,["op",15810,1]],[15639,["op",15822,0]],[15641,["op",15795,0]],[15642,["op",15776,0]],[15643,["op",15801,0]],[15644,["op",15897,0]],[15646,["op",15808,1]],[15647,["op",15944,1]],[15648,["op",15982,1]],[15649,["op",15613,1]],[15650,["op",15637,0]],[15651,["op",15813,0]],[15652,["op",15604,1]],[15653,["op",15804,0]],[15654,["op",15723,0]],[15655,["op",15755,0]],[15656,["op",15995,0]],[15657,["op",15745,0]],[15659,["op",15972,1]],[15660,["op",15550,1]],[15665,["op",15989,0]],[15667,["op",15859,0]],[15668,["op",15550,0]],[15669,["op",15720,0]],[15670,["op",15655,1]],[15671,["op",15995,1]],[15672,["op",15734,0]],[15673,["op",15749,0]],[15674,["op",15831,0]],[15676,["op",15830,0]],[15677,["op",15664,0]],[15678,["op",15866,0]],[15679,["op",15597,0]],[15680,["op",15828,0]],[15681,["op",15923,0]],[15682,["op",15967,0]],[15683,["op",15767,0]],[15684,["op",15986,0]],[15685,["op",15690,0]],[15686,["op",15615,0]],[15687,["op",15861,0]],[15689,["op",15667,0]],[15690,["op",15754,0]],[15692,["op",16003,0]],[15693,["op",15556,0]],[15694,["op",15953,0]],[15695,["op",15998,0]],[15697,["op",15993,0]],[15698,["op",15606,0]],[15699,["op",15865,1]],[15700,["op",15578,0]],[15701,["op",15922,0]],[15702,["op",15930,0]],[15703,["op",15611,1]],[15704,["op",15721,0]],[15705,["op",15721,1]],[15706,["op",15942,0]],[15708,["op",15985,0]],[15709,["op",15659,1]],[15711,["op",15783,0]],[15712,["op",15585,1]],[15713,["op",15949,1]],[15714,["op",15876,0]],[15716,["op",15913,0]],[15718,["op",15892,0]],[15719,["op",15877,1]],[15721,["op",15734,1]],[15722,["op",15811,1]],[15723,["op",15803,0]],[15725,["op",15671,0]],[15727,["op",15735,0]],[15728,["op",16003,1]],[15729,["op",15750,0]],[15731,["op",15645,0]],[15732,["op",15797,0]],[15734,["op",15727,0]],[15736,["op",15870,1]],[15737,["op",15736,0]],[15738,["op",15883,0]],[15739,["op",15698,0]],[15740,["op",15806,0]],[15741,["op",15905,0]],[15743,["op",15918,0]],[15744,["op",15733,1]],[15745,["op",15988,0]],[15746,["op",15566,1]],[15747,["op",15848,0]],[15748,["op",15576,0]],[15749,["op",15691,0]],[15750,["op",15939,1]],[15751,["op",15560,1]],[15752,["op",15697,0]],[15753,["op",15623,1]],[15754,["op",15618,0]],[15755,["op",15804,1]],[15759,["op",15780,1]],[15760,["op",15855,0]],[15761,["op",15711,1]],[15762,["op",15980,0]],[15764,["op",15717,0]],[15765,["op",15854,0]],[15766,["op",15863,0]],[15768,["op",15666,0]],[15769,["op",15726,1]],[15770,["op",15847,1]],[15771,["op",15627,1]],[15773,["op",15878,0]],[15774,["op",15715,1]],[15775,["op",15893,0]],[15778,["op",15681,0]],[15779,["op",15932,1]],[15780,["op",16005,0]],[15781,["op",15908,0]],[15784,["op",15677,0]],[15785,["op",15678,0]],[15786,["op",15852,0]],[15787,["op",16000,0]],[15788,["op",15785,0]],[15789,["op",15846,1]],[15790,["op",15888,0]],[15791,["op",15595,0]],[15792,["op",15709,0]],[15793,["op",15801,1]],[15794,["op",15893,1]],[15796,["op",15638,0]],[15797,["op",15829,0]],[15799,["op",15963,0]],[15800,["op",15695,1]],[15802,["op",15960,0]],[15803,["op",15796,1]],[15804,["op",15872,1]],[15807,["op",15984,0]],[15808,["op",15608,0]],[15810,["op",15731,0]],[15811,["op",15554,0]],[15812,["op",15726,0]],[15813,["op",15915,0]],[15814,["op",15962,0]],[15815,["op",15878,1]],[15816,["op",15871,1]],[15818,["op",15814,0]],[15819,["op",15706,0]],[15820,["op",15933,0]],[15822,["op",15781,0]],[15823,["op",15970,0]],[15824,["op",15627,0]],[15825,["op",15996,0]],[15826,["op",15816,0]],[15827,["op",15879,0]],[15828,["op",15960,1]],[15829,["op",15750,1]],[15830,["op",15887,0]],[15832,["op",15938,0]],[15833,["op",15961,0]],[15834,["op",15868,0]],[15835,["op",15743,0]],[15837,["op",15921,0]],[15840,["op",15971,1]],[15842,["op",15965,0]],[15843,["op",15837,0]],[15845,["op",15807,1]],[15846,["op",15912,0]],[15849,["op",15924,0]],[15851,["op",15643,0]],[15852,["op",15776,1]],[15857,["op",15880,0]],[15859,["op",15696,0]],[15861,["op",15648,1]],[15862,["op",15867,0]],[15865,["op",15870,0]],[15866,["op",15961,1]],[15868,["op",15800,0]],[15869,["op",15662,1]],[15872,["op",15663,0]],[15873,["op",15882,0]],[15874,["op",15913,1]],[15876,["op",15880,1]],[15877,["op",15656,0]],[15880,["op",15611,0]],[15881,["op",15994,0]],[15883,["op",15934,0]],[15884,["op",15903,0]],[15889,["op",15789,0]],[15890,["op",15888,1]],[15898,["op",16001,0]],[15899,["op",15857,0]],[15901,["op",15740,0]],[15902,["op",15914,0]],[15903,["op",15974,0]],[15905,["op",15978,0]],[15907,["op",15821,0]],[15910,["op",15713,1]],[15914,["op",15936,1]],[15915,["op",15827,1]],[15917,["op",15962,1]],[15918,["op",15991,1]],[15920,["op",15609,0]],[15925,["op",15860,0]],[15926,["op",15956,0]],[15928,["op",15882,1]],[15930,["op",15894,1]],[15932,["op",15895,0]],[15934,["op",15836,0]],[15937,["op",15821,1]],[15940,["op",15986,1]],[15942,["op",15984,1]],[15943,["op",15800,1]],[15944,["op",15849,0]],[15946,["op",15850,0]],[15949,["op",15583,0]],[15955,["op",15559,0]],[15957,["op",15854,1]],[15959,["op",15661,0]],[15967,["op",15856,1]],[15968,["op",15825,1]],[15973,["op",15615,1]],[15975,["op",15896,0]],[15977,["op",15717,1]],[15979,["op",15954,1]],[15982,["op",15931,1]],[15990,["op",15683,0]],[16011,["op",16050,0]],[16012,["op",16016,0]],[16013,["op",16086,0]],[16014,["op",16037,1]],[16015,["op",16095,0]],[16016,["op",16123,1]],[16017,["op",16403,0]],[16018,["op",16404,0]],[16019,["op",16421,0]],[16020,["op",16051,0]],[16021,["op",16234,0]],[16022,["op",16435,0]],[16023,["op",16470,0]],[16024,["op",16304,0]],[16025,["op",16059,0]],[16026,["op",16438,0]],[16027,["op",16147,0]],[16028,["op",16261,0]],[16029,["op",16241,0]],[16030,["op",16394,0]],[16031,["op",16436,0]],[16032,["op",16364,1]],[16033,["op",16072,1]],[16034,["op",16308,0]],[16035,["op",16238,0]],[16036,["op",16121,0]],[16037,["op",16297,0]],[16038,["op",16340,0]],[16039,["op",16151,0]],[16041,["op",16305,0]],[16042,["op",16176,0]],[16043,["op",16192,0]],[16044,["op",16056,0]],[16045,["op",16348,0]],[16047,["op",16055,0]],[16049,["op",16222,0]],[16050,["op",16125,0]],[16052,["op",16167,0]],[16053,["op",16469,0]],[16054,["op",16442,0]],[16055,["op",16170,0]],[16056,["op",16408,0]],[16057,["op",16225,0]],[16058,["op",16365,0]],[16060,["op",16033,1]],[16061,["op",16038,1]],[16062,["op",16116,0]],[16063,["op",16111,0]],[16064,["op",16307,0]],[16065,["op",16157,0]],[16066,["op",16306,0]],[16067,["op",16181,0]],[16068,["op",16110,0]],[16069,["op",16109,0]],[16070,["op",16036,0]],[16071,["op",16310,0]],[16072,["op",16219,0]],[16073,["op",16096,0]],[16075,["op",16273,0]],[16076,["op",16334,0]],[16077,["op",16153,1]],[16078,["op",16042,0]],[16079,["op",16460,0]],[16080,["op",16389,0]],[16081,["op",16173,0]],[16082,["op",16174,0]],[16084,["op",16243,0]],[16085,["op",16250,0]],[16087,["op",16030,0]],[16088,["op",16062,0]],[16089,["op",16063,0]],[16091,["op",16337,0]],[16092,["op",16303,0]],[16093,["op",16247,1]],[16095,["op",16233,0]],[16096,["op",16166,0]],[16097,["op",16193,0]],[16098,["op",16266,1]],[16099,["op",16273,1]],[16102,["op",16285,0]],[16104,["op",16258,0]],[16105,["op",16239,0]],[16106,["op",16264,0]],[16107,["op",16360,0]],[16109,["op",16271,1]],[16110,["op",16407,1]],[16111,["op",16445,1]],[16112,["op",16076,1]],[16113,["op",16100,0]],[16114,["op",16276,0]],[16115,["op",16067,1]],[16116,["op",16267,0]],[16117,["op",16186,0]],[16118,["op",16218,0]],[16119,["op",16458,0]],[16120,["op",16208,0]],[16122,["op",16435,1]],[16123,["op",16013,1]],[16128,["op",16452,0]],[16130,["op",16322,0]],[16131,["op",16013,0]],[16132,["op",16183,0]],[16133,["op",16118,1]],[16134,["op",16458,1]],[16135,["op",16197,0]],[16136,["op",16212,0]],[16137,["op",16294,0]],[16139,["op",16293,0]],[16140,["op",16127,0]],[16141,["op",16329,0]],[16142,["op",16060,0]],[16143,["op",16291,0]],[16144,["op",16386,0]],[16145,["op",16430,0]],[16146,["op",16230,0]],[16147,["op",16449,0]],[16148,["op",16153,0]],[16149,["op",16078,0]],[16150,["op",16324,0]],[16152,["op",16130,0]],[16153,["op",16217,0]],[16155,["op",16466,0]],[16156,["op",16019,0]],[16157,["op",16416,0]],[16158,["op",16461,0]],[16160,["op",16456,0]],[16161,["op",16069,0]],[16162,["op",16328,1]],[16163,["op",16041,0]],[16164,["op",16385,0]],[16165,["op",16393,0]],[16166,["op",16074,1]],[16167,["op",16184,0]],[16168,["op",16184,1]],[16169,["op",16405,0]],[16171,["op",16448,0]],[16172,["op",16122,1]],[16174,["op",16246,0]],[16175,["op",16048,1]],[16176,["op",16412,1]],[16177,["op",16339,0]],[16179,["op",16376,0]],[16181,["op",16355,0]],[16182,["op",16340,1]],[16184,["op",16197,1]],[16185,["op",16274,1]],[16186,["op",16266,0]],[16188,["op",16134,0]],[16190,["op",16198,0]],[16191,["op",16466,1]],[16192,["op",16213,0]],[16194,["op",16108,0]],[16195,["op",16260,0]],[16197,["op",16190,0]],[16199,["op",16333,1]],[16200,["op",16199,0]],[16201,["op",16346,0]],[16202,["op",16161,0]],[16203,["op",16269,0]],[16204,["op",16368,0]],[16206,["op",16381,0]],[16207,["op",16196,1]],[16208,["op",16451,0]],[16209,["op",16029,1]],[16210,["op",16311,0]],[16211,["op",16039,0]],[16212,["op",16154,0]],[16213,["op",16402,1]],[16214,["op",16023,1]],[16215,["op",16160,0]],[16216,["op",16086,1]],[16217,["op",16081,0]],[16218,["op",16267,1]],[16222,["op",16243,1]],[16223,["op",16318,0]],[16224,["op",16174,1]],[16225,["op",16443,0]],[16227,["op",16180,0]],[16228,["op",16317,0]],[16229,["op",16326,0]],[16231,["op",16129,0]],[16232,["op",16189,1]],[16233,["op",16310,1]],[16234,["op",16090,1]],[16236,["op",16341,0]],[16237,["op",16178,1]],[16238,["op",16356,0]],[16241,["op",16144,0]],[16242,["op",16395,1]],[16243,["op",16468,0]],[16244,["op",16371,0]],[16247,["op",16140,0]],[16248,["op",16141,0]],[16249,["op",16315,0]],[16250,["op",16463,0]],[16251,["op",16248,0]],[16252,["op",16309,1]],[16253,["op",16351,0]],[16254,["op",16058,0]],[16255,["op",16172,0]],[16256,["op",16264,1]],[16257,["op",16356,1]],[16259,["op",16101,0]],[16260,["op",16292,0]],[16262,["op",16426,0]],[16263,["op",16158,1]],[16265,["op",16423,0]],[16266,["op",16259,1]],[16267,["op",16335,1]],[16270,["op",16447,0]],[16271,["op",16071,0]],[16273,["op",16194,0]],[16274,["op",16017,0]],[16275,["op",16189,0]],[16276,["op",16378,0]],[16277,["op",16425,0]],[16278,["op",16341,1]],[16279,["op",16334,1]],[16281,["op",16277,0]],[16282,["op",16169,0]],[16283,["op",16396,0]],[16285,["op",16244,0]],[16286,["op",16433,0]],[16287,["op",16090,0]],[16288,["op",16459,0]],[16289,["op",16279,0]],[16290,["op",16342,0]],[16291,["op",16423,1]],[16292,["op",16213,1]],[16293,["op",16350,0]],[16295,["op",16401,0]],[16296,["op",16424,0]],[16297,["op",16331,0]],[16298,["op",16206,0]],[16300,["op",16384,0]],[16303,["op",16434,1]],[16305,["op",16428,0]],[16306,["op",16300,0]],[16308,["op",16270,1]],[16309,["op",16375,0]],[16312,["op",16387,0]],[16314,["op",16106,0]],[16315,["op",16239,1]],[16320,["op",16343,0]],[16322,["op",16159,0]],[16324,["op",16111,1]],[16325,["op",16330,0]],[16328,["op",16333,0]],[16329,["op",16424,1]],[16331,["op",16263,0]],[16332,["op",16125,1]],[16335,["op",16126,0]],[16336,["op",16345,0]],[16337,["op",16376,1]],[16339,["op",16343,1]],[16340,["op",16119,0]],[16343,["op",16074,0]],[16344,["op",16457,0]],[16346,["op",16397,0]],[16347,["op",16366,0]],[16352,["op",16252,0]],[16353,["op",16351,1]],[16361,["op",16464,0]],[16362,["op",16320,0]],[16364,["op",16203,0]],[16365,["op",16377,0]],[16366,["op",16437,0]],[16368,["op",16441,0]],[16370,["op",16284,0]],[16373,["op",16176,1]],[16377,["op",16399,1]],[16378,["op",16290,1]],[16380,["op",16425,1]],[16381,["op",16454,1]],[16383,["op",16072,0]],[16388,["op",16323,0]],[16389,["op",16419,0]],[16391,["op",16345,1]],[16393,["op",16357,1]],[16395,["op",16358,0]],[16397,["op",16299,0]],[16400,["op",16284,1]],[16403,["op",16449,1]],[16405,["op",16447,1]],[16406,["op",16263,1]],[16407,["op",16312,0]],[16409,["op",16313,0]],[16412,["op",16046,0]],[16418,["op",16022,0]],[16420,["op",16317,1]],[16422,["op",16124,0]],[16430,["op",16319,1]],[16431,["op",16288,1]],[16436,["op",16078,1]],[16438,["op",16359,0]],[16440,["op",16180,1]],[16442,["op",16417,1]],[16445,["op",16394,1]],[16453,["op",16146,0]],[16474,["op",16513,0]],[16475,["op",16479,0]],[16476,["op",16549,0]],[16477,["op",16500,1]],[16478,["op",16558,0]],[16479,["op",16586,1]],[16480,["op",16866,0]],[16481,["op",16867,0]],[16482,["op",16884,0]],[16483,["op",16514,0]],[16484,["op",16697,0]],[16485,["op",16898,0]],[16486,["op",16933,0]],[16487,["op",16767,0]],[16488,["op",16522,0]],[16489,["op",16901,0]],[16490,["op",16610,0]],[16491,["op",16724,0]],[16492,["op",16704,0]],[16493,["op",16857,0]],[16494,["op",16899,0]],[16495,["op",16827,1]],[16496,["op",16535,1]],[16497,["op",16771,0]],[16498,["op",16701,0]],[16499,["op",16584,0]],[16500,["op",16760,0]],[16501,["op",16803,0]],[16502,["op",16614,0]],[16504,["op",16768,0]],[16505,["op",16639,0]],[16506,["op",16655,0]],[16507,["op",16519,0]],[16508,["op",16811,0]],[16510,["op",16518,0]],[16512,["op",16685,0]],[16513,["op",16588,0]],[16515,["op",16630,0]],[16516,["op",16932,0]],[16517,["op",16905,0]],[16518,["op",16633,0]],[16519,["op",16871,0]],[16520,["op",16688,0]],[16521,["op",16828,0]],[16523,["op",16496,1]],[16524,["op",16501,1]],[16525,["op",16579,0]],[16526,["op",16574,0]],[16527,["op",16770,0]],[16528,["op",16620,0]],[16529,["op",16769,0]],[16530,["op",16644,0]],[16531,["op",16573,0]],[16532,["op",16572,0]],[16533,["op",16499,0]],[16534,["op",16773,0]],[16535,["op",16682,0]],[16536,["op",16559,0]],[16538,["op",16736,0]],[16539,["op",16797,0]],[16540,["op",16616,1]],[16541,["op",16505,0]],[16542,["op",16923,0]],[16543,["op",16852,0]],[16544,["op",16636,0]],[16545,["op",16637,0]],[16547,["op",16706,0]],[16548,["op",16713,0]],[16550,["op",16493,0]],[16551,["op",16525,0]],[16552,["op",16526,0]],[16554,["op",16800,0]],[16555,["op",16766,0]],[16556,["op",16710,1]],[16558,["op",16696,0]],[16559,["op",16629,0]],[16560,["op",16656,0]],[16561,["op",16729,1]],[16562,["op",16736,1]],[16565,["op",16748,0]],[16567,["op",16721,0]],[16568,["op",16702,0]],[16569,["op",16727,0]],[16570,["op",16823,0]],[16572,["op",16734,1]],[16573,["op",16870,1]],[16574,["op",16908,1]],[16575,["op",16539,1]],[16576,["op",16563,0]],[16577,["op",16739,0]],[16578,["op",16530,1]],[16579,["op",16730,0]],[16580,["op",16649,0]],[16581,["op",16681,0]],[16582,["op",16921,0]],[16583,["op",16671,0]],[16585,["op",16898,1]],[16586,["op",16476,1]],[16591,["op",16915,0]],[16593,["op",16785,0]],[16594,["op",16476,0]],[16595,["op",16646,0]],[16596,["op",16581,1]],[16597,["op",16921,1]],[16598,["op",16660,0]],[16599,["op",16675,0]],[16600,["op",16757,0]],[16602,["op",16756,0]],[16603,["op",16590,0]],[16604,["op",16792,0]],[16605,["op",16523,0]],[16606,["op",16754,0]],[16607,["op",16849,0]],[16608,["op",16893,0]],[16609,["op",16693,0]],[16610,["op",16912,0]],[16611,["op",16616,0]],[16612,["op",16541,0]],[16613,["op",16787,0]],[16615,["op",16593,0]],[16616,["op",16680,0]],[16618,["op",16929,0]],[16619,["op",16482,0]],[16620,["op",16879,0]],[16621,["op",16924,0]],[16623,["op",16919,0]],[16624,["op",16532,0]],[16625,["op",16791,1]],[16626,["op",16504,0]],[16627,["op",16848,0]],[16628,["op",16856,0]],[16629,["op",16537,1]],[16630,["op",16647,0]],[16631,["op",16647,1]],[16632,["op",16868,0]],[16634,["op",16911,0]],[16635,["op",16585,1]],[16637,["op",16709,0]],[16638,["op",16511,1]],[16639,["op",16875,1]],[16640,["op",16802,0]],[16642,["op",16839,0]],[16644,["op",16818,0]],[16645,["op",16803,1]],[16647,["op",16660,1]],[16648,["op",16737,1]],[16649,["op",16729,0]],[16651,["op",16597,0]],[16653,["op",16661,0]],[16654,["op",16929,1]],[16655,["op",16676,0]],[16657,["op",16571,0]],[16658,["op",16723,0]],[16660,["op",16653,0]],[16662,["op",16796,1]],[16663,["op",16662,0]],[16664,["op",16809,0]],[16665,["op",16624,0]],[16666,["op",16732,0]],[16667,["op",16831,0]],[16669,["op",16844,0]],[16670,["op",16659,1]],[16671,["op",16914,0]],[16672,["op",16492,1]],[16673,["op",16774,0]],[16674,["op",16502,0]],[16675,["op",16617,0]],[16676,["op",16865,1]],[16677,["op",16486,1]],[16678,["op",16623,0]],[16679,["op",16549,1]],[16680,["op",16544,0]],[16681,["op",16730,1]],[16685,["op",16706,1]],[16686,["op",16781,0]],[16687,["op",16637,1]],[16688,["op",16906,0]],[16690,["op",16643,0]],[16691,["op",16780,0]],[16692,["op",16789,0]],[16694,["op",16592,0]],[16695,["op",16652,1]],[16696,["op",16773,1]],[16697,["op",16553,1]],[16699,["op",16804,0]],[16700,["op",16641,1]],[16701,["op",16819,0]],[16704,["op",16607,0]],[16705,["op",16858,1]],[16706,["op",16931,0]],[16707,["op",16834,0]],[16710,["op",16603,0]],[16711,["op",16604,0]],[16712,["op",16778,0]],[16713,["op",16926,0]],[16714,["op",16711,0]],[16715,["op",16772,1]],[16716,["op",16814,0]],[16717,["op",16521,0]],[16718,["op",16635,0]],[16719,["op",16727,1]],[16720,["op",16819,1]],[16722,["op",16564,0]],[16723,["op",16755,0]],[16725,["op",16889,0]],[16726,["op",16621,1]],[16728,["op",16886,0]],[16729,["op",16722,1]],[16730,["op",16798,1]],[16733,["op",16910,0]],[16734,["op",16534,0]],[16736,["op",16657,0]],[16737,["op",16480,0]],[16738,["op",16652,0]],[16739,["op",16841,0]],[16740,["op",16888,0]],[16741,["op",16804,1]],[16742,["op",16797,1]],[16744,["op",16740,0]],[16745,["op",16632,0]],[16746,["op",16859,0]],[16748,["op",16707,0]],[16749,["op",16896,0]],[16750,["op",16553,0]],[16751,["op",16922,0]],[16752,["op",16742,0]],[16753,["op",16805,0]],[16754,["op",16886,1]],[16755,["op",16676,1]],[16756,["op",16813,0]],[16758,["op",16864,0]],[16759,["op",16887,0]],[16760,["op",16794,0]],[16761,["op",16669,0]],[16763,["op",16847,0]],[16766,["op",16897,1]],[16768,["op",16891,0]],[16769,["op",16763,0]],[16771,["op",16733,1]],[16772,["op",16838,0]],[16775,["op",16850,0]],[16777,["op",16569,0]],[16778,["op",16702,1]],[16783,["op",16806,0]],[16785,["op",16622,0]],[16787,["op",16574,1]],[16788,["op",16793,0]],[16791,["op",16796,0]],[16792,["op",16887,1]],[16794,["op",16726,0]],[16795,["op",16588,1]],[16798,["op",16589,0]],[16799,["op",16808,0]],[16800,["op",16839,1]],[16802,["op",16806,1]],[16803,["op",16582,0]],[16806,["op",16537,0]],[16807,["op",16920,0]],[16809,["op",16860,0]],[16810,["op",16829,0]],[16815,["op",16715,0]],[16816,["op",16814,1]],[16824,["op",16927,0]],[16825,["op",16783,0]],[16827,["op",16666,0]],[16828,["op",16840,0]],[16829,["op",16900,0]],[16831,["op",16904,0]],[16833,["op",16747,0]],[16836,["op",16639,1]],[16840,["op",16862,1]],[16841,["op",16753,1]],[16843,["op",16888,1]],[16844,["op",16917,1]],[16846,["op",16535,0]],[16851,["op",16786,0]],[16852,["op",16882,0]],[16854,["op",16808,1]],[16856,["op",16820,1]],[16858,["op",16821,0]],[16860,["op",16762,0]],[16863,["op",16747,1]],[16866,["op",16912,1]],[16868,["op",16910,1]],[16869,["op",16726,1]],[16870,["op",16775,0]],[16872,["op",16776,0]],[16875,["op",16509,0]],[16881,["op",16485,0]],[16883,["op",16780,1]],[16885,["op",16587,0]],[16893,["op",16782,1]],[16894,["op",16751,1]],[16899,["op",16541,1]],[16901,["op",16822,0]],[16903,["op",16643,1]],[16905,["op",16880,1]],[16908,["op",16857,1]],[16916,["op",16609,0]],[16937,["op",16976,0]],[16938,["op",16942,0]],[16939,["op",17012,0]],[16940,["op",16963,1]],[16941,["op",17021,0]],[16942,["op",17049,1]],[16943,["op",17329,0]],[16944,["op",17330,0]],[16945,["op",17347,0]],[16946,["op",16977,0]],[16947,["op",17160,0]],[16948,["op",17361,0]],[16949,["op",17396,0]],[16950,["op",17230,0]],[16951,["op",16985,0]],[16952,["op",17364,0]],[16953,["op",17073,0]],[16954,["op",17187,0]],[16955,["op",17167,0]],[16956,["op",17320,0]],[16957,["op",17362,0]],[16958,["op",17290,1]],[16959,["op",16998,1]],[16960,["op",17234,0]],[16961,["op",17164,0]],[16962,["op",17047,0]],[16963,["op",17223,0]],[16964,["op",17266,0]],[16965,["op",17077,0]],[16967,["op",17231,0]],[16968,["op",17102,0]],[16969,["op",17118,0]],[16970,["op",16982,0]],[16971,["op",17274,0]],[16973,["op",16981,0]],[16975,["op",17148,0]],[16976,["op",17051,0]],[16978,["op",17093,0]],[16979,["op",17395,0]],[16980,["op",17368,0]],[16981,["op",17096,0]],[16982,["op",17334,0]],[16983,["op",17151,0]],[16984,["op",17291,0]],[16986,["op",16959,1]],[16987,["op",16964,1]],[16988,["op",17042,0]],[16989,["op",17037,0]],[16990,["op",17233,0]],[16991,["op",17083,0]],[16992,["op",17232,0]],[16993,["op",17107,0]],[16994,["op",17036,0]],[16995,["op",17035,0]],[16996,["op",16962,0]],[16997,["op",17236,0]],[16998,["op",17145,0]],[16999,["op",17022,0]],[17001,["op",17199,0]],[17002,["op",17260,0]],[17003,["op",17079,1]],[17004,["op",16968,0]],[17005,["op",17386,0]],[17006,["op",17315,0]],[17007,["op",17099,0]],[17008,["op",17100,0]],[17010,["op",17169,0]],[17011,["op",17176,0]],[17013,["op",16956,0]],[17014,["op",16988,0]],[17015,["op",16989,0]],[17017,["op",17263,0]],[17018,["op",17229,0]],[17019,["op",17173,1]],[17021,["op",17159,0]],[17022,["op",17092,0]],[17023,["op",17119,0]],[17024,["op",17192,1]],[17025,["op",17199,1]],[17028,["op",17211,0]],[17030,["op",17184,0]],[17031,["op",17165,0]],[17032,["op",17190,0]],[17033,["op",17286,0]],[17035,["op",17197,1]],[17036,["op",17333,1]],[17037,["op",17371,1]],[17038,["op",17002,1]],[17039,["op",17026,0]],[17040,["op",17202,0]],[17041,["op",16993,1]],[17042,["op",17193,0]],[17043,["op",17112,0]],[17044,["op",17144,0]],[17045,["op",17384,0]],[17046,["op",17134,0]],[17048,["op",17361,1]],[17049,["op",16939,1]],[17054,["op",17378,0]],[17056,["op",17248,0]],[17057,["op",16939,0]],[17058,["op",17109,0]],[17059,["op",17044,1]],[17060,["op",17384,1]],[17061,["op",17123,0]],[17062,["op",17138,0]],[17063,["op",17220,0]],[17065,["op",17219,0]],[17066,["op",17053,0]],[17067,["op",17255,0]],[17068,["op",16986,0]],[17069,["op",17217,0]],[17070,["op",17312,0]],[17071,["op",17356,0]],[17072,["op",17156,0]],[17073,["op",17375,0]],[17074,["op",17079,0]],[17075,["op",17004,0]],[17076,["op",17250,0]],[17078,["op",17056,0]],[17079,["op",17143,0]],[17081,["op",17392,0]],[17082,["op",16945,0]],[17083,["op",17342,0]],[17084,["op",17387,0]],[17086,["op",17382,0]],[17087,["op",16995,0]],[17088,["op",17254,1]],[17089,["op",16967,0]],[17090,["op",17311,0]],[17091,["op",17319,0]],[17092,["op",17000,1]],[17093,["op",17110,0]],[17094,["op",17110,1]],[17095,["op",17331,0]],[17097,["op",17374,0]],[17098,["op",17048,1]],[17100,["op",17172,0]],[17101,["op",16974,1]],[17102,["op",17338,1]],[17103,["op",17265,0]],[17105,["op",17302,0]],[17107,["op",17281,0]],[17108,["op",17266,1]],[17110,["op",17123,1]],[17111,["op",17200,1]],[17112,["op",17192,0]],[17114,["op",17060,0]],[17116,["op",17124,0]],[17117,["op",17392,1]],[17118,["op",17139,0]],[17120,["op",17034,0]],[17121,["op",17186,0]],[17123,["op",17116,0]],[17125,["op",17259,1]],[17126,["op",17125,0]],[17127,["op",17272,0]],[17128,["op",17087,0]],[17129,["op",17195,0]],[17130,["op",17294,0]],[17132,["op",17307,0]],[17133,["op",17122,1]],[17134,["op",17377,0]],[17135,["op",16955,1]],[17136,["op",17237,0]],[17137,["op",16965,0]],[17138,["op",17080,0]],[17139,["op",17328,1]],[17140,["op",16949,1]],[17141,["op",17086,0]],[17142,["op",17012,1]],[17143,["op",17007,0]],[17144,["op",17193,1]],[17148,["op",17169,1]],[17149,["op",17244,0]],[17150,["op",17100,1]],[17151,["op",17369,0]],[17153,["op",17106,0]],[17154,["op",17243,0]],[17155,["op",17252,0]],[17157,["op",17055,0]],[17158,["op",17115,1]],[17159,["op",17236,1]],[17160,["op",17016,1]],[17162,["op",17267,0]],[17163,["op",17104,1]],[17164,["op",17282,0]],[17167,["op",17070,0]],[17168,["op",17321,1]],[17169,["op",17394,0]],[17170,["op",17297,0]],[17173,["op",17066,0]],[17174,["op",17067,0]],[17175,["op",17241,0]],[17176,["op",17389,0]],[17177,["op",17174,0]],[17178,["op",17235,1]],[17179,["op",17277,0]],[17180,["op",16984,0]],[17181,["op",17098,0]],[17182,["op",17190,1]],[17183,["op",17282,1]],[17185,["op",17027,0]],[17186,["op",17218,0]],[17188,["op",17352,0]],[17189,["op",17084,1]],[17191,["op",17349,0]],[17192,["op",17185,1]],[17193,["op",17261,1]],[17196,["op",17373,0]],[17197,["op",16997,0]],[17199,["op",17120,0]],[17200,["op",16943,0]],[17201,["op",17115,0]],[17202,["op",17304,0]],[17203,["op",17351,0]],[17204,["op",17267,1]],[17205,["op",17260,1]],[17207,["op",17203,0]],[17208,["op",17095,0]],[17209,["op",17322,0]],[17211,["op",17170,0]],[17212,["op",17359,0]],[17213,["op",17016,0]],[17214,["op",17385,0]],[17215,["op",17205,0]],[17216,["op",17268,0]],[17217,["op",17349,1]],[17218,["op",17139,1]],[17219,["op",17276,0]],[17221,["op",17327,0]],[17222,["op",17350,0]],[17223,["op",17257,0]],[17224,["op",17132,0]],[17226,["op",17310,0]],[17229,["op",17360,1]],[17231,["op",17354,0]],[17232,["op",17226,0]],[17234,["op",17196,1]],[17235,["op",17301,0]],[17238,["op",17313,0]],[17240,["op",17032,0]],[17241,["op",17165,1]],[17246,["op",17269,0]],[17248,["op",17085,0]],[17250,["op",17037,1]],[17251,["op",17256,0]],[17254,["op",17259,0]],[17255,["op",17350,1]],[17257,["op",17189,0]],[17258,["op",17051,1]],[17261,["op",17052,0]],[17262,["op",17271,0]],[17263,["op",17302,1]],[17265,["op",17269,1]],[17266,["op",17045,0]],[17269,["op",17000,0]],[17270,["op",17383,0]],[17272,["op",17323,0]],[17273,["op",17292,0]],[17278,["op",17178,0]],[17279,["op",17277,1]],[17287,["op",17390,0]],[17288,["op",17246,0]],[17290,["op",17129,0]],[17291,["op",17303,0]],[17292,["op",17363,0]],[17294,["op",17367,0]],[17296,["op",17210,0]],[17299,["op",17102,1]],[17303,["op",17325,1]],[17304,["op",17216,1]],[17306,["op",17351,1]],[17307,["op",17380,1]],[17309,["op",16998,0]],[17314,["op",17249,0]],[17315,["op",17345,0]],[17317,["op",17271,1]],[17319,["op",17283,1]],[17321,["op",17284,0]],[17323,["op",17225,0]],[17326,["op",17210,1]],[17329,["op",17375,1]],[17331,["op",17373,1]],[17332,["op",17189,1]],[17333,["op",17238,0]],[17335,["op",17239,0]],[17338,["op",16972,0]],[17344,["op",16948,0]],[17346,["op",17243,1]],[17348,["op",17050,0]],[17356,["op",17245,1]],[17357,["op",17214,1]],[17362,["op",17004,1]],[17364,["op",17285,0]],[17366,["op",17106,1]],[17368,["op",17343,1]],[17371,["op",17320,1]],[17379,["op",17072,0]],[17400,["op",17439,0]],[17401,["op",17405,0]],[17402,["op",17475,0]],[17403,["op",17426,1]],[17404,["op",17484,0]],[17405,["op",17512,1]],[17406,["op",17792,0]],[17407,["op",17793,0]],[17408,["op",17810,0]],[17409,["op",17440,0]],[17410,["op",17623,0]],[17411,["op",17824,0]],[17412,["op",17859,0]],[17413,["op",17693,0]],[17414,["op",17448,0]],[17415,["op",17827,0]],[17416,["op",17536,0]],[17417,["op",17650,0]],[17418,["op",17630,0]],[17419,["op",17783,0]],[17420,["op",17825,0]],[17421,["op",17753,1]],[17422,["op",17461,1]],[17423,["op",17697,0]],[17424,["op",17627,0]],[17425,["op",17510,0]],[17426,["op",17686,0]],[17427,["op",17729,0]],[17428,["op",17540,0]],[17430,["op",17694,0]],[17431,["op",17565,0]],[17432,["op",17581,0]],[17433,["op",17445,0]],[17434,["op",17737,0]],[17436,["op",17444,0]],[17438,["op",17611,0]],[17439,["op",17514,0]],[17441,["op",17556,0]],[17442,["op",17858,0]],[17443,["op",17831,0]],[17444,["op",17559,0]],[17445,["op",17797,0]],[17446,["op",17614,0]],[17447,["op",17754,0]],[17449,["op",17422,1]],[17450,["op",17427,1]],[17451,["op",17505,0]],[17452,["op",17500,0]],[17453,["op",17696,0]],[17454,["op",17546,0]],[17455,["op",17695,0]],[17456,["op",17570,0]],[17457,["op",17499,0]],[17458,["op",17498,0]],[17459,["op",17425,0]],[17460,["op",17699,0]],[17461,["op",17608,0]],[17462,["op",17485,0]],[17464,["op",17662,0]],[17465,["op",17723,0]],[17466,["op",17542,1]],[17467,["op",17431,0]],[17468,["op",17849,0]],[17469,["op",17778,0]],[17470,["op",17562,0]],[17471,["op",17563,0]],[17473,["op",17632,0]],[17474,["op",17639,0]],[17476,["op",17419,0]],[17477,["op",17451,0]],[17478,["op",17452,0]],[17480,["op",17726,0]],[17481,["op",17692,0]],[17482,["op",17636,1]],[17484,["op",17622,0]],[17485,["op",17555,0]],[17486,["op",17582,0]],[17487,["op",17655,1]],[17488,["op",17662,1]],[17491,["op",17674,0]],[17493,["op",17647,0]],[17494,["op",17628,0]],[17495,["op",17653,0]],[17496,["op",17749,0]],[17498,["op",17660,1]],[17499,["op",17796,1]],[17500,["op",17834,1]],[17501,["op",17465,1]],[17502,["op",17489,0]],[17503,["op",17665,0]],[17504,["op",17456,1]],[17505,["op",17656,0]],[17506,["op",17575,0]],[17507,["op",17607,0]],[17508,["op",17847,0]],[17509,["op",17597,0]],[17511,["op",17824,1]],[17512,["op",17402,1]],[17517,["op",17841,0]],[17519,["op",17711,0]],[17520,["op",17402,0]],[17521,["op",17572,0]],[17522,["op",17507,1]],[17523,["op",17847,1]],[17524,["op",17586,0]],[17525,["op",17601,0]],[17526,["op",17683,0]],[17528,["op",17682,0]],[17529,["op",17516,0]],[17530,["op",17718,0]],[17531,["op",17449,0]],[17532,["op",17680,0]],[17533,["op",17775,0]],[17534,["op",17819,0]],[17535,["op",17619,0]],[17536,["op",17838,0]],[17537,["op",17542,0]],[17538,["op",17467,0]],[17539,["op",17713,0]],[17541,["op",17519,0]],[17542,["op",17606,0]],[17544,["op",17855,0]],[17545,["op",17408,0]],[17546,["op",17805,0]],[17547,["op",17850,0]],[17549,["op",17845,0]],[17550,["op",17458,0]],[17551,["op",17717,1]],[17552,["op",17430,0]],[17553,["op",17774,0]],[17554,["op",17782,0]],[17555,["op",17463,1]],[17556,["op",17573,0]],[17557,["op",17573,1]],[17558,["op",17794,0]],[17560,["op",17837,0]],[17561,["op",17511,1]],[17563,["op",17635,0]],[17564,["op",17437,1]],[17565,["op",17801,1]],[17566,["op",17728,0]],[17568,["op",17765,0]],[17570,["op",17744,0]],[17571,["op",17729,1]],[17573,["op",17586,1]],[17574,["op",17663,1]],[17575,["op",17655,0]],[17577,["op",17523,0]],[17579,["op",17587,0]],[17580,["op",17855,1]],[17581,["op",17602,0]],[17583,["op",17497,0]],[17584,["op",17649,0]],[17586,["op",17579,0]],[17588,["op",17722,1]],[17589,["op",17588,0]],[17590,["op",17735,0]],[17591,["op",17550,0]],[17592,["op",17658,0]],[17593,["op",17757,0]],[17595,["op",17770,0]],[17596,["op",17585,1]],[17597,["op",17840,0]],[17598,["op",17418,1]],[17599,["op",17700,0]],[17600,["op",17428,0]],[17601,["op",17543,0]],[17602,["op",17791,1]],[17603,["op",17412,1]],[17604,["op",17549,0]],[17605,["op",17475,1]],[17606,["op",17470,0]],[17607,["op",17656,1]],[17611,["op",17632,1]],[17612,["op",17707,0]],[17613,["op",17563,1]],[17614,["op",17832,0]],[17616,["op",17569,0]],[17617,["op",17706,0]],[17618,["op",17715,0]],[17620,["op",17518,0]],[17621,["op",17578,1]],[17622,["op",17699,1]],[17623,["op",17479,1]],[17625,["op",17730,0]],[17626,["op",17567,1]],[17627,["op",17745,0]],[17630,["op",17533,0]],[17631,["op",17784,1]],[17632,["op",17857,0]],[17633,["op",17760,0]],[17636,["op",17529,0]],[17637,["op",17530,0]],[17638,["op",17704,0]],[17639,["op",17852,0]],[17640,["op",17637,0]],[17641,["op",17698,1]],[17642,["op",17740,0]],[17643,["op",17447,0]],[17644,["op",17561,0]],[17645,["op",17653,1]],[17646,["op",17745,1]],[17648,["op",17490,0]],[17649,["op",17681,0]],[17651,["op",17815,0]],[17652,["op",17547,1]],[17654,["op",17812,0]],[17655,["op",17648,1]],[17656,["op",17724,1]],[17659,["op",17836,0]],[17660,["op",17460,0]],[17662,["op",17583,0]],[17663,["op",17406,0]],[17664,["op",17578,0]],[17665,["op",17767,0]],[17666,["op",17814,0]],[17667,["op",17730,1]],[17668,["op",17723,1]],[17670,["op",17666,0]],[17671,["op",17558,0]],[17672,["op",17785,0]],[17674,["op",17633,0]],[17675,["op",17822,0]],[17676,["op",17479,0]],[17677,["op",17848,0]],[17678,["op",17668,0]],[17679,["op",17731,0]],[17680,["op",17812,1]],[17681,["op",17602,1]],[17682,["op",17739,0]],[17684,["op",17790,0]],[17685,["op",17813,0]],[17686,["op",17720,0]],[17687,["op",17595,0]],[17689,["op",17773,0]],[17692,["op",17823,1]],[17694,["op",17817,0]],[17695,["op",17689,0]],[17697,["op",17659,1]],[17698,["op",17764,0]],[17701,["op",17776,0]],[17703,["op",17495,0]],[17704,["op",17628,1]],[17709,["op",17732,0]],[17711,["op",17548,0]],[17713,["op",17500,1]],[17714,["op",17719,0]],[17717,["op",17722,0]],[17718,["op",17813,1]],[17720,["op",17652,0]],[17721,["op",17514,1]],[17724,["op",17515,0]],[17725,["op",17734,0]],[17726,["op",17765,1]],[17728,["op",17732,1]],[17729,["op",17508,0]],[17732,["op",17463,0]],[17733,["op",17846,0]],[17735,["op",17786,0]],[17736,["op",17755,0]],[17741,["op",17641,0]],[17742,["op",17740,1]],[17750,["op",17853,0]],[17751,["op",17709,0]],[17753,["op",17592,0]],[17754,["op",17766,0]],[17755,["op",17826,0]],[17757,["op",17830,0]],[17759,["op",17673,0]],[17762,["op",17565,1]],[17766,["op",17788,1]],[17767,["op",17679,1]],[17769,["op",17814,1]],[17770,["op",17843,1]],[17772,["op",17461,0]],[17777,["op",17712,0]],[17778,["op",17808,0]],[17780,["op",17734,1]],[17782,["op",17746,1]],[17784,["op",17747,0]],[17786,["op",17688,0]],[17789,["op",17673,1]],[17792,["op",17838,1]],[17794,["op",17836,1]],[17795,["op",17652,1]],[17796,["op",17701,0]],[17798,["op",17702,0]],[17801,["op",17435,0]],[17807,["op",17411,0]],[17809,["op",17706,1]],[17811,["op",17513,0]],[17819,["op",17708,1]],[17820,["op",17677,1]],[17825,["op",17467,1]],[17827,["op",17748,0]],[17829,["op",17569,1]],[17831,["op",17806,1]],[17834,["op",17783,1]],[17842,["op",17535,0]],[17863,["op",17902,0]],[17864,["op",17868,0]],[17865,["op",17938,0]],[17866,["op",17889,1]],[17867,["op",17947,0]],[17868,["op",17975,1]],[17869,["op",18255,0]],[17870,["op",18256,0]],[17871,["op",18273,0]],[17872,["op",17903,0]],[17873,["op",18086,0]],[17874,["op",18287,0]],[17875,["op",18322,0]],[17876,["op",18156,0]],[17877,["op",17911,0]],[17878,["op",18290,0]],[17879,["op",17999,0]],[17880,["op",18113,0]],[17881,["op",18093,0]],[17882,["op",18246,0]],[17883,["op",18288,0]],[17884,["op",18216,1]],[17885,["op",17924,1]],[17886,["op",18160,0]],[17887,["op",18090,0]],[17888,["op",17973,0]],[17889,["op",18149,0]],[17890,["op",18192,0]],[17891,["op",18003,0]],[17893,["op",18157,0]],[17894,["op",18028,0]],[17895,["op",18044,0]],[17896,["op",17908,0]],[17897,["op",18200,0]],[17899,["op",17907,0]],[17901,["op",18074,0]],[17902,["op",17977,0]],[17904,["op",18019,0]],[17905,["op",18321,0]],[17906,["op",18294,0]],[17907,["op",18022,0]],[17908,["op",18260,0]],[17909,["op",18077,0]],[17910,["op",18217,0]],[17912,["op",17885,1]],[17913,["op",17890,1]],[17914,["op",17968,0]],[17915,["op",17963,0]],[17916,["op",18159,0]],[17917,["op",18009,0]],[17918,["op",18158,0]],[17919,["op",18033,0]],[17920,["op",17962,0]],[17921,["op",17961,0]],[17922,["op",17888,0]],[17923,["op",18162,0]],[17924,["op",18071,0]],[17925,["op",17948,0]],[17927,["op",18125,0]],[17928,["op",18186,0]],[17929,["op",18005,1]],[17930,["op",17894,0]],[17931,["op",18312,0]],[17932,["op",18241,0]],[17933,["op",18025,0]],[17934,["op",18026,0]],[17936,["op",18095,0]],[17937,["op",18102,0]],[17939,["op",17882,0]],[17940,["op",17914,0]],[17941,["op",17915,0]],[17943,["op",18189,0]],[17944,["op",18155,0]],[17945,["op",18099,1]],[17947,["op",18085,0]],[17948,["op",18018,0]],[17949,["op",18045,0]],[17950,["op",18118,1]],[17951,["op",18125,1]],[17954,["op",18137,0]],[17956,["op",18110,0]],[17957,["op",18091,0]],[17958,["op",18116,0]],[17959,["op",18212,0]],[17961,["op",18123,1]],[17962,["op",18259,1]],[17963,["op",18297,1]],[17964,["op",17928,1]],[17965,["op",17952,0]],[17966,["op",18128,0]],[17967,["op",17919,1]],[17968,["op",18119,0]],[17969,["op",18038,0]],[17970,["op",18070,0]],[17971,["op",18310,0]],[17972,["op",18060,0]],[17974,["op",18287,1]],[17975,["op",17865,1]],[17980,["op",18304,0]],[17982,["op",18174,0]],[17983,["op",17865,0]],[17984,["op",18035,0]],[17985,["op",17970,1]],[17986,["op",18310,1]],[17987,["op",18049,0]],[17988,["op",18064,0]],[17989,["op",18146,0]],[17991,["op",18145,0]],[17992,["op",17979,0]],[17993,["op",18181,0]],[17994,["op",17912,0]],[17995,["op",18143,0]],[17996,["op",18238,0]],[17997,["op",18282,0]],[17998,["op",18082,0]],[17999,["op",18301,0]],[18000,["op",18005,0]],[18001,["op",17930,0]],[18002,["op",18176,0]],[18004,["op",17982,0]],[18005,["op",18069,0]],[18007,["op",18318,0]],[18008,["op",17871,0]],[18009,["op",18268,0]],[18010,["op",18313,0]],[18012,["op",18308,0]],[18013,["op",17921,0]],[18014,["op",18180,1]],[18015,["op",17893,0]],[18016,["op",18237,0]],[18017,["op",18245,0]],[18018,["op",17926,1]],[18019,["op",18036,0]],[18020,["op",18036,1]],[18021,["op",18257,0]],[18023,["op",18300,0]],[18024,["op",17974,1]],[18026,["op",18098,0]],[18027,["op",17900,1]],[18028,["op",18264,1]],[18029,["op",18191,0]],[18031,["op",18228,0]],[18033,["op",18207,0]],[18034,["op",18192,1]],[18036,["op",18049,1]],[18037,["op",18126,1]],[18038,["op",18118,0]],[18040,["op",17986,0]],[18042,["op",18050,0]],[18043,["op",18318,1]],[18044,["op",18065,0]],[18046,["op",17960,0]],[18047,["op",18112,0]],[18049,["op",18042,0]],[18051,["op",18185,1]],[18052,["op",18051,0]],[18053,["op",18198,0]],[18054,["op",18013,0]],[18055,["op",18121,0]],[18056,["op",18220,0]],[18058,["op",18233,0]],[18059,["op",18048,1]],[18060,["op",18303,0]],[18061,["op",17881,1]],[18062,["op",18163,0]],[18063,["op",17891,0]],[18064,["op",18006,0]],[18065,["op",18254,1]],[18066,["op",17875,1]],[18067,["op",18012,0]],[18068,["op",17938,1]],[18069,["op",17933,0]],[18070,["op",18119,1]],[18074,["op",18095,1]],[18075,["op",18170,0]],[18076,["op",18026,1]],[18077,["op",18295,0]],[18079,["op",18032,0]],[18080,["op",18169,0]],[18081,["op",18178,0]],[18083,["op",17981,0]],[18084,["op",18041,1]],[18085,["op",18162,1]],[18086,["op",17942,1]],[18088,["op",18193,0]],[18089,["op",18030,1]],[18090,["op",18208,0]],[18093,["op",17996,0]],[18094,["op",18247,1]],[18095,["op",18320,0]],[18096,["op",18223,0]],[18099,["op",17992,0]],[18100,["op",17993,0]],[18101,["op",18167,0]],[18102,["op",18315,0]],[18103,["op",18100,0]],[18104,["op",18161,1]],[18105,["op",18203,0]],[18106,["op",17910,0]],[18107,["op",18024,0]],[18108,["op",18116,1]],[18109,["op",18208,1]],[18111,["op",17953,0]],[18112,["op",18144,0]],[18114,["op",18278,0]],[18115,["op",18010,1]],[18117,["op",18275,0]],[18118,["op",18111,1]],[18119,["op",18187,1]],[18122,["op",18299,0]],[18123,["op",17923,0]],[18125,["op",18046,0]],[18126,["op",17869,0]],[18127,["op",18041,0]],[18128,["op",18230,0]],[18129,["op",18277,0]],[18130,["op",18193,1]],[18131,["op",18186,1]],[18133,["op",18129,0]],[18134,["op",18021,0]],[18135,["op",18248,0]],[18137,["op",18096,0]],[18138,["op",18285,0]],[18139,["op",17942,0]],[18140,["op",18311,0]],[18141,["op",18131,0]],[18142,["op",18194,0]],[18143,["op",18275,1]],[18144,["op",18065,1]],[18145,["op",18202,0]],[18147,["op",18253,0]],[18148,["op",18276,0]],[18149,["op",18183,0]],[18150,["op",18058,0]],[18152,["op",18236,0]],[18155,["op",18286,1]],[18157,["op",18280,0]],[18158,["op",18152,0]],[18160,["op",18122,1]],[18161,["op",18227,0]],[18164,["op",18239,0]],[18166,["op",17958,0]],[18167,["op",18091,1]],[18172,["op",18195,0]],[18174,["op",18011,0]],[18176,["op",17963,1]],[18177,["op",18182,0]],[18180,["op",18185,0]],[18181,["op",18276,1]],[18183,["op",18115,0]],[18184,["op",17977,1]],[18187,["op",17978,0]],[18188,["op",18197,0]],[18189,["op",18228,1]],[18191,["op",18195,1]],[18192,["op",17971,0]],[18195,["op",17926,0]],[18196,["op",18309,0]],[18198,["op",18249,0]],[18199,["op",18218,0]],[18204,["op",18104,0]],[18205,["op",18203,1]],[18213,["op",18316,0]],[18214,["op",18172,0]],[18216,["op",18055,0]],[18217,["op",18229,0]],[18218,["op",18289,0]],[18220,["op",18293,0]],[18222,["op",18136,0]],[18225,["op",18028,1]],[18229,["op",18251,1]],[18230,["op",18142,1]],[18232,["op",18277,1]],[18233,["op",18306,1]],[18235,["op",17924,0]],[18240,["op",18175,0]],[18241,["op",18271,0]],[18243,["op",18197,1]],[18245,["op",18209,1]],[18247,["op",18210,0]],[18249,["op",18151,0]],[18252,["op",18136,1]],[18255,["op",18301,1]],[18257,["op",18299,1]],[18258,["op",18115,1]],[18259,["op",18164,0]],[18261,["op",18165,0]],[18264,["op",17898,0]],[18270,["op",17874,0]],[18272,["op",18169,1]],[18274,["op",17976,0]],[18282,["op",18171,1]],[18283,["op",18140,1]],[18288,["op",17930,1]],[18290,["op",18211,0]],[18292,["op",18032,1]],[18294,["op",18269,1]],[18297,["op",18246,1]],[18305,["op",17998,0]],[18326,["op",18365,0]],[18327,["op",18331,0]],[18328,["op",18401,0]],[18329,["op",18352,1]],[18330,["op",18410,0]],[18331,["op",18438,1]],[18332,["op",18718,0]],[18333,["op",18719,0]],[18334,["op",18736,0]],[18335,["op",18366,0]],[18336,["op",18549,0]],[18337,["op",18750,0]],[18338,["op",18785,0]],[18339,["op",18619,0]],[18340,["op",18374,0]],[18341,["op",18753,0]],[18342,["op",18462,0]],[18343,["op",18576,0]],[18344,["op",18556,0]],[18345,["op",18709,0]],[18346,["op",18751,0]],[18347,["op",18679,1]],[18348,["op",18387,1]],[18349,["op",18623,0]],[18350,["op",18553,0]],[18351,["op",18436,0]],[18352,["op",18612,0]],[18353,["op",18655,0]],[18354,["op",18466,0]],[18356,["op",18620,0]],[18357,["op",18491,0]],[18358,["op",18507,0]],[18359,["op",18371,0]],[18360,["op",18663,0]],[18362,["op",18370,0]],[18364,["op",18537,0]],[18365,["op",18440,0]],[18367,["op",18482,0]],[18368,["op",18784,0]],[18369,["op",18757,0]],[18370,["op",18485,0]],[18371,["op",18723,0]],[18372,["op",18540,0]],[18373,["op",18680,0]],[18375,["op",18348,1]],[18376,["op",18353,1]],[18377,["op",18431,0]],[18378,["op",18426,0]],[18379,["op",18622,0]],[18380,["op",18472,0]],[18381,["op",18621,0]],[18382,["op",18496,0]],[18383,["op",18425,0]],[18384,["op",18424,0]],[18385,["op",18351,0]],[18386,["op",18625,0]],[18387,["op",18534,0]],[18388,["op",18411,0]],[18390,["op",18588,0]],[18391,["op",18649,0]],[18392,["op",18468,1]],[18393,["op",18357,0]],[18394,["op",18775,0]],[18395,["op",18704,0]],[18396,["op",18488,0]],[18397,["op",18489,0]],[18399,["op",18558,0]],[18400,["op",18565,0]],[18402,["op",18345,0]],[18403,["op",18377,0]],[18404,["op",18378,0]],[18406,["op",18652,0]],[18407,["op",18618,0]],[18408,["op",18562,1]],[18410,["op",18548,0]],[18411,["op",18481,0]],[18412,["op",18508,0]],[18413,["op",18581,1]],[18414,["op",18588,1]],[18417,["op",18600,0]],[18419,["op",18573,0]],[18420,["op",18554,0]],[18421,["op",18579,0]],[18422,["op",18675,0]],[18424,["op",18586,1]],[18425,["op",18722,1]],[18426,["op",18760,1]],[18427,["op",18391,1]],[18428,["op",18415,0]],[18429,["op",18591,0]],[18430,["op",18382,1]],[18431,["op",18582,0]],[18432,["op",18501,0]],[18433,["op",18533,0]],[18434,["op",18773,0]],[18435,["op",18523,0]],[18437,["op",18750,1]],[18438,["op",18328,1]],[18443,["op",18767,0]],[18445,["op",18637,0]],[18446,["op",18328,0]],[18447,["op",18498,0]],[18448,["op",18433,1]],[18449,["op",18773,1]],[18450,["op",18512,0]],[18451,["op",18527,0]],[18452,["op",18609,0]],[18454,["op",18608,0]],[18455,["op",18442,0]],[18456,["op",18644,0]],[18457,["op",18375,0]],[18458,["op",18606,0]],[18459,["op",18701,0]],[18460,["op",18745,0]],[18461,["op",18545,0]],[18462,["op",18764,0]],[18463,["op",18468,0]],[18464,["op",18393,0]],[18465,["op",18639,0]],[18467,["op",18445,0]],[18468,["op",18532,0]],[18470,["op",18781,0]],[18471,["op",18334,0]],[18472,["op",18731,0]],[18473,["op",18776,0]],[18475,["op",18771,0]],[18476,["op",18384,0]],[18477,["op",18643,1]],[18478,["op",18356,0]],[18479,["op",18700,0]],[18480,["op",18708,0]],[18481,["op",18389,1]],[18482,["op",18499,0]],[18483,["op",18499,1]],[18484,["op",18720,0]],[18486,["op",18763,0]],[18487,["op",18437,1]],[18489,["op",18561,0]],[18490,["op",18363,1]],[18491,["op",18727,1]],[18492,["op",18654,0]],[18494,["op",18691,0]],[18496,["op",18670,0]],[18497,["op",18655,1]],[18499,["op",18512,1]],[18500,["op",18589,1]],[18501,["op",18581,0]],[18503,["op",18449,0]],[18505,["op",18513,0]],[18506,["op",18781,1]],[18507,["op",18528,0]],[18509,["op",18423,0]],[18510,["op",18575,0]],[18512,["op",18505,0]],[18514,["op",18648,1]],[18515,["op",18514,0]],[18516,["op",18661,0]],[18517,["op",18476,0]],[18518,["op",18584,0]],[18519,["op",18683,0]],[18521,["op",18696,0]],[18522,["op",18511,1]],[18523,["op",18766,0]],[18524,["op",18344,1]],[18525,["op",18626,0]],[18526,["op",18354,0]],[18527,["op",18469,0]],[18528,["op",18717,1]],[18529,["op",18338,1]],[18530,["op",18475,0]],[18531,["op",18401,1]],[18532,["op",18396,0]],[18533,["op",18582,1]],[18537,["op",18558,1]],[18538,["op",18633,0]],[18539,["op",18489,1]],[18540,["op",18758,0]],[18542,["op",18495,0]],[18543,["op",18632,0]],[18544,["op",18641,0]],[18546,["op",18444,0]],[18547,["op",18504,1]],[18548,["op",18625,1]],[18549,["op",18405,1]],[18551,["op",18656,0]],[18552,["op",18493,1]],[18553,["op",18671,0]],[18556,["op",18459,0]],[18557,["op",18710,1]],[18558,["op",18783,0]],[18559,["op",18686,0]],[18562,["op",18455,0]],[18563,["op",18456,0]],[18564,["op",18630,0]],[18565,["op",18778,0]],[18566,["op",18563,0]],[18567,["op",18624,1]],[18568,["op",18666,0]],[18569,["op",18373,0]],[18570,["op",18487,0]],[18571,["op",18579,1]],[18572,["op",18671,1]],[18574,["op",18416,0]],[18575,["op",18607,0]],[18577,["op",18741,0]],[18578,["op",18473,1]],[18580,["op",18738,0]],[18581,["op",18574,1]],[18582,["op",18650,1]],[18585,["op",18762,0]],[18586,["op",18386,0]],[18588,["op",18509,0]],[18589,["op",18332,0]],[18590,["op",18504,0]],[18591,["op",18693,0]],[18592,["op",18740,0]],[18593,["op",18656,1]],[18594,["op",18649,1]],[18596,["op",18592,0]],[18597,["op",18484,0]],[18598,["op",18711,0]],[18600,["op",18559,0]],[18601,["op",18748,0]],[18602,["op",18405,0]],[18603,["op",18774,0]],[18604,["op",18594,0]],[18605,["op",18657,0]],[18606,["op",18738,1]],[18607,["op",18528,1]],[18608,["op",18665,0]],[18610,["op",18716,0]],[18611,["op",18739,0]],[18612,["op",18646,0]],[18613,["op",18521,0]],[18615,["op",18699,0]],[18618,["op",18749,1]],[18620,["op",18743,0]],[18621,["op",18615,0]],[18623,["op",18585,1]],[18624,["op",18690,0]],[18627,["op",18702,0]],[18629,["op",18421,0]],[18630,["op",18554,1]],[18635,["op",18658,0]],[18637,["op",18474,0]],[18639,["op",18426,1]],[18640,["op",18645,0]],[18643,["op",18648,0]],[18644,["op",18739,1]],[18646,["op",18578,0]],[18647,["op",18440,1]],[18650,["op",18441,0]],[18651,["op",18660,0]],[18652,["op",18691,1]],[18654,["op",18658,1]],[18655,["op",18434,0]],[18658,["op",18389,0]],[18659,["op",18772,0]],[18661,["op",18712,0]],[18662,["op",18681,0]],[18667,["op",18567,0]],[18668,["op",18666,1]],[18676,["op",18779,0]],[18677,["op",18635,0]],[18679,["op",18518,0]],[18680,["op",18692,0]],[18681,["op",18752,0]],[18683,["op",18756,0]],[18685,["op",18599,0]],[18688,["op",18491,1]],[18692,["op",18714,1]],[18693,["op",18605,1]],[18695,["op",18740,1]],[18696,["op",18769,1]],[18698,["op",18387,0]],[18703,["op",18638,0]],[18704,["op",18734,0]],[18706,["op",18660,1]],[18708,["op",18672,1]],[18710,["op",18673,0]],[18712,["op",18614,0]],[18715,["op",18599,1]],[18718,["op",18764,1]],[18720,["op",18762,1]],[18721,["op",18578,1]],[18722,["op",18627,0]],[18724,["op",18628,0]],[18727,["op",18361,0]],[18733,["op",18337,0]],[18735,["op",18632,1]],[18737,["op",18439,0]],[18745,["op",18634,1]],[18746,["op",18603,1]],[18751,["op",18393,1]],[18753,["op",18674,0]],[18755,["op",18495,1]],[18757,["op",18732,1]],[18760,["op",18709,1]],[18768,["op",18461,0]],[18789,["op",18828,0]],[18790,["op",18794,0]],[18791,["op",18864,0]],[18792,["op",18815,1]],[18793,["op",18873,0]],[18794,["op",18901,1]],[18795,["op",19181,0]],[18796,["op",19182,0]],[18797,["op",19199,0]],[18798,["op",18829,0]],[18799,["op",19012,0]],[18800,["op",19213,0]],[18801,["op",19248,0]],[18802,["op",19082,0]],[18803,["op",18837,0]],[18804,["op",19216,0]],[18805,["op",18925,0]],[18806,["op",19039,0]],[18807,["op",19019,0]],[18808,["op",19172,0]],[18809,["op",19214,0]],[18810,["op",19142,1]],[18811,["op",18850,1]],[18812,["op",19086,0]],[18813,["op",19016,0]],[18814,["op",18899,0]],[18815,["op",19075,0]],[18816,["op",19118,0]],[18817,["op",18929,0]],[18819,["op",19083,0]],[18820,["op",18954,0]],[18821,["op",18970,0]],[18822,["op",18834,0]],[18823,["op",19126,0]],[18825,["op",18833,0]],[18827,["op",19000,0]],[18828,["op",18903,0]],[18830,["op",18945,0]],[18831,["op",19247,0]],[18832,["op",19220,0]],[18833,["op",18948,0]],[18834,["op",19186,0]],[18835,["op",19003,0]],[18836,["op",19143,0]],[18838,["op",18811,1]],[18839,["op",18816,1]],[18840,["op",18894,0]],[18841,["op",18889,0]],[18842,["op",19085,0]],[18843,["op",18935,0]],[18844,["op",19084,0]],[18845,["op",18959,0]],[18846,["op",18888,0]],[18847,["op",18887,0]],[18848,["op",18814,0]],[18849,["op",19088,0]],[18850,["op",18997,0]],[18851,["op",18874,0]],[18853,["op",19051,0]],[18854,["op",19112,0]],[18855,["op",18931,1]],[18856,["op",18820,0]],[18857,["op",19238,0]],[18858,["op",19167,0]],[18859,["op",18951,0]],[18860,["op",18952,0]],[18862,["op",19021,0]],[18863,["op",19028,0]],[18865,["op",18808,0]],[18866,["op",18840,0]],[18867,["op",18841,0]],[18869,["op",19115,0]],[18870,["op",19081,0]],[18871,["op",19025,1]],[18873,["op",19011,0]],[18874,["op",18944,0]],[18875,["op",18971,0]],[18876,["op",19044,1]],[18877,["op",19051,1]],[18880,["op",19063,0]],[18882,["op",19036,0]],[18883,["op",19017,0]],[18884,["op",19042,0]],[18885,["op",19138,0]],[18887,["op",19049,1]],[18888,["op",19185,1]],[18889,["op",19223,1]],[18890,["op",18854,1]],[18891,["op",18878,0]],[18892,["op",19054,0]],[18893,["op",18845,1]],[18894,["op",19045,0]],[18895,["op",18964,0]],[18896,["op",18996,0]],[18897,["op",19236,0]],[18898,["op",18986,0]],[18900,["op",19213,1]],[18901,["op",18791,1]],[18906,["op",19230,0]],[18908,["op",19100,0]],[18909,["op",18791,0]],[18910,["op",18961,0]],[18911,["op",18896,1]],[18912,["op",19236,1]],[18913,["op",18975,0]],[18914,["op",18990,0]],[18915,["op",19072,0]],[18917,["op",19071,0]],[18918,["op",18905,0]],[18919,["op",19107,0]],[18920,["op",18838,0]],[18921,["op",19069,0]],[18922,["op",19164,0]],[18923,["op",19208,0]],[18924,["op",19008,0]],[18925,["op",19227,0]],[18926,["op",18931,0]],[18927,["op",18856,0]],[18928,["op",19102,0]],[18930,["op",18908,0]],[18931,["op",18995,0]],[18933,["op",19244,0]],[18934,["op",18797,0]],[18935,["op",19194,0]],[18936,["op",19239,0]],[18938,["op",19234,0]],[18939,["op",18847,0]],[18940,["op",19106,1]],[18941,["op",18819,0]],[18942,["op",19163,0]],[18943,["op",19171,0]],[18944,["op",18852,1]],[18945,["op",18962,0]],[18946,["op",18962,1]],[18947,["op",19183,0]],[18949,["op",19226,0]],[18950,["op",18900,1]],[18952,["op",19024,0]],[18953,["op",18826,1]],[18954,["op",19190,1]],[18955,["op",19117,0]],[18957,["op",19154,0]],[18959,["op",19133,0]],[18960,["op",19118,1]],[18962,["op",18975,1]],[18963,["op",19052,1]],[18964,["op",19044,0]],[18966,["op",18912,0]],[18968,["op",18976,0]],[18969,["op",19244,1]],[18970,["op",18991,0]],[18972,["op",18886,0]],[18973,["op",19038,0]],[18975,["op",18968,0]],[18977,["op",19111,1]],[18978,["op",18977,0]],[18979,["op",19124,0]],[18980,["op",18939,0]],[18981,["op",19047,0]],[18982,["op",19146,0]],[18984,["op",19159,0]],[18985,["op",18974,1]],[18986,["op",19229,0]],[18987,["op",18807,1]],[18988,["op",19089,0]],[18989,["op",18817,0]],[18990,["op",18932,0]],[18991,["op",19180,1]],[18992,["op",18801,1]],[18993,["op",18938,0]],[18994,["op",18864,1]],[18995,["op",18859,0]],[18996,["op",19045,1]],[19000,["op",19021,1]],[19001,["op",19096,0]],[19002,["op",18952,1]],[19003,["op",19221,0]],[19005,["op",18958,0]],[19006,["op",19095,0]],[19007,["op",19104,0]],[19009,["op",18907,0]],[19010,["op",18967,1]],[19011,["op",19088,1]],[19012,["op",18868,1]],[19014,["op",19119,0]],[19015,["op",18956,1]],[19016,["op",19134,0]],[19019,["op",18922,0]],[19020,["op",19173,1]],[19021,["op",19246,0]],[19022,["op",19149,0]],[19025,["op",18918,0]],[19026,["op",18919,0]],[19027,["op",19093,0]],[19028,["op",19241,0]],[19029,["op",19026,0]],[19030,["op",19087,1]],[19031,["op",19129,0]],[19032,["op",18836,0]],[19033,["op",18950,0]],[19034,["op",19042,1]],[19035,["op",19134,1]],[19037,["op",18879,0]],[19038,["op",19070,0]],[19040,["op",19204,0]],[19041,["op",18936,1]],[19043,["op",19201,0]],[19044,["op",19037,1]],[19045,["op",19113,1]],[19048,["op",19225,0]],[19049,["op",18849,0]],[19051,["op",18972,0]],[19052,["op",18795,0]],[19053,["op",18967,0]],[19054,["op",19156,0]],[19055,["op",19203,0]],[19056,["op",19119,1]],[19057,["op",19112,1]],[19059,["op",19055,0]],[19060,["op",18947,0]],[19061,["op",19174,0]],[19063,["op",19022,0]],[19064,["op",19211,0]],[19065,["op",18868,0]],[19066,["op",19237,0]],[19067,["op",19057,0]],[19068,["op",19120,0]],[19069,["op",19201,1]],[19070,["op",18991,1]],[19071,["op",19128,0]],[19073,["op",19179,0]],[19074,["op",19202,0]],[19075,["op",19109,0]],[19076,["op",18984,0]],[19078,["op",19162,0]],[19081,["op",19212,1]],[19083,["op",19206,0]],[19084,["op",19078,0]],[19086,["op",19048,1]],[19087,["op",19153,0]],[19090,["op",19165,0]],[19092,["op",18884,0]],[19093,["op",19017,1]],[19098,["op",19121,0]],[19100,["op",18937,0]],[19102,["op",18889,1]],[19103,["op",19108,0]],[19106,["op",19111,0]],[19107,["op",19202,1]],[19109,["op",19041,0]],[19110,["op",18903,1]],[19113,["op",18904,0]],[19114,["op",19123,0]],[19115,["op",19154,1]],[19117,["op",19121,1]],[19118,["op",18897,0]],[19121,["op",18852,0]],[19122,["op",19235,0]],[19124,["op",19175,0]],[19125,["op",19144,0]],[19130,["op",19030,0]],[19131,["op",19129,1]],[19139,["op",19242,0]],[19140,["op",19098,0]],[19142,["op",18981,0]],[19143,["op",19155,0]],[19144,["op",19215,0]],[19146,["op",19219,0]],[19148,["op",19062,0]],[19151,["op",18954,1]],[19155,["op",19177,1]],[19156,["op",19068,1]],[19158,["op",19203,1]],[19159,["op",19232,1]],[19161,["op",18850,0]],[19166,["op",19101,0]],[19167,["op",19197,0]],[19169,["op",19123,1]],[19171,["op",19135,1]],[19173,["op",19136,0]],[19175,["op",19077,0]],[19178,["op",19062,1]],[19181,["op",19227,1]],[19183,["op",19225,1]],[19184,["op",19041,1]],[19185,["op",19090,0]],[19187,["op",19091,0]],[19190,["op",18824,0]],[19196,["op",18800,0]],[19198,["op",19095,1]],[19200,["op",18902,0]],[19208,["op",19097,1]],[19209,["op",19066,1]],[19214,["op",18856,1]],[19216,["op",19137,0]],[19218,["op",18958,1]],[19220,["op",19195,1]],[19223,["op",19172,1]],[19231,["op",18924,0]],[19252,["op",19275,0]],[19253,["op",19278,0]],[19254,["op",19283,0]],[19255,["op",19280,0]],[19257,["op",19272,0]],[19258,["op",19256,0]],[19259,["op",19281,0]],[19260,["op",19271,0]],[19261,["op",19268,0]],[19262,["op",19274,0]],[19263,["op",19268,1]],[19264,["op",19277,1]],[19265,["op",19276,0]],[19266,["op",19279,1]],[19267,["op",19280,1]],[19269,["op",19256,1]],[19270,["op",19277,0]],[19273,["op",19271,1]],[19275,["op",19273,0]],[19281,["op",19265,1]],[19282,["op",19279,0]],[19284,["op",19307,0]],[19285,["op",19310,0]],[19286,["op",19315,0]],[19287,["op",19312,0]],[19289,["op",19304,0]],[19290,["op",19288,0]],[19291,["op",19313,0]],[19292,["op",19303,0]],[19293,["op",19300,0]],[19294,["op",19306,0]],[19295,["op",19300,1]],[19296,["op",19309,1]],[19297,["op",19308,0]],[19298,["op",19311,1]],[19299,["op",19312,1]],[19301,["op",19288,1]],[19302,["op",19309,0]],[19305,["op",19303,1]],[19307,["op",19305,0]],[19313,["op",19297,1]],[19314,["op",19311,0]],[19316,["op",19339,0]],[19317,["op",19342,0]],[19318,["op",19347,0]],[19319,["op",19344,0]],[19321,["op",19336,0]],[19322,["op",19320,0]],[19323,["op",19345,0]],[19324,["op",19335,0]],[19325,["op",19332,0]],[19326,["op",19338,0]],[19327,["op",19332,1]],[19328,["op",19341,1]],[19329,["op",19340,0]],[19330,["op",19343,1]],[19331,["op",19344,1]],[19333,["op",19320,1]],[19334,["op",19341,0]],[19337,["op",19335,1]],[19339,["op",19337,0]],[19345,["op",19329,1]],[19346,["op",19343,0]],[19348,["op",19371,0]],[19349,["op",19374,0]],[19350,["op",19379,0]],[19351,["op",19376,0]],[19353,["op",19368,0]],[19354,["op",19352,0]],[19355,["op",19377,0]],[19356,["op",19367,0]],[19357,["op",19364,0]],[19358,["op",19370,0]],[19359,["op",19364,1]],[19360,["op",19373,1]],[19361,["op",19372,0]],[19362,["op",19375,1]],[19363,["op",19376,1]],[19365,["op",19352,1]],[19366,["op",19373,0]],[19369,["op",19367,1]],[19371,["op",19369,0]],[19377,["op",19361,1]],[19378,["op",19375,0]],[19380,["op",19403,0]],[19381,["op",19406,0]],[19382,["op",19411,0]],[19383,["op",19408,0]],[19385,["op",19400,0]],[19386,["op",19384,0]],[19387,["op",19409,0]],[19388,["op",19399,0]],[19389,["op",19396,0]],[19390,["op",19402,0]],[19391,["op",19396,1]],[19392,["op",19405,1]],[19393,["op",19404,0]],[19394,["op",19407,1]],[19395,["op",19408,1]],[19397,["op",19384,1]],[19398,["op",19405,0]],[19401,["op",19399,1]],[19403,["op",19401,0]],[19409,["op",19393,1]],[19410,["op",19407,0]],[19412,["op",19435,0]],[19413,["op",19438,0]],[19414,["op",19443,0]],[19415,["op",19440,0]],[19417,["op",19432,0]],[19418,["op",19416,0]],[19419,["op",19441,0]],[19420,["op",19431,0]],[19421,["op",19428,0]],[19422,["op",19434,0]],[19423,["op",19428,1]],[19424,["op",19437,1]],[19425,["op",19436,0]],[19426,["op",19439,1]],[19427,["op",19440,1]],[19429,["op",19416,1]],[19430,["op",19437,0]],[19433,["op",19431,1]],[19435,["op",19433,0]],[19441,["op",19425,1]],[19442,["op",19439,0]],[19444,["op",19467,0]],[19445,["op",19470,0]],[19446,["op",19475,0]],[19447,["op",19472,0]],[19449,["op",19464,0]],[19450,["op",19448,0]],[19451,["op",19473,0]],[19452,["op",19463,0]],[19453,["op",19460,0]],[19454,["op",19466,0]],[19455,["op",19460,1]],[19456,["op",19469,1]],[19457,["op",19468,0]],[19458,["op",19471,1]],[19459,["op",19472,1]],[19461,["op",19448,1]],[19462,["op",19469,0]],[19465,["op",19463,1]],[19467,["op",19465,0]],[19473,["op",19457,1]],[19474,["op",19471,0]],[19476,["op",19499,0]],[19477,["op",19502,0]],[19478,["op",19507,0]],[19479,["op",19504,0]],[19481,["op",19496,0]],[19482,["op",19480,0]],[19483,["op",19505,0]],[19484,["op",19495,0]],[19485,["op",19492,0]],[19486,["op",19498,0]],[19487,["op",19492,1]],[19488,["op",19501,1]],[19489,["op",19500,0]],[19490,["op",19503,1]],[19491,["op",19504,1]],[19493,["op",19480,1]],[19494,["op",19501,0]],[19497,["op",19495,1]],[19499,["op",19497,0]],[19505,["op",19489,1]],[19506,["op",19503,0]],[19508,["op",19531,0]],[19509,["op",19534,0]],[19510,["op",19539,0]],[19511,["op",19536,0]],[19513,["op",19528,0]],[19514,["op",19512,0]],[19515,["op",19537,0]],[19516,["op",19527,0]],[19517,["op",19524,0]],[19518,["op",19530,0]],[19519,["op",19524,1]],[19520,["op",19533,1]],[19521,["op",19532,0]],[19522,["op",19535,1]],[19523,["op",19536,1]],[19525,["op",19512,1]],[19526,["op",19533,0]],[19529,["op",19527,1]],[19531,["op",19529,0]],[19537,["op",19521,1]],[19538,["op",19535,0]],[19540,["op",19563,0]],[19541,["op",19566,0]],[19542,["op",19571,0]],[19543,["op",19568,0]],[19545,["op",19560,0]],[19546,["op",19544,0]],[19547,["op",19569,0]],[19548,["op",19559,0]],[19549,["op",19556,0]],[19550,["op",19562,0]],[19551,["op",19556,1]],[19552,["op",19565,1]],[19553,["op",19564,0]],[19554,["op",19567,1]],[19555,["op",19568,1]],[19557,["op",19544,1]],[19558,["op",19565,0]],[19561,["op",19559,1]],[19563,["op",19561,0]],[19569,["op",19553,1]],[19570,["op",19567,0]],[19572,["op",19595,0]],[19573,["op",19598,0]],[19574,["op",19603,0]],[19575,["op",19600,0]],[19577,["op",19592,0]],[19578,["op",19576,0]],[19579,["op",19601,0]],[19580,["op",19591,0]],[19581,["op",19588,0]],[19582,["op",19594,0]],[19583,["op",19588,1]],[19584,["op",19597,1]],[19585,["op",19596,0]],[19586,["op",19599,1]],[19587,["op",19600,1]],[19589,["op",19576,1]],[19590,["op",19597,0]],[19593,["op",19591,1]],[19595,["op",19593,0]],[19601,["op",19585,1]],[19602,["op",19599,0]],[19604,["op",19627,0]],[19605,["op",19630,0]],[19606,["op",19635,0]],[19607,["op",19632,0]],[19609,["op",19624,0]],[19610,["op",19608,0]],[19611,["op",19633,0]],[19612,["op",19623,0]],[19613,["op",19620,0]],[19614,["op",19626,0]],[19615,["op",19620,1]],[19616,["op",19629,1]],[19617,["op",19628,0]],[19618,["op",19631,1]],[19619,["op",19632,1]],[19621,["op",19608,1]],[19622,["op",19629,0]],[19625,["op",19623,1]],[19627,["op",19625,0]],[19633,["op",19617,1]],[19634,["op",19631,0]],[19636,["op",19659,0]],[19637,["op",19662,0]],[19638,["op",19667,0]],[19639,["op",19664,0]],[19641,["op",19656,0]],[19642,["op",19640,0]],[19643,["op",19665,0]],[19644,["op",19655,0]],[19645,["op",19652,0]],[19646,["op",19658,0]],[19647,["op",19652,1]],[19648,["op",19661,1]],[19649,["op",19660,0]],[19650,["op",19663,1]],[19651,["op",19664,1]],[19653,["op",19640,1]],[19654,["op",19661,0]],[19657,["op",19655,1]],[19659,["op",19657,0]],[19665,["op",19649,1]],[19666,["op",19663,0]],[19668,["op",19691,0]],[19669,["op",19694,0]],[19670,["op",19699,0]],[19671,["op",19696,0]],[19673,["op",19688,0]],[19674,["op",19672,0]],[19675,["op",19697,0]],[19676,["op",19687,0]],[19677,["op",19684,0]],[19678,["op",19690,0]],[19679,["op",19684,1]],[19680,["op",19693,1]],[19681,["op",19692,0]],[19682,["op",19695,1]],[19683,["op",19696,1]],[19685,["op",19672,1]],[19686,["op",19693,0]],[19689,["op",19687,1]],[19691,["op",19689,0]],[19697,["op",19681,1]],[19698,["op",19695,0]],[19700,["op",19723,0]],[19701,["op",19726,0]],[19702,["op",19731,0]],[19703,["op",19728,0]],[19705,["op",19720,0]],[19706,["op",19704,0]],[19707,["op",19729,0]],[19708,["op",19719,0]],[19709,["op",19716,0]],[19710,["op",19722,0]],[19711,["op",19716,1]],[19712,["op",19725,1]],[19713,["op",19724,0]],[19714,["op",19727,1]],[19715,["op",19728,1]],[19717,["op",19704,1]],[19718,["op",19725,0]],[19721,["op",19719,1]],[19723,["op",19721,0]],[19729,["op",19713,1]],[19730,["op",19727,0]],[19732,["op",19755,0]],[19733,["op",19758,0]],[19734,["op",19763,0]],[19735,["op",19760,0]],[19737,["op",19752,0]],[19738,["op",19736,0]],[19739,["op",19761,0]],[19740,["op",19751,0]],[19741,["op",19748,0]],[19742,["op",19754,0]],[19743,["op",19748,1]],[19744,["op",19757,1]],[19745,["op",19756,0]],[19746,["op",19759,1]],[19747,["op",19760,1]],[19749,["op",19736,1]],[19750,["op",19757,0]],[19753,["op",19751,1]],[19755,["op",19753,0]],[19761,["op",19745,1]],[19762,["op",19759,0]],[19764,["op",19787,0]],[19765,["op",19790,0]],[19766,["op",19795,0]],[19767,["op",19792,0]],[19769,["op",19784,0]],[19770,["op",19768,0]],[19771,["op",19793,0]],[19772,["op",19783,0]],[19773,["op",19780,0]],[19774,["op",19786,0]],[19775,["op",19780,1]],[19776,["op",19789,1]],[19777,["op",19788,0]],[19778,["op",19791,1]],[19779,["op",19792,1]],[19781,["op",19768,1]],[19782,["op",19789,0]],[19785,["op",19783,1]],[19787,["op",19785,0]],[19793,["op",19777,1]],[19794,["op",19791,0]],[19796,["op",19819,0]],[19797,["op",19822,0]],[19798,["op",19827,0]],[19799,["op",19824,0]],[19801,["op",19816,0]],[19802,["op",19800,0]],[19803,["op",19825,0]],[19804,["op",19815,0]],[19805,["op",19812,0]],[19806,["op",19818,0]],[19807,["op",19812,1]],[19808,["op",19821,1]],[19809,["op",19820,0]],[19810,["op",19823,1]],[19811,["op",19824,1]],[19813,["op",19800,1]],[19814,["op",19821,0]],[19817,["op",19815,1]],[19819,["op",19817,0]],[19825,["op",19809,1]],[19826,["op",19823,0]],[19828,["op",19851,0]],[19829,["op",19854,0]],[19830,["op",19859,0]],[19831,["op",19856,0]],[19833,["op",19848,0]],[19834,["op",19832,0]],[19835,["op",19857,0]],[19836,["op",19847,0]],[19837,["op",19844,0]],[19838,["op",19850,0]],[19839,["op",19844,1]],[19840,["op",19853,1]],[19841,["op",19852,0]],[19842,["op",19855,1]],[19843,["op",19856,1]],[19845,["op",19832,1]],[19846,["op",19853,0]],[19849,["op",19847,1]],[19851,["op",19849,0]],[19857,["op",19841,1]],[19858,["op",19855,0]],[19860,["op",19883,0]],[19861,["op",19886,0]],[19862,["op",19891,0]],[19863,["op",19888,0]],[19865,["op",19880,0]],[19866,["op",19864,0]],[19867,["op",19889,0]],[19868,["op",19879,0]],[19869,["op",19876,0]],[19870,["op",19882,0]],[19871,["op",19876,1]],[19872,["op",19885,1]],[19873,["op",19884,0]],[19874,["op",19887,1]],[19875,["op",19888,1]],[19877,["op",19864,1]],[19878,["op",19885,0]],[19881,["op",19879,1]],[19883,["op",19881,0]],[19889,["op",19873,1]],[19890,["op",19887,0]],[19892,["op",19915,0]],[19893,["op",19918,0]],[19894,["op",19923,0]],[19895,["op",19920,0]],[19897,["op",19912,0]],[19898,["op",19896,0]],[19899,["op",19921,0]],[19900,["op",19911,0]],[19901,["op",19908,0]],[19902,["op",19914,0]],[19903,["op",19908,1]],[19904,["op",19917,1]],[19905,["op",19916,0]],[19906,["op",19919,1]],[19907,["op",19920,1]],[19909,["op",19896,1]],[19910,["op",19917,0]],[19913,["op",19911,1]],[19915,["op",19913,0]],[19921,["op",19905,1]],[19922,["op",19919,0]],[19924,["op",19947,0]],[19925,["op",19950,0]],[19926,["op",19955,0]],[19927,["op",19952,0]],[19929,["op",19944,0]],[19930,["op",19928,0]],[19931,["op",19953,0]],[19932,["op",19943,0]],[19933,["op",19940,0]],[19934,["op",19946,0]],[19935,["op",19940,1]],[19936,["op",19949,1]],[19937,["op",19948,0]],[19938,["op",19951,1]],[19939,["op",19952,1]],[19941,["op",19928,1]],[19942,["op",19949,0]],[19945,["op",19943,1]],[19947,["op",19945,0]],[19953,["op",19937,1]],[19954,["op",19951,0]],[19956,["op",19979,0]],[19957,["op",19982,0]],[19958,["op",19987,0]],[19959,["op",19984,0]],[19961,["op",19976,0]],[19962,["op",19960,0]],[19963,["op",19985,0]],[19964,["op",19975,0]],[19965,["op",19972,0]],[19966,["op",19978,0]],[19967,["op",19972,1]],[19968,["op",19981,1]],[19969,["op",19980,0]],[19970,["op",19983,1]],[19971,["op",19984,1]],[19973,["op",19960,1]],[19974,["op",19981,0]],[19977,["op",19975,1]],[19979,["op",19977,0]],[19985,["op",19969,1]],[19986,["op",19983,0]],[19988,["op",20011,0]],[19989,["op",20014,0]],[19990,["op",20019,0]],[19991,["op",20016,0]],[19993,["op",20008,0]],[19994,["op",19992,0]],[19995,["op",20017,0]],[19996,["op",20007,0]],[19997,["op",20004,0]],[19998,["op",20010,0]],[19999,["op",20004,1]],[20000,["op",20013,1]],[20001,["op",20012,0]],[20002,["op",20015,1]],[20003,["op",20016,1]],[20005,["op",19992,1]],[20006,["op",20013,0]],[20009,["op",20007,1]],[20011,["op",20009,0]],[20017,["op",20001,1]],[20018,["op",20015,0]],[20020,["op",20043,0]],[20021,["op",20046,0]],[20022,["op",20051,0]],[20023,["op",20048,0]],[20025,["op",20040,0]],[20026,["op",20024,0]],[20027,["op",20049,0]],[20028,["op",20039,0]],[20029,["op",20036,0]],[20030,["op",20042,0]],[20031,["op",20036,1]],[20032,["op",20045,1]],[20033,["op",20044,0]],[20034,["op",20047,1]],[20035,["op",20048,1]],[20037,["op",20024,1]],[20038,["op",20045,0]],[20041,["op",20039,1]],[20043,["op",20041,0]],[20049,["op",20033,1]],[20050,["op",20047,0]],[20052,["op",20075,0]],[20053,["op",20078,0]],[20054,["op",20083,0]],[20055,["op",20080,0]],[20057,["op",20072,0]],[20058,["op",20056,0]],[20059,["op",20081,0]],[20060,["op",20071,0]],[20061,["op",20068,0]],[20062,["op",20074,0]],[20063,["op",20068,1]],[20064,["op",20077,1]],[20065,["op",20076,0]],[20066,["op",20079,1]],[20067,["op",20080,1]],[20069,["op",20056,1]],[20070,["op",20077,0]],[20073,["op",20071,1]],[20075,["op",20073,0]],[20081,["op",20065,1]],[20082,["op",20079,0]],[20084,["op",20107,0]],[20085,["op",20110,0]],[20086,["op",20115,0]],[20087,["op",20112,0]],[20089,["op",20104,0]],[20090,["op",20088,0]],[20091,["op",20113,0]],[20092,["op",20103,0]],[20093,["op",20100,0]],[20094,["op",20106,0]],[20095,["op",20100,1]],[20096,["op",20109,1]],[20097,["op",20108,0]],[20098,["op",20111,1]],[20099,["op",20112,1]],[20101,["op",20088,1]],[20102,["op",20109,0]],[20105,["op",20103,1]],[20107,["op",20105,0]],[20113,["op",20097,1]],[20114,["op",20111,0]],[20116,["op",20139,0]],[20117,["op",20142,0]],[20118,["op",20147,0]],[20119,["op",20144,0]],[20121,["op",20136,0]],[20122,["op",20120,0]],[20123,["op",20145,0]],[20124,["op",20135,0]],[20125,["op",20132,0]],[20126,["op",20138,0]],[20127,["op",20132,1]],[20128,["op",20141,1]],[20129,["op",20140,0]],[20130,["op",20143,1]],[20131,["op",20144,1]],[20133,["op",20120,1]],[20134,["op",20141,0]],[20137,["op",20135,1]],[20139,["op",20137,0]],[20145,["op",20129,1]],[20146,["op",20143,0]],[20148,["op",20171,0]],[20149,["op",20174,0]],[20150,["op",20179,0]],[20151,["op",20176,0]],[20153,["op",20168,0]],[20154,["op",20152,0]],[20155,["op",20177,0]],[20156,["op",20167,0]],[20157,["op",20164,0]],[20158,["op",20170,0]],[20159,["op",20164,1]],[20160,["op",20173,1]],[20161,["op",20172,0]],[20162,["op",20175,1]],[20163,["op",20176,1]],[20165,["op",20152,1]],[20166,["op",20173,0]],[20169,["op",20167,1]],[20171,["op",20169,0]],[20177,["op",20161,1]],[20178,["op",20175,0]],[20180,["op",20203,0]],[20181,["op",20206,0]],[20182,["op",20211,0]],[20183,["op",20208,0]],[20185,["op",20200,0]],[20186,["op",20184,0]],[20187,["op",20209,0]],[20188,["op",20199,0]],[20189,["op",20196,0]],[20190,["op",20202,0]],[20191,["op",20196,1]],[20192,["op",20205,1]],[20193,["op",20204,0]],[20194,["op",20207,1]],[20195,["op",20208,1]],[20197,["op",20184,1]],[20198,["op",20205,0]],[20201,["op",20199,1]],[20203,["op",20201,0]],[20209,["op",20193,1]],[20210,["op",20207,0]],[20212,["op",20235,0]],[20213,["op",20238,0]],[20214,["op",20243,0]],[20215,["op",20240,0]],[20217,["op",20232,0]],[20218,["op",20216,0]],[20219,["op",20241,0]],[20220,["op",20231,0]],[20221,["op",20228,0]],[20222,["op",20234,0]],[20223,["op",20228,1]],[20224,["op",20237,1]],[20225,["op",20236,0]],[20226,["op",20239,1]],[20227,["op",20240,1]],[20229,["op",20216,1]],[20230,["op",20237,0]],[20233,["op",20231,1]],[20235,["op",20233,0]],[20241,["op",20225,1]],[20242,["op",20239,0]],[20244,["op",20267,0]],[20245,["op",20270,0]],[20246,["op",20275,0]],[20247,["op",20272,0]],[20249,["op",20264,0]],[20250,["op",20248,0]],[20251,["op",20273,0]],[20252,["op",20263,0]],[20253,["op",20260,0]],[20254,["op",20266,0]],[20255,["op",20260,1]],[20256,["op",20269,1]],[20257,["op",20268,0]],[20258,["op",20271,1]],[20259,["op",20272,1]],[20261,["op",20248,1]],[20262,["op",20269,0]],[20265,["op",20263,1]],[20267,["op",20265,0]],[20273,["op",20257,1]],[20274,["op",20271,0]],[20276,["op",20299,0]],[20277,["op",20302,0]],[20278,["op",20307,0]],[20279,["op",20304,0]],[20281,["op",20296,0]],[20282,["op",20280,0]],[20283,["op",20305,0]],[20284,["op",20295,0]],[20285,["op",20292,0]],[20286,["op",20298,0]],[20287,["op",20292,1]],[20288,["op",20301,1]],[20289,["op",20300,0]],[20290,["op",20303,1]],[20291,["op",20304,1]],[20293,["op",20280,1]],[20294,["op",20301,0]],[20297,["op",20295,1]],[20299,["op",20297,0]],[20305,["op",20289,1]],[20306,["op",20303,0]],[20308,["op",20331,0]],[20309,["op",20334,0]],[20310,["op",20339,0]],[20311,["op",20336,0]],[20313,["op",20328,0]],[20314,["op",20312,0]],[20315,["op",20337,0]],[20316,["op",20327,0]],[20317,["op",20324,0]],[20318,["op",20330,0]],[20319,["op",20324,1]],[20320,["op",20333,1]],[20321,["op",20332,0]],[20322,["op",20335,1]],[20323,["op",20336,1]],[20325,["op",20312,1]],[20326,["op",20333,0]],[20329,["op",20327,1]],[20331,["op",20329,0]],[20337,["op",20321,1]],[20338,["op",20335,0]],[20340,["op",20363,0]],[20341,["op",20366,0]],[20342,["op",20371,0]],[20343,["op",20368,0]],[20345,["op",20360,0]],[20346,["op",20344,0]],[20347,["op",20369,0]],[20348,["op",20359,0]],[20349,["op",20356,0]],[20350,["op",20362,0]],[20351,["op",20356,1]],[20352,["op",20365,1]],[20353,["op",20364,0]],[20354,["op",20367,1]],[20355,["op",20368,1]],[20357,["op",20344,1]],[20358,["op",20365,0]],[20361,["op",20359,1]],[20363,["op",20361,0]],[20369,["op",20353,1]],[20370,["op",20367,0]],[20372,["op",20395,0]],[20373,["op",20398,0]],[20374,["op",20403,0]],[20375,["op",20400,0]],[20377,["op",20392,0]],[20378,["op",20376,0]],[20379,["op",20401,0]],[20380,["op",20391,0]],[20381,["op",20388,0]],[20382,["op",20394,0]],[20383,["op",20388,1]],[20384,["op",20397,1]],[20385,["op",20396,0]],[20386,["op",20399,1]],[20387,["op",20400,1]],[20389,["op",20376,1]],[20390,["op",20397,0]],[20393,["op",20391,1]],[20395,["op",20393,0]],[20401,["op",20385,1]],[20402,["op",20399,0]],[20404,["op",20427,0]],[20405,["op",20430,0]],[20406,["op",20435,0]],[20407,["op",20432,0]],[20409,["op",20424,0]],[20410,["op",20408,0]],[20411,["op",20433,0]],[20412,["op",20423,0]],[20413,["op",20420,0]],[20414,["op",20426,0]],[20415,["op",20420,1]],[20416,["op",20429,1]],[20417,["op",20428,0]],[20418,["op",20431,1]],[20419,["op",20432,1]],[20421,["op",20408,1]],[20422,["op",20429,0]],[20425,["op",20423,1]],[20427,["op",20425,0]],[20433,["op",20417,1]],[20434,["op",20431,0]],[20436,["op",20459,0]],[20437,["op",20462,0]],[20438,["op",20467,0]],[20439,["op",20464,0]],[20441,["op",20456,0]],[20442,["op",20440,0]],[20443,["op",20465,0]],[20444,["op",20455,0]],[20445,["op",20452,0]],[20446,["op",20458,0]],[20447,["op",20452,1]],[20448,["op",20461,1]],[20449,["op",20460,0]],[20450,["op",20463,1]],[20451,["op",20464,1]],[20453,["op",20440,1]],[20454,["op",20461,0]],[20457,["op",20455,1]],[20459,["op",20457,0]],[20465,["op",20449,1]],[20466,["op",20463,0]],[20468,["op",20491,0]],[20469,["op",20494,0]],[20470,["op",20499,0]],[20471,["op",20496,0]],[20473,["op",20488,0]],[20474,["op",20472,0]],[20475,["op",20497,0]],[20476,["op",20487,0]],[20477,["op",20484,0]],[20478,["op",20490,0]],[20479,["op",20484,1]],[20480,["op",20493,1]],[20481,["op",20492,0]],[20482,["op",20495,1]],[20483,["op",20496,1]],[20485,["op",20472,1]],[20486,["op",20493,0]],[20489,["op",20487,1]],[20491,["op",20489,0]],[20497,["op",20481,1]],[20498,["op",20495,0]],[20500,["op",20523,0]],[20501,["op",20526,0]],[20502,["op",20531,0]],[20503,["op",20528,0]],[20505,["op",20520,0]],[20506,["op",20504,0]],[20507,["op",20529,0]],[20508,["op",20519,0]],[20509,["op",20516,0]],[20510,["op",20522,0]],[20511,["op",20516,1]],[20512,["op",20525,1]],[20513,["op",20524,0]],[20514,["op",20527,1]],[20515,["op",20528,1]],[20517,["op",20504,1]],[20518,["op",20525,0]],[20521,["op",20519,1]],[20523,["op",20521,0]],[20529,["op",20513,1]],[20530,["op",20527,0]],[20532,["op",20555,0]],[20533,["op",20558,0]],[20534,["op",20563,0]],[20535,["op",20560,0]],[20537,["op",20552,0]],[20538,["op",20536,0]],[20539,["op",20561,0]],[20540,["op",20551,0]],[20541,["op",20548,0]],[20542,["op",20554,0]],[20543,["op",20548,1]],[20544,["op",20557,1]],[20545,["op",20556,0]],[20546,["op",20559,1]],[20547,["op",20560,1]],[20549,["op",20536,1]],[20550,["op",20557,0]],[20553,["op",20551,1]],[20555,["op",20553,0]],[20561,["op",20545,1]],[20562,["op",20559,0]],[20564,["op",20587,0]],[20565,["op",20590,0]],[20566,["op",20595,0]],[20567,["op",20592,0]],[20569,["op",20584,0]],[20570,["op",20568,0]],[20571,["op",20593,0]],[20572,["op",20583,0]],[20573,["op",20580,0]],[20574,["op",20586,0]],[20575,["op",20580,1]],[20576,["op",20589,1]],[20577,["op",20588,0]],[20578,["op",20591,1]],[20579,["op",20592,1]],[20581,["op",20568,1]],[20582,["op",20589,0]],[20585,["op",20583,1]],[20587,["op",20585,0]],[20593,["op",20577,1]],[20594,["op",20591,0]],[20596,["op",20619,0]],[20597,["op",20622,0]],[20598,["op",20627,0]],[20599,["op",20624,0]],[20601,["op",20616,0]],[20602,["op",20600,0]],[20603,["op",20625,0]],[20604,["op",20615,0]],[20605,["op",20612,0]],[20606,["op",20618,0]],[20607,["op",20612,1]],[20608,["op",20621,1]],[20609,["op",20620,0]],[20610,["op",20623,1]],[20611,["op",20624,1]],[20613,["op",20600,1]],[20614,["op",20621,0]],[20617,["op",20615,1]],[20619,["op",20617,0]],[20625,["op",20609,1]],[20626,["op",20623,0]],[20628,["op",20651,0]],[20629,["op",20654,0]],[20630,["op",20659,0]],[20631,["op",20656,0]],[20633,["op",20648,0]],[20634,["op",20632,0]],[20635,["op",20657,0]],[20636,["op",20647,0]],[20637,["op",20644,0]],[20638,["op",20650,0]],[20639,["op",20644,1]],[20640,["op",20653,1]],[20641,["op",20652,0]],[20642,["op",20655,1]],[20643,["op",20656,1]],[20645,["op",20632,1]],[20646,["op",20653,0]],[20649,["op",20647,1]],[20651,["op",20649,0]],[20657,["op",20641,1]],[20658,["op",20655,0]],[20660,["op",20683,0]],[20661,["op",20686,0]],[20662,["op",20691,0]],[20663,["op",20688,0]],[20665,["op",20680,0]],[20666,["op",20664,0]],[20667,["op",20689,0]],[20668,["op",20679,0]],[20669,["op",20676,0]],[20670,["op",20682,0]],[20671,["op",20676,1]],[20672,["op",20685,1]],[20673,["op",20684,0]],[20674,["op",20687,1]],[20675,["op",20688,1]],[20677,["op",20664,1]],[20678,["op",20685,0]],[20681,["op",20679,1]],[20683,["op",20681,0]],[20689,["op",20673,1]],[20690,["op",20687,0]],[20692,["op",20715,0]],[20693,["op",20718,0]],[20694,["op",20723,0]],[20695,["op",20720,0]],[20697,["op",20712,0]],[20698,["op",20696,0]],[20699,["op",20721,0]],[20700,["op",20711,0]],[20701,["op",20708,0]],[20702,["op",20714,0]],[20703,["op",20708,1]],[20704,["op",20717,1]],[20705,["op",20716,0]],[20706,["op",20719,1]],[20707,["op",20720,1]],[20709,["op",20696,1]],[20710,["op",20717,0]],[20713,["op",20711,1]],[20715,["op",20713,0]],[20721,["op",20705,1]],[20722,["op",20719,0]],[20724,["op",20747,0]],[20725,["op",20750,0]],[20726,["op",20755,0]],[20727,["op",20752,0]],[20729,["op",20744,0]],[20730,["op",20728,0]],[20731,["op",20753,0]],[20732,["op",20743,0]],[20733,["op",20740,0]],[20734,["op",20746,0]],[20735,["op",20740,1]],[20736,["op",20749,1]],[20737,["op",20748,0]],[20738,["op",20751,1]],[20739,["op",20752,1]],[20741,["op",20728,1]],[20742,["op",20749,0]],[20745,["op",20743,1]],[20747,["op",20745,0]],[20753,["op",20737,1]],[20754,["op",20751,0]],[20756,["op",20779,0]],[20757,["op",20782,0]],[20758,["op",20787,0]],[20759,["op",20784,0]],[20761,["op",20776,0]],[20762,["op",20760,0]],[20763,["op",20785,0]],[20764,["op",20775,0]],[20765,["op",20772,0]],[20766,["op",20778,0]],[20767,["op",20772,1]],[20768,["op",20781,1]],[20769,["op",20780,0]],[20770,["op",20783,1]],[20771,["op",20784,1]],[20773,["op",20760,1]],[20774,["op",20781,0]],[20777,["op",20775,1]],[20779,["op",20777,0]],[20785,["op",20769,1]],[20786,["op",20783,0]],[20788,["op",20811,0]],[20789,["op",20814,0]],[20790,["op",20819,0]],[20791,["op",20816,0]],[20793,["op",20808,0]],[20794,["op",20792,0]],[20795,["op",20817,0]],[20796,["op",20807,0]],[20797,["op",20804,0]],[20798,["op",20810,0]],[20799,["op",20804,1]],[20800,["op",20813,1]],[20801,["op",20812,0]],[20802,["op",20815,1]],[20803,["op",20816,1]],[20805,["op",20792,1]],[20806,["op",20813,0]],[20809,["op",20807,1]],[20811,["op",20809,0]],[20817,["op",20801,1]],[20818,["op",20815,0]],[20820,["op",20843,0]],[20821,["op",20846,0]],[20822,["op",20851,0]],[20823,["op",20848,0]],[20825,["op",20840,0]],[20826,["op",20824,0]],[20827,["op",20849,0]],[20828,["op",20839,0]],[20829,["op",20836,0]],[20830,["op",20842,0]],[20831,["op",20836,1]],[20832,["op",20845,1]],[20833,["op",20844,0]],[20834,["op",20847,1]],[20835,["op",20848,1]],[20837,["op",20824,1]],[20838,["op",20845,0]],[20841,["op",20839,1]],[20843,["op",20841,0]],[20849,["op",20833,1]],[20850,["op",20847,0]],[20852,["op",20875,0]],[20853,["op",20878,0]],[20854,["op",20883,0]],[20855,["op",20880,0]],[20857,["op",20872,0]],[20858,["op",20856,0]],[20859,["op",20881,0]],[20860,["op",20871,0]],[20861,["op",20868,0]],[20862,["op",20874,0]],[20863,["op",20868,1]],[20864,["op",20877,1]],[20865,["op",20876,0]],[20866,["op",20879,1]],[20867,["op",20880,1]],[20869,["op",20856,1]],[20870,["op",20877,0]],[20873,["op",20871,1]],[20875,["op",20873,0]],[20881,["op",20865,1]],[20882,["op",20879,0]],[20884,["op",20907,0]],[20885,["op",20910,0]],[20886,["op",20915,0]],[20887,["op",20912,0]],[20889,["op",20904,0]],[20890,["op",20888,0]],[20891,["op",20913,0]],[20892,["op",20903,0]],[20893,["op",20900,0]],[20894,["op",20906,0]],[20895,["op",20900,1]],[20896,["op",20909,1]],[20897,["op",20908,0]],[20898,["op",20911,1]],[20899,["op",20912,1]],[20901,["op",20888,1]],[20902,["op",20909,0]],[20905,["op",20903,1]],[20907,["op",20905,0]],[20913,["op",20897,1]],[20914,["op",20911,0]],[20916,["op",20939,0]],[20917,["op",20942,0]],[20918,["op",20947,0]],[20919,["op",20944,0]],[20921,["op",20936,0]],[20922,["op",20920,0]],[20923,["op",20945,0]],[20924,["op",20935,0]],[20925,["op",20932,0]],[20926,["op",20938,0]],[20927,["op",20932,1]],[20928,["op",20941,1]],[20929,["op",20940,0]],[20930,["op",20943,1]],[20931,["op",20944,1]],[20933,["op",20920,1]],[20934,["op",20941,0]],[20937,["op",20935,1]],[20939,["op",20937,0]],[20945,["op",20929,1]],[20946,["op",20943,0]],[20948,["op",20971,0]],[20949,["op",20974,0]],[20950,["op",20979,0]],[20951,["op",20976,0]],[20953,["op",20968,0]],[20954,["op",20952,0]],[20955,["op",20977,0]],[20956,["op",20967,0]],[20957,["op",20964,0]],[20958,["op",20970,0]],[20959,["op",20964,1]],[20960,["op",20973,1]],[20961,["op",20972,0]],[20962,["op",20975,1]],[20963,["op",20976,1]],[20965,["op",20952,1]],[20966,["op",20973,0]],[20969,["op",20967,1]],[20971,["op",20969,0]],[20977,["op",20961,1]],[20978,["op",20975,0]],[20980,["op",21003,0]],[20981,["op",21006,0]],[20982,["op",21011,0]],[20983,["op",21008,0]],[20985,["op",21000,0]],[20986,["op",20984,0]],[20987,["op",21009,0]],[20988,["op",20999,0]],[20989,["op",20996,0]],[20990,["op",21002,0]],[20991,["op",20996,1]],[20992,["op",21005,1]],[20993,["op",21004,0]],[20994,["op",21007,1]],[20995,["op",21008,1]],[20997,["op",20984,1]],[20998,["op",21005,0]],[21001,["op",20999,1]],[21003,["op",21001,0]],[21009,["op",20993,1]],[21010,["op",21007,0]],[21012,["op",21035,0]],[21013,["op",21038,0]],[21014,["op",21043,0]],[21015,["op",21040,0]],[21017,["op",21032,0]],[21018,["op",21016,0]],[21019,["op",21041,0]],[21020,["op",21031,0]],[21021,["op",21028,0]],[21022,["op",21034,0]],[21023,["op",21028,1]],[21024,["op",21037,1]],[21025,["op",21036,0]],[21026,["op",21039,1]],[21027,["op",21040,1]],[21029,["op",21016,1]],[21030,["op",21037,0]],[21033,["op",21031,1]],[21035,["op",21033,0]],[21041,["op",21025,1]],[21042,["op",21039,0]],[21044,["op",21067,0]],[21045,["op",21070,0]],[21046,["op",21075,0]],[21047,["op",21072,0]],[21049,["op",21064,0]],[21050,["op",21048,0]],[21051,["op",21073,0]],[21052,["op",21063,0]],[21053,["op",21060,0]],[21054,["op",21066,0]],[21055,["op",21060,1]],[21056,["op",21069,1]],[21057,["op",21068,0]],[21058,["op",21071,1]],[21059,["op",21072,1]],[21061,["op",21048,1]],[21062,["op",21069,0]],[21065,["op",21063,1]],[21067,["op",21065,0]],[21073,["op",21057,1]],[21074,["op",21071,0]],[21076,["op",21099,0]],[21077,["op",21102,0]],[21078,["op",21107,0]],[21079,["op",21104,0]],[21081,["op",21096,0]],[21082,["op",21080,0]],[21083,["op",21105,0]],[21084,["op",21095,0]],[21085,["op",21092,0]],[21086,["op",21098,0]],[21087,["op",21092,1]],[21088,["op",21101,1]],[21089,["op",21100,0]],[21090,["op",21103,1]],[21091,["op",21104,1]],[21093,["op",21080,1]],[21094,["op",21101,0]],[21097,["op",21095,1]],[21099,["op",21097,0]],[21105,["op",21089,1]],[21106,["op",21103,0]],[21108,["op",21131,0]],[21109,["op",21134,0]],[21110,["op",21139,0]],[21111,["op",21136,0]],[21113,["op",21128,0]],[21114,["op",21112,0]],[21115,["op",21137,0]],[21116,["op",21127,0]],[21117,["op",21124,0]],[21118,["op",21130,0]],[21119,["op",21124,1]],[21120,["op",21133,1]],[21121,["op",21132,0]],[21122,["op",21135,1]],[21123,["op",21136,1]],[21125,["op",21112,1]],[21126,["op",21133,0]],[21129,["op",21127,1]],[21131,["op",21129,0]],[21137,["op",21121,1]],[21138,["op",21135,0]],[21140,["op",21163,0]],[21141,["op",21166,0]],[21142,["op",21171,0]],[21143,["op",21168,0]],[21145,["op",21160,0]],[21146,["op",21144,0]],[21147,["op",21169,0]],[21148,["op",21159,0]],[21149,["op",21156,0]],[21150,["op",21162,0]],[21151,["op",21156,1]],[21152,["op",21165,1]],[21153,["op",21164,0]],[21154,["op",21167,1]],[21155,["op",21168,1]],[21157,["op",21144,1]],[21158,["op",21165,0]],[21161,["op",21159,1]],[21163,["op",21161,0]],[21169,["op",21153,1]],[21170,["op",21167,0]],[21172,["op",21195,0]],[21173,["op",21198,0]],[21174,["op",21203,0]],[21175,["op",21200,0]],[21177,["op",21192,0]],[21178,["op",21176,0]],[21179,["op",21201,0]],[21180,["op",21191,0]],[21181,["op",21188,0]],[21182,["op",21194,0]],[21183,["op",21188,1]],[21184,["op",21197,1]],[21185,["op",21196,0]],[21186,["op",21199,1]],[21187,["op",21200,1]],[21189,["op",21176,1]],[21190,["op",21197,0]],[21193,["op",21191,1]],[21195,["op",21193,0]],[21201,["op",21185,1]],[21202,["op",21199,0]],[21204,["op",21227,0]],[21205,["op",21230,0]],[21206,["op",21235,0]],[21207,["op",21232,0]],[21209,["op",21224,0]],[21210,["op",21208,0]],[21211,["op",21233,0]],[21212,["op",21223,0]],[21213,["op",21220,0]],[21214,["op",21226,0]],[21215,["op",21220,1]],[21216,["op",21229,1]],[21217,["op",21228,0]],[21218,["op",21231,1]],[21219,["op",21232,1]],[21221,["op",21208,1]],[21222,["op",21229,0]],[21225,["op",21223,1]],[21227,["op",21225,0]],[21233,["op",21217,1]],[21234,["op",21231,0]],[21236,["op",21259,0]],[21237,["op",21262,0]],[21238,["op",21267,0]],[21239,["op",21264,0]],[21241,["op",21256,0]],[21242,["op",21240,0]],[21243,["op",21265,0]],[21244,["op",21255,0]],[21245,["op",21252,0]],[21246,["op",21258,0]],[21247,["op",21252,1]],[21248,["op",21261,1]],[21249,["op",21260,0]],[21250,["op",21263,1]],[21251,["op",21264,1]],[21253,["op",21240,1]],[21254,["op",21261,0]],[21257,["op",21255,1]],[21259,["op",21257,0]],[21265,["op",21249,1]],[21266,["op",21263,0]],[21268,["op",21291,0]],[21269,["op",21294,0]],[21270,["op",21299,0]],[21271,["op",21296,0]],[21273,["op",21288,0]],[21274,["op",21272,0]],[21275,["op",21297,0]],[21276,["op",21287,0]],[21277,["op",21284,0]],[21278,["op",21290,0]],[21279,["op",21284,1]],[21280,["op",21293,1]],[21281,["op",21292,0]],[21282,["op",21295,1]],[21283,["op",21296,1]],[21285,["op",21272,1]],[21286,["op",21293,0]],[21289,["op",21287,1]],[21291,["op",21289,0]],[21297,["op",21281,1]],[21298,["op",21295,0]],[21300,["op",21323,0]],[21301,["op",21326,0]],[21302,["op",21331,0]],[21303,["op",21328,0]],[21305,["op",21320,0]],[21306,["op",21304,0]],[21307,["op",21329,0]],[21308,["op",21319,0]],[21309,["op",21316,0]],[21310,["op",21322,0]],[21311,["op",21316,1]],[21312,["op",21325,1]],[21313,["op",21324,0]],[21314,["op",21327,1]],[21315,["op",21328,1]],[21317,["op",21304,1]],[21318,["op",21325,0]],[21321,["op",21319,1]],[21323,["op",21321,0]],[21329,["op",21313,1]],[21330,["op",21327,0]],[21332,["op",21355,0]],[21333,["op",21358,0]],[21334,["op",21363,0]],[21335,["op",21360,0]],[21337,["op",21352,0]],[21338,["op",21336,0]],[21339,["op",21361,0]],[21340,["op",21351,0]],[21341,["op",21348,0]],[21342,["op",21354,0]],[21343,["op",21348,1]],[21344,["op",21357,1]],[21345,["op",21356,0]],[21346,["op",21359,1]],[21347,["op",21360,1]],[21349,["op",21336,1]],[21350,["op",21357,0]],[21353,["op",21351,1]],[21355,["op",21353,0]],[21361,["op",21345,1]],[21362,["op",21359,0]],[21364,["op",21387,0]],[21365,["op",21390,0]],[21366,["op",21395,0]],[21367,["op",21392,0]],[21369,["op",21384,0]],[21370,["op",21368,0]],[21371,["op",21393,0]],[21372,["op",21383,0]],[21373,["op",21380,0]],[21374,["op",21386,0]],[21375,["op",21380,1]],[21376,["op",21389,1]],[21377,["op",21388,0]],[21378,["op",21391,1]],[21379,["op",21392,1]],[21381,["op",21368,1]],[21382,["op",21389,0]],[21385,["op",21383,1]],[21387,["op",21385,0]],[21393,["op",21377,1]],[21394,["op",21391,0]],[21396,["op",21419,0]],[21397,["op",21422,0]],[21398,["op",21427,0]],[21399,["op",21424,0]],[21401,["op",21416,0]],[21402,["op",21400,0]],[21403,["op",21425,0]],[21404,["op",21415,0]],[21405,["op",21412,0]],[21406,["op",21418,0]],[21407,["op",21412,1]],[21408,["op",21421,1]],[21409,["op",21420,0]],[21410,["op",21423,1]],[21411,["op",21424,1]],[21413,["op",21400,1]],[21414,["op",21421,0]],[21417,["op",21415,1]],[21419,["op",21417,0]],[21425,["op",21409,1]],[21426,["op",21423,0]],[21428,["op",21451,0]],[21429,["op",21454,0]],[21430,["op",21459,0]],[21431,["op",21456,0]],[21433,["op",21448,0]],[21434,["op",21432,0]],[21435,["op",21457,0]],[21436,["op",21447,0]],[21437,["op",21444,0]],[21438,["op",21450,0]],[21439,["op",21444,1]],[21440,["op",21453,1]],[21441,["op",21452,0]],[21442,["op",21455,1]],[21443,["op",21456,1]],[21445,["op",21432,1]],[21446,["op",21453,0]],[21449,["op",21447,1]],[21451,["op",21449,0]],[21457,["op",21441,1]],[21458,["op",21455,0]],[21460,["op",21483,0]],[21461,["op",21486,0]],[21462,["op",21491,0]],[21463,["op",21488,0]],[21465,["op",21480,0]],[21466,["op",21464,0]],[21467,["op",21489,0]],[21468,["op",21479,0]],[21469,["op",21476,0]],[21470,["op",21482,0]],[21471,["op",21476,1]],[21472,["op",21485,1]],[21473,["op",21484,0]],[21474,["op",21487,1]],[21475,["op",21488,1]],[21477,["op",21464,1]],[21478,["op",21485,0]],[21481,["op",21479,1]],[21483,["op",21481,0]],[21489,["op",21473,1]],[21490,["op",21487,0]],[21492,["op",21515,0]],[21493,["op",21518,0]],[21494,["op",21523,0]],[21495,["op",21520,0]],[21497,["op",21512,0]],[21498,["op",21496,0]],[21499,["op",21521,0]],[21500,["op",21511,0]],[21501,["op",21508,0]],[21502,["op",21514,0]],[21503,["op",21508,1]],[21504,["op",21517,1]],[21505,["op",21516,0]],[21506,["op",21519,1]],[21507,["op",21520,1]],[21509,["op",21496,1]],[21510,["op",21517,0]],[21513,["op",21511,1]],[21515,["op",21513,0]],[21521,["op",21505,1]],[21522,["op",21519,0]],[21524,["op",21547,0]],[21525,["op",21550,0]],[21526,["op",21555,0]],[21527,["op",21552,0]],[21529,["op",21544,0]],[21530,["op",21528,0]],[21531,["op",21553,0]],[21532,["op",21543,0]],[21533,["op",21540,0]],[21534,["op",21546,0]],[21535,["op",21540,1]],[21536,["op",21549,1]],[21537,["op",21548,0]],[21538,["op",21551,1]],[21539,["op",21552,1]],[21541,["op",21528,1]],[21542,["op",21549,0]],[21545,["op",21543,1]],[21547,["op",21545,0]],[21553,["op",21537,1]],[21554,["op",21551,0]],[21556,["op",21579,0]],[21557,["op",21582,0]],[21558,["op",21587,0]],[21559,["op",21584,0]],[21561,["op",21576,0]],[21562,["op",21560,0]],[21563,["op",21585,0]],[21564,["op",21575,0]],[21565,["op",21572,0]],[21566,["op",21578,0]],[21567,["op",21572,1]],[21568,["op",21581,1]],[21569,["op",21580,0]],[21570,["op",21583,1]],[21571,["op",21584,1]],[21573,["op",21560,1]],[21574,["op",21581,0]],[21577,["op",21575,1]],[21579,["op",21577,0]],[21585,["op",21569,1]],[21586,["op",21583,0]],[21588,["op",21611,0]],[21589,["op",21614,0]],[21590,["op",21619,0]],[21591,["op",21616,0]],[21593,["op",21608,0]],[21594,["op",21592,0]],[21595,["op",21617,0]],[21596,["op",21607,0]],[21597,["op",21604,0]],[21598,["op",21610,0]],[21599,["op",21604,1]],[21600,["op",21613,1]],[21601,["op",21612,0]],[21602,["op",21615,1]],[21603,["op",21616,1]],[21605,["op",21592,1]],[21606,["op",21613,0]],[21609,["op",21607,1]],[21611,["op",21609,0]],[21617,["op",21601,1]],[21618,["op",21615,0]],[21620,["op",21643,0]],[21621,["op",21646,0]],[21622,["op",21651,0]],[21623,["op",21648,0]],[21625,["op",21640,0]],[21626,["op",21624,0]],[21627,["op",21649,0]],[21628,["op",21639,0]],[21629,["op",21636,0]],[21630,["op",21642,0]],[21631,["op",21636,1]],[21632,["op",21645,1]],[21633,["op",21644,0]],[21634,["op",21647,1]],[21635,["op",21648,1]],[21637,["op",21624,1]],[21638,["op",21645,0]],[21641,["op",21639,1]],[21643,["op",21641,0]],[21649,["op",21633,1]],[21650,["op",21647,0]],[21652,["op",21675,0]],[21653,["op",21678,0]],[21654,["op",21683,0]],[21655,["op",21680,0]],[21657,["op",21672,0]],[21658,["op",21656,0]],[21659,["op",21681,0]],[21660,["op",21671,0]],[21661,["op",21668,0]],[21662,["op",21674,0]],[21663,["op",21668,1]],[21664,["op",21677,1]],[21665,["op",21676,0]],[21666,["op",21679,1]],[21667,["op",21680,1]],[21669,["op",21656,1]],[21670,["op",21677,0]],[21673,["op",21671,1]],[21675,["op",21673,0]],[21681,["op",21665,1]],[21682,["op",21679,0]],[21684,["op",21707,0]],[21685,["op",21710,0]],[21686,["op",21715,0]],[21687,["op",21712,0]],[21689,["op",21704,0]],[21690,["op",21688,0]],[21691,["op",21713,0]],[21692,["op",21703,0]],[21693,["op",21700,0]],[21694,["op",21706,0]],[21695,["op",21700,1]],[21696,["op",21709,1]],[21697,["op",21708,0]],[21698,["op",21711,1]],[21699,["op",21712,1]],[21701,["op",21688,1]],[21702,["op",21709,0]],[21705,["op",21703,1]],[21707,["op",21705,0]],[21713,["op",21697,1]],[21714,["op",21711,0]],[21716,["op",21739,0]],[21717,["op",21742,0]],[21718,["op",21747,0]],[21719,["op",21744,0]],[21721,["op",21736,0]],[21722,["op",21720,0]],[21723,["op",21745,0]],[21724,["op",21735,0]],[21725,["op",21732,0]],[21726,["op",21738,0]],[21727,["op",21732,1]],[21728,["op",21741,1]],[21729,["op",21740,0]],[21730,["op",21743,1]],[21731,["op",21744,1]],[21733,["op",21720,1]],[21734,["op",21741,0]],[21737,["op",21735,1]],[21739,["op",21737,0]],[21745,["op",21729,1]],[21746,["op",21743,0]],[21748,["op",21771,0]],[21749,["op",21774,0]],[21750,["op",21779,0]],[21751,["op",21776,0]],[21753,["op",21768,0]],[21754,["op",21752,0]],[21755,["op",21777,0]],[21756,["op",21767,0]],[21757,["op",21764,0]],[21758,["op",21770,0]],[21759,["op",21764,1]],[21760,["op",21773,1]],[21761,["op",21772,0]],[21762,["op",21775,1]],[21763,["op",21776,1]],[21765,["op",21752,1]],[21766,["op",21773,0]],[21769,["op",21767,1]],[21771,["op",21769,0]],[21777,["op",21761,1]],[21778,["op",21775,0]],[21780,["op",21803,0]],[21781,["op",21806,0]],[21782,["op",21811,0]],[21783,["op",21808,0]],[21785,["op",21800,0]],[21786,["op",21784,0]],[21787,["op",21809,0]],[21788,["op",21799,0]],[21789,["op",21796,0]],[21790,["op",21802,0]],[21791,["op",21796,1]],[21792,["op",21805,1]],[21793,["op",21804,0]],[21794,["op",21807,1]],[21795,["op",21808,1]],[21797,["op",21784,1]],[21798,["op",21805,0]],[21801,["op",21799,1]],[21803,["op",21801,0]],[21809,["op",21793,1]],[21810,["op",21807,0]],[21812,["op",21835,0]],[21813,["op",21838,0]],[21814,["op",21843,0]],[21815,["op",21840,0]],[21817,["op",21832,0]],[21818,["op",21816,0]],[21819,["op",21841,0]],[21820,["op",21831,0]],[21821,["op",21828,0]],[21822,["op",21834,0]],[21823,["op",21828,1]],[21824,["op",21837,1]],[21825,["op",21836,0]],[21826,["op",21839,1]],[21827,["op",21840,1]],[21829,["op",21816,1]],[21830,["op",21837,0]],[21833,["op",21831,1]],[21835,["op",21833,0]],[21841,["op",21825,1]],[21842,["op",21839,0]],[21844,["op",21867,0]],[21845,["op",21870,0]],[21846,["op",21875,0]],[21847,["op",21872,0]],[21849,["op",21864,0]],[21850,["op",21848,0]],[21851,["op",21873,0]],[21852,["op",21863,0]],[21853,["op",21860,0]],[21854,["op",21866,0]],[21855,["op",21860,1]],[21856,["op",21869,1]],[21857,["op",21868,0]],[21858,["op",21871,1]],[21859,["op",21872,1]],[21861,["op",21848,1]],[21862,["op",21869,0]],[21865,["op",21863,1]],[21867,["op",21865,0]],[21873,["op",21857,1]],[21874,["op",21871,0]],[21876,["op",21899,0]],[21877,["op",21902,0]],[21878,["op",21907,0]],[21879,["op",21904,0]],[21881,["op",21896,0]],[21882,["op",21880,0]],[21883,["op",21905,0]],[21884,["op",21895,0]],[21885,["op",21892,0]],[21886,["op",21898,0]],[21887,["op",21892,1]],[21888,["op",21901,1]],[21889,["op",21900,0]],[21890,["op",21903,1]],[21891,["op",21904,1]],[21893,["op",21880,1]],[21894,["op",21901,0]],[21897,["op",21895,1]],[21899,["op",21897,0]],[21905,["op",21889,1]],[21906,["op",21903,0]],[21908,["op",21931,0]],[21909,["op",21934,0]],[21910,["op",21939,0]],[21911,["op",21936,0]],[21913,["op",21928,0]],[21914,["op",21912,0]],[21915,["op",21937,0]],[21916,["op",21927,0]],[21917,["op",21924,0]],[21918,["op",21930,0]],[21919,["op",21924,1]],[21920,["op",21933,1]],[21921,["op",21932,0]],[21922,["op",21935,1]],[21923,["op",21936,1]],[21925,["op",21912,1]],[21926,["op",21933,0]],[21929,["op",21927,1]],[21931,["op",21929,0]],[21937,["op",21921,1]],[21938,["op",21935,0]],[21940,["op",21963,0]],[21941,["op",21966,0]],[21942,["op",21971,0]],[21943,["op",21968,0]],[21945,["op",21960,0]],[21946,["op",21944,0]],[21947,["op",21969,0]],[21948,["op",21959,0]],[21949,["op",21956,0]],[21950,["op",21962,0]],[21951,["op",21956,1]],[21952,["op",21965,1]],[21953,["op",21964,0]],[21954,["op",21967,1]],[21955,["op",21968,1]],[21957,["op",21944,1]],[21958,["op",21965,0]],[21961,["op",21959,1]],[21963,["op",21961,0]],[21969,["op",21953,1]],[21970,["op",21967,0]],[21972,["op",21995,0]],[21973,["op",21998,0]],[21974,["op",22003,0]],[21975,["op",22000,0]],[21977,["op",21992,0]],[21978,["op",21976,0]],[21979,["op",22001,0]],[21980,["op",21991,0]],[21981,["op",21988,0]],[21982,["op",21994,0]],[21983,["op",21988,1]],[21984,["op",21997,1]],[21985,["op",21996,0]],[21986,["op",21999,1]],[21987,["op",22000,1]],[21989,["op",21976,1]],[21990,["op",21997,0]],[21993,["op",21991,1]],[21995,["op",21993,0]],[22001,["op",21985,1]],[22002,["op",21999,0]],[22004,["op",22027,0]],[22005,["op",22030,0]],[22006,["op",22035,0]],[22007,["op",22032,0]],[22009,["op",22024,0]],[22010,["op",22008,0]],[22011,["op",22033,0]],[22012,["op",22023,0]],[22013,["op",22020,0]],[22014,["op",22026,0]],[22015,["op",22020,1]],[22016,["op",22029,1]],[22017,["op",22028,0]],[22018,["op",22031,1]],[22019,["op",22032,1]],[22021,["op",22008,1]],[22022,["op",22029,0]],[22025,["op",22023,1]],[22027,["op",22025,0]],[22033,["op",22017,1]],[22034,["op",22031,0]],[22036,["op",22059,0]],[22037,["op",22062,0]],[22038,["op",22067,0]],[22039,["op",22064,0]],[22041,["op",22056,0]],[22042,["op",22040,0]],[22043,["op",22065,0]],[22044,["op",22055,0]],[22045,["op",22052,0]],[22046,["op",22058,0]],[22047,["op",22052,1]],[22048,["op",22061,1]],[22049,["op",22060,0]],[22050,["op",22063,1]],[22051,["op",22064,1]],[22053,["op",22040,1]],[22054,["op",22061,0]],[22057,["op",22055,1]],[22059,["op",22057,0]],[22065,["op",22049,1]],[22066,["op",22063,0]],[22068,["op",22091,0]],[22069,["op",22094,0]],[22070,["op",22099,0]],[22071,["op",22096,0]],[22073,["op",22088,0]],[22074,["op",22072,0]],[22075,["op",22097,0]],[22076,["op",22087,0]],[22077,["op",22084,0]],[22078,["op",22090,0]],[22079,["op",22084,1]],[22080,["op",22093,1]],[22081,["op",22092,0]],[22082,["op",22095,1]],[22083,["op",22096,1]],[22085,["op",22072,1]],[22086,["op",22093,0]],[22089,["op",22087,1]],[22091,["op",22089,0]],[22097,["op",22081,1]],[22098,["op",22095,0]],[22100,["op",22123,0]],[22101,["op",22126,0]],[22102,["op",22131,0]],[22103,["op",22128,0]],[22105,["op",22120,0]],[22106,["op",22104,0]],[22107,["op",22129,0]],[22108,["op",22119,0]],[22109,["op",22116,0]],[22110,["op",22122,0]],[22111,["op",22116,1]],[22112,["op",22125,1]],[22113,["op",22124,0]],[22114,["op",22127,1]],[22115,["op",22128,1]],[22117,["op",22104,1]],[22118,["op",22125,0]],[22121,["op",22119,1]],[22123,["op",22121,0]],[22129,["op",22113,1]],[22130,["op",22127,0]],[22132,["op",22155,0]],[22133,["op",22158,0]],[22134,["op",22163,0]],[22135,["op",22160,0]],[22137,["op",22152,0]],[22138,["op",22136,0]],[22139,["op",22161,0]],[22140,["op",22151,0]],[22141,["op",22148,0]],[22142,["op",22154,0]],[22143,["op",22148,1]],[22144,["op",22157,1]],[22145,["op",22156,0]],[22146,["op",22159,1]],[22147,["op",22160,1]],[22149,["op",22136,1]],[22150,["op",22157,0]],[22153,["op",22151,1]],[22155,["op",22153,0]],[22161,["op",22145,1]],[22162,["op",22159,0]],[22164,["op",22187,0]],[22165,["op",22190,0]],[22166,["op",22195,0]],[22167,["op",22192,0]],[22169,["op",22184,0]],[22170,["op",22168,0]],[22171,["op",22193,0]],[22172,["op",22183,0]],[22173,["op",22180,0]],[22174,["op",22186,0]],[22175,["op",22180,1]],[22176,["op",22189,1]],[22177,["op",22188,0]],[22178,["op",22191,1]],[22179,["op",22192,1]],[22181,["op",22168,1]],[22182,["op",22189,0]],[22185,["op",22183,1]],[22187,["op",22185,0]],[22193,["op",22177,1]],[22194,["op",22191,0]],[22196,["op",22219,0]],[22197,["op",22222,0]],[22198,["op",22227,0]],[22199,["op",22224,0]],[22201,["op",22216,0]],[22202,["op",22200,0]],[22203,["op",22225,0]],[22204,["op",22215,0]],[22205,["op",22212,0]],[22206,["op",22218,0]],[22207,["op",22212,1]],[22208,["op",22221,1]],[22209,["op",22220,0]],[22210,["op",22223,1]],[22211,["op",22224,1]],[22213,["op",22200,1]],[22214,["op",22221,0]],[22217,["op",22215,1]],[22219,["op",22217,0]],[22225,["op",22209,1]],[22226,["op",22223,0]],[22228,["op",22251,0]],[22229,["op",22254,0]],[22230,["op",22259,0]],[22231,["op",22256,0]],[22233,["op",22248,0]],[22234,["op",22232,0]],[22235,["op",22257,0]],[22236,["op",22247,0]],[22237,["op",22244,0]],[22238,["op",22250,0]],[22239,["op",22244,1]],[22240,["op",22253,1]],[22241,["op",22252,0]],[22242,["op",22255,1]],[22243,["op",22256,1]],[22245,["op",22232,1]],[22246,["op",22253,0]],[22249,["op",22247,1]],[22251,["op",22249,0]],[22257,["op",22241,1]],[22258,["op",22255,0]],[22260,["op",22283,0]],[22261,["op",22286,0]],[22262,["op",22291,0]],[22263,["op",22288,0]],[22265,["op",22280,0]],[22266,["op",22264,0]],[22267,["op",22289,0]],[22268,["op",22279,0]],[22269,["op",22276,0]],[22270,["op",22282,0]],[22271,["op",22276,1]],[22272,["op",22285,1]],[22273,["op",22284,0]],[22274,["op",22287,1]],[22275,["op",22288,1]],[22277,["op",22264,1]],[22278,["op",22285,0]],[22281,["op",22279,1]],[22283,["op",22281,0]],[22289,["op",22273,1]],[22290,["op",22287,0]],[22292,["op",22315,0]],[22293,["op",22318,0]],[22294,["op",22323,0]],[22295,["op",22320,0]],[22297,["op",22312,0]],[22298,["op",22296,0]],[22299,["op",22321,0]],[22300,["op",22311,0]],[22301,["op",22308,0]],[22302,["op",22314,0]],[22303,["op",22308,1]],[22304,["op",22317,1]],[22305,["op",22316,0]],[22306,["op",22319,1]],[22307,["op",22320,1]],[22309,["op",22296,1]],[22310,["op",22317,0]],[22313,["op",22311,1]],[22315,["op",22313,0]],[22321,["op",22305,1]],[22322,["op",22319,0]],[22324,["op",22347,0]],[22325,["op",22350,0]],[22326,["op",22355,0]],[22327,["op",22352,0]],[22329,["op",22344,0]],[22330,["op",22328,0]],[22331,["op",22353,0]],[22332,["op",22343,0]],[22333,["op",22340,0]],[22334,["op",22346,0]],[22335,["op",22340,1]],[22336,["op",22349,1]],[22337,["op",22348,0]],[22338,["op",22351,1]],[22339,["op",22352,1]],[22341,["op",22328,1]],[22342,["op",22349,0]],[22345,["op",22343,1]],[22347,["op",22345,0]],[22353,["op",22337,1]],[22354,["op",22351,0]],[22356,["op",22379,0]],[22357,["op",22382,0]],[22358,["op",22387,0]],[22359,["op",22384,0]],[22361,["op",22376,0]],[22362,["op",22360,0]],[22363,["op",22385,0]],[22364,["op",22375,0]],[22365,["op",22372,0]],[22366,["op",22378,0]],[22367,["op",22372,1]],[22368,["op",22381,1]],[22369,["op",22380,0]],[22370,["op",22383,1]],[22371,["op",22384,1]],[22373,["op",22360,1]],[22374,["op",22381,0]],[22377,["op",22375,1]],[22379,["op",22377,0]],[22385,["op",22369,1]],[22386,["op",22383,0]],[22388,["op",22411,0]],[22389,["op",22414,0]],[22390,["op",22419,0]],[22391,["op",22416,0]],[22393,["op",22408,0]],[22394,["op",22392,0]],[22395,["op",22417,0]],[22396,["op",22407,0]],[22397,["op",22404,0]],[22398,["op",22410,0]],[22399,["op",22404,1]],[22400,["op",22413,1]],[22401,["op",22412,0]],[22402,["op",22415,1]],[22403,["op",22416,1]],[22405,["op",22392,1]],[22406,["op",22413,0]],[22409,["op",22407,1]],[22411,["op",22409,0]],[22417,["op",22401,1]],[22418,["op",22415,0]],[22420,["op",22443,0]],[22421,["op",22446,0]],[22422,["op",22451,0]],[22423,["op",22448,0]],[22425,["op",22440,0]],[22426,["op",22424,0]],[22427,["op",22449,0]],[22428,["op",22439,0]],[22429,["op",22436,0]],[22430,["op",22442,0]],[22431,["op",22436,1]],[22432,["op",22445,1]],[22433,["op",22444,0]],[22434,["op",22447,1]],[22435,["op",22448,1]],[22437,["op",22424,1]],[22438,["op",22445,0]],[22441,["op",22439,1]],[22443,["op",22441,0]],[22449,["op",22433,1]],[22450,["op",22447,0]],[22452,["op",22475,0]],[22453,["op",22478,0]],[22454,["op",22483,0]],[22455,["op",22480,0]],[22457,["op",22472,0]],[22458,["op",22456,0]],[22459,["op",22481,0]],[22460,["op",22471,0]],[22461,["op",22468,0]],[22462,["op",22474,0]],[22463,["op",22468,1]],[22464,["op",22477,1]],[22465,["op",22476,0]],[22466,["op",22479,1]],[22467,["op",22480,1]],[22469,["op",22456,1]],[22470,["op",22477,0]],[22473,["op",22471,1]],[22475,["op",22473,0]],[22481,["op",22465,1]],[22482,["op",22479,0]],[22484,["op",22507,0]],[22485,["op",22510,0]],[22486,["op",22515,0]],[22487,["op",22512,0]],[22489,["op",22504,0]],[22490,["op",22488,0]],[22491,["op",22513,0]],[22492,["op",22503,0]],[22493,["op",22500,0]],[22494,["op",22506,0]],[22495,["op",22500,1]],[22496,["op",22509,1]],[22497,["op",22508,0]],[22498,["op",22511,1]],[22499,["op",22512,1]],[22501,["op",22488,1]],[22502,["op",22509,0]],[22505,["op",22503,1]],[22507,["op",22505,0]],[22513,["op",22497,1]],[22514,["op",22511,0]],[22516,["op",22539,0]],[22517,["op",22542,0]],[22518,["op",22547,0]],[22519,["op",22544,0]],[22521,["op",22536,0]],[22522,["op",22520,0]],[22523,["op",22545,0]],[22524,["op",22535,0]],[22525,["op",22532,0]],[22526,["op",22538,0]],[22527,["op",22532,1]],[22528,["op",22541,1]],[22529,["op",22540,0]],[22530,["op",22543,1]],[22531,["op",22544,1]],[22533,["op",22520,1]],[22534,["op",22541,0]],[22537,["op",22535,1]],[22539,["op",22537,0]],[22545,["op",22529,1]],[22546,["op",22543,0]],[22548,["op",22571,0]],[22549,["op",22574,0]],[22550,["op",22579,0]],[22551,["op",22576,0]],[22553,["op",22568,0]],[22554,["op",22552,0]],[22555,["op",22577,0]],[22556,["op",22567,0]],[22557,["op",22564,0]],[22558,["op",22570,0]],[22559,["op",22564,1]],[22560,["op",22573,1]],[22561,["op",22572,0]],[22562,["op",22575,1]],[22563,["op",22576,1]],[22565,["op",22552,1]],[22566,["op",22573,0]],[22569,["op",22567,1]],[22571,["op",22569,0]],[22577,["op",22561,1]],[22578,["op",22575,0]],[22580,["op",22603,0]],[22581,["op",22606,0]],[22582,["op",22611,0]],[22583,["op",22608,0]],[22585,["op",22600,0]],[22586,["op",22584,0]],[22587,["op",22609,0]],[22588,["op",22599,0]],[22589,["op",22596,0]],[22590,["op",22602,0]],[22591,["op",22596,1]],[22592,["op",22605,1]],[22593,["op",22604,0]],[22594,["op",22607,1]],[22595,["op",22608,1]],[22597,["op",22584,1]],[22598,["op",22605,0]],[22601,["op",22599,1]],[22603,["op",22601,0]],[22609,["op",22593,1]],[22610,["op",22607,0]],[22612,["op",22635,0]],[22613,["op",22638,0]],[22614,["op",22643,0]],[22615,["op",22640,0]],[22617,["op",22632,0]],[22618,["op",22616,0]],[22619,["op",22641,0]],[22620,["op",22631,0]],[22621,["op",22628,0]],[22622,["op",22634,0]],[22623,["op",22628,1]],[22624,["op",22637,1]],[22625,["op",22636,0]],[22626,["op",22639,1]],[22627,["op",22640,1]],[22629,["op",22616,1]],[22630,["op",22637,0]],[22633,["op",22631,1]],[22635,["op",22633,0]],[22641,["op",22625,1]],[22642,["op",22639,0]],[22644,["op",22667,0]],[22645,["op",22670,0]],[22646,["op",22675,0]],[22647,["op",22672,0]],[22649,["op",22664,0]],[22650,["op",22648,0]],[22651,["op",22673,0]],[22652,["op",22663,0]],[22653,["op",22660,0]],[22654,["op",22666,0]],[22655,["op",22660,1]],[22656,["op",22669,1]],[22657,["op",22668,0]],[22658,["op",22671,1]],[22659,["op",22672,1]],[22661,["op",22648,1]],[22662,["op",22669,0]],[22665,["op",22663,1]],[22667,["op",22665,0]],[22673,["op",22657,1]],[22674,["op",22671,0]],[22676,["op",22699,0]],[22677,["op",22702,0]],[22678,["op",22707,0]],[22679,["op",22704,0]],[22681,["op",22696,0]],[22682,["op",22680,0]],[22683,["op",22705,0]],[22684,["op",22695,0]],[22685,["op",22692,0]],[22686,["op",22698,0]],[22687,["op",22692,1]],[22688,["op",22701,1]],[22689,["op",22700,0]],[22690,["op",22703,1]],[22691,["op",22704,1]],[22693,["op",22680,1]],[22694,["op",22701,0]],[22697,["op",22695,1]],[22699,["op",22697,0]],[22705,["op",22689,1]],[22706,["op",22703,0]],[22708,["op",22731,0]],[22709,["op",22734,0]],[22710,["op",22739,0]],[22711,["op",22736,0]],[22713,["op",22728,0]],[22714,["op",22712,0]],[22715,["op",22737,0]],[22716,["op",22727,0]],[22717,["op",22724,0]],[22718,["op",22730,0]],[22719,["op",22724,1]],[22720,["op",22733,1]],[22721,["op",22732,0]],[22722,["op",22735,1]],[22723,["op",22736,1]],[22725,["op",22712,1]],[22726,["op",22733,0]],[22729,["op",22727,1]],[22731,["op",22729,0]],[22737,["op",22721,1]],[22738,["op",22735,0]],[22740,["op",22763,0]],[22741,["op",22766,0]],[22742,["op",22771,0]],[22743,["op",22768,0]],[22745,["op",22760,0]],[22746,["op",22744,0]],[22747,["op",22769,0]],[22748,["op",22759,0]],[22749,["op",22756,0]],[22750,["op",22762,0]],[22751,["op",22756,1]],[22752,["op",22765,1]],[22753,["op",22764,0]],[22754,["op",22767,1]],[22755,["op",22768,1]],[22757,["op",22744,1]],[22758,["op",22765,0]],[22761,["op",22759,1]],[22763,["op",22761,0]],[22769,["op",22753,1]],[22770,["op",22767,0]],[22772,["op",22795,0]],[22773,["op",22798,0]],[22774,["op",22803,0]],[22775,["op",22800,0]],[22777,["op",22792,0]],[22778,["op",22776,0]],[22779,["op",22801,0]],[22780,["op",22791,0]],[22781,["op",22788,0]],[22782,["op",22794,0]],[22783,["op",22788,1]],[22784,["op",22797,1]],[22785,["op",22796,0]],[22786,["op",22799,1]],[22787,["op",22800,1]],[22789,["op",22776,1]],[22790,["op",22797,0]],[22793,["op",22791,1]],[22795,["op",22793,0]],[22801,["op",22785,1]],[22802,["op",22799,0]],[22804,["op",22827,0]],[22805,["op",22830,0]],[22806,["op",22835,0]],[22807,["op",22832,0]],[22809,["op",22824,0]],[22810,["op",22808,0]],[22811,["op",22833,0]],[22812,["op",22823,0]],[22813,["op",22820,0]],[22814,["op",22826,0]],[22815,["op",22820,1]],[22816,["op",22829,1]],[22817,["op",22828,0]],[22818,["op",22831,1]],[22819,["op",22832,1]],[22821,["op",22808,1]],[22822,["op",22829,0]],[22825,["op",22823,1]],[22827,["op",22825,0]],[22833,["op",22817,1]],[22834,["op",22831,0]],[22836,["op",22859,0]],[22837,["op",22862,0]],[22838,["op",22867,0]],[22839,["op",22864,0]],[22841,["op",22856,0]],[22842,["op",22840,0]],[22843,["op",22865,0]],[22844,["op",22855,0]],[22845,["op",22852,0]],[22846,["op",22858,0]],[22847,["op",22852,1]],[22848,["op",22861,1]],[22849,["op",22860,0]],[22850,["op",22863,1]],[22851,["op",22864,1]],[22853,["op",22840,1]],[22854,["op",22861,0]],[22857,["op",22855,1]],[22859,["op",22857,0]],[22865,["op",22849,1]],[22866,["op",22863,0]],[22868,["op",22891,0]],[22869,["op",22894,0]],[22870,["op",22899,0]],[22871,["op",22896,0]],[22873,["op",22888,0]],[22874,["op",22872,0]],[22875,["op",22897,0]],[22876,["op",22887,0]],[22877,["op",22884,0]],[22878,["op",22890,0]],[22879,["op",22884,1]],[22880,["op",22893,1]],[22881,["op",22892,0]],[22882,["op",22895,1]],[22883,["op",22896,1]],[22885,["op",22872,1]],[22886,["op",22893,0]],[22889,["op",22887,1]],[22891,["op",22889,0]],[22897,["op",22881,1]],[22898,["op",22895,0]],[22900,["op",22923,0]],[22901,["op",22926,0]],[22902,["op",22931,0]],[22903,["op",22928,0]],[22905,["op",22920,0]],[22906,["op",22904,0]],[22907,["op",22929,0]],[22908,["op",22919,0]],[22909,["op",22916,0]],[22910,["op",22922,0]],[22911,["op",22916,1]],[22912,["op",22925,1]],[22913,["op",22924,0]],[22914,["op",22927,1]],[22915,["op",22928,1]],[22917,["op",22904,1]],[22918,["op",22925,0]],[22921,["op",22919,1]],[22923,["op",22921,0]],[22929,["op",22913,1]],[22930,["op",22927,0]],[22932,["op",22955,0]],[22933,["op",22958,0]],[22934,["op",22963,0]],[22935,["op",22960,0]],[22937,["op",22952,0]],[22938,["op",22936,0]],[22939,["op",22961,0]],[22940,["op",22951,0]],[22941,["op",22948,0]],[22942,["op",22954,0]],[22943,["op",22948,1]],[22944,["op",22957,1]],[22945,["op",22956,0]],[22946,["op",22959,1]],[22947,["op",22960,1]],[22949,["op",22936,1]],[22950,["op",22957,0]],[22953,["op",22951,1]],[22955,["op",22953,0]],[22961,["op",22945,1]],[22962,["op",22959,0]],[22964,["op",22987,0]],[22965,["op",22990,0]],[22966,["op",22995,0]],[22967,["op",22992,0]],[22969,["op",22984,0]],[22970,["op",22968,0]],[22971,["op",22993,0]],[22972,["op",22983,0]],[22973,["op",22980,0]],[22974,["op",22986,0]],[22975,["op",22980,1]],[22976,["op",22989,1]],[22977,["op",22988,0]],[22978,["op",22991,1]],[22979,["op",22992,1]],[22981,["op",22968,1]],[22982,["op",22989,0]],[22985,["op",22983,1]],[22987,["op",22985,0]],[22993,["op",22977,1]],[22994,["op",22991,0]],[22996,["op",23019,0]],[22997,["op",23022,0]],[22998,["op",23027,0]],[22999,["op",23024,0]],[23001,["op",23016,0]],[23002,["op",23000,0]],[23003,["op",23025,0]],[23004,["op",23015,0]],[23005,["op",23012,0]],[23006,["op",23018,0]],[23007,["op",23012,1]],[23008,["op",23021,1]],[23009,["op",23020,0]],[23010,["op",23023,1]],[23011,["op",23024,1]],[23013,["op",23000,1]],[23014,["op",23021,0]],[23017,["op",23015,1]],[23019,["op",23017,0]],[23025,["op",23009,1]],[23026,["op",23023,0]],[23028,["op",23051,0]],[23029,["op",23054,0]],[23030,["op",23059,0]],[23031,["op",23056,0]],[23033,["op",23048,0]],[23034,["op",23032,0]],[23035,["op",23057,0]],[23036,["op",23047,0]],[23037,["op",23044,0]],[23038,["op",23050,0]],[23039,["op",23044,1]],[23040,["op",23053,1]],[23041,["op",23052,0]],[23042,["op",23055,1]],[23043,["op",23056,1]],[23045,["op",23032,1]],[23046,["op",23053,0]],[23049,["op",23047,1]],[23051,["op",23049,0]],[23057,["op",23041,1]],[23058,["op",23055,0]],[23060,["op",23083,0]],[23061,["op",23086,0]],[23062,["op",23091,0]],[23063,["op",23088,0]],[23065,["op",23080,0]],[23066,["op",23064,0]],[23067,["op",23089,0]],[23068,["op",23079,0]],[23069,["op",23076,0]],[23070,["op",23082,0]],[23071,["op",23076,1]],[23072,["op",23085,1]],[23073,["op",23084,0]],[23074,["op",23087,1]],[23075,["op",23088,1]],[23077,["op",23064,1]],[23078,["op",23085,0]],[23081,["op",23079,1]],[23083,["op",23081,0]],[23089,["op",23073,1]],[23090,["op",23087,0]],[23092,["op",23115,0]],[23093,["op",23118,0]],[23094,["op",23123,0]],[23095,["op",23120,0]],[23097,["op",23112,0]],[23098,["op",23096,0]],[23099,["op",23121,0]],[23100,["op",23111,0]],[23101,["op",23108,0]],[23102,["op",23114,0]],[23103,["op",23108,1]],[23104,["op",23117,1]],[23105,["op",23116,0]],[23106,["op",23119,1]],[23107,["op",23120,1]],[23109,["op",23096,1]],[23110,["op",23117,0]],[23113,["op",23111,1]],[23115,["op",23113,0]],[23121,["op",23105,1]],[23122,["op",23119,0]],[23124,["op",23147,0]],[23125,["op",23150,0]],[23126,["op",23155,0]],[23127,["op",23152,0]],[23129,["op",23144,0]],[23130,["op",23128,0]],[23131,["op",23153,0]],[23132,["op",23143,0]],[23133,["op",23140,0]],[23134,["op",23146,0]],[23135,["op",23140,1]],[23136,["op",23149,1]],[23137,["op",23148,0]],[23138,["op",23151,1]],[23139,["op",23152,1]],[23141,["op",23128,1]],[23142,["op",23149,0]],[23145,["op",23143,1]],[23147,["op",23145,0]],[23153,["op",23137,1]],[23154,["op",23151,0]],[23156,["op",23179,0]],[23157,["op",23182,0]],[23158,["op",23187,0]],[23159,["op",23184,0]],[23161,["op",23176,0]],[23162,["op",23160,0]],[23163,["op",23185,0]],[23164,["op",23175,0]],[23165,["op",23172,0]],[23166,["op",23178,0]],[23167,["op",23172,1]],[23168,["op",23181,1]],[23169,["op",23180,0]],[23170,["op",23183,1]],[23171,["op",23184,1]],[23173,["op",23160,1]],[23174,["op",23181,0]],[23177,["op",23175,1]],[23179,["op",23177,0]],[23185,["op",23169,1]],[23186,["op",23183,0]],[23188,["op",23211,0]],[23189,["op",23214,0]],[23190,["op",23219,0]],[23191,["op",23216,0]],[23193,["op",23208,0]],[23194,["op",23192,0]],[23195,["op",23217,0]],[23196,["op",23207,0]],[23197,["op",23204,0]],[23198,["op",23210,0]],[23199,["op",23204,1]],[23200,["op",23213,1]],[23201,["op",23212,0]],[23202,["op",23215,1]],[23203,["op",23216,1]],[23205,["op",23192,1]],[23206,["op",23213,0]],[23209,["op",23207,1]],[23211,["op",23209,0]],[23217,["op",23201,1]],[23218,["op",23215,0]],[23220,["op",23243,0]],[23221,["op",23246,0]],[23222,["op",23251,0]],[23223,["op",23248,0]],[23225,["op",23240,0]],[23226,["op",23224,0]],[23227,["op",23249,0]],[23228,["op",23239,0]],[23229,["op",23236,0]],[23230,["op",23242,0]],[23231,["op",23236,1]],[23232,["op",23245,1]],[23233,["op",23244,0]],[23234,["op",23247,1]],[23235,["op",23248,1]],[23237,["op",23224,1]],[23238,["op",23245,0]],[23241,["op",23239,1]],[23243,["op",23241,0]],[23249,["op",23233,1]],[23250,["op",23247,0]],[23252,["op",23275,0]],[23253,["op",23278,0]],[23254,["op",23283,0]],[23255,["op",23280,0]],[23257,["op",23272,0]],[23258,["op",23256,0]],[23259,["op",23281,0]],[23260,["op",23271,0]],[23261,["op",23268,0]],[23262,["op",23274,0]],[23263,["op",23268,1]],[23264,["op",23277,1]],[23265,["op",23276,0]],[23266,["op",23279,1]],[23267,["op",23280,1]],[23269,["op",23256,1]],[23270,["op",23277,0]],[23273,["op",23271,1]],[23275,["op",23273,0]],[23281,["op",23265,1]],[23282,["op",23279,0]],[23284,["op",23307,0]],[23285,["op",23310,0]],[23286,["op",23315,0]],[23287,["op",23312,0]],[23289,["op",23304,0]],[23290,["op",23288,0]],[23291,["op",23313,0]],[23292,["op",23303,0]],[23293,["op",23300,0]],[23294,["op",23306,0]],[23295,["op",23300,1]],[23296,["op",23309,1]],[23297,["op",23308,0]],[23298,["op",23311,1]],[23299,["op",23312,1]],[23301,["op",23288,1]],[23302,["op",23309,0]],[23305,["op",23303,1]],[23307,["op",23305,0]],[23313,["op",23297,1]],[23314,["op",23311,0]],[23316,["op",23339,0]],[23317,["op",23342,0]],[23318,["op",23347,0]],[23319,["op",23344,0]],[23321,["op",23336,0]],[23322,["op",23320,0]],[23323,["op",23345,0]],[23324,["op",23335,0]],[23325,["op",23332,0]],[23326,["op",23338,0]],[23327,["op",23332,1]],[23328,["op",23341,1]],[23329,["op",23340,0]],[23330,["op",23343,1]],[23331,["op",23344,1]],[23333,["op",23320,1]],[23334,["op",23341,0]],[23337,["op",23335,1]],[23339,["op",23337,0]],[23345,["op",23329,1]],[23346,["op",23343,0]],[23348,["op",23371,0]],[23349,["op",23374,0]],[23350,["op",23379,0]],[23351,["op",23376,0]],[23353,["op",23368,0]],[23354,["op",23352,0]],[23355,["op",23377,0]],[23356,["op",23367,0]],[23357,["op",23364,0]],[23358,["op",23370,0]],[23359,["op",23364,1]],[23360,["op",23373,1]],[23361,["op",23372,0]],[23362,["op",23375,1]],[23363,["op",23376,1]],[23365,["op",23352,1]],[23366,["op",23373,0]],[23369,["op",23367,1]],[23371,["op",23369,0]],[23377,["op",23361,1]],[23378,["op",23375,0]],[23380,["op",23403,0]],[23381,["op",23406,0]],[23382,["op",23411,0]],[23383,["op",23408,0]],[23385,["op",23400,0]],[23386,["op",23384,0]],[23387,["op",23409,0]],[23388,["op",23399,0]],[23389,["op",23396,0]],[23390,["op",23402,0]],[23391,["op",23396,1]],[23392,["op",23405,1]],[23393,["op",23404,0]],[23394,["op",23407,1]],[23395,["op",23408,1]],[23397,["op",23384,1]],[23398,["op",23405,0]],[23401,["op",23399,1]],[23403,["op",23401,0]],[23409,["op",23393,1]],[23410,["op",23407,0]],[23412,["op",23435,0]],[23413,["op",23438,0]],[23414,["op",23443,0]],[23415,["op",23440,0]],[23417,["op",23432,0]],[23418,["op",23416,0]],[23419,["op",23441,0]],[23420,["op",23431,0]],[23421,["op",23428,0]],[23422,["op",23434,0]],[23423,["op",23428,1]],[23424,["op",23437,1]],[23425,["op",23436,0]],[23426,["op",23439,1]],[23427,["op",23440,1]],[23429,["op",23416,1]],[23430,["op",23437,0]],[23433,["op",23431,1]],[23435,["op",23433,0]],[23441,["op",23425,1]],[23442,["op",23439,0]],[23444,["op",23467,0]],[23445,["op",23470,0]],[23446,["op",23475,0]],[23447,["op",23472,0]],[23449,["op",23464,0]],[23450,["op",23448,0]],[23451,["op",23473,0]],[23452,["op",23463,0]],[23453,["op",23460,0]],[23454,["op",23466,0]],[23455,["op",23460,1]],[23456,["op",23469,1]],[23457,["op",23468,0]],[23458,["op",23471,1]],[23459,["op",23472,1]],[23461,["op",23448,1]],[23462,["op",23469,0]],[23465,["op",23463,1]],[23467,["op",23465,0]],[23473,["op",23457,1]],[23474,["op",23471,0]]] diff --git a/research/five-stage-gen5-banks/gen5bit/producer/data/local_design_p12.json b/research/five-stage-gen5-banks/gen5bit/producer/data/local_design_p12.json new file mode 100644 index 0000000000..66ce6682bb --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/data/local_design_p12.json @@ -0,0 +1 @@ +{"design":[[["A",0,0],[[[0,0,0],[0,1,0]],[[0,0,1],[0,1,1]]]],[["A",0,1],[[[1,0,0],[1,1,0]],[[1,0,1],[1,1,1]]]],[["A",1,0],[[[[0,0,1],[1,0,0]],[0,0,0]],[1,0,1]]],[["A",1,1],[[[0,1,0],[1,1,0]],[[0,1,1],[1,1,1]]]],[["A",2,0],[[[[1,0,0],[1,1,0]],[0,1,0]],[0,0,0]]],[["A",2,1],[[[[0,0,1],[0,1,1]],[1,1,1]],[1,0,1]]],[["G",0,1,0],[[[0,0,0],[1,1,0]],[[0,0,1],[1,1,1]]]],[["G",0,1,1],[[[0,1,0],[1,0,0]],[[0,1,1],[1,0,1]]]],[["G",0,2,0],[[[0,0,0],[0,1,0]],[[1,0,1],[1,1,1]]]],[["G",0,2,1],[[[[0,0,1],[1,0,0]],[0,1,1]],[1,1,0]]],[["G",1,2,0],[[[0,0,0],[1,0,0]],[[0,1,1],[1,1,1]]]],[["G",1,2,1],[[[0,0,1],[1,0,1]],[[0,1,0],[1,1,0]]]]],"provenance":{"adds_per_cube":29,"arcs_per_cube":13,"source":"agent-helpers local_search.py seed 4 (simulated annealing on additions minus feasible carrier arcs per cube)"}} \ No newline at end of file diff --git a/research/five-stage-gen5-banks/gen5bit/producer/data/pair_module_p12.json b/research/five-stage-gen5-banks/gen5bit/producer/data/pair_module_p12.json new file mode 100644 index 0000000000..9a0d1f69dc --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/data/pair_module_p12.json @@ -0,0 +1 @@ +{"input_count": 55, "args": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, [33, 39], [18, 55], [26, 56], [42, 46], [11, 12], [18, 59], [17, 60], [15, 61], [13, 62], [38, 39], [12, 20], [3, 65], [64, 66], [35, 67], [15, 23], [68, 69], [34, 35], [44, 48], [51, 72], [53, 73], [45, 46], [49, 75], [74, 76], [50, 52], [43, 78], [47, 79], [40, 42], [80, 81], [54, 82], [77, 83], [41, 84], [71, 85], [28, 29], [30, 31], [87, 88], [86, 89], [36, 37], [90, 91], [32, 38], [33, 93], [39, 94], [27, 95], [92, 96], [30, 36], [37, 98], [31, 99], [23, 24], [16, 101], [15, 102], [41, 76], [81, 104], [103, 105], [100, 106], [21, 22], [13, 14], [108, 109], [87, 110], [40, 111], [71, 112], [43, 47], [113, 114], [9, 74], [2, 27], [89, 117], [6, 7], [5, 119], [105, 120], [71, 91], [121, 122], [3, 123], [4, 124], [118, 125], [116, 126], [9, 26], [1, 128], [56, 129], [51, 53], [49, 103], [100, 132], [6, 133], [10, 11], [19, 20], [27, 136], [135, 137], [12, 138], [2, 3], [0, 140], [139, 141], [134, 142], [131, 143], [130, 144], [28, 34], [13, 21], [146, 147], [44, 148], [4, 149], [7, 150], [145, 151], [71, 139], [111, 153], [100, 154], [49, 119], [131, 156], [17, 25], [10, 110], [103, 159], [0, 1], [160, 161], [158, 162], [8, 47], [79, 164], [163, 165], [56, 59], [127, 167], [93, 168], [166, 169], [136, 170], [15, 16], [78, 157], [172, 173], [18, 26], [158, 175], [10, 161], [176, 177], [8, 9], [54, 179], [178, 180], [174, 181], [1, 108], [136, 183], [25, 184], [41, 45], [50, 51], [186, 187], [6, 188], [36, 189], [34, 190], [4, 5], [37, 71], [30, 69], [54, 171], [0, 172], [4, 120], [179, 197], [85, 198], [13, 17], [14, 200], [199, 201], [196, 202], [18, 203], [29, 71], [192, 205], [41, 51], [11, 33], [31, 37], [3, 117], [95, 180], [210, 211], [209, 212], [98, 213], [173, 214], [4, 165], [124, 216], [118, 217], [64, 91], [71, 219], [41, 42], [152, 221], [32, 208], [19, 223], [87, 224], [158, 160], [175, 226], [95, 210], [59, 93], [1, 142], [8, 230], [54, 176], [231, 232], [95, 233], [206, 228], [28, 235], [0, 236], [7, 145], [5, 48], [238, 239], [9, 95], [233, 241], [22, 242], [5, 22], [14, 22], [29, 35], [75, 246], [245, 247], [240, 248], [53, 153], [14, 239], [47, 251], [40, 72], [114, 253], [54, 254], [179, 255], [235, 256], [39, 66], [0, 18], [129, 259], [4, 121], [160, 261], [74, 262], [260, 263], [258, 264], [32, 185], [24, 266], [38, 217], [23, 268], [267, 269], [19, 32], [23, 28], [98, 272], [189, 273], [78, 131], [95, 232], [138, 276], [12, 133], [277, 278], [275, 279], [44, 221], [43, 281], [148, 282], [280, 283], [51, 186], [47, 246], [26, 185], [257, 287], [274, 288], [118, 270], [21, 136], [25, 291], [26, 101], [1, 293], [20, 25], [294, 295], [244, 296], [16, 24], [4, 43], [146, 299], [221, 300], [147, 301], [130, 141], [48, 192], [44, 304], [303, 305], [196, 201], [149, 299], [234, 308], [1, 141], [103, 261], [310, 311], [75, 286], [48, 313], [113, 139], [306, 315], [7, 134], [17, 93], [231, 318], [25, 319], [52, 320], [317, 321], [50, 322], [302, 323], [7, 52], [53, 209], [325, 326], [58, 327], [28, 257], [328, 329], [6, 194], [36, 331], [50, 332], [242, 333], [51, 334], [192, 256], [108, 336], [178, 337], [298, 325], [46, 339], [42, 109], [53, 341], [340, 342], [338, 343], [193, 344], [155, 312], [19, 314], [67, 345], [84, 227], [109, 338], [22, 97], [50, 313], [215, 294], [114, 276], [253, 354], [111, 355], [250, 356], [4, 147], [101, 282], [358, 359], [28, 360], [24, 330], [70, 350], [2, 88], [229, 307], [173, 196], [292, 353], [69, 154], [186, 368], [98, 369], [191, 363], [115, 192], [25, 372], [186, 373], [109, 196], [168, 375], [115, 242], [5, 322], [166, 261], [271, 364], [11, 380], [379, 381], [41, 89], [80, 158], [275, 317], [242, 385], [2, 89], [33, 387], [271, 388], [22, 252], [45, 390], [87, 382], [218, 365], [108, 199], [296, 394], [25, 294], [394, 396], [389, 397], [224, 383], [281, 300], [367, 400], [246, 335], [391, 402], [7, 316], [225, 338], [2, 31], [405, 406], [29, 75], [101, 182], [390, 409], [408, 410], [245, 352], [378, 412], [58, 209], [287, 362], [349, 399], [34, 219], [297, 347], [215, 418], [208, 380], [182, 420], [319, 333], [374, 422], [298, 414], [53, 424], [404, 425], [9, 42], [343, 407], [11, 264], [187, 370], [355, 430], [292, 293], [3, 220], [395, 433], [19, 388], [429, 435], [31, 400], [73, 107], [243, 246], [326, 439], [252, 340], [440, 441], [411, 420], [327, 427], [298, 444], [237, 256], [60, 446], [61, 366], [212, 448], [16, 201], [57, 111], [99, 437], [250, 451], [438, 453], [309, 445], [86, 219], [65, 456], [449, 452], [447, 450], [14, 63], [97, 460], [3, 12], [220, 462], [182, 360], [13, 458], [55, 127], [308, 334], [339, 372], [320, 414], [305, 377], [204, 463], [227, 457], [468, 469], [188, 350], [2, 331], [207, 467], [328, 459], [280, 314], [65, 163], [46, 91], [409, 480], [68, 391], [481, 482], [18, 223], [245, 478], [30, 460], [268, 479], [93, 384], [107, 154], [488, 489], [313, 448], [214, 491], [190, 446], [486, 493], [251, 492], [16, 461], [36, 285], [357, 424], [52, 498], [203, 484], [387, 500], [162, 176], [331, 497], [122, 265], [199, 502], [184, 466], [293, 506], [225, 474], [316, 503], [198, 228], [475, 508], [26, 195], [92, 510], [66, 464], [351, 432], [417, 514], [361, 421]], "roots": [515, 496, 472, 416, 485, 284, 499, 431, 454, 490, 513, 434, 398, 419, 401, 415, 289, 507, 290, 471, 501, 495, 465, 477, 494, 376, 393, 505, 483, 516, 348, 371, 504, 487, 443, 517, 428, 511, 436, 392, 386, 442, 403, 249, 413, 455, 476, 222, 324, 470, 426, 473, 509, 423, 346, 512], "input_labels": [[0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 10], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10], [6, 7], [6, 8], [6, 9], [6, 10], [7, 8], [7, 9], [7, 10], [8, 9], [8, 10], [9, 10]], "kind": "pair_disjoint", "n": 11, "provenance": {"source": "agent-modules SA on minimod C", "file": "best/pair_final.json", "extra_root": "centre star sum (all inputs)"}} \ No newline at end of file diff --git a/research/five-stage-gen5-banks/gen5bit/producer/data/qmod_p12.json b/research/five-stage-gen5-banks/gen5bit/producer/data/qmod_p12.json new file mode 100644 index 0000000000..0cd86767f6 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/data/qmod_p12.json @@ -0,0 +1 @@ +{"input_count": 10, "args": [null, null, null, null, null, null, null, null, null, null, [9, 4], [2, 3], [0, 1], [12, 4], [11, 13], [6, 14], [11, 1], [7, 9], [14, 17], [18, 8], [8, 5], [20, 7], [21, 6], [22, 10], [23, 2], [24, 0], [20, 18], [13, 3], [15, 5], [17, 28], [19, 6], [28, 9], [31, 8], [27, 9], [22, 33], [15, 21], [25, 3], [16, 23], [12, 24], [22, 9], [16, 39], [0, 40]], "roots": [37, 36, 34, 38, 41, 30, 26, 32, 29, 35], "provenance": {"source": "agent-modules SA on minimod C", "file": "best/qmod_C11175.json"}} \ No newline at end of file diff --git a/research/five-stage-gen5-banks/gen5bit/producer/descent.py b/research/five-stage-gen5-banks/gen5bit/producer/descent.py new file mode 100644 index 0000000000..6bdafeb1db --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/descent.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +"""Endpoint frame descent for a physical paired-cube bit word (PR200 physical-layer rules). + +Moves equal-frame connected groups of operations to the join of their incoming frames and node value +spans, or to the meet of their outgoing frames (degenerate endpoints repaired by one row), accepting a move +only when the five-stage first-order cost sum r*ln(120/r) over all physical role chains decreases. +Gauge, root, source, target and full frames are fixed; alias splices (donor -> recipient gauge) are kept. + +usage: descent.py PKGDIR OUTDIR (PKGDIR = PR200-layout package whose selected/bit holds the word) +Prepared by DreamingOfClouds with Anthropic Claude assistance; Apache-2.0. +""" +import sys, json, gzip, math, time +from pathlib import Path +from collections import defaultdict, Counter + +pkg = Path(sys.argv[1]); out = Path(sys.argv[2]); out.mkdir(parents=True, exist_ok=True) +sys.path.insert(0, str(pkg / 'bit')) +from word import Candidate + +t0 = time.time() +W = Candidate(); C = W.C; mod = W.module; h = W.h +C.decoder(); C.geometry() +FULL = W.w['full_frame'] +ops = W.ops; nops = len(ops) +opframe = list(W.opframe) + +# ---------------------------------------------------------------- frame registry helpers +key_of = {} +def bkey(B): return tuple(sorted(map(tuple, B))) +for f, B in C.B.items(): + key_of.setdefault(bkey(B), f) + +def register(rows): + B, _ = mod.reduce_rows(rows, h) + B = [tuple(r) for r in B] + k = bkey(B) + if k in key_of: return key_of[k] + f = max(C.B) + 1 + A, _ = mod.kernel(B, h) + C.B[f], C.A[f], C.dimf[f] = B, A, len(B) + key_of[k] = f + return f + +join_cache = {} +def join(fs): + fs = tuple(sorted(set(fs))) + if len(fs) == 1: return fs[0] + r = join_cache.get(fs) + if r is None: + rows = [b for f in fs for b in C.B[f]] + r = join_cache[fs] = register(rows) + return r + +meet_cache = {} +def meet(fs): + fs = tuple(sorted(set(fs))) + if len(fs) == 1: return fs[0] + r = meet_cache.get(fs) + if r is None: + ann = [a for f in fs for a in C.A[f]] + B, _ = mod.kernel(ann, h) if ann else ([tuple(int(i == j) for j in range(h)) for i in range(h)], None) + r = meet_cache[fs] = register(B) + return r + +nd_cache = {} +def nondeg(f): + r = nd_cache.get(f) + if r is None: r = nd_cache[f] = C.nondeg(f) + return r + +def sub(a, b): return C.sub(a, b) + +# node value spans +span_cache = {} +def node_span(n): + r = span_cache.get(n) + if r is None: + bits = C.sup[n]; rows = [] + while bits: + low = bits & -bits; s = low.bit_length() - 1; bits -= low + rows.append(C.chi[s]) + r = span_cache[n] = register(rows) + return r + +def repair_up(L, U): + """smallest nondegenerate frame containing L inside U: L itself or L + one row of U.""" + if nondeg(L): return L + for b in C.B[U]: + f = register(list(C.B[L]) + [b]) + if C.dimf[f] == C.dimf[L] + 1 and nondeg(f): return f + return None + +def repair_down(L, U): + """largest nondegenerate frame inside U containing L: U itself or U minus one row (kernel of A_U + 1 row).""" + if nondeg(U): return U + # hyperplanes of U containing L: add one annihilator row vanishing on L but not on U + BL = C.B[L] + cand = [] + for e in range(h): + a = [int(i == e) for i in range(h)] + cand.append(a) + # project candidate covectors to vanish on L: use combinations orthogonal to B_L via kernel of B_L + K, _ = mod.kernel(BL, h) if BL else ([tuple(int(i == j) for j in range(h)) for i in range(h)], None) + for a in K: + rows = list(C.A[U]) + [a] + B, _ = mod.kernel(rows, h) + f = register(B) + if C.dimf[f] == C.dimf[U] - 1 and sub(L, f) and nondeg(f): return f + return None + +# ---------------------------------------------------------------- physical chains +recipient = {d: b for b, d in W.pairs} # donor -> recipient +roots = defaultdict(list) +for j, s in enumerate(W.w['rootroles']): roots[s].append(W.w['root_frame'][j]) +start = {b: W.w['source_frame'][x] for x, b in W.source.items()} +start.update({b: z['frame'] for b, z in W.gauge.items()}) +seq = defaultdict(list) +for i, (a, b, x) in enumerate(ops): + seq[a].append(i); seq[b].append(i) + +chains = [] # list of element lists: ('f', frame) fixed or ('o', op) +for s in range(W.R): + if s in W.donor: continue # recipients are spliced into their donor's chain + el = [] + st = start.get(s) + el.append(('f', st) if st is not None else ('z', None)) + el += [('o', i) for i in seq[s]] + [('f', f) for f in roots[s]] + if s in recipient: + b = recipient[s] + el += [('f', W.gauge[b]['frame'])] + [('o', i) for i in seq[b]] + [('f', f) for f in roots[b]] + el.append(('f', FULL)) + chains.append(el) +pos = defaultdict(list) # op -> [(chain, index)] +for c, el in enumerate(chains): + for k, (t, x) in enumerate(el): + if t == 'o': pos[x].append((c, k)) +assert all(len(v) == 2 for v in pos.values()) and len(pos) == nops + +def fr(e): + t, x = e + if t == 'o': return opframe[x] + return x + +def dim(f): return 0 if f is None else C.dimf[f] + +LN = [0.0] + [r * math.log(120 / r) for r in range(1, 121)] +def cost_pair(a, b): + d = dim(b) - dim(a) + assert d >= 0 + return LN[d] + +def total_cost(): + tot = 0.0 + for el in chains: + for k in range(len(el) - 1): + tot += cost_pair(fr(el[k]), fr(el[k + 1])) + return tot + +def check_nested(): + for el in chains: + for k in range(len(el) - 1): + a, b = fr(el[k]), fr(el[k + 1]) + assert a is None or sub(a, b), ('nest', el[k], el[k + 1]) + +check_nested() +c0 = total_cost() +print('loaded', round(time.time() - t0, 1), 's; chains', len(chains), 'cost', round(c0, 1), flush=True) + +# ---------------------------------------------------------------- group moves +def groups(): + parent = list(range(nops)) + def find(x): + while parent[x] != x: parent[x] = parent[parent[x]]; x = parent[x] + return x + for el in chains: + for k in range(len(el) - 1): + if el[k][0] == 'o' and el[k + 1][0] == 'o' and opframe[el[k][1]] == opframe[el[k + 1][1]]: + ra, rb = find(el[k][1]), find(el[k + 1][1]) + if ra != rb: parent[ra] = rb + g = defaultdict(list) + for i in range(nops): g[find(i)].append(i) + return list(g.values()) + +def evaluate(G): + Gs = set(G); F = opframe[G[0]] + inc, outg = [], [] + for i in G: + for c, k in pos[i]: + el = chains[c] + p = el[k - 1] + if not (p[0] == 'o' and p[1] in Gs): inc.append(fr(p)) + q = el[k + 1] + if not (q[0] == 'o' and q[1] in Gs): outg.append(fr(q)) + spans = {node_span(ops[i][2]) for i in G} + L = join([f for f in inc if f is not None] + list(spans)) + U = meet(outg) + if not sub(L, U): return None + def delta(Fn): + d = 0.0 + for f in inc: d += LN[dim(Fn) - dim(f)] - LN[dim(F) - dim(f)] + for f in outg: d += LN[dim(f) - dim(Fn)] - LN[dim(f) - dim(F)] + return d + best = (0.0, None) + cands = set() + lo = repair_up(L, U) + if lo is not None: cands.add(lo) + hi = repair_down(L, U) + if hi is not None: cands.add(hi) + for f in inc + outg: + if f is not None and sub(L, f) and sub(f, U) and nondeg(f): cands.add(f) + for Fn in cands: + if C.dimf[Fn] == C.dimf[F] and sub(Fn, F): continue + d = delta(Fn) + if d < best[0] - 1e-9: best = (d, Fn) + return best + +it = 0 +while True: + it += 1; moved = 0; gain = 0.0 + gs = groups() + gs.sort(key=len, reverse=True) + for G in gs: + # frames may have changed for neighbours; G still has a common frame since only whole groups move + if len({opframe[i] for i in G}) != 1: continue + r = evaluate(G) + if r is None or r[1] is None: continue + d, Fn = r + for i in G: opframe[i] = Fn + moved += 1; gain += d + c = total_cost() + print('iter', it, 'groups', len(gs), 'moved', moved, 'gain', round(gain, 1), 'cost', round(c, 1), round(time.time() - t0, 1), 's', flush=True) + if moved == 0 or it >= 40: break + +check_nested() +for i in range(nops): + f = opframe[i] + assert nondeg(f) + assert sub(node_span(ops[i][2]), f) +changed = sum(1 for i in range(nops) if opframe[i] != W.original_opframe[i]) +print('changed op frames', changed, 'final cost', round(total_cost(), 1), 'from', round(c0, 1)) + +# ---------------------------------------------------------------- write outputs +w = dict(W.w); w['op_frame'] = opframe +w['descent'] = 'op_frame[i]: equal-frame connected groups moved to the join of incoming frames and node spans or the meet of outgoing frames (one-row repair), five-stage first-order cost decrease' +src = pkg / 'selected/bit' +frames = json.loads(gzip.decompress((src / 'frames_p12.json.gz').read_bytes())) +used = set(opframe) +for f in sorted(C.B): + if str(f) in frames['frames'] or f not in used: continue + B, A = C.B[f], C.A[f] + frames['frames'][str(f)] = dict(dim=len(B), b=[list(r) for r in B]) if len(B) <= len(A) else dict(dim=len(B), a=[list(r) for r in A]) +used = set(opframe) +print('frames now', len(frames['frames'])) +for name in ('graph_p12.json', 'kchron_p12.json', 'profile_p12.json', 'sinks.json'): + (out / name).write_bytes((src / name).read_bytes()) +wj = json.dumps(w, sort_keys=True).encode(); fj = json.dumps(frames, sort_keys=True).encode() +(out / 'word_p12.json').write_bytes(wj); (out / 'word_p12.json.gz').write_bytes(gzip.compress(wj, mtime=0)) +(out / 'frames_p12.json').write_bytes(fj); (out / 'frames_p12.json.gz').write_bytes(gzip.compress(fj, mtime=0)) +print('wrote', out) diff --git a/research/five-stage-gen5-banks/gen5bit/producer/make_physical.py b/research/five-stage-gen5-banks/gen5bit/producer/make_physical.py new file mode 100644 index 0000000000..b96b4635a2 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/make_physical.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python3 +"""Physical layer producer for a raw paired-cube bit word (PR168 format): compensated late reuse pairs. + +Input dir: graph_p12.json word_p12.json frames_p12.json kchron_p12.json profile_p12.json (raw generator output). +Output dir: same names, word gains op_frame (= node frames unless --descent), pairs [[donor, recipient]], +reads {recipient: absolute execution position}; frames/word also written gzipped for PR200's Candidate. + +Pair rules (PR200 bit/word.py + base_word.py): recipient gauged, read right before its first op; donor +ungauged, non-root, non-source, last op strictly before that read; donor last op frame inside the recipient +gauge frame; both nondegenerate; one-to-one; per-target gauge read times monotone along the nested chain. +Prepared by DreamingOfClouds with Anthropic Claude assistance; Apache-2.0. +""" +import argparse, gzip, json, sys, importlib.util, time +from collections import defaultdict, Counter +from pathlib import Path + +HERE = Path(__file__).resolve().parent +CHK = HERE.parent / 'references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py' + + +def load(name, path): + spec = importlib.util.spec_from_file_location(name, path); m = importlib.util.module_from_spec(spec); spec.loader.exec_module(m); return m + + +def hopcroft_karp(adj, nleft): + INF = 1 << 30 + matchL = [-1] * nleft; matchR = {} + from collections import deque + while True: + dist = [INF] * nleft; q = deque() + for u in range(nleft): + if matchL[u] < 0: dist[u] = 0; q.append(u) + found = False + while q: + u = q.popleft() + for w in adj[u]: + v2 = matchR.get(w, -1) + if v2 < 0: found = True + elif dist[v2] == INF: dist[v2] = dist[u] + 1; q.append(v2) + if not found: break + sys.setrecursionlimit(100000) + def dfs(u): + for w in adj[u]: + v2 = matchR.get(w, -1) + if v2 < 0 or (dist[v2] == dist[u] + 1 and dfs(v2)): + matchL[u] = w; matchR[w] = u; return True + dist[u] = INF; return False + for u in range(nleft): + if matchL[u] < 0: dfs(u) + return matchL + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--src', required=True); ap.add_argument('--out', required=True) + ap.add_argument('--ranks', default='21', help='gauge dims allowed as recipients, comma list') + ap.add_argument('--bank-parity', action='store_true', help='drop the last pair if the 60-replica bank tiling would have odd total width') + a = ap.parse_args() + src, out = Path(a.src), Path(a.out); out.mkdir(parents=True, exist_ok=True) + mod = load('chk', CHK) + C = mod.Checker(src, 12) + C.frames(); C.decoder(); C.geometry() + g, w = C.g, C.w + ops = w['ops']; v = g['v'] + R = 1 + max(max(x, y) for x, y, _ in ops) + nf = {int(k): f for k, f in w['node_frame'].items()} + opframe = [nf[n] for _, _, n in ops] + phase1 = sorted(w['phase1']); ph = set(phase1) + rest = [i for i in range(len(ops)) if i not in ph] + pos = {i: p for p, i in enumerate(rest)} + role_ops = defaultdict(list) + for i in phase1 + rest: + for s in ops[i][:2]: role_ops[s].append(i) + assert all(xs == sorted(xs) for xs in role_ops.values()) + first = {s: pos.get(xs[0], -1) for s, xs in role_ops.items()} + last = {s: pos.get(xs[-1], -1) for s, xs in role_ops.items()} + endframe = {s: opframe[xs[-1]] for s, xs in role_ops.items()} + gauge = {z['role']: z for z in w['gauges']} + roots = set(w['rootroles']); sources = set(w['sources'].values()) + allowed = {int(x) for x in a.ranks.split(',')} + # per-target chain order of gauges (time order = reversed selection order) + chain = defaultdict(list) + for z in reversed(w['gauges']): + for t in z['targets']: chain[t].append(z['role']) + # recipients: allowed dims; a recipient must be the LAST gauge of each of its targets' chains unless + # every later gauge on that target is also a recipient (resolved iteratively below: start with tops) + recips = [b for b in gauge if gauge[b]['dim'] in allowed] + def ok(b): + fb = gauge[b]['frame'] + for t in gauge[b]['targets']: + later = chain[t][chain[t].index(b) + 1:] + if any(not (C.sub(gauge[x]['frame'], fb) and C.sub(fb, gauge[x]['frame'])) for x in later): return False + return True + recips = [b for b in recips if ok(b)] + donors = [s for s in range(R) if s not in gauge and s not in roots and s not in sources and s in role_ops] + print('roles', R, 'gauges', len(gauge), 'recipient candidates', len(recips), 'donor candidates', len(donors), flush=True) + t0 = time.time() + nd_cache = {} + def nondeg(f): + r = nd_cache.get(f) + if r is None: r = nd_cache[f] = C.nondeg(f) + return r + # group donors by end frame to share containment tests + by_frame = defaultdict(list) + for d in donors: + if nondeg(endframe[d]): by_frame[endframe[d]].append(d) + print('donor end frames', len(by_frame), 'nondeg donors', sum(map(len, by_frame.values())), flush=True) + adj = [] + for b in recips: + gb = gauge[b]['frame']; rt = first[b] + lst = [] + if nondeg(gb): + for f, ds in by_frame.items(): + if C.dimf[f] > C.dimf[gb]: continue + cand = [d for d in ds if last[d] < rt] + if cand and C.sub(f, gb): lst.extend(cand) + adj.append(lst) + print('edges', sum(map(len, adj)), 'recipients with an edge', sum(1 for x in adj if x), 'secs', round(time.time() - t0, 1), flush=True) + m = hopcroft_karp(adj, len(recips)) + pairs = [[m[i], b] for i, b in enumerate(recips) if m[i] >= 0] + if a.bank_parity: + # residual family widths: 24 - dim for non-recipient gauges, 24 for every other physical role + matched = {b for _, b in pairs} + width = sum(24 - gauge[g]['dim'] for g in gauge if g not in matched) + 24 * (R - len(pairs) - (len(gauge) - len(matched))) + if width % 2: + dropped = pairs.pop() + # dropping a pair returns its recipient (rank d) to the entrances and its donor slot to the plain + # helpers: the width changes by (24 - d) + 24, which is odd exactly when d is odd (default rank 21) + assert (24 - gauge[dropped[1]]['dim']) % 2 == 1, 'bank parity not restored' + print('bank parity: dropped pair', dropped, flush=True) + print('pairs', len(pairs), flush=True) + reads = {str(b): len(phase1) + first[b] for d, b in pairs} + W = dict(w); W['op_frame'] = opframe; W['pairs'] = pairs; W['reads'] = reads + W['descent'] = 'none: op_frame[i] = node_frame[ops[i][2]]' + W['reuse'] = 'late compensated reuse: recipient slot is the donor register; recipient old-value read right before its first op, after the donor last op' + for name in ('graph', 'frames', 'kchron', 'profile'): + (out / ('%s_p12.json' % name)).write_text((src / ('%s_p12.json' % name)).read_text()) + (out / 'word_p12.json').write_text(json.dumps(W, sort_keys=True)) + for name in ('word', 'frames'): + raw = (out / ('%s_p12.json' % name)).read_bytes() + (out / ('%s_p12.json.gz' % name)).write_bytes(gzip.compress(raw, mtime=0)) + (out / 'sinks.json').write_text('[]') + print(json.dumps(dict(pairs=len(pairs), physical_R=R - len(pairs), dims=Counter(gauge[b]['dim'] for _, b in pairs)))) + + +if __name__ == '__main__': + main() diff --git a/research/five-stage-gen5-banks/gen5bit/producer/paired_cube_bit_word.py b/research/five-stage-gen5-banks/gen5bit/producer/paired_cube_bit_word.py new file mode 100644 index 0000000000..46f2c3a0cb --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/paired_cube_bit_word.py @@ -0,0 +1,998 @@ +#!/usr/bin/env python3 +# Modified copy of eumemic's PR168 paired-cube bit generator (research/paired-cube-bit/paired_cube_bit_word.py +# as integrated on main; Apache-2.0). Changes for gen4 (DreamingOfClouds, with Anthropic Claude assistance): +# local_design() recipe-tree local channels read from data/local_design_p12.json; the centre-sharing pair +# module patch in finish() (the pair module's extra root is the copied centre star); build() reads the +# optional design file. New data: local_design_p12.json, pair_module_p12.json, qmod_p12.json, arcs_p12.json. +# The rest of the generator, its compiler and its ledger are unchanged. +# gen5 (DreamingOfClouds, with Anthropic Claude assistance) changes only the data: new pair_module_p12.json, +# qmod_p12.json and arcs_p12.json; this file is byte-identical to #276's apart from these two comment lines. +"""Paired-cube BIT local word with partner-pair source mixing: deterministic generator and rank compiler. + +Ports are the triples of [h] (h = 2p) taking one coordinate from each of three distinct coordinate pairs +(v = 8*C(p,3)); bit labels chi_S in Q^h with H0 = (I - J/9)/2, so H0(chi_S, chi_T) = (|S cap T| - 1)/2. +Payload F2. Mod-2 decoder, for every target T: + x_T = sum_{c in T} star(c) (2p copied point-star centres, frames of dim h-2) + + face channels P'(J,i,eta_i) (cubes sharing exactly pair i, matching selector) + + edge channels Q'(J,i,j,mode) (cubes sharing pairs i,j, exactly one selector match) + + partner x_{T'}, T' = T with the selectors of cube pairs 1,2 flipped (single-source root) + + partner-pair sum of the opposite pair of T's parity class, mixed on two SOURCE registers and + delivered at the shared cap of {T, T'} (no auxiliary role). +At p = 12 each cube merges its face-1 and edge-01 outputs into u(b0,b1) and its face-2 and edge-02 outputs into +w(b0,b2) (variant u); each merged node is read by two single roots and the mod-2 sums are unchanged. Its local +channels use the L1 association (local_l1): three of the six G sums add long face diagonals instead of edges. +Its all-but-one modules are the pinned annealed module data/qmod_p12.json (pinned_all_but_one). +Compiler: the PR #144 frames.py/gauges.py ledger on rational frames (target cap ker(3 chi_T - 1), centre frame = +span of the star), coordinate-padded maximum carrier matching (frozen arcs), plain frames span(n) for additions of +span dimension <= PLAIN (closed under operands; a linked donor's span must lie in the plain target), PR #144 +chronological partial gauges with a G-nondegeneracy filter, PR #144 bit ledger (m = 3h, W = 2v + R). +Linear algebra is exact: ranks are computed modulo the Mersenne prime 2^127-1, which exceeds the Hadamard bound +of every minor that occurs (see README.md); G-nondegeneracy is certified by integer Gram determinants. + +Usage: python3 paired_cube_bit_word.py --p 12 [--out DIR] [--check] [--solve-matching] +Standard library only. Run without -O. +""" +import argparse, gzip, hashlib, json, math, os, sys, time +from collections import Counter, defaultdict, deque +from itertools import combinations, product +from pathlib import Path + +HERE = Path(__file__).resolve().parent +P = (1 << 127) - 1 +PLAIN = 8 +L1_DIAGONAL = {(0, 1, 0), (0, 1, 1), (1, 2, 1)} # (cube positions j < k, mode) of the diagonal G sums at p = 12 +MODULES = {11: 'pair_module_p11.json', 12: 'pair_module_p12.json', 13: 'pair_module_p13.json'} +QMODULES = {12: 'qmod_p12.json'} + + +def require(cond, msg): + if not cond: + raise SystemExit('FAIL: ' + msg) + + +# ----------------------------------------------------------------------------- exact subspaces of F_P^h +def rref(rows, h): + piv = {} + for r in rows: + x = [a % P for a in r] + for c, y in piv.items(): + if x[c]: + f = x[c] + x = [(a - f * b) % P for a, b in zip(x, y)] + nz = next((j for j in range(h) if x[j]), None) + if nz is None: + continue + inv = pow(x[nz], P - 2, P) + x = [(a * inv) % P for a in x] + for c in list(piv): + y = piv[c] + if y[nz]: + f = y[nz] + piv[c] = [(a - f * b) % P for a, b in zip(y, x)] + piv[nz] = x + return tuple(tuple(piv[c]) for c in sorted(piv)) + + +def kernel(S, h): + pivs = [next(j for j in range(h) if row[j]) for row in S] + ps = set(pivs) + out = [] + for f in range(h): + if f in ps: + continue + u = [0] * h + u[f] = 1 + for row, c in zip(S, pivs): + u[c] = (-row[f]) % P + out.append(u) + return rref(out, h) + + +class Table: + """Interned subspaces (canonical RREF) with memoized joins; id 0 is the zero space.""" + def __init__(self, h): + self.h = h + self.rows = [()] + self.index = {(): 0} + self.jc = {} + self.pc = {} + + def intern(self, rows): + S = rref(rows, self.h) + i = self.index.get(S) + if i is None: + i = len(self.rows) + self.rows.append(S) + self.index[S] = i + return i + + def dim(self, i): + return len(self.rows[i]) + + def join(self, i, j): + if i == j or j == 0: + return i + if i == 0: + return j + if i > j: + i, j = j, i + k = self.jc.get((i, j)) + if k is None: + A, B = self.rows[i], self.rows[j] + k = i if len(A) == self.h else j if len(B) == self.h else self.intern(A + B) + self.jc[(i, j)] = k + return k + + def join_many(self, ids): + k = 0 + for i in ids: + k = self.join(k, i) + return k + + def contained(self, i, j): + return self.join(i, j) == j + + def perp(self, i): + k = self.pc.get(i) + if k is None: + k = self.intern(kernel(self.rows[i], self.h)) + self.pc[i] = k + return k + + +class Geometry: + """Bit geometry: source line ; target cap annihilated by 3 chi_T - 1 (the H0 = (I-J/9)/2 cap).""" + def __init__(self, h, labels): + self.h = h + self.T = Table(h) + self.src = [self.T.intern([[1 if j in lab else 0 for j in range(h)]]) for lab in labels] + self.tcov = [self.T.intern([[(3 if j in lab else 0) - 1 for j in range(h)]]) for lab in labels] + self.coord = [self.T.intern([[1 if k == j else 0 for k in range(h)]]) for j in range(h)] + + def join(self, a, b): return self.T.join(a, b) + def join_many(self, ids): return self.T.join_many(ids) + def dim(self, a): return self.T.dim(a) + def perp(self, a): return self.T.perp(a) + def contained(self, a, b): return self.T.contained(a, b) + + +def gram_nondegenerate_frame(rows, h): + """G = I - J/9 nondegenerate on the F_P-subspace with basis rows (exact sound test: an integer determinant + nonzero mod P is nonzero over Q; frames here are reductions of rational frames of the same dimension).""" + k = len(rows) + if k == 0: + return True + inv9 = pow(9, P - 2, P) + sums = [sum(s) % P for s in rows] + M = [[(sum(a * b for a, b in zip(rows[i], rows[j])) - inv9 * sums[i] * sums[j]) % P for j in range(k)] for i in range(k)] + return len(rref(M, k)) == k + + +# ----------------------------------------------------------------------------- graph +class BitGraph: + def __init__(self, p): + self.p, self.h = p, 2 * p + self.cubes = list(combinations(range(p), 3)) + self.labels = [tuple(2 * i + b for i, b in zip(I, bits)) for I in self.cubes for bits in product(range(2), repeat=3)] + self.a = [None] * len(self.labels) + self.s = [1 << i for i in range(len(self.labels))] + self.intern = {} + self.source = {(I, bits): 8 * j + k for j, I in enumerate(self.cubes) for k, bits in enumerate(product(range(2), repeat=3))} + self.A, self.G = {}, {} + self.root, self.centers, self.mix = [], [], [] + + def add(self, a, b): + if a is None: + return b + if b is None: + return a + if a > b: + a, b = b, a + if (a, b) not in self.intern: + require(not self.s[a] & self.s[b], 'support-disjoint addition') + self.intern[a, b] = len(self.a) + self.a.append([a, b]) + self.s.append(self.s[a] | self.s[b]) + return self.intern[a, b] + + def sum(self, xs): + xs = [x for x in xs if x is not None] + while len(xs) > 1: + xs = [self.add(xs[i], xs[i + 1]) if i + 1 < len(xs) else xs[i] for i in range(0, len(xs), 2)] + return xs[0] if xs else None + + def module(self, data, inputs): + image = list(inputs) + n = data['input_count'] + require(len(image) == n, 'module arity') + for pair in data['args'][n:]: + image.append(self.add(image[pair[0]], image[pair[1]])) + return [image[x] for x in data['roots']] + + def local_channels(self): + for I in self.cubes: + src = lambda bits: self.source[I, tuple(bits)] + edges = {} + for ii, jj in combinations(range(3), 2): + kk = 3 - ii - jj + for a, b in product(range(2), repeat=2): + b0 = [0] * 3 + b0[ii], b0[jj] = a, b + b1 = b0[:] + b1[kk] = 1 + edges[ii, jj, a, b] = self.add(src(b0), src(b1)) + self.G[I, I[ii], I[jj], 0] = self.add(edges[ii, jj, 0, 0], edges[ii, jj, 1, 1]) + self.G[I, I[ii], I[jj], 1] = self.add(edges[ii, jj, 0, 1], edges[ii, jj, 1, 0]) + for ii in range(3): + jj = next(j for j in range(3) if j != ii) + for a in range(2): + ids = [edges[(ii, jj, a, b) if ii < jj else (jj, ii, b, a)] for b in range(2)] + self.A[I, I[ii], a] = self.add(*ids) + + def local_l1(self): + """L1 local-channel association (eumemic, Claude assistance): the G sums listed in L1_DIAGONAL add the two + long diagonals of their cube face, the other G sums and the A sums add two edges; same supports as + local_channels, with the nodes created in channel order.""" + for I in self.cubes: + def at(bits): + b = [0] * 3 + for q, x in bits.items(): + b[q] = x + return self.source[I, tuple(b)] + + def edge(d, fixed): + return self.add(at({**fixed, d: 0}), at({**fixed, d: 1})) + for j, k in combinations(range(3), 2): + r = 3 - j - k + for mode in range(2): + if (j, k, mode) in L1_DIAGONAL: + node = self.add(self.add(at({j: 0, k: mode, r: 0}), at({j: 1, k: 1 - mode, r: 1})), + self.add(at({j: 0, k: mode, r: 1}), at({j: 1, k: 1 - mode, r: 0}))) + else: + node = self.add(edge(r, {j: 0, k: mode}), edge(r, {j: 1, k: 1 - mode})) + self.G[I, I[j], I[k], mode] = node + for i in range(3): + j, k = [q for q in range(3) if q != i] + for a in range(2): + self.A[I, I[i], a] = self.add(edge(k, {i: a, j: 0}), edge(k, {i: a, j: 1})) + + def local_design(self, design): + """Design-driven local channels (agent-helpers search): every plane channel of every cube is built by the + recipe tree of `design` (a list of [plane key, tree] in creation order; a plane key is ['A', i, a] for the + sources with selector a at cube position i, or ['G', j, k, m] for the sources with s_j ^ s_k = m; a tree is a + 3-bit selector (leaf) or a pair of trees). Equal supports must have equal recipes (checked).""" + def members(key): + allb = list(product(range(2), repeat=3)) + if key[0] == 'A': + return {b for b in allb if b[key[1]] == key[2]} + return {b for b in allb if b[key[1]] ^ b[key[2]] == key[3]} + for I in self.cubes: + def build(t): + if isinstance(t[0], int): + return self.source[I, tuple(t)], {tuple(t)} + (a, sa), (b, sb) = build(t[0]), build(t[1]) + require(not sa & sb, 'design support-disjoint') + return self.add(a, b), sa | sb + for key, tree in design: + node, sup = build(tree) + require(sup == members(key), 'design plane support') + if key[0] == 'A': + self.A[I, I[key[1]], key[2]] = node + else: + self.G[I, I[key[1]], I[key[2]], key[3]] = node + + def finish(self, pair, allbut, merge=False, l1=False, design=None): + p = self.p + if design is not None: + self.local_design(design) + else: + self.local_l1() if l1 else self.local_channels() + Pm, Qm = {}, {} + cen = {} + for i in range(p): + pairs = list(combinations([a for a in range(p) if a != i], 2)) + for bit in range(2): + outs = self.module(pair, [self.A[tuple(sorted((i, *K))), i, bit] for K in pairs]) + for K, node in zip(pairs, outs): + Pm[tuple(sorted((i, *K))), i, bit] = node + if len(outs) == len(pairs) + 1: + # centre-sharing pair module (agent-helpers): the extra root sums all inputs = star(2i+bit) + cen[2 * i + bit] = outs[-1] + for i, j in combinations(range(p), 2): + others = [a for a in range(p) if a not in (i, j)] + for mode in range(2): + for k, node in zip(others, self.module(allbut, [self.G[tuple(sorted((i, j, k))), i, j, mode] for k in others])): + Qm[tuple(sorted((i, j, k))), i, j, mode] = node + allb = list(product(range(2), repeat=3)) + + def emit(I, bl, node, channel): + self.root.append(dict(node=node, targets=[self.source[I, b] for b in bl], kind='side', channel=channel)) + for I in self.cubes: + for a in range(2): + emit(I, [b for b in allb if b[0] == a], Pm[I, I[0], a], 'face0') + for a in range(2): + for m12 in range(2): + emit(I, [b for b in allb if b[0] == a and (b[1] ^ b[2]) == m12], Qm[I, I[1], I[2], 1 - m12], 'edge12') + if merge: + # variant u output merge (eumemic, Claude assistance): u(b0,b1) = face1 + edge01 and + # w(b0,b2) = face2 + edge02, each read by two single roots, replace the four single reads + u = {(b0, b1): self.add(Pm[I, I[1], b1], Qm[I, I[0], I[1], 1 - (b0 ^ b1)]) for b0 in range(2) for b1 in range(2)} + w = {(b0, b2): self.add(Pm[I, I[2], b2], Qm[I, I[0], I[2], 1 - (b0 ^ b2)]) for b0 in range(2) for b2 in range(2)} + for b in allb: + if merge: + emit(I, [b], u[b[0], b[1]], 'u01') + emit(I, [b], w[b[0], b[2]], 'w02') + else: + emit(I, [b], Pm[I, I[1], b[1]], 'face1') + emit(I, [b], Qm[I, I[0], I[1], 1 - (b[0] ^ b[1])], 'edge01') + emit(I, [b], Pm[I, I[2], b[2]], 'face2') + emit(I, [b], Qm[I, I[0], I[2], 1 - (b[0] ^ b[2])], 'edge02') + emit(I, [b], self.source[I, (b[0], 1 - b[1], 1 - b[2])], 'partner') + # partner-pair source mixing: in each parity class the pair with selector a on cube pair 0 + # (carrier = smaller bits, passive = its partner) is delivered to the opposite pair of the class. + for par in range(2): + for a in range(2): + pair_ = sorted(b for b in allb if sum(b) % 2 == par and b[0] == a) + recv = sorted(b for b in allb if sum(b) % 2 == par and b[0] == 1 - a) + self.mix.append(dict(carrier=self.source[I, pair_[0]], passive=self.source[I, pair_[1]], + receivers=[self.source[I, r] for r in recv])) + for i in range(p): + for e in range(2): + if 2 * i + e in cen: + self.centers.append(cen[2 * i + e]) + else: + self.centers.append(self.sum(self.A[I, i, e] for I in self.cubes if i in I)) + for coordinate, node in enumerate(self.centers): + self.root.append(dict(node=node, targets=[t for t, lab in enumerate(self.labels) if coordinate in lab], + kind='center', coordinate=coordinate)) + return dict(p=p, h=self.h, v=len(self.labels), labels=[list(l) for l in self.labels], args=self.a, + roots=self.root, partner_mix=self.mix) + + +def check_decoder(g): + v, args = g['v'], g['args'] + sup = [1 << i for i in range(v)] + [0] * (len(args) - v) + for x in range(v, len(args)): + a, b = args[x] + require(not sup[a] & sup[b], 'disjoint supports') + sup[x] = sup[a] | sup[b] + acc = [0] * v + for r in g['roots']: + for t in r['targets']: + acc[t] ^= sup[r['node']] + for mx in g['partner_mix']: + for t in mx['receivers']: + acc[t] ^= (1 << mx['carrier']) | (1 << mx['passive']) + return sum(acc[t] != 1 << t for t in range(v)) + + +# ----------------------------------------------------------------------------- matching +def hopcroft_karp(adj, nleft, nright): + INF = 1 << 30 + mL, mR = [-1] * nleft, [-1] * nright + while True: + dist = [INF] * nleft + dq = deque(u for u in range(nleft) if mL[u] < 0) + for u in dq: + dist[u] = 0 + found = False + while dq: + u = dq.popleft() + for w in adj[u]: + m = mR[w] + if m < 0: + found = True + elif dist[m] == INF: + dist[m] = dist[u] + 1 + dq.append(m) + if not found: + return mL + it = [0] * nleft + for u0 in range(nleft): + if mL[u0] >= 0: + continue + stack = [u0] + while stack: + u = stack[-1] + if it[u] < len(adj[u]): + w = adj[u][it[u]] + it[u] += 1 + m = mR[w] + if m < 0: + ws = w + for uu in reversed(stack): + prev = mL[uu] + mL[uu], mR[ws] = ws, uu + ws = prev + break + if dist[m] == dist[u] + 1: + stack.append(m) + else: + dist[u] = INF + stack.pop() + + +# ----------------------------------------------------------------------------- compiler +def compile_word(g, frozen=None, plain_k=PLAIN, log=lambda *a: None): + h, v = g['h'], g['v'] + geo = Geometry(h, [tuple(l) for l in g['labels']]) + args = [None] + [None if a is None else [x + 1 for x in a] for a in g['args']] # node 0 reserved + roots = [dict(r, node=r['node'] + 1) for r in g['roots']] + n, q = len(args), len(roots) + sup = [0] * n + for i in range(v): + sup[i + 1] = 1 << i + spans = [0] * n + for i in range(v): + spans[i + 1] = geo.src[i] + for x in range(v + 1, n): + a, b = args[x] + spans[x] = geo.join(spans[a], spans[b]) + sup[x] = sup[a] | sup[b] + rframe, rann, ell = [], [], 0 + Y, targetH = [0] * v, Counter() + for r in roots: + x = r['node'] + if r['kind'] == 'center': + U = spans[x]; A = geo.perp(U); ell += geo.dim(U) + else: + A = geo.join_many(geo.tcov[t] for t in r['targets']); U = geo.perp(A) + for t in r['targets']: + require(geo.contained(Y[t], U), 'target retreat') + targetH[geo.dim(U) - geo.dim(Y[t])] += 1 + Y[t] = U + require(geo.contained(spans[x], U), 'root physical compatibility') + rframe.append(U); rann.append(A) + for t in range(v): + require(geo.contained(Y[t], geo.perp(geo.tcov[t])), 'target cap') + targetH[h - 1 - geo.dim(Y[t])] += 1 + active, todo = set(range(1, v + 1)), [r['node'] for r in roots] + while todo: + x = todo.pop() + if x not in active: + active.add(x) + if args[x]: + todo.extend(args[x]) + succ0, cons = [[] for _ in args], [[] for _ in args] + for x in sorted(active): + if args[x]: + for y in args[x]: + succ0[y].append(x) + for j, r in enumerate(roots): + cons[r['node']].append(rann[j]) + preann, initial = [0] * n, [0] * n + for x in sorted(active, reverse=True): + preann[x] = geo.join_many(cons[x] + [preann[y] for y in succ0[x]]) + cover = 0 + s = sup[x] + while s: + b = s & -s; s ^= b + for j in g['labels'][b.bit_length() - 1]: + cover |= 1 << j + initial[x] = geo.join_many([preann[x]] + [geo.coord[j] for j in range(h) if not cover >> j & 1]) + order = sorted(active, key=lambda x: (h - geo.dim(initial[x]), x)) + position = {x: i for i, x in enumerate(order)} + uses, usevalue, usetarget, useann, usecode = [[] for _ in args], [], [], [], [] + for x in order: + if args[x]: + for j, y in enumerate(args[x]): + uses[y].append(len(usevalue)); usevalue.append(y); usetarget.append(x); useann.append(initial[x]); usecode.append(['op', x - 1, j]) + for j, r in enumerate(roots): + x = r['node'] + uses[x].append(len(usevalue)); usevalue.append(x); usetarget.append(n + j); useann.append(rann[j]); usecode.append(['root', j]) + donors = [x for x in order if args[x]] + code_index = {tuple(c): u for u, c in enumerate(usecode)} + if frozen is not None: + arcs = {d + 1: code_index[tuple(c)] for d, c in frozen} + else: + dindex = {x: i for i, x in enumerate(donors)} + adj = [[] for _ in donors] + for x in donors: + for y in args[x]: + for u in uses[y]: + t = usetarget[u] + if t == x or (t < n and position[t] <= position[x]): + continue + if geo.contained(useann[u], initial[x]): + adj[dindex[x]].append(u) + mL = hopcroft_karp(adj, len(donors), len(usevalue)) + arcs = {donors[i]: u for i, u in enumerate(mL) if u >= 0} + for x, u in arcs.items(): + t = usetarget[u] + require(usevalue[u] in args[x] and (t >= n or position[t] > position[x]), 'arc order') + require(geo.contained(useann[u], initial[x]), 'arc frame') + succ, direct = [[] for _ in args], [[] for _ in args] + for x in order: + if args[x]: + for y in args[x]: + succ[y].append(x) + for j, r in enumerate(roots): + direct[r['node']].append(rann[j]) + for x, u in arcs.items(): + t = usetarget[u] + (succ[x].append(t) if t < n else direct[x].append(rann[t - n])) + ann, rank = [0] * n, [0] * n + for x in reversed(order): + ann[x] = geo.join_many(direct[x] + [ann[y] for y in succ[x]]) + rank[x] = h - geo.dim(ann[x]) + require(geo.contained(ann[x], geo.perp(spans[x])), 'span inside frame') + # plain frames span(n): leaves and small additions, closed under operands; a linked donor must be plain and + # its span must lie in the plain target's span + cand = set(x for x in active if not args[x]) + for x in sorted(active): + if args[x] and geo.dim(spans[x]) <= plain_k and all(y in cand for y in args[x]): + cand.add(x) + arcin, users = defaultdict(list), defaultdict(list) + for x, u in arcs.items(): + if usetarget[u] < n: + arcin[usetarget[u]].append(x) + for x in active: + if args[x]: + for y in args[x]: + users[y].append(x) + changed = True + while changed: + changed = False + for t in sorted(cand): + if t in cand and any(x not in cand or not geo.contained(spans[x], spans[t]) for x in arcin[t]): + cand.discard(t); changed = True + st = [t] + while st: + z = st.pop() + for w in users[z]: + if w in cand: + cand.discard(w); st.append(w) + plain = sorted(cand) + for x in plain: + ann[x] = geo.perp(spans[x]); rank[x] = h - geo.dim(ann[x]) + H = Counter() + for x in order: + r, deg = rank[x], len(uses[x]) + require(deg > 0, 'unused node') + H[r] += deg - 1 + if args[x]: + H[h - r] += 1 + for y in args[x]: + require(geo.contained(ann[x], ann[y]), 'operand nesting') + H[r - rank[y]] += 1 + else: + H[1] += 1; H[r - 1] += 1 + for j, root in enumerate(roots): + x = root['node']; r = rank[x]; rt = geo.dim(rframe[j]) + require(r <= rt, 'root climb') + if root['kind'] == 'center': + require(r == rt, 'centre frame') + H[r] += 1; H[h - r] += 1 + else: + H[rt - r] += 1; H[h - rt] += 1 + for x, u in arcs.items(): + val, t = usevalue[u], usetarget[u] + rv, rd = rank[val], rank[x] + rt = rank[t] if t < n else geo.dim(rframe[t - n]) + require(rt >= rd >= rv, 'arc ranks') + H[h - rd] -= 1; H[rv] -= 1; H[rt - rv] -= 1; H[rt - rd] += 1 + require(min(H.values()) >= 0, 'nonnegative ledger') + R = len(donors) + q - len(arcs) + require(sum(r * c for r, c in H.items()) == h * R + ell, 'mass identity') + prof = dict(h=h, v=v, R=R, q=q, c=len(donors), matched=len(arcs), loss=ell, plain=len(plain)) + wit = dict(geo=geo, args=args, roots=roots, n=n, order=order, arcs=arcs, ann=ann, rank=rank, uses=uses, + usevalue=usevalue, usetarget=usetarget, usecode=usecode, rframe=rframe, rann=rann, spans=spans, + plain=plain, H=H, targetH=targetH) + return prof, wit + + +def nondeg_id(geo, f, cache): + if f not in cache: + cache[f] = gram_nondegenerate_frame(list(geo.T.rows[f]), geo.h) + return cache[f] + + +def select_gauges(g, prof, wit, trial_a=0.00065): + """PR #144 gauges.select, exactly, plus the bit G-nondegeneracy filter on sigma.""" + geo = wit['geo']; h, v = prof['h'], prof['v'] + args, roots, n, order, ann, arcs = wit['args'], wit['roots'], wit['n'], wit['order'], wit['ann'], wit['arcs'] + usevalue, usetarget = wit['usevalue'], wit['usetarget'] + incoming = set(arcs.values()) + uses, opuse, rootuse = [[] for _ in args], {}, {} + for u, (val, t) in enumerate(zip(usevalue, usetarget)): + uses[val].append(u) + if t < n: + opuse[t, 0 if args[t][0] == val else 1] = u + else: + rootuse[t - n] = u + assign, sources, ops, R = {}, {}, [], 0 + for x in order: + if args[x]: + aa, bb = args[x] + dest, control = assign[opuse[x, 0]], assign[opuse[x, 1]] + if x in arcs: + u = arcs[x] + if usevalue[u] == aa: + dest, control = control, dest + require(u not in assign, 'arc use assigned once') + assign[u] = control + ops.append((dest, control, x)) + else: + dest = R; R += 1; sources[x] = dest + free = [u for u in uses[x] if u not in incoming] + require(free, 'free use') + for j, u in enumerate(free): + if j == 0: + assign[u] = dest + else: + t = R; R += 1; assign[u] = t; ops.append((t, dest, x)) + require(R == prof['R'], 'role count') + rootroles = [assign[rootuse[j]] for j in range(len(roots))] + prev, pred, first = [-1] * R, [], [None] * R + for i, (a, b, x) in enumerate(ops): + pred.append((prev[a], prev[b])); prev[a] = prev[b] = i + if first[a] is None: + first[a] = x + if first[b] is None: + first[b] = x + stack = [prev[s] for r, s in zip(roots, rootroles) if r['kind'] == 'center' and prev[s] >= 0] + phase = set() + while stack: + i = stack.pop() + if i not in phase: + phase.add(i); stack.extend(j for j in pred[i] if j >= 0) + touched = set(sources.values()) + for i in phase: + touched.update(ops[i][:2]) + co = [0] * R + for r, s in zip(roots, rootroles): + co[s] |= sum(1 << t for t in r['targets']) + for a, b, x in reversed(ops): + co[b] |= co[a] + limit = [None] * v + for r in roots: + if r['kind'] != 'center': + A = geo.join_many(geo.tcov[t] for t in r['targets']) + for t in r['targets']: + if limit[t] is None: + limit[t] = A + for t in range(v): + if limit[t] is None: + limit[t] = geo.tcov[t] + H = Counter(wit['H']) + gauges, selected, cache = Counter(), [], {} + cands = sorted((s for s in range(R) if s not in touched and first[s] is not None), + key=lambda s: (geo.dim(ann[first[s]]), bin(co[s]).count('1'), s)) + + def excess(t): + return t * math.expm1(trial_a * math.log(3 * h / t)) if t else 0. + for s in cands: + A, targets, bits = ann[first[s]], [], co[s] + while bits: + low = bits & -bits; t = low.bit_length() - 1; bits ^= low; targets.append(t) + A = geo.join(A, limit[t]) + if geo.dim(A) == h: + break + if geo.dim(A) == h: + continue + r, d = h - geo.dim(ann[first[s]]), h - geo.dim(A) + delta = 3 * (excess(r - d) - excess(r)) + excess(3 * d) + delta += 3 * math.fsum(excess(d) + excess(h - geo.dim(limit[t]) - d) - excess(h - geo.dim(limit[t])) for t in targets) + if delta >= -1e-12 or not nondeg_id(geo, geo.perp(A), cache): + continue + H[r] -= 1; H[r - d] += 1; gauges[d] += 1 + require(H[r] >= 0, 'gauge ledger') + for t in targets: + limit[t] = A + selected.append(dict(role=s, first=first[s] - 1, targets=targets, dim=d, ann=A)) + Yh, cur = Counter(), [0] * v + for z in reversed(selected): + U = geo.perp(z['ann']) + for t in z['targets']: + require(geo.contained(cur[t], U), 'gauge target chain') + Yh[geo.dim(U) - geo.dim(cur[t])] += 1; cur[t] = U + for r in roots: + if r['kind'] != 'center': + U = geo.perp(geo.join_many(geo.tcov[t] for t in r['targets'])) + for t in r['targets']: + require(geo.contained(cur[t], U), 'side target chain') + Yh[geo.dim(U) - geo.dim(cur[t])] += 1; cur[t] = U + for t in range(v): + Yh[h - 1 - geo.dim(cur[t])] += 1 + word = dict(ops=[[a, b, x - 1] for a, b, x in ops], sources={str(x - 1): s for x, s in sources.items()}, + rootroles=rootroles, phase1=sorted(phase), gauges=[{k: z[k] for k in ('role', 'first', 'targets', 'dim')} for z in selected], + _gauge_ann=[z['ann'] for z in selected]) + return gauges, H, Yh, word + + +def profile(prof, gauges, H, Y): + h, v, R, ell = prof['h'], prof['v'], prof['R'], prof['loss'] + m, W = 3 * h, 2 * v + R + source = Counter({1: v, h - 4: v // 2, 2: v // 2, h - 2: v // 2}) + C = Counter() + for part in (H, source, Y): + for r, c in part.items(): + if r and c: + C[r] += 3 * c + for d, c in gauges.items(): + C[3 * d] += c + C[2] += 2 * v + mass = sum(r * c for r, c in C.items()) + require(W * m - mass == 2 * v - 3 * ell, 'shared-core telescoping deficit') + srt = lambda c: {str(k): c[k] for k in sorted(c) if c[k]} + return dict(h=h, v=v, R=R, c=prof['c'], q=prof['q'], matched=prof['matched'], loss=ell, plain_frames=prof['plain'], + m=m, W_per_vertex=W, rank_per_vertex=mass, deficit_per_vertex=W * m - mass, + selected_roles=sum(gauges.values()), selected_rank_histogram=srt(gauges), + remaining_internal_histogram=srt(H), source_data_histogram=srt(source), target_data_histogram=srt(Y), + child_histogram=srt(C), maxchild=max(C)) + + +def float_root(child, W, m): + items = [(int(t), c) for t, c in child.items()] + lo, hi = 0., .1 + for _ in range(80): + a = (lo + hi) / 2 + if math.fsum(c * (t / m) ** (1 - a) for t, c in items) < W: + lo = a + else: + hi = a + return lo + + +def ratrec(r): + """Rational reconstruction a/b of a residue mod P with |a|, b < sqrt(P/2).""" + r %= P + if r == 0: + return 0, 1 + bound = math.isqrt(P // 2) + r0, r1, s0, s1 = P, r, 0, 1 + while r1 > bound: + qq = r0 // r1 + r0, r1 = r1, r0 - qq * r1 + s0, s1 = s1, s0 - qq * s1 + require(abs(s1) <= bound and s1 != 0, 'rational reconstruction') + a, b = (r1, s1) if s1 > 0 else (-r1, -s1) + require((a - r * b) % P == 0, 'reconstruction residue') + return a, b + + +def primitive(row): + from fractions import Fraction + fr = [Fraction(*ratrec(x)) for x in row] + den = 1 + for f in fr: + den = den * f.denominator // math.gcd(den, f.denominator) + ints = [int(f * den) for f in fr] + gg = 0 + for x in ints: + gg = math.gcd(gg, abs(x)) + ints = [x // gg for x in ints] if gg else ints + first = next((x for x in ints if x), 1) + return [-x for x in ints] if first < 0 else ints + + +def frame_record(geo, ann_id): + """Exact integer description of the frame perp(ann): 'a' = integer annihilator rows (frame = common kernel) + when codim <= dim, else 'b' = integer basis rows. Both are primitive rows of the rational RREF.""" + h = geo.h + A = geo.T.rows[ann_id] + codim = len(A) + if codim <= h - codim: + rows = [primitive(r) for r in A] + return dict(dim=h - codim, a=rows) + B = geo.T.rows[geo.perp(ann_id)] + return dict(dim=h - codim, b=[primitive(r) for r in B]) + + +def dumps(obj): + return json.dumps(obj, sort_keys=True, separators=(',', ':')) + '\n' + + +def build(p, frozen_arcs=None, log=print): + mod = json.loads((HERE / 'data' / MODULES[p]).read_text()) + abo = pinned_all_but_one(QMODULES[p], p - 2) if p in QMODULES else all_but_one(p - 2) + dpath = HERE / 'data' / ('local_design_p%d.json' % p) + design = json.loads(dpath.read_text())['design'] if dpath.exists() else None + g = BitGraph(p).finish(mod, abo, merge=p == 12, l1=p == 12, design=design) + require(check_decoder(g) == 0, 'mod-2 decoder identity') + t0 = time.time() + prof, wit = compile_word(g, frozen=frozen_arcs) + log('compiled p=%d in %.1fs: R=%d arcs=%d plain=%d' % (p, time.time() - t0, prof['R'], prof['matched'], prof['plain'])) + gauges, H, Y, word = select_gauges(g, prof, wit) + prf = profile(prof, gauges, H, Y) + arcs = sorted([x - 1, wit['usecode'][u]] for x, u in wit['arcs'].items()) + cache = {} + geo = wit['geo'] + deg = sum(1 for x in wit['order'] if not nondeg_id(geo, geo.perp(wit['ann'][x]), cache)) + deg += sum(1 for U in wit['rframe'] if not nondeg_id(geo, U, cache)) + require(deg == 0, 'G-nondegenerate node and root frames') + out = dict(graph=dict(p=p, h=g['h'], v=g['v'], labels=g['labels'], args=g['args'], roots=g['roots'], + partner_mix=g['partner_mix'], pair_module_sha256=hashlib.sha256((HERE / 'data' / MODULES[p]).read_bytes()).hexdigest()), + compile=dict(plain_threshold=PLAIN, order=[x - 1 for x in wit['order']], plain=[x - 1 for x in wit['plain']], arcs=arcs), + word={k: v for k, v in word.items() if not k.startswith('_')}) + exp = export(p, g, prof, wit, word, prf) + return out, prf, arcs, exp + + +def export(p, g, prof, wit, word, prf): + """Plain-JSON gate files: graph, word (selection.json shape), exact frames, partial-K chronology.""" + geo, h, v = wit['geo'], g['h'], g['v'] + n, roots = wit['n'], wit['roots'] + ann = wit['ann'] + frames = {} + + def fid(a): + if a not in frames: + frames[a] = None + return a + node_frame = {str(x - 1): fid(ann[x]) for x in wit['order']} + root_frame = [fid(a) for a in wit['rann']] + gauges = [] + for z, A in zip(word['gauges'], word['_gauge_ann']): + gauges.append(dict(z, frame=fid(A))) + lab = g['labels'] + src_ann = [fid(geo.perp(geo.src[i])) for i in range(v)] + full = fid(0) + level2 = {} + for j, r in enumerate(g['roots']): + if r['kind'] == 'side' and len(r['targets']) == 2: + level2[tuple(sorted(r['targets']))] = j + kchron = [] + for mx in g['partner_mix']: + c, d = mx['carrier'], mx['passive'] + mixf = fid(geo.perp(geo.join(geo.src[c], geo.src[d]))) + j = level2[tuple(sorted(mx['receivers']))] + capf = root_frame[j] + require(geo.contained(capf, mixf), 'mix frame inside receivers cap') + kchron.append(dict(carrier=c, passive=d, receivers=mx['receivers'], mix_frame=mixf, deliver_frame=capf, + deliver_after_root=j, undo_frame=full, + carrier_chain=[src_ann[c], mixf, capf, full], passive_chain=[src_ann[d], mixf, full], + carrier_ranks=[1, h - 4, 2], passive_ranks=[1, h - 2])) + table = {str(a): frame_record(geo, a) for a in sorted(frames)} + conv = dict(target_covector='3*chi_T - 1 (target cap = {u : (3 chi_T - 1).u = 0} = H0-orthogonal complement of chi_T)', + gram='G = I - J/9 on Q^h (H0 = G/2, H0(chi_S,chi_T) = (|S cap T|-1)/2); nondegeneracy tested for G', + frame_ids='frame id = id of the canonical annihilator; record "a" lists integer annihilator rows (frame =' + ' common kernel), record "b" lists integer basis rows; id 0 (empty "a") is the full space Q^h', + ops='[dest, control, node]: dest ^= control at the frame of node (copies: dest is the fresh role)', + nodes='zero-based graph nodes; nodes < v are the source leaves (port index)') + graph = dict(p=p, h=h, v=v, labels=g['labels'], args=g['args'], + roots=[dict(r, coefficient=1) for r in g['roots']], partner_mix=g['partner_mix'], + decoder='mod 2: Y_T += sum of root nodes whose targets contain T (star roots: T reads star(c) for c in T;' + ' side roots; partner singles) + x_carrier + x_passive for each partner_mix entry receiving T;' + ' equals x_T = sum_{c in T} star(c) + sum_{|S cap T|=1} x_S') + wordj = dict(ops=word['ops'], sources=word['sources'], rootroles=word['rootroles'], phase1=word['phase1'], + gauges=gauges, order=[x - 1 for x in wit['order']], arcs=sorted([x - 1, wit['usecode'][u]] for x, u in wit['arcs'].items()), + plain=[x - 1 for x in wit['plain']], node_frame=node_frame, root_frame=root_frame, + source_frame=src_ann, full_frame=full, conventions=conv, + schedule='old-value reads of non-gauged roles (frame 0); V injections at ; ops in order (phase1 ops' + ' are those listed); centre copies read at 0; gauged old-value reads at their gauge frames' + ' (ascending per target); side root reads in root order; partial-K deliveries right after' + ' root deliver_after_root; undo at full frame; inverse ops; V removal') + return dict(graph=graph, word=wordj, frames=dict(h=h, P_used_for_ranks='2^127-1', conventions=conv, frames=table), + kchron=dict(h=h, entries=kchron, conventions=conv)) + + +def nested_prefix(n): + """Nested-prefix all-but-one module (QMOD lane; eumemic, Claude assistance): prefix p_{k+1} = p_k + x_k, suffix + s_k = x_k + s_{k+1}; y_0 = s_1, y_{n-1} = p_{n-1}, y_{i+1} = p_i + (x_i + s_{i+2}). Each prefix is used twice with + nested supports, which gives the carrier matching more links than the balanced tree. Contract-checked. It is the + seed of the pinned p = 12 module data/qmod_p12.json.""" + args = [None] * n + + def add(a, b): + args.append([a, b]) + return len(args) - 1 + pre = {1: 0} + for k in range(1, n - 1): + pre[k + 1] = add(pre[k], k) + suf = {n - 1: n - 1} + for k in range(n - 2, 0, -1): + suf[k] = add(k, suf[k + 1]) + roots = [None] * n + roots[0], roots[n - 1] = suf[1], pre[n - 1] + roots[1] = add(0, suf[2]) + for i in range(1, n - 2): + roots[i + 1] = add(pre[i], add(i, suf[i + 2])) + support = [] + for x, a in enumerate(args): + if a is None: + support.append(1 << x) + else: + require(0 <= a[0] < x and 0 <= a[1] < x and not support[a[0]] & support[a[1]], 'nested prefix disjoint') + support.append(support[a[0]] | support[a[1]]) + full = (1 << n) - 1 + require(all(support[r] == full ^ (1 << i) for i, r in enumerate(roots)), 'nested prefix all-but-one roots') + return dict(input_count=n, args=args, roots=roots) + + +def pinned_all_but_one(name, n): + """Pinned all-but-one module {input_count, args, roots} in data/ (eumemic, Claude assistance). The p = 12 + module was annealed from nested_prefix(10) by split-function moves, scored by the p = 12 bit word. + Contract-checked: disjoint supports, root i sums every input but i.""" + mod = json.loads((HERE / 'data' / name).read_text()) + args, roots = mod['args'], mod['roots'] + require(mod['input_count'] == n == len(roots) and args[:n] == [None] * n, 'pinned all-but-one arity') + support = [1 << x for x in range(n)] + for x, a in enumerate(args[n:], n): + require(a and 0 <= a[0] < x and 0 <= a[1] < x and not support[a[0]] & support[a[1]], 'pinned all-but-one disjoint') + support.append(support[a[0]] | support[a[1]]) + full = (1 << n) - 1 + require(all(support[r] == full ^ (1 << i) for i, r in enumerate(roots)), 'pinned all-but-one roots') + return dict(input_count=n, args=args, roots=roots) + + +def all_but_one(n): + """PR #144 modules.all_but_one (balanced binary tree upward sums and complementary downward sums).""" + args, support = [None] * n, [1 << i for i in range(n)] + by = {s: i for i, s in enumerate(support)} + + def add(a, b): + if a is None: + return b + if b is None: + return a + s = support[a] | support[b] + if s not in by: + by[s] = len(args); args.append([a, b]); support.append(s) + return by[s] + + def tree(lo, hi): + if hi - lo == 1: + return (lo, None, None) + mid = (lo + hi) // 2 + L, Rr = tree(lo, mid), tree(mid, hi) + return (add(L[0], Rr[0]), L, Rr) + roots = [None] * n + + def walk(t, outside): + x, L, Rr = t + if L is None: + roots[x] = outside + return + walk(L, add(outside, Rr[0])); walk(Rr, add(outside, L[0])) + walk(tree(0, n), None) + active, stack = set(range(n)), list(roots) + while stack: + x = stack.pop() + if x not in active: + active.add(x) + if args[x] is not None: + stack.extend(args[x]) + ids = sorted(active); ren = {x: i for i, x in enumerate(ids)} + return dict(input_count=n, args=[None if args[x] is None else [ren[y] for y in args[x]] for x in ids], roots=[ren[x] for x in roots]) + + +def main(): + require(not sys.flags.optimize, 'run without -O') + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--p', type=int, default=12) + ap.add_argument('--out', type=Path, default=HERE / 'out') + ap.add_argument('--check', action='store_true', help='regenerate from frozen arcs and compare byte-identically') + ap.add_argument('--solve-matching', action='store_true', help='recompute the carrier matching (Hopcroft-Karp)') + a = ap.parse_args() + a.out.mkdir(parents=True, exist_ok=True) + arcs_path = HERE / 'data' / ('arcs_p%d.json' % a.p) + frozen = None if a.solve_matching or not arcs_path.exists() else json.loads(arcs_path.read_text()) + out, prf, arcs, exp = build(a.p, frozen) + root = float_root(prf['child_histogram'], prf['W_per_vertex'], prf['m']) + word_bytes = gzip.compress(dumps(out).encode(), mtime=0) + prof_bytes = dumps(prf).encode() + names = {'word_p%d.json.gz' % a.p: word_bytes, 'profile_p%d.json' % a.p: prof_bytes} + for k, obj in exp.items(): + names['%s_p%d.json' % (k, a.p)] = dumps(obj).encode() + if a.check: + for name, data in names.items(): + old = (a.out / name).read_bytes() + if name.endswith('.gz'): # gzip bytes depend on the zlib build; compare the compressed content + old, data = gzip.decompress(old), gzip.decompress(data) + require(old == data, 'byte-identical regeneration of ' + name) + require(frozen is not None, 'frozen arcs present') + print('PASS p=%d: word and profile regenerate byte-identically (sha256 %s, %s)' % ( + a.p, hashlib.sha256(word_bytes).hexdigest()[:16], hashlib.sha256(prof_bytes).hexdigest()[:16])) + else: + for name, data in names.items(): + (a.out / name).write_bytes(data) + if frozen is None: + arcs_path.write_text(dumps(arcs)) + print('wrote p=%d: R=%d R/v=%.3f loss=%d deficit=%d W=%d gauges=%d float a_b=%.7e' % ( + a.p, prf['R'], prf['R'] / prf['v'], prf['loss'], prf['deficit_per_vertex'], prf['W_per_vertex'], + prf['selected_roles'], root)) + + +if __name__ == '__main__': + main() diff --git a/research/five-stage-gen5-banks/gen5bit/producer/regenerate.py b/research/five-stage-gen5-banks/gen5bit/producer/regenerate.py new file mode 100644 index 0000000000..b241b128d6 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/producer/regenerate.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +"""Rebuild gen5bit/selected/bit from the generator and the two physical-layer producers, and compare. + + python3 -B gen5bit/producer/regenerate.py --work /new/scratch/dir (about 2 minutes) + +1. paired_cube_bit_word.py --p 12 (frozen arcs data/arcs_p12.json) writes the virtual word; +2. make_physical.py adds the compensated reuse pairs and late recipient reads; +3. descent.py moves operation frames (PR200 physical-layer rules) and writes the physical word. +The five pinned files must be reproduced exactly (gzip members compared after decompression). +This is provenance only: verify.py admits the pinned files themselves and never runs a producer. +Prepared by DreamingOfClouds with Anthropic Claude assistance; Apache-2.0. +""" +import argparse, gzip, shutil, subprocess, sys +from pathlib import Path + +HERE = Path(__file__).resolve().parent +BIT = HERE.parent + +def main(): + ap = argparse.ArgumentParser(description=__doc__); ap.add_argument('--work', type=Path, required=True) + a = ap.parse_args(); work = a.work.resolve(); assert not work.exists(), 'work dir must be new' + raw, phys, pkg, final = work/'raw', work/'phys', work/'pkg', work/'final' + py = [sys.executable, '-B'] + subprocess.run(py + [str(HERE/'paired_cube_bit_word.py'), '--p', '12', '--out', str(raw)], check=True) + subprocess.run(py + [str(HERE/'make_physical.py'), '--src', str(raw), '--out', str(phys), '--bank-parity'], check=True) + (pkg/'selected').mkdir(parents=True) + shutil.copytree(BIT/'bit', pkg/'bit'); shutil.copytree(BIT/'references', pkg/'references') + shutil.copytree(phys, pkg/'selected/bit') + subprocess.run(py + [str(HERE/'descent.py'), str(pkg), str(final)], check=True) + pinned = BIT/'selected/bit' + for name in ('graph_p12.json', 'kchron_p12.json', 'profile_p12.json'): + assert (final/name).read_bytes() == (pinned/name).read_bytes(), name + for name in ('word_p12.json.gz', 'frames_p12.json.gz'): + assert gzip.decompress((final/name).read_bytes()) == gzip.decompress((pinned/name).read_bytes()), name + print('PASS gen5 regeneration: all five pinned bit-word files reproduced exactly') + +if __name__ == '__main__': + main() diff --git a/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/SOURCE.json b/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/SOURCE.json new file mode 100644 index 0000000000..c57edcae25 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/SOURCE.json @@ -0,0 +1,20 @@ +{ + "commit": "4a3c769e5c5430e7114c4d3e099ff34664677f17", + "files": { + "certificates/paired-cube-network.json": "05b253a21dc526b6039f56d1068162a19a8a4f29291ad94eb892656b88e9142d", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "research/paired-cube-bit/check_paired_cube_bit.py": "4d7c86cd999a1519e0dfb6dcf33a8f26e442a353c3665a0f06881216a260fbf3", + "scripts/certify.py": "2348d95008276c5d5764f7e028c3918e484582cd589bd4d9b82919161745e53e", + "scripts/paired_cube/__init__.py": "b5fb17c79fd41a75c0648e7a5f99076f9f42a619857d5e34e71699bf00ef0c91", + "scripts/paired_cube/closure.py": "e4b3086f4b5663297fe06f4646e1349f10d8647997989f17eef6ec4e84aec693", + "scripts/paired_cube/frames.py": "7d897418dbfee47de0723ea4983098a982610ccba45e1bac9000a79626d8421c", + "scripts/paired_cube/gauges.py": "8a501c66e1330f054e0e11a35e9321d2deea7b51cd03ca56b6a41765e43fe061", + "scripts/paired_cube/graph.py": "d10478ba509c7d8abcefcaaf7c5e0b580b9cd9cbe7777b3e49b2fe24620985c8", + "scripts/paired_cube/modules.py": "6c134f3d24c6cd9aca03763050aaf600005c126c09b35ac0ff5f040e0e29db87", + "scripts/paired_cube/verify.py": "b1eb42a91381ae031d97879f7c43e6c00fc4787e132ed60eb3e124994bdb7d35", + "scripts/paired_cube_physical.py": "9c9ea1ea29e551ab6116d7c8ca09f4703ff9e2fa102032d5055327fde07ba319" + }, + "pr": 168, + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "scope": "Byte-identical copies of the PR168 v4 files this package executes or pins (compiler frames/closure/gauges/graph/modules, physical checkers, package bit checker, parent certificate, frame theorem note), so the package is self-contained on main." +} diff --git a/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py b/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py new file mode 100644 index 0000000000..69d535a6c2 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py @@ -0,0 +1,465 @@ +#!/usr/bin/env python3 +"""Standalone checker for subset-port bit words with broadcast roots (paired-cube bit word with partner-pair +source mixing). Standard library only; independent of the generator (own exact integer linear algebra, own +register simulation). Refuses to run under python -O. + +Inputs (plain JSON written by paired_cube_bit_word.py): graph_pP.json, word_pP.json, frames_pP.json, +kchron_pP.json, profile_pP.json. Checks: + 1. exact frames: every frame record (integer annihilator rows 'a' or integer basis rows 'b') is completed to + the other representation by exact integer elimination; A.B^T = 0 exactly and rank A + rank B = h; + 2. the mod-2 decoder: supports of all additions are disjoint; for every target the deliveries (star roots, + side roots, partner singles, partner-pair sums) XOR to {T}; stars read are exactly the c in T and the + side part is exactly sum_{|S cap T|=1} x_S; + 3. geometry: source frames are the lines ; side root frames lie in every receiver's cap + ker(3 chi_T - 1) and equal the common cap of the group; centre frames are the star spans; the frame of + every addition contains its operands' frames; every root node's frame lies in its root frame; + 4. every role chain (start -> each op frame -> root frame -> full) is nested, including gauged starts + (sigma inside the first op frame, gauged roles untouched in phase one); every target chain (gauge reads + ascending, side root caps in root order, partner-pair delivery at the level-2 cap, final cap) is nested; + the partner-pair chronology: mix frame span{chi_c,chi_d} with H0-Gram I_2, contained in the receivers' + level-2 cap, carrier chain [, mix, cap, full] and passive chain [, mix, full] nested; + 5. G = I - J/9 nondegenerate on every frame used (exact integer determinant test); + 6. literal F2 replay with arbitrary dirty scratch: y = y0 + x, scratch and sources restored; + 7. independent ledger recount from the role chains equals the saved child histogram (PR #144 bit ledger); + 8. mutation controls (must all be REJECTED): broken partner mix, delivery outside the shared cap (full + frame), delivery below the level (face cap without span{chi_c,chi_d}), dropped star, non-nested role chain. +Usage: python3 check_paired_cube_bit.py --dir out --p 12 +""" +import argparse, json, random, sys +from collections import Counter, defaultdict +from math import gcd +from operator import mul +from pathlib import Path + +if sys.flags.optimize: + raise SystemExit('refusing to run under python -O: assertions are part of the check') + + +class Fail(Exception): + pass + + +def need(cond, msg): + if not cond: + raise Fail(msg) + + +# ------------------------------------------------------------------ exact integer linear algebra +def prim(v): + g = 0 + for x in v: + g = gcd(g, abs(x)) + if g > 1: + v = [x // g for x in v] + f = next((x for x in v if x), 0) + return tuple(-x for x in v) if f < 0 else tuple(v) + + +def reduce_rows(rows, h): + """Integer reduced echelon form: returns (rows, pivot columns); each pivot column is zero outside its row.""" + rows = [list(r) for r in rows] + out, pivs = [], [] + for r in rows: + for pr, pc in zip(out, pivs): + if r[pc]: + a, b = pr[pc], r[pc] + r = [x * a - y * b for x, y in zip(r, pr)] + r = list(prim(r)) + c = next((j for j in range(h) if r[j]), None) + if c is None: + continue + for i, (pr, pc) in enumerate(zip(out, pivs)): + if pr[c]: + a, b = r[c], pr[c] + out[i] = list(prim([x * a - y * b for x, y in zip(pr, r)])) + out.append(r); pivs.append(c) + return out, pivs + + +def kernel(rows, h): + red, pivs = reduce_rows(rows, h) + ps = set(pivs) + basis = [] + for f in range(h): + if f in ps: + continue + D = 1 + for r, c in zip(red, pivs): + if r[f]: + D = D * abs(r[c]) // gcd(D, abs(r[c])) + v = [0] * h + v[f] = D + for r, c in zip(red, pivs): + if r[f]: + v[c] = -r[f] * D // r[c] + basis.append(prim(v)) + return basis, len(red) + + +def rank(rows, h): + return len(reduce_rows(rows, h)[0]) + + +def dot(a, b): + return sum(map(mul, a, b)) + + +# ------------------------------------------------------------------ checker +class Checker: + def __init__(self, d, p, mutate=None): + self.mut = mutate + rd = lambda name: json.loads((d / ('%s_p%d.json' % (name, p))).read_text()) + self.g, self.w, self.fr, self.k, self.prof = rd('graph'), rd('word'), rd('frames'), rd('kchron'), rd('profile') + self.h, self.v = self.g['h'], self.g['v'] + if mutate == 'dropped_star': + j = next(i for i, r in enumerate(self.g['roots']) if r['kind'] == 'center') + self.g['roots'][j]['targets'] = [] + if mutate == 'broken_mix': + self.k['entries'][0]['skip_mix'] = True + if mutate == 'outside_cap': + # raise the mixed carrier past the receivers' shared cap (to the full frame) and deliver there + e = self.k['entries'][0] + e['deliver_frame'] = self.w['full_frame'] + e['carrier_chain'][2] = e['deliver_frame'] + if mutate == 'below_level': + # deliver at the receivers' level-1 (face) cap, which does not contain span{chi_c, chi_d} + e = self.k['entries'][0] + face = next(j for j, r in enumerate(self.g['roots']) if r['kind'] == 'side' and set(e['receivers']) < set(r['targets'])) + e['deliver_frame'] = self.w['root_frame'][face] + e['carrier_chain'][2] = e['deliver_frame'] + if mutate == 'non_nested': + # move one addition's frame down to the frame of its smallest operand's source line + x = next(int(k) for k, f in sorted(self.w['node_frame'].items(), key=lambda kv: int(kv[0])) if int(k) >= self.v and str(int(k)) not in set(map(str, self.w['plain']))) + self.w['node_frame'][str(x)] = self.w['source_frame'][0] + + # ---------------- frames + def frames(self): + h = self.h + self.A, self.B, self.dimf = {}, {}, {} + for key, rec in self.fr['frames'].items(): + f = int(key) + if 'a' in rec: + A = [tuple(r) for r in rec['a']] + need(rank(A, h) == len(A), 'independent annihilator rows %d' % f) + B, _ = kernel(A, h) + else: + B = [tuple(r) for r in rec['b']] + need(rank(B, h) == len(B), 'independent basis rows %d' % f) + A, _ = kernel(B, h) + need(len(A) + len(B) == h and len(B) == rec['dim'], 'dimensions of frame %d' % f) + need(all(dot(a, b) == 0 for a in A for b in B), 'A.B = 0 for frame %d' % f) + self.A[f], self.B[f], self.dimf[f] = A, B, len(B) + self.cc = {} + return len(self.A) + + def sub(self, f1, f2): + """frame f1 contained in frame f2 (exact)""" + if f1 == f2: + return True + key = (f1, f2) + r = self.cc.get(key) + if r is None: + B1, A2 = self.B[f1], self.A[f2] + r = len(B1) <= len(self.B[f2]) and all(dot(a, b) == 0 for a in A2 for b in B1) + self.cc[key] = r + return r + + def in_frame(self, vec, f): + return all(dot(a, vec) == 0 for a in self.A[f]) + + def nondeg(self, f): + h = self.h + B, A = self.B[f], self.A[f] + if not B or len(B) == h: + return True + if len(B) <= len(A): + s = [sum(b) for b in B] + M = [[9 * dot(B[i], B[j]) - s[i] * s[j] for j in range(len(B))] for i in range(len(B))] + return rank(M, len(B)) == len(B) + s = [sum(a) for a in A] + M = [[(9 - h) * dot(A[i], A[j]) + s[i] * s[j] for j in range(len(A))] for i in range(len(A))] + return rank(M, len(A)) == len(A) + + # ---------------- decoder + def decoder(self): + g, v = self.g, self.v + args = g['args'] + lab = [frozenset(l) for l in g['labels']] + sup = [1 << i for i in range(v)] + [0] * (len(args) - v) + for x in range(v, len(args)): + a, b = args[x] + need(not sup[a] & sup[b], 'support-disjoint addition %d' % x) + sup[x] = sup[a] | sup[b] + self.sup = sup + acc, stars, side = [0] * v, [set() for _ in range(v)], [0] * v + for r in g['roots']: + need(r.get('coefficient', 1) == 1, 'mod-2 unit coefficients') + for t in r['targets']: + acc[t] ^= sup[r['node']] + if r['kind'] == 'center': + stars[t].add(r['coordinate']) + else: + side[t] ^= sup[r['node']] + for e in self.k['entries']: + for t in e['receivers']: + acc[t] ^= (1 << e['carrier']) | (1 << e['passive']) + side[t] ^= (1 << e['carrier']) | (1 << e['passive']) + for t in range(v): + need(acc[t] == 1 << t, 'decoder identity at target %d' % t) + need(stars[t] == set(lab[t]), 'stars read by target %d' % t) + orth = sum(1 << s for s in range(v) if len(lab[s] & lab[t]) == 1) + need(side[t] == orth, 'side part = sum over |S cap T| = 1 at target %d' % t) + for r in g['roots']: + if r['kind'] == 'center': + c = r['coordinate'] + need(sup[r['node']] == sum(1 << s for s in range(v) if c in lab[s]), 'star support %d' % c) + + # ---------------- geometry and chains + def geometry(self): + g, w, h, v = self.g, self.w, self.h, self.v + lab = g['labels'] + chi = [tuple(1 if j in l else 0 for j in range(h)) for l in lab] + cov = [tuple((3 if j in l else 0) - 1 for j in range(h)) for l in lab] + nf = {int(k): f for k, f in w['node_frame'].items()} + rf = w['root_frame'] + full = w['full_frame'] + need(self.dimf[full] == h, 'full frame') + for s in range(v): + f = w['source_frame'][s] + need(self.dimf[f] == 1 and self.in_frame(chi[s], f), 'source line ') + args = g['args'] + for x, f in nf.items(): + if x < v: + need(self.in_frame(chi[x], f), 'leaf label inside its frame') + else: + for y in args[x]: + need(self.sub(nf[y], f), 'operand frame inside node frame (%d <- %d)' % (x, y)) + loss = 0 + for j, r in enumerate(g['roots']): + f = rf[j] + need(self.sub(nf[r['node']], f), 'root node frame inside root frame %d' % j) + if r['kind'] == 'center': + c = r['coordinate'] + S = [chi[s] for s in range(v) if c in lab[s]] + need(all(self.in_frame(x, f) for x in S) and rank(S, h) == self.dimf[f], 'centre frame = star span') + loss += self.dimf[f] + else: + need(all(dot(cov[t], b) == 0 for t in r['targets'] for b in self.B[f]), 'root frame inside caps') + need(self.dimf[f] == h - rank([cov[t] for t in r['targets']], h), 'root frame = common cap') + need(loss == self.prof['loss'], 'copied-centre loss') + self.chi, self.cov, self.nf, self.rf = chi, cov, nf, rf + + def chains(self): + """Role chains of the physical word and target chains; returns the recounted child histogram.""" + g, w, h, v = self.g, self.w, self.h, self.v + nf, rf, full = self.nf, self.rf, w['full_frame'] + ops, rootroles = w['ops'], w['rootroles'] + R = 1 + max(max(a, b) for a, b, _ in ops) + R = max(R, 1 + max(rootroles), 1 + max(w['sources'].values())) + need(R == self.prof['R'], 'role count') + start = {} + for leaf, s in w['sources'].items(): + start[s] = w['source_frame'][int(leaf)] + phase1 = set(w['phase1']) + touched_p1 = set() + for i in phase1: + touched_p1.update(ops[i][:2]) + # phase one = closure of the centre roots' last ops under per-role precedence (recomputed) + prev_op, pred = {}, [] + for i, (a, b, _) in enumerate(ops): + pred.append((prev_op.get(a, -1), prev_op.get(b, -1))) + prev_op[a] = prev_op[b] = i + stack = [prev_op[s] for r, s in zip(g['roots'], rootroles) if r['kind'] == 'center' and s in prev_op] + closure = set() + while stack: + i = stack.pop() + if i not in closure: + closure.add(i); stack.extend(j for j in pred[i] if j >= 0) + need(closure == phase1, 'phase one is the centre closure') + # conservative response support of every role (union incidence through the XOR word) + co = [0] * R + for j, (r, s) in enumerate(zip(g['roots'], rootroles)): + for t in r['targets']: + co[s] |= 1 << t + for a, b, _ in reversed(ops): + co[b] |= co[a] + gauge_of = {} + for z in w['gauges']: + need(sum(1 << t for t in z['targets']) == co[z['role']], 'gauge targets = response support of its role') + s = z['role'] + need(s not in start, 'gauged role is not a source role') + need(s not in touched_p1, 'gauged role untouched in phase one') + need(self.dimf[z['frame']] == z['dim'] and z['dim'] > 0, 'gauge dimension') + need(self.nondeg(z['frame']), 'gauge frame nondegenerate') + start[s] = z['frame']; gauge_of[s] = z + seq = defaultdict(list) + for i, (a, b, x) in enumerate(ops): + f = nf[x] + seq[a].append(f); seq[b].append(f) + for j, s in enumerate(rootroles): + seq[s].append(rf[j]) + H = Counter() + for s in range(R): + chain = [start.get(s)] + seq[s] + [full] + prev = chain[0] + dprev = 0 if prev is None else self.dimf[prev] + if prev is not None and s not in gauge_of: + H[1] += 1 # source role: injection frame (entrance child of width 1) + for f in chain[1:]: + if prev is not None: + need(self.sub(prev, f), 'nested role chain (role %d)' % s) + d = self.dimf[f] + need(d >= dprev, 'ascending role chain (role %d)' % s) + if d > dprev: + H[d - dprev] += 1 + prev, dprev = f, d + for j, r in enumerate(g['roots']): + if r['kind'] == 'center': + H[self.dimf[rf[j]]] += 1 # copied-centre transform + # partner-pair chronology + src = Counter() + lab = [set(l) for l in g['labels']] + for e in self.k['entries']: + c, d = e['carrier'], e['passive'] + need(len(lab[c] & lab[d]) == 1, 'carrier and passive orthogonal (H0-Gram I_2)') + mf, cf = e['mix_frame'], e['deliver_frame'] + need(self.dimf[mf] == 2 and self.in_frame(self.chi[c], mf) and self.in_frame(self.chi[d], mf), 'mix frame = span{chi_c, chi_d}') + need(self.nondeg(mf), 'mix frame nondegenerate') + need(self.sub(mf, cf), 'mix frame inside the receivers shared cap') + need(all(dot(self.cov[t], b) == 0 for t in e['receivers'] for b in self.B[cf]), 'delivery frame inside receiver caps') + need(e['carrier_chain'][0] == w['source_frame'][c] and e['passive_chain'][0] == w['source_frame'][d], 'chains start at source lines') + need(e['carrier_chain'][1:] == [mf, cf, w['full_frame']] and e['passive_chain'][1:] == [mf, w['full_frame']], 'chain shape') + for ch in (e['carrier_chain'], e['passive_chain']): + for f1, f2 in zip(ch, ch[1:]): + need(self.sub(f1, f2), 'nested source-register chain') + for f1, f2 in zip(ch, ch[1:]): + src[self.dimf[f2] - self.dimf[f1]] += 1 + # target chains: gauge reads (time order = reverse selection order), side caps in root order, + # partner-pair delivery at the level-2 cap right after its root, final cap + events = defaultdict(list) + for z in reversed(w['gauges']): + for t in z['targets']: + events[t].append(z['frame']) + deliveries = defaultdict(list) + for e in self.k['entries']: + deliveries[e['deliver_after_root']].append(e) + for j, r in enumerate(g['roots']): + if r['kind'] == 'center': + continue + for t in r['targets']: + events[t].append(rf[j]) + for e in deliveries.get(j, []): + need(sorted(e['receivers']) == sorted(r['targets']), 'delivery after the receivers own level-2 root') + for t in e['receivers']: + events[t].append(e['deliver_frame']) + Y = Counter() + cap = {} + for t in range(v): + capf = None + prev, dprev = None, 0 + for f in events[t]: + if prev is not None: + need(self.sub(prev, f), 'nested target chain (target %d)' % t) + need(all(dot(self.cov[t], b) == 0 for b in self.B[f]), 'target frame inside cap (target %d)' % t) + if self.dimf[f] > dprev: + Y[self.dimf[f] - dprev] += 1 + prev, dprev = f, self.dimf[f] + need(dprev <= h - 1, 'target chain below the cap') + Y[h - 1 - dprev] += 1 if h - 1 - dprev else 0 + # every source register is in exactly one mixing pair + members = Counter() + for e in self.k['entries']: + members[e['carrier']] += 1; members[e['passive']] += 1 + need(all(members[s] == 1 for s in range(v)), 'each source in exactly one partner pair') + for f in set(self.nf.values()) | set(self.rf): + need(self.nondeg(f), 'G-nondegenerate frame %d' % f) + return H, Y, src, R + + # ---------------- replay + def replay(self, seeds=3): + g, w, v = self.g, self.w, self.v + ops, rootroles = w['ops'], w['rootroles'] + R = self.prof['R'] + srcmap = {int(k): s for k, s in w['sources'].items()} + roots = g['roots'] + for seed in range(seeds): + rng = random.Random(1000 + seed) + x = [rng.getrandbits(1) for _ in range(v)] + y0 = [rng.getrandbits(1) for _ in range(v)] + z0 = [rng.getrandbits(1) for _ in range(R)] + X, Yv, z = x[:], y0[:], z0[:] + # y <- y - J M z (old-value response of the dirty scratch) + zd = z0[:] + for a, b, _ in ops: + zd[a] ^= zd[b] + for j, r in enumerate(roots): + for t in r['targets']: + Yv[t] ^= zd[rootroles[j]] + for leaf, s in srcmap.items(): # z <- z + V x (at the rank-one source lines) + z[s] ^= X[leaf] + for a, b, _ in ops: # z <- M z + z[a] ^= z[b] + for j, r in enumerate(roots): # y <- y + J z + for t in r['targets']: + Yv[t] ^= z[rootroles[j]] + for e in self.k['entries']: # partner-pair sums on the source registers + if not e.get('skip_mix'): + X[e['carrier']] ^= X[e['passive']] + for t in e['receivers']: + Yv[t] ^= X[e['carrier']] + for e in self.k['entries']: # undo at the full frame + if not e.get('skip_mix'): + X[e['carrier']] ^= X[e['passive']] + for a, b, _ in reversed(ops): # z <- M^-1 z + z[a] ^= z[b] + for leaf, s in srcmap.items(): # z <- z - V x + z[s] ^= X[leaf] + need(all(Yv[t] == y0[t] ^ x[t] for t in range(v)), 'replay: y = y0 + x (seed %d)' % seed) + need(z == z0 and X == x, 'replay: scratch and sources restored (seed %d)' % seed) + + def run(self): + nfr = self.frames() + self.decoder() + self.geometry() + H, Y, src, R = self.chains() + self.replay() + h, v = self.h, self.v + m, W = 3 * h, 2 * v + R + C = Counter() + for part in (H, Y, src): + for r, c in part.items(): + if r and c: + C[r] += 3 * c + for z in self.w['gauges']: + C[3 * z['dim']] += 1 + C[2] += 2 * v + saved = {int(k): c for k, c in self.prof['child_histogram'].items()} + need(dict(C) == saved, 'independent recount equals the saved child histogram') + mass = sum(r * c for r, c in C.items()) + need(W == self.prof['W_per_vertex'] and W * m - mass == 2 * v - 3 * self.prof['loss'] == self.prof['deficit_per_vertex'], + 'W = 2v + R and deficit 2v - 3 ell') + return dict(frames=nfr, roles=R, W=W, m=m, deficit=W * m - mass, children=sum(C.values())) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--dir', type=Path, default=Path(__file__).resolve().parent / 'out') + ap.add_argument('--p', type=int, default=12) + ap.add_argument('--no-controls', action='store_true') + a = ap.parse_args() + res = Checker(a.dir, a.p).run() + print('PASS p=%d: %s' % (a.p, res)) + if a.no_controls: + return + for m in ('broken_mix', 'outside_cap', 'below_level', 'dropped_star', 'non_nested'): + try: + Checker(a.dir, a.p, mutate=m).run() + except Fail as e: + print('control %-13s REJECTED: %s' % (m, e)) + continue + raise SystemExit('FAIL: control %s was accepted' % m) + print('PASS: all 5 mutation controls rejected') + + +if __name__ == '__main__': + main() diff --git a/research/five-stage-gen5-banks/gen5bit/selected/bit/frames_p12.json.gz b/research/five-stage-gen5-banks/gen5bit/selected/bit/frames_p12.json.gz new file mode 100644 index 0000000000..183b8bcd56 Binary files /dev/null and b/research/five-stage-gen5-banks/gen5bit/selected/bit/frames_p12.json.gz differ diff --git a/research/five-stage-gen5-banks/gen5bit/selected/bit/graph_p12.json b/research/five-stage-gen5-banks/gen5bit/selected/bit/graph_p12.json new file mode 100644 index 0000000000..a9991b2114 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/selected/bit/graph_p12.json @@ -0,0 +1 @@ +{"args":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[0,2],[1,3],[1760,1761],[4,6],[5,7],[1763,1764],[1,4],[0,1766],[5,1767],[2,6],[3,7],[1769,1770],[2,1763],[0,1772],[7,1761],[5,1774],[0,6],[1,7],[1776,1777],[2,4],[3,5],[1779,1780],[1760,1764],[3,1766],[6,1783],[0,4],[1770,1785],[1,5],[1769,1787],[8,10],[9,11],[1789,1790],[12,14],[13,15],[1792,1793],[9,12],[8,1795],[13,1796],[10,14],[11,15],[1798,1799],[10,1792],[8,1801],[15,1790],[13,1803],[8,14],[9,15],[1805,1806],[10,12],[11,13],[1808,1809],[1789,1793],[11,1795],[14,1812],[8,12],[1799,1814],[9,13],[1798,1816],[16,18],[17,19],[1818,1819],[20,22],[21,23],[1821,1822],[17,20],[16,1824],[21,1825],[18,22],[19,23],[1827,1828],[18,1821],[16,1830],[23,1819],[21,1832],[16,22],[17,23],[1834,1835],[18,20],[19,21],[1837,1838],[1818,1822],[19,1824],[22,1841],[16,20],[1828,1843],[17,21],[1827,1845],[24,26],[25,27],[1847,1848],[28,30],[29,31],[1850,1851],[25,28],[24,1853],[29,1854],[26,30],[27,31],[1856,1857],[26,1850],[24,1859],[31,1848],[29,1861],[24,30],[25,31],[1863,1864],[26,28],[27,29],[1866,1867],[1847,1851],[27,1853],[30,1870],[24,28],[1857,1872],[25,29],[1856,1874],[32,34],[33,35],[1876,1877],[36,38],[37,39],[1879,1880],[33,36],[32,1882],[37,1883],[34,38],[35,39],[1885,1886],[34,1879],[32,1888],[39,1877],[37,1890],[32,38],[33,39],[1892,1893],[34,36],[35,37],[1895,1896],[1876,1880],[35,1882],[38,1899],[32,36],[1886,1901],[33,37],[1885,1903],[40,42],[41,43],[1905,1906],[44,46],[45,47],[1908,1909],[41,44],[40,1911],[45,1912],[42,46],[43,47],[1914,1915],[42,1908],[40,1917],[47,1906],[45,1919],[40,46],[41,47],[1921,1922],[42,44],[43,45],[1924,1925],[1905,1909],[43,1911],[46,1928],[40,44],[1915,1930],[41,45],[1914,1932],[48,50],[49,51],[1934,1935],[52,54],[53,55],[1937,1938],[49,52],[48,1940],[53,1941],[50,54],[51,55],[1943,1944],[50,1937],[48,1946],[55,1935],[53,1948],[48,54],[49,55],[1950,1951],[50,52],[51,53],[1953,1954],[1934,1938],[51,1940],[54,1957],[48,52],[1944,1959],[49,53],[1943,1961],[56,58],[57,59],[1963,1964],[60,62],[61,63],[1966,1967],[57,60],[56,1969],[61,1970],[58,62],[59,63],[1972,1973],[58,1966],[56,1975],[63,1964],[61,1977],[56,62],[57,63],[1979,1980],[58,60],[59,61],[1982,1983],[1963,1967],[59,1969],[62,1986],[56,60],[1973,1988],[57,61],[1972,1990],[64,66],[65,67],[1992,1993],[68,70],[69,71],[1995,1996],[65,68],[64,1998],[69,1999],[66,70],[67,71],[2001,2002],[66,1995],[64,2004],[71,1993],[69,2006],[64,70],[65,71],[2008,2009],[66,68],[67,69],[2011,2012],[1992,1996],[67,1998],[70,2015],[64,68],[2002,2017],[65,69],[2001,2019],[72,74],[73,75],[2021,2022],[76,78],[77,79],[2024,2025],[73,76],[72,2027],[77,2028],[74,78],[75,79],[2030,2031],[74,2024],[72,2033],[79,2022],[77,2035],[72,78],[73,79],[2037,2038],[74,76],[75,77],[2040,2041],[2021,2025],[75,2027],[78,2044],[72,76],[2031,2046],[73,77],[2030,2048],[80,82],[81,83],[2050,2051],[84,86],[85,87],[2053,2054],[81,84],[80,2056],[85,2057],[82,86],[83,87],[2059,2060],[82,2053],[80,2062],[87,2051],[85,2064],[80,86],[81,87],[2066,2067],[82,84],[83,85],[2069,2070],[2050,2054],[83,2056],[86,2073],[80,84],[2060,2075],[81,85],[2059,2077],[88,90],[89,91],[2079,2080],[92,94],[93,95],[2082,2083],[89,92],[88,2085],[93,2086],[90,94],[91,95],[2088,2089],[90,2082],[88,2091],[95,2080],[93,2093],[88,94],[89,95],[2095,2096],[90,92],[91,93],[2098,2099],[2079,2083],[91,2085],[94,2102],[88,92],[2089,2104],[89,93],[2088,2106],[96,98],[97,99],[2108,2109],[100,102],[101,103],[2111,2112],[97,100],[96,2114],[101,2115],[98,102],[99,103],[2117,2118],[98,2111],[96,2120],[103,2109],[101,2122],[96,102],[97,103],[2124,2125],[98,100],[99,101],[2127,2128],[2108,2112],[99,2114],[102,2131],[96,100],[2118,2133],[97,101],[2117,2135],[104,106],[105,107],[2137,2138],[108,110],[109,111],[2140,2141],[105,108],[104,2143],[109,2144],[106,110],[107,111],[2146,2147],[106,2140],[104,2149],[111,2138],[109,2151],[104,110],[105,111],[2153,2154],[106,108],[107,109],[2156,2157],[2137,2141],[107,2143],[110,2160],[104,108],[2147,2162],[105,109],[2146,2164],[112,114],[113,115],[2166,2167],[116,118],[117,119],[2169,2170],[113,116],[112,2172],[117,2173],[114,118],[115,119],[2175,2176],[114,2169],[112,2178],[119,2167],[117,2180],[112,118],[113,119],[2182,2183],[114,116],[115,117],[2185,2186],[2166,2170],[115,2172],[118,2189],[112,116],[2176,2191],[113,117],[2175,2193],[120,122],[121,123],[2195,2196],[124,126],[125,127],[2198,2199],[121,124],[120,2201],[125,2202],[122,126],[123,127],[2204,2205],[122,2198],[120,2207],[127,2196],[125,2209],[120,126],[121,127],[2211,2212],[122,124],[123,125],[2214,2215],[2195,2199],[123,2201],[126,2218],[120,124],[2205,2220],[121,125],[2204,2222],[128,130],[129,131],[2224,2225],[132,134],[133,135],[2227,2228],[129,132],[128,2230],[133,2231],[130,134],[131,135],[2233,2234],[130,2227],[128,2236],[135,2225],[133,2238],[128,134],[129,135],[2240,2241],[130,132],[131,133],[2243,2244],[2224,2228],[131,2230],[134,2247],[128,132],[2234,2249],[129,133],[2233,2251],[136,138],[137,139],[2253,2254],[140,142],[141,143],[2256,2257],[137,140],[136,2259],[141,2260],[138,142],[139,143],[2262,2263],[138,2256],[136,2265],[143,2254],[141,2267],[136,142],[137,143],[2269,2270],[138,140],[139,141],[2272,2273],[2253,2257],[139,2259],[142,2276],[136,140],[2263,2278],[137,141],[2262,2280],[144,146],[145,147],[2282,2283],[148,150],[149,151],[2285,2286],[145,148],[144,2288],[149,2289],[146,150],[147,151],[2291,2292],[146,2285],[144,2294],[151,2283],[149,2296],[144,150],[145,151],[2298,2299],[146,148],[147,149],[2301,2302],[2282,2286],[147,2288],[150,2305],[144,148],[2292,2307],[145,149],[2291,2309],[152,154],[153,155],[2311,2312],[156,158],[157,159],[2314,2315],[153,156],[152,2317],[157,2318],[154,158],[155,159],[2320,2321],[154,2314],[152,2323],[159,2312],[157,2325],[152,158],[153,159],[2327,2328],[154,156],[155,157],[2330,2331],[2311,2315],[155,2317],[158,2334],[152,156],[2321,2336],[153,157],[2320,2338],[160,162],[161,163],[2340,2341],[164,166],[165,167],[2343,2344],[161,164],[160,2346],[165,2347],[162,166],[163,167],[2349,2350],[162,2343],[160,2352],[167,2341],[165,2354],[160,166],[161,167],[2356,2357],[162,164],[163,165],[2359,2360],[2340,2344],[163,2346],[166,2363],[160,164],[2350,2365],[161,165],[2349,2367],[168,170],[169,171],[2369,2370],[172,174],[173,175],[2372,2373],[169,172],[168,2375],[173,2376],[170,174],[171,175],[2378,2379],[170,2372],[168,2381],[175,2370],[173,2383],[168,174],[169,175],[2385,2386],[170,172],[171,173],[2388,2389],[2369,2373],[171,2375],[174,2392],[168,172],[2379,2394],[169,173],[2378,2396],[176,178],[177,179],[2398,2399],[180,182],[181,183],[2401,2402],[177,180],[176,2404],[181,2405],[178,182],[179,183],[2407,2408],[178,2401],[176,2410],[183,2399],[181,2412],[176,182],[177,183],[2414,2415],[178,180],[179,181],[2417,2418],[2398,2402],[179,2404],[182,2421],[176,180],[2408,2423],[177,181],[2407,2425],[184,186],[185,187],[2427,2428],[188,190],[189,191],[2430,2431],[185,188],[184,2433],[189,2434],[186,190],[187,191],[2436,2437],[186,2430],[184,2439],[191,2428],[189,2441],[184,190],[185,191],[2443,2444],[186,188],[187,189],[2446,2447],[2427,2431],[187,2433],[190,2450],[184,188],[2437,2452],[185,189],[2436,2454],[192,194],[193,195],[2456,2457],[196,198],[197,199],[2459,2460],[193,196],[192,2462],[197,2463],[194,198],[195,199],[2465,2466],[194,2459],[192,2468],[199,2457],[197,2470],[192,198],[193,199],[2472,2473],[194,196],[195,197],[2475,2476],[2456,2460],[195,2462],[198,2479],[192,196],[2466,2481],[193,197],[2465,2483],[200,202],[201,203],[2485,2486],[204,206],[205,207],[2488,2489],[201,204],[200,2491],[205,2492],[202,206],[203,207],[2494,2495],[202,2488],[200,2497],[207,2486],[205,2499],[200,206],[201,207],[2501,2502],[202,204],[203,205],[2504,2505],[2485,2489],[203,2491],[206,2508],[200,204],[2495,2510],[201,205],[2494,2512],[208,210],[209,211],[2514,2515],[212,214],[213,215],[2517,2518],[209,212],[208,2520],[213,2521],[210,214],[211,215],[2523,2524],[210,2517],[208,2526],[215,2515],[213,2528],[208,214],[209,215],[2530,2531],[210,212],[211,213],[2533,2534],[2514,2518],[211,2520],[214,2537],[208,212],[2524,2539],[209,213],[2523,2541],[216,218],[217,219],[2543,2544],[220,222],[221,223],[2546,2547],[217,220],[216,2549],[221,2550],[218,222],[219,223],[2552,2553],[218,2546],[216,2555],[223,2544],[221,2557],[216,222],[217,223],[2559,2560],[218,220],[219,221],[2562,2563],[2543,2547],[219,2549],[222,2566],[216,220],[2553,2568],[217,221],[2552,2570],[224,226],[225,227],[2572,2573],[228,230],[229,231],[2575,2576],[225,228],[224,2578],[229,2579],[226,230],[227,231],[2581,2582],[226,2575],[224,2584],[231,2573],[229,2586],[224,230],[225,231],[2588,2589],[226,228],[227,229],[2591,2592],[2572,2576],[227,2578],[230,2595],[224,228],[2582,2597],[225,229],[2581,2599],[232,234],[233,235],[2601,2602],[236,238],[237,239],[2604,2605],[233,236],[232,2607],[237,2608],[234,238],[235,239],[2610,2611],[234,2604],[232,2613],[239,2602],[237,2615],[232,238],[233,239],[2617,2618],[234,236],[235,237],[2620,2621],[2601,2605],[235,2607],[238,2624],[232,236],[2611,2626],[233,237],[2610,2628],[240,242],[241,243],[2630,2631],[244,246],[245,247],[2633,2634],[241,244],[240,2636],[245,2637],[242,246],[243,247],[2639,2640],[242,2633],[240,2642],[247,2631],[245,2644],[240,246],[241,247],[2646,2647],[242,244],[243,245],[2649,2650],[2630,2634],[243,2636],[246,2653],[240,244],[2640,2655],[241,245],[2639,2657],[248,250],[249,251],[2659,2660],[252,254],[253,255],[2662,2663],[249,252],[248,2665],[253,2666],[250,254],[251,255],[2668,2669],[250,2662],[248,2671],[255,2660],[253,2673],[248,254],[249,255],[2675,2676],[250,252],[251,253],[2678,2679],[2659,2663],[251,2665],[254,2682],[248,252],[2669,2684],[249,253],[2668,2686],[256,258],[257,259],[2688,2689],[260,262],[261,263],[2691,2692],[257,260],[256,2694],[261,2695],[258,262],[259,263],[2697,2698],[258,2691],[256,2700],[263,2689],[261,2702],[256,262],[257,263],[2704,2705],[258,260],[259,261],[2707,2708],[2688,2692],[259,2694],[262,2711],[256,260],[2698,2713],[257,261],[2697,2715],[264,266],[265,267],[2717,2718],[268,270],[269,271],[2720,2721],[265,268],[264,2723],[269,2724],[266,270],[267,271],[2726,2727],[266,2720],[264,2729],[271,2718],[269,2731],[264,270],[265,271],[2733,2734],[266,268],[267,269],[2736,2737],[2717,2721],[267,2723],[270,2740],[264,268],[2727,2742],[265,269],[2726,2744],[272,274],[273,275],[2746,2747],[276,278],[277,279],[2749,2750],[273,276],[272,2752],[277,2753],[274,278],[275,279],[2755,2756],[274,2749],[272,2758],[279,2747],[277,2760],[272,278],[273,279],[2762,2763],[274,276],[275,277],[2765,2766],[2746,2750],[275,2752],[278,2769],[272,276],[2756,2771],[273,277],[2755,2773],[280,282],[281,283],[2775,2776],[284,286],[285,287],[2778,2779],[281,284],[280,2781],[285,2782],[282,286],[283,287],[2784,2785],[282,2778],[280,2787],[287,2776],[285,2789],[280,286],[281,287],[2791,2792],[282,284],[283,285],[2794,2795],[2775,2779],[283,2781],[286,2798],[280,284],[2785,2800],[281,285],[2784,2802],[288,290],[289,291],[2804,2805],[292,294],[293,295],[2807,2808],[289,292],[288,2810],[293,2811],[290,294],[291,295],[2813,2814],[290,2807],[288,2816],[295,2805],[293,2818],[288,294],[289,295],[2820,2821],[290,292],[291,293],[2823,2824],[2804,2808],[291,2810],[294,2827],[288,292],[2814,2829],[289,293],[2813,2831],[296,298],[297,299],[2833,2834],[300,302],[301,303],[2836,2837],[297,300],[296,2839],[301,2840],[298,302],[299,303],[2842,2843],[298,2836],[296,2845],[303,2834],[301,2847],[296,302],[297,303],[2849,2850],[298,300],[299,301],[2852,2853],[2833,2837],[299,2839],[302,2856],[296,300],[2843,2858],[297,301],[2842,2860],[304,306],[305,307],[2862,2863],[308,310],[309,311],[2865,2866],[305,308],[304,2868],[309,2869],[306,310],[307,311],[2871,2872],[306,2865],[304,2874],[311,2863],[309,2876],[304,310],[305,311],[2878,2879],[306,308],[307,309],[2881,2882],[2862,2866],[307,2868],[310,2885],[304,308],[2872,2887],[305,309],[2871,2889],[312,314],[313,315],[2891,2892],[316,318],[317,319],[2894,2895],[313,316],[312,2897],[317,2898],[314,318],[315,319],[2900,2901],[314,2894],[312,2903],[319,2892],[317,2905],[312,318],[313,319],[2907,2908],[314,316],[315,317],[2910,2911],[2891,2895],[315,2897],[318,2914],[312,316],[2901,2916],[313,317],[2900,2918],[320,322],[321,323],[2920,2921],[324,326],[325,327],[2923,2924],[321,324],[320,2926],[325,2927],[322,326],[323,327],[2929,2930],[322,2923],[320,2932],[327,2921],[325,2934],[320,326],[321,327],[2936,2937],[322,324],[323,325],[2939,2940],[2920,2924],[323,2926],[326,2943],[320,324],[2930,2945],[321,325],[2929,2947],[328,330],[329,331],[2949,2950],[332,334],[333,335],[2952,2953],[329,332],[328,2955],[333,2956],[330,334],[331,335],[2958,2959],[330,2952],[328,2961],[335,2950],[333,2963],[328,334],[329,335],[2965,2966],[330,332],[331,333],[2968,2969],[2949,2953],[331,2955],[334,2972],[328,332],[2959,2974],[329,333],[2958,2976],[336,338],[337,339],[2978,2979],[340,342],[341,343],[2981,2982],[337,340],[336,2984],[341,2985],[338,342],[339,343],[2987,2988],[338,2981],[336,2990],[343,2979],[341,2992],[336,342],[337,343],[2994,2995],[338,340],[339,341],[2997,2998],[2978,2982],[339,2984],[342,3001],[336,340],[2988,3003],[337,341],[2987,3005],[344,346],[345,347],[3007,3008],[348,350],[349,351],[3010,3011],[345,348],[344,3013],[349,3014],[346,350],[347,351],[3016,3017],[346,3010],[344,3019],[351,3008],[349,3021],[344,350],[345,351],[3023,3024],[346,348],[347,349],[3026,3027],[3007,3011],[347,3013],[350,3030],[344,348],[3017,3032],[345,349],[3016,3034],[352,354],[353,355],[3036,3037],[356,358],[357,359],[3039,3040],[353,356],[352,3042],[357,3043],[354,358],[355,359],[3045,3046],[354,3039],[352,3048],[359,3037],[357,3050],[352,358],[353,359],[3052,3053],[354,356],[355,357],[3055,3056],[3036,3040],[355,3042],[358,3059],[352,356],[3046,3061],[353,357],[3045,3063],[360,362],[361,363],[3065,3066],[364,366],[365,367],[3068,3069],[361,364],[360,3071],[365,3072],[362,366],[363,367],[3074,3075],[362,3068],[360,3077],[367,3066],[365,3079],[360,366],[361,367],[3081,3082],[362,364],[363,365],[3084,3085],[3065,3069],[363,3071],[366,3088],[360,364],[3075,3090],[361,365],[3074,3092],[368,370],[369,371],[3094,3095],[372,374],[373,375],[3097,3098],[369,372],[368,3100],[373,3101],[370,374],[371,375],[3103,3104],[370,3097],[368,3106],[375,3095],[373,3108],[368,374],[369,375],[3110,3111],[370,372],[371,373],[3113,3114],[3094,3098],[371,3100],[374,3117],[368,372],[3104,3119],[369,373],[3103,3121],[376,378],[377,379],[3123,3124],[380,382],[381,383],[3126,3127],[377,380],[376,3129],[381,3130],[378,382],[379,383],[3132,3133],[378,3126],[376,3135],[383,3124],[381,3137],[376,382],[377,383],[3139,3140],[378,380],[379,381],[3142,3143],[3123,3127],[379,3129],[382,3146],[376,380],[3133,3148],[377,381],[3132,3150],[384,386],[385,387],[3152,3153],[388,390],[389,391],[3155,3156],[385,388],[384,3158],[389,3159],[386,390],[387,391],[3161,3162],[386,3155],[384,3164],[391,3153],[389,3166],[384,390],[385,391],[3168,3169],[386,388],[387,389],[3171,3172],[3152,3156],[387,3158],[390,3175],[384,388],[3162,3177],[385,389],[3161,3179],[392,394],[393,395],[3181,3182],[396,398],[397,399],[3184,3185],[393,396],[392,3187],[397,3188],[394,398],[395,399],[3190,3191],[394,3184],[392,3193],[399,3182],[397,3195],[392,398],[393,399],[3197,3198],[394,396],[395,397],[3200,3201],[3181,3185],[395,3187],[398,3204],[392,396],[3191,3206],[393,397],[3190,3208],[400,402],[401,403],[3210,3211],[404,406],[405,407],[3213,3214],[401,404],[400,3216],[405,3217],[402,406],[403,407],[3219,3220],[402,3213],[400,3222],[407,3211],[405,3224],[400,406],[401,407],[3226,3227],[402,404],[403,405],[3229,3230],[3210,3214],[403,3216],[406,3233],[400,404],[3220,3235],[401,405],[3219,3237],[408,410],[409,411],[3239,3240],[412,414],[413,415],[3242,3243],[409,412],[408,3245],[413,3246],[410,414],[411,415],[3248,3249],[410,3242],[408,3251],[415,3240],[413,3253],[408,414],[409,415],[3255,3256],[410,412],[411,413],[3258,3259],[3239,3243],[411,3245],[414,3262],[408,412],[3249,3264],[409,413],[3248,3266],[416,418],[417,419],[3268,3269],[420,422],[421,423],[3271,3272],[417,420],[416,3274],[421,3275],[418,422],[419,423],[3277,3278],[418,3271],[416,3280],[423,3269],[421,3282],[416,422],[417,423],[3284,3285],[418,420],[419,421],[3287,3288],[3268,3272],[419,3274],[422,3291],[416,420],[3278,3293],[417,421],[3277,3295],[424,426],[425,427],[3297,3298],[428,430],[429,431],[3300,3301],[425,428],[424,3303],[429,3304],[426,430],[427,431],[3306,3307],[426,3300],[424,3309],[431,3298],[429,3311],[424,430],[425,431],[3313,3314],[426,428],[427,429],[3316,3317],[3297,3301],[427,3303],[430,3320],[424,428],[3307,3322],[425,429],[3306,3324],[432,434],[433,435],[3326,3327],[436,438],[437,439],[3329,3330],[433,436],[432,3332],[437,3333],[434,438],[435,439],[3335,3336],[434,3329],[432,3338],[439,3327],[437,3340],[432,438],[433,439],[3342,3343],[434,436],[435,437],[3345,3346],[3326,3330],[435,3332],[438,3349],[432,436],[3336,3351],[433,437],[3335,3353],[440,442],[441,443],[3355,3356],[444,446],[445,447],[3358,3359],[441,444],[440,3361],[445,3362],[442,446],[443,447],[3364,3365],[442,3358],[440,3367],[447,3356],[445,3369],[440,446],[441,447],[3371,3372],[442,444],[443,445],[3374,3375],[3355,3359],[443,3361],[446,3378],[440,444],[3365,3380],[441,445],[3364,3382],[448,450],[449,451],[3384,3385],[452,454],[453,455],[3387,3388],[449,452],[448,3390],[453,3391],[450,454],[451,455],[3393,3394],[450,3387],[448,3396],[455,3385],[453,3398],[448,454],[449,455],[3400,3401],[450,452],[451,453],[3403,3404],[3384,3388],[451,3390],[454,3407],[448,452],[3394,3409],[449,453],[3393,3411],[456,458],[457,459],[3413,3414],[460,462],[461,463],[3416,3417],[457,460],[456,3419],[461,3420],[458,462],[459,463],[3422,3423],[458,3416],[456,3425],[463,3414],[461,3427],[456,462],[457,463],[3429,3430],[458,460],[459,461],[3432,3433],[3413,3417],[459,3419],[462,3436],[456,460],[3423,3438],[457,461],[3422,3440],[464,466],[465,467],[3442,3443],[468,470],[469,471],[3445,3446],[465,468],[464,3448],[469,3449],[466,470],[467,471],[3451,3452],[466,3445],[464,3454],[471,3443],[469,3456],[464,470],[465,471],[3458,3459],[466,468],[467,469],[3461,3462],[3442,3446],[467,3448],[470,3465],[464,468],[3452,3467],[465,469],[3451,3469],[472,474],[473,475],[3471,3472],[476,478],[477,479],[3474,3475],[473,476],[472,3477],[477,3478],[474,478],[475,479],[3480,3481],[474,3474],[472,3483],[479,3472],[477,3485],[472,478],[473,479],[3487,3488],[474,476],[475,477],[3490,3491],[3471,3475],[475,3477],[478,3494],[472,476],[3481,3496],[473,477],[3480,3498],[480,482],[481,483],[3500,3501],[484,486],[485,487],[3503,3504],[481,484],[480,3506],[485,3507],[482,486],[483,487],[3509,3510],[482,3503],[480,3512],[487,3501],[485,3514],[480,486],[481,487],[3516,3517],[482,484],[483,485],[3519,3520],[3500,3504],[483,3506],[486,3523],[480,484],[3510,3525],[481,485],[3509,3527],[488,490],[489,491],[3529,3530],[492,494],[493,495],[3532,3533],[489,492],[488,3535],[493,3536],[490,494],[491,495],[3538,3539],[490,3532],[488,3541],[495,3530],[493,3543],[488,494],[489,495],[3545,3546],[490,492],[491,493],[3548,3549],[3529,3533],[491,3535],[494,3552],[488,492],[3539,3554],[489,493],[3538,3556],[496,498],[497,499],[3558,3559],[500,502],[501,503],[3561,3562],[497,500],[496,3564],[501,3565],[498,502],[499,503],[3567,3568],[498,3561],[496,3570],[503,3559],[501,3572],[496,502],[497,503],[3574,3575],[498,500],[499,501],[3577,3578],[3558,3562],[499,3564],[502,3581],[496,500],[3568,3583],[497,501],[3567,3585],[504,506],[505,507],[3587,3588],[508,510],[509,511],[3590,3591],[505,508],[504,3593],[509,3594],[506,510],[507,511],[3596,3597],[506,3590],[504,3599],[511,3588],[509,3601],[504,510],[505,511],[3603,3604],[506,508],[507,509],[3606,3607],[3587,3591],[507,3593],[510,3610],[504,508],[3597,3612],[505,509],[3596,3614],[512,514],[513,515],[3616,3617],[516,518],[517,519],[3619,3620],[513,516],[512,3622],[517,3623],[514,518],[515,519],[3625,3626],[514,3619],[512,3628],[519,3617],[517,3630],[512,518],[513,519],[3632,3633],[514,516],[515,517],[3635,3636],[3616,3620],[515,3622],[518,3639],[512,516],[3626,3641],[513,517],[3625,3643],[520,522],[521,523],[3645,3646],[524,526],[525,527],[3648,3649],[521,524],[520,3651],[525,3652],[522,526],[523,527],[3654,3655],[522,3648],[520,3657],[527,3646],[525,3659],[520,526],[521,527],[3661,3662],[522,524],[523,525],[3664,3665],[3645,3649],[523,3651],[526,3668],[520,524],[3655,3670],[521,525],[3654,3672],[528,530],[529,531],[3674,3675],[532,534],[533,535],[3677,3678],[529,532],[528,3680],[533,3681],[530,534],[531,535],[3683,3684],[530,3677],[528,3686],[535,3675],[533,3688],[528,534],[529,535],[3690,3691],[530,532],[531,533],[3693,3694],[3674,3678],[531,3680],[534,3697],[528,532],[3684,3699],[529,533],[3683,3701],[536,538],[537,539],[3703,3704],[540,542],[541,543],[3706,3707],[537,540],[536,3709],[541,3710],[538,542],[539,543],[3712,3713],[538,3706],[536,3715],[543,3704],[541,3717],[536,542],[537,543],[3719,3720],[538,540],[539,541],[3722,3723],[3703,3707],[539,3709],[542,3726],[536,540],[3713,3728],[537,541],[3712,3730],[544,546],[545,547],[3732,3733],[548,550],[549,551],[3735,3736],[545,548],[544,3738],[549,3739],[546,550],[547,551],[3741,3742],[546,3735],[544,3744],[551,3733],[549,3746],[544,550],[545,551],[3748,3749],[546,548],[547,549],[3751,3752],[3732,3736],[547,3738],[550,3755],[544,548],[3742,3757],[545,549],[3741,3759],[552,554],[553,555],[3761,3762],[556,558],[557,559],[3764,3765],[553,556],[552,3767],[557,3768],[554,558],[555,559],[3770,3771],[554,3764],[552,3773],[559,3762],[557,3775],[552,558],[553,559],[3777,3778],[554,556],[555,557],[3780,3781],[3761,3765],[555,3767],[558,3784],[552,556],[3771,3786],[553,557],[3770,3788],[560,562],[561,563],[3790,3791],[564,566],[565,567],[3793,3794],[561,564],[560,3796],[565,3797],[562,566],[563,567],[3799,3800],[562,3793],[560,3802],[567,3791],[565,3804],[560,566],[561,567],[3806,3807],[562,564],[563,565],[3809,3810],[3790,3794],[563,3796],[566,3813],[560,564],[3800,3815],[561,565],[3799,3817],[568,570],[569,571],[3819,3820],[572,574],[573,575],[3822,3823],[569,572],[568,3825],[573,3826],[570,574],[571,575],[3828,3829],[570,3822],[568,3831],[575,3820],[573,3833],[568,574],[569,575],[3835,3836],[570,572],[571,573],[3838,3839],[3819,3823],[571,3825],[574,3842],[568,572],[3829,3844],[569,573],[3828,3846],[576,578],[577,579],[3848,3849],[580,582],[581,583],[3851,3852],[577,580],[576,3854],[581,3855],[578,582],[579,583],[3857,3858],[578,3851],[576,3860],[583,3849],[581,3862],[576,582],[577,583],[3864,3865],[578,580],[579,581],[3867,3868],[3848,3852],[579,3854],[582,3871],[576,580],[3858,3873],[577,581],[3857,3875],[584,586],[585,587],[3877,3878],[588,590],[589,591],[3880,3881],[585,588],[584,3883],[589,3884],[586,590],[587,591],[3886,3887],[586,3880],[584,3889],[591,3878],[589,3891],[584,590],[585,591],[3893,3894],[586,588],[587,589],[3896,3897],[3877,3881],[587,3883],[590,3900],[584,588],[3887,3902],[585,589],[3886,3904],[592,594],[593,595],[3906,3907],[596,598],[597,599],[3909,3910],[593,596],[592,3912],[597,3913],[594,598],[595,599],[3915,3916],[594,3909],[592,3918],[599,3907],[597,3920],[592,598],[593,599],[3922,3923],[594,596],[595,597],[3925,3926],[3906,3910],[595,3912],[598,3929],[592,596],[3916,3931],[593,597],[3915,3933],[600,602],[601,603],[3935,3936],[604,606],[605,607],[3938,3939],[601,604],[600,3941],[605,3942],[602,606],[603,607],[3944,3945],[602,3938],[600,3947],[607,3936],[605,3949],[600,606],[601,607],[3951,3952],[602,604],[603,605],[3954,3955],[3935,3939],[603,3941],[606,3958],[600,604],[3945,3960],[601,605],[3944,3962],[608,610],[609,611],[3964,3965],[612,614],[613,615],[3967,3968],[609,612],[608,3970],[613,3971],[610,614],[611,615],[3973,3974],[610,3967],[608,3976],[615,3965],[613,3978],[608,614],[609,615],[3980,3981],[610,612],[611,613],[3983,3984],[3964,3968],[611,3970],[614,3987],[608,612],[3974,3989],[609,613],[3973,3991],[616,618],[617,619],[3993,3994],[620,622],[621,623],[3996,3997],[617,620],[616,3999],[621,4000],[618,622],[619,623],[4002,4003],[618,3996],[616,4005],[623,3994],[621,4007],[616,622],[617,623],[4009,4010],[618,620],[619,621],[4012,4013],[3993,3997],[619,3999],[622,4016],[616,620],[4003,4018],[617,621],[4002,4020],[624,626],[625,627],[4022,4023],[628,630],[629,631],[4025,4026],[625,628],[624,4028],[629,4029],[626,630],[627,631],[4031,4032],[626,4025],[624,4034],[631,4023],[629,4036],[624,630],[625,631],[4038,4039],[626,628],[627,629],[4041,4042],[4022,4026],[627,4028],[630,4045],[624,628],[4032,4047],[625,629],[4031,4049],[632,634],[633,635],[4051,4052],[636,638],[637,639],[4054,4055],[633,636],[632,4057],[637,4058],[634,638],[635,639],[4060,4061],[634,4054],[632,4063],[639,4052],[637,4065],[632,638],[633,639],[4067,4068],[634,636],[635,637],[4070,4071],[4051,4055],[635,4057],[638,4074],[632,636],[4061,4076],[633,637],[4060,4078],[640,642],[641,643],[4080,4081],[644,646],[645,647],[4083,4084],[641,644],[640,4086],[645,4087],[642,646],[643,647],[4089,4090],[642,4083],[640,4092],[647,4081],[645,4094],[640,646],[641,647],[4096,4097],[642,644],[643,645],[4099,4100],[4080,4084],[643,4086],[646,4103],[640,644],[4090,4105],[641,645],[4089,4107],[648,650],[649,651],[4109,4110],[652,654],[653,655],[4112,4113],[649,652],[648,4115],[653,4116],[650,654],[651,655],[4118,4119],[650,4112],[648,4121],[655,4110],[653,4123],[648,654],[649,655],[4125,4126],[650,652],[651,653],[4128,4129],[4109,4113],[651,4115],[654,4132],[648,652],[4119,4134],[649,653],[4118,4136],[656,658],[657,659],[4138,4139],[660,662],[661,663],[4141,4142],[657,660],[656,4144],[661,4145],[658,662],[659,663],[4147,4148],[658,4141],[656,4150],[663,4139],[661,4152],[656,662],[657,663],[4154,4155],[658,660],[659,661],[4157,4158],[4138,4142],[659,4144],[662,4161],[656,660],[4148,4163],[657,661],[4147,4165],[664,666],[665,667],[4167,4168],[668,670],[669,671],[4170,4171],[665,668],[664,4173],[669,4174],[666,670],[667,671],[4176,4177],[666,4170],[664,4179],[671,4168],[669,4181],[664,670],[665,671],[4183,4184],[666,668],[667,669],[4186,4187],[4167,4171],[667,4173],[670,4190],[664,668],[4177,4192],[665,669],[4176,4194],[672,674],[673,675],[4196,4197],[676,678],[677,679],[4199,4200],[673,676],[672,4202],[677,4203],[674,678],[675,679],[4205,4206],[674,4199],[672,4208],[679,4197],[677,4210],[672,678],[673,679],[4212,4213],[674,676],[675,677],[4215,4216],[4196,4200],[675,4202],[678,4219],[672,676],[4206,4221],[673,677],[4205,4223],[680,682],[681,683],[4225,4226],[684,686],[685,687],[4228,4229],[681,684],[680,4231],[685,4232],[682,686],[683,687],[4234,4235],[682,4228],[680,4237],[687,4226],[685,4239],[680,686],[681,687],[4241,4242],[682,684],[683,685],[4244,4245],[4225,4229],[683,4231],[686,4248],[680,684],[4235,4250],[681,685],[4234,4252],[688,690],[689,691],[4254,4255],[692,694],[693,695],[4257,4258],[689,692],[688,4260],[693,4261],[690,694],[691,695],[4263,4264],[690,4257],[688,4266],[695,4255],[693,4268],[688,694],[689,695],[4270,4271],[690,692],[691,693],[4273,4274],[4254,4258],[691,4260],[694,4277],[688,692],[4264,4279],[689,693],[4263,4281],[696,698],[697,699],[4283,4284],[700,702],[701,703],[4286,4287],[697,700],[696,4289],[701,4290],[698,702],[699,703],[4292,4293],[698,4286],[696,4295],[703,4284],[701,4297],[696,702],[697,703],[4299,4300],[698,700],[699,701],[4302,4303],[4283,4287],[699,4289],[702,4306],[696,700],[4293,4308],[697,701],[4292,4310],[704,706],[705,707],[4312,4313],[708,710],[709,711],[4315,4316],[705,708],[704,4318],[709,4319],[706,710],[707,711],[4321,4322],[706,4315],[704,4324],[711,4313],[709,4326],[704,710],[705,711],[4328,4329],[706,708],[707,709],[4331,4332],[4312,4316],[707,4318],[710,4335],[704,708],[4322,4337],[705,709],[4321,4339],[712,714],[713,715],[4341,4342],[716,718],[717,719],[4344,4345],[713,716],[712,4347],[717,4348],[714,718],[715,719],[4350,4351],[714,4344],[712,4353],[719,4342],[717,4355],[712,718],[713,719],[4357,4358],[714,716],[715,717],[4360,4361],[4341,4345],[715,4347],[718,4364],[712,716],[4351,4366],[713,717],[4350,4368],[720,722],[721,723],[4370,4371],[724,726],[725,727],[4373,4374],[721,724],[720,4376],[725,4377],[722,726],[723,727],[4379,4380],[722,4373],[720,4382],[727,4371],[725,4384],[720,726],[721,727],[4386,4387],[722,724],[723,725],[4389,4390],[4370,4374],[723,4376],[726,4393],[720,724],[4380,4395],[721,725],[4379,4397],[728,730],[729,731],[4399,4400],[732,734],[733,735],[4402,4403],[729,732],[728,4405],[733,4406],[730,734],[731,735],[4408,4409],[730,4402],[728,4411],[735,4400],[733,4413],[728,734],[729,735],[4415,4416],[730,732],[731,733],[4418,4419],[4399,4403],[731,4405],[734,4422],[728,732],[4409,4424],[729,733],[4408,4426],[736,738],[737,739],[4428,4429],[740,742],[741,743],[4431,4432],[737,740],[736,4434],[741,4435],[738,742],[739,743],[4437,4438],[738,4431],[736,4440],[743,4429],[741,4442],[736,742],[737,743],[4444,4445],[738,740],[739,741],[4447,4448],[4428,4432],[739,4434],[742,4451],[736,740],[4438,4453],[737,741],[4437,4455],[744,746],[745,747],[4457,4458],[748,750],[749,751],[4460,4461],[745,748],[744,4463],[749,4464],[746,750],[747,751],[4466,4467],[746,4460],[744,4469],[751,4458],[749,4471],[744,750],[745,751],[4473,4474],[746,748],[747,749],[4476,4477],[4457,4461],[747,4463],[750,4480],[744,748],[4467,4482],[745,749],[4466,4484],[752,754],[753,755],[4486,4487],[756,758],[757,759],[4489,4490],[753,756],[752,4492],[757,4493],[754,758],[755,759],[4495,4496],[754,4489],[752,4498],[759,4487],[757,4500],[752,758],[753,759],[4502,4503],[754,756],[755,757],[4505,4506],[4486,4490],[755,4492],[758,4509],[752,756],[4496,4511],[753,757],[4495,4513],[760,762],[761,763],[4515,4516],[764,766],[765,767],[4518,4519],[761,764],[760,4521],[765,4522],[762,766],[763,767],[4524,4525],[762,4518],[760,4527],[767,4516],[765,4529],[760,766],[761,767],[4531,4532],[762,764],[763,765],[4534,4535],[4515,4519],[763,4521],[766,4538],[760,764],[4525,4540],[761,765],[4524,4542],[768,770],[769,771],[4544,4545],[772,774],[773,775],[4547,4548],[769,772],[768,4550],[773,4551],[770,774],[771,775],[4553,4554],[770,4547],[768,4556],[775,4545],[773,4558],[768,774],[769,775],[4560,4561],[770,772],[771,773],[4563,4564],[4544,4548],[771,4550],[774,4567],[768,772],[4554,4569],[769,773],[4553,4571],[776,778],[777,779],[4573,4574],[780,782],[781,783],[4576,4577],[777,780],[776,4579],[781,4580],[778,782],[779,783],[4582,4583],[778,4576],[776,4585],[783,4574],[781,4587],[776,782],[777,783],[4589,4590],[778,780],[779,781],[4592,4593],[4573,4577],[779,4579],[782,4596],[776,780],[4583,4598],[777,781],[4582,4600],[784,786],[785,787],[4602,4603],[788,790],[789,791],[4605,4606],[785,788],[784,4608],[789,4609],[786,790],[787,791],[4611,4612],[786,4605],[784,4614],[791,4603],[789,4616],[784,790],[785,791],[4618,4619],[786,788],[787,789],[4621,4622],[4602,4606],[787,4608],[790,4625],[784,788],[4612,4627],[785,789],[4611,4629],[792,794],[793,795],[4631,4632],[796,798],[797,799],[4634,4635],[793,796],[792,4637],[797,4638],[794,798],[795,799],[4640,4641],[794,4634],[792,4643],[799,4632],[797,4645],[792,798],[793,799],[4647,4648],[794,796],[795,797],[4650,4651],[4631,4635],[795,4637],[798,4654],[792,796],[4641,4656],[793,797],[4640,4658],[800,802],[801,803],[4660,4661],[804,806],[805,807],[4663,4664],[801,804],[800,4666],[805,4667],[802,806],[803,807],[4669,4670],[802,4663],[800,4672],[807,4661],[805,4674],[800,806],[801,807],[4676,4677],[802,804],[803,805],[4679,4680],[4660,4664],[803,4666],[806,4683],[800,804],[4670,4685],[801,805],[4669,4687],[808,810],[809,811],[4689,4690],[812,814],[813,815],[4692,4693],[809,812],[808,4695],[813,4696],[810,814],[811,815],[4698,4699],[810,4692],[808,4701],[815,4690],[813,4703],[808,814],[809,815],[4705,4706],[810,812],[811,813],[4708,4709],[4689,4693],[811,4695],[814,4712],[808,812],[4699,4714],[809,813],[4698,4716],[816,818],[817,819],[4718,4719],[820,822],[821,823],[4721,4722],[817,820],[816,4724],[821,4725],[818,822],[819,823],[4727,4728],[818,4721],[816,4730],[823,4719],[821,4732],[816,822],[817,823],[4734,4735],[818,820],[819,821],[4737,4738],[4718,4722],[819,4724],[822,4741],[816,820],[4728,4743],[817,821],[4727,4745],[824,826],[825,827],[4747,4748],[828,830],[829,831],[4750,4751],[825,828],[824,4753],[829,4754],[826,830],[827,831],[4756,4757],[826,4750],[824,4759],[831,4748],[829,4761],[824,830],[825,831],[4763,4764],[826,828],[827,829],[4766,4767],[4747,4751],[827,4753],[830,4770],[824,828],[4757,4772],[825,829],[4756,4774],[832,834],[833,835],[4776,4777],[836,838],[837,839],[4779,4780],[833,836],[832,4782],[837,4783],[834,838],[835,839],[4785,4786],[834,4779],[832,4788],[839,4777],[837,4790],[832,838],[833,839],[4792,4793],[834,836],[835,837],[4795,4796],[4776,4780],[835,4782],[838,4799],[832,836],[4786,4801],[833,837],[4785,4803],[840,842],[841,843],[4805,4806],[844,846],[845,847],[4808,4809],[841,844],[840,4811],[845,4812],[842,846],[843,847],[4814,4815],[842,4808],[840,4817],[847,4806],[845,4819],[840,846],[841,847],[4821,4822],[842,844],[843,845],[4824,4825],[4805,4809],[843,4811],[846,4828],[840,844],[4815,4830],[841,845],[4814,4832],[848,850],[849,851],[4834,4835],[852,854],[853,855],[4837,4838],[849,852],[848,4840],[853,4841],[850,854],[851,855],[4843,4844],[850,4837],[848,4846],[855,4835],[853,4848],[848,854],[849,855],[4850,4851],[850,852],[851,853],[4853,4854],[4834,4838],[851,4840],[854,4857],[848,852],[4844,4859],[849,853],[4843,4861],[856,858],[857,859],[4863,4864],[860,862],[861,863],[4866,4867],[857,860],[856,4869],[861,4870],[858,862],[859,863],[4872,4873],[858,4866],[856,4875],[863,4864],[861,4877],[856,862],[857,863],[4879,4880],[858,860],[859,861],[4882,4883],[4863,4867],[859,4869],[862,4886],[856,860],[4873,4888],[857,861],[4872,4890],[864,866],[865,867],[4892,4893],[868,870],[869,871],[4895,4896],[865,868],[864,4898],[869,4899],[866,870],[867,871],[4901,4902],[866,4895],[864,4904],[871,4893],[869,4906],[864,870],[865,871],[4908,4909],[866,868],[867,869],[4911,4912],[4892,4896],[867,4898],[870,4915],[864,868],[4902,4917],[865,869],[4901,4919],[872,874],[873,875],[4921,4922],[876,878],[877,879],[4924,4925],[873,876],[872,4927],[877,4928],[874,878],[875,879],[4930,4931],[874,4924],[872,4933],[879,4922],[877,4935],[872,878],[873,879],[4937,4938],[874,876],[875,877],[4940,4941],[4921,4925],[875,4927],[878,4944],[872,876],[4931,4946],[873,877],[4930,4948],[880,882],[881,883],[4950,4951],[884,886],[885,887],[4953,4954],[881,884],[880,4956],[885,4957],[882,886],[883,887],[4959,4960],[882,4953],[880,4962],[887,4951],[885,4964],[880,886],[881,887],[4966,4967],[882,884],[883,885],[4969,4970],[4950,4954],[883,4956],[886,4973],[880,884],[4960,4975],[881,885],[4959,4977],[888,890],[889,891],[4979,4980],[892,894],[893,895],[4982,4983],[889,892],[888,4985],[893,4986],[890,894],[891,895],[4988,4989],[890,4982],[888,4991],[895,4980],[893,4993],[888,894],[889,895],[4995,4996],[890,892],[891,893],[4998,4999],[4979,4983],[891,4985],[894,5002],[888,892],[4989,5004],[889,893],[4988,5006],[896,898],[897,899],[5008,5009],[900,902],[901,903],[5011,5012],[897,900],[896,5014],[901,5015],[898,902],[899,903],[5017,5018],[898,5011],[896,5020],[903,5009],[901,5022],[896,902],[897,903],[5024,5025],[898,900],[899,901],[5027,5028],[5008,5012],[899,5014],[902,5031],[896,900],[5018,5033],[897,901],[5017,5035],[904,906],[905,907],[5037,5038],[908,910],[909,911],[5040,5041],[905,908],[904,5043],[909,5044],[906,910],[907,911],[5046,5047],[906,5040],[904,5049],[911,5038],[909,5051],[904,910],[905,911],[5053,5054],[906,908],[907,909],[5056,5057],[5037,5041],[907,5043],[910,5060],[904,908],[5047,5062],[905,909],[5046,5064],[912,914],[913,915],[5066,5067],[916,918],[917,919],[5069,5070],[913,916],[912,5072],[917,5073],[914,918],[915,919],[5075,5076],[914,5069],[912,5078],[919,5067],[917,5080],[912,918],[913,919],[5082,5083],[914,916],[915,917],[5085,5086],[5066,5070],[915,5072],[918,5089],[912,916],[5076,5091],[913,917],[5075,5093],[920,922],[921,923],[5095,5096],[924,926],[925,927],[5098,5099],[921,924],[920,5101],[925,5102],[922,926],[923,927],[5104,5105],[922,5098],[920,5107],[927,5096],[925,5109],[920,926],[921,927],[5111,5112],[922,924],[923,925],[5114,5115],[5095,5099],[923,5101],[926,5118],[920,924],[5105,5120],[921,925],[5104,5122],[928,930],[929,931],[5124,5125],[932,934],[933,935],[5127,5128],[929,932],[928,5130],[933,5131],[930,934],[931,935],[5133,5134],[930,5127],[928,5136],[935,5125],[933,5138],[928,934],[929,935],[5140,5141],[930,932],[931,933],[5143,5144],[5124,5128],[931,5130],[934,5147],[928,932],[5134,5149],[929,933],[5133,5151],[936,938],[937,939],[5153,5154],[940,942],[941,943],[5156,5157],[937,940],[936,5159],[941,5160],[938,942],[939,943],[5162,5163],[938,5156],[936,5165],[943,5154],[941,5167],[936,942],[937,943],[5169,5170],[938,940],[939,941],[5172,5173],[5153,5157],[939,5159],[942,5176],[936,940],[5163,5178],[937,941],[5162,5180],[944,946],[945,947],[5182,5183],[948,950],[949,951],[5185,5186],[945,948],[944,5188],[949,5189],[946,950],[947,951],[5191,5192],[946,5185],[944,5194],[951,5183],[949,5196],[944,950],[945,951],[5198,5199],[946,948],[947,949],[5201,5202],[5182,5186],[947,5188],[950,5205],[944,948],[5192,5207],[945,949],[5191,5209],[952,954],[953,955],[5211,5212],[956,958],[957,959],[5214,5215],[953,956],[952,5217],[957,5218],[954,958],[955,959],[5220,5221],[954,5214],[952,5223],[959,5212],[957,5225],[952,958],[953,959],[5227,5228],[954,956],[955,957],[5230,5231],[5211,5215],[955,5217],[958,5234],[952,956],[5221,5236],[953,957],[5220,5238],[960,962],[961,963],[5240,5241],[964,966],[965,967],[5243,5244],[961,964],[960,5246],[965,5247],[962,966],[963,967],[5249,5250],[962,5243],[960,5252],[967,5241],[965,5254],[960,966],[961,967],[5256,5257],[962,964],[963,965],[5259,5260],[5240,5244],[963,5246],[966,5263],[960,964],[5250,5265],[961,965],[5249,5267],[968,970],[969,971],[5269,5270],[972,974],[973,975],[5272,5273],[969,972],[968,5275],[973,5276],[970,974],[971,975],[5278,5279],[970,5272],[968,5281],[975,5270],[973,5283],[968,974],[969,975],[5285,5286],[970,972],[971,973],[5288,5289],[5269,5273],[971,5275],[974,5292],[968,972],[5279,5294],[969,973],[5278,5296],[976,978],[977,979],[5298,5299],[980,982],[981,983],[5301,5302],[977,980],[976,5304],[981,5305],[978,982],[979,983],[5307,5308],[978,5301],[976,5310],[983,5299],[981,5312],[976,982],[977,983],[5314,5315],[978,980],[979,981],[5317,5318],[5298,5302],[979,5304],[982,5321],[976,980],[5308,5323],[977,981],[5307,5325],[984,986],[985,987],[5327,5328],[988,990],[989,991],[5330,5331],[985,988],[984,5333],[989,5334],[986,990],[987,991],[5336,5337],[986,5330],[984,5339],[991,5328],[989,5341],[984,990],[985,991],[5343,5344],[986,988],[987,989],[5346,5347],[5327,5331],[987,5333],[990,5350],[984,988],[5337,5352],[985,989],[5336,5354],[992,994],[993,995],[5356,5357],[996,998],[997,999],[5359,5360],[993,996],[992,5362],[997,5363],[994,998],[995,999],[5365,5366],[994,5359],[992,5368],[999,5357],[997,5370],[992,998],[993,999],[5372,5373],[994,996],[995,997],[5375,5376],[5356,5360],[995,5362],[998,5379],[992,996],[5366,5381],[993,997],[5365,5383],[1000,1002],[1001,1003],[5385,5386],[1004,1006],[1005,1007],[5388,5389],[1001,1004],[1000,5391],[1005,5392],[1002,1006],[1003,1007],[5394,5395],[1002,5388],[1000,5397],[1007,5386],[1005,5399],[1000,1006],[1001,1007],[5401,5402],[1002,1004],[1003,1005],[5404,5405],[5385,5389],[1003,5391],[1006,5408],[1000,1004],[5395,5410],[1001,1005],[5394,5412],[1008,1010],[1009,1011],[5414,5415],[1012,1014],[1013,1015],[5417,5418],[1009,1012],[1008,5420],[1013,5421],[1010,1014],[1011,1015],[5423,5424],[1010,5417],[1008,5426],[1015,5415],[1013,5428],[1008,1014],[1009,1015],[5430,5431],[1010,1012],[1011,1013],[5433,5434],[5414,5418],[1011,5420],[1014,5437],[1008,1012],[5424,5439],[1009,1013],[5423,5441],[1016,1018],[1017,1019],[5443,5444],[1020,1022],[1021,1023],[5446,5447],[1017,1020],[1016,5449],[1021,5450],[1018,1022],[1019,1023],[5452,5453],[1018,5446],[1016,5455],[1023,5444],[1021,5457],[1016,1022],[1017,1023],[5459,5460],[1018,1020],[1019,1021],[5462,5463],[5443,5447],[1019,5449],[1022,5466],[1016,1020],[5453,5468],[1017,1021],[5452,5470],[1024,1026],[1025,1027],[5472,5473],[1028,1030],[1029,1031],[5475,5476],[1025,1028],[1024,5478],[1029,5479],[1026,1030],[1027,1031],[5481,5482],[1026,5475],[1024,5484],[1031,5473],[1029,5486],[1024,1030],[1025,1031],[5488,5489],[1026,1028],[1027,1029],[5491,5492],[5472,5476],[1027,5478],[1030,5495],[1024,1028],[5482,5497],[1025,1029],[5481,5499],[1032,1034],[1033,1035],[5501,5502],[1036,1038],[1037,1039],[5504,5505],[1033,1036],[1032,5507],[1037,5508],[1034,1038],[1035,1039],[5510,5511],[1034,5504],[1032,5513],[1039,5502],[1037,5515],[1032,1038],[1033,1039],[5517,5518],[1034,1036],[1035,1037],[5520,5521],[5501,5505],[1035,5507],[1038,5524],[1032,1036],[5511,5526],[1033,1037],[5510,5528],[1040,1042],[1041,1043],[5530,5531],[1044,1046],[1045,1047],[5533,5534],[1041,1044],[1040,5536],[1045,5537],[1042,1046],[1043,1047],[5539,5540],[1042,5533],[1040,5542],[1047,5531],[1045,5544],[1040,1046],[1041,1047],[5546,5547],[1042,1044],[1043,1045],[5549,5550],[5530,5534],[1043,5536],[1046,5553],[1040,1044],[5540,5555],[1041,1045],[5539,5557],[1048,1050],[1049,1051],[5559,5560],[1052,1054],[1053,1055],[5562,5563],[1049,1052],[1048,5565],[1053,5566],[1050,1054],[1051,1055],[5568,5569],[1050,5562],[1048,5571],[1055,5560],[1053,5573],[1048,1054],[1049,1055],[5575,5576],[1050,1052],[1051,1053],[5578,5579],[5559,5563],[1051,5565],[1054,5582],[1048,1052],[5569,5584],[1049,1053],[5568,5586],[1056,1058],[1057,1059],[5588,5589],[1060,1062],[1061,1063],[5591,5592],[1057,1060],[1056,5594],[1061,5595],[1058,1062],[1059,1063],[5597,5598],[1058,5591],[1056,5600],[1063,5589],[1061,5602],[1056,1062],[1057,1063],[5604,5605],[1058,1060],[1059,1061],[5607,5608],[5588,5592],[1059,5594],[1062,5611],[1056,1060],[5598,5613],[1057,1061],[5597,5615],[1064,1066],[1065,1067],[5617,5618],[1068,1070],[1069,1071],[5620,5621],[1065,1068],[1064,5623],[1069,5624],[1066,1070],[1067,1071],[5626,5627],[1066,5620],[1064,5629],[1071,5618],[1069,5631],[1064,1070],[1065,1071],[5633,5634],[1066,1068],[1067,1069],[5636,5637],[5617,5621],[1067,5623],[1070,5640],[1064,1068],[5627,5642],[1065,1069],[5626,5644],[1072,1074],[1073,1075],[5646,5647],[1076,1078],[1077,1079],[5649,5650],[1073,1076],[1072,5652],[1077,5653],[1074,1078],[1075,1079],[5655,5656],[1074,5649],[1072,5658],[1079,5647],[1077,5660],[1072,1078],[1073,1079],[5662,5663],[1074,1076],[1075,1077],[5665,5666],[5646,5650],[1075,5652],[1078,5669],[1072,1076],[5656,5671],[1073,1077],[5655,5673],[1080,1082],[1081,1083],[5675,5676],[1084,1086],[1085,1087],[5678,5679],[1081,1084],[1080,5681],[1085,5682],[1082,1086],[1083,1087],[5684,5685],[1082,5678],[1080,5687],[1087,5676],[1085,5689],[1080,1086],[1081,1087],[5691,5692],[1082,1084],[1083,1085],[5694,5695],[5675,5679],[1083,5681],[1086,5698],[1080,1084],[5685,5700],[1081,1085],[5684,5702],[1088,1090],[1089,1091],[5704,5705],[1092,1094],[1093,1095],[5707,5708],[1089,1092],[1088,5710],[1093,5711],[1090,1094],[1091,1095],[5713,5714],[1090,5707],[1088,5716],[1095,5705],[1093,5718],[1088,1094],[1089,1095],[5720,5721],[1090,1092],[1091,1093],[5723,5724],[5704,5708],[1091,5710],[1094,5727],[1088,1092],[5714,5729],[1089,1093],[5713,5731],[1096,1098],[1097,1099],[5733,5734],[1100,1102],[1101,1103],[5736,5737],[1097,1100],[1096,5739],[1101,5740],[1098,1102],[1099,1103],[5742,5743],[1098,5736],[1096,5745],[1103,5734],[1101,5747],[1096,1102],[1097,1103],[5749,5750],[1098,1100],[1099,1101],[5752,5753],[5733,5737],[1099,5739],[1102,5756],[1096,1100],[5743,5758],[1097,1101],[5742,5760],[1104,1106],[1105,1107],[5762,5763],[1108,1110],[1109,1111],[5765,5766],[1105,1108],[1104,5768],[1109,5769],[1106,1110],[1107,1111],[5771,5772],[1106,5765],[1104,5774],[1111,5763],[1109,5776],[1104,1110],[1105,1111],[5778,5779],[1106,1108],[1107,1109],[5781,5782],[5762,5766],[1107,5768],[1110,5785],[1104,1108],[5772,5787],[1105,1109],[5771,5789],[1112,1114],[1113,1115],[5791,5792],[1116,1118],[1117,1119],[5794,5795],[1113,1116],[1112,5797],[1117,5798],[1114,1118],[1115,1119],[5800,5801],[1114,5794],[1112,5803],[1119,5792],[1117,5805],[1112,1118],[1113,1119],[5807,5808],[1114,1116],[1115,1117],[5810,5811],[5791,5795],[1115,5797],[1118,5814],[1112,1116],[5801,5816],[1113,1117],[5800,5818],[1120,1122],[1121,1123],[5820,5821],[1124,1126],[1125,1127],[5823,5824],[1121,1124],[1120,5826],[1125,5827],[1122,1126],[1123,1127],[5829,5830],[1122,5823],[1120,5832],[1127,5821],[1125,5834],[1120,1126],[1121,1127],[5836,5837],[1122,1124],[1123,1125],[5839,5840],[5820,5824],[1123,5826],[1126,5843],[1120,1124],[5830,5845],[1121,1125],[5829,5847],[1128,1130],[1129,1131],[5849,5850],[1132,1134],[1133,1135],[5852,5853],[1129,1132],[1128,5855],[1133,5856],[1130,1134],[1131,1135],[5858,5859],[1130,5852],[1128,5861],[1135,5850],[1133,5863],[1128,1134],[1129,1135],[5865,5866],[1130,1132],[1131,1133],[5868,5869],[5849,5853],[1131,5855],[1134,5872],[1128,1132],[5859,5874],[1129,1133],[5858,5876],[1136,1138],[1137,1139],[5878,5879],[1140,1142],[1141,1143],[5881,5882],[1137,1140],[1136,5884],[1141,5885],[1138,1142],[1139,1143],[5887,5888],[1138,5881],[1136,5890],[1143,5879],[1141,5892],[1136,1142],[1137,1143],[5894,5895],[1138,1140],[1139,1141],[5897,5898],[5878,5882],[1139,5884],[1142,5901],[1136,1140],[5888,5903],[1137,1141],[5887,5905],[1144,1146],[1145,1147],[5907,5908],[1148,1150],[1149,1151],[5910,5911],[1145,1148],[1144,5913],[1149,5914],[1146,1150],[1147,1151],[5916,5917],[1146,5910],[1144,5919],[1151,5908],[1149,5921],[1144,1150],[1145,1151],[5923,5924],[1146,1148],[1147,1149],[5926,5927],[5907,5911],[1147,5913],[1150,5930],[1144,1148],[5917,5932],[1145,1149],[5916,5934],[1152,1154],[1153,1155],[5936,5937],[1156,1158],[1157,1159],[5939,5940],[1153,1156],[1152,5942],[1157,5943],[1154,1158],[1155,1159],[5945,5946],[1154,5939],[1152,5948],[1159,5937],[1157,5950],[1152,1158],[1153,1159],[5952,5953],[1154,1156],[1155,1157],[5955,5956],[5936,5940],[1155,5942],[1158,5959],[1152,1156],[5946,5961],[1153,1157],[5945,5963],[1160,1162],[1161,1163],[5965,5966],[1164,1166],[1165,1167],[5968,5969],[1161,1164],[1160,5971],[1165,5972],[1162,1166],[1163,1167],[5974,5975],[1162,5968],[1160,5977],[1167,5966],[1165,5979],[1160,1166],[1161,1167],[5981,5982],[1162,1164],[1163,1165],[5984,5985],[5965,5969],[1163,5971],[1166,5988],[1160,1164],[5975,5990],[1161,1165],[5974,5992],[1168,1170],[1169,1171],[5994,5995],[1172,1174],[1173,1175],[5997,5998],[1169,1172],[1168,6000],[1173,6001],[1170,1174],[1171,1175],[6003,6004],[1170,5997],[1168,6006],[1175,5995],[1173,6008],[1168,1174],[1169,1175],[6010,6011],[1170,1172],[1171,1173],[6013,6014],[5994,5998],[1171,6000],[1174,6017],[1168,1172],[6004,6019],[1169,1173],[6003,6021],[1176,1178],[1177,1179],[6023,6024],[1180,1182],[1181,1183],[6026,6027],[1177,1180],[1176,6029],[1181,6030],[1178,1182],[1179,1183],[6032,6033],[1178,6026],[1176,6035],[1183,6024],[1181,6037],[1176,1182],[1177,1183],[6039,6040],[1178,1180],[1179,1181],[6042,6043],[6023,6027],[1179,6029],[1182,6046],[1176,1180],[6033,6048],[1177,1181],[6032,6050],[1184,1186],[1185,1187],[6052,6053],[1188,1190],[1189,1191],[6055,6056],[1185,1188],[1184,6058],[1189,6059],[1186,1190],[1187,1191],[6061,6062],[1186,6055],[1184,6064],[1191,6053],[1189,6066],[1184,1190],[1185,1191],[6068,6069],[1186,1188],[1187,1189],[6071,6072],[6052,6056],[1187,6058],[1190,6075],[1184,1188],[6062,6077],[1185,1189],[6061,6079],[1192,1194],[1193,1195],[6081,6082],[1196,1198],[1197,1199],[6084,6085],[1193,1196],[1192,6087],[1197,6088],[1194,1198],[1195,1199],[6090,6091],[1194,6084],[1192,6093],[1199,6082],[1197,6095],[1192,1198],[1193,1199],[6097,6098],[1194,1196],[1195,1197],[6100,6101],[6081,6085],[1195,6087],[1198,6104],[1192,1196],[6091,6106],[1193,1197],[6090,6108],[1200,1202],[1201,1203],[6110,6111],[1204,1206],[1205,1207],[6113,6114],[1201,1204],[1200,6116],[1205,6117],[1202,1206],[1203,1207],[6119,6120],[1202,6113],[1200,6122],[1207,6111],[1205,6124],[1200,1206],[1201,1207],[6126,6127],[1202,1204],[1203,1205],[6129,6130],[6110,6114],[1203,6116],[1206,6133],[1200,1204],[6120,6135],[1201,1205],[6119,6137],[1208,1210],[1209,1211],[6139,6140],[1212,1214],[1213,1215],[6142,6143],[1209,1212],[1208,6145],[1213,6146],[1210,1214],[1211,1215],[6148,6149],[1210,6142],[1208,6151],[1215,6140],[1213,6153],[1208,1214],[1209,1215],[6155,6156],[1210,1212],[1211,1213],[6158,6159],[6139,6143],[1211,6145],[1214,6162],[1208,1212],[6149,6164],[1209,1213],[6148,6166],[1216,1218],[1217,1219],[6168,6169],[1220,1222],[1221,1223],[6171,6172],[1217,1220],[1216,6174],[1221,6175],[1218,1222],[1219,1223],[6177,6178],[1218,6171],[1216,6180],[1223,6169],[1221,6182],[1216,1222],[1217,1223],[6184,6185],[1218,1220],[1219,1221],[6187,6188],[6168,6172],[1219,6174],[1222,6191],[1216,1220],[6178,6193],[1217,1221],[6177,6195],[1224,1226],[1225,1227],[6197,6198],[1228,1230],[1229,1231],[6200,6201],[1225,1228],[1224,6203],[1229,6204],[1226,1230],[1227,1231],[6206,6207],[1226,6200],[1224,6209],[1231,6198],[1229,6211],[1224,1230],[1225,1231],[6213,6214],[1226,1228],[1227,1229],[6216,6217],[6197,6201],[1227,6203],[1230,6220],[1224,1228],[6207,6222],[1225,1229],[6206,6224],[1232,1234],[1233,1235],[6226,6227],[1236,1238],[1237,1239],[6229,6230],[1233,1236],[1232,6232],[1237,6233],[1234,1238],[1235,1239],[6235,6236],[1234,6229],[1232,6238],[1239,6227],[1237,6240],[1232,1238],[1233,1239],[6242,6243],[1234,1236],[1235,1237],[6245,6246],[6226,6230],[1235,6232],[1238,6249],[1232,1236],[6236,6251],[1233,1237],[6235,6253],[1240,1242],[1241,1243],[6255,6256],[1244,1246],[1245,1247],[6258,6259],[1241,1244],[1240,6261],[1245,6262],[1242,1246],[1243,1247],[6264,6265],[1242,6258],[1240,6267],[1247,6256],[1245,6269],[1240,1246],[1241,1247],[6271,6272],[1242,1244],[1243,1245],[6274,6275],[6255,6259],[1243,6261],[1246,6278],[1240,1244],[6265,6280],[1241,1245],[6264,6282],[1248,1250],[1249,1251],[6284,6285],[1252,1254],[1253,1255],[6287,6288],[1249,1252],[1248,6290],[1253,6291],[1250,1254],[1251,1255],[6293,6294],[1250,6287],[1248,6296],[1255,6285],[1253,6298],[1248,1254],[1249,1255],[6300,6301],[1250,1252],[1251,1253],[6303,6304],[6284,6288],[1251,6290],[1254,6307],[1248,1252],[6294,6309],[1249,1253],[6293,6311],[1256,1258],[1257,1259],[6313,6314],[1260,1262],[1261,1263],[6316,6317],[1257,1260],[1256,6319],[1261,6320],[1258,1262],[1259,1263],[6322,6323],[1258,6316],[1256,6325],[1263,6314],[1261,6327],[1256,1262],[1257,1263],[6329,6330],[1258,1260],[1259,1261],[6332,6333],[6313,6317],[1259,6319],[1262,6336],[1256,1260],[6323,6338],[1257,1261],[6322,6340],[1264,1266],[1265,1267],[6342,6343],[1268,1270],[1269,1271],[6345,6346],[1265,1268],[1264,6348],[1269,6349],[1266,1270],[1267,1271],[6351,6352],[1266,6345],[1264,6354],[1271,6343],[1269,6356],[1264,1270],[1265,1271],[6358,6359],[1266,1268],[1267,1269],[6361,6362],[6342,6346],[1267,6348],[1270,6365],[1264,1268],[6352,6367],[1265,1269],[6351,6369],[1272,1274],[1273,1275],[6371,6372],[1276,1278],[1277,1279],[6374,6375],[1273,1276],[1272,6377],[1277,6378],[1274,1278],[1275,1279],[6380,6381],[1274,6374],[1272,6383],[1279,6372],[1277,6385],[1272,1278],[1273,1279],[6387,6388],[1274,1276],[1275,1277],[6390,6391],[6371,6375],[1275,6377],[1278,6394],[1272,1276],[6381,6396],[1273,1277],[6380,6398],[1280,1282],[1281,1283],[6400,6401],[1284,1286],[1285,1287],[6403,6404],[1281,1284],[1280,6406],[1285,6407],[1282,1286],[1283,1287],[6409,6410],[1282,6403],[1280,6412],[1287,6401],[1285,6414],[1280,1286],[1281,1287],[6416,6417],[1282,1284],[1283,1285],[6419,6420],[6400,6404],[1283,6406],[1286,6423],[1280,1284],[6410,6425],[1281,1285],[6409,6427],[1288,1290],[1289,1291],[6429,6430],[1292,1294],[1293,1295],[6432,6433],[1289,1292],[1288,6435],[1293,6436],[1290,1294],[1291,1295],[6438,6439],[1290,6432],[1288,6441],[1295,6430],[1293,6443],[1288,1294],[1289,1295],[6445,6446],[1290,1292],[1291,1293],[6448,6449],[6429,6433],[1291,6435],[1294,6452],[1288,1292],[6439,6454],[1289,1293],[6438,6456],[1296,1298],[1297,1299],[6458,6459],[1300,1302],[1301,1303],[6461,6462],[1297,1300],[1296,6464],[1301,6465],[1298,1302],[1299,1303],[6467,6468],[1298,6461],[1296,6470],[1303,6459],[1301,6472],[1296,1302],[1297,1303],[6474,6475],[1298,1300],[1299,1301],[6477,6478],[6458,6462],[1299,6464],[1302,6481],[1296,1300],[6468,6483],[1297,1301],[6467,6485],[1304,1306],[1305,1307],[6487,6488],[1308,1310],[1309,1311],[6490,6491],[1305,1308],[1304,6493],[1309,6494],[1306,1310],[1307,1311],[6496,6497],[1306,6490],[1304,6499],[1311,6488],[1309,6501],[1304,1310],[1305,1311],[6503,6504],[1306,1308],[1307,1309],[6506,6507],[6487,6491],[1307,6493],[1310,6510],[1304,1308],[6497,6512],[1305,1309],[6496,6514],[1312,1314],[1313,1315],[6516,6517],[1316,1318],[1317,1319],[6519,6520],[1313,1316],[1312,6522],[1317,6523],[1314,1318],[1315,1319],[6525,6526],[1314,6519],[1312,6528],[1319,6517],[1317,6530],[1312,1318],[1313,1319],[6532,6533],[1314,1316],[1315,1317],[6535,6536],[6516,6520],[1315,6522],[1318,6539],[1312,1316],[6526,6541],[1313,1317],[6525,6543],[1320,1322],[1321,1323],[6545,6546],[1324,1326],[1325,1327],[6548,6549],[1321,1324],[1320,6551],[1325,6552],[1322,1326],[1323,1327],[6554,6555],[1322,6548],[1320,6557],[1327,6546],[1325,6559],[1320,1326],[1321,1327],[6561,6562],[1322,1324],[1323,1325],[6564,6565],[6545,6549],[1323,6551],[1326,6568],[1320,1324],[6555,6570],[1321,1325],[6554,6572],[1328,1330],[1329,1331],[6574,6575],[1332,1334],[1333,1335],[6577,6578],[1329,1332],[1328,6580],[1333,6581],[1330,1334],[1331,1335],[6583,6584],[1330,6577],[1328,6586],[1335,6575],[1333,6588],[1328,1334],[1329,1335],[6590,6591],[1330,1332],[1331,1333],[6593,6594],[6574,6578],[1331,6580],[1334,6597],[1328,1332],[6584,6599],[1329,1333],[6583,6601],[1336,1338],[1337,1339],[6603,6604],[1340,1342],[1341,1343],[6606,6607],[1337,1340],[1336,6609],[1341,6610],[1338,1342],[1339,1343],[6612,6613],[1338,6606],[1336,6615],[1343,6604],[1341,6617],[1336,1342],[1337,1343],[6619,6620],[1338,1340],[1339,1341],[6622,6623],[6603,6607],[1339,6609],[1342,6626],[1336,1340],[6613,6628],[1337,1341],[6612,6630],[1344,1346],[1345,1347],[6632,6633],[1348,1350],[1349,1351],[6635,6636],[1345,1348],[1344,6638],[1349,6639],[1346,1350],[1347,1351],[6641,6642],[1346,6635],[1344,6644],[1351,6633],[1349,6646],[1344,1350],[1345,1351],[6648,6649],[1346,1348],[1347,1349],[6651,6652],[6632,6636],[1347,6638],[1350,6655],[1344,1348],[6642,6657],[1345,1349],[6641,6659],[1352,1354],[1353,1355],[6661,6662],[1356,1358],[1357,1359],[6664,6665],[1353,1356],[1352,6667],[1357,6668],[1354,1358],[1355,1359],[6670,6671],[1354,6664],[1352,6673],[1359,6662],[1357,6675],[1352,1358],[1353,1359],[6677,6678],[1354,1356],[1355,1357],[6680,6681],[6661,6665],[1355,6667],[1358,6684],[1352,1356],[6671,6686],[1353,1357],[6670,6688],[1360,1362],[1361,1363],[6690,6691],[1364,1366],[1365,1367],[6693,6694],[1361,1364],[1360,6696],[1365,6697],[1362,1366],[1363,1367],[6699,6700],[1362,6693],[1360,6702],[1367,6691],[1365,6704],[1360,1366],[1361,1367],[6706,6707],[1362,1364],[1363,1365],[6709,6710],[6690,6694],[1363,6696],[1366,6713],[1360,1364],[6700,6715],[1361,1365],[6699,6717],[1368,1370],[1369,1371],[6719,6720],[1372,1374],[1373,1375],[6722,6723],[1369,1372],[1368,6725],[1373,6726],[1370,1374],[1371,1375],[6728,6729],[1370,6722],[1368,6731],[1375,6720],[1373,6733],[1368,1374],[1369,1375],[6735,6736],[1370,1372],[1371,1373],[6738,6739],[6719,6723],[1371,6725],[1374,6742],[1368,1372],[6729,6744],[1369,1373],[6728,6746],[1376,1378],[1377,1379],[6748,6749],[1380,1382],[1381,1383],[6751,6752],[1377,1380],[1376,6754],[1381,6755],[1378,1382],[1379,1383],[6757,6758],[1378,6751],[1376,6760],[1383,6749],[1381,6762],[1376,1382],[1377,1383],[6764,6765],[1378,1380],[1379,1381],[6767,6768],[6748,6752],[1379,6754],[1382,6771],[1376,1380],[6758,6773],[1377,1381],[6757,6775],[1384,1386],[1385,1387],[6777,6778],[1388,1390],[1389,1391],[6780,6781],[1385,1388],[1384,6783],[1389,6784],[1386,1390],[1387,1391],[6786,6787],[1386,6780],[1384,6789],[1391,6778],[1389,6791],[1384,1390],[1385,1391],[6793,6794],[1386,1388],[1387,1389],[6796,6797],[6777,6781],[1387,6783],[1390,6800],[1384,1388],[6787,6802],[1385,1389],[6786,6804],[1392,1394],[1393,1395],[6806,6807],[1396,1398],[1397,1399],[6809,6810],[1393,1396],[1392,6812],[1397,6813],[1394,1398],[1395,1399],[6815,6816],[1394,6809],[1392,6818],[1399,6807],[1397,6820],[1392,1398],[1393,1399],[6822,6823],[1394,1396],[1395,1397],[6825,6826],[6806,6810],[1395,6812],[1398,6829],[1392,1396],[6816,6831],[1393,1397],[6815,6833],[1400,1402],[1401,1403],[6835,6836],[1404,1406],[1405,1407],[6838,6839],[1401,1404],[1400,6841],[1405,6842],[1402,1406],[1403,1407],[6844,6845],[1402,6838],[1400,6847],[1407,6836],[1405,6849],[1400,1406],[1401,1407],[6851,6852],[1402,1404],[1403,1405],[6854,6855],[6835,6839],[1403,6841],[1406,6858],[1400,1404],[6845,6860],[1401,1405],[6844,6862],[1408,1410],[1409,1411],[6864,6865],[1412,1414],[1413,1415],[6867,6868],[1409,1412],[1408,6870],[1413,6871],[1410,1414],[1411,1415],[6873,6874],[1410,6867],[1408,6876],[1415,6865],[1413,6878],[1408,1414],[1409,1415],[6880,6881],[1410,1412],[1411,1413],[6883,6884],[6864,6868],[1411,6870],[1414,6887],[1408,1412],[6874,6889],[1409,1413],[6873,6891],[1416,1418],[1417,1419],[6893,6894],[1420,1422],[1421,1423],[6896,6897],[1417,1420],[1416,6899],[1421,6900],[1418,1422],[1419,1423],[6902,6903],[1418,6896],[1416,6905],[1423,6894],[1421,6907],[1416,1422],[1417,1423],[6909,6910],[1418,1420],[1419,1421],[6912,6913],[6893,6897],[1419,6899],[1422,6916],[1416,1420],[6903,6918],[1417,1421],[6902,6920],[1424,1426],[1425,1427],[6922,6923],[1428,1430],[1429,1431],[6925,6926],[1425,1428],[1424,6928],[1429,6929],[1426,1430],[1427,1431],[6931,6932],[1426,6925],[1424,6934],[1431,6923],[1429,6936],[1424,1430],[1425,1431],[6938,6939],[1426,1428],[1427,1429],[6941,6942],[6922,6926],[1427,6928],[1430,6945],[1424,1428],[6932,6947],[1425,1429],[6931,6949],[1432,1434],[1433,1435],[6951,6952],[1436,1438],[1437,1439],[6954,6955],[1433,1436],[1432,6957],[1437,6958],[1434,1438],[1435,1439],[6960,6961],[1434,6954],[1432,6963],[1439,6952],[1437,6965],[1432,1438],[1433,1439],[6967,6968],[1434,1436],[1435,1437],[6970,6971],[6951,6955],[1435,6957],[1438,6974],[1432,1436],[6961,6976],[1433,1437],[6960,6978],[1440,1442],[1441,1443],[6980,6981],[1444,1446],[1445,1447],[6983,6984],[1441,1444],[1440,6986],[1445,6987],[1442,1446],[1443,1447],[6989,6990],[1442,6983],[1440,6992],[1447,6981],[1445,6994],[1440,1446],[1441,1447],[6996,6997],[1442,1444],[1443,1445],[6999,7000],[6980,6984],[1443,6986],[1446,7003],[1440,1444],[6990,7005],[1441,1445],[6989,7007],[1448,1450],[1449,1451],[7009,7010],[1452,1454],[1453,1455],[7012,7013],[1449,1452],[1448,7015],[1453,7016],[1450,1454],[1451,1455],[7018,7019],[1450,7012],[1448,7021],[1455,7010],[1453,7023],[1448,1454],[1449,1455],[7025,7026],[1450,1452],[1451,1453],[7028,7029],[7009,7013],[1451,7015],[1454,7032],[1448,1452],[7019,7034],[1449,1453],[7018,7036],[1456,1458],[1457,1459],[7038,7039],[1460,1462],[1461,1463],[7041,7042],[1457,1460],[1456,7044],[1461,7045],[1458,1462],[1459,1463],[7047,7048],[1458,7041],[1456,7050],[1463,7039],[1461,7052],[1456,1462],[1457,1463],[7054,7055],[1458,1460],[1459,1461],[7057,7058],[7038,7042],[1459,7044],[1462,7061],[1456,1460],[7048,7063],[1457,1461],[7047,7065],[1464,1466],[1465,1467],[7067,7068],[1468,1470],[1469,1471],[7070,7071],[1465,1468],[1464,7073],[1469,7074],[1466,1470],[1467,1471],[7076,7077],[1466,7070],[1464,7079],[1471,7068],[1469,7081],[1464,1470],[1465,1471],[7083,7084],[1466,1468],[1467,1469],[7086,7087],[7067,7071],[1467,7073],[1470,7090],[1464,1468],[7077,7092],[1465,1469],[7076,7094],[1472,1474],[1473,1475],[7096,7097],[1476,1478],[1477,1479],[7099,7100],[1473,1476],[1472,7102],[1477,7103],[1474,1478],[1475,1479],[7105,7106],[1474,7099],[1472,7108],[1479,7097],[1477,7110],[1472,1478],[1473,1479],[7112,7113],[1474,1476],[1475,1477],[7115,7116],[7096,7100],[1475,7102],[1478,7119],[1472,1476],[7106,7121],[1473,1477],[7105,7123],[1480,1482],[1481,1483],[7125,7126],[1484,1486],[1485,1487],[7128,7129],[1481,1484],[1480,7131],[1485,7132],[1482,1486],[1483,1487],[7134,7135],[1482,7128],[1480,7137],[1487,7126],[1485,7139],[1480,1486],[1481,1487],[7141,7142],[1482,1484],[1483,1485],[7144,7145],[7125,7129],[1483,7131],[1486,7148],[1480,1484],[7135,7150],[1481,1485],[7134,7152],[1488,1490],[1489,1491],[7154,7155],[1492,1494],[1493,1495],[7157,7158],[1489,1492],[1488,7160],[1493,7161],[1490,1494],[1491,1495],[7163,7164],[1490,7157],[1488,7166],[1495,7155],[1493,7168],[1488,1494],[1489,1495],[7170,7171],[1490,1492],[1491,1493],[7173,7174],[7154,7158],[1491,7160],[1494,7177],[1488,1492],[7164,7179],[1489,1493],[7163,7181],[1496,1498],[1497,1499],[7183,7184],[1500,1502],[1501,1503],[7186,7187],[1497,1500],[1496,7189],[1501,7190],[1498,1502],[1499,1503],[7192,7193],[1498,7186],[1496,7195],[1503,7184],[1501,7197],[1496,1502],[1497,1503],[7199,7200],[1498,1500],[1499,1501],[7202,7203],[7183,7187],[1499,7189],[1502,7206],[1496,1500],[7193,7208],[1497,1501],[7192,7210],[1504,1506],[1505,1507],[7212,7213],[1508,1510],[1509,1511],[7215,7216],[1505,1508],[1504,7218],[1509,7219],[1506,1510],[1507,1511],[7221,7222],[1506,7215],[1504,7224],[1511,7213],[1509,7226],[1504,1510],[1505,1511],[7228,7229],[1506,1508],[1507,1509],[7231,7232],[7212,7216],[1507,7218],[1510,7235],[1504,1508],[7222,7237],[1505,1509],[7221,7239],[1512,1514],[1513,1515],[7241,7242],[1516,1518],[1517,1519],[7244,7245],[1513,1516],[1512,7247],[1517,7248],[1514,1518],[1515,1519],[7250,7251],[1514,7244],[1512,7253],[1519,7242],[1517,7255],[1512,1518],[1513,1519],[7257,7258],[1514,1516],[1515,1517],[7260,7261],[7241,7245],[1515,7247],[1518,7264],[1512,1516],[7251,7266],[1513,1517],[7250,7268],[1520,1522],[1521,1523],[7270,7271],[1524,1526],[1525,1527],[7273,7274],[1521,1524],[1520,7276],[1525,7277],[1522,1526],[1523,1527],[7279,7280],[1522,7273],[1520,7282],[1527,7271],[1525,7284],[1520,1526],[1521,1527],[7286,7287],[1522,1524],[1523,1525],[7289,7290],[7270,7274],[1523,7276],[1526,7293],[1520,1524],[7280,7295],[1521,1525],[7279,7297],[1528,1530],[1529,1531],[7299,7300],[1532,1534],[1533,1535],[7302,7303],[1529,1532],[1528,7305],[1533,7306],[1530,1534],[1531,1535],[7308,7309],[1530,7302],[1528,7311],[1535,7300],[1533,7313],[1528,1534],[1529,1535],[7315,7316],[1530,1532],[1531,1533],[7318,7319],[7299,7303],[1531,7305],[1534,7322],[1528,1532],[7309,7324],[1529,1533],[7308,7326],[1536,1538],[1537,1539],[7328,7329],[1540,1542],[1541,1543],[7331,7332],[1537,1540],[1536,7334],[1541,7335],[1538,1542],[1539,1543],[7337,7338],[1538,7331],[1536,7340],[1543,7329],[1541,7342],[1536,1542],[1537,1543],[7344,7345],[1538,1540],[1539,1541],[7347,7348],[7328,7332],[1539,7334],[1542,7351],[1536,1540],[7338,7353],[1537,1541],[7337,7355],[1544,1546],[1545,1547],[7357,7358],[1548,1550],[1549,1551],[7360,7361],[1545,1548],[1544,7363],[1549,7364],[1546,1550],[1547,1551],[7366,7367],[1546,7360],[1544,7369],[1551,7358],[1549,7371],[1544,1550],[1545,1551],[7373,7374],[1546,1548],[1547,1549],[7376,7377],[7357,7361],[1547,7363],[1550,7380],[1544,1548],[7367,7382],[1545,1549],[7366,7384],[1552,1554],[1553,1555],[7386,7387],[1556,1558],[1557,1559],[7389,7390],[1553,1556],[1552,7392],[1557,7393],[1554,1558],[1555,1559],[7395,7396],[1554,7389],[1552,7398],[1559,7387],[1557,7400],[1552,1558],[1553,1559],[7402,7403],[1554,1556],[1555,1557],[7405,7406],[7386,7390],[1555,7392],[1558,7409],[1552,1556],[7396,7411],[1553,1557],[7395,7413],[1560,1562],[1561,1563],[7415,7416],[1564,1566],[1565,1567],[7418,7419],[1561,1564],[1560,7421],[1565,7422],[1562,1566],[1563,1567],[7424,7425],[1562,7418],[1560,7427],[1567,7416],[1565,7429],[1560,1566],[1561,1567],[7431,7432],[1562,1564],[1563,1565],[7434,7435],[7415,7419],[1563,7421],[1566,7438],[1560,1564],[7425,7440],[1561,1565],[7424,7442],[1568,1570],[1569,1571],[7444,7445],[1572,1574],[1573,1575],[7447,7448],[1569,1572],[1568,7450],[1573,7451],[1570,1574],[1571,1575],[7453,7454],[1570,7447],[1568,7456],[1575,7445],[1573,7458],[1568,1574],[1569,1575],[7460,7461],[1570,1572],[1571,1573],[7463,7464],[7444,7448],[1571,7450],[1574,7467],[1568,1572],[7454,7469],[1569,1573],[7453,7471],[1576,1578],[1577,1579],[7473,7474],[1580,1582],[1581,1583],[7476,7477],[1577,1580],[1576,7479],[1581,7480],[1578,1582],[1579,1583],[7482,7483],[1578,7476],[1576,7485],[1583,7474],[1581,7487],[1576,1582],[1577,1583],[7489,7490],[1578,1580],[1579,1581],[7492,7493],[7473,7477],[1579,7479],[1582,7496],[1576,1580],[7483,7498],[1577,1581],[7482,7500],[1584,1586],[1585,1587],[7502,7503],[1588,1590],[1589,1591],[7505,7506],[1585,1588],[1584,7508],[1589,7509],[1586,1590],[1587,1591],[7511,7512],[1586,7505],[1584,7514],[1591,7503],[1589,7516],[1584,1590],[1585,1591],[7518,7519],[1586,1588],[1587,1589],[7521,7522],[7502,7506],[1587,7508],[1590,7525],[1584,1588],[7512,7527],[1585,1589],[7511,7529],[1592,1594],[1593,1595],[7531,7532],[1596,1598],[1597,1599],[7534,7535],[1593,1596],[1592,7537],[1597,7538],[1594,1598],[1595,1599],[7540,7541],[1594,7534],[1592,7543],[1599,7532],[1597,7545],[1592,1598],[1593,1599],[7547,7548],[1594,1596],[1595,1597],[7550,7551],[7531,7535],[1595,7537],[1598,7554],[1592,1596],[7541,7556],[1593,1597],[7540,7558],[1600,1602],[1601,1603],[7560,7561],[1604,1606],[1605,1607],[7563,7564],[1601,1604],[1600,7566],[1605,7567],[1602,1606],[1603,1607],[7569,7570],[1602,7563],[1600,7572],[1607,7561],[1605,7574],[1600,1606],[1601,1607],[7576,7577],[1602,1604],[1603,1605],[7579,7580],[7560,7564],[1603,7566],[1606,7583],[1600,1604],[7570,7585],[1601,1605],[7569,7587],[1608,1610],[1609,1611],[7589,7590],[1612,1614],[1613,1615],[7592,7593],[1609,1612],[1608,7595],[1613,7596],[1610,1614],[1611,1615],[7598,7599],[1610,7592],[1608,7601],[1615,7590],[1613,7603],[1608,1614],[1609,1615],[7605,7606],[1610,1612],[1611,1613],[7608,7609],[7589,7593],[1611,7595],[1614,7612],[1608,1612],[7599,7614],[1609,1613],[7598,7616],[1616,1618],[1617,1619],[7618,7619],[1620,1622],[1621,1623],[7621,7622],[1617,1620],[1616,7624],[1621,7625],[1618,1622],[1619,1623],[7627,7628],[1618,7621],[1616,7630],[1623,7619],[1621,7632],[1616,1622],[1617,1623],[7634,7635],[1618,1620],[1619,1621],[7637,7638],[7618,7622],[1619,7624],[1622,7641],[1616,1620],[7628,7643],[1617,1621],[7627,7645],[1624,1626],[1625,1627],[7647,7648],[1628,1630],[1629,1631],[7650,7651],[1625,1628],[1624,7653],[1629,7654],[1626,1630],[1627,1631],[7656,7657],[1626,7650],[1624,7659],[1631,7648],[1629,7661],[1624,1630],[1625,1631],[7663,7664],[1626,1628],[1627,1629],[7666,7667],[7647,7651],[1627,7653],[1630,7670],[1624,1628],[7657,7672],[1625,1629],[7656,7674],[1632,1634],[1633,1635],[7676,7677],[1636,1638],[1637,1639],[7679,7680],[1633,1636],[1632,7682],[1637,7683],[1634,1638],[1635,1639],[7685,7686],[1634,7679],[1632,7688],[1639,7677],[1637,7690],[1632,1638],[1633,1639],[7692,7693],[1634,1636],[1635,1637],[7695,7696],[7676,7680],[1635,7682],[1638,7699],[1632,1636],[7686,7701],[1633,1637],[7685,7703],[1640,1642],[1641,1643],[7705,7706],[1644,1646],[1645,1647],[7708,7709],[1641,1644],[1640,7711],[1645,7712],[1642,1646],[1643,1647],[7714,7715],[1642,7708],[1640,7717],[1647,7706],[1645,7719],[1640,1646],[1641,1647],[7721,7722],[1642,1644],[1643,1645],[7724,7725],[7705,7709],[1643,7711],[1646,7728],[1640,1644],[7715,7730],[1641,1645],[7714,7732],[1648,1650],[1649,1651],[7734,7735],[1652,1654],[1653,1655],[7737,7738],[1649,1652],[1648,7740],[1653,7741],[1650,1654],[1651,1655],[7743,7744],[1650,7737],[1648,7746],[1655,7735],[1653,7748],[1648,1654],[1649,1655],[7750,7751],[1650,1652],[1651,1653],[7753,7754],[7734,7738],[1651,7740],[1654,7757],[1648,1652],[7744,7759],[1649,1653],[7743,7761],[1656,1658],[1657,1659],[7763,7764],[1660,1662],[1661,1663],[7766,7767],[1657,1660],[1656,7769],[1661,7770],[1658,1662],[1659,1663],[7772,7773],[1658,7766],[1656,7775],[1663,7764],[1661,7777],[1656,1662],[1657,1663],[7779,7780],[1658,1660],[1659,1661],[7782,7783],[7763,7767],[1659,7769],[1662,7786],[1656,1660],[7773,7788],[1657,1661],[7772,7790],[1664,1666],[1665,1667],[7792,7793],[1668,1670],[1669,1671],[7795,7796],[1665,1668],[1664,7798],[1669,7799],[1666,1670],[1667,1671],[7801,7802],[1666,7795],[1664,7804],[1671,7793],[1669,7806],[1664,1670],[1665,1671],[7808,7809],[1666,1668],[1667,1669],[7811,7812],[7792,7796],[1667,7798],[1670,7815],[1664,1668],[7802,7817],[1665,1669],[7801,7819],[1672,1674],[1673,1675],[7821,7822],[1676,1678],[1677,1679],[7824,7825],[1673,1676],[1672,7827],[1677,7828],[1674,1678],[1675,1679],[7830,7831],[1674,7824],[1672,7833],[1679,7822],[1677,7835],[1672,1678],[1673,1679],[7837,7838],[1674,1676],[1675,1677],[7840,7841],[7821,7825],[1675,7827],[1678,7844],[1672,1676],[7831,7846],[1673,1677],[7830,7848],[1680,1682],[1681,1683],[7850,7851],[1684,1686],[1685,1687],[7853,7854],[1681,1684],[1680,7856],[1685,7857],[1682,1686],[1683,1687],[7859,7860],[1682,7853],[1680,7862],[1687,7851],[1685,7864],[1680,1686],[1681,1687],[7866,7867],[1682,1684],[1683,1685],[7869,7870],[7850,7854],[1683,7856],[1686,7873],[1680,1684],[7860,7875],[1681,1685],[7859,7877],[1688,1690],[1689,1691],[7879,7880],[1692,1694],[1693,1695],[7882,7883],[1689,1692],[1688,7885],[1693,7886],[1690,1694],[1691,1695],[7888,7889],[1690,7882],[1688,7891],[1695,7880],[1693,7893],[1688,1694],[1689,1695],[7895,7896],[1690,1692],[1691,1693],[7898,7899],[7879,7883],[1691,7885],[1694,7902],[1688,1692],[7889,7904],[1689,1693],[7888,7906],[1696,1698],[1697,1699],[7908,7909],[1700,1702],[1701,1703],[7911,7912],[1697,1700],[1696,7914],[1701,7915],[1698,1702],[1699,1703],[7917,7918],[1698,7911],[1696,7920],[1703,7909],[1701,7922],[1696,1702],[1697,1703],[7924,7925],[1698,1700],[1699,1701],[7927,7928],[7908,7912],[1699,7914],[1702,7931],[1696,1700],[7918,7933],[1697,1701],[7917,7935],[1704,1706],[1705,1707],[7937,7938],[1708,1710],[1709,1711],[7940,7941],[1705,1708],[1704,7943],[1709,7944],[1706,1710],[1707,1711],[7946,7947],[1706,7940],[1704,7949],[1711,7938],[1709,7951],[1704,1710],[1705,1711],[7953,7954],[1706,1708],[1707,1709],[7956,7957],[7937,7941],[1707,7943],[1710,7960],[1704,1708],[7947,7962],[1705,1709],[7946,7964],[1712,1714],[1713,1715],[7966,7967],[1716,1718],[1717,1719],[7969,7970],[1713,1716],[1712,7972],[1717,7973],[1714,1718],[1715,1719],[7975,7976],[1714,7969],[1712,7978],[1719,7967],[1717,7980],[1712,1718],[1713,1719],[7982,7983],[1714,1716],[1715,1717],[7985,7986],[7966,7970],[1715,7972],[1718,7989],[1712,1716],[7976,7991],[1713,1717],[7975,7993],[1720,1722],[1721,1723],[7995,7996],[1724,1726],[1725,1727],[7998,7999],[1721,1724],[1720,8001],[1725,8002],[1722,1726],[1723,1727],[8004,8005],[1722,7998],[1720,8007],[1727,7996],[1725,8009],[1720,1726],[1721,1727],[8011,8012],[1722,1724],[1723,1725],[8014,8015],[7995,7999],[1723,8001],[1726,8018],[1720,1724],[8005,8020],[1721,1725],[8004,8022],[1728,1730],[1729,1731],[8024,8025],[1732,1734],[1733,1735],[8027,8028],[1729,1732],[1728,8030],[1733,8031],[1730,1734],[1731,1735],[8033,8034],[1730,8027],[1728,8036],[1735,8025],[1733,8038],[1728,1734],[1729,1735],[8040,8041],[1730,1732],[1731,1733],[8043,8044],[8024,8028],[1731,8030],[1734,8047],[1728,1732],[8034,8049],[1729,1733],[8033,8051],[1736,1738],[1737,1739],[8053,8054],[1740,1742],[1741,1743],[8056,8057],[1737,1740],[1736,8059],[1741,8060],[1738,1742],[1739,1743],[8062,8063],[1738,8056],[1736,8065],[1743,8054],[1741,8067],[1736,1742],[1737,1743],[8069,8070],[1738,1740],[1739,1741],[8072,8073],[8053,8057],[1739,8059],[1742,8076],[1736,1740],[8063,8078],[1737,1741],[8062,8080],[1744,1746],[1745,1747],[8082,8083],[1748,1750],[1749,1751],[8085,8086],[1745,1748],[1744,8088],[1749,8089],[1746,1750],[1747,1751],[8091,8092],[1746,8085],[1744,8094],[1751,8083],[1749,8096],[1744,1750],[1745,1751],[8098,8099],[1746,1748],[1747,1749],[8101,8102],[8082,8086],[1747,8088],[1750,8105],[1744,1748],[8092,8107],[1745,1749],[8091,8109],[1752,1754],[1753,1755],[8111,8112],[1756,1758],[1757,1759],[8114,8115],[1753,1756],[1752,8117],[1757,8118],[1754,1758],[1755,1759],[8120,8121],[1754,8114],[1752,8123],[1759,8112],[1757,8125],[1752,1758],[1753,1759],[8127,8128],[1754,1756],[1755,1757],[8130,8131],[8111,8115],[1755,8117],[1758,8134],[1752,1756],[8121,8136],[1753,1757],[8120,8138],[2719,2893],[2284,8140],[2516,8141],[2980,3096],[2081,2110],[2284,8144],[2255,8145],[2197,8146],[2139,8147],[2864,2893],[2110,2342],[1849,8150],[8149,8151],[2777,8152],[2197,2429],[8153,8154],[2748,2777],[3038,3154],[3241,8157],[3299,8158],[3067,3096],[3183,8160],[8159,8161],[3212,3270],[3009,8163],[3125,8164],[2922,2980],[8165,8166],[3328,8167],[8162,8168],[2951,8169],[8156,8170],[2574,2603],[2632,2661],[8172,8173],[8171,8174],[2806,2835],[8175,8176],[2690,2864],[2719,8178],[2893,8179],[2545,8180],[8177,8181],[2632,2806],[2835,8183],[2661,8184],[2429,2458],[2226,8186],[2197,8187],[2951,8161],[8166,8189],[8188,8190],[8185,8191],[2371,2400],[2139,2168],[8193,8194],[8172,8195],[2922,8196],[8156,8197],[3009,3125],[8198,8199],[2023,8159],[1820,2545],[8174,8202],[1936,1965],[1907,8204],[8190,8205],[8156,8176],[8206,8207],[1849,8208],[1878,8209],[8203,8210],[8201,8211],[2023,2516],[1791,8213],[8141,8214],[3241,3299],[3183,8188],[8185,8217],[1936,8218],[2052,2081],[2313,2342],[2545,8221],[8220,8222],[2110,8223],[1820,1849],[1762,8225],[8224,8226],[8219,8227],[8216,8228],[8215,8229],[2574,2748],[2139,2371],[8231,8232],[3038,8233],[1878,8234],[1965,8235],[8230,8236],[8156,8224],[8196,8238],[8185,8239],[3183,8204],[8216,8241],[2255,2487],[2052,8195],[8188,8244],[1762,1791],[8245,8246],[8243,8247],[1994,3125],[8164,8249],[8248,8250],[8141,8144],[8212,8252],[8178,8253],[8251,8254],[8221,8255],[2197,2226],[8163,8242],[8257,8258],[2284,2516],[8243,8260],[2052,8246],[8261,8262],[1994,2023],[3328,8264],[8263,8265],[8259,8266],[1791,8193],[8221,8268],[2487,8269],[2951,3067],[3212,3241],[8271,8272],[1936,8273],[2806,8274],[2748,8275],[1878,1907],[2835,8156],[2632,8154],[3328,8256],[1762,8257],[1878,8205],[8264,8282],[8170,8283],[2139,2255],[2168,8285],[8284,8286],[8281,8287],[2284,8288],[2603,8156],[8277,8290],[2951,3241],[2081,2719],[2661,2835],[1849,8202],[8180,8265],[8295,8296],[8294,8297],[8183,8298],[8258,8299],[1878,8250],[8209,8301],[8203,8302],[8149,8176],[8156,8304],[2951,2980],[8237,8306],[2690,8293],[2313,8308],[8172,8309],[8243,8245],[8260,8311],[8180,8295],[8144,8178],[1791,8227],[1994,8315],[3328,8261],[8316,8317],[8180,8318],[8291,8313],[2574,8320],[1762,8321],[1965,8230],[1907,3154],[8323,8324],[2023,8180],[8318,8326],[2400,8327],[1907,2400],[2168,2400],[2603,2777],[8160,8331],[8330,8332],[8325,8333],[3299,8238],[2168,8324],[3125,8336],[2922,8157],[8199,8338],[3328,8339],[8264,8340],[8320,8341],[2893,8151],[1762,2284],[8214,8344],[1878,8206],[8245,8346],[8159,8347],[8345,8348],[8343,8349],[2690,8270],[2458,8351],[2864,8302],[2429,8353],[8352,8354],[2313,2690],[2429,2574],[8183,8357],[8274,8358],[8163,8216],[8180,8317],[8223,8361],[2110,8218],[8362,8363],[8360,8364],[3038,8306],[3009,8366],[8233,8367],[8365,8368],[3241,8271],[3125,8331],[2516,8270],[8342,8372],[8359,8373],[8203,8355],[2371,8221],[2487,8376],[2516,8186],[1791,8378],[2342,2487],[8379,8380],[8329,8381],[2226,2458],[1878,3009],[8231,8384],[8306,8385],[8232,8386],[8215,8226],[3154,8277],[3038,8389],[8388,8390],[8281,8286],[8234,8384],[8319,8393],[1791,8226],[8188,8346],[8395,8396],[8160,8371],[3154,8398],[8198,8224],[8391,8400],[1965,8219],[2255,8178],[8316,8403],[2487,8404],[3270,8405],[8402,8406],[3212,8407],[8387,8408],[1965,3270],[3299,8294],[8410,8411],[8143,8412],[2574,8342],[8413,8414],[1936,8279],[2806,8416],[3212,8417],[8327,8418],[3241,8419],[8277,8341],[8193,8421],[8263,8422],[8383,8410],[3096,8424],[2980,8194],[3299,8426],[8425,8427],[8423,8428],[8278,8429],[8240,8397],[2313,8399],[8152,8430],[8169,8312],[8194,8423],[2400,8182],[3212,8398],[8300,8379],[8199,8361],[8338,8439],[8196,8440],[8335,8441],[1878,8232],[8186,8367],[8443,8444],[2574,8445],[2458,8415],[8155,8435],[1820,8173],[8314,8392],[8258,8281],[8377,8438],[8154,8239],[8271,8453],[8183,8454],[8276,8448],[8200,8277],[2487,8457],[8271,8458],[8194,8281],[8253,8460],[8200,8327],[1907,8407],[8251,8346],[8356,8449],[2081,8465],[8464,8466],[2951,8174],[8165,8243],[8360,8402],[8327,8470],[1820,8174],[2719,8472],[8356,8473],[2400,8337],[3067,8475],[8172,8467],[8303,8450],[8193,8284],[8381,8479],[2487,8379],[8479,8481],[8474,8482],[8309,8468],[8366,8385],[8452,8485],[8331,8420],[8476,8487],[1965,8401],[8310,8423],[1820,2661],[8490,8491],[2603,8160],[8186,8267],[8475,8494],[8493,8495],[8330,8437],[8463,8497],[8143,8294],[8372,8447],[8434,8484],[2748,8304],[8382,8432],[8300,8503],[8293,8465],[8267,8505],[8404,8418],[8459,8507],[8383,8499],[3299,8509],[8489,8510],[2023,2980],[8428,8492],[2081,8349],[8272,8455],[8440,8515],[8377,8378],[1849,8305],[8480,8518],[2313,8473],[8514,8520],[2661,8485],[8158,8192],[8328,8331],[8411,8524],[8337,8425],[8525,8526],[8496,8505],[8412,8512],[8383,8529],[8322,8341],[8145,8531],[8146,8451],[8297,8533],[2226,8286],[8142,8196],[8184,8522],[8335,8536],[8523,8538],[8394,8530],[8171,8304],[8150,8541],[8534,8537],[8532,8535],[2168,8148],[8182,8545],[1849,2110],[8305,8547],[8267,8445],[2139,8543],[8140,8212],[8393,8419],[8424,8457],[8405,8499],[8390,8462],[8289,8548],[8312,8542],[8553,8554],[8273,8435],[1820,8416],[8292,8552],[8413,8544],[8365,8399],[8150,8248],[3096,8176],[8494,8565],[8153,8476],[8566,8567],[2284,8308],[8330,8563],[2632,8545],[8353,8564],[8178,8469],[8192,8239],[8573,8574],[8398,8533],[8299,8576],[8275,8531],[8571,8578],[8336,8577],[2226,8546],[2806,8370],[8442,8509],[3270,8583],[8288,8569],[8472,8585],[8247,8261],[8416,8582],[8207,8350],[8284,8587],[8269,8551],[8378,8591],[8310,8559],[8401,8588],[8283,8313],[8560,8593],[2516,8280],[8177,8595],[8151,8549],[8436,8517],[8502,8599],[8446,8506],[2722,2896],[2287,8603],[2519,8604],[2983,3099],[2084,2113],[2287,8607],[2258,8608],[2200,8609],[2142,8610],[2867,2896],[2113,2345],[1852,8613],[8612,8614],[2780,8615],[2200,2432],[8616,8617],[2751,2780],[3041,3157],[3244,8620],[3302,8621],[3070,3099],[3186,8623],[8622,8624],[3215,3273],[3012,8626],[3128,8627],[2925,2983],[8628,8629],[3331,8630],[8625,8631],[2954,8632],[8619,8633],[2577,2606],[2635,2664],[8635,8636],[8634,8637],[2809,2838],[8638,8639],[2693,2867],[2722,8641],[2896,8642],[2548,8643],[8640,8644],[2635,2809],[2838,8646],[2664,8647],[2432,2461],[2229,8649],[2200,8650],[2954,8624],[8629,8652],[8651,8653],[8648,8654],[2374,2403],[2142,2171],[8656,8657],[8635,8658],[2925,8659],[8619,8660],[3012,3128],[8661,8662],[2026,8622],[1823,2548],[8637,8665],[1939,1968],[1910,8667],[8653,8668],[8619,8639],[8669,8670],[1852,8671],[1881,8672],[8666,8673],[8664,8674],[2026,2519],[1794,8676],[8604,8677],[3244,3302],[3186,8651],[8648,8680],[1939,8681],[2055,2084],[2316,2345],[2548,8684],[8683,8685],[2113,8686],[1823,1852],[1765,8688],[8687,8689],[8682,8690],[8679,8691],[8678,8692],[2577,2751],[2142,2374],[8694,8695],[3041,8696],[1881,8697],[1968,8698],[8693,8699],[8619,8687],[8659,8701],[8648,8702],[3186,8667],[8679,8704],[2258,2490],[2055,8658],[8651,8707],[1765,1794],[8708,8709],[8706,8710],[1997,3128],[8627,8712],[8711,8713],[8604,8607],[8675,8715],[8641,8716],[8714,8717],[8684,8718],[2200,2229],[8626,8705],[8720,8721],[2287,2519],[8706,8723],[2055,8709],[8724,8725],[1997,2026],[3331,8727],[8726,8728],[8722,8729],[1794,8656],[8684,8731],[2490,8732],[2954,3070],[3215,3244],[8734,8735],[1939,8736],[2809,8737],[2751,8738],[1881,1910],[2838,8619],[2635,8617],[3331,8719],[1765,8720],[1881,8668],[8727,8745],[8633,8746],[2142,2258],[2171,8748],[8747,8749],[8744,8750],[2287,8751],[2606,8619],[8740,8753],[2954,3244],[2084,2722],[2664,2838],[1852,8665],[8643,8728],[8758,8759],[8757,8760],[8646,8761],[8721,8762],[1881,8713],[8672,8764],[8666,8765],[8612,8639],[8619,8767],[2954,2983],[8700,8769],[2693,8756],[2316,8771],[8635,8772],[8706,8708],[8723,8774],[8643,8758],[8607,8641],[1794,8690],[1997,8778],[3331,8724],[8779,8780],[8643,8781],[8754,8776],[2577,8783],[1765,8784],[1968,8693],[1910,3157],[8786,8787],[2026,8643],[8781,8789],[2403,8790],[1910,2403],[2171,2403],[2606,2780],[8623,8794],[8793,8795],[8788,8796],[3302,8701],[2171,8787],[3128,8799],[2925,8620],[8662,8801],[3331,8802],[8727,8803],[8783,8804],[2896,8614],[1765,2287],[8677,8807],[1881,8669],[8708,8809],[8622,8810],[8808,8811],[8806,8812],[2693,8733],[2461,8814],[2867,8765],[2432,8816],[8815,8817],[2316,2693],[2432,2577],[8646,8820],[8737,8821],[8626,8679],[8643,8780],[8686,8824],[2113,8681],[8825,8826],[8823,8827],[3041,8769],[3012,8829],[8696,8830],[8828,8831],[3244,8734],[3128,8794],[2519,8733],[8805,8835],[8822,8836],[8666,8818],[2374,8684],[2490,8839],[2519,8649],[1794,8841],[2345,2490],[8842,8843],[8792,8844],[2229,2461],[1881,3012],[8694,8847],[8769,8848],[8695,8849],[8678,8689],[3157,8740],[3041,8852],[8851,8853],[8744,8749],[8697,8847],[8782,8856],[1794,8689],[8651,8809],[8858,8859],[8623,8834],[3157,8861],[8661,8687],[8854,8863],[1968,8682],[2258,8641],[8779,8866],[2490,8867],[3273,8868],[8865,8869],[3215,8870],[8850,8871],[1968,3273],[3302,8757],[8873,8874],[8606,8875],[2577,8805],[8876,8877],[1939,8742],[2809,8879],[3215,8880],[8790,8881],[3244,8882],[8740,8804],[8656,8884],[8726,8885],[8846,8873],[3099,8887],[2983,8657],[3302,8889],[8888,8890],[8886,8891],[8741,8892],[8703,8860],[2316,8862],[8615,8893],[8632,8775],[8657,8886],[2403,8645],[3215,8861],[8763,8842],[8662,8824],[8801,8902],[8659,8903],[8798,8904],[1881,8695],[8649,8830],[8906,8907],[2577,8908],[2461,8878],[8618,8898],[1823,8636],[8777,8855],[8721,8744],[8840,8901],[8617,8702],[8734,8916],[8646,8917],[8739,8911],[8663,8740],[2490,8920],[8734,8921],[8657,8744],[8716,8923],[8663,8790],[1910,8870],[8714,8809],[8819,8912],[2084,8928],[8927,8929],[2954,8637],[8628,8706],[8823,8865],[8790,8933],[1823,8637],[2722,8935],[8819,8936],[2403,8800],[3070,8938],[8635,8930],[8766,8913],[8656,8747],[8844,8942],[2490,8842],[8942,8944],[8937,8945],[8772,8931],[8829,8848],[8915,8948],[8794,8883],[8939,8950],[1968,8864],[8773,8886],[1823,2664],[8953,8954],[2606,8623],[8649,8730],[8938,8957],[8956,8958],[8793,8900],[8926,8960],[8606,8757],[8835,8910],[8897,8947],[2751,8767],[8845,8895],[8763,8966],[8756,8928],[8730,8968],[8867,8881],[8922,8970],[8846,8962],[3302,8972],[8952,8973],[2026,2983],[8891,8955],[2084,8812],[8735,8918],[8903,8978],[8840,8841],[1852,8768],[8943,8981],[2316,8936],[8977,8983],[2664,8948],[8621,8655],[8791,8794],[8874,8987],[8800,8888],[8988,8989],[8959,8968],[8875,8975],[8846,8992],[8785,8804],[8608,8994],[8609,8914],[8760,8996],[2229,8749],[8605,8659],[8647,8985],[8798,8999],[8986,9001],[8857,8993],[8634,8767],[8613,9004],[8997,9000],[8995,8998],[2171,8611],[8645,9008],[1852,2113],[8768,9010],[8730,8908],[2142,9006],[8603,8675],[8856,8882],[8887,8920],[8868,8962],[8853,8925],[8752,9011],[8775,9005],[9016,9017],[8736,8898],[1823,8879],[8755,9015],[8876,9007],[8828,8862],[8613,8711],[3099,8639],[8957,9028],[8616,8939],[9029,9030],[2287,8771],[8793,9026],[2635,9008],[8816,9027],[8641,8932],[8655,8702],[9036,9037],[8861,8996],[8762,9039],[8738,8994],[9034,9041],[8799,9040],[2229,9009],[2809,8833],[8905,8972],[3273,9046],[8751,9032],[8935,9048],[8710,8724],[8879,9045],[8670,8813],[8747,9050],[8732,9014],[8841,9054],[8773,9022],[8864,9051],[8746,8776],[9023,9056],[2519,8743],[8640,9058],[8614,9012],[8899,8980],[8965,9062],[8909,8969],[4024,4198],[3589,9066],[3821,9067],[4285,4401],[3386,3415],[3589,9070],[3560,9071],[3502,9072],[3444,9073],[4169,4198],[3415,3647],[1855,9076],[9075,9077],[4082,9078],[3502,3734],[9079,9080],[4053,4082],[4343,4459],[4546,9083],[4604,9084],[4372,4401],[4488,9086],[9085,9087],[4517,4575],[4314,9089],[4430,9090],[4227,4285],[9091,9092],[4633,9093],[9088,9094],[4256,9095],[9082,9096],[3879,3908],[3937,3966],[9098,9099],[9097,9100],[4111,4140],[9101,9102],[3995,4169],[4024,9104],[4198,9105],[3850,9106],[9103,9107],[3937,4111],[4140,9109],[3966,9110],[3734,3763],[3531,9112],[3502,9113],[4256,9087],[9092,9115],[9114,9116],[9111,9117],[3676,3705],[3444,3473],[9119,9120],[9098,9121],[4227,9122],[9082,9123],[4314,4430],[9124,9125],[2029,9085],[1826,3850],[9100,9128],[1942,1971],[1913,9130],[9116,9131],[9082,9102],[9132,9133],[1855,9134],[1884,9135],[9129,9136],[9127,9137],[2029,3821],[1797,9139],[9067,9140],[4546,4604],[4488,9114],[9111,9143],[1942,9144],[3357,3386],[3618,3647],[3850,9147],[9146,9148],[3415,9149],[1826,1855],[1768,9151],[9150,9152],[9145,9153],[9142,9154],[9141,9155],[3879,4053],[3444,3676],[9157,9158],[4343,9159],[1884,9160],[1971,9161],[9156,9162],[9082,9150],[9122,9164],[9111,9165],[4488,9130],[9142,9167],[3560,3792],[3357,9121],[9114,9170],[1768,1797],[9171,9172],[9169,9173],[2000,4430],[9090,9175],[9174,9176],[9067,9070],[9138,9178],[9104,9179],[9177,9180],[9147,9181],[3502,3531],[9089,9168],[9183,9184],[3589,3821],[9169,9186],[3357,9172],[9187,9188],[2000,2029],[4633,9190],[9189,9191],[9185,9192],[1797,9119],[9147,9194],[3792,9195],[4256,4372],[4517,4546],[9197,9198],[1942,9199],[4111,9200],[4053,9201],[1884,1913],[4140,9082],[3937,9080],[4633,9182],[1768,9183],[1884,9131],[9190,9208],[9096,9209],[3444,3560],[3473,9211],[9210,9212],[9207,9213],[3589,9214],[3908,9082],[9203,9216],[4256,4546],[3386,4024],[3966,4140],[1855,9128],[9106,9191],[9221,9222],[9220,9223],[9109,9224],[9184,9225],[1884,9176],[9135,9227],[9129,9228],[9075,9102],[9082,9230],[4256,4285],[9163,9232],[3995,9219],[3618,9234],[9098,9235],[9169,9171],[9186,9237],[9106,9221],[9070,9104],[1797,9153],[2000,9241],[4633,9187],[9242,9243],[9106,9244],[9217,9239],[3879,9246],[1768,9247],[1971,9156],[1913,4459],[9249,9250],[2029,9106],[9244,9252],[3705,9253],[1913,3705],[3473,3705],[3908,4082],[9086,9257],[9256,9258],[9251,9259],[4604,9164],[3473,9250],[4430,9262],[4227,9083],[9125,9264],[4633,9265],[9190,9266],[9246,9267],[4198,9077],[1768,3589],[9140,9270],[1884,9132],[9171,9272],[9085,9273],[9271,9274],[9269,9275],[3995,9196],[3763,9277],[4169,9228],[3734,9279],[9278,9280],[3618,3995],[3734,3879],[9109,9283],[9200,9284],[9089,9142],[9106,9243],[9149,9287],[3415,9144],[9288,9289],[9286,9290],[4343,9232],[4314,9292],[9159,9293],[9291,9294],[4546,9197],[4430,9257],[3821,9196],[9268,9298],[9285,9299],[9129,9281],[3676,9147],[3792,9302],[3821,9112],[1797,9304],[3647,3792],[9305,9306],[9255,9307],[3531,3763],[1884,4314],[9157,9310],[9232,9311],[9158,9312],[9141,9152],[4459,9203],[4343,9315],[9314,9316],[9207,9212],[9160,9310],[9245,9319],[1797,9152],[9114,9272],[9321,9322],[9086,9297],[4459,9324],[9124,9150],[9317,9326],[1971,9145],[3560,9104],[9242,9329],[3792,9330],[4575,9331],[9328,9332],[4517,9333],[9313,9334],[1971,4575],[4604,9220],[9336,9337],[9069,9338],[3879,9268],[9339,9340],[1942,9205],[4111,9342],[4517,9343],[9253,9344],[4546,9345],[9203,9267],[9119,9347],[9189,9348],[9309,9336],[4401,9350],[4285,9120],[4604,9352],[9351,9353],[9349,9354],[9204,9355],[9166,9323],[3618,9325],[9078,9356],[9095,9238],[9120,9349],[3705,9108],[4517,9324],[9226,9305],[9125,9287],[9264,9365],[9122,9366],[9261,9367],[1884,9158],[9112,9293],[9369,9370],[3879,9371],[3763,9341],[9081,9361],[1826,9099],[9240,9318],[9184,9207],[9303,9364],[9080,9165],[9197,9379],[9109,9380],[9202,9374],[9126,9203],[3792,9383],[9197,9384],[9120,9207],[9179,9386],[9126,9253],[1913,9333],[9177,9272],[9282,9375],[3386,9391],[9390,9392],[4256,9100],[9091,9169],[9286,9328],[9253,9396],[1826,9100],[4024,9398],[9282,9399],[3705,9263],[4372,9401],[9098,9393],[9229,9376],[9119,9210],[9307,9405],[3792,9305],[9405,9407],[9400,9408],[9235,9394],[9292,9311],[9378,9411],[9257,9346],[9402,9413],[1971,9327],[9236,9349],[1826,3966],[9416,9417],[3908,9086],[9112,9193],[9401,9420],[9419,9421],[9256,9363],[9389,9423],[9069,9220],[9298,9373],[9360,9410],[4053,9230],[9308,9358],[9226,9429],[9219,9391],[9193,9431],[9330,9344],[9385,9433],[9309,9425],[4604,9435],[9415,9436],[2029,4285],[9354,9418],[3386,9275],[9198,9381],[9366,9441],[9303,9304],[1855,9231],[9406,9444],[3618,9399],[9440,9446],[3966,9411],[9084,9118],[9254,9257],[9337,9450],[9263,9351],[9451,9452],[9422,9431],[9338,9438],[9309,9455],[9248,9267],[9071,9457],[9072,9377],[9223,9459],[3531,9212],[9068,9122],[9110,9448],[9261,9462],[9449,9464],[9320,9456],[9097,9230],[9076,9467],[9460,9463],[9458,9461],[3473,9074],[9108,9471],[1855,3415],[9231,9473],[9193,9371],[3444,9469],[9066,9138],[9319,9345],[9350,9383],[9331,9425],[9316,9388],[9215,9474],[9238,9468],[9479,9480],[9199,9361],[1826,9342],[9218,9478],[9339,9470],[9291,9325],[9076,9174],[4401,9102],[9420,9491],[9079,9402],[9492,9493],[3589,9234],[9256,9489],[3937,9471],[9279,9490],[9104,9395],[9118,9165],[9499,9500],[9324,9459],[9225,9502],[9201,9457],[9497,9504],[9262,9503],[3531,9472],[4111,9296],[9368,9435],[4575,9509],[9214,9495],[9398,9511],[9173,9187],[9342,9508],[9133,9276],[9210,9513],[9195,9477],[9304,9517],[9236,9485],[9327,9514],[9209,9239],[9486,9519],[3821,9206],[9103,9521],[9077,9475],[9362,9443],[9428,9525],[9372,9432],[4027,4201],[3592,9529],[3824,9530],[4288,4404],[3389,3418],[3592,9533],[3563,9534],[3505,9535],[3447,9536],[4172,4201],[3418,3650],[1858,9539],[9538,9540],[4085,9541],[3505,3737],[9542,9543],[4056,4085],[4346,4462],[4549,9546],[4607,9547],[4375,4404],[4491,9549],[9548,9550],[4520,4578],[4317,9552],[4433,9553],[4230,4288],[9554,9555],[4636,9556],[9551,9557],[4259,9558],[9545,9559],[3882,3911],[3940,3969],[9561,9562],[9560,9563],[4114,4143],[9564,9565],[3998,4172],[4027,9567],[4201,9568],[3853,9569],[9566,9570],[3940,4114],[4143,9572],[3969,9573],[3737,3766],[3534,9575],[3505,9576],[4259,9550],[9555,9578],[9577,9579],[9574,9580],[3679,3708],[3447,3476],[9582,9583],[9561,9584],[4230,9585],[9545,9586],[4317,4433],[9587,9588],[2032,9548],[1829,3853],[9563,9591],[1945,1974],[1916,9593],[9579,9594],[9545,9565],[9595,9596],[1858,9597],[1887,9598],[9592,9599],[9590,9600],[2032,3824],[1800,9602],[9530,9603],[4549,4607],[4491,9577],[9574,9606],[1945,9607],[3360,3389],[3621,3650],[3853,9610],[9609,9611],[3418,9612],[1829,1858],[1771,9614],[9613,9615],[9608,9616],[9605,9617],[9604,9618],[3882,4056],[3447,3679],[9620,9621],[4346,9622],[1887,9623],[1974,9624],[9619,9625],[9545,9613],[9585,9627],[9574,9628],[4491,9593],[9605,9630],[3563,3795],[3360,9584],[9577,9633],[1771,1800],[9634,9635],[9632,9636],[2003,4433],[9553,9638],[9637,9639],[9530,9533],[9601,9641],[9567,9642],[9640,9643],[9610,9644],[3505,3534],[9552,9631],[9646,9647],[3592,3824],[9632,9649],[3360,9635],[9650,9651],[2003,2032],[4636,9653],[9652,9654],[9648,9655],[1800,9582],[9610,9657],[3795,9658],[4259,4375],[4520,4549],[9660,9661],[1945,9662],[4114,9663],[4056,9664],[1887,1916],[4143,9545],[3940,9543],[4636,9645],[1771,9646],[1887,9594],[9653,9671],[9559,9672],[3447,3563],[3476,9674],[9673,9675],[9670,9676],[3592,9677],[3911,9545],[9666,9679],[4259,4549],[3389,4027],[3969,4143],[1858,9591],[9569,9654],[9684,9685],[9683,9686],[9572,9687],[9647,9688],[1887,9639],[9598,9690],[9592,9691],[9538,9565],[9545,9693],[4259,4288],[9626,9695],[3998,9682],[3621,9697],[9561,9698],[9632,9634],[9649,9700],[9569,9684],[9533,9567],[1800,9616],[2003,9704],[4636,9650],[9705,9706],[9569,9707],[9680,9702],[3882,9709],[1771,9710],[1974,9619],[1916,4462],[9712,9713],[2032,9569],[9707,9715],[3708,9716],[1916,3708],[3476,3708],[3911,4085],[9549,9720],[9719,9721],[9714,9722],[4607,9627],[3476,9713],[4433,9725],[4230,9546],[9588,9727],[4636,9728],[9653,9729],[9709,9730],[4201,9540],[1771,3592],[9603,9733],[1887,9595],[9634,9735],[9548,9736],[9734,9737],[9732,9738],[3998,9659],[3766,9740],[4172,9691],[3737,9742],[9741,9743],[3621,3998],[3737,3882],[9572,9746],[9663,9747],[9552,9605],[9569,9706],[9612,9750],[3418,9607],[9751,9752],[9749,9753],[4346,9695],[4317,9755],[9622,9756],[9754,9757],[4549,9660],[4433,9720],[3824,9659],[9731,9761],[9748,9762],[9592,9744],[3679,9610],[3795,9765],[3824,9575],[1800,9767],[3650,3795],[9768,9769],[9718,9770],[3534,3766],[1887,4317],[9620,9773],[9695,9774],[9621,9775],[9604,9615],[4462,9666],[4346,9778],[9777,9779],[9670,9675],[9623,9773],[9708,9782],[1800,9615],[9577,9735],[9784,9785],[9549,9760],[4462,9787],[9587,9613],[9780,9789],[1974,9608],[3563,9567],[9705,9792],[3795,9793],[4578,9794],[9791,9795],[4520,9796],[9776,9797],[1974,4578],[4607,9683],[9799,9800],[9532,9801],[3882,9731],[9802,9803],[1945,9668],[4114,9805],[4520,9806],[9716,9807],[4549,9808],[9666,9730],[9582,9810],[9652,9811],[9772,9799],[4404,9813],[4288,9583],[4607,9815],[9814,9816],[9812,9817],[9667,9818],[9629,9786],[3621,9788],[9541,9819],[9558,9701],[9583,9812],[3708,9571],[4520,9787],[9689,9768],[9588,9750],[9727,9828],[9585,9829],[9724,9830],[1887,9621],[9575,9756],[9832,9833],[3882,9834],[3766,9804],[9544,9824],[1829,9562],[9703,9781],[9647,9670],[9766,9827],[9543,9628],[9660,9842],[9572,9843],[9665,9837],[9589,9666],[3795,9846],[9660,9847],[9583,9670],[9642,9849],[9589,9716],[1916,9796],[9640,9735],[9745,9838],[3389,9854],[9853,9855],[4259,9563],[9554,9632],[9749,9791],[9716,9859],[1829,9563],[4027,9861],[9745,9862],[3708,9726],[4375,9864],[9561,9856],[9692,9839],[9582,9673],[9770,9868],[3795,9768],[9868,9870],[9863,9871],[9698,9857],[9755,9774],[9841,9874],[9720,9809],[9865,9876],[1974,9790],[9699,9812],[1829,3969],[9879,9880],[3911,9549],[9575,9656],[9864,9883],[9882,9884],[9719,9826],[9852,9886],[9532,9683],[9761,9836],[9823,9873],[4056,9693],[9771,9821],[9689,9892],[9682,9854],[9656,9894],[9793,9807],[9848,9896],[9772,9888],[4607,9898],[9878,9899],[2032,4288],[9817,9881],[3389,9738],[9661,9844],[9829,9904],[9766,9767],[1858,9694],[9869,9907],[3621,9862],[9903,9909],[3969,9874],[9547,9581],[9717,9720],[9800,9913],[9726,9814],[9914,9915],[9885,9894],[9801,9901],[9772,9918],[9711,9730],[9534,9920],[9535,9840],[9686,9922],[3534,9675],[9531,9585],[9573,9911],[9724,9925],[9912,9927],[9783,9919],[9560,9693],[9539,9930],[9923,9926],[9921,9924],[3476,9537],[9571,9934],[1858,3418],[9694,9936],[9656,9834],[3447,9932],[9529,9601],[9782,9808],[9813,9846],[9794,9888],[9779,9851],[9678,9937],[9701,9931],[9942,9943],[9662,9824],[1829,9805],[9681,9941],[9802,9933],[9754,9788],[9539,9637],[4404,9565],[9883,9954],[9542,9865],[9955,9956],[3592,9697],[9719,9952],[3940,9934],[9742,9953],[9567,9858],[9581,9628],[9962,9963],[9787,9922],[9688,9965],[9664,9920],[9960,9967],[9725,9966],[3534,9935],[4114,9759],[9831,9898],[4578,9972],[9677,9958],[9861,9974],[9636,9650],[9805,9971],[9596,9739],[9673,9976],[9658,9940],[9767,9980],[9699,9948],[9790,9977],[9672,9702],[9949,9982],[3824,9669],[9566,9984],[9540,9938],[9825,9906],[9891,9988],[9835,9895],[5068,5242],[3595,9992],[4865,9993],[5329,5445],[3392,3421],[3595,9996],[3566,9997],[3508,9998],[3450,9999],[5213,5242],[3421,4691],[2116,10002],[10001,10003],[5126,10004],[3508,4778],[10005,10006],[5097,5126],[5387,5503],[5590,10009],[5648,10010],[5416,5445],[5532,10012],[10011,10013],[5561,5619],[5358,10015],[5474,10016],[5271,5329],[10017,10018],[5677,10019],[10014,10020],[5300,10021],[10008,10022],[4923,4952],[4981,5010],[10024,10025],[10023,10026],[5155,5184],[10027,10028],[5039,5213],[5068,10030],[5242,10031],[4894,10032],[10029,10033],[4981,5155],[5184,10035],[5010,10036],[4778,4807],[3537,10038],[3508,10039],[5300,10013],[10018,10041],[10040,10042],[10037,10043],[4720,4749],[3450,3479],[10045,10046],[10024,10047],[5271,10048],[10008,10049],[5358,5474],[10050,10051],[2290,10011],[2087,4894],[10026,10054],[2203,2232],[2174,10056],[10042,10057],[10008,10028],[10058,10059],[2116,10060],[2145,10061],[10055,10062],[10053,10063],[2290,4865],[2058,10065],[9993,10066],[5590,5648],[5532,10040],[10037,10069],[2203,10070],[3363,3392],[4662,4691],[4894,10073],[10072,10074],[3421,10075],[2087,2116],[1773,10077],[10076,10078],[10071,10079],[10068,10080],[10067,10081],[4923,5097],[3450,4720],[10083,10084],[5387,10085],[2145,10086],[2232,10087],[10082,10088],[10008,10076],[10048,10090],[10037,10091],[5532,10056],[10068,10093],[3566,4836],[3363,10047],[10040,10096],[1773,2058],[10097,10098],[10095,10099],[2261,5474],[10016,10101],[10100,10102],[9993,9996],[10064,10104],[10030,10105],[10103,10106],[10073,10107],[3508,3537],[10015,10094],[10109,10110],[3595,4865],[10095,10112],[3363,10098],[10113,10114],[2261,2290],[5677,10116],[10115,10117],[10111,10118],[2058,10045],[10073,10120],[4836,10121],[5300,5416],[5561,5590],[10123,10124],[2203,10125],[5155,10126],[5097,10127],[2145,2174],[5184,10008],[4981,10006],[5677,10108],[1773,10109],[2145,10057],[10116,10134],[10022,10135],[3450,3566],[3479,10137],[10136,10138],[10133,10139],[3595,10140],[4952,10008],[10129,10142],[5300,5590],[3392,5068],[5010,5184],[2116,10054],[10032,10117],[10147,10148],[10146,10149],[10035,10150],[10110,10151],[2145,10102],[10061,10153],[10055,10154],[10001,10028],[10008,10156],[5300,5329],[10089,10158],[5039,10145],[4662,10160],[10024,10161],[10095,10097],[10112,10163],[10032,10147],[9996,10030],[2058,10079],[2261,10167],[5677,10113],[10168,10169],[10032,10170],[10143,10165],[4923,10172],[1773,10173],[2232,10082],[2174,5503],[10175,10176],[2290,10032],[10170,10178],[4749,10179],[2174,4749],[3479,4749],[4952,5126],[10012,10183],[10182,10184],[10177,10185],[5648,10090],[3479,10176],[5474,10188],[5271,10009],[10051,10190],[5677,10191],[10116,10192],[10172,10193],[5242,10003],[1773,3595],[10066,10196],[2145,10058],[10097,10198],[10011,10199],[10197,10200],[10195,10201],[5039,10122],[4807,10203],[5213,10154],[4778,10205],[10204,10206],[4662,5039],[4778,4923],[10035,10209],[10126,10210],[10015,10068],[10032,10169],[10075,10213],[3421,10070],[10214,10215],[10212,10216],[5387,10158],[5358,10218],[10085,10219],[10217,10220],[5590,10123],[5474,10183],[4865,10122],[10194,10224],[10211,10225],[10055,10207],[4720,10073],[4836,10228],[4865,10038],[2058,10230],[4691,4836],[10231,10232],[10181,10233],[3537,4807],[2145,5358],[10083,10236],[10158,10237],[10084,10238],[10067,10078],[5503,10129],[5387,10241],[10240,10242],[10133,10138],[10086,10236],[10171,10245],[2058,10078],[10040,10198],[10247,10248],[10012,10223],[5503,10250],[10050,10076],[10243,10252],[2232,10071],[3566,10030],[10168,10255],[4836,10256],[5619,10257],[10254,10258],[5561,10259],[10239,10260],[2232,5619],[5648,10146],[10262,10263],[9995,10264],[4923,10194],[10265,10266],[2203,10131],[5155,10268],[5561,10269],[10179,10270],[5590,10271],[10129,10193],[10045,10273],[10115,10274],[10235,10262],[5445,10276],[5329,10046],[5648,10278],[10277,10279],[10275,10280],[10130,10281],[10092,10249],[4662,10251],[10004,10282],[10021,10164],[10046,10275],[4749,10034],[5561,10250],[10152,10231],[10051,10213],[10190,10291],[10048,10292],[10187,10293],[2145,10084],[10038,10219],[10295,10296],[4923,10297],[4807,10267],[10007,10287],[2087,10025],[10166,10244],[10110,10133],[10229,10290],[10006,10091],[10123,10305],[10035,10306],[10128,10300],[10052,10129],[4836,10309],[10123,10310],[10046,10133],[10105,10312],[10052,10179],[2174,10259],[10103,10198],[10208,10301],[3392,10317],[10316,10318],[5300,10026],[10017,10095],[10212,10254],[10179,10322],[2087,10026],[5068,10324],[10208,10325],[4749,10189],[5416,10327],[10024,10319],[10155,10302],[10045,10136],[10233,10331],[4836,10231],[10331,10333],[10326,10334],[10161,10320],[10218,10237],[10304,10337],[10183,10272],[10328,10339],[2232,10253],[10162,10275],[2087,5010],[10342,10343],[4952,10012],[10038,10119],[10327,10346],[10345,10347],[10182,10289],[10315,10349],[9995,10146],[10224,10299],[10286,10336],[5097,10156],[10234,10284],[10152,10355],[10145,10317],[10119,10357],[10256,10270],[10311,10359],[10235,10351],[5648,10361],[10341,10362],[2290,5329],[10280,10344],[3392,10201],[10124,10307],[10292,10367],[10229,10230],[2116,10157],[10332,10370],[4662,10325],[10366,10372],[5010,10337],[10010,10044],[10180,10183],[10263,10376],[10189,10277],[10377,10378],[10348,10357],[10264,10364],[10235,10381],[10174,10193],[9997,10383],[9998,10303],[10149,10385],[3537,10138],[9994,10048],[10036,10374],[10187,10388],[10375,10390],[10246,10382],[10023,10156],[10002,10393],[10386,10389],[10384,10387],[3479,10000],[10034,10397],[2116,3421],[10157,10399],[10119,10297],[3450,10395],[9992,10064],[10245,10271],[10276,10309],[10257,10351],[10242,10314],[10141,10400],[10164,10394],[10405,10406],[10125,10287],[2087,10268],[10144,10404],[10265,10396],[10217,10251],[10002,10100],[5445,10028],[10346,10417],[10005,10328],[10418,10419],[3595,10160],[10182,10415],[4981,10397],[10205,10416],[10030,10321],[10044,10091],[10425,10426],[10250,10385],[10151,10428],[10127,10383],[10423,10430],[10188,10429],[3537,10398],[5155,10222],[10294,10361],[5619,10435],[10140,10421],[10324,10437],[10099,10113],[10268,10434],[10059,10202],[10136,10439],[10121,10403],[10230,10443],[10162,10411],[10253,10440],[10135,10165],[10412,10445],[4865,10132],[10029,10447],[10003,10401],[10288,10369],[10354,10451],[10298,10358],[5071,5245],[3598,10455],[4868,10456],[5332,5448],[3395,3424],[3598,10459],[3569,10460],[3511,10461],[3453,10462],[5216,5245],[3424,4694],[2119,10465],[10464,10466],[5129,10467],[3511,4781],[10468,10469],[5100,5129],[5390,5506],[5593,10472],[5651,10473],[5419,5448],[5535,10475],[10474,10476],[5564,5622],[5361,10478],[5477,10479],[5274,5332],[10480,10481],[5680,10482],[10477,10483],[5303,10484],[10471,10485],[4926,4955],[4984,5013],[10487,10488],[10486,10489],[5158,5187],[10490,10491],[5042,5216],[5071,10493],[5245,10494],[4897,10495],[10492,10496],[4984,5158],[5187,10498],[5013,10499],[4781,4810],[3540,10501],[3511,10502],[5303,10476],[10481,10504],[10503,10505],[10500,10506],[4723,4752],[3453,3482],[10508,10509],[10487,10510],[5274,10511],[10471,10512],[5361,5477],[10513,10514],[2293,10474],[2090,4897],[10489,10517],[2206,2235],[2177,10519],[10505,10520],[10471,10491],[10521,10522],[2119,10523],[2148,10524],[10518,10525],[10516,10526],[2293,4868],[2061,10528],[10456,10529],[5593,5651],[5535,10503],[10500,10532],[2206,10533],[3366,3395],[4665,4694],[4897,10536],[10535,10537],[3424,10538],[2090,2119],[1775,10540],[10539,10541],[10534,10542],[10531,10543],[10530,10544],[4926,5100],[3453,4723],[10546,10547],[5390,10548],[2148,10549],[2235,10550],[10545,10551],[10471,10539],[10511,10553],[10500,10554],[5535,10519],[10531,10556],[3569,4839],[3366,10510],[10503,10559],[1775,2061],[10560,10561],[10558,10562],[2264,5477],[10479,10564],[10563,10565],[10456,10459],[10527,10567],[10493,10568],[10566,10569],[10536,10570],[3511,3540],[10478,10557],[10572,10573],[3598,4868],[10558,10575],[3366,10561],[10576,10577],[2264,2293],[5680,10579],[10578,10580],[10574,10581],[2061,10508],[10536,10583],[4839,10584],[5303,5419],[5564,5593],[10586,10587],[2206,10588],[5158,10589],[5100,10590],[2148,2177],[5187,10471],[4984,10469],[5680,10571],[1775,10572],[2148,10520],[10579,10597],[10485,10598],[3453,3569],[3482,10600],[10599,10601],[10596,10602],[3598,10603],[4955,10471],[10592,10605],[5303,5593],[3395,5071],[5013,5187],[2119,10517],[10495,10580],[10610,10611],[10609,10612],[10498,10613],[10573,10614],[2148,10565],[10524,10616],[10518,10617],[10464,10491],[10471,10619],[5303,5332],[10552,10621],[5042,10608],[4665,10623],[10487,10624],[10558,10560],[10575,10626],[10495,10610],[10459,10493],[2061,10542],[2264,10630],[5680,10576],[10631,10632],[10495,10633],[10606,10628],[4926,10635],[1775,10636],[2235,10545],[2177,5506],[10638,10639],[2293,10495],[10633,10641],[4752,10642],[2177,4752],[3482,4752],[4955,5129],[10475,10646],[10645,10647],[10640,10648],[5651,10553],[3482,10639],[5477,10651],[5274,10472],[10514,10653],[5680,10654],[10579,10655],[10635,10656],[5245,10466],[1775,3598],[10529,10659],[2148,10521],[10560,10661],[10474,10662],[10660,10663],[10658,10664],[5042,10585],[4810,10666],[5216,10617],[4781,10668],[10667,10669],[4665,5042],[4781,4926],[10498,10672],[10589,10673],[10478,10531],[10495,10632],[10538,10676],[3424,10533],[10677,10678],[10675,10679],[5390,10621],[5361,10681],[10548,10682],[10680,10683],[5593,10586],[5477,10646],[4868,10585],[10657,10687],[10674,10688],[10518,10670],[4723,10536],[4839,10691],[4868,10501],[2061,10693],[4694,4839],[10694,10695],[10644,10696],[3540,4810],[2148,5361],[10546,10699],[10621,10700],[10547,10701],[10530,10541],[5506,10592],[5390,10704],[10703,10705],[10596,10601],[10549,10699],[10634,10708],[2061,10541],[10503,10661],[10710,10711],[10475,10686],[5506,10713],[10513,10539],[10706,10715],[2235,10534],[3569,10493],[10631,10718],[4839,10719],[5622,10720],[10717,10721],[5564,10722],[10702,10723],[2235,5622],[5651,10609],[10725,10726],[10458,10727],[4926,10657],[10728,10729],[2206,10594],[5158,10731],[5564,10732],[10642,10733],[5593,10734],[10592,10656],[10508,10736],[10578,10737],[10698,10725],[5448,10739],[5332,10509],[5651,10741],[10740,10742],[10738,10743],[10593,10744],[10555,10712],[4665,10714],[10467,10745],[10484,10627],[10509,10738],[4752,10497],[5564,10713],[10615,10694],[10514,10676],[10653,10754],[10511,10755],[10650,10756],[2148,10547],[10501,10682],[10758,10759],[4926,10760],[4810,10730],[10470,10750],[2090,10488],[10629,10707],[10573,10596],[10692,10753],[10469,10554],[10586,10768],[10498,10769],[10591,10763],[10515,10592],[4839,10772],[10586,10773],[10509,10596],[10568,10775],[10515,10642],[2177,10722],[10566,10661],[10671,10764],[3395,10780],[10779,10781],[5303,10489],[10480,10558],[10675,10717],[10642,10785],[2090,10489],[5071,10787],[10671,10788],[4752,10652],[5419,10790],[10487,10782],[10618,10765],[10508,10599],[10696,10794],[4839,10694],[10794,10796],[10789,10797],[10624,10783],[10681,10700],[10767,10800],[10646,10735],[10791,10802],[2235,10716],[10625,10738],[2090,5013],[10805,10806],[4955,10475],[10501,10582],[10790,10809],[10808,10810],[10645,10752],[10778,10812],[10458,10609],[10687,10762],[10749,10799],[5100,10619],[10697,10747],[10615,10818],[10608,10780],[10582,10820],[10719,10733],[10774,10822],[10698,10814],[5651,10824],[10804,10825],[2293,5332],[10743,10807],[3395,10664],[10587,10770],[10755,10830],[10692,10693],[2119,10620],[10795,10833],[4665,10788],[10829,10835],[5013,10800],[10473,10507],[10643,10646],[10726,10839],[10652,10740],[10840,10841],[10811,10820],[10727,10827],[10698,10844],[10637,10656],[10460,10846],[10461,10766],[10612,10848],[3540,10601],[10457,10511],[10499,10837],[10650,10851],[10838,10853],[10709,10845],[10486,10619],[10465,10856],[10849,10852],[10847,10850],[3482,10463],[10497,10860],[2119,3424],[10620,10862],[10582,10760],[3453,10858],[10455,10527],[10708,10734],[10739,10772],[10720,10814],[10705,10777],[10604,10863],[10627,10857],[10868,10869],[10588,10750],[2090,10731],[10607,10867],[10728,10859],[10680,10714],[10465,10563],[5448,10491],[10809,10880],[10468,10791],[10881,10882],[3598,10623],[10645,10878],[4984,10860],[10668,10879],[10493,10784],[10507,10554],[10888,10889],[10713,10848],[10614,10891],[10590,10846],[10886,10893],[10651,10892],[3540,10861],[5158,10685],[10757,10824],[5622,10898],[10603,10884],[10787,10900],[10562,10576],[10731,10897],[10522,10665],[10599,10902],[10584,10866],[10693,10906],[10625,10874],[10716,10903],[10598,10628],[10875,10908],[4868,10595],[10492,10910],[10466,10864],[10751,10832],[10817,10914],[10761,10821],[5880,6054],[3827,10918],[4871,10919],[6141,6257],[3624,3653],[3827,10922],[3798,10923],[3740,10924],[3682,10925],[6025,6054],[3653,4697],[2348,10928],[10927,10929],[5938,10930],[3740,4784],[10931,10932],[5909,5938],[6199,6315],[6402,10935],[6460,10936],[6228,6257],[6344,10938],[10937,10939],[6373,6431],[6170,10941],[6286,10942],[6083,6141],[10943,10944],[6489,10945],[10940,10946],[6112,10947],[10934,10948],[5735,5764],[5793,5822],[10950,10951],[10949,10952],[5967,5996],[10953,10954],[5851,6025],[5880,10956],[6054,10957],[5706,10958],[10955,10959],[5793,5967],[5996,10961],[5822,10962],[4784,4813],[3769,10964],[3740,10965],[6112,10939],[10944,10967],[10966,10968],[10963,10969],[4726,4755],[3682,3711],[10971,10972],[10950,10973],[6083,10974],[10934,10975],[6170,6286],[10976,10977],[2522,10937],[2319,5706],[10952,10980],[2435,2464],[2406,10982],[10968,10983],[10934,10954],[10984,10985],[2348,10986],[2377,10987],[10981,10988],[10979,10989],[2522,4871],[2063,10991],[10919,10992],[6402,6460],[6344,10966],[10963,10995],[2435,10996],[3368,3624],[4668,4697],[5706,10999],[10998,11000],[3653,11001],[2319,2348],[1802,11003],[11002,11004],[10997,11005],[10994,11006],[10993,11007],[5735,5909],[3682,4726],[11009,11010],[6199,11011],[2377,11012],[2464,11013],[11008,11014],[10934,11002],[10974,11016],[10963,11017],[6344,10982],[10994,11019],[3798,4842],[3368,10973],[10966,11022],[1802,2063],[11023,11024],[11021,11025],[2493,6286],[10942,11027],[11026,11028],[10919,10922],[10990,11030],[10956,11031],[11029,11032],[10999,11033],[3740,3769],[10941,11020],[11035,11036],[3827,4871],[11021,11038],[3368,11024],[11039,11040],[2493,2522],[6489,11042],[11041,11043],[11037,11044],[2063,10971],[10999,11046],[4842,11047],[6112,6228],[6373,6402],[11049,11050],[2435,11051],[5967,11052],[5909,11053],[2377,2406],[5996,10934],[5793,10932],[6489,11034],[1802,11035],[2377,10983],[11042,11060],[10948,11061],[3682,3798],[3711,11063],[11062,11064],[11059,11065],[3827,11066],[5764,10934],[11055,11068],[6112,6402],[3624,5880],[5822,5996],[2348,10980],[10958,11043],[11073,11074],[11072,11075],[10961,11076],[11036,11077],[2377,11028],[10987,11079],[10981,11080],[10927,10954],[10934,11082],[6112,6141],[11015,11084],[5851,11071],[4668,11086],[10950,11087],[11021,11023],[11038,11089],[10958,11073],[10922,10956],[2063,11005],[2493,11093],[6489,11039],[11094,11095],[10958,11096],[11069,11091],[5735,11098],[1802,11099],[2464,11008],[2406,6315],[11101,11102],[2522,10958],[11096,11104],[4755,11105],[2406,4755],[3711,4755],[5764,5938],[10938,11109],[11108,11110],[11103,11111],[6460,11016],[3711,11102],[6286,11114],[6083,10935],[10977,11116],[6489,11117],[11042,11118],[11098,11119],[6054,10929],[1802,3827],[10992,11122],[2377,10984],[11023,11124],[10937,11125],[11123,11126],[11121,11127],[5851,11048],[4813,11129],[6025,11080],[4784,11131],[11130,11132],[4668,5851],[4784,5735],[10961,11135],[11052,11136],[10941,10994],[10958,11095],[11001,11139],[3653,10996],[11140,11141],[11138,11142],[6199,11084],[6170,11144],[11011,11145],[11143,11146],[6402,11049],[6286,11109],[4871,11048],[11120,11150],[11137,11151],[10981,11133],[4726,10999],[4842,11154],[4871,10964],[2063,11156],[4697,4842],[11157,11158],[11107,11159],[3769,4813],[2377,6170],[11009,11162],[11084,11163],[11010,11164],[10993,11004],[6315,11055],[6199,11167],[11166,11168],[11059,11064],[11012,11162],[11097,11171],[2063,11004],[10966,11124],[11173,11174],[10938,11149],[6315,11176],[10976,11002],[11169,11178],[2464,10997],[3798,10956],[11094,11181],[4842,11182],[6431,11183],[11180,11184],[6373,11185],[11165,11186],[2464,6431],[6460,11072],[11188,11189],[10921,11190],[5735,11120],[11191,11192],[2435,11057],[5967,11194],[6373,11195],[11105,11196],[6402,11197],[11055,11119],[10971,11199],[11041,11200],[11161,11188],[6257,11202],[6141,10972],[6460,11204],[11203,11205],[11201,11206],[11056,11207],[11018,11175],[4668,11177],[10930,11208],[10947,11090],[10972,11201],[4755,10960],[6373,11176],[11078,11157],[10977,11139],[11116,11217],[10974,11218],[11113,11219],[2377,11010],[10964,11145],[11221,11222],[5735,11223],[4813,11193],[10933,11213],[2319,10951],[11092,11170],[11036,11059],[11155,11216],[10932,11017],[11049,11231],[10961,11232],[11054,11226],[10978,11055],[4842,11235],[11049,11236],[10972,11059],[11031,11238],[10978,11105],[2406,11185],[11029,11124],[11134,11227],[3624,11243],[11242,11244],[6112,10952],[10943,11021],[11138,11180],[11105,11248],[2319,10952],[5880,11250],[11134,11251],[4755,11115],[6228,11253],[10950,11245],[11081,11228],[10971,11062],[11159,11257],[4842,11157],[11257,11259],[11252,11260],[11087,11246],[11144,11163],[11230,11263],[11109,11198],[11254,11265],[2464,11179],[11088,11201],[2319,5822],[11268,11269],[5764,10938],[10964,11045],[11253,11272],[11271,11273],[11108,11215],[11241,11275],[10921,11072],[11150,11225],[11212,11262],[5909,11082],[11160,11210],[11078,11281],[11071,11243],[11045,11283],[11182,11196],[11237,11285],[11161,11277],[6460,11287],[11267,11288],[2522,6141],[11206,11270],[3624,11127],[11050,11233],[11218,11293],[11155,11156],[2348,11083],[11258,11296],[4668,11251],[11292,11298],[5822,11263],[10936,10970],[11106,11109],[11189,11302],[11115,11203],[11303,11304],[11274,11283],[11190,11290],[11161,11307],[11100,11119],[10923,11309],[10924,11229],[11075,11311],[3769,11064],[10920,10974],[10962,11300],[11113,11314],[11301,11316],[11172,11308],[10949,11082],[10928,11319],[11312,11315],[11310,11313],[3711,10926],[10960,11323],[2348,3653],[11083,11325],[11045,11223],[3682,11321],[10918,10990],[11171,11197],[11202,11235],[11183,11277],[11168,11240],[11067,11326],[11090,11320],[11331,11332],[11051,11213],[2319,11194],[11070,11330],[11191,11322],[11143,11177],[10928,11026],[6257,10954],[11272,11343],[10931,11254],[11344,11345],[3827,11086],[11108,11341],[5793,11323],[11131,11342],[10956,11247],[10970,11017],[11351,11352],[11176,11311],[11077,11354],[11053,11309],[11349,11356],[11114,11355],[3769,11324],[5967,11148],[11220,11287],[6431,11361],[11066,11347],[11250,11363],[11025,11039],[11194,11360],[10985,11128],[11062,11365],[11047,11329],[11156,11369],[11088,11337],[11179,11366],[11061,11091],[11338,11371],[4871,11058],[10955,11373],[10929,11327],[11214,11295],[11280,11377],[11224,11284],[5883,6057],[3830,11381],[4874,11382],[6144,6260],[3627,3656],[3830,11385],[3801,11386],[3743,11387],[3685,11388],[6028,6057],[3656,4700],[2351,11391],[11390,11392],[5941,11393],[3743,4787],[11394,11395],[5912,5941],[6202,6318],[6405,11398],[6463,11399],[6231,6260],[6347,11401],[11400,11402],[6376,6434],[6173,11404],[6289,11405],[6086,6144],[11406,11407],[6492,11408],[11403,11409],[6115,11410],[11397,11411],[5738,5767],[5796,5825],[11413,11414],[11412,11415],[5970,5999],[11416,11417],[5854,6028],[5883,11419],[6057,11420],[5709,11421],[11418,11422],[5796,5970],[5999,11424],[5825,11425],[4787,4816],[3772,11427],[3743,11428],[6115,11402],[11407,11430],[11429,11431],[11426,11432],[4729,4758],[3685,3714],[11434,11435],[11413,11436],[6086,11437],[11397,11438],[6173,6289],[11439,11440],[2525,11400],[2322,5709],[11415,11443],[2438,2467],[2409,11445],[11431,11446],[11397,11417],[11447,11448],[2351,11449],[2380,11450],[11444,11451],[11442,11452],[2525,4874],[2065,11454],[11382,11455],[6405,6463],[6347,11429],[11426,11458],[2438,11459],[3370,3627],[4671,4700],[5709,11462],[11461,11463],[3656,11464],[2322,2351],[1804,11466],[11465,11467],[11460,11468],[11457,11469],[11456,11470],[5738,5912],[3685,4729],[11472,11473],[6202,11474],[2380,11475],[2467,11476],[11471,11477],[11397,11465],[11437,11479],[11426,11480],[6347,11445],[11457,11482],[3801,4845],[3370,11436],[11429,11485],[1804,2065],[11486,11487],[11484,11488],[2496,6289],[11405,11490],[11489,11491],[11382,11385],[11453,11493],[11419,11494],[11492,11495],[11462,11496],[3743,3772],[11404,11483],[11498,11499],[3830,4874],[11484,11501],[3370,11487],[11502,11503],[2496,2525],[6492,11505],[11504,11506],[11500,11507],[2065,11434],[11462,11509],[4845,11510],[6115,6231],[6376,6405],[11512,11513],[2438,11514],[5970,11515],[5912,11516],[2380,2409],[5999,11397],[5796,11395],[6492,11497],[1804,11498],[2380,11446],[11505,11523],[11411,11524],[3685,3801],[3714,11526],[11525,11527],[11522,11528],[3830,11529],[5767,11397],[11518,11531],[6115,6405],[3627,5883],[5825,5999],[2351,11443],[11421,11506],[11536,11537],[11535,11538],[11424,11539],[11499,11540],[2380,11491],[11450,11542],[11444,11543],[11390,11417],[11397,11545],[6115,6144],[11478,11547],[5854,11534],[4671,11549],[11413,11550],[11484,11486],[11501,11552],[11421,11536],[11385,11419],[2065,11468],[2496,11556],[6492,11502],[11557,11558],[11421,11559],[11532,11554],[5738,11561],[1804,11562],[2467,11471],[2409,6318],[11564,11565],[2525,11421],[11559,11567],[4758,11568],[2409,4758],[3714,4758],[5767,5941],[11401,11572],[11571,11573],[11566,11574],[6463,11479],[3714,11565],[6289,11577],[6086,11398],[11440,11579],[6492,11580],[11505,11581],[11561,11582],[6057,11392],[1804,3830],[11455,11585],[2380,11447],[11486,11587],[11400,11588],[11586,11589],[11584,11590],[5854,11511],[4816,11592],[6028,11543],[4787,11594],[11593,11595],[4671,5854],[4787,5738],[11424,11598],[11515,11599],[11404,11457],[11421,11558],[11464,11602],[3656,11459],[11603,11604],[11601,11605],[6202,11547],[6173,11607],[11474,11608],[11606,11609],[6405,11512],[6289,11572],[4874,11511],[11583,11613],[11600,11614],[11444,11596],[4729,11462],[4845,11617],[4874,11427],[2065,11619],[4700,4845],[11620,11621],[11570,11622],[3772,4816],[2380,6173],[11472,11625],[11547,11626],[11473,11627],[11456,11467],[6318,11518],[6202,11630],[11629,11631],[11522,11527],[11475,11625],[11560,11634],[2065,11467],[11429,11587],[11636,11637],[11401,11612],[6318,11639],[11439,11465],[11632,11641],[2467,11460],[3801,11419],[11557,11644],[4845,11645],[6434,11646],[11643,11647],[6376,11648],[11628,11649],[2467,6434],[6463,11535],[11651,11652],[11384,11653],[5738,11583],[11654,11655],[2438,11520],[5970,11657],[6376,11658],[11568,11659],[6405,11660],[11518,11582],[11434,11662],[11504,11663],[11624,11651],[6260,11665],[6144,11435],[6463,11667],[11666,11668],[11664,11669],[11519,11670],[11481,11638],[4671,11640],[11393,11671],[11410,11553],[11435,11664],[4758,11423],[6376,11639],[11541,11620],[11440,11602],[11579,11680],[11437,11681],[11576,11682],[2380,11473],[11427,11608],[11684,11685],[5738,11686],[4816,11656],[11396,11676],[2322,11414],[11555,11633],[11499,11522],[11618,11679],[11395,11480],[11512,11694],[11424,11695],[11517,11689],[11441,11518],[4845,11698],[11512,11699],[11435,11522],[11494,11701],[11441,11568],[2409,11648],[11492,11587],[11597,11690],[3627,11706],[11705,11707],[6115,11415],[11406,11484],[11601,11643],[11568,11711],[2322,11415],[5883,11713],[11597,11714],[4758,11578],[6231,11716],[11413,11708],[11544,11691],[11434,11525],[11622,11720],[4845,11620],[11720,11722],[11715,11723],[11550,11709],[11607,11626],[11693,11726],[11572,11661],[11717,11728],[2467,11642],[11551,11664],[2322,5825],[11731,11732],[5767,11401],[11427,11508],[11716,11735],[11734,11736],[11571,11678],[11704,11738],[11384,11535],[11613,11688],[11675,11725],[5912,11545],[11623,11673],[11541,11744],[11534,11706],[11508,11746],[11645,11659],[11700,11748],[11624,11740],[6463,11750],[11730,11751],[2525,6144],[11669,11733],[3627,11590],[11513,11696],[11681,11756],[11618,11619],[2351,11546],[11721,11759],[4671,11714],[11755,11761],[5825,11726],[11399,11433],[11569,11572],[11652,11765],[11578,11666],[11766,11767],[11737,11746],[11653,11753],[11624,11770],[11563,11582],[11386,11772],[11387,11692],[11538,11774],[3772,11527],[11383,11437],[11425,11763],[11576,11777],[11764,11779],[11635,11771],[11412,11545],[11391,11782],[11775,11778],[11773,11776],[3714,11389],[11423,11786],[2351,3656],[11546,11788],[11508,11686],[3685,11784],[11381,11453],[11634,11660],[11665,11698],[11646,11740],[11631,11703],[11530,11789],[11553,11783],[11794,11795],[11514,11676],[2322,11657],[11533,11793],[11654,11785],[11606,11640],[11391,11489],[6260,11417],[11735,11806],[11394,11717],[11807,11808],[3830,11549],[11571,11804],[5796,11786],[11594,11805],[11419,11710],[11433,11480],[11814,11815],[11639,11774],[11540,11817],[11516,11772],[11812,11819],[11577,11818],[3772,11787],[5970,11611],[11683,11750],[6434,11824],[11529,11810],[11713,11826],[11488,11502],[11657,11823],[11448,11591],[11525,11828],[11510,11792],[11619,11832],[11551,11800],[11642,11829],[11524,11554],[11801,11834],[4874,11521],[11418,11836],[11392,11790],[11677,11758],[11743,11840],[11687,11747],[5886,6663],[4030,11844],[5074,11845],[6750,6866],[3629,3856],[4030,11848],[4001,11849],[3943,11850],[3885,11851],[6634,6663],[3856,4900],[2551,11854],[11853,11855],[6547,11856],[3943,4987],[11857,11858],[6518,6547],[6808,6924],[7011,11861],[7069,11862],[6837,6866],[6953,11864],[11863,11865],[6982,7040],[6779,11867],[6895,11868],[6692,6750],[11869,11870],[7098,11871],[11866,11872],[6721,11873],[11860,11874],[5741,5770],[5799,5828],[11876,11877],[11875,11878],[6576,6605],[11879,11880],[5857,6634],[5886,11882],[6663,11883],[5712,11884],[11881,11885],[5799,6576],[6605,11887],[5828,11888],[4987,5016],[3972,11890],[3943,11891],[6721,11865],[11870,11893],[11892,11894],[11889,11895],[4929,4958],[3885,3914],[11897,11898],[11876,11899],[6692,11900],[11860,11901],[6779,6895],[11902,11903],[2725,11863],[2324,5712],[11878,11906],[2638,2667],[2609,11908],[11894,11909],[11860,11880],[11910,11911],[2551,11912],[2580,11913],[11907,11914],[11905,11915],[2725,5074],[2092,11917],[11845,11918],[7011,7069],[6953,11892],[11889,11921],[2638,11922],[3397,3629],[4673,4900],[5712,11925],[11924,11926],[3856,11927],[2324,2551],[1831,11929],[11928,11930],[11923,11931],[11920,11932],[11919,11933],[5741,6518],[3885,4929],[11935,11936],[6808,11937],[2580,11938],[2667,11939],[11934,11940],[11860,11928],[11900,11942],[11889,11943],[6953,11908],[11920,11945],[4001,5045],[3397,11899],[11892,11948],[1831,2092],[11949,11950],[11947,11951],[2696,6895],[11868,11953],[11952,11954],[11845,11848],[11916,11956],[11882,11957],[11955,11958],[11925,11959],[3943,3972],[11867,11946],[11961,11962],[4030,5074],[11947,11964],[3397,11950],[11965,11966],[2696,2725],[7098,11968],[11967,11969],[11963,11970],[2092,11897],[11925,11972],[5045,11973],[6721,6837],[6982,7011],[11975,11976],[2638,11977],[6576,11978],[6518,11979],[2580,2609],[6605,11860],[5799,11858],[7098,11960],[1831,11961],[2580,11909],[11968,11986],[11874,11987],[3885,4001],[3914,11989],[11988,11990],[11985,11991],[4030,11992],[5770,11860],[11981,11994],[6721,7011],[3629,5886],[5828,6605],[2551,11906],[11884,11969],[11999,12000],[11998,12001],[11887,12002],[11962,12003],[2580,11954],[11913,12005],[11907,12006],[11853,11880],[11860,12008],[6721,6750],[11941,12010],[5857,11997],[4673,12012],[11876,12013],[11947,11949],[11964,12015],[11884,11999],[11848,11882],[2092,11931],[2696,12019],[7098,11965],[12020,12021],[11884,12022],[11995,12017],[5741,12024],[1831,12025],[2667,11934],[2609,6924],[12027,12028],[2725,11884],[12022,12030],[4958,12031],[2609,4958],[3914,4958],[5770,6547],[11864,12035],[12034,12036],[12029,12037],[7069,11942],[3914,12028],[6895,12040],[6692,11861],[11903,12042],[7098,12043],[11968,12044],[12024,12045],[6663,11855],[1831,4030],[11918,12048],[2580,11910],[11949,12050],[11863,12051],[12049,12052],[12047,12053],[5857,11974],[5016,12055],[6634,12006],[4987,12057],[12056,12058],[4673,5857],[4987,5741],[11887,12061],[11978,12062],[11867,11920],[11884,12021],[11927,12065],[3856,11922],[12066,12067],[12064,12068],[6808,12010],[6779,12070],[11937,12071],[12069,12072],[7011,11975],[6895,12035],[5074,11974],[12046,12076],[12063,12077],[11907,12059],[4929,11925],[5045,12080],[5074,11890],[2092,12082],[4900,5045],[12083,12084],[12033,12085],[3972,5016],[2580,6779],[11935,12088],[12010,12089],[11936,12090],[11919,11930],[6924,11981],[6808,12093],[12092,12094],[11985,11990],[11938,12088],[12023,12097],[2092,11930],[11892,12050],[12099,12100],[11864,12075],[6924,12102],[11902,11928],[12095,12104],[2667,11923],[4001,11882],[12020,12107],[5045,12108],[7040,12109],[12106,12110],[6982,12111],[12091,12112],[2667,7040],[7069,11998],[12114,12115],[11847,12116],[5741,12046],[12117,12118],[2638,11983],[6576,12120],[6982,12121],[12031,12122],[7011,12123],[11981,12045],[11897,12125],[11967,12126],[12087,12114],[6866,12128],[6750,11898],[7069,12130],[12129,12131],[12127,12132],[11982,12133],[11944,12101],[4673,12103],[11856,12134],[11873,12016],[11898,12127],[4958,11886],[6982,12102],[12004,12083],[11903,12065],[12042,12143],[11900,12144],[12039,12145],[2580,11936],[11890,12071],[12147,12148],[5741,12149],[5016,12119],[11859,12139],[2324,11877],[12018,12096],[11962,11985],[12081,12142],[11858,11943],[11975,12157],[11887,12158],[11980,12152],[11904,11981],[5045,12161],[11975,12162],[11898,11985],[11957,12164],[11904,12031],[2609,12111],[11955,12050],[12060,12153],[3629,12169],[12168,12170],[6721,11878],[11869,11947],[12064,12106],[12031,12174],[2324,11878],[5886,12176],[12060,12177],[4958,12041],[6837,12179],[11876,12171],[12007,12154],[11897,11988],[12085,12183],[5045,12083],[12183,12185],[12178,12186],[12013,12172],[12070,12089],[12156,12189],[12035,12124],[12180,12191],[2667,12105],[12014,12127],[2324,5828],[12194,12195],[5770,11864],[11890,11971],[12179,12198],[12197,12199],[12034,12141],[12167,12201],[11847,11998],[12076,12151],[12138,12188],[6518,12008],[12086,12136],[12004,12207],[11997,12169],[11971,12209],[12108,12122],[12163,12211],[12087,12203],[7069,12213],[12193,12214],[2725,6750],[12132,12196],[3629,12053],[11976,12159],[12144,12219],[12081,12082],[2551,12009],[12184,12222],[4673,12177],[12218,12224],[5828,12189],[11862,11896],[12032,12035],[12115,12228],[12041,12129],[12229,12230],[12200,12209],[12116,12216],[12087,12233],[12026,12045],[11849,12235],[11850,12155],[12001,12237],[3972,11990],[11846,11900],[11888,12226],[12039,12240],[12227,12242],[12098,12234],[11875,12008],[11854,12245],[12238,12241],[12236,12239],[3914,11852],[11886,12249],[2551,3856],[12009,12251],[11971,12149],[3885,12247],[11844,11916],[12097,12123],[12128,12161],[12109,12203],[12094,12166],[11993,12252],[12016,12246],[12257,12258],[11977,12139],[2324,12120],[11996,12256],[12117,12248],[12069,12103],[11854,11952],[6866,11880],[12198,12269],[11857,12180],[12270,12271],[4030,12012],[12034,12267],[5799,12249],[12057,12268],[11882,12173],[11896,11943],[12277,12278],[12102,12237],[12003,12280],[11979,12235],[12275,12282],[12040,12281],[3972,12250],[6576,12074],[12146,12213],[7040,12287],[11992,12273],[12176,12289],[11951,11965],[12120,12286],[11911,12054],[11988,12291],[11973,12255],[12082,12295],[12014,12263],[12105,12292],[11987,12017],[12264,12297],[5074,11984],[11881,12299],[11855,12253],[12140,12221],[12206,12303],[12150,12210],[5889,6666],[4033,12307],[5077,12308],[6753,6869],[3631,3859],[4033,12311],[4004,12312],[3946,12313],[3888,12314],[6637,6666],[3859,4903],[2554,12317],[12316,12318],[6550,12319],[3946,4990],[12320,12321],[6521,6550],[6811,6927],[7014,12324],[7072,12325],[6840,6869],[6956,12327],[12326,12328],[6985,7043],[6782,12330],[6898,12331],[6695,6753],[12332,12333],[7101,12334],[12329,12335],[6724,12336],[12323,12337],[5744,5773],[5802,5831],[12339,12340],[12338,12341],[6579,6608],[12342,12343],[5860,6637],[5889,12345],[6666,12346],[5715,12347],[12344,12348],[5802,6579],[6608,12350],[5831,12351],[4990,5019],[3975,12353],[3946,12354],[6724,12328],[12333,12356],[12355,12357],[12352,12358],[4932,4961],[3888,3917],[12360,12361],[12339,12362],[6695,12363],[12323,12364],[6782,6898],[12365,12366],[2728,12326],[2326,5715],[12341,12369],[2641,2670],[2612,12371],[12357,12372],[12323,12343],[12373,12374],[2554,12375],[2583,12376],[12370,12377],[12368,12378],[2728,5077],[2094,12380],[12308,12381],[7014,7072],[6956,12355],[12352,12384],[2641,12385],[3399,3631],[4675,4903],[5715,12388],[12387,12389],[3859,12390],[2326,2554],[1833,12392],[12391,12393],[12386,12394],[12383,12395],[12382,12396],[5744,6521],[3888,4932],[12398,12399],[6811,12400],[2583,12401],[2670,12402],[12397,12403],[12323,12391],[12363,12405],[12352,12406],[6956,12371],[12383,12408],[4004,5048],[3399,12362],[12355,12411],[1833,2094],[12412,12413],[12410,12414],[2699,6898],[12331,12416],[12415,12417],[12308,12311],[12379,12419],[12345,12420],[12418,12421],[12388,12422],[3946,3975],[12330,12409],[12424,12425],[4033,5077],[12410,12427],[3399,12413],[12428,12429],[2699,2728],[7101,12431],[12430,12432],[12426,12433],[2094,12360],[12388,12435],[5048,12436],[6724,6840],[6985,7014],[12438,12439],[2641,12440],[6579,12441],[6521,12442],[2583,2612],[6608,12323],[5802,12321],[7101,12423],[1833,12424],[2583,12372],[12431,12449],[12337,12450],[3888,4004],[3917,12452],[12451,12453],[12448,12454],[4033,12455],[5773,12323],[12444,12457],[6724,7014],[3631,5889],[5831,6608],[2554,12369],[12347,12432],[12462,12463],[12461,12464],[12350,12465],[12425,12466],[2583,12417],[12376,12468],[12370,12469],[12316,12343],[12323,12471],[6724,6753],[12404,12473],[5860,12460],[4675,12475],[12339,12476],[12410,12412],[12427,12478],[12347,12462],[12311,12345],[2094,12394],[2699,12482],[7101,12428],[12483,12484],[12347,12485],[12458,12480],[5744,12487],[1833,12488],[2670,12397],[2612,6927],[12490,12491],[2728,12347],[12485,12493],[4961,12494],[2612,4961],[3917,4961],[5773,6550],[12327,12498],[12497,12499],[12492,12500],[7072,12405],[3917,12491],[6898,12503],[6695,12324],[12366,12505],[7101,12506],[12431,12507],[12487,12508],[6666,12318],[1833,4033],[12381,12511],[2583,12373],[12412,12513],[12326,12514],[12512,12515],[12510,12516],[5860,12437],[5019,12518],[6637,12469],[4990,12520],[12519,12521],[4675,5860],[4990,5744],[12350,12524],[12441,12525],[12330,12383],[12347,12484],[12390,12528],[3859,12385],[12529,12530],[12527,12531],[6811,12473],[6782,12533],[12400,12534],[12532,12535],[7014,12438],[6898,12498],[5077,12437],[12509,12539],[12526,12540],[12370,12522],[4932,12388],[5048,12543],[5077,12353],[2094,12545],[4903,5048],[12546,12547],[12496,12548],[3975,5019],[2583,6782],[12398,12551],[12473,12552],[12399,12553],[12382,12393],[6927,12444],[6811,12556],[12555,12557],[12448,12453],[12401,12551],[12486,12560],[2094,12393],[12355,12513],[12562,12563],[12327,12538],[6927,12565],[12365,12391],[12558,12567],[2670,12386],[4004,12345],[12483,12570],[5048,12571],[7043,12572],[12569,12573],[6985,12574],[12554,12575],[2670,7043],[7072,12461],[12577,12578],[12310,12579],[5744,12509],[12580,12581],[2641,12446],[6579,12583],[6985,12584],[12494,12585],[7014,12586],[12444,12508],[12360,12588],[12430,12589],[12550,12577],[6869,12591],[6753,12361],[7072,12593],[12592,12594],[12590,12595],[12445,12596],[12407,12564],[4675,12566],[12319,12597],[12336,12479],[12361,12590],[4961,12349],[6985,12565],[12467,12546],[12366,12528],[12505,12606],[12363,12607],[12502,12608],[2583,12399],[12353,12534],[12610,12611],[5744,12612],[5019,12582],[12322,12602],[2326,12340],[12481,12559],[12425,12448],[12544,12605],[12321,12406],[12438,12620],[12350,12621],[12443,12615],[12367,12444],[5048,12624],[12438,12625],[12361,12448],[12420,12627],[12367,12494],[2612,12574],[12418,12513],[12523,12616],[3631,12632],[12631,12633],[6724,12341],[12332,12410],[12527,12569],[12494,12637],[2326,12341],[5889,12639],[12523,12640],[4961,12504],[6840,12642],[12339,12634],[12470,12617],[12360,12451],[12548,12646],[5048,12546],[12646,12648],[12641,12649],[12476,12635],[12533,12552],[12619,12652],[12498,12587],[12643,12654],[2670,12568],[12477,12590],[2326,5831],[12657,12658],[5773,12327],[12353,12434],[12642,12661],[12660,12662],[12497,12604],[12630,12664],[12310,12461],[12539,12614],[12601,12651],[6521,12471],[12549,12599],[12467,12670],[12460,12632],[12434,12672],[12571,12585],[12626,12674],[12550,12666],[7072,12676],[12656,12677],[2728,6753],[12595,12659],[3631,12516],[12439,12622],[12607,12682],[12544,12545],[2554,12472],[12647,12685],[4675,12640],[12681,12687],[5831,12652],[12325,12359],[12495,12498],[12578,12691],[12504,12592],[12692,12693],[12663,12672],[12579,12679],[12550,12696],[12489,12508],[12312,12698],[12313,12618],[12464,12700],[3975,12453],[12309,12363],[12351,12689],[12502,12703],[12690,12705],[12561,12697],[12338,12471],[12317,12708],[12701,12704],[12699,12702],[3917,12315],[12349,12712],[2554,3859],[12472,12714],[12434,12612],[3888,12710],[12307,12379],[12560,12586],[12591,12624],[12572,12666],[12557,12629],[12456,12715],[12479,12709],[12720,12721],[12440,12602],[2326,12583],[12459,12719],[12580,12711],[12532,12566],[12317,12415],[6869,12343],[12661,12732],[12320,12643],[12733,12734],[4033,12475],[12497,12730],[5802,12712],[12520,12731],[12345,12636],[12359,12406],[12740,12741],[12565,12700],[12466,12743],[12442,12698],[12738,12745],[12503,12744],[3975,12713],[6579,12537],[12609,12676],[7043,12750],[12455,12736],[12639,12752],[12414,12428],[12583,12749],[12374,12517],[12451,12754],[12436,12718],[12545,12758],[12477,12726],[12568,12755],[12450,12480],[12727,12760],[5077,12447],[12344,12762],[12318,12716],[12603,12684],[12669,12766],[12613,12673],[6060,6669],[4204,12770],[5248,12771],[7185,7301],[3658,3861],[4204,12774],[4175,12775],[4117,12776],[4059,12777],[6640,6669],[3861,4905],[2556,12780],[12779,12781],[6553,12782],[4117,5161],[12783,12784],[6524,6553],[7243,7359],[7446,12787],[7504,12788],[7272,7301],[7388,12790],[12789,12791],[7417,7475],[7214,12793],[7330,12794],[7127,7185],[12795,12796],[7533,12797],[12792,12798],[7156,12799],[12786,12800],[5915,5944],[5973,6002],[12802,12803],[12801,12804],[6582,6611],[12805,12806],[6031,6640],[6060,12808],[6669,12809],[5717,12810],[12807,12811],[5973,6582],[6611,12813],[6002,12814],[5161,5190],[4146,12816],[4117,12817],[7156,12791],[12796,12819],[12818,12820],[12815,12821],[5103,5132],[4059,4088],[12823,12824],[12802,12825],[7127,12826],[12786,12827],[7214,7330],[12828,12829],[2899,12789],[2353,5717],[12804,12832],[2812,2841],[2783,12834],[12820,12835],[12786,12806],[12836,12837],[2556,12838],[2754,12839],[12833,12840],[12831,12841],[2899,5248],[2121,12843],[12771,12844],[7446,7504],[7388,12818],[12815,12847],[2812,12848],[3426,3658],[4702,4905],[5717,12851],[12850,12852],[3861,12853],[2353,2556],[1860,12855],[12854,12856],[12849,12857],[12846,12858],[12845,12859],[5915,6524],[4059,5103],[12861,12862],[7243,12863],[2754,12864],[2841,12865],[12860,12866],[12786,12854],[12826,12868],[12815,12869],[7388,12834],[12846,12871],[4175,5219],[3426,12825],[12818,12874],[1860,2121],[12875,12876],[12873,12877],[2870,7330],[12794,12879],[12878,12880],[12771,12774],[12842,12882],[12808,12883],[12881,12884],[12851,12885],[4117,4146],[12793,12872],[12887,12888],[4204,5248],[12873,12890],[3426,12876],[12891,12892],[2870,2899],[7533,12894],[12893,12895],[12889,12896],[2121,12823],[12851,12898],[5219,12899],[7156,7272],[7417,7446],[12901,12902],[2812,12903],[6582,12904],[6524,12905],[2754,2783],[6611,12786],[5973,12784],[7533,12886],[1860,12887],[2754,12835],[12894,12912],[12800,12913],[4059,4175],[4088,12915],[12914,12916],[12911,12917],[4204,12918],[5944,12786],[12907,12920],[7156,7446],[3658,6060],[6002,6611],[2556,12832],[12810,12895],[12925,12926],[12924,12927],[12813,12928],[12888,12929],[2754,12880],[12839,12931],[12833,12932],[12779,12806],[12786,12934],[7156,7185],[12867,12936],[6031,12923],[4702,12938],[12802,12939],[12873,12875],[12890,12941],[12810,12925],[12774,12808],[2121,12857],[2870,12945],[7533,12891],[12946,12947],[12810,12948],[12921,12943],[5915,12950],[1860,12951],[2841,12860],[2783,7359],[12953,12954],[2899,12810],[12948,12956],[5132,12957],[2783,5132],[4088,5132],[5944,6553],[12790,12961],[12960,12962],[12955,12963],[7504,12868],[4088,12954],[7330,12966],[7127,12787],[12829,12968],[7533,12969],[12894,12970],[12950,12971],[6669,12781],[1860,4204],[12844,12974],[2754,12836],[12875,12976],[12789,12977],[12975,12978],[12973,12979],[6031,12900],[5190,12981],[6640,12932],[5161,12983],[12982,12984],[4702,6031],[5161,5915],[12813,12987],[12904,12988],[12793,12846],[12810,12947],[12853,12991],[3861,12848],[12992,12993],[12990,12994],[7243,12936],[7214,12996],[12863,12997],[12995,12998],[7446,12901],[7330,12961],[5248,12900],[12972,13002],[12989,13003],[12833,12985],[5103,12851],[5219,13006],[5248,12816],[2121,13008],[4905,5219],[13009,13010],[12959,13011],[4146,5190],[2754,7214],[12861,13014],[12936,13015],[12862,13016],[12845,12856],[7359,12907],[7243,13019],[13018,13020],[12911,12916],[12864,13014],[12949,13023],[2121,12856],[12818,12976],[13025,13026],[12790,13001],[7359,13028],[12828,12854],[13021,13030],[2841,12849],[4175,12808],[12946,13033],[5219,13034],[7475,13035],[13032,13036],[7417,13037],[13017,13038],[2841,7475],[7504,12924],[13040,13041],[12773,13042],[5915,12972],[13043,13044],[2812,12909],[6582,13046],[7417,13047],[12957,13048],[7446,13049],[12907,12971],[12823,13051],[12893,13052],[13013,13040],[7301,13054],[7185,12824],[7504,13056],[13055,13057],[13053,13058],[12908,13059],[12870,13027],[4702,13029],[12782,13060],[12799,12942],[12824,13053],[5132,12812],[7417,13028],[12930,13009],[12829,12991],[12968,13069],[12826,13070],[12965,13071],[2754,12862],[12816,12997],[13073,13074],[5915,13075],[5190,13045],[12785,13065],[2353,12803],[12944,13022],[12888,12911],[13007,13068],[12784,12869],[12901,13083],[12813,13084],[12906,13078],[12830,12907],[5219,13087],[12901,13088],[12824,12911],[12883,13090],[12830,12957],[2783,13037],[12881,12976],[12986,13079],[3658,13095],[13094,13096],[7156,12804],[12795,12873],[12990,13032],[12957,13100],[2353,12804],[6060,13102],[12986,13103],[5132,12967],[7272,13105],[12802,13097],[12933,13080],[12823,12914],[13011,13109],[5219,13009],[13109,13111],[13104,13112],[12939,13098],[12996,13015],[13082,13115],[12961,13050],[13106,13117],[2841,13031],[12940,13053],[2353,6002],[13120,13121],[5944,12790],[12816,12897],[13105,13124],[13123,13125],[12960,13067],[13093,13127],[12773,12924],[13002,13077],[13064,13114],[6524,12934],[13012,13062],[12930,13133],[12923,13095],[12897,13135],[13034,13048],[13089,13137],[13013,13129],[7504,13139],[13119,13140],[2899,7185],[13058,13122],[3658,12979],[12902,13085],[13070,13145],[13007,13008],[2556,12935],[13110,13148],[4702,13103],[13144,13150],[6002,13115],[12788,12822],[12958,12961],[13041,13154],[12967,13055],[13155,13156],[13126,13135],[13042,13142],[13013,13159],[12952,12971],[12775,13161],[12776,13081],[12927,13163],[4146,12916],[12772,12826],[12814,13152],[12965,13166],[13153,13168],[13024,13160],[12801,12934],[12780,13171],[13164,13167],[13162,13165],[4088,12778],[12812,13175],[2556,3861],[12935,13177],[12897,13075],[4059,13173],[12770,12842],[13023,13049],[13054,13087],[13035,13129],[13020,13092],[12919,13178],[12942,13172],[13183,13184],[12903,13065],[2353,13046],[12922,13182],[13043,13174],[12995,13029],[12780,12878],[7301,12806],[13124,13195],[12783,13106],[13196,13197],[4204,12938],[12960,13193],[5973,13175],[12983,13194],[12808,13099],[12822,12869],[13203,13204],[13028,13163],[12929,13206],[12905,13161],[13201,13208],[12966,13207],[4146,13176],[6582,13000],[13072,13139],[7475,13213],[12918,13199],[13102,13215],[12877,12891],[13046,13212],[12837,12980],[12914,13217],[12899,13181],[13008,13221],[12940,13189],[13031,13218],[12913,12943],[13190,13223],[5248,12910],[12807,13225],[12781,13179],[13066,13147],[13132,13229],[13076,13136],[6063,6672],[4207,13233],[5251,13234],[7188,7304],[3660,3863],[4207,13237],[4178,13238],[4120,13239],[4062,13240],[6643,6672],[3863,4907],[2558,13243],[13242,13244],[6556,13245],[4120,5164],[13246,13247],[6527,6556],[7246,7362],[7449,13250],[7507,13251],[7275,7304],[7391,13253],[13252,13254],[7420,7478],[7217,13256],[7333,13257],[7130,7188],[13258,13259],[7536,13260],[13255,13261],[7159,13262],[13249,13263],[5918,5947],[5976,6005],[13265,13266],[13264,13267],[6585,6614],[13268,13269],[6034,6643],[6063,13271],[6672,13272],[5719,13273],[13270,13274],[5976,6585],[6614,13276],[6005,13277],[5164,5193],[4149,13279],[4120,13280],[7159,13254],[13259,13282],[13281,13283],[13278,13284],[5106,5135],[4062,4091],[13286,13287],[13265,13288],[7130,13289],[13249,13290],[7217,7333],[13291,13292],[2902,13252],[2355,5719],[13267,13295],[2815,2844],[2786,13297],[13283,13298],[13249,13269],[13299,13300],[2558,13301],[2757,13302],[13296,13303],[13294,13304],[2902,5251],[2123,13306],[13234,13307],[7449,7507],[7391,13281],[13278,13310],[2815,13311],[3428,3660],[4704,4907],[5719,13314],[13313,13315],[3863,13316],[2355,2558],[1862,13318],[13317,13319],[13312,13320],[13309,13321],[13308,13322],[5918,6527],[4062,5106],[13324,13325],[7246,13326],[2757,13327],[2844,13328],[13323,13329],[13249,13317],[13289,13331],[13278,13332],[7391,13297],[13309,13334],[4178,5222],[3428,13288],[13281,13337],[1862,2123],[13338,13339],[13336,13340],[2873,7333],[13257,13342],[13341,13343],[13234,13237],[13305,13345],[13271,13346],[13344,13347],[13314,13348],[4120,4149],[13256,13335],[13350,13351],[4207,5251],[13336,13353],[3428,13339],[13354,13355],[2873,2902],[7536,13357],[13356,13358],[13352,13359],[2123,13286],[13314,13361],[5222,13362],[7159,7275],[7420,7449],[13364,13365],[2815,13366],[6585,13367],[6527,13368],[2757,2786],[6614,13249],[5976,13247],[7536,13349],[1862,13350],[2757,13298],[13357,13375],[13263,13376],[4062,4178],[4091,13378],[13377,13379],[13374,13380],[4207,13381],[5947,13249],[13370,13383],[7159,7449],[3660,6063],[6005,6614],[2558,13295],[13273,13358],[13388,13389],[13387,13390],[13276,13391],[13351,13392],[2757,13343],[13302,13394],[13296,13395],[13242,13269],[13249,13397],[7159,7188],[13330,13399],[6034,13386],[4704,13401],[13265,13402],[13336,13338],[13353,13404],[13273,13388],[13237,13271],[2123,13320],[2873,13408],[7536,13354],[13409,13410],[13273,13411],[13384,13406],[5918,13413],[1862,13414],[2844,13323],[2786,7362],[13416,13417],[2902,13273],[13411,13419],[5135,13420],[2786,5135],[4091,5135],[5947,6556],[13253,13424],[13423,13425],[13418,13426],[7507,13331],[4091,13417],[7333,13429],[7130,13250],[13292,13431],[7536,13432],[13357,13433],[13413,13434],[6672,13244],[1862,4207],[13307,13437],[2757,13299],[13338,13439],[13252,13440],[13438,13441],[13436,13442],[6034,13363],[5193,13444],[6643,13395],[5164,13446],[13445,13447],[4704,6034],[5164,5918],[13276,13450],[13367,13451],[13256,13309],[13273,13410],[13316,13454],[3863,13311],[13455,13456],[13453,13457],[7246,13399],[7217,13459],[13326,13460],[13458,13461],[7449,13364],[7333,13424],[5251,13363],[13435,13465],[13452,13466],[13296,13448],[5106,13314],[5222,13469],[5251,13279],[2123,13471],[4907,5222],[13472,13473],[13422,13474],[4149,5193],[2757,7217],[13324,13477],[13399,13478],[13325,13479],[13308,13319],[7362,13370],[7246,13482],[13481,13483],[13374,13379],[13327,13477],[13412,13486],[2123,13319],[13281,13439],[13488,13489],[13253,13464],[7362,13491],[13291,13317],[13484,13493],[2844,13312],[4178,13271],[13409,13496],[5222,13497],[7478,13498],[13495,13499],[7420,13500],[13480,13501],[2844,7478],[7507,13387],[13503,13504],[13236,13505],[5918,13435],[13506,13507],[2815,13372],[6585,13509],[7420,13510],[13420,13511],[7449,13512],[13370,13434],[13286,13514],[13356,13515],[13476,13503],[7304,13517],[7188,13287],[7507,13519],[13518,13520],[13516,13521],[13371,13522],[13333,13490],[4704,13492],[13245,13523],[13262,13405],[13287,13516],[5135,13275],[7420,13491],[13393,13472],[13292,13454],[13431,13532],[13289,13533],[13428,13534],[2757,13325],[13279,13460],[13536,13537],[5918,13538],[5193,13508],[13248,13528],[2355,13266],[13407,13485],[13351,13374],[13470,13531],[13247,13332],[13364,13546],[13276,13547],[13369,13541],[13293,13370],[5222,13550],[13364,13551],[13287,13374],[13346,13553],[13293,13420],[2786,13500],[13344,13439],[13449,13542],[3660,13558],[13557,13559],[7159,13267],[13258,13336],[13453,13495],[13420,13563],[2355,13267],[6063,13565],[13449,13566],[5135,13430],[7275,13568],[13265,13560],[13396,13543],[13286,13377],[13474,13572],[5222,13472],[13572,13574],[13567,13575],[13402,13561],[13459,13478],[13545,13578],[13424,13513],[13569,13580],[2844,13494],[13403,13516],[2355,6005],[13583,13584],[5947,13253],[13279,13360],[13568,13587],[13586,13588],[13423,13530],[13556,13590],[13236,13387],[13465,13540],[13527,13577],[6527,13397],[13475,13525],[13393,13596],[13386,13558],[13360,13598],[13497,13511],[13552,13600],[13476,13592],[7507,13602],[13582,13603],[2902,7188],[13521,13585],[3660,13442],[13365,13548],[13533,13608],[13470,13471],[2558,13398],[13573,13611],[4704,13566],[13607,13613],[6005,13578],[13251,13285],[13421,13424],[13504,13617],[13430,13518],[13618,13619],[13589,13598],[13505,13605],[13476,13622],[13415,13434],[13238,13624],[13239,13544],[13390,13626],[4149,13379],[13235,13289],[13277,13615],[13428,13629],[13616,13631],[13487,13623],[13264,13397],[13243,13634],[13627,13630],[13625,13628],[4091,13241],[13275,13638],[2558,3863],[13398,13640],[13360,13538],[4062,13636],[13233,13305],[13486,13512],[13517,13550],[13498,13592],[13483,13555],[13382,13641],[13405,13635],[13646,13647],[13366,13528],[2355,13509],[13385,13645],[13506,13637],[13458,13492],[13243,13341],[7304,13269],[13587,13658],[13246,13569],[13659,13660],[4207,13401],[13423,13656],[5976,13638],[13446,13657],[13271,13562],[13285,13332],[13666,13667],[13491,13626],[13392,13669],[13368,13624],[13664,13671],[13429,13670],[4149,13639],[6585,13463],[13535,13602],[7478,13676],[13381,13662],[13565,13678],[13340,13354],[13509,13675],[13300,13443],[13377,13680],[13362,13644],[13471,13684],[13403,13652],[13494,13681],[13376,13406],[13653,13686],[5251,13373],[13270,13688],[13244,13642],[13529,13610],[13595,13692],[13539,13599],[6205,6814],[4349,13696],[5393,13697],[7191,7591],[3687,3890],[4349,13700],[4320,13701],[4262,13702],[4064,13703],[6785,6814],[3890,4934],[2585,13706],[13705,13707],[6698,13708],[4262,5306],[13709,13710],[6529,6698],[7249,7649],[7736,13713],[7794,13714],[7562,7591],[7678,13716],[13715,13717],[7707,7765],[7220,13719],[7620,13720],[7133,7191],[13721,13722],[7823,13723],[13718,13724],[7162,13725],[13712,13726],[5920,6089],[6118,6147],[13728,13729],[13727,13730],[6727,6756],[13731,13732],[6176,6785],[6205,13734],[6814,13735],[5746,13736],[13733,13737],[6118,6727],[6756,13739],[6147,13740],[5306,5335],[4291,13742],[4262,13743],[7162,13717],[13722,13745],[13744,13746],[13741,13747],[5108,5277],[4064,4233],[13749,13750],[13728,13751],[7133,13752],[13712,13753],[7220,7620],[13754,13755],[3044,13715],[2382,5746],[13730,13758],[2957,2986],[2928,13760],[13746,13761],[13712,13732],[13762,13763],[2585,13764],[2759,13765],[13759,13766],[13757,13767],[3044,5393],[2150,13769],[13697,13770],[7736,7794],[7678,13744],[13741,13773],[2957,13774],[3455,3687],[4731,4934],[5746,13777],[13776,13778],[3890,13779],[2382,2585],[1889,13781],[13780,13782],[13775,13783],[13772,13784],[13771,13785],[5920,6529],[4064,5108],[13787,13788],[7249,13789],[2759,13790],[2986,13791],[13786,13792],[13712,13780],[13752,13794],[13741,13795],[7678,13760],[13772,13797],[4320,5364],[3455,13751],[13744,13800],[1889,2150],[13801,13802],[13799,13803],[3015,7620],[13720,13805],[13804,13806],[13697,13700],[13768,13808],[13734,13809],[13807,13810],[13777,13811],[4262,4291],[13719,13798],[13813,13814],[4349,5393],[13799,13816],[3455,13802],[13817,13818],[3015,3044],[7823,13820],[13819,13821],[13815,13822],[2150,13749],[13777,13824],[5364,13825],[7162,7562],[7707,7736],[13827,13828],[2957,13829],[6727,13830],[6529,13831],[2759,2928],[6756,13712],[6118,13710],[7823,13812],[1889,13813],[2759,13761],[13820,13838],[13726,13839],[4064,4320],[4233,13841],[13840,13842],[13837,13843],[4349,13844],[6089,13712],[13833,13846],[7162,7736],[3687,6205],[6147,6756],[2585,13758],[13736,13821],[13851,13852],[13850,13853],[13739,13854],[13814,13855],[2759,13806],[13765,13857],[13759,13858],[13705,13732],[13712,13860],[7162,7191],[13793,13862],[6176,13849],[4731,13864],[13728,13865],[13799,13801],[13816,13867],[13736,13851],[13700,13734],[2150,13783],[3015,13871],[7823,13817],[13872,13873],[13736,13874],[13847,13869],[5920,13876],[1889,13877],[2986,13786],[2928,7649],[13879,13880],[3044,13736],[13874,13882],[5277,13883],[2928,5277],[4233,5277],[6089,6698],[13716,13887],[13886,13888],[13881,13889],[7794,13794],[4233,13880],[7620,13892],[7133,13713],[13755,13894],[7823,13895],[13820,13896],[13876,13897],[6814,13707],[1889,4349],[13770,13900],[2759,13762],[13801,13902],[13715,13903],[13901,13904],[13899,13905],[6176,13826],[5335,13907],[6785,13858],[5306,13909],[13908,13910],[4731,6176],[5306,5920],[13739,13913],[13830,13914],[13719,13772],[13736,13873],[13779,13917],[3890,13774],[13918,13919],[13916,13920],[7249,13862],[7220,13922],[13789,13923],[13921,13924],[7736,13827],[7620,13887],[5393,13826],[13898,13928],[13915,13929],[13759,13911],[5108,13777],[5364,13932],[5393,13742],[2150,13934],[4934,5364],[13935,13936],[13885,13937],[4291,5335],[2759,7220],[13787,13940],[13862,13941],[13788,13942],[13771,13782],[7649,13833],[7249,13945],[13944,13946],[13837,13842],[13790,13940],[13875,13949],[2150,13782],[13744,13902],[13951,13952],[13716,13927],[7649,13954],[13754,13780],[13947,13956],[2986,13775],[4320,13734],[13872,13959],[5364,13960],[7765,13961],[13958,13962],[7707,13963],[13943,13964],[2986,7765],[7794,13850],[13966,13967],[13699,13968],[5920,13898],[13969,13970],[2957,13835],[6727,13972],[7707,13973],[13883,13974],[7736,13975],[13833,13897],[13749,13977],[13819,13978],[13939,13966],[7591,13980],[7191,13750],[7794,13982],[13981,13983],[13979,13984],[13834,13985],[13796,13953],[4731,13955],[13708,13986],[13725,13868],[13750,13979],[5277,13738],[7707,13954],[13856,13935],[13755,13917],[13894,13995],[13752,13996],[13891,13997],[2759,13788],[13742,13923],[13999,14000],[5920,14001],[5335,13971],[13711,13991],[2382,13729],[13870,13948],[13814,13837],[13933,13994],[13710,13795],[13827,14009],[13739,14010],[13832,14004],[13756,13833],[5364,14013],[13827,14014],[13750,13837],[13809,14016],[13756,13883],[2928,13963],[13807,13902],[13912,14005],[3687,14021],[14020,14022],[7162,13730],[13721,13799],[13916,13958],[13883,14026],[2382,13730],[6205,14028],[13912,14029],[5277,13893],[7562,14031],[13728,14023],[13859,14006],[13749,13840],[13937,14035],[5364,13935],[14035,14037],[14030,14038],[13865,14024],[13922,13941],[14008,14041],[13887,13976],[14032,14043],[2986,13957],[13866,13979],[2382,6147],[14046,14047],[6089,13716],[13742,13823],[14031,14050],[14049,14051],[13886,13993],[14019,14053],[13699,13850],[13928,14003],[13990,14040],[6529,13860],[13938,13988],[13856,14059],[13849,14021],[13823,14061],[13960,13974],[14015,14063],[13939,14055],[7794,14065],[14045,14066],[3044,7191],[13984,14048],[3687,13905],[13828,14011],[13996,14071],[13933,13934],[2585,13861],[14036,14074],[4731,14029],[14070,14076],[6147,14041],[13714,13748],[13884,13887],[13967,14080],[13893,13981],[14081,14082],[14052,14061],[13968,14068],[13939,14085],[13878,13897],[13701,14087],[13702,14007],[13853,14089],[4291,13842],[13698,13752],[13740,14078],[13891,14092],[14079,14094],[13950,14086],[13727,13860],[13706,14097],[14090,14093],[14088,14091],[4233,13704],[13738,14101],[2585,3890],[13861,14103],[13823,14001],[4064,14099],[13696,13768],[13949,13975],[13980,14013],[13961,14055],[13946,14018],[13845,14104],[13868,14098],[14109,14110],[13829,13991],[2382,13972],[13848,14108],[13969,14100],[13921,13955],[13706,13804],[7591,13732],[14050,14121],[13709,14032],[14122,14123],[4349,13864],[13886,14119],[6118,14101],[13909,14120],[13734,14025],[13748,13795],[14129,14130],[13954,14089],[13855,14132],[13831,14087],[14127,14134],[13892,14133],[4291,14102],[6727,13926],[13998,14065],[7765,14139],[13844,14125],[14028,14141],[13803,13817],[13972,14138],[13763,13906],[13840,14143],[13825,14107],[13934,14147],[13866,14115],[13957,14144],[13839,13869],[14116,14149],[5393,13836],[13733,14151],[13707,14105],[13992,14073],[14058,14155],[14002,14062],[6208,6817],[4352,14159],[5396,14160],[7194,7594],[3689,3892],[4352,14163],[4323,14164],[4265,14165],[4066,14166],[6788,6817],[3892,4936],[2587,14169],[14168,14170],[6701,14171],[4265,5309],[14172,14173],[6531,6701],[7252,7652],[7739,14176],[7797,14177],[7565,7594],[7681,14179],[14178,14180],[7710,7768],[7223,14182],[7623,14183],[7136,7194],[14184,14185],[7826,14186],[14181,14187],[7165,14188],[14175,14189],[5922,6092],[6121,6150],[14191,14192],[14190,14193],[6730,6759],[14194,14195],[6179,6788],[6208,14197],[6817,14198],[5748,14199],[14196,14200],[6121,6730],[6759,14202],[6150,14203],[5309,5338],[4294,14205],[4265,14206],[7165,14180],[14185,14208],[14207,14209],[14204,14210],[5110,5280],[4066,4236],[14212,14213],[14191,14214],[7136,14215],[14175,14216],[7223,7623],[14217,14218],[3047,14178],[2384,5748],[14193,14221],[2960,2989],[2931,14223],[14209,14224],[14175,14195],[14225,14226],[2587,14227],[2761,14228],[14222,14229],[14220,14230],[3047,5396],[2152,14232],[14160,14233],[7739,7797],[7681,14207],[14204,14236],[2960,14237],[3457,3689],[4733,4936],[5748,14240],[14239,14241],[3892,14242],[2384,2587],[1891,14244],[14243,14245],[14238,14246],[14235,14247],[14234,14248],[5922,6531],[4066,5110],[14250,14251],[7252,14252],[2761,14253],[2989,14254],[14249,14255],[14175,14243],[14215,14257],[14204,14258],[7681,14223],[14235,14260],[4323,5367],[3457,14214],[14207,14263],[1891,2152],[14264,14265],[14262,14266],[3018,7623],[14183,14268],[14267,14269],[14160,14163],[14231,14271],[14197,14272],[14270,14273],[14240,14274],[4265,4294],[14182,14261],[14276,14277],[4352,5396],[14262,14279],[3457,14265],[14280,14281],[3018,3047],[7826,14283],[14282,14284],[14278,14285],[2152,14212],[14240,14287],[5367,14288],[7165,7565],[7710,7739],[14290,14291],[2960,14292],[6730,14293],[6531,14294],[2761,2931],[6759,14175],[6121,14173],[7826,14275],[1891,14276],[2761,14224],[14283,14301],[14189,14302],[4066,4323],[4236,14304],[14303,14305],[14300,14306],[4352,14307],[6092,14175],[14296,14309],[7165,7739],[3689,6208],[6150,6759],[2587,14221],[14199,14284],[14314,14315],[14313,14316],[14202,14317],[14277,14318],[2761,14269],[14228,14320],[14222,14321],[14168,14195],[14175,14323],[7165,7194],[14256,14325],[6179,14312],[4733,14327],[14191,14328],[14262,14264],[14279,14330],[14199,14314],[14163,14197],[2152,14246],[3018,14334],[7826,14280],[14335,14336],[14199,14337],[14310,14332],[5922,14339],[1891,14340],[2989,14249],[2931,7652],[14342,14343],[3047,14199],[14337,14345],[5280,14346],[2931,5280],[4236,5280],[6092,6701],[14179,14350],[14349,14351],[14344,14352],[7797,14257],[4236,14343],[7623,14355],[7136,14176],[14218,14357],[7826,14358],[14283,14359],[14339,14360],[6817,14170],[1891,4352],[14233,14363],[2761,14225],[14264,14365],[14178,14366],[14364,14367],[14362,14368],[6179,14289],[5338,14370],[6788,14321],[5309,14372],[14371,14373],[4733,6179],[5309,5922],[14202,14376],[14293,14377],[14182,14235],[14199,14336],[14242,14380],[3892,14237],[14381,14382],[14379,14383],[7252,14325],[7223,14385],[14252,14386],[14384,14387],[7739,14290],[7623,14350],[5396,14289],[14361,14391],[14378,14392],[14222,14374],[5110,14240],[5367,14395],[5396,14205],[2152,14397],[4936,5367],[14398,14399],[14348,14400],[4294,5338],[2761,7223],[14250,14403],[14325,14404],[14251,14405],[14234,14245],[7652,14296],[7252,14408],[14407,14409],[14300,14305],[14253,14403],[14338,14412],[2152,14245],[14207,14365],[14414,14415],[14179,14390],[7652,14417],[14217,14243],[14410,14419],[2989,14238],[4323,14197],[14335,14422],[5367,14423],[7768,14424],[14421,14425],[7710,14426],[14406,14427],[2989,7768],[7797,14313],[14429,14430],[14162,14431],[5922,14361],[14432,14433],[2960,14298],[6730,14435],[7710,14436],[14346,14437],[7739,14438],[14296,14360],[14212,14440],[14282,14441],[14402,14429],[7594,14443],[7194,14213],[7797,14445],[14444,14446],[14442,14447],[14297,14448],[14259,14416],[4733,14418],[14171,14449],[14188,14331],[14213,14442],[5280,14201],[7710,14417],[14319,14398],[14218,14380],[14357,14458],[14215,14459],[14354,14460],[2761,14251],[14205,14386],[14462,14463],[5922,14464],[5338,14434],[14174,14454],[2384,14192],[14333,14411],[14277,14300],[14396,14457],[14173,14258],[14290,14472],[14202,14473],[14295,14467],[14219,14296],[5367,14476],[14290,14477],[14213,14300],[14272,14479],[14219,14346],[2931,14426],[14270,14365],[14375,14468],[3689,14484],[14483,14485],[7165,14193],[14184,14262],[14379,14421],[14346,14489],[2384,14193],[6208,14491],[14375,14492],[5280,14356],[7565,14494],[14191,14486],[14322,14469],[14212,14303],[14400,14498],[5367,14398],[14498,14500],[14493,14501],[14328,14487],[14385,14404],[14471,14504],[14350,14439],[14495,14506],[2989,14420],[14329,14442],[2384,6150],[14509,14510],[6092,14179],[14205,14286],[14494,14513],[14512,14514],[14349,14456],[14482,14516],[14162,14313],[14391,14466],[14453,14503],[6531,14323],[14401,14451],[14319,14522],[14312,14484],[14286,14524],[14423,14437],[14478,14526],[14402,14518],[7797,14528],[14508,14529],[3047,7194],[14447,14511],[3689,14368],[14291,14474],[14459,14534],[14396,14397],[2587,14324],[14499,14537],[4733,14492],[14533,14539],[6150,14504],[14177,14211],[14347,14350],[14430,14543],[14356,14444],[14544,14545],[14515,14524],[14431,14531],[14402,14548],[14341,14360],[14164,14550],[14165,14470],[14316,14552],[4294,14305],[14161,14215],[14203,14541],[14354,14555],[14542,14557],[14413,14549],[14190,14323],[14169,14560],[14553,14556],[14551,14554],[4236,14167],[14201,14564],[2587,3892],[14324,14566],[14286,14464],[4066,14562],[14159,14231],[14412,14438],[14443,14476],[14424,14518],[14409,14481],[14308,14567],[14331,14561],[14572,14573],[14292,14454],[2384,14435],[14311,14571],[14432,14563],[14384,14418],[14169,14267],[7594,14195],[14513,14584],[14172,14495],[14585,14586],[4352,14327],[14349,14582],[6121,14564],[14372,14583],[14197,14488],[14211,14258],[14592,14593],[14417,14552],[14318,14595],[14294,14550],[14590,14597],[14355,14596],[4294,14565],[6730,14389],[14461,14528],[7768,14602],[14307,14588],[14491,14604],[14266,14280],[14435,14601],[14226,14369],[14303,14606],[14288,14570],[14397,14610],[14329,14578],[14420,14607],[14302,14332],[14579,14612],[5396,14299],[14196,14614],[14170,14568],[14455,14536],[14521,14618],[14465,14525],[6321,6930],[4465,14622],[5509,14623],[7307,7597],[3716,3919],[4465,14626],[4436,14627],[4378,14628],[4093,14629],[6901,6930],[3919,4963],[2614,14632],[14631,14633],[6703,14634],[4378,5422],[14635,14636],[6558,6703],[7365,7655],[7910,14639],[7968,14640],[7568,7597],[7852,14642],[14641,14643],[7881,7939],[7336,14645],[7626,14646],[7138,7307],[14647,14648],[7997,14649],[14644,14650],[7278,14651],[14638,14652],[5949,6094],[6234,6263],[14654,14655],[14653,14656],[6843,6872],[14657,14658],[6292,6901],[6321,14660],[6930,14661],[5775,14662],[14659,14663],[6234,6843],[6872,14665],[6263,14666],[5422,5451],[4407,14668],[4378,14669],[7278,14643],[14648,14671],[14670,14672],[14667,14673],[5137,5282],[4093,4238],[14675,14676],[14654,14677],[7138,14678],[14638,14679],[7336,7626],[14680,14681],[3160,14641],[2411,5775],[14656,14684],[3073,3102],[2933,14686],[14672,14687],[14638,14658],[14688,14689],[2614,14690],[2788,14691],[14685,14692],[14683,14693],[3160,5509],[2179,14695],[14623,14696],[7910,7968],[7852,14670],[14667,14699],[3073,14700],[3484,3716],[4760,4963],[5775,14703],[14702,14704],[3919,14705],[2411,2614],[1918,14707],[14706,14708],[14701,14709],[14698,14710],[14697,14711],[5949,6558],[4093,5137],[14713,14714],[7365,14715],[2788,14716],[3102,14717],[14712,14718],[14638,14706],[14678,14720],[14667,14721],[7852,14686],[14698,14723],[4436,5480],[3484,14677],[14670,14726],[1918,2179],[14727,14728],[14725,14729],[3131,7626],[14646,14731],[14730,14732],[14623,14626],[14694,14734],[14660,14735],[14733,14736],[14703,14737],[4378,4407],[14645,14724],[14739,14740],[4465,5509],[14725,14742],[3484,14728],[14743,14744],[3131,3160],[7997,14746],[14745,14747],[14741,14748],[2179,14675],[14703,14750],[5480,14751],[7278,7568],[7881,7910],[14753,14754],[3073,14755],[6843,14756],[6558,14757],[2788,2933],[6872,14638],[6234,14636],[7997,14738],[1918,14739],[2788,14687],[14746,14764],[14652,14765],[4093,4436],[4238,14767],[14766,14768],[14763,14769],[4465,14770],[6094,14638],[14759,14772],[7278,7910],[3716,6321],[6263,6872],[2614,14684],[14662,14747],[14777,14778],[14776,14779],[14665,14780],[14740,14781],[2788,14732],[14691,14783],[14685,14784],[14631,14658],[14638,14786],[7278,7307],[14719,14788],[6292,14775],[4760,14790],[14654,14791],[14725,14727],[14742,14793],[14662,14777],[14626,14660],[2179,14709],[3131,14797],[7997,14743],[14798,14799],[14662,14800],[14773,14795],[5949,14802],[1918,14803],[3102,14712],[2933,7655],[14805,14806],[3160,14662],[14800,14808],[5282,14809],[2933,5282],[4238,5282],[6094,6703],[14642,14813],[14812,14814],[14807,14815],[7968,14720],[4238,14806],[7626,14818],[7138,14639],[14681,14820],[7997,14821],[14746,14822],[14802,14823],[6930,14633],[1918,4465],[14696,14826],[2788,14688],[14727,14828],[14641,14829],[14827,14830],[14825,14831],[6292,14752],[5451,14833],[6901,14784],[5422,14835],[14834,14836],[4760,6292],[5422,5949],[14665,14839],[14756,14840],[14645,14698],[14662,14799],[14705,14843],[3919,14700],[14844,14845],[14842,14846],[7365,14788],[7336,14848],[14715,14849],[14847,14850],[7910,14753],[7626,14813],[5509,14752],[14824,14854],[14841,14855],[14685,14837],[5137,14703],[5480,14858],[5509,14668],[2179,14860],[4963,5480],[14861,14862],[14811,14863],[4407,5451],[2788,7336],[14713,14866],[14788,14867],[14714,14868],[14697,14708],[7655,14759],[7365,14871],[14870,14872],[14763,14768],[14716,14866],[14801,14875],[2179,14708],[14670,14828],[14877,14878],[14642,14853],[7655,14880],[14680,14706],[14873,14882],[3102,14701],[4436,14660],[14798,14885],[5480,14886],[7939,14887],[14884,14888],[7881,14889],[14869,14890],[3102,7939],[7968,14776],[14892,14893],[14625,14894],[5949,14824],[14895,14896],[3073,14761],[6843,14898],[7881,14899],[14809,14900],[7910,14901],[14759,14823],[14675,14903],[14745,14904],[14865,14892],[7597,14906],[7307,14676],[7968,14908],[14907,14909],[14905,14910],[14760,14911],[14722,14879],[4760,14881],[14634,14912],[14651,14794],[14676,14905],[5282,14664],[7881,14880],[14782,14861],[14681,14843],[14820,14921],[14678,14922],[14817,14923],[2788,14714],[14668,14849],[14925,14926],[5949,14927],[5451,14897],[14637,14917],[2411,14655],[14796,14874],[14740,14763],[14859,14920],[14636,14721],[14753,14935],[14665,14936],[14758,14930],[14682,14759],[5480,14939],[14753,14940],[14676,14763],[14735,14942],[14682,14809],[2933,14889],[14733,14828],[14838,14931],[3716,14947],[14946,14948],[7278,14656],[14647,14725],[14842,14884],[14809,14952],[2411,14656],[6321,14954],[14838,14955],[5282,14819],[7568,14957],[14654,14949],[14785,14932],[14675,14766],[14863,14961],[5480,14861],[14961,14963],[14956,14964],[14791,14950],[14848,14867],[14934,14967],[14813,14902],[14958,14969],[3102,14883],[14792,14905],[2411,6263],[14972,14973],[6094,14642],[14668,14749],[14957,14976],[14975,14977],[14812,14919],[14945,14979],[14625,14776],[14854,14929],[14916,14966],[6558,14786],[14864,14914],[14782,14985],[14775,14947],[14749,14987],[14886,14900],[14941,14989],[14865,14981],[7968,14991],[14971,14992],[3160,7307],[14910,14974],[3716,14831],[14754,14937],[14922,14997],[14859,14860],[2614,14787],[14962,15000],[4760,14955],[14996,15002],[6263,14967],[14640,14674],[14810,14813],[14893,15006],[14819,14907],[15007,15008],[14978,14987],[14894,14994],[14865,15011],[14804,14823],[14627,15013],[14628,14933],[14779,15015],[4407,14768],[14624,14678],[14666,15004],[14817,15018],[15005,15020],[14876,15012],[14653,14786],[14632,15023],[15016,15019],[15014,15017],[4238,14630],[14664,15027],[2614,3919],[14787,15029],[14749,14927],[4093,15025],[14622,14694],[14875,14901],[14906,14939],[14887,14981],[14872,14944],[14771,15030],[14794,15024],[15035,15036],[14755,14917],[2411,14898],[14774,15034],[14895,15026],[14847,14881],[14632,14730],[7597,14658],[14976,15047],[14635,14958],[15048,15049],[4465,14790],[14812,15045],[6234,15027],[14835,15046],[14660,14951],[14674,14721],[15055,15056],[14880,15015],[14781,15058],[14757,15013],[15053,15060],[14818,15059],[4407,15028],[6843,14852],[14924,14991],[7939,15065],[14770,15051],[14954,15067],[14729,14743],[14898,15064],[14689,14832],[14766,15069],[14751,15033],[14860,15073],[14792,15041],[14883,15070],[14765,14795],[15042,15075],[5509,14762],[14659,15077],[14633,15031],[14918,14999],[14984,15081],[14928,14988],[6324,6933],[4468,15085],[5512,15086],[7310,7600],[3718,3921],[4468,15089],[4439,15090],[4381,15091],[4095,15092],[6904,6933],[3921,4965],[2616,15095],[15094,15096],[6705,15097],[4381,5425],[15098,15099],[6560,6705],[7368,7658],[7913,15102],[7971,15103],[7571,7600],[7855,15105],[15104,15106],[7884,7942],[7339,15108],[7629,15109],[7140,7310],[15110,15111],[8000,15112],[15107,15113],[7281,15114],[15101,15115],[5951,6096],[6237,6266],[15117,15118],[15116,15119],[6846,6875],[15120,15121],[6295,6904],[6324,15123],[6933,15124],[5777,15125],[15122,15126],[6237,6846],[6875,15128],[6266,15129],[5425,5454],[4410,15131],[4381,15132],[7281,15106],[15111,15134],[15133,15135],[15130,15136],[5139,5284],[4095,4240],[15138,15139],[15117,15140],[7140,15141],[15101,15142],[7339,7629],[15143,15144],[3163,15104],[2413,5777],[15119,15147],[3076,3105],[2935,15149],[15135,15150],[15101,15121],[15151,15152],[2616,15153],[2790,15154],[15148,15155],[15146,15156],[3163,5512],[2181,15158],[15086,15159],[7913,7971],[7855,15133],[15130,15162],[3076,15163],[3486,3718],[4762,4965],[5777,15166],[15165,15167],[3921,15168],[2413,2616],[1920,15170],[15169,15171],[15164,15172],[15161,15173],[15160,15174],[5951,6560],[4095,5139],[15176,15177],[7368,15178],[2790,15179],[3105,15180],[15175,15181],[15101,15169],[15141,15183],[15130,15184],[7855,15149],[15161,15186],[4439,5483],[3486,15140],[15133,15189],[1920,2181],[15190,15191],[15188,15192],[3134,7629],[15109,15194],[15193,15195],[15086,15089],[15157,15197],[15123,15198],[15196,15199],[15166,15200],[4381,4410],[15108,15187],[15202,15203],[4468,5512],[15188,15205],[3486,15191],[15206,15207],[3134,3163],[8000,15209],[15208,15210],[15204,15211],[2181,15138],[15166,15213],[5483,15214],[7281,7571],[7884,7913],[15216,15217],[3076,15218],[6846,15219],[6560,15220],[2790,2935],[6875,15101],[6237,15099],[8000,15201],[1920,15202],[2790,15150],[15209,15227],[15115,15228],[4095,4439],[4240,15230],[15229,15231],[15226,15232],[4468,15233],[6096,15101],[15222,15235],[7281,7913],[3718,6324],[6266,6875],[2616,15147],[15125,15210],[15240,15241],[15239,15242],[15128,15243],[15203,15244],[2790,15195],[15154,15246],[15148,15247],[15094,15121],[15101,15249],[7281,7310],[15182,15251],[6295,15238],[4762,15253],[15117,15254],[15188,15190],[15205,15256],[15125,15240],[15089,15123],[2181,15172],[3134,15260],[8000,15206],[15261,15262],[15125,15263],[15236,15258],[5951,15265],[1920,15266],[3105,15175],[2935,7658],[15268,15269],[3163,15125],[15263,15271],[5284,15272],[2935,5284],[4240,5284],[6096,6705],[15105,15276],[15275,15277],[15270,15278],[7971,15183],[4240,15269],[7629,15281],[7140,15102],[15144,15283],[8000,15284],[15209,15285],[15265,15286],[6933,15096],[1920,4468],[15159,15289],[2790,15151],[15190,15291],[15104,15292],[15290,15293],[15288,15294],[6295,15215],[5454,15296],[6904,15247],[5425,15298],[15297,15299],[4762,6295],[5425,5951],[15128,15302],[15219,15303],[15108,15161],[15125,15262],[15168,15306],[3921,15163],[15307,15308],[15305,15309],[7368,15251],[7339,15311],[15178,15312],[15310,15313],[7913,15216],[7629,15276],[5512,15215],[15287,15317],[15304,15318],[15148,15300],[5139,15166],[5483,15321],[5512,15131],[2181,15323],[4965,5483],[15324,15325],[15274,15326],[4410,5454],[2790,7339],[15176,15329],[15251,15330],[15177,15331],[15160,15171],[7658,15222],[7368,15334],[15333,15335],[15226,15231],[15179,15329],[15264,15338],[2181,15171],[15133,15291],[15340,15341],[15105,15316],[7658,15343],[15143,15169],[15336,15345],[3105,15164],[4439,15123],[15261,15348],[5483,15349],[7942,15350],[15347,15351],[7884,15352],[15332,15353],[3105,7942],[7971,15239],[15355,15356],[15088,15357],[5951,15287],[15358,15359],[3076,15224],[6846,15361],[7884,15362],[15272,15363],[7913,15364],[15222,15286],[15138,15366],[15208,15367],[15328,15355],[7600,15369],[7310,15139],[7971,15371],[15370,15372],[15368,15373],[15223,15374],[15185,15342],[4762,15344],[15097,15375],[15114,15257],[15139,15368],[5284,15127],[7884,15343],[15245,15324],[15144,15306],[15283,15384],[15141,15385],[15280,15386],[2790,15177],[15131,15312],[15388,15389],[5951,15390],[5454,15360],[15100,15380],[2413,15118],[15259,15337],[15203,15226],[15322,15383],[15099,15184],[15216,15398],[15128,15399],[15221,15393],[15145,15222],[5483,15402],[15216,15403],[15139,15226],[15198,15405],[15145,15272],[2935,15352],[15196,15291],[15301,15394],[3718,15410],[15409,15411],[7281,15119],[15110,15188],[15305,15347],[15272,15415],[2413,15119],[6324,15417],[15301,15418],[5284,15282],[7571,15420],[15117,15412],[15248,15395],[15138,15229],[15326,15424],[5483,15324],[15424,15426],[15419,15427],[15254,15413],[15311,15330],[15397,15430],[15276,15365],[15421,15432],[3105,15346],[15255,15368],[2413,6266],[15435,15436],[6096,15105],[15131,15212],[15420,15439],[15438,15440],[15275,15382],[15408,15442],[15088,15239],[15317,15392],[15379,15429],[6560,15249],[15327,15377],[15245,15448],[15238,15410],[15212,15450],[15349,15363],[15404,15452],[15328,15444],[7971,15454],[15434,15455],[3163,7310],[15373,15437],[3718,15294],[15217,15400],[15385,15460],[15322,15323],[2616,15250],[15425,15463],[4762,15418],[15459,15465],[6266,15430],[15103,15137],[15273,15276],[15356,15469],[15282,15370],[15470,15471],[15441,15450],[15357,15457],[15328,15474],[15267,15286],[15090,15476],[15091,15396],[15242,15478],[4410,15231],[15087,15141],[15129,15467],[15280,15481],[15468,15483],[15339,15475],[15116,15249],[15095,15486],[15479,15482],[15477,15480],[4240,15093],[15127,15490],[2616,3921],[15250,15492],[15212,15390],[4095,15488],[15085,15157],[15338,15364],[15369,15402],[15350,15444],[15335,15407],[15234,15493],[15257,15487],[15498,15499],[15218,15380],[2413,15361],[15237,15497],[15358,15489],[15310,15344],[15095,15193],[7600,15121],[15439,15510],[15098,15421],[15511,15512],[4468,15253],[15275,15508],[6237,15490],[15298,15509],[15123,15414],[15137,15184],[15518,15519],[15343,15478],[15244,15521],[15220,15476],[15516,15523],[15281,15522],[4410,15491],[6846,15315],[15387,15454],[7942,15528],[15233,15514],[15417,15530],[15192,15206],[15361,15527],[15152,15295],[15229,15532],[15214,15496],[15323,15536],[15255,15504],[15346,15533],[15228,15258],[15505,15538],[5512,15225],[15122,15540],[15096,15494],[15381,15462],[15447,15544],[15391,15451],[6408,7017],[4552,15548],[5596,15549],[7394,7684],[3745,3948],[4552,15552],[4523,15553],[4383,15554],[4122,15555],[6988,7017],[3948,4992],[2643,15558],[15557,15559],[6732,15560],[4383,5427],[15561,15562],[6587,6732],[7452,7742],[7916,15565],[8055,15566],[7573,7684],[7858,15568],[15567,15569],[7887,8026],[7423,15571],[7713,15572],[7167,7394],[15573,15574],[8084,15575],[15570,15576],[7283,15577],[15564,15578],[5978,6123],[6239,6350],[15580,15581],[15579,15582],[6848,6959],[15583,15584],[6379,6988],[6408,15586],[7017,15587],[5804,15588],[15585,15589],[6239,6848],[6959,15591],[6350,15592],[5427,5538],[4494,15594],[4383,15595],[7283,15569],[15574,15597],[15596,15598],[15593,15599],[5166,5311],[4122,4267],[15601,15602],[15580,15603],[7167,15604],[15564,15605],[7423,7713],[15606,15607],[3247,15567],[2440,5804],[15582,15610],[3078,3189],[2962,15612],[15598,15613],[15564,15584],[15614,15615],[2643,15616],[2817,15617],[15611,15618],[15609,15619],[3247,5596],[2208,15621],[15549,15622],[7916,8055],[7858,15596],[15593,15625],[3078,15626],[3513,3745],[4789,4992],[5804,15629],[15628,15630],[3948,15631],[2440,2643],[1947,15633],[15632,15634],[15627,15635],[15624,15636],[15623,15637],[5978,6587],[4122,5166],[15639,15640],[7452,15641],[2817,15642],[3189,15643],[15638,15644],[15564,15632],[15604,15646],[15593,15647],[7858,15612],[15624,15649],[4523,5567],[3513,15603],[15596,15652],[1947,2208],[15653,15654],[15651,15655],[3218,7713],[15572,15657],[15656,15658],[15549,15552],[15620,15660],[15586,15661],[15659,15662],[15629,15663],[4383,4494],[15571,15650],[15665,15666],[4552,5596],[15651,15668],[3513,15654],[15669,15670],[3218,3247],[8084,15672],[15671,15673],[15667,15674],[2208,15601],[15629,15676],[5567,15677],[7283,7573],[7887,7916],[15679,15680],[3078,15681],[6848,15682],[6587,15683],[2817,2962],[6959,15564],[6239,15562],[8084,15664],[1947,15665],[2817,15613],[15672,15690],[15578,15691],[4122,4523],[4267,15693],[15692,15694],[15689,15695],[4552,15696],[6123,15564],[15685,15698],[7283,7916],[3745,6408],[6350,6959],[2643,15610],[15588,15673],[15703,15704],[15702,15705],[15591,15706],[15666,15707],[2817,15658],[15617,15709],[15611,15710],[15557,15584],[15564,15712],[7283,7394],[15645,15714],[6379,15701],[4789,15716],[15580,15717],[15651,15653],[15668,15719],[15588,15703],[15552,15586],[2208,15635],[3218,15723],[8084,15669],[15724,15725],[15588,15726],[15699,15721],[5978,15728],[1947,15729],[3189,15638],[2962,7742],[15731,15732],[3247,15588],[15726,15734],[5311,15735],[2962,5311],[4267,5311],[6123,6732],[15568,15739],[15738,15740],[15733,15741],[8055,15646],[4267,15732],[7713,15744],[7167,15565],[15607,15746],[8084,15747],[15672,15748],[15728,15749],[7017,15559],[1947,4552],[15622,15752],[2817,15614],[15653,15754],[15567,15755],[15753,15756],[15751,15757],[6379,15678],[5538,15759],[6988,15710],[5427,15761],[15760,15762],[4789,6379],[5427,5978],[15591,15765],[15682,15766],[15571,15624],[15588,15725],[15631,15769],[3948,15626],[15770,15771],[15768,15772],[7452,15714],[7423,15774],[15641,15775],[15773,15776],[7916,15679],[7713,15739],[5596,15678],[15750,15780],[15767,15781],[15611,15763],[5166,15629],[5567,15784],[5596,15594],[2208,15786],[4992,5567],[15787,15788],[15737,15789],[4494,5538],[2817,7423],[15639,15792],[15714,15793],[15640,15794],[15623,15634],[7742,15685],[7452,15797],[15796,15798],[15689,15694],[15642,15792],[15727,15801],[2208,15634],[15596,15754],[15803,15804],[15568,15779],[7742,15806],[15606,15632],[15799,15808],[3189,15627],[4523,15586],[15724,15811],[5567,15812],[8026,15813],[15810,15814],[7887,15815],[15795,15816],[3189,8026],[8055,15702],[15818,15819],[15551,15820],[5978,15750],[15821,15822],[3078,15687],[6848,15824],[7887,15825],[15735,15826],[7916,15827],[15685,15749],[15601,15829],[15671,15830],[15791,15818],[7684,15832],[7394,15602],[8055,15834],[15833,15835],[15831,15836],[15686,15837],[15648,15805],[4789,15807],[15560,15838],[15577,15720],[15602,15831],[5311,15590],[7887,15806],[15708,15787],[15607,15769],[15746,15847],[15604,15848],[15743,15849],[2817,15640],[15594,15775],[15851,15852],[5978,15853],[5538,15823],[15563,15843],[2440,15581],[15722,15800],[15666,15689],[15785,15846],[15562,15647],[15679,15861],[15591,15862],[15684,15856],[15608,15685],[5567,15865],[15679,15866],[15602,15689],[15661,15868],[15608,15735],[2962,15815],[15659,15754],[15764,15857],[3745,15873],[15872,15874],[7283,15582],[15573,15651],[15768,15810],[15735,15878],[2440,15582],[6408,15880],[15764,15881],[5311,15745],[7573,15883],[15580,15875],[15711,15858],[15601,15692],[15789,15887],[5567,15787],[15887,15889],[15882,15890],[15717,15876],[15774,15793],[15860,15893],[15739,15828],[15884,15895],[3189,15809],[15718,15831],[2440,6350],[15898,15899],[6123,15568],[15594,15675],[15883,15902],[15901,15903],[15738,15845],[15871,15905],[15551,15702],[15780,15855],[15842,15892],[6587,15712],[15790,15840],[15708,15911],[15701,15873],[15675,15913],[15812,15826],[15867,15915],[15791,15907],[8055,15917],[15897,15918],[3247,7394],[15836,15900],[3745,15757],[15680,15863],[15848,15923],[15785,15786],[2643,15713],[15888,15926],[4789,15881],[15922,15928],[6350,15893],[15566,15600],[15736,15739],[15819,15932],[15745,15833],[15933,15934],[15904,15913],[15820,15920],[15791,15937],[15730,15749],[15553,15939],[15554,15859],[15705,15941],[4494,15694],[15550,15604],[15592,15930],[15743,15944],[15931,15946],[15802,15938],[15579,15712],[15558,15949],[15942,15945],[15940,15943],[4267,15556],[15590,15953],[2643,3948],[15713,15955],[15675,15853],[4122,15951],[15548,15620],[15801,15827],[15832,15865],[15813,15907],[15798,15870],[15697,15956],[15720,15950],[15961,15962],[15681,15843],[2440,15824],[15700,15960],[15821,15952],[15773,15807],[15558,15656],[7684,15584],[15902,15973],[15561,15884],[15974,15975],[4552,15716],[15738,15971],[6239,15953],[15761,15972],[15586,15877],[15600,15647],[15981,15982],[15806,15941],[15707,15984],[15683,15939],[15979,15986],[15744,15985],[4494,15954],[6848,15778],[15850,15917],[8026,15991],[15696,15977],[15880,15993],[15655,15669],[15824,15990],[15615,15758],[15692,15995],[15677,15959],[15786,15999],[15718,15967],[15809,15996],[15691,15721],[15968,16001],[5596,15688],[15585,16003],[15559,15957],[15844,15925],[15910,16007],[15854,15914],[6411,7020],[4555,16011],[5599,16012],[7397,7687],[3747,3950],[4555,16015],[4526,16016],[4385,16017],[4124,16018],[6991,7020],[3950,4994],[2645,16021],[16020,16022],[6734,16023],[4385,5429],[16024,16025],[6589,6734],[7455,7745],[7919,16028],[8058,16029],[7575,7687],[7861,16031],[16030,16032],[7890,8029],[7426,16034],[7716,16035],[7169,7397],[16036,16037],[8087,16038],[16033,16039],[7285,16040],[16027,16041],[5980,6125],[6241,6353],[16043,16044],[16042,16045],[6850,6962],[16046,16047],[6382,6991],[6411,16049],[7020,16050],[5806,16051],[16048,16052],[6241,6850],[6962,16054],[6353,16055],[5429,5541],[4497,16057],[4385,16058],[7285,16032],[16037,16060],[16059,16061],[16056,16062],[5168,5313],[4124,4269],[16064,16065],[16043,16066],[7169,16067],[16027,16068],[7426,7716],[16069,16070],[3250,16030],[2442,5806],[16045,16073],[3080,3192],[2964,16075],[16061,16076],[16027,16047],[16077,16078],[2645,16079],[2819,16080],[16074,16081],[16072,16082],[3250,5599],[2210,16084],[16012,16085],[7919,8058],[7861,16059],[16056,16088],[3080,16089],[3515,3747],[4791,4994],[5806,16092],[16091,16093],[3950,16094],[2442,2645],[1949,16096],[16095,16097],[16090,16098],[16087,16099],[16086,16100],[5980,6589],[4124,5168],[16102,16103],[7455,16104],[2819,16105],[3192,16106],[16101,16107],[16027,16095],[16067,16109],[16056,16110],[7861,16075],[16087,16112],[4526,5570],[3515,16066],[16059,16115],[1949,2210],[16116,16117],[16114,16118],[3221,7716],[16035,16120],[16119,16121],[16012,16015],[16083,16123],[16049,16124],[16122,16125],[16092,16126],[4385,4497],[16034,16113],[16128,16129],[4555,5599],[16114,16131],[3515,16117],[16132,16133],[3221,3250],[8087,16135],[16134,16136],[16130,16137],[2210,16064],[16092,16139],[5570,16140],[7285,7575],[7890,7919],[16142,16143],[3080,16144],[6850,16145],[6589,16146],[2819,2964],[6962,16027],[6241,16025],[8087,16127],[1949,16128],[2819,16076],[16135,16153],[16041,16154],[4124,4526],[4269,16156],[16155,16157],[16152,16158],[4555,16159],[6125,16027],[16148,16161],[7285,7919],[3747,6411],[6353,6962],[2645,16073],[16051,16136],[16166,16167],[16165,16168],[16054,16169],[16129,16170],[2819,16121],[16080,16172],[16074,16173],[16020,16047],[16027,16175],[7285,7397],[16108,16177],[6382,16164],[4791,16179],[16043,16180],[16114,16116],[16131,16182],[16051,16166],[16015,16049],[2210,16098],[3221,16186],[8087,16132],[16187,16188],[16051,16189],[16162,16184],[5980,16191],[1949,16192],[3192,16101],[2964,7745],[16194,16195],[3250,16051],[16189,16197],[5313,16198],[2964,5313],[4269,5313],[6125,6734],[16031,16202],[16201,16203],[16196,16204],[8058,16109],[4269,16195],[7716,16207],[7169,16028],[16070,16209],[8087,16210],[16135,16211],[16191,16212],[7020,16022],[1949,4555],[16085,16215],[2819,16077],[16116,16217],[16030,16218],[16216,16219],[16214,16220],[6382,16141],[5541,16222],[6991,16173],[5429,16224],[16223,16225],[4791,6382],[5429,5980],[16054,16228],[16145,16229],[16034,16087],[16051,16188],[16094,16232],[3950,16089],[16233,16234],[16231,16235],[7455,16177],[7426,16237],[16104,16238],[16236,16239],[7919,16142],[7716,16202],[5599,16141],[16213,16243],[16230,16244],[16074,16226],[5168,16092],[5570,16247],[5599,16057],[2210,16249],[4994,5570],[16250,16251],[16200,16252],[4497,5541],[2819,7426],[16102,16255],[16177,16256],[16103,16257],[16086,16097],[7745,16148],[7455,16260],[16259,16261],[16152,16157],[16105,16255],[16190,16264],[2210,16097],[16059,16217],[16266,16267],[16031,16242],[7745,16269],[16069,16095],[16262,16271],[3192,16090],[4526,16049],[16187,16274],[5570,16275],[8029,16276],[16273,16277],[7890,16278],[16258,16279],[3192,8029],[8058,16165],[16281,16282],[16014,16283],[5980,16213],[16284,16285],[3080,16150],[6850,16287],[7890,16288],[16198,16289],[7919,16290],[16148,16212],[16064,16292],[16134,16293],[16254,16281],[7687,16295],[7397,16065],[8058,16297],[16296,16298],[16294,16299],[16149,16300],[16111,16268],[4791,16270],[16023,16301],[16040,16183],[16065,16294],[5313,16053],[7890,16269],[16171,16250],[16070,16232],[16209,16310],[16067,16311],[16206,16312],[2819,16103],[16057,16238],[16314,16315],[5980,16316],[5541,16286],[16026,16306],[2442,16044],[16185,16263],[16129,16152],[16248,16309],[16025,16110],[16142,16324],[16054,16325],[16147,16319],[16071,16148],[5570,16328],[16142,16329],[16065,16152],[16124,16331],[16071,16198],[2964,16278],[16122,16217],[16227,16320],[3747,16336],[16335,16337],[7285,16045],[16036,16114],[16231,16273],[16198,16341],[2442,16045],[6411,16343],[16227,16344],[5313,16208],[7575,16346],[16043,16338],[16174,16321],[16064,16155],[16252,16350],[5570,16250],[16350,16352],[16345,16353],[16180,16339],[16237,16256],[16323,16356],[16202,16291],[16347,16358],[3192,16272],[16181,16294],[2442,6353],[16361,16362],[6125,16031],[16057,16138],[16346,16365],[16364,16366],[16201,16308],[16334,16368],[16014,16165],[16243,16318],[16305,16355],[6589,16175],[16253,16303],[16171,16374],[16164,16336],[16138,16376],[16275,16289],[16330,16378],[16254,16370],[8058,16380],[16360,16381],[3250,7397],[16299,16363],[3747,16220],[16143,16326],[16311,16386],[16248,16249],[2645,16176],[16351,16389],[4791,16344],[16385,16391],[6353,16356],[16029,16063],[16199,16202],[16282,16395],[16208,16296],[16396,16397],[16367,16376],[16283,16383],[16254,16400],[16193,16212],[16016,16402],[16017,16322],[16168,16404],[4497,16157],[16013,16067],[16055,16393],[16206,16407],[16394,16409],[16265,16401],[16042,16175],[16021,16412],[16405,16408],[16403,16406],[4269,16019],[16053,16416],[2645,3950],[16176,16418],[16138,16316],[4124,16414],[16011,16083],[16264,16290],[16295,16328],[16276,16370],[16261,16333],[16160,16419],[16183,16413],[16424,16425],[16144,16306],[2442,16287],[16163,16423],[16284,16415],[16236,16270],[16021,16119],[7687,16047],[16365,16436],[16024,16347],[16437,16438],[4555,16179],[16201,16434],[6241,16416],[16224,16435],[16049,16340],[16063,16110],[16444,16445],[16269,16404],[16170,16447],[16146,16402],[16442,16449],[16207,16448],[4497,16417],[6850,16241],[16313,16380],[8029,16454],[16159,16440],[16343,16456],[16118,16132],[16287,16453],[16078,16221],[16155,16458],[16140,16422],[16249,16462],[16181,16430],[16272,16459],[16154,16184],[16431,16464],[5599,16151],[16048,16466],[16022,16420],[16307,16388],[16373,16470],[16317,16377],[6466,7075],[4610,16474],[5654,16475],[7399,7689],[3774,3977],[4610,16478],[4581,16479],[4412,16480],[4151,16481],[7046,7075],[3977,5021],[2672,16484],[16483,16485],[6761,16486],[4412,5456],[16487,16488],[6616,6761],[7510,7800],[7974,16491],[8061,16492],[7602,7689],[7863,16494],[16493,16495],[7945,8032],[7481,16497],[7771,16498],[7196,7399],[16499,16500],[8113,16501],[16496,16502],[7312,16503],[16490,16504],[6007,6152],[6268,6355],[16506,16507],[16505,16508],[6877,6964],[16509,16510],[6437,7046],[6466,16512],[7075,16513],[5833,16514],[16511,16515],[6268,6877],[6964,16517],[6355,16518],[5456,5543],[4499,16520],[4412,16521],[7312,16495],[16500,16523],[16522,16524],[16519,16525],[5195,5340],[4151,4296],[16527,16528],[16506,16529],[7196,16530],[16490,16531],[7481,7771],[16532,16533],[3305,16493],[2469,5833],[16508,16536],[3107,3194],[2991,16538],[16524,16539],[16490,16510],[16540,16541],[2672,16542],[2846,16543],[16537,16544],[16535,16545],[3305,5654],[2237,16547],[16475,16548],[7974,8061],[7863,16522],[16519,16551],[3107,16552],[3542,3774],[4818,5021],[5833,16555],[16554,16556],[3977,16557],[2469,2672],[1976,16559],[16558,16560],[16553,16561],[16550,16562],[16549,16563],[6007,6616],[4151,5195],[16565,16566],[7510,16567],[2846,16568],[3194,16569],[16564,16570],[16490,16558],[16530,16572],[16519,16573],[7863,16538],[16550,16575],[4581,5625],[3542,16529],[16522,16578],[1976,2237],[16579,16580],[16577,16581],[3276,7771],[16498,16583],[16582,16584],[16475,16478],[16546,16586],[16512,16587],[16585,16588],[16555,16589],[4412,4499],[16497,16576],[16591,16592],[4610,5654],[16577,16594],[3542,16580],[16595,16596],[3276,3305],[8113,16598],[16597,16599],[16593,16600],[2237,16527],[16555,16602],[5625,16603],[7312,7602],[7945,7974],[16605,16606],[3107,16607],[6877,16608],[6616,16609],[2846,2991],[6964,16490],[6268,16488],[8113,16590],[1976,16591],[2846,16539],[16598,16616],[16504,16617],[4151,4581],[4296,16619],[16618,16620],[16615,16621],[4610,16622],[6152,16490],[16611,16624],[7312,7974],[3774,6466],[6355,6964],[2672,16536],[16514,16599],[16629,16630],[16628,16631],[16517,16632],[16592,16633],[2846,16584],[16543,16635],[16537,16636],[16483,16510],[16490,16638],[7312,7399],[16571,16640],[6437,16627],[4818,16642],[16506,16643],[16577,16579],[16594,16645],[16514,16629],[16478,16512],[2237,16561],[3276,16649],[8113,16595],[16650,16651],[16514,16652],[16625,16647],[6007,16654],[1976,16655],[3194,16564],[2991,7800],[16657,16658],[3305,16514],[16652,16660],[5340,16661],[2991,5340],[4296,5340],[6152,6761],[16494,16665],[16664,16666],[16659,16667],[8061,16572],[4296,16658],[7771,16670],[7196,16491],[16533,16672],[8113,16673],[16598,16674],[16654,16675],[7075,16485],[1976,4610],[16548,16678],[2846,16540],[16579,16680],[16493,16681],[16679,16682],[16677,16683],[6437,16604],[5543,16685],[7046,16636],[5456,16687],[16686,16688],[4818,6437],[5456,6007],[16517,16691],[16608,16692],[16497,16550],[16514,16651],[16557,16695],[3977,16552],[16696,16697],[16694,16698],[7510,16640],[7481,16700],[16567,16701],[16699,16702],[7974,16605],[7771,16665],[5654,16604],[16676,16706],[16693,16707],[16537,16689],[5195,16555],[5625,16710],[5654,16520],[2237,16712],[5021,5625],[16713,16714],[16663,16715],[4499,5543],[2846,7481],[16565,16718],[16640,16719],[16566,16720],[16549,16560],[7800,16611],[7510,16723],[16722,16724],[16615,16620],[16568,16718],[16653,16727],[2237,16560],[16522,16680],[16729,16730],[16494,16705],[7800,16732],[16532,16558],[16725,16734],[3194,16553],[4581,16512],[16650,16737],[5625,16738],[8032,16739],[16736,16740],[7945,16741],[16721,16742],[3194,8032],[8061,16628],[16744,16745],[16477,16746],[6007,16676],[16747,16748],[3107,16613],[6877,16750],[7945,16751],[16661,16752],[7974,16753],[16611,16675],[16527,16755],[16597,16756],[16717,16744],[7689,16758],[7399,16528],[8061,16760],[16759,16761],[16757,16762],[16612,16763],[16574,16731],[4818,16733],[16486,16764],[16503,16646],[16528,16757],[5340,16516],[7945,16732],[16634,16713],[16533,16695],[16672,16773],[16530,16774],[16669,16775],[2846,16566],[16520,16701],[16777,16778],[6007,16779],[5543,16749],[16489,16769],[2469,16507],[16648,16726],[16592,16615],[16711,16772],[16488,16573],[16605,16787],[16517,16788],[16610,16782],[16534,16611],[5625,16791],[16605,16792],[16528,16615],[16587,16794],[16534,16661],[2991,16741],[16585,16680],[16690,16783],[3774,16799],[16798,16800],[7312,16508],[16499,16577],[16694,16736],[16661,16804],[2469,16508],[6466,16806],[16690,16807],[5340,16671],[7602,16809],[16506,16801],[16637,16784],[16527,16618],[16715,16813],[5625,16713],[16813,16815],[16808,16816],[16643,16802],[16700,16719],[16786,16819],[16665,16754],[16810,16821],[3194,16735],[16644,16757],[2469,6355],[16824,16825],[6152,16494],[16520,16601],[16809,16828],[16827,16829],[16664,16771],[16797,16831],[16477,16628],[16706,16781],[16768,16818],[6616,16638],[16716,16766],[16634,16837],[16627,16799],[16601,16839],[16738,16752],[16793,16841],[16717,16833],[8061,16843],[16823,16844],[3305,7399],[16762,16826],[3774,16683],[16606,16789],[16774,16849],[16711,16712],[2672,16639],[16814,16852],[4818,16807],[16848,16854],[6355,16819],[16492,16526],[16662,16665],[16745,16858],[16671,16759],[16859,16860],[16830,16839],[16746,16846],[16717,16863],[16656,16675],[16479,16865],[16480,16785],[16631,16867],[4499,16620],[16476,16530],[16518,16856],[16669,16870],[16857,16872],[16728,16864],[16505,16638],[16484,16875],[16868,16871],[16866,16869],[4296,16482],[16516,16879],[2672,3977],[16639,16881],[16601,16779],[4151,16877],[16474,16546],[16727,16753],[16758,16791],[16739,16833],[16724,16796],[16623,16882],[16646,16876],[16887,16888],[16607,16769],[2469,16750],[16626,16886],[16747,16878],[16699,16733],[16484,16582],[7689,16510],[16828,16899],[16487,16810],[16900,16901],[4610,16642],[16664,16897],[6268,16879],[16687,16898],[16512,16803],[16526,16573],[16907,16908],[16732,16867],[16633,16910],[16609,16865],[16905,16912],[16670,16911],[4499,16880],[6877,16704],[16776,16843],[8032,16917],[16622,16903],[16806,16919],[16581,16595],[16750,16916],[16541,16684],[16618,16921],[16603,16885],[16712,16925],[16644,16893],[16735,16922],[16617,16647],[16894,16927],[5654,16614],[16511,16929],[16485,16883],[16770,16851],[16836,16933],[16780,16840],[6469,7078],[4613,16937],[5657,16938],[7401,7691],[3776,3979],[4613,16941],[4584,16942],[4414,16943],[4153,16944],[7049,7078],[3979,5023],[2674,16947],[16946,16948],[6763,16949],[4414,5458],[16950,16951],[6618,6763],[7513,7803],[7977,16954],[8064,16955],[7604,7691],[7865,16957],[16956,16958],[7948,8035],[7484,16960],[7774,16961],[7198,7401],[16962,16963],[8116,16964],[16959,16965],[7314,16966],[16953,16967],[6009,6154],[6270,6357],[16969,16970],[16968,16971],[6879,6966],[16972,16973],[6440,7049],[6469,16975],[7078,16976],[5835,16977],[16974,16978],[6270,6879],[6966,16980],[6357,16981],[5458,5545],[4501,16983],[4414,16984],[7314,16958],[16963,16986],[16985,16987],[16982,16988],[5197,5342],[4153,4298],[16990,16991],[16969,16992],[7198,16993],[16953,16994],[7484,7774],[16995,16996],[3308,16956],[2471,5835],[16971,16999],[3109,3196],[2993,17001],[16987,17002],[16953,16973],[17003,17004],[2674,17005],[2848,17006],[17000,17007],[16998,17008],[3308,5657],[2239,17010],[16938,17011],[7977,8064],[7865,16985],[16982,17014],[3109,17015],[3544,3776],[4820,5023],[5835,17018],[17017,17019],[3979,17020],[2471,2674],[1978,17022],[17021,17023],[17016,17024],[17013,17025],[17012,17026],[6009,6618],[4153,5197],[17028,17029],[7513,17030],[2848,17031],[3196,17032],[17027,17033],[16953,17021],[16993,17035],[16982,17036],[7865,17001],[17013,17038],[4584,5628],[3544,16992],[16985,17041],[1978,2239],[17042,17043],[17040,17044],[3279,7774],[16961,17046],[17045,17047],[16938,16941],[17009,17049],[16975,17050],[17048,17051],[17018,17052],[4414,4501],[16960,17039],[17054,17055],[4613,5657],[17040,17057],[3544,17043],[17058,17059],[3279,3308],[8116,17061],[17060,17062],[17056,17063],[2239,16990],[17018,17065],[5628,17066],[7314,7604],[7948,7977],[17068,17069],[3109,17070],[6879,17071],[6618,17072],[2848,2993],[6966,16953],[6270,16951],[8116,17053],[1978,17054],[2848,17002],[17061,17079],[16967,17080],[4153,4584],[4298,17082],[17081,17083],[17078,17084],[4613,17085],[6154,16953],[17074,17087],[7314,7977],[3776,6469],[6357,6966],[2674,16999],[16977,17062],[17092,17093],[17091,17094],[16980,17095],[17055,17096],[2848,17047],[17006,17098],[17000,17099],[16946,16973],[16953,17101],[7314,7401],[17034,17103],[6440,17090],[4820,17105],[16969,17106],[17040,17042],[17057,17108],[16977,17092],[16941,16975],[2239,17024],[3279,17112],[8116,17058],[17113,17114],[16977,17115],[17088,17110],[6009,17117],[1978,17118],[3196,17027],[2993,7803],[17120,17121],[3308,16977],[17115,17123],[5342,17124],[2993,5342],[4298,5342],[6154,6763],[16957,17128],[17127,17129],[17122,17130],[8064,17035],[4298,17121],[7774,17133],[7198,16954],[16996,17135],[8116,17136],[17061,17137],[17117,17138],[7078,16948],[1978,4613],[17011,17141],[2848,17003],[17042,17143],[16956,17144],[17142,17145],[17140,17146],[6440,17067],[5545,17148],[7049,17099],[5458,17150],[17149,17151],[4820,6440],[5458,6009],[16980,17154],[17071,17155],[16960,17013],[16977,17114],[17020,17158],[3979,17015],[17159,17160],[17157,17161],[7513,17103],[7484,17163],[17030,17164],[17162,17165],[7977,17068],[7774,17128],[5657,17067],[17139,17169],[17156,17170],[17000,17152],[5197,17018],[5628,17173],[5657,16983],[2239,17175],[5023,5628],[17176,17177],[17126,17178],[4501,5545],[2848,7484],[17028,17181],[17103,17182],[17029,17183],[17012,17023],[7803,17074],[7513,17186],[17185,17187],[17078,17083],[17031,17181],[17116,17190],[2239,17023],[16985,17143],[17192,17193],[16957,17168],[7803,17195],[16995,17021],[17188,17197],[3196,17016],[4584,16975],[17113,17200],[5628,17201],[8035,17202],[17199,17203],[7948,17204],[17184,17205],[3196,8035],[8064,17091],[17207,17208],[16940,17209],[6009,17139],[17210,17211],[3109,17076],[6879,17213],[7948,17214],[17124,17215],[7977,17216],[17074,17138],[16990,17218],[17060,17219],[17180,17207],[7691,17221],[7401,16991],[8064,17223],[17222,17224],[17220,17225],[17075,17226],[17037,17194],[4820,17196],[16949,17227],[16966,17109],[16991,17220],[5342,16979],[7948,17195],[17097,17176],[16996,17158],[17135,17236],[16993,17237],[17132,17238],[2848,17029],[16983,17164],[17240,17241],[6009,17242],[5545,17212],[16952,17232],[2471,16970],[17111,17189],[17055,17078],[17174,17235],[16951,17036],[17068,17250],[16980,17251],[17073,17245],[16997,17074],[5628,17254],[17068,17255],[16991,17078],[17050,17257],[16997,17124],[2993,17204],[17048,17143],[17153,17246],[3776,17262],[17261,17263],[7314,16971],[16962,17040],[17157,17199],[17124,17267],[2471,16971],[6469,17269],[17153,17270],[5342,17134],[7604,17272],[16969,17264],[17100,17247],[16990,17081],[17178,17276],[5628,17176],[17276,17278],[17271,17279],[17106,17265],[17163,17182],[17249,17282],[17128,17217],[17273,17284],[3196,17198],[17107,17220],[2471,6357],[17287,17288],[6154,16957],[16983,17064],[17272,17291],[17290,17292],[17127,17234],[17260,17294],[16940,17091],[17169,17244],[17231,17281],[6618,17101],[17179,17229],[17097,17300],[17090,17262],[17064,17302],[17201,17215],[17256,17304],[17180,17296],[8064,17306],[17286,17307],[3308,7401],[17225,17289],[3776,17146],[17069,17252],[17237,17312],[17174,17175],[2674,17102],[17277,17315],[4820,17270],[17311,17317],[6357,17282],[16955,16989],[17125,17128],[17208,17321],[17134,17222],[17322,17323],[17293,17302],[17209,17309],[17180,17326],[17119,17138],[16942,17328],[16943,17248],[17094,17330],[4501,17083],[16939,16993],[16981,17319],[17132,17333],[17320,17335],[17191,17327],[16968,17101],[16947,17338],[17331,17334],[17329,17332],[4298,16945],[16979,17342],[2674,3979],[17102,17344],[17064,17242],[4153,17340],[16937,17009],[17190,17216],[17221,17254],[17202,17296],[17187,17259],[17086,17345],[17109,17339],[17350,17351],[17070,17232],[2471,17213],[17089,17349],[17210,17341],[17162,17196],[16947,17045],[7691,16973],[17291,17362],[16950,17273],[17363,17364],[4613,17105],[17127,17360],[6270,17342],[17150,17361],[16975,17266],[16989,17036],[17370,17371],[17195,17330],[17096,17373],[17072,17328],[17368,17375],[17133,17374],[4501,17343],[6879,17167],[17239,17306],[8035,17380],[17085,17366],[17269,17382],[17044,17058],[17213,17379],[17004,17147],[17081,17384],[17066,17348],[17175,17388],[17107,17356],[17198,17385],[17080,17110],[17357,17390],[5657,17077],[16974,17392],[16948,17346],[17233,17314],[17299,17396],[17243,17303],[6495,7104],[4639,17400],[5683,17401],[7428,7718],[3803,4006],[4639,17404],[4586,17405],[4441,17406],[4180,17407],[7051,7104],[4006,5050],[2701,17410],[17409,17411],[6790,17412],[4441,5485],[17413,17414],[6645,6790],[7539,7829],[8003,17417],[8090,17418],[7631,7718],[7892,17420],[17419,17421],[7950,8037],[7486,17423],[7776,17424],[7225,7428],[17425,17426],[8119,17427],[17422,17428],[7341,17429],[17416,17430],[6036,6181],[6297,6384],[17432,17433],[17431,17434],[6906,6993],[17435,17436],[6442,7051],[6495,17438],[7104,17439],[5862,17440],[17437,17441],[6297,6906],[6993,17443],[6384,17444],[5485,5572],[4528,17446],[4441,17447],[7341,17421],[17426,17449],[17448,17450],[17445,17451],[5224,5369],[4180,4325],[17453,17454],[17432,17455],[7225,17456],[17416,17457],[7486,7776],[17458,17459],[3334,17419],[2498,5862],[17434,17462],[3136,3223],[3020,17464],[17450,17465],[17416,17436],[17466,17467],[2701,17468],[2875,17469],[17463,17470],[17461,17471],[3334,5683],[2266,17473],[17401,17474],[8003,8090],[7892,17448],[17445,17477],[3136,17478],[3571,3803],[4847,5050],[5862,17481],[17480,17482],[4006,17483],[2498,2701],[2005,17485],[17484,17486],[17479,17487],[17476,17488],[17475,17489],[6036,6645],[4180,5224],[17491,17492],[7539,17493],[2875,17494],[3223,17495],[17490,17496],[17416,17484],[17456,17498],[17445,17499],[7892,17464],[17476,17501],[4586,5630],[3571,17455],[17448,17504],[2005,2266],[17505,17506],[17503,17507],[3281,7776],[17424,17509],[17508,17510],[17401,17404],[17472,17512],[17438,17513],[17511,17514],[17481,17515],[4441,4528],[17423,17502],[17517,17518],[4639,5683],[17503,17520],[3571,17506],[17521,17522],[3281,3334],[8119,17524],[17523,17525],[17519,17526],[2266,17453],[17481,17528],[5630,17529],[7341,7631],[7950,8003],[17531,17532],[3136,17533],[6906,17534],[6645,17535],[2875,3020],[6993,17416],[6297,17414],[8119,17516],[2005,17517],[2875,17465],[17524,17542],[17430,17543],[4180,4586],[4325,17545],[17544,17546],[17541,17547],[4639,17548],[6181,17416],[17537,17550],[7341,8003],[3803,6495],[6384,6993],[2701,17462],[17440,17525],[17555,17556],[17554,17557],[17443,17558],[17518,17559],[2875,17510],[17469,17561],[17463,17562],[17409,17436],[17416,17564],[7341,7428],[17497,17566],[6442,17553],[4847,17568],[17432,17569],[17503,17505],[17520,17571],[17440,17555],[17404,17438],[2266,17487],[3281,17575],[8119,17521],[17576,17577],[17440,17578],[17551,17573],[6036,17580],[2005,17581],[3223,17490],[3020,7829],[17583,17584],[3334,17440],[17578,17586],[5369,17587],[3020,5369],[4325,5369],[6181,6790],[17420,17591],[17590,17592],[17585,17593],[8090,17498],[4325,17584],[7776,17596],[7225,17417],[17459,17598],[8119,17599],[17524,17600],[17580,17601],[7104,17411],[2005,4639],[17474,17604],[2875,17466],[17505,17606],[17419,17607],[17605,17608],[17603,17609],[6442,17530],[5572,17611],[7051,17562],[5485,17613],[17612,17614],[4847,6442],[5485,6036],[17443,17617],[17534,17618],[17423,17476],[17440,17577],[17483,17621],[4006,17478],[17622,17623],[17620,17624],[7539,17566],[7486,17626],[17493,17627],[17625,17628],[8003,17531],[7776,17591],[5683,17530],[17602,17632],[17619,17633],[17463,17615],[5224,17481],[5630,17636],[5683,17446],[2266,17638],[5050,5630],[17639,17640],[17589,17641],[4528,5572],[2875,7486],[17491,17644],[17566,17645],[17492,17646],[17475,17486],[7829,17537],[7539,17649],[17648,17650],[17541,17546],[17494,17644],[17579,17653],[2266,17486],[17448,17606],[17655,17656],[17420,17631],[7829,17658],[17458,17484],[17651,17660],[3223,17479],[4586,17438],[17576,17663],[5630,17664],[8037,17665],[17662,17666],[7950,17667],[17647,17668],[3223,8037],[8090,17554],[17670,17671],[17403,17672],[6036,17602],[17673,17674],[3136,17539],[6906,17676],[7950,17677],[17587,17678],[8003,17679],[17537,17601],[17453,17681],[17523,17682],[17643,17670],[7718,17684],[7428,17454],[8090,17686],[17685,17687],[17683,17688],[17538,17689],[17500,17657],[4847,17659],[17412,17690],[17429,17572],[17454,17683],[5369,17442],[7950,17658],[17560,17639],[17459,17621],[17598,17699],[17456,17700],[17595,17701],[2875,17492],[17446,17627],[17703,17704],[6036,17705],[5572,17675],[17415,17695],[2498,17433],[17574,17652],[17518,17541],[17637,17698],[17414,17499],[17531,17713],[17443,17714],[17536,17708],[17460,17537],[5630,17717],[17531,17718],[17454,17541],[17513,17720],[17460,17587],[3020,17667],[17511,17606],[17616,17709],[3803,17725],[17724,17726],[7341,17434],[17425,17503],[17620,17662],[17587,17730],[2498,17434],[6495,17732],[17616,17733],[5369,17597],[7631,17735],[17432,17727],[17563,17710],[17453,17544],[17641,17739],[5630,17639],[17739,17741],[17734,17742],[17569,17728],[17626,17645],[17712,17745],[17591,17680],[17736,17747],[3223,17661],[17570,17683],[2498,6384],[17750,17751],[6181,17420],[17446,17527],[17735,17754],[17753,17755],[17590,17697],[17723,17757],[17403,17554],[17632,17707],[17694,17744],[6645,17564],[17642,17692],[17560,17763],[17553,17725],[17527,17765],[17664,17678],[17719,17767],[17643,17759],[8090,17769],[17749,17770],[3334,7428],[17688,17752],[3803,17609],[17532,17715],[17700,17775],[17637,17638],[2701,17565],[17740,17778],[4847,17733],[17774,17780],[6384,17745],[17418,17452],[17588,17591],[17671,17784],[17597,17685],[17785,17786],[17756,17765],[17672,17772],[17643,17789],[17582,17601],[17405,17791],[17406,17711],[17557,17793],[4528,17546],[17402,17456],[17444,17782],[17595,17796],[17783,17798],[17654,17790],[17431,17564],[17410,17801],[17794,17797],[17792,17795],[4325,17408],[17442,17805],[2701,4006],[17565,17807],[17527,17705],[4180,17803],[17400,17472],[17653,17679],[17684,17717],[17665,17759],[17650,17722],[17549,17808],[17572,17802],[17813,17814],[17533,17695],[2498,17676],[17552,17812],[17673,17804],[17625,17659],[17410,17508],[7718,17436],[17754,17825],[17413,17736],[17826,17827],[4639,17568],[17590,17823],[6297,17805],[17613,17824],[17438,17729],[17452,17499],[17833,17834],[17658,17793],[17559,17836],[17535,17791],[17831,17838],[17596,17837],[4528,17806],[6906,17630],[17702,17769],[8037,17843],[17548,17829],[17732,17845],[17507,17521],[17676,17842],[17467,17610],[17544,17847],[17529,17811],[17638,17851],[17570,17819],[17661,17848],[17543,17573],[17820,17853],[5683,17540],[17437,17855],[17411,17809],[17696,17777],[17762,17859],[17706,17766],[6498,7107],[4642,17863],[5686,17864],[7430,7720],[3805,4008],[4642,17867],[4588,17868],[4443,17869],[4182,17870],[7053,7107],[4008,5052],[2703,17873],[17872,17874],[6792,17875],[4443,5487],[17876,17877],[6647,6792],[7542,7832],[8006,17880],[8093,17881],[7633,7720],[7894,17883],[17882,17884],[7952,8039],[7488,17886],[7778,17887],[7227,7430],[17888,17889],[8122,17890],[17885,17891],[7343,17892],[17879,17893],[6038,6183],[6299,6386],[17895,17896],[17894,17897],[6908,6995],[17898,17899],[6444,7053],[6498,17901],[7107,17902],[5864,17903],[17900,17904],[6299,6908],[6995,17906],[6386,17907],[5487,5574],[4530,17909],[4443,17910],[7343,17884],[17889,17912],[17911,17913],[17908,17914],[5226,5371],[4182,4327],[17916,17917],[17895,17918],[7227,17919],[17879,17920],[7488,7778],[17921,17922],[3337,17882],[2500,5864],[17897,17925],[3138,3225],[3022,17927],[17913,17928],[17879,17899],[17929,17930],[2703,17931],[2877,17932],[17926,17933],[17924,17934],[3337,5686],[2268,17936],[17864,17937],[8006,8093],[7894,17911],[17908,17940],[3138,17941],[3573,3805],[4849,5052],[5864,17944],[17943,17945],[4008,17946],[2500,2703],[2007,17948],[17947,17949],[17942,17950],[17939,17951],[17938,17952],[6038,6647],[4182,5226],[17954,17955],[7542,17956],[2877,17957],[3225,17958],[17953,17959],[17879,17947],[17919,17961],[17908,17962],[7894,17927],[17939,17964],[4588,5632],[3573,17918],[17911,17967],[2007,2268],[17968,17969],[17966,17970],[3283,7778],[17887,17972],[17971,17973],[17864,17867],[17935,17975],[17901,17976],[17974,17977],[17944,17978],[4443,4530],[17886,17965],[17980,17981],[4642,5686],[17966,17983],[3573,17969],[17984,17985],[3283,3337],[8122,17987],[17986,17988],[17982,17989],[2268,17916],[17944,17991],[5632,17992],[7343,7633],[7952,8006],[17994,17995],[3138,17996],[6908,17997],[6647,17998],[2877,3022],[6995,17879],[6299,17877],[8122,17979],[2007,17980],[2877,17928],[17987,18005],[17893,18006],[4182,4588],[4327,18008],[18007,18009],[18004,18010],[4642,18011],[6183,17879],[18000,18013],[7343,8006],[3805,6498],[6386,6995],[2703,17925],[17903,17988],[18018,18019],[18017,18020],[17906,18021],[17981,18022],[2877,17973],[17932,18024],[17926,18025],[17872,17899],[17879,18027],[7343,7430],[17960,18029],[6444,18016],[4849,18031],[17895,18032],[17966,17968],[17983,18034],[17903,18018],[17867,17901],[2268,17950],[3283,18038],[8122,17984],[18039,18040],[17903,18041],[18014,18036],[6038,18043],[2007,18044],[3225,17953],[3022,7832],[18046,18047],[3337,17903],[18041,18049],[5371,18050],[3022,5371],[4327,5371],[6183,6792],[17883,18054],[18053,18055],[18048,18056],[8093,17961],[4327,18047],[7778,18059],[7227,17880],[17922,18061],[8122,18062],[17987,18063],[18043,18064],[7107,17874],[2007,4642],[17937,18067],[2877,17929],[17968,18069],[17882,18070],[18068,18071],[18066,18072],[6444,17993],[5574,18074],[7053,18025],[5487,18076],[18075,18077],[4849,6444],[5487,6038],[17906,18080],[17997,18081],[17886,17939],[17903,18040],[17946,18084],[4008,17941],[18085,18086],[18083,18087],[7542,18029],[7488,18089],[17956,18090],[18088,18091],[8006,17994],[7778,18054],[5686,17993],[18065,18095],[18082,18096],[17926,18078],[5226,17944],[5632,18099],[5686,17909],[2268,18101],[5052,5632],[18102,18103],[18052,18104],[4530,5574],[2877,7488],[17954,18107],[18029,18108],[17955,18109],[17938,17949],[7832,18000],[7542,18112],[18111,18113],[18004,18009],[17957,18107],[18042,18116],[2268,17949],[17911,18069],[18118,18119],[17883,18094],[7832,18121],[17921,17947],[18114,18123],[3225,17942],[4588,17901],[18039,18126],[5632,18127],[8039,18128],[18125,18129],[7952,18130],[18110,18131],[3225,8039],[8093,18017],[18133,18134],[17866,18135],[6038,18065],[18136,18137],[3138,18002],[6908,18139],[7952,18140],[18050,18141],[8006,18142],[18000,18064],[17916,18144],[17986,18145],[18106,18133],[7720,18147],[7430,17917],[8093,18149],[18148,18150],[18146,18151],[18001,18152],[17963,18120],[4849,18122],[17875,18153],[17892,18035],[17917,18146],[5371,17905],[7952,18121],[18023,18102],[17922,18084],[18061,18162],[17919,18163],[18058,18164],[2877,17955],[17909,18090],[18166,18167],[6038,18168],[5574,18138],[17878,18158],[2500,17896],[18037,18115],[17981,18004],[18100,18161],[17877,17962],[17994,18176],[17906,18177],[17999,18171],[17923,18000],[5632,18180],[17994,18181],[17917,18004],[17976,18183],[17923,18050],[3022,18130],[17974,18069],[18079,18172],[3805,18188],[18187,18189],[7343,17897],[17888,17966],[18083,18125],[18050,18193],[2500,17897],[6498,18195],[18079,18196],[5371,18060],[7633,18198],[17895,18190],[18026,18173],[17916,18007],[18104,18202],[5632,18102],[18202,18204],[18197,18205],[18032,18191],[18089,18108],[18175,18208],[18054,18143],[18199,18210],[3225,18124],[18033,18146],[2500,6386],[18213,18214],[6183,17883],[17909,17990],[18198,18217],[18216,18218],[18053,18160],[18186,18220],[17866,18017],[18095,18170],[18157,18207],[6647,18027],[18105,18155],[18023,18226],[18016,18188],[17990,18228],[18127,18141],[18182,18230],[18106,18222],[8093,18232],[18212,18233],[3337,7430],[18151,18215],[3805,18072],[17995,18178],[18163,18238],[18100,18101],[2703,18028],[18203,18241],[4849,18196],[18237,18243],[6386,18208],[17881,17915],[18051,18054],[18134,18247],[18060,18148],[18248,18249],[18219,18228],[18135,18235],[18106,18252],[18045,18064],[17868,18254],[17869,18174],[18020,18256],[4530,18009],[17865,17919],[17907,18245],[18058,18259],[18246,18261],[18117,18253],[17894,18027],[17873,18264],[18257,18260],[18255,18258],[4327,17871],[17905,18268],[2703,4008],[18028,18270],[17990,18168],[4182,18266],[17863,17935],[18116,18142],[18147,18180],[18128,18222],[18113,18185],[18012,18271],[18035,18265],[18276,18277],[17996,18158],[2500,18139],[18015,18275],[18136,18267],[18088,18122],[17873,17971],[7720,17899],[18217,18288],[17876,18199],[18289,18290],[4642,18031],[18053,18286],[6299,18268],[18076,18287],[17901,18192],[17915,17962],[18296,18297],[18121,18256],[18022,18299],[17998,18254],[18294,18301],[18059,18300],[4530,18269],[6908,18093],[18165,18232],[8039,18306],[18011,18292],[18195,18308],[17970,17984],[18139,18305],[17930,18073],[18007,18310],[17992,18274],[18101,18314],[18033,18282],[18124,18311],[18006,18036],[18283,18316],[5686,18003],[17900,18318],[17874,18272],[18159,18240],[18225,18322],[18169,18229],[6500,7109],[4644,18326],[5688,18327],[7457,7747],[3832,4035],[4644,18330],[4615,18331],[4470,18332],[4209,18333],[7080,7109],[4035,5079],[2730,18336],[18335,18337],[6819,18338],[4470,5514],[18339,18340],[6674,6819],[7544,7834],[8008,18343],[8095,18344],[7660,7747],[7921,18346],[18345,18347],[7979,8066],[7515,18349],[7805,18350],[7254,7457],[18351,18352],[8124,18353],[18348,18354],[7370,18355],[18342,18356],[6065,6210],[6326,6413],[18358,18359],[18357,18360],[6935,7022],[18361,18362],[6471,7080],[6500,18364],[7109,18365],[5891,18366],[18363,18367],[6326,6935],[7022,18369],[6413,18370],[5514,5601],[4557,18372],[4470,18373],[7370,18347],[18352,18375],[18374,18376],[18371,18377],[5253,5398],[4209,4354],[18379,18380],[18358,18381],[7254,18382],[18342,18383],[7515,7805],[18384,18385],[3339,18345],[2527,5891],[18360,18388],[3165,3252],[3049,18390],[18376,18391],[18342,18362],[18392,18393],[2730,18394],[2904,18395],[18389,18396],[18387,18397],[3339,5688],[2295,18399],[18327,18400],[8008,8095],[7921,18374],[18371,18403],[3165,18404],[3600,3832],[4876,5079],[5891,18407],[18406,18408],[4035,18409],[2527,2730],[2034,18411],[18410,18412],[18405,18413],[18402,18414],[18401,18415],[6065,6674],[4209,5253],[18417,18418],[7544,18419],[2904,18420],[3252,18421],[18416,18422],[18342,18410],[18382,18424],[18371,18425],[7921,18390],[18402,18427],[4615,5659],[3600,18381],[18374,18430],[2034,2295],[18431,18432],[18429,18433],[3310,7805],[18350,18435],[18434,18436],[18327,18330],[18398,18438],[18364,18439],[18437,18440],[18407,18441],[4470,4557],[18349,18428],[18443,18444],[4644,5688],[18429,18446],[3600,18432],[18447,18448],[3310,3339],[8124,18450],[18449,18451],[18445,18452],[2295,18379],[18407,18454],[5659,18455],[7370,7660],[7979,8008],[18457,18458],[3165,18459],[6935,18460],[6674,18461],[2904,3049],[7022,18342],[6326,18340],[8124,18442],[2034,18443],[2904,18391],[18450,18468],[18356,18469],[4209,4615],[4354,18471],[18470,18472],[18467,18473],[4644,18474],[6210,18342],[18463,18476],[7370,8008],[3832,6500],[6413,7022],[2730,18388],[18366,18451],[18481,18482],[18480,18483],[18369,18484],[18444,18485],[2904,18436],[18395,18487],[18389,18488],[18335,18362],[18342,18490],[7370,7457],[18423,18492],[6471,18479],[4876,18494],[18358,18495],[18429,18431],[18446,18497],[18366,18481],[18330,18364],[2295,18413],[3310,18501],[8124,18447],[18502,18503],[18366,18504],[18477,18499],[6065,18506],[2034,18507],[3252,18416],[3049,7834],[18509,18510],[3339,18366],[18504,18512],[5398,18513],[3049,5398],[4354,5398],[6210,6819],[18346,18517],[18516,18518],[18511,18519],[8095,18424],[4354,18510],[7805,18522],[7254,18343],[18385,18524],[8124,18525],[18450,18526],[18506,18527],[7109,18337],[2034,4644],[18400,18530],[2904,18392],[18431,18532],[18345,18533],[18531,18534],[18529,18535],[6471,18456],[5601,18537],[7080,18488],[5514,18539],[18538,18540],[4876,6471],[5514,6065],[18369,18543],[18460,18544],[18349,18402],[18366,18503],[18409,18547],[4035,18404],[18548,18549],[18546,18550],[7544,18492],[7515,18552],[18419,18553],[18551,18554],[8008,18457],[7805,18517],[5688,18456],[18528,18558],[18545,18559],[18389,18541],[5253,18407],[5659,18562],[5688,18372],[2295,18564],[5079,5659],[18565,18566],[18515,18567],[4557,5601],[2904,7515],[18417,18570],[18492,18571],[18418,18572],[18401,18412],[7834,18463],[7544,18575],[18574,18576],[18467,18472],[18420,18570],[18505,18579],[2295,18412],[18374,18532],[18581,18582],[18346,18557],[7834,18584],[18384,18410],[18577,18586],[3252,18405],[4615,18364],[18502,18589],[5659,18590],[8066,18591],[18588,18592],[7979,18593],[18573,18594],[3252,8066],[8095,18480],[18596,18597],[18329,18598],[6065,18528],[18599,18600],[3165,18465],[6935,18602],[7979,18603],[18513,18604],[8008,18605],[18463,18527],[18379,18607],[18449,18608],[18569,18596],[7747,18610],[7457,18380],[8095,18612],[18611,18613],[18609,18614],[18464,18615],[18426,18583],[4876,18585],[18338,18616],[18355,18498],[18380,18609],[5398,18368],[7979,18584],[18486,18565],[18385,18547],[18524,18625],[18382,18626],[18521,18627],[2904,18418],[18372,18553],[18629,18630],[6065,18631],[5601,18601],[18341,18621],[2527,18359],[18500,18578],[18444,18467],[18563,18624],[18340,18425],[18457,18639],[18369,18640],[18462,18634],[18386,18463],[5659,18643],[18457,18644],[18380,18467],[18439,18646],[18386,18513],[3049,18593],[18437,18532],[18542,18635],[3832,18651],[18650,18652],[7370,18360],[18351,18429],[18546,18588],[18513,18656],[2527,18360],[6500,18658],[18542,18659],[5398,18523],[7660,18661],[18358,18653],[18489,18636],[18379,18470],[18567,18665],[5659,18565],[18665,18667],[18660,18668],[18495,18654],[18552,18571],[18638,18671],[18517,18606],[18662,18673],[3252,18587],[18496,18609],[2527,6413],[18676,18677],[6210,18346],[18372,18453],[18661,18680],[18679,18681],[18516,18623],[18649,18683],[18329,18480],[18558,18633],[18620,18670],[6674,18490],[18568,18618],[18486,18689],[18479,18651],[18453,18691],[18590,18604],[18645,18693],[18569,18685],[8095,18695],[18675,18696],[3339,7457],[18614,18678],[3832,18535],[18458,18641],[18626,18701],[18563,18564],[2730,18491],[18666,18704],[4876,18659],[18700,18706],[6413,18671],[18344,18378],[18514,18517],[18597,18710],[18523,18611],[18711,18712],[18682,18691],[18598,18698],[18569,18715],[18508,18527],[18331,18717],[18332,18637],[18483,18719],[4557,18472],[18328,18382],[18370,18708],[18521,18722],[18709,18724],[18580,18716],[18357,18490],[18336,18727],[18720,18723],[18718,18721],[4354,18334],[18368,18731],[2730,4035],[18491,18733],[18453,18631],[4209,18729],[18326,18398],[18579,18605],[18610,18643],[18591,18685],[18576,18648],[18475,18734],[18498,18728],[18739,18740],[18459,18621],[2527,18602],[18478,18738],[18599,18730],[18551,18585],[18336,18434],[7747,18362],[18680,18751],[18339,18662],[18752,18753],[4644,18494],[18516,18749],[6326,18731],[18539,18750],[18364,18655],[18378,18425],[18759,18760],[18584,18719],[18485,18762],[18461,18717],[18757,18764],[18522,18763],[4557,18732],[6935,18556],[18628,18695],[8066,18769],[18474,18755],[18658,18771],[18433,18447],[18602,18768],[18393,18536],[18470,18773],[18455,18737],[18564,18777],[18496,18745],[18587,18774],[18469,18499],[18746,18779],[5688,18466],[18363,18781],[18337,18735],[18622,18703],[18688,18785],[18632,18692],[6502,7111],[4646,18789],[5690,18790],[7459,7749],[3834,4037],[4646,18793],[4617,18794],[4472,18795],[4211,18796],[7082,7111],[4037,5081],[2732,18799],[18798,18800],[6821,18801],[4472,5516],[18802,18803],[6676,6821],[7546,7836],[8010,18806],[8097,18807],[7662,7749],[7923,18809],[18808,18810],[7981,8068],[7517,18812],[7807,18813],[7256,7459],[18814,18815],[8126,18816],[18811,18817],[7372,18818],[18805,18819],[6067,6212],[6328,6415],[18821,18822],[18820,18823],[6937,7024],[18824,18825],[6473,7082],[6502,18827],[7111,18828],[5893,18829],[18826,18830],[6328,6937],[7024,18832],[6415,18833],[5516,5603],[4559,18835],[4472,18836],[7372,18810],[18815,18838],[18837,18839],[18834,18840],[5255,5400],[4211,4356],[18842,18843],[18821,18844],[7256,18845],[18805,18846],[7517,7807],[18847,18848],[3341,18808],[2529,5893],[18823,18851],[3167,3254],[3051,18853],[18839,18854],[18805,18825],[18855,18856],[2732,18857],[2906,18858],[18852,18859],[18850,18860],[3341,5690],[2297,18862],[18790,18863],[8010,8097],[7923,18837],[18834,18866],[3167,18867],[3602,3834],[4878,5081],[5893,18870],[18869,18871],[4037,18872],[2529,2732],[2036,18874],[18873,18875],[18868,18876],[18865,18877],[18864,18878],[6067,6676],[4211,5255],[18880,18881],[7546,18882],[2906,18883],[3254,18884],[18879,18885],[18805,18873],[18845,18887],[18834,18888],[7923,18853],[18865,18890],[4617,5661],[3602,18844],[18837,18893],[2036,2297],[18894,18895],[18892,18896],[3312,7807],[18813,18898],[18897,18899],[18790,18793],[18861,18901],[18827,18902],[18900,18903],[18870,18904],[4472,4559],[18812,18891],[18906,18907],[4646,5690],[18892,18909],[3602,18895],[18910,18911],[3312,3341],[8126,18913],[18912,18914],[18908,18915],[2297,18842],[18870,18917],[5661,18918],[7372,7662],[7981,8010],[18920,18921],[3167,18922],[6937,18923],[6676,18924],[2906,3051],[7024,18805],[6328,18803],[8126,18905],[2036,18906],[2906,18854],[18913,18931],[18819,18932],[4211,4617],[4356,18934],[18933,18935],[18930,18936],[4646,18937],[6212,18805],[18926,18939],[7372,8010],[3834,6502],[6415,7024],[2732,18851],[18829,18914],[18944,18945],[18943,18946],[18832,18947],[18907,18948],[2906,18899],[18858,18950],[18852,18951],[18798,18825],[18805,18953],[7372,7459],[18886,18955],[6473,18942],[4878,18957],[18821,18958],[18892,18894],[18909,18960],[18829,18944],[18793,18827],[2297,18876],[3312,18964],[8126,18910],[18965,18966],[18829,18967],[18940,18962],[6067,18969],[2036,18970],[3254,18879],[3051,7836],[18972,18973],[3341,18829],[18967,18975],[5400,18976],[3051,5400],[4356,5400],[6212,6821],[18809,18980],[18979,18981],[18974,18982],[8097,18887],[4356,18973],[7807,18985],[7256,18806],[18848,18987],[8126,18988],[18913,18989],[18969,18990],[7111,18800],[2036,4646],[18863,18993],[2906,18855],[18894,18995],[18808,18996],[18994,18997],[18992,18998],[6473,18919],[5603,19000],[7082,18951],[5516,19002],[19001,19003],[4878,6473],[5516,6067],[18832,19006],[18923,19007],[18812,18865],[18829,18966],[18872,19010],[4037,18867],[19011,19012],[19009,19013],[7546,18955],[7517,19015],[18882,19016],[19014,19017],[8010,18920],[7807,18980],[5690,18919],[18991,19021],[19008,19022],[18852,19004],[5255,18870],[5661,19025],[5690,18835],[2297,19027],[5081,5661],[19028,19029],[18978,19030],[4559,5603],[2906,7517],[18880,19033],[18955,19034],[18881,19035],[18864,18875],[7836,18926],[7546,19038],[19037,19039],[18930,18935],[18883,19033],[18968,19042],[2297,18875],[18837,18995],[19044,19045],[18809,19020],[7836,19047],[18847,18873],[19040,19049],[3254,18868],[4617,18827],[18965,19052],[5661,19053],[8068,19054],[19051,19055],[7981,19056],[19036,19057],[3254,8068],[8097,18943],[19059,19060],[18792,19061],[6067,18991],[19062,19063],[3167,18928],[6937,19065],[7981,19066],[18976,19067],[8010,19068],[18926,18990],[18842,19070],[18912,19071],[19032,19059],[7749,19073],[7459,18843],[8097,19075],[19074,19076],[19072,19077],[18927,19078],[18889,19046],[4878,19048],[18801,19079],[18818,18961],[18843,19072],[5400,18831],[7981,19047],[18949,19028],[18848,19010],[18987,19088],[18845,19089],[18984,19090],[2906,18881],[18835,19016],[19092,19093],[6067,19094],[5603,19064],[18804,19084],[2529,18822],[18963,19041],[18907,18930],[19026,19087],[18803,18888],[18920,19102],[18832,19103],[18925,19097],[18849,18926],[5661,19106],[18920,19107],[18843,18930],[18902,19109],[18849,18976],[3051,19056],[18900,18995],[19005,19098],[3834,19114],[19113,19115],[7372,18823],[18814,18892],[19009,19051],[18976,19119],[2529,18823],[6502,19121],[19005,19122],[5400,18986],[7662,19124],[18821,19116],[18952,19099],[18842,18933],[19030,19128],[5661,19028],[19128,19130],[19123,19131],[18958,19117],[19015,19034],[19101,19134],[18980,19069],[19125,19136],[3254,19050],[18959,19072],[2529,6415],[19139,19140],[6212,18809],[18835,18916],[19124,19143],[19142,19144],[18979,19086],[19112,19146],[18792,18943],[19021,19096],[19083,19133],[6676,18953],[19031,19081],[18949,19152],[18942,19114],[18916,19154],[19053,19067],[19108,19156],[19032,19148],[8097,19158],[19138,19159],[3341,7459],[19077,19141],[3834,18998],[18921,19104],[19089,19164],[19026,19027],[2732,18954],[19129,19167],[4878,19122],[19163,19169],[6415,19134],[18807,18841],[18977,18980],[19060,19173],[18986,19074],[19174,19175],[19145,19154],[19061,19161],[19032,19178],[18971,18990],[18794,19180],[18795,19100],[18946,19182],[4559,18935],[18791,18845],[18833,19171],[18984,19185],[19172,19187],[19043,19179],[18820,18953],[18799,19190],[19183,19186],[19181,19184],[4356,18797],[18831,19194],[2732,4037],[18954,19196],[18916,19094],[4211,19192],[18789,18861],[19042,19068],[19073,19106],[19054,19148],[19039,19111],[18938,19197],[18961,19191],[19202,19203],[18922,19084],[2529,19065],[18941,19201],[19062,19193],[19014,19048],[18799,18897],[7749,18825],[19143,19214],[18802,19125],[19215,19216],[4646,18957],[18979,19212],[6328,19194],[19002,19213],[18827,19118],[18841,18888],[19222,19223],[19047,19182],[18948,19225],[18924,19180],[19220,19227],[18985,19226],[4559,19195],[6937,19019],[19091,19158],[8068,19232],[18937,19218],[19121,19234],[18896,18910],[19065,19231],[18856,18999],[18933,19236],[18918,19200],[19027,19240],[18959,19208],[19050,19237],[18932,18962],[19209,19242],[5690,18929],[18826,19244],[18800,19198],[19085,19166],[19151,19248],[19095,19155],[1894,2039],[1836,1865],[1778,1807],[1894,19254],[19253,19255],[1952,19256],[1807,19253],[1981,2039],[19256,19259],[2010,19260],[1923,2010],[1981,19262],[1952,19263],[19252,19264],[1836,19265],[1778,19266],[19260,19262],[1865,19255],[1923,19257],[19259,19270],[1952,19261],[2039,19270],[2010,19273],[2039,19269],[19264,19275],[19257,19263],[1865,19267],[19258,19265],[19254,19266],[2039,19264],[19258,19281],[1778,19282],[1897,2042],[1839,1868],[1781,1810],[1897,19286],[19285,19287],[1955,19288],[1810,19285],[1984,2042],[19288,19291],[2013,19292],[1926,2013],[1984,19294],[1955,19295],[19284,19296],[1839,19297],[1781,19298],[19292,19294],[1868,19287],[1926,19289],[19291,19302],[1955,19293],[2042,19302],[2013,19305],[2042,19301],[19296,19307],[19289,19295],[1868,19299],[19290,19297],[19286,19298],[2042,19296],[19290,19313],[1781,19314],[2155,2300],[2097,2126],[1782,2068],[2155,19318],[19317,19319],[2213,19320],[2068,19317],[2242,2300],[19320,19323],[2271,19324],[2184,2271],[2242,19326],[2213,19327],[19316,19328],[2097,19329],[1782,19330],[19324,19326],[2126,19319],[2184,19321],[19323,19334],[2213,19325],[2300,19334],[2271,19337],[2300,19333],[19328,19339],[19321,19327],[2126,19331],[19322,19329],[19318,19330],[2300,19328],[19322,19345],[1782,19346],[2158,2303],[2100,2129],[1784,2071],[2158,19350],[19349,19351],[2216,19352],[2071,19349],[2245,2303],[19352,19355],[2274,19356],[2187,2274],[2245,19358],[2216,19359],[19348,19360],[2100,19361],[1784,19362],[19356,19358],[2129,19351],[2187,19353],[19355,19366],[2216,19357],[2303,19366],[2274,19369],[2303,19365],[19360,19371],[19353,19359],[2129,19363],[19354,19361],[19350,19362],[2303,19360],[19354,19377],[1784,19378],[2387,2532],[2329,2358],[1811,2072],[2387,19382],[19381,19383],[2445,19384],[2072,19381],[2474,2532],[19384,19387],[2503,19388],[2416,2503],[2474,19390],[2445,19391],[19380,19392],[2329,19393],[1811,19394],[19388,19390],[2358,19383],[2416,19385],[19387,19398],[2445,19389],[2532,19398],[2503,19401],[2532,19397],[19392,19403],[19385,19391],[2358,19395],[19386,19393],[19382,19394],[2532,19392],[19386,19409],[1811,19410],[2390,2535],[2332,2361],[1813,2074],[2390,19414],[19413,19415],[2448,19416],[2074,19413],[2477,2535],[19416,19419],[2506,19420],[2419,2506],[2477,19422],[2448,19423],[19412,19424],[2332,19425],[1813,19426],[19420,19422],[2361,19415],[2419,19417],[19419,19430],[2448,19421],[2535,19430],[2506,19433],[2535,19429],[19424,19435],[19417,19423],[2361,19427],[19418,19425],[19414,19426],[2535,19424],[19418,19441],[1813,19442],[2590,2735],[2333,2561],[1840,2101],[2590,19446],[19445,19447],[2648,19448],[2101,19445],[2677,2735],[19448,19451],[2706,19452],[2619,2706],[2677,19454],[2648,19455],[19444,19456],[2333,19457],[1840,19458],[19452,19454],[2561,19447],[2619,19449],[19451,19462],[2648,19453],[2735,19462],[2706,19465],[2735,19461],[19456,19467],[19449,19455],[2561,19459],[19450,19457],[19446,19458],[2735,19456],[19450,19473],[1840,19474],[2593,2738],[2335,2564],[1842,2103],[2593,19478],[19477,19479],[2651,19480],[2103,19477],[2680,2738],[19480,19483],[2709,19484],[2622,2709],[2680,19486],[2651,19487],[19476,19488],[2335,19489],[1842,19490],[19484,19486],[2564,19479],[2622,19481],[19483,19494],[2651,19485],[2738,19494],[2709,19497],[2738,19493],[19488,19499],[19481,19487],[2564,19491],[19482,19489],[19478,19490],[2738,19488],[19482,19505],[1842,19506],[2764,2909],[2362,2565],[1869,2130],[2764,19510],[19509,19511],[2822,19512],[2130,19509],[2851,2909],[19512,19515],[2880,19516],[2793,2880],[2851,19518],[2822,19519],[19508,19520],[2362,19521],[1869,19522],[19516,19518],[2565,19511],[2793,19513],[19515,19526],[2822,19517],[2909,19526],[2880,19529],[2909,19525],[19520,19531],[19513,19519],[2565,19523],[19514,19521],[19510,19522],[2909,19520],[19514,19537],[1869,19538],[2767,2912],[2364,2567],[1871,2132],[2767,19542],[19541,19543],[2825,19544],[2132,19541],[2854,2912],[19544,19547],[2883,19548],[2796,2883],[2854,19550],[2825,19551],[19540,19552],[2364,19553],[1871,19554],[19548,19550],[2567,19543],[2796,19545],[19547,19558],[2825,19549],[2912,19558],[2883,19561],[2912,19557],[19552,19563],[19545,19551],[2567,19555],[19546,19553],[19542,19554],[2912,19552],[19546,19569],[1871,19570],[2768,3054],[2391,2594],[1898,2159],[2768,19574],[19573,19575],[2967,19576],[2159,19573],[2996,3054],[19576,19579],[3025,19580],[2938,3025],[2996,19582],[2967,19583],[19572,19584],[2391,19585],[1898,19586],[19580,19582],[2594,19575],[2938,19577],[19579,19590],[2967,19581],[3054,19590],[3025,19593],[3054,19589],[19584,19595],[19577,19583],[2594,19587],[19578,19585],[19574,19586],[3054,19584],[19578,19601],[1898,19602],[2770,3057],[2393,2596],[1900,2161],[2770,19606],[19605,19607],[2970,19608],[2161,19605],[2999,3057],[19608,19611],[3028,19612],[2941,3028],[2999,19614],[2970,19615],[19604,19616],[2393,19617],[1900,19618],[19612,19614],[2596,19607],[2941,19609],[19611,19622],[2970,19613],[3057,19622],[3028,19625],[3057,19621],[19616,19627],[19609,19615],[2596,19619],[19610,19617],[19606,19618],[3057,19616],[19610,19633],[1900,19634],[2797,3170],[2420,2623],[1927,2188],[2797,19638],[19637,19639],[3083,19640],[2188,19637],[3112,3170],[19640,19643],[3141,19644],[2942,3141],[3112,19646],[3083,19647],[19636,19648],[2420,19649],[1927,19650],[19644,19646],[2623,19639],[2942,19641],[19643,19654],[3083,19645],[3170,19654],[3141,19657],[3170,19653],[19648,19659],[19641,19647],[2623,19651],[19642,19649],[19638,19650],[3170,19648],[19642,19665],[1927,19666],[2799,3173],[2422,2625],[1929,2190],[2799,19670],[19669,19671],[3086,19672],[2190,19669],[3115,3173],[19672,19675],[3144,19676],[2944,3144],[3115,19678],[3086,19679],[19668,19680],[2422,19681],[1929,19682],[19676,19678],[2625,19671],[2944,19673],[19675,19686],[3086,19677],[3173,19686],[3144,19689],[3173,19685],[19680,19691],[19673,19679],[2625,19683],[19674,19681],[19670,19682],[3173,19680],[19674,19697],[1929,19698],[2826,3257],[2449,2652],[1956,2217],[2826,19702],[19701,19703],[3087,19704],[2217,19701],[3199,3257],[19704,19707],[3228,19708],[2971,3228],[3199,19710],[3087,19711],[19700,19712],[2449,19713],[1956,19714],[19708,19710],[2652,19703],[2971,19705],[19707,19718],[3087,19709],[3257,19718],[3228,19721],[3257,19717],[19712,19723],[19705,19711],[2652,19715],[19706,19713],[19702,19714],[3257,19712],[19706,19729],[1956,19730],[2828,3260],[2451,2654],[1958,2219],[2828,19734],[19733,19735],[3089,19736],[2219,19733],[3202,3260],[19736,19739],[3231,19740],[2973,3231],[3202,19742],[3089,19743],[19732,19744],[2451,19745],[1958,19746],[19740,19742],[2654,19735],[2973,19737],[19739,19750],[3089,19741],[3260,19750],[3231,19753],[3260,19749],[19744,19755],[19737,19743],[2654,19747],[19738,19745],[19734,19746],[3260,19744],[19738,19761],[1958,19762],[2855,3315],[2478,2681],[1985,2246],[2855,19766],[19765,19767],[3116,19768],[2246,19765],[3203,3315],[19768,19771],[3286,19772],[3000,3286],[3203,19774],[3116,19775],[19764,19776],[2478,19777],[1985,19778],[19772,19774],[2681,19767],[3000,19769],[19771,19782],[3116,19773],[3315,19782],[3286,19785],[3315,19781],[19776,19787],[19769,19775],[2681,19779],[19770,19777],[19766,19778],[3315,19776],[19770,19793],[1985,19794],[2857,3318],[2480,2683],[1987,2248],[2857,19798],[19797,19799],[3118,19800],[2248,19797],[3205,3318],[19800,19803],[3289,19804],[3002,3289],[3205,19806],[3118,19807],[19796,19808],[2480,19809],[1987,19810],[19804,19806],[2683,19799],[3002,19801],[19803,19814],[3118,19805],[3318,19814],[3289,19817],[3318,19813],[19808,19819],[19801,19807],[2683,19811],[19802,19809],[19798,19810],[3318,19808],[19802,19825],[1987,19826],[2884,3344],[2507,2710],[2014,2275],[2884,19830],[19829,19831],[3145,19832],[2275,19829],[3232,3344],[19832,19835],[3290,19836],[3029,3290],[3232,19838],[3145,19839],[19828,19840],[2507,19841],[2014,19842],[19836,19838],[2710,19831],[3029,19833],[19835,19846],[3145,19837],[3344,19846],[3290,19849],[3344,19845],[19840,19851],[19833,19839],[2710,19843],[19834,19841],[19830,19842],[3344,19840],[19834,19857],[2014,19858],[2886,3347],[2509,2712],[2016,2277],[2886,19862],[19861,19863],[3147,19864],[2277,19861],[3234,3347],[19864,19867],[3292,19868],[3031,3292],[3234,19870],[3147,19871],[19860,19872],[2509,19873],[2016,19874],[19868,19870],[2712,19863],[3031,19865],[19867,19878],[3147,19869],[3347,19878],[3292,19881],[3347,19877],[19872,19883],[19865,19871],[2712,19875],[19866,19873],[19862,19874],[3347,19872],[19866,19889],[2016,19890],[2913,3348],[2536,2739],[2043,2304],[2913,19894],[19893,19895],[3174,19896],[2304,19893],[3261,3348],[19896,19899],[3319,19900],[3058,3319],[3261,19902],[3174,19903],[19892,19904],[2536,19905],[2043,19906],[19900,19902],[2739,19895],[3058,19897],[19899,19910],[3174,19901],[3348,19910],[3319,19913],[3348,19909],[19904,19915],[19897,19903],[2739,19907],[19898,19905],[19894,19906],[3348,19904],[19898,19921],[2043,19922],[2915,3350],[2538,2741],[2045,2306],[2915,19926],[19925,19927],[3176,19928],[2306,19925],[3263,3350],[19928,19931],[3321,19932],[3060,3321],[3263,19934],[3176,19935],[19924,19936],[2538,19937],[2045,19938],[19932,19934],[2741,19927],[3060,19929],[19931,19942],[3176,19933],[3350,19942],[3321,19945],[3350,19941],[19936,19947],[19929,19935],[2741,19939],[19930,19937],[19926,19938],[3350,19936],[19930,19953],[2045,19954],[3460,3605],[3402,3431],[1786,3373],[3460,19958],[19957,19959],[3518,19960],[3373,19957],[3547,3605],[19960,19963],[3576,19964],[3489,3576],[3547,19966],[3518,19967],[19956,19968],[3402,19969],[1786,19970],[19964,19966],[3431,19959],[3489,19961],[19963,19974],[3518,19965],[3605,19974],[3576,19977],[3605,19973],[19968,19979],[19961,19967],[3431,19971],[19962,19969],[19958,19970],[3605,19968],[19962,19985],[1786,19986],[3463,3608],[3405,3434],[1788,3376],[3463,19990],[19989,19991],[3521,19992],[3376,19989],[3550,3608],[19992,19995],[3579,19996],[3492,3579],[3550,19998],[3521,19999],[19988,20000],[3405,20001],[1788,20002],[19996,19998],[3434,19991],[3492,19993],[19995,20006],[3521,19997],[3608,20006],[3579,20009],[3608,20005],[20000,20011],[19993,19999],[3434,20003],[19994,20001],[19990,20002],[3608,20000],[19994,20017],[1788,20018],[3692,3837],[3634,3663],[1815,3377],[3692,20022],[20021,20023],[3750,20024],[3377,20021],[3779,3837],[20024,20027],[3808,20028],[3721,3808],[3779,20030],[3750,20031],[20020,20032],[3634,20033],[1815,20034],[20028,20030],[3663,20023],[3721,20025],[20027,20038],[3750,20029],[3837,20038],[3808,20041],[3837,20037],[20032,20043],[20025,20031],[3663,20035],[20026,20033],[20022,20034],[3837,20032],[20026,20049],[1815,20050],[3695,3840],[3637,3666],[1817,3379],[3695,20054],[20053,20055],[3753,20056],[3379,20053],[3782,3840],[20056,20059],[3811,20060],[3724,3811],[3782,20062],[3753,20063],[20052,20064],[3637,20065],[1817,20066],[20060,20062],[3666,20055],[3724,20057],[20059,20070],[3753,20061],[3840,20070],[3811,20073],[3840,20069],[20064,20075],[20057,20063],[3666,20067],[20058,20065],[20054,20066],[3840,20064],[20058,20081],[1817,20082],[3895,4040],[3638,3866],[1844,3406],[3895,20086],[20085,20087],[3953,20088],[3406,20085],[3982,4040],[20088,20091],[4011,20092],[3924,4011],[3982,20094],[3953,20095],[20084,20096],[3638,20097],[1844,20098],[20092,20094],[3866,20087],[3924,20089],[20091,20102],[3953,20093],[4040,20102],[4011,20105],[4040,20101],[20096,20107],[20089,20095],[3866,20099],[20090,20097],[20086,20098],[4040,20096],[20090,20113],[1844,20114],[3898,4043],[3640,3869],[1846,3408],[3898,20118],[20117,20119],[3956,20120],[3408,20117],[3985,4043],[20120,20123],[4014,20124],[3927,4014],[3985,20126],[3956,20127],[20116,20128],[3640,20129],[1846,20130],[20124,20126],[3869,20119],[3927,20121],[20123,20134],[3956,20125],[4043,20134],[4014,20137],[4043,20133],[20128,20139],[20121,20127],[3869,20131],[20122,20129],[20118,20130],[4043,20128],[20122,20145],[1846,20146],[4069,4214],[3667,3870],[1873,3435],[4069,20150],[20149,20151],[4127,20152],[3435,20149],[4156,4214],[20152,20155],[4185,20156],[4098,4185],[4156,20158],[4127,20159],[20148,20160],[3667,20161],[1873,20162],[20156,20158],[3870,20151],[4098,20153],[20155,20166],[4127,20157],[4214,20166],[4185,20169],[4214,20165],[20160,20171],[20153,20159],[3870,20163],[20154,20161],[20150,20162],[4214,20160],[20154,20177],[1873,20178],[4072,4217],[3669,3872],[1875,3437],[4072,20182],[20181,20183],[4130,20184],[3437,20181],[4159,4217],[20184,20187],[4188,20188],[4101,4188],[4159,20190],[4130,20191],[20180,20192],[3669,20193],[1875,20194],[20188,20190],[3872,20183],[4101,20185],[20187,20198],[4130,20189],[4217,20198],[4188,20201],[4217,20197],[20192,20203],[20185,20191],[3872,20195],[20186,20193],[20182,20194],[4217,20192],[20186,20209],[1875,20210],[4073,4359],[3696,3899],[1902,3464],[4073,20214],[20213,20215],[4272,20216],[3464,20213],[4301,4359],[20216,20219],[4330,20220],[4243,4330],[4301,20222],[4272,20223],[20212,20224],[3696,20225],[1902,20226],[20220,20222],[3899,20215],[4243,20217],[20219,20230],[4272,20221],[4359,20230],[4330,20233],[4359,20229],[20224,20235],[20217,20223],[3899,20227],[20218,20225],[20214,20226],[4359,20224],[20218,20241],[1902,20242],[4075,4362],[3698,3901],[1904,3466],[4075,20246],[20245,20247],[4275,20248],[3466,20245],[4304,4362],[20248,20251],[4333,20252],[4246,4333],[4304,20254],[4275,20255],[20244,20256],[3698,20257],[1904,20258],[20252,20254],[3901,20247],[4246,20249],[20251,20262],[4275,20253],[4362,20262],[4333,20265],[4362,20261],[20256,20267],[20249,20255],[3901,20259],[20250,20257],[20246,20258],[4362,20256],[20250,20273],[1904,20274],[4102,4475],[3725,3928],[1931,3493],[4102,20278],[20277,20279],[4388,20280],[3493,20277],[4417,4475],[20280,20283],[4446,20284],[4247,4446],[4417,20286],[4388,20287],[20276,20288],[3725,20289],[1931,20290],[20284,20286],[3928,20279],[4247,20281],[20283,20294],[4388,20285],[4475,20294],[4446,20297],[4475,20293],[20288,20299],[20281,20287],[3928,20291],[20282,20289],[20278,20290],[4475,20288],[20282,20305],[1931,20306],[4104,4478],[3727,3930],[1933,3495],[4104,20310],[20309,20311],[4391,20312],[3495,20309],[4420,4478],[20312,20315],[4449,20316],[4249,4449],[4420,20318],[4391,20319],[20308,20320],[3727,20321],[1933,20322],[20316,20318],[3930,20311],[4249,20313],[20315,20326],[4391,20317],[4478,20326],[4449,20329],[4478,20325],[20320,20331],[20313,20319],[3930,20323],[20314,20321],[20310,20322],[4478,20320],[20314,20337],[1933,20338],[4131,4562],[3754,3957],[1960,3522],[4131,20342],[20341,20343],[4392,20344],[3522,20341],[4504,4562],[20344,20347],[4533,20348],[4276,4533],[4504,20350],[4392,20351],[20340,20352],[3754,20353],[1960,20354],[20348,20350],[3957,20343],[4276,20345],[20347,20358],[4392,20349],[4562,20358],[4533,20361],[4562,20357],[20352,20363],[20345,20351],[3957,20355],[20346,20353],[20342,20354],[4562,20352],[20346,20369],[1960,20370],[4133,4565],[3756,3959],[1962,3524],[4133,20374],[20373,20375],[4394,20376],[3524,20373],[4507,4565],[20376,20379],[4536,20380],[4278,4536],[4507,20382],[4394,20383],[20372,20384],[3756,20385],[1962,20386],[20380,20382],[3959,20375],[4278,20377],[20379,20390],[4394,20381],[4565,20390],[4536,20393],[4565,20389],[20384,20395],[20377,20383],[3959,20387],[20378,20385],[20374,20386],[4565,20384],[20378,20401],[1962,20402],[4160,4620],[3783,3986],[1989,3551],[4160,20406],[20405,20407],[4421,20408],[3551,20405],[4508,4620],[20408,20411],[4591,20412],[4305,4591],[4508,20414],[4421,20415],[20404,20416],[3783,20417],[1989,20418],[20412,20414],[3986,20407],[4305,20409],[20411,20422],[4421,20413],[4620,20422],[4591,20425],[4620,20421],[20416,20427],[20409,20415],[3986,20419],[20410,20417],[20406,20418],[4620,20416],[20410,20433],[1989,20434],[4162,4623],[3785,3988],[1991,3553],[4162,20438],[20437,20439],[4423,20440],[3553,20437],[4510,4623],[20440,20443],[4594,20444],[4307,4594],[4510,20446],[4423,20447],[20436,20448],[3785,20449],[1991,20450],[20444,20446],[3988,20439],[4307,20441],[20443,20454],[4423,20445],[4623,20454],[4594,20457],[4623,20453],[20448,20459],[20441,20447],[3988,20451],[20442,20449],[20438,20450],[4623,20448],[20442,20465],[1991,20466],[4189,4649],[3812,4015],[2018,3580],[4189,20470],[20469,20471],[4450,20472],[3580,20469],[4537,4649],[20472,20475],[4595,20476],[4334,4595],[4537,20478],[4450,20479],[20468,20480],[3812,20481],[2018,20482],[20476,20478],[4015,20471],[4334,20473],[20475,20486],[4450,20477],[4649,20486],[4595,20489],[4649,20485],[20480,20491],[20473,20479],[4015,20483],[20474,20481],[20470,20482],[4649,20480],[20474,20497],[2018,20498],[4191,4652],[3814,4017],[2020,3582],[4191,20502],[20501,20503],[4452,20504],[3582,20501],[4539,4652],[20504,20507],[4597,20508],[4336,4597],[4539,20510],[4452,20511],[20500,20512],[3814,20513],[2020,20514],[20508,20510],[4017,20503],[4336,20505],[20507,20518],[4452,20509],[4652,20518],[4597,20521],[4652,20517],[20512,20523],[20505,20511],[4017,20515],[20506,20513],[20502,20514],[4652,20512],[20506,20529],[2020,20530],[4218,4653],[3841,4044],[2047,3609],[4218,20534],[20533,20535],[4479,20536],[3609,20533],[4566,4653],[20536,20539],[4624,20540],[4363,4624],[4566,20542],[4479,20543],[20532,20544],[3841,20545],[2047,20546],[20540,20542],[4044,20535],[4363,20537],[20539,20550],[4479,20541],[4653,20550],[4624,20553],[4653,20549],[20544,20555],[20537,20543],[4044,20547],[20538,20545],[20534,20546],[4653,20544],[20538,20561],[2047,20562],[4220,4655],[3843,4046],[2049,3611],[4220,20566],[20565,20567],[4481,20568],[3611,20565],[4568,4655],[20568,20571],[4626,20572],[4365,4626],[4568,20574],[4481,20575],[20564,20576],[3843,20577],[2049,20578],[20572,20574],[4046,20567],[4365,20569],[20571,20582],[4481,20573],[4655,20582],[4626,20585],[4655,20581],[20576,20587],[20569,20575],[4046,20579],[20570,20577],[20566,20578],[4655,20576],[20570,20593],[2049,20594],[4736,4881],[4678,4707],[2076,3381],[4736,20598],[20597,20599],[4794,20600],[3381,20597],[4823,4881],[20600,20603],[4852,20604],[4765,4852],[4823,20606],[4794,20607],[20596,20608],[4678,20609],[2076,20610],[20604,20606],[4707,20599],[4765,20601],[20603,20614],[4794,20605],[4881,20614],[4852,20617],[4881,20613],[20608,20619],[20601,20607],[4707,20611],[20602,20609],[20598,20610],[4881,20608],[20602,20625],[2076,20626],[4739,4884],[4681,4710],[2078,3383],[4739,20630],[20629,20631],[4797,20632],[3383,20629],[4826,4884],[20632,20635],[4855,20636],[4768,4855],[4826,20638],[4797,20639],[20628,20640],[4681,20641],[2078,20642],[20636,20638],[4710,20631],[4768,20633],[20635,20646],[4797,20637],[4884,20646],[4855,20649],[4884,20645],[20640,20651],[20633,20639],[4710,20643],[20634,20641],[20630,20642],[4884,20640],[20634,20657],[2078,20658],[4939,5084],[4682,4910],[2105,3410],[4939,20662],[20661,20663],[4997,20664],[3410,20661],[5026,5084],[20664,20667],[5055,20668],[4968,5055],[5026,20670],[4997,20671],[20660,20672],[4682,20673],[2105,20674],[20668,20670],[4910,20663],[4968,20665],[20667,20678],[4997,20669],[5084,20678],[5055,20681],[5084,20677],[20672,20683],[20665,20671],[4910,20675],[20666,20673],[20662,20674],[5084,20672],[20666,20689],[2105,20690],[4942,5087],[4684,4913],[2107,3412],[4942,20694],[20693,20695],[5000,20696],[3412,20693],[5029,5087],[20696,20699],[5058,20700],[4971,5058],[5029,20702],[5000,20703],[20692,20704],[4684,20705],[2107,20706],[20700,20702],[4913,20695],[4971,20697],[20699,20710],[5000,20701],[5087,20710],[5058,20713],[5087,20709],[20704,20715],[20697,20703],[4913,20707],[20698,20705],[20694,20706],[5087,20704],[20698,20721],[2107,20722],[5113,5258],[4711,4914],[2134,3439],[5113,20726],[20725,20727],[5171,20728],[3439,20725],[5200,5258],[20728,20731],[5229,20732],[5142,5229],[5200,20734],[5171,20735],[20724,20736],[4711,20737],[2134,20738],[20732,20734],[4914,20727],[5142,20729],[20731,20742],[5171,20733],[5258,20742],[5229,20745],[5258,20741],[20736,20747],[20729,20735],[4914,20739],[20730,20737],[20726,20738],[5258,20736],[20730,20753],[2134,20754],[5116,5261],[4713,4916],[2136,3441],[5116,20758],[20757,20759],[5174,20760],[3441,20757],[5203,5261],[20760,20763],[5232,20764],[5145,5232],[5203,20766],[5174,20767],[20756,20768],[4713,20769],[2136,20770],[20764,20766],[4916,20759],[5145,20761],[20763,20774],[5174,20765],[5261,20774],[5232,20777],[5261,20773],[20768,20779],[20761,20767],[4916,20771],[20762,20769],[20758,20770],[5261,20768],[20762,20785],[2136,20786],[5117,5403],[4740,4943],[2163,3468],[5117,20790],[20789,20791],[5316,20792],[3468,20789],[5345,5403],[20792,20795],[5374,20796],[5287,5374],[5345,20798],[5316,20799],[20788,20800],[4740,20801],[2163,20802],[20796,20798],[4943,20791],[5287,20793],[20795,20806],[5316,20797],[5403,20806],[5374,20809],[5403,20805],[20800,20811],[20793,20799],[4943,20803],[20794,20801],[20790,20802],[5403,20800],[20794,20817],[2163,20818],[5119,5406],[4742,4945],[2165,3470],[5119,20822],[20821,20823],[5319,20824],[3470,20821],[5348,5406],[20824,20827],[5377,20828],[5290,5377],[5348,20830],[5319,20831],[20820,20832],[4742,20833],[2165,20834],[20828,20830],[4945,20823],[5290,20825],[20827,20838],[5319,20829],[5406,20838],[5377,20841],[5406,20837],[20832,20843],[20825,20831],[4945,20835],[20826,20833],[20822,20834],[5406,20832],[20826,20849],[2165,20850],[5146,5519],[4769,4972],[2192,3497],[5146,20854],[20853,20855],[5432,20856],[3497,20853],[5461,5519],[20856,20859],[5490,20860],[5291,5490],[5461,20862],[5432,20863],[20852,20864],[4769,20865],[2192,20866],[20860,20862],[4972,20855],[5291,20857],[20859,20870],[5432,20861],[5519,20870],[5490,20873],[5519,20869],[20864,20875],[20857,20863],[4972,20867],[20858,20865],[20854,20866],[5519,20864],[20858,20881],[2192,20882],[5148,5522],[4771,4974],[2194,3499],[5148,20886],[20885,20887],[5435,20888],[3499,20885],[5464,5522],[20888,20891],[5493,20892],[5293,5493],[5464,20894],[5435,20895],[20884,20896],[4771,20897],[2194,20898],[20892,20894],[4974,20887],[5293,20889],[20891,20902],[5435,20893],[5522,20902],[5493,20905],[5522,20901],[20896,20907],[20889,20895],[4974,20899],[20890,20897],[20886,20898],[5522,20896],[20890,20913],[2194,20914],[5175,5606],[4798,5001],[2221,3526],[5175,20918],[20917,20919],[5436,20920],[3526,20917],[5548,5606],[20920,20923],[5577,20924],[5320,5577],[5548,20926],[5436,20927],[20916,20928],[4798,20929],[2221,20930],[20924,20926],[5001,20919],[5320,20921],[20923,20934],[5436,20925],[5606,20934],[5577,20937],[5606,20933],[20928,20939],[20921,20927],[5001,20931],[20922,20929],[20918,20930],[5606,20928],[20922,20945],[2221,20946],[5177,5609],[4800,5003],[2223,3528],[5177,20950],[20949,20951],[5438,20952],[3528,20949],[5551,5609],[20952,20955],[5580,20956],[5322,5580],[5551,20958],[5438,20959],[20948,20960],[4800,20961],[2223,20962],[20956,20958],[5003,20951],[5322,20953],[20955,20966],[5438,20957],[5609,20966],[5580,20969],[5609,20965],[20960,20971],[20953,20959],[5003,20963],[20954,20961],[20950,20962],[5609,20960],[20954,20977],[2223,20978],[5204,5664],[4827,5030],[2250,3555],[5204,20982],[20981,20983],[5465,20984],[3555,20981],[5552,5664],[20984,20987],[5635,20988],[5349,5635],[5552,20990],[5465,20991],[20980,20992],[4827,20993],[2250,20994],[20988,20990],[5030,20983],[5349,20985],[20987,20998],[5465,20989],[5664,20998],[5635,21001],[5664,20997],[20992,21003],[20985,20991],[5030,20995],[20986,20993],[20982,20994],[5664,20992],[20986,21009],[2250,21010],[5206,5667],[4829,5032],[2252,3557],[5206,21014],[21013,21015],[5467,21016],[3557,21013],[5554,5667],[21016,21019],[5638,21020],[5351,5638],[5554,21022],[5467,21023],[21012,21024],[4829,21025],[2252,21026],[21020,21022],[5032,21015],[5351,21017],[21019,21030],[5467,21021],[5667,21030],[5638,21033],[5667,21029],[21024,21035],[21017,21023],[5032,21027],[21018,21025],[21014,21026],[5667,21024],[21018,21041],[2252,21042],[5233,5693],[4856,5059],[2279,3584],[5233,21046],[21045,21047],[5494,21048],[3584,21045],[5581,5693],[21048,21051],[5639,21052],[5378,5639],[5581,21054],[5494,21055],[21044,21056],[4856,21057],[2279,21058],[21052,21054],[5059,21047],[5378,21049],[21051,21062],[5494,21053],[5693,21062],[5639,21065],[5693,21061],[21056,21067],[21049,21055],[5059,21059],[21050,21057],[21046,21058],[5693,21056],[21050,21073],[2279,21074],[5235,5696],[4858,5061],[2281,3586],[5235,21078],[21077,21079],[5496,21080],[3586,21077],[5583,5696],[21080,21083],[5641,21084],[5380,5641],[5583,21086],[5496,21087],[21076,21088],[4858,21089],[2281,21090],[21084,21086],[5061,21079],[5380,21081],[21083,21094],[5496,21085],[5696,21094],[5641,21097],[5696,21093],[21088,21099],[21081,21087],[5061,21091],[21082,21089],[21078,21090],[5696,21088],[21082,21105],[2281,21106],[5262,5697],[4885,5088],[2308,3613],[5262,21110],[21109,21111],[5523,21112],[3613,21109],[5610,5697],[21112,21115],[5668,21116],[5407,5668],[5610,21118],[5523,21119],[21108,21120],[4885,21121],[2308,21122],[21116,21118],[5088,21111],[5407,21113],[21115,21126],[5523,21117],[5697,21126],[5668,21129],[5697,21125],[21120,21131],[21113,21119],[5088,21123],[21114,21121],[21110,21122],[5697,21120],[21114,21137],[2308,21138],[5264,5699],[4887,5090],[2310,3615],[5264,21142],[21141,21143],[5525,21144],[3615,21141],[5612,5699],[21144,21147],[5670,21148],[5409,5670],[5612,21150],[5525,21151],[21140,21152],[4887,21153],[2310,21154],[21148,21150],[5090,21143],[5409,21145],[21147,21158],[5525,21149],[5699,21158],[5670,21161],[5699,21157],[21152,21163],[21145,21151],[5090,21155],[21146,21153],[21142,21154],[5699,21152],[21146,21169],[2310,21170],[5751,5896],[4686,5722],[2337,3642],[5751,21174],[21173,21175],[5809,21176],[3642,21173],[5838,5896],[21176,21179],[5867,21180],[5780,5867],[5838,21182],[5809,21183],[21172,21184],[4686,21185],[2337,21186],[21180,21182],[5722,21175],[5780,21177],[21179,21190],[5809,21181],[5896,21190],[5867,21193],[5896,21189],[21184,21195],[21177,21183],[5722,21187],[21178,21185],[21174,21186],[5896,21184],[21178,21201],[2337,21202],[5754,5899],[4688,5725],[2339,3644],[5754,21206],[21205,21207],[5812,21208],[3644,21205],[5841,5899],[21208,21211],[5870,21212],[5783,5870],[5841,21214],[5812,21215],[21204,21216],[4688,21217],[2339,21218],[21212,21214],[5725,21207],[5783,21209],[21211,21222],[5812,21213],[5899,21222],[5870,21225],[5899,21221],[21216,21227],[21209,21215],[5725,21219],[21210,21217],[21206,21218],[5899,21216],[21210,21233],[2339,21234],[5925,6070],[4715,5726],[2366,3671],[5925,21238],[21237,21239],[5983,21240],[3671,21237],[6012,6070],[21240,21243],[6041,21244],[5954,6041],[6012,21246],[5983,21247],[21236,21248],[4715,21249],[2366,21250],[21244,21246],[5726,21239],[5954,21241],[21243,21254],[5983,21245],[6070,21254],[6041,21257],[6070,21253],[21248,21259],[21241,21247],[5726,21251],[21242,21249],[21238,21250],[6070,21248],[21242,21265],[2366,21266],[5928,6073],[4717,5728],[2368,3673],[5928,21270],[21269,21271],[5986,21272],[3673,21269],[6015,6073],[21272,21275],[6044,21276],[5957,6044],[6015,21278],[5986,21279],[21268,21280],[4717,21281],[2368,21282],[21276,21278],[5728,21271],[5957,21273],[21275,21286],[5986,21277],[6073,21286],[6044,21289],[6073,21285],[21280,21291],[21273,21279],[5728,21283],[21274,21281],[21270,21282],[6073,21280],[21274,21297],[2368,21298],[5929,6215],[4744,5755],[2395,3700],[5929,21302],[21301,21303],[6128,21304],[3700,21301],[6157,6215],[21304,21307],[6186,21308],[6099,6186],[6157,21310],[6128,21311],[21300,21312],[4744,21313],[2395,21314],[21308,21310],[5755,21303],[6099,21305],[21307,21318],[6128,21309],[6215,21318],[6186,21321],[6215,21317],[21312,21323],[21305,21311],[5755,21315],[21306,21313],[21302,21314],[6215,21312],[21306,21329],[2395,21330],[5931,6218],[4746,5757],[2397,3702],[5931,21334],[21333,21335],[6131,21336],[3702,21333],[6160,6218],[21336,21339],[6189,21340],[6102,6189],[6160,21342],[6131,21343],[21332,21344],[4746,21345],[2397,21346],[21340,21342],[5757,21335],[6102,21337],[21339,21350],[6131,21341],[6218,21350],[6189,21353],[6218,21349],[21344,21355],[21337,21343],[5757,21347],[21338,21345],[21334,21346],[6218,21344],[21338,21361],[2397,21362],[5958,6331],[4773,5784],[2424,3729],[5958,21366],[21365,21367],[6244,21368],[3729,21365],[6273,6331],[21368,21371],[6302,21372],[6103,6302],[6273,21374],[6244,21375],[21364,21376],[4773,21377],[2424,21378],[21372,21374],[5784,21367],[6103,21369],[21371,21382],[6244,21373],[6331,21382],[6302,21385],[6331,21381],[21376,21387],[21369,21375],[5784,21379],[21370,21377],[21366,21378],[6331,21376],[21370,21393],[2424,21394],[5960,6334],[4775,5786],[2426,3731],[5960,21398],[21397,21399],[6247,21400],[3731,21397],[6276,6334],[21400,21403],[6305,21404],[6105,6305],[6276,21406],[6247,21407],[21396,21408],[4775,21409],[2426,21410],[21404,21406],[5786,21399],[6105,21401],[21403,21414],[6247,21405],[6334,21414],[6305,21417],[6334,21413],[21408,21419],[21401,21407],[5786,21411],[21402,21409],[21398,21410],[6334,21408],[21402,21425],[2426,21426],[5987,6418],[4802,5813],[2453,3758],[5987,21430],[21429,21431],[6248,21432],[3758,21429],[6360,6418],[21432,21435],[6389,21436],[6132,6389],[6360,21438],[6248,21439],[21428,21440],[4802,21441],[2453,21442],[21436,21438],[5813,21431],[6132,21433],[21435,21446],[6248,21437],[6418,21446],[6389,21449],[6418,21445],[21440,21451],[21433,21439],[5813,21443],[21434,21441],[21430,21442],[6418,21440],[21434,21457],[2453,21458],[5989,6421],[4804,5815],[2455,3760],[5989,21462],[21461,21463],[6250,21464],[3760,21461],[6363,6421],[21464,21467],[6392,21468],[6134,6392],[6363,21470],[6250,21471],[21460,21472],[4804,21473],[2455,21474],[21468,21470],[5815,21463],[6134,21465],[21467,21478],[6250,21469],[6421,21478],[6392,21481],[6421,21477],[21472,21483],[21465,21471],[5815,21475],[21466,21473],[21462,21474],[6421,21472],[21466,21489],[2455,21490],[6016,6476],[4831,5842],[2482,3787],[6016,21494],[21493,21495],[6277,21496],[3787,21493],[6364,6476],[21496,21499],[6447,21500],[6161,6447],[6364,21502],[6277,21503],[21492,21504],[4831,21505],[2482,21506],[21500,21502],[5842,21495],[6161,21497],[21499,21510],[6277,21501],[6476,21510],[6447,21513],[6476,21509],[21504,21515],[21497,21503],[5842,21507],[21498,21505],[21494,21506],[6476,21504],[21498,21521],[2482,21522],[6018,6479],[4833,5844],[2484,3789],[6018,21526],[21525,21527],[6279,21528],[3789,21525],[6366,6479],[21528,21531],[6450,21532],[6163,6450],[6366,21534],[6279,21535],[21524,21536],[4833,21537],[2484,21538],[21532,21534],[5844,21527],[6163,21529],[21531,21542],[6279,21533],[6479,21542],[6450,21545],[6479,21541],[21536,21547],[21529,21535],[5844,21539],[21530,21537],[21526,21538],[6479,21536],[21530,21553],[2484,21554],[6045,6505],[4860,5871],[2511,3816],[6045,21558],[21557,21559],[6306,21560],[3816,21557],[6393,6505],[21560,21563],[6451,21564],[6190,6451],[6393,21566],[6306,21567],[21556,21568],[4860,21569],[2511,21570],[21564,21566],[5871,21559],[6190,21561],[21563,21574],[6306,21565],[6505,21574],[6451,21577],[6505,21573],[21568,21579],[21561,21567],[5871,21571],[21562,21569],[21558,21570],[6505,21568],[21562,21585],[2511,21586],[6047,6508],[4862,5873],[2513,3818],[6047,21590],[21589,21591],[6308,21592],[3818,21589],[6395,6508],[21592,21595],[6453,21596],[6192,6453],[6395,21598],[6308,21599],[21588,21600],[4862,21601],[2513,21602],[21596,21598],[5873,21591],[6192,21593],[21595,21606],[6308,21597],[6508,21606],[6453,21609],[6508,21605],[21600,21611],[21593,21599],[5873,21603],[21594,21601],[21590,21602],[6508,21600],[21594,21617],[2513,21618],[6074,6509],[4889,5900],[2540,3845],[6074,21622],[21621,21623],[6335,21624],[3845,21621],[6422,6509],[21624,21627],[6480,21628],[6219,6480],[6422,21630],[6335,21631],[21620,21632],[4889,21633],[2540,21634],[21628,21630],[5900,21623],[6219,21625],[21627,21638],[6335,21629],[6509,21638],[6480,21641],[6509,21637],[21632,21643],[21625,21631],[5900,21635],[21626,21633],[21622,21634],[6509,21632],[21626,21649],[2540,21650],[6076,6511],[4891,5902],[2542,3847],[6076,21654],[21653,21655],[6337,21656],[3847,21653],[6424,6511],[21656,21659],[6482,21660],[6221,6482],[6424,21662],[6337,21663],[21652,21664],[4891,21665],[2542,21666],[21660,21662],[5902,21655],[6221,21657],[21659,21670],[6337,21661],[6511,21670],[6482,21673],[6511,21669],[21664,21675],[21657,21663],[5902,21667],[21658,21665],[21654,21666],[6511,21664],[21658,21681],[2542,21682],[6534,6679],[4918,5730],[2569,3874],[6534,21686],[21685,21687],[6592,21688],[3874,21685],[6621,6679],[21688,21691],[6650,21692],[6563,6650],[6621,21694],[6592,21695],[21684,21696],[4918,21697],[2569,21698],[21692,21694],[5730,21687],[6563,21689],[21691,21702],[6592,21693],[6679,21702],[6650,21705],[6679,21701],[21696,21707],[21689,21695],[5730,21699],[21690,21697],[21686,21698],[6679,21696],[21690,21713],[2569,21714],[6537,6682],[4920,5732],[2571,3876],[6537,21718],[21717,21719],[6595,21720],[3876,21717],[6624,6682],[21720,21723],[6653,21724],[6566,6653],[6624,21726],[6595,21727],[21716,21728],[4920,21729],[2571,21730],[21724,21726],[5732,21719],[6566,21721],[21723,21734],[6595,21725],[6682,21734],[6653,21737],[6682,21733],[21728,21739],[21721,21727],[5732,21731],[21722,21729],[21718,21730],[6682,21728],[21722,21745],[2571,21746],[6538,6824],[4947,5759],[2598,3903],[6538,21750],[21749,21751],[6737,21752],[3903,21749],[6766,6824],[21752,21755],[6795,21756],[6708,6795],[6766,21758],[6737,21759],[21748,21760],[4947,21761],[2598,21762],[21756,21758],[5759,21751],[6708,21753],[21755,21766],[6737,21757],[6824,21766],[6795,21769],[6824,21765],[21760,21771],[21753,21759],[5759,21763],[21754,21761],[21750,21762],[6824,21760],[21754,21777],[2598,21778],[6540,6827],[4949,5761],[2600,3905],[6540,21782],[21781,21783],[6740,21784],[3905,21781],[6769,6827],[21784,21787],[6798,21788],[6711,6798],[6769,21790],[6740,21791],[21780,21792],[4949,21793],[2600,21794],[21788,21790],[5761,21783],[6711,21785],[21787,21798],[6740,21789],[6827,21798],[6798,21801],[6827,21797],[21792,21803],[21785,21791],[5761,21795],[21786,21793],[21782,21794],[6827,21792],[21786,21809],[2600,21810],[6567,6940],[4976,5788],[2627,3932],[6567,21814],[21813,21815],[6853,21816],[3932,21813],[6882,6940],[21816,21819],[6911,21820],[6712,6911],[6882,21822],[6853,21823],[21812,21824],[4976,21825],[2627,21826],[21820,21822],[5788,21815],[6712,21817],[21819,21830],[6853,21821],[6940,21830],[6911,21833],[6940,21829],[21824,21835],[21817,21823],[5788,21827],[21818,21825],[21814,21826],[6940,21824],[21818,21841],[2627,21842],[6569,6943],[4978,5790],[2629,3934],[6569,21846],[21845,21847],[6856,21848],[3934,21845],[6885,6943],[21848,21851],[6914,21852],[6714,6914],[6885,21854],[6856,21855],[21844,21856],[4978,21857],[2629,21858],[21852,21854],[5790,21847],[6714,21849],[21851,21862],[6856,21853],[6943,21862],[6914,21865],[6943,21861],[21856,21867],[21849,21855],[5790,21859],[21850,21857],[21846,21858],[6943,21856],[21850,21873],[2629,21874],[6596,7027],[5005,5817],[2656,3961],[6596,21878],[21877,21879],[6857,21880],[3961,21877],[6969,7027],[21880,21883],[6998,21884],[6741,6998],[6969,21886],[6857,21887],[21876,21888],[5005,21889],[2656,21890],[21884,21886],[5817,21879],[6741,21881],[21883,21894],[6857,21885],[7027,21894],[6998,21897],[7027,21893],[21888,21899],[21881,21887],[5817,21891],[21882,21889],[21878,21890],[7027,21888],[21882,21905],[2656,21906],[6598,7030],[5007,5819],[2658,3963],[6598,21910],[21909,21911],[6859,21912],[3963,21909],[6972,7030],[21912,21915],[7001,21916],[6743,7001],[6972,21918],[6859,21919],[21908,21920],[5007,21921],[2658,21922],[21916,21918],[5819,21911],[6743,21913],[21915,21926],[6859,21917],[7030,21926],[7001,21929],[7030,21925],[21920,21931],[21913,21919],[5819,21923],[21914,21921],[21910,21922],[7030,21920],[21914,21937],[2658,21938],[6625,7085],[5034,5846],[2685,3990],[6625,21942],[21941,21943],[6886,21944],[3990,21941],[6973,7085],[21944,21947],[7056,21948],[6770,7056],[6973,21950],[6886,21951],[21940,21952],[5034,21953],[2685,21954],[21948,21950],[5846,21943],[6770,21945],[21947,21958],[6886,21949],[7085,21958],[7056,21961],[7085,21957],[21952,21963],[21945,21951],[5846,21955],[21946,21953],[21942,21954],[7085,21952],[21946,21969],[2685,21970],[6627,7088],[5036,5848],[2687,3992],[6627,21974],[21973,21975],[6888,21976],[3992,21973],[6975,7088],[21976,21979],[7059,21980],[6772,7059],[6975,21982],[6888,21983],[21972,21984],[5036,21985],[2687,21986],[21980,21982],[5848,21975],[6772,21977],[21979,21990],[6888,21981],[7088,21990],[7059,21993],[7088,21989],[21984,21995],[21977,21983],[5848,21987],[21978,21985],[21974,21986],[7088,21984],[21978,22001],[2687,22002],[6654,7114],[5063,5875],[2714,4019],[6654,22006],[22005,22007],[6915,22008],[4019,22005],[7002,7114],[22008,22011],[7060,22012],[6799,7060],[7002,22014],[6915,22015],[22004,22016],[5063,22017],[2714,22018],[22012,22014],[5875,22007],[6799,22009],[22011,22022],[6915,22013],[7114,22022],[7060,22025],[7114,22021],[22016,22027],[22009,22015],[5875,22019],[22010,22017],[22006,22018],[7114,22016],[22010,22033],[2714,22034],[6656,7117],[5065,5877],[2716,4021],[6656,22038],[22037,22039],[6917,22040],[4021,22037],[7004,7117],[22040,22043],[7062,22044],[6801,7062],[7004,22046],[6917,22047],[22036,22048],[5065,22049],[2716,22050],[22044,22046],[5877,22039],[6801,22041],[22043,22054],[6917,22045],[7117,22054],[7062,22057],[7117,22053],[22048,22059],[22041,22047],[5877,22051],[22042,22049],[22038,22050],[7117,22048],[22042,22065],[2716,22066],[6683,7118],[5092,5904],[2743,4048],[6683,22070],[22069,22071],[6944,22072],[4048,22069],[7031,7118],[22072,22075],[7089,22076],[6828,7089],[7031,22078],[6944,22079],[22068,22080],[5092,22081],[2743,22082],[22076,22078],[5904,22071],[6828,22073],[22075,22086],[6944,22077],[7118,22086],[7089,22089],[7118,22085],[22080,22091],[22073,22079],[5904,22083],[22074,22081],[22070,22082],[7118,22080],[22074,22097],[2743,22098],[6685,7120],[5094,5906],[2745,4050],[6685,22102],[22101,22103],[6946,22104],[4050,22101],[7033,7120],[22104,22107],[7091,22108],[6830,7091],[7033,22110],[6946,22111],[22100,22112],[5094,22113],[2745,22114],[22108,22110],[5906,22103],[6830,22105],[22107,22118],[6946,22109],[7120,22118],[7091,22121],[7120,22117],[22112,22123],[22105,22111],[5906,22115],[22106,22113],[22102,22114],[7120,22112],[22106,22129],[2745,22130],[6542,7259],[5121,5933],[2772,4077],[6542,22134],[22133,22135],[7172,22136],[4077,22133],[7201,7259],[22136,22139],[7230,22140],[7143,7230],[7201,22142],[7172,22143],[22132,22144],[5121,22145],[2772,22146],[22140,22142],[5933,22135],[7143,22137],[22139,22150],[7172,22141],[7259,22150],[7230,22153],[7259,22149],[22144,22155],[22137,22143],[5933,22147],[22138,22145],[22134,22146],[7259,22144],[22138,22161],[2772,22162],[6544,7262],[5123,5935],[2774,4079],[6544,22166],[22165,22167],[7175,22168],[4079,22165],[7204,7262],[22168,22171],[7233,22172],[7146,7233],[7204,22174],[7175,22175],[22164,22176],[5123,22177],[2774,22178],[22172,22174],[5935,22167],[7146,22169],[22171,22182],[7175,22173],[7262,22182],[7233,22185],[7262,22181],[22176,22187],[22169,22175],[5935,22179],[22170,22177],[22166,22178],[7262,22176],[22170,22193],[2774,22194],[6571,7375],[5150,5962],[2801,4106],[6571,22198],[22197,22199],[7288,22200],[4106,22197],[7317,7375],[22200,22203],[7346,22204],[7147,7346],[7317,22206],[7288,22207],[22196,22208],[5150,22209],[2801,22210],[22204,22206],[5962,22199],[7147,22201],[22203,22214],[7288,22205],[7375,22214],[7346,22217],[7375,22213],[22208,22219],[22201,22207],[5962,22211],[22202,22209],[22198,22210],[7375,22208],[22202,22225],[2801,22226],[6573,7378],[5152,5964],[2803,4108],[6573,22230],[22229,22231],[7291,22232],[4108,22229],[7320,7378],[22232,22235],[7349,22236],[7149,7349],[7320,22238],[7291,22239],[22228,22240],[5152,22241],[2803,22242],[22236,22238],[5964,22231],[7149,22233],[22235,22246],[7291,22237],[7378,22246],[7349,22249],[7378,22245],[22240,22251],[22233,22239],[5964,22243],[22234,22241],[22230,22242],[7378,22240],[22234,22257],[2803,22258],[6600,7462],[5179,5991],[2830,4135],[6600,22262],[22261,22263],[7292,22264],[4135,22261],[7404,7462],[22264,22267],[7433,22268],[7176,7433],[7404,22270],[7292,22271],[22260,22272],[5179,22273],[2830,22274],[22268,22270],[5991,22263],[7176,22265],[22267,22278],[7292,22269],[7462,22278],[7433,22281],[7462,22277],[22272,22283],[22265,22271],[5991,22275],[22266,22273],[22262,22274],[7462,22272],[22266,22289],[2830,22290],[6602,7465],[5181,5993],[2832,4137],[6602,22294],[22293,22295],[7294,22296],[4137,22293],[7407,7465],[22296,22299],[7436,22300],[7178,7436],[7407,22302],[7294,22303],[22292,22304],[5181,22305],[2832,22306],[22300,22302],[5993,22295],[7178,22297],[22299,22310],[7294,22301],[7465,22310],[7436,22313],[7465,22309],[22304,22315],[22297,22303],[5993,22307],[22298,22305],[22294,22306],[7465,22304],[22298,22321],[2832,22322],[6629,7520],[5208,6020],[2859,4164],[6629,22326],[22325,22327],[7321,22328],[4164,22325],[7408,7520],[22328,22331],[7491,22332],[7205,7491],[7408,22334],[7321,22335],[22324,22336],[5208,22337],[2859,22338],[22332,22334],[6020,22327],[7205,22329],[22331,22342],[7321,22333],[7520,22342],[7491,22345],[7520,22341],[22336,22347],[22329,22335],[6020,22339],[22330,22337],[22326,22338],[7520,22336],[22330,22353],[2859,22354],[6631,7523],[5210,6022],[2861,4166],[6631,22358],[22357,22359],[7323,22360],[4166,22357],[7410,7523],[22360,22363],[7494,22364],[7207,7494],[7410,22366],[7323,22367],[22356,22368],[5210,22369],[2861,22370],[22364,22366],[6022,22359],[7207,22361],[22363,22374],[7323,22365],[7523,22374],[7494,22377],[7523,22373],[22368,22379],[22361,22367],[6022,22371],[22362,22369],[22358,22370],[7523,22368],[22362,22385],[2861,22386],[6658,7549],[5237,6049],[2888,4193],[6658,22390],[22389,22391],[7350,22392],[4193,22389],[7437,7549],[22392,22395],[7495,22396],[7234,7495],[7437,22398],[7350,22399],[22388,22400],[5237,22401],[2888,22402],[22396,22398],[6049,22391],[7234,22393],[22395,22406],[7350,22397],[7549,22406],[7495,22409],[7549,22405],[22400,22411],[22393,22399],[6049,22403],[22394,22401],[22390,22402],[7549,22400],[22394,22417],[2888,22418],[6660,7552],[5239,6051],[2890,4195],[6660,22422],[22421,22423],[7352,22424],[4195,22421],[7439,7552],[22424,22427],[7497,22428],[7236,7497],[7439,22430],[7352,22431],[22420,22432],[5239,22433],[2890,22434],[22428,22430],[6051,22423],[7236,22425],[22427,22438],[7352,22429],[7552,22438],[7497,22441],[7552,22437],[22432,22443],[22425,22431],[6051,22435],[22426,22433],[22422,22434],[7552,22432],[22426,22449],[2890,22450],[6687,7553],[5266,6078],[2917,4222],[6687,22454],[22453,22455],[7379,22456],[4222,22453],[7466,7553],[22456,22459],[7524,22460],[7263,7524],[7466,22462],[7379,22463],[22452,22464],[5266,22465],[2917,22466],[22460,22462],[6078,22455],[7263,22457],[22459,22470],[7379,22461],[7553,22470],[7524,22473],[7553,22469],[22464,22475],[22457,22463],[6078,22467],[22458,22465],[22454,22466],[7553,22464],[22458,22481],[2917,22482],[6689,7555],[5268,6080],[2919,4224],[6689,22486],[22485,22487],[7381,22488],[4224,22485],[7468,7555],[22488,22491],[7526,22492],[7265,7526],[7468,22494],[7381,22495],[22484,22496],[5268,22497],[2919,22498],[22492,22494],[6080,22487],[7265,22489],[22491,22502],[7381,22493],[7555,22502],[7526,22505],[7555,22501],[22496,22507],[22489,22495],[6080,22499],[22490,22497],[22486,22498],[7555,22496],[22490,22513],[2919,22514],[6716,7665],[5295,6107],[2946,4251],[6716,22518],[22517,22519],[7578,22520],[4251,22517],[7607,7665],[22520,22523],[7636,22524],[7151,7636],[7607,22526],[7578,22527],[22516,22528],[5295,22529],[2946,22530],[22524,22526],[6107,22519],[7151,22521],[22523,22534],[7578,22525],[7665,22534],[7636,22537],[7665,22533],[22528,22539],[22521,22527],[6107,22531],[22522,22529],[22518,22530],[7665,22528],[22522,22545],[2946,22546],[6718,7668],[5297,6109],[2948,4253],[6718,22550],[22549,22551],[7581,22552],[4253,22549],[7610,7668],[22552,22555],[7639,22556],[7153,7639],[7610,22558],[7581,22559],[22548,22560],[5297,22561],[2948,22562],[22556,22558],[6109,22551],[7153,22553],[22555,22566],[7581,22557],[7668,22566],[7639,22569],[7668,22565],[22560,22571],[22553,22559],[6109,22563],[22554,22561],[22550,22562],[7668,22560],[22554,22577],[2948,22578],[6745,7752],[5324,6136],[2975,4280],[6745,22582],[22581,22583],[7582,22584],[4280,22581],[7694,7752],[22584,22587],[7723,22588],[7180,7723],[7694,22590],[7582,22591],[22580,22592],[5324,22593],[2975,22594],[22588,22590],[6136,22583],[7180,22585],[22587,22598],[7582,22589],[7752,22598],[7723,22601],[7752,22597],[22592,22603],[22585,22591],[6136,22595],[22586,22593],[22582,22594],[7752,22592],[22586,22609],[2975,22610],[6747,7755],[5326,6138],[2977,4282],[6747,22614],[22613,22615],[7584,22616],[4282,22613],[7697,7755],[22616,22619],[7726,22620],[7182,7726],[7697,22622],[7584,22623],[22612,22624],[5326,22625],[2977,22626],[22620,22622],[6138,22615],[7182,22617],[22619,22630],[7584,22621],[7755,22630],[7726,22633],[7755,22629],[22624,22635],[22617,22623],[6138,22627],[22618,22625],[22614,22626],[7755,22624],[22618,22641],[2977,22642],[6774,7810],[5353,6165],[3004,4309],[6774,22646],[22645,22647],[7611,22648],[4309,22645],[7698,7810],[22648,22651],[7781,22652],[7209,7781],[7698,22654],[7611,22655],[22644,22656],[5353,22657],[3004,22658],[22652,22654],[6165,22647],[7209,22649],[22651,22662],[7611,22653],[7810,22662],[7781,22665],[7810,22661],[22656,22667],[22649,22655],[6165,22659],[22650,22657],[22646,22658],[7810,22656],[22650,22673],[3004,22674],[6776,7813],[5355,6167],[3006,4311],[6776,22678],[22677,22679],[7613,22680],[4311,22677],[7700,7813],[22680,22683],[7784,22684],[7211,7784],[7700,22686],[7613,22687],[22676,22688],[5355,22689],[3006,22690],[22684,22686],[6167,22679],[7211,22681],[22683,22694],[7613,22685],[7813,22694],[7784,22697],[7813,22693],[22688,22699],[22681,22687],[6167,22691],[22682,22689],[22678,22690],[7813,22688],[22682,22705],[3006,22706],[6803,7839],[5382,6194],[3033,4338],[6803,22710],[22709,22711],[7640,22712],[4338,22709],[7727,7839],[22712,22715],[7785,22716],[7238,7785],[7727,22718],[7640,22719],[22708,22720],[5382,22721],[3033,22722],[22716,22718],[6194,22711],[7238,22713],[22715,22726],[7640,22717],[7839,22726],[7785,22729],[7839,22725],[22720,22731],[22713,22719],[6194,22723],[22714,22721],[22710,22722],[7839,22720],[22714,22737],[3033,22738],[6805,7842],[5384,6196],[3035,4340],[6805,22742],[22741,22743],[7642,22744],[4340,22741],[7729,7842],[22744,22747],[7787,22748],[7240,7787],[7729,22750],[7642,22751],[22740,22752],[5384,22753],[3035,22754],[22748,22750],[6196,22743],[7240,22745],[22747,22758],[7642,22749],[7842,22758],[7787,22761],[7842,22757],[22752,22763],[22745,22751],[6196,22755],[22746,22753],[22742,22754],[7842,22752],[22746,22769],[3035,22770],[6832,7843],[5411,6223],[3062,4367],[6832,22774],[22773,22775],[7669,22776],[4367,22773],[7756,7843],[22776,22779],[7814,22780],[7267,7814],[7756,22782],[7669,22783],[22772,22784],[5411,22785],[3062,22786],[22780,22782],[6223,22775],[7267,22777],[22779,22790],[7669,22781],[7843,22790],[7814,22793],[7843,22789],[22784,22795],[22777,22783],[6223,22787],[22778,22785],[22774,22786],[7843,22784],[22778,22801],[3062,22802],[6834,7845],[5413,6225],[3064,4369],[6834,22806],[22805,22807],[7671,22808],[4369,22805],[7758,7845],[22808,22811],[7816,22812],[7269,7816],[7758,22814],[7671,22815],[22804,22816],[5413,22817],[3064,22818],[22812,22814],[6225,22807],[7269,22809],[22811,22822],[7671,22813],[7845,22822],[7816,22825],[7845,22821],[22816,22827],[22809,22815],[6225,22819],[22810,22817],[22806,22818],[7845,22816],[22810,22833],[3064,22834],[6861,7926],[5440,6252],[3091,4396],[6861,22838],[22837,22839],[7586,22840],[4396,22837],[7868,7926],[22840,22843],[7897,22844],[7296,7897],[7868,22846],[7586,22847],[22836,22848],[5440,22849],[3091,22850],[22844,22846],[6252,22839],[7296,22841],[22843,22854],[7586,22845],[7926,22854],[7897,22857],[7926,22853],[22848,22859],[22841,22847],[6252,22851],[22842,22849],[22838,22850],[7926,22848],[22842,22865],[3091,22866],[6863,7929],[5442,6254],[3093,4398],[6863,22870],[22869,22871],[7588,22872],[4398,22869],[7871,7929],[22872,22875],[7900,22876],[7298,7900],[7871,22878],[7588,22879],[22868,22880],[5442,22881],[3093,22882],[22876,22878],[6254,22871],[7298,22873],[22875,22886],[7588,22877],[7929,22886],[7900,22889],[7929,22885],[22880,22891],[22873,22879],[6254,22883],[22874,22881],[22870,22882],[7929,22880],[22874,22897],[3093,22898],[6890,7984],[5469,6281],[3120,4425],[6890,22902],[22901,22903],[7615,22904],[4425,22901],[7872,7984],[22904,22907],[7955,22908],[7325,7955],[7872,22910],[7615,22911],[22900,22912],[5469,22913],[3120,22914],[22908,22910],[6281,22903],[7325,22905],[22907,22918],[7615,22909],[7984,22918],[7955,22921],[7984,22917],[22912,22923],[22905,22911],[6281,22915],[22906,22913],[22902,22914],[7984,22912],[22906,22929],[3120,22930],[6892,7987],[5471,6283],[3122,4427],[6892,22934],[22933,22935],[7617,22936],[4427,22933],[7874,7987],[22936,22939],[7958,22940],[7327,7958],[7874,22942],[7617,22943],[22932,22944],[5471,22945],[3122,22946],[22940,22942],[6283,22935],[7327,22937],[22939,22950],[7617,22941],[7987,22950],[7958,22953],[7987,22949],[22944,22955],[22937,22943],[6283,22947],[22938,22945],[22934,22946],[7987,22944],[22938,22961],[3122,22962],[6919,8013],[5498,6310],[3149,4454],[6919,22966],[22965,22967],[7644,22968],[4454,22965],[7901,8013],[22968,22971],[7959,22972],[7354,7959],[7901,22974],[7644,22975],[22964,22976],[5498,22977],[3149,22978],[22972,22974],[6310,22967],[7354,22969],[22971,22982],[7644,22973],[8013,22982],[7959,22985],[8013,22981],[22976,22987],[22969,22975],[6310,22979],[22970,22977],[22966,22978],[8013,22976],[22970,22993],[3149,22994],[6921,8016],[5500,6312],[3151,4456],[6921,22998],[22997,22999],[7646,23000],[4456,22997],[7903,8016],[23000,23003],[7961,23004],[7356,7961],[7903,23006],[7646,23007],[22996,23008],[5500,23009],[3151,23010],[23004,23006],[6312,22999],[7356,23001],[23003,23014],[7646,23005],[8016,23014],[7961,23017],[8016,23013],[23008,23019],[23001,23007],[6312,23011],[23002,23009],[22998,23010],[8016,23008],[23002,23025],[3151,23026],[6948,8017],[5527,6339],[3178,4483],[6948,23030],[23029,23031],[7673,23032],[4483,23029],[7930,8017],[23032,23035],[7988,23036],[7383,7988],[7930,23038],[7673,23039],[23028,23040],[5527,23041],[3178,23042],[23036,23038],[6339,23031],[7383,23033],[23035,23046],[7673,23037],[8017,23046],[7988,23049],[8017,23045],[23040,23051],[23033,23039],[6339,23043],[23034,23041],[23030,23042],[8017,23040],[23034,23057],[3178,23058],[6950,8019],[5529,6341],[3180,4485],[6950,23062],[23061,23063],[7675,23064],[4485,23061],[7932,8019],[23064,23067],[7990,23068],[7385,7990],[7932,23070],[7675,23071],[23060,23072],[5529,23073],[3180,23074],[23068,23070],[6341,23063],[7385,23065],[23067,23078],[7675,23069],[8019,23078],[7990,23081],[8019,23077],[23072,23083],[23065,23071],[6341,23075],[23066,23073],[23062,23074],[8019,23072],[23066,23089],[3180,23090],[6977,8071],[5556,6368],[3207,4512],[6977,23094],[23093,23095],[7702,23096],[4512,23093],[7876,8071],[23096,23099],[8042,23100],[7412,8042],[7876,23102],[7702,23103],[23092,23104],[5556,23105],[3207,23106],[23100,23102],[6368,23095],[7412,23097],[23099,23110],[7702,23101],[8071,23110],[8042,23113],[8071,23109],[23104,23115],[23097,23103],[6368,23107],[23098,23105],[23094,23106],[8071,23104],[23098,23121],[3207,23122],[6979,8074],[5558,6370],[3209,4514],[6979,23126],[23125,23127],[7704,23128],[4514,23125],[7878,8074],[23128,23131],[8045,23132],[7414,8045],[7878,23134],[7704,23135],[23124,23136],[5558,23137],[3209,23138],[23132,23134],[6370,23127],[7414,23129],[23131,23142],[7704,23133],[8074,23142],[8045,23145],[8074,23141],[23136,23147],[23129,23135],[6370,23139],[23130,23137],[23126,23138],[8074,23136],[23130,23153],[3209,23154],[7006,8100],[5585,6397],[3236,4541],[7006,23158],[23157,23159],[7731,23160],[4541,23157],[7905,8100],[23160,23163],[8046,23164],[7441,8046],[7905,23166],[7731,23167],[23156,23168],[5585,23169],[3236,23170],[23164,23166],[6397,23159],[7441,23161],[23163,23174],[7731,23165],[8100,23174],[8046,23177],[8100,23173],[23168,23179],[23161,23167],[6397,23171],[23162,23169],[23158,23170],[8100,23168],[23162,23185],[3236,23186],[7008,8103],[5587,6399],[3238,4543],[7008,23190],[23189,23191],[7733,23192],[4543,23189],[7907,8103],[23192,23195],[8048,23196],[7443,8048],[7907,23198],[7733,23199],[23188,23200],[5587,23201],[3238,23202],[23196,23198],[6399,23191],[7443,23193],[23195,23206],[7733,23197],[8103,23206],[8048,23209],[8103,23205],[23200,23211],[23193,23199],[6399,23203],[23194,23201],[23190,23202],[8103,23200],[23194,23217],[3238,23218],[7035,8104],[5614,6426],[3265,4570],[7035,23222],[23221,23223],[7760,23224],[4570,23221],[7934,8104],[23224,23227],[8075,23228],[7470,8075],[7934,23230],[7760,23231],[23220,23232],[5614,23233],[3265,23234],[23228,23230],[6426,23223],[7470,23225],[23227,23238],[7760,23229],[8104,23238],[8075,23241],[8104,23237],[23232,23243],[23225,23231],[6426,23235],[23226,23233],[23222,23234],[8104,23232],[23226,23249],[3265,23250],[7037,8106],[5616,6428],[3267,4572],[7037,23254],[23253,23255],[7762,23256],[4572,23253],[7936,8106],[23256,23259],[8077,23260],[7472,8077],[7936,23262],[7762,23263],[23252,23264],[5616,23265],[3267,23266],[23260,23262],[6428,23255],[7472,23257],[23259,23270],[7762,23261],[8106,23270],[8077,23273],[8106,23269],[23264,23275],[23257,23263],[6428,23267],[23258,23265],[23254,23266],[8106,23264],[23258,23281],[3267,23282],[7064,8129],[5643,6455],[3294,4599],[7064,23286],[23285,23287],[7789,23288],[4599,23285],[7963,8129],[23288,23291],[8050,23292],[7499,8050],[7963,23294],[7789,23295],[23284,23296],[5643,23297],[3294,23298],[23292,23294],[6455,23287],[7499,23289],[23291,23302],[7789,23293],[8129,23302],[8050,23305],[8129,23301],[23296,23307],[23289,23295],[6455,23299],[23290,23297],[23286,23298],[8129,23296],[23290,23313],[3294,23314],[7066,8132],[5645,6457],[3296,4601],[7066,23318],[23317,23319],[7791,23320],[4601,23317],[7965,8132],[23320,23323],[8052,23324],[7501,8052],[7965,23326],[7791,23327],[23316,23328],[5645,23329],[3296,23330],[23324,23326],[6457,23319],[7501,23321],[23323,23334],[7791,23325],[8132,23334],[8052,23337],[8132,23333],[23328,23339],[23321,23327],[6457,23331],[23322,23329],[23318,23330],[8132,23328],[23322,23345],[3296,23346],[7093,8133],[5672,6484],[3323,4628],[7093,23350],[23349,23351],[7818,23352],[4628,23349],[7992,8133],[23352,23355],[8079,23356],[7528,8079],[7992,23358],[7818,23359],[23348,23360],[5672,23361],[3323,23362],[23356,23358],[6484,23351],[7528,23353],[23355,23366],[7818,23357],[8133,23366],[8079,23369],[8133,23365],[23360,23371],[23353,23359],[6484,23363],[23354,23361],[23350,23362],[8133,23360],[23354,23377],[3323,23378],[7095,8135],[5674,6486],[3325,4630],[7095,23382],[23381,23383],[7820,23384],[4630,23381],[7994,8135],[23384,23387],[8081,23388],[7530,8081],[7994,23390],[7820,23391],[23380,23392],[5674,23393],[3325,23394],[23388,23390],[6486,23383],[7530,23385],[23387,23398],[7820,23389],[8135,23398],[8081,23401],[8135,23397],[23392,23403],[23385,23391],[6486,23395],[23386,23393],[23382,23394],[8135,23392],[23386,23409],[3325,23410],[7122,8137],[5701,6513],[3352,4657],[7122,23414],[23413,23415],[7847,23416],[4657,23413],[8021,8137],[23416,23419],[8108,23420],[7557,8108],[8021,23422],[7847,23423],[23412,23424],[5701,23425],[3352,23426],[23420,23422],[6513,23415],[7557,23417],[23419,23430],[7847,23421],[8137,23430],[8108,23433],[8137,23429],[23424,23435],[23417,23423],[6513,23427],[23418,23425],[23414,23426],[8137,23424],[23418,23441],[3352,23442],[7124,8139],[5703,6515],[3354,4659],[7124,23446],[23445,23447],[7849,23448],[4659,23445],[8023,8139],[23448,23451],[8110,23452],[7559,8110],[8023,23454],[7849,23455],[23444,23456],[5703,23457],[3354,23458],[23452,23454],[6515,23447],[7559,23449],[23451,23462],[7849,23453],[8139,23462],[8110,23465],[8139,23461],[23456,23467],[23449,23455],[6515,23459],[23450,23457],[23446,23458],[8139,23456],[23450,23473],[3354,23474],[9526,19311],[9989,19279],[9526,19279],[9989,19311],[10452,19375],[10915,19343],[10452,19343],[10915,19375],[9507,19310],[9970,19278],[9507,19278],[9970,19310],[11378,19439],[11841,19407],[11378,19407],[11841,19439],[9483,19308],[9946,19276],[9483,19276],[9946,19308],[12304,19503],[12767,19471],[12304,19471],[12767,19503],[9427,19312],[9890,19280],[9427,19280],[9890,19312],[13230,19567],[13693,19535],[13230,19535],[13693,19567],[9496,19315],[9959,19283],[9496,19283],[9959,19315],[14156,19631],[14619,19599],[14156,19599],[14619,19631],[9295,19304],[9758,19272],[9295,19272],[9758,19304],[15082,19695],[15545,19663],[15082,19663],[15545,19695],[9510,19300],[9973,19268],[9510,19268],[9973,19300],[16008,19759],[16471,19727],[16008,19727],[16471,19759],[9442,19306],[9905,19274],[9442,19274],[9905,19306],[16934,19823],[17397,19791],[16934,19791],[17397,19823],[9465,19303],[9928,19271],[9465,19271],[9928,19303],[17860,19887],[18323,19855],[17860,19855],[18323,19887],[9501,19309],[9964,19277],[9501,19277],[9964,19309],[18786,19951],[19249,19919],[18786,19919],[19249,19951],[10433,19374],[10896,19342],[10433,19342],[10896,19374],[11359,19438],[11822,19406],[11359,19406],[11822,19438],[10409,19372],[10872,19340],[10409,19340],[10872,19372],[12285,19502],[12748,19470],[12285,19470],[12748,19502],[10353,19376],[10816,19344],[10353,19344],[10816,19376],[13211,19566],[13674,19534],[13211,19534],[13674,19566],[10422,19379],[10885,19347],[10422,19347],[10885,19379],[14137,19630],[14600,19598],[14137,19598],[14600,19630],[10221,19368],[10684,19336],[10221,19336],[10684,19368],[15063,19694],[15526,19662],[15063,19662],[15526,19694],[10436,19364],[10899,19332],[10436,19332],[10899,19364],[15989,19758],[16452,19726],[15989,19726],[16452,19758],[10368,19370],[10831,19338],[10368,19338],[10831,19370],[16915,19822],[17378,19790],[16915,19790],[17378,19822],[10391,19367],[10854,19335],[10391,19335],[10854,19367],[17841,19886],[18304,19854],[17841,19854],[18304,19886],[10427,19373],[10890,19341],[10427,19341],[10890,19373],[18767,19950],[19230,19918],[18767,19918],[19230,19950],[11335,19436],[11798,19404],[11335,19404],[11798,19436],[12261,19500],[12724,19468],[12261,19468],[12724,19500],[11279,19440],[11742,19408],[11279,19408],[11742,19440],[13187,19564],[13650,19532],[13187,19532],[13650,19564],[11348,19443],[11811,19411],[11348,19411],[11811,19443],[14113,19628],[14576,19596],[14113,19596],[14576,19628],[11147,19432],[11610,19400],[11147,19400],[11610,19432],[15039,19692],[15502,19660],[15039,19660],[15502,19692],[11362,19428],[11825,19396],[11362,19396],[11825,19428],[15965,19756],[16428,19724],[15965,19724],[16428,19756],[11294,19434],[11757,19402],[11294,19402],[11757,19434],[16891,19820],[17354,19788],[16891,19788],[17354,19820],[11317,19431],[11780,19399],[11317,19399],[11780,19431],[17817,19884],[18280,19852],[17817,19852],[18280,19884],[11353,19437],[11816,19405],[11353,19405],[11816,19437],[18743,19948],[19206,19916],[18743,19916],[19206,19948],[12205,19504],[12668,19472],[12205,19472],[12668,19504],[13131,19568],[13594,19536],[13131,19536],[13594,19568],[12274,19507],[12737,19475],[12274,19475],[12737,19507],[14057,19632],[14520,19600],[14057,19600],[14520,19632],[12073,19496],[12536,19464],[12073,19464],[12536,19496],[14983,19696],[15446,19664],[14983,19664],[15446,19696],[12288,19492],[12751,19460],[12288,19460],[12751,19492],[15909,19760],[16372,19728],[15909,19728],[16372,19760],[12220,19498],[12683,19466],[12220,19466],[12683,19498],[16835,19824],[17298,19792],[16835,19792],[17298,19824],[12243,19495],[12706,19463],[12243,19463],[12706,19495],[17761,19888],[18224,19856],[17761,19856],[18224,19888],[12279,19501],[12742,19469],[12279,19469],[12742,19501],[18687,19952],[19150,19920],[18687,19920],[19150,19952],[13200,19571],[13663,19539],[13200,19539],[13663,19571],[14126,19635],[14589,19603],[14126,19603],[14589,19635],[12999,19560],[13462,19528],[12999,19528],[13462,19560],[15052,19699],[15515,19667],[15052,19667],[15515,19699],[13214,19556],[13677,19524],[13214,19524],[13677,19556],[15978,19763],[16441,19731],[15978,19731],[16441,19763],[13146,19562],[13609,19530],[13146,19530],[13609,19562],[16904,19827],[17367,19795],[16904,19795],[17367,19827],[13169,19559],[13632,19527],[13169,19527],[13632,19559],[17830,19891],[18293,19859],[17830,19859],[18293,19891],[13205,19565],[13668,19533],[13205,19533],[13668,19565],[18756,19955],[19219,19923],[18756,19923],[19219,19955],[13925,19624],[14388,19592],[13925,19592],[14388,19624],[14851,19688],[15314,19656],[14851,19656],[15314,19688],[14140,19620],[14603,19588],[14140,19588],[14603,19620],[15777,19752],[16240,19720],[15777,19720],[16240,19752],[14072,19626],[14535,19594],[14072,19594],[14535,19626],[16703,19816],[17166,19784],[16703,19784],[17166,19816],[14095,19623],[14558,19591],[14095,19591],[14558,19623],[17629,19880],[18092,19848],[17629,19848],[18092,19880],[14131,19629],[14594,19597],[14131,19597],[14594,19629],[18555,19944],[19018,19912],[18555,19912],[19018,19944],[15066,19684],[15529,19652],[15066,19652],[15529,19684],[15992,19748],[16455,19716],[15992,19716],[16455,19748],[14998,19690],[15461,19658],[14998,19658],[15461,19690],[16918,19812],[17381,19780],[16918,19780],[17381,19812],[15021,19687],[15484,19655],[15021,19655],[15484,19687],[17844,19876],[18307,19844],[17844,19844],[18307,19876],[15057,19693],[15520,19661],[15057,19661],[15520,19693],[18770,19940],[19233,19908],[18770,19908],[19233,19940],[15924,19754],[16387,19722],[15924,19722],[16387,19754],[16850,19818],[17313,19786],[16850,19786],[17313,19818],[15947,19751],[16410,19719],[15947,19719],[16410,19751],[17776,19882],[18239,19850],[17776,19850],[18239,19882],[15983,19757],[16446,19725],[15983,19725],[16446,19757],[18702,19946],[19165,19914],[18702,19914],[19165,19946],[16873,19815],[17336,19783],[16873,19783],[17336,19815],[17799,19879],[18262,19847],[17799,19847],[18262,19879],[16909,19821],[17372,19789],[16909,19789],[17372,19821],[18725,19943],[19188,19911],[18725,19911],[19188,19943],[17835,19885],[18298,19853],[17835,19853],[18298,19885],[18761,19949],[19224,19917],[18761,19917],[19224,19949],[10450,20014],[10913,19982],[10450,19982],[10913,20014],[11376,20078],[11839,20046],[11376,20046],[11839,20078],[10371,20012],[10834,19980],[10371,19980],[10834,20012],[12302,20142],[12765,20110],[12302,20110],[12765,20142],[10335,20016],[10798,19984],[10335,19984],[10798,20016],[13228,20206],[13691,20174],[13228,20174],[13691,20206],[10356,20019],[10819,19987],[10356,19987],[10819,20019],[14154,20270],[14617,20238],[14154,20238],[14617,20270],[10338,20008],[10801,19976],[10338,19976],[10801,20008],[15080,20334],[15543,20302],[15080,20302],[15543,20334],[10352,20004],[10815,19972],[10352,19972],[10815,20004],[16006,20398],[16469,20366],[16006,20366],[16469,20398],[10226,20010],[10689,19978],[10226,19978],[10689,20010],[16932,20462],[17395,20430],[16932,20430],[17395,20462],[10444,20007],[10907,19975],[10444,19975],[10907,20007],[17858,20526],[18321,20494],[17858,20494],[18321,20526],[10227,20013],[10690,19981],[10227,19981],[10690,20013],[18784,20590],[19247,20558],[18784,20558],[19247,20590],[11297,20076],[11760,20044],[11297,20044],[11760,20076],[12223,20140],[12686,20108],[12223,20108],[12686,20140],[11261,20080],[11724,20048],[11261,20048],[11724,20080],[13149,20204],[13612,20172],[13149,20172],[13612,20204],[11282,20083],[11745,20051],[11282,20051],[11745,20083],[14075,20268],[14538,20236],[14075,20236],[14538,20268],[11264,20072],[11727,20040],[11264,20040],[11727,20072],[15001,20332],[15464,20300],[15001,20300],[15464,20332],[11278,20068],[11741,20036],[11278,20036],[11741,20068],[15927,20396],[16390,20364],[15927,20364],[16390,20396],[11152,20074],[11615,20042],[11152,20042],[11615,20074],[16853,20460],[17316,20428],[16853,20428],[17316,20460],[11370,20071],[11833,20039],[11370,20039],[11833,20071],[17779,20524],[18242,20492],[17779,20492],[18242,20524],[11153,20077],[11616,20045],[11153,20045],[11616,20077],[18705,20588],[19168,20556],[18705,20556],[19168,20588],[12187,20144],[12650,20112],[12187,20112],[12650,20144],[13113,20208],[13576,20176],[13113,20176],[13576,20208],[12208,20147],[12671,20115],[12208,20115],[12671,20147],[14039,20272],[14502,20240],[14039,20240],[14502,20272],[12190,20136],[12653,20104],[12190,20104],[12653,20136],[14965,20336],[15428,20304],[14965,20304],[15428,20336],[12204,20132],[12667,20100],[12204,20100],[12667,20132],[15891,20400],[16354,20368],[15891,20368],[16354,20400],[12078,20138],[12541,20106],[12078,20106],[12541,20138],[16817,20464],[17280,20432],[16817,20432],[17280,20464],[12296,20135],[12759,20103],[12296,20103],[12759,20135],[17743,20528],[18206,20496],[17743,20496],[18206,20528],[12079,20141],[12542,20109],[12079,20109],[12542,20141],[18669,20592],[19132,20560],[18669,20560],[19132,20592],[13134,20211],[13597,20179],[13134,20179],[13597,20211],[14060,20275],[14523,20243],[14060,20243],[14523,20275],[13116,20200],[13579,20168],[13116,20168],[13579,20200],[14986,20339],[15449,20307],[14986,20307],[15449,20339],[13130,20196],[13593,20164],[13130,20164],[13593,20196],[15912,20403],[16375,20371],[15912,20371],[16375,20403],[13004,20202],[13467,20170],[13004,20170],[13467,20202],[16838,20467],[17301,20435],[16838,20435],[17301,20467],[13222,20199],[13685,20167],[13222,20167],[13685,20199],[17764,20531],[18227,20499],[17764,20499],[18227,20531],[13005,20205],[13468,20173],[13005,20173],[13468,20205],[18690,20595],[19153,20563],[18690,20563],[19153,20595],[14042,20264],[14505,20232],[14042,20232],[14505,20264],[14968,20328],[15431,20296],[14968,20296],[15431,20328],[14056,20260],[14519,20228],[14056,20228],[14519,20260],[15894,20392],[16357,20360],[15894,20360],[16357,20392],[13930,20266],[14393,20234],[13930,20234],[14393,20266],[16820,20456],[17283,20424],[16820,20424],[17283,20456],[14148,20263],[14611,20231],[14148,20231],[14611,20263],[17746,20520],[18209,20488],[17746,20488],[18209,20520],[13931,20269],[14394,20237],[13931,20237],[14394,20269],[18672,20584],[19135,20552],[18672,20552],[19135,20584],[14982,20324],[15445,20292],[14982,20292],[15445,20324],[15908,20388],[16371,20356],[15908,20356],[16371,20388],[14856,20330],[15319,20298],[14856,20298],[15319,20330],[16834,20452],[17297,20420],[16834,20420],[17297,20452],[15074,20327],[15537,20295],[15074,20295],[15537,20327],[17760,20516],[18223,20484],[17760,20484],[18223,20516],[14857,20333],[15320,20301],[14857,20301],[15320,20333],[18686,20580],[19149,20548],[18686,20548],[19149,20580],[15782,20394],[16245,20362],[15782,20362],[16245,20394],[16708,20458],[17171,20426],[16708,20426],[17171,20458],[16000,20391],[16463,20359],[16000,20359],[16463,20391],[17634,20522],[18097,20490],[17634,20490],[18097,20522],[15783,20397],[16246,20365],[15783,20365],[16246,20397],[18560,20586],[19023,20554],[18560,20554],[19023,20586],[16926,20455],[17389,20423],[16926,20423],[17389,20455],[17852,20519],[18315,20487],[17852,20487],[18315,20519],[16709,20461],[17172,20429],[16709,20429],[17172,20461],[18778,20583],[19241,20551],[18778,20551],[19241,20583],[17635,20525],[18098,20493],[17635,20493],[18098,20525],[18561,20589],[19024,20557],[18561,20557],[19024,20589],[11334,20652],[11797,20620],[11334,20620],[11797,20652],[12260,20716],[12723,20684],[12260,20684],[12723,20716],[11364,20656],[11827,20624],[11364,20624],[11827,20656],[13186,20780],[13649,20748],[13186,20748],[13649,20780],[11358,20659],[11821,20627],[11358,20627],[11821,20659],[14112,20844],[14575,20812],[14112,20812],[14575,20844],[11328,20648],[11791,20616],[11328,20616],[11791,20648],[15038,20908],[15501,20876],[15038,20876],[15501,20908],[11340,20644],[11803,20612],[11340,20612],[11803,20644],[15964,20972],[16427,20940],[15964,20940],[16427,20972],[11357,20650],[11820,20618],[11357,20618],[11820,20650],[16890,21036],[17353,21004],[16890,21004],[17353,21036],[11239,20647],[11702,20615],[11239,20615],[11702,20647],[17816,21100],[18279,21068],[17816,21068],[18279,21100],[11256,20653],[11719,20621],[11256,20621],[11719,20653],[18742,21164],[19205,21132],[18742,21132],[19205,21164],[12290,20720],[12753,20688],[12290,20688],[12753,20720],[13216,20784],[13679,20752],[13216,20752],[13679,20784],[12284,20723],[12747,20691],[12284,20691],[12747,20723],[14142,20848],[14605,20816],[14142,20816],[14605,20848],[12254,20712],[12717,20680],[12254,20680],[12717,20712],[15068,20912],[15531,20880],[15068,20880],[15531,20912],[12266,20708],[12729,20676],[12266,20676],[12729,20708],[15994,20976],[16457,20944],[15994,20944],[16457,20976],[12283,20714],[12746,20682],[12283,20682],[12746,20714],[16920,21040],[17383,21008],[16920,21008],[17383,21040],[12165,20711],[12628,20679],[12165,20679],[12628,20711],[17846,21104],[18309,21072],[17846,21072],[18309,21104],[12182,20717],[12645,20685],[12182,20685],[12645,20717],[18772,21168],[19235,21136],[18772,21136],[19235,21168],[13210,20787],[13673,20755],[13210,20755],[13673,20787],[14136,20851],[14599,20819],[14136,20819],[14599,20851],[13180,20776],[13643,20744],[13180,20744],[13643,20776],[15062,20915],[15525,20883],[15062,20883],[15525,20915],[13192,20772],[13655,20740],[13192,20740],[13655,20772],[15988,20979],[16451,20947],[15988,20947],[16451,20979],[13209,20778],[13672,20746],[13209,20746],[13672,20778],[16914,21043],[17377,21011],[16914,21011],[17377,21043],[13091,20775],[13554,20743],[13091,20743],[13554,20775],[17840,21107],[18303,21075],[17840,21075],[18303,21107],[13108,20781],[13571,20749],[13108,20749],[13571,20781],[18766,21171],[19229,21139],[18766,21139],[19229,21171],[14106,20840],[14569,20808],[14106,20808],[14569,20840],[15032,20904],[15495,20872],[15032,20872],[15495,20904],[14118,20836],[14581,20804],[14118,20804],[14581,20836],[15958,20968],[16421,20936],[15958,20936],[16421,20968],[14135,20842],[14598,20810],[14135,20810],[14598,20842],[16884,21032],[17347,21000],[16884,21000],[17347,21032],[14017,20839],[14480,20807],[14017,20807],[14480,20839],[17810,21096],[18273,21064],[17810,21064],[18273,21096],[14034,20845],[14497,20813],[14034,20813],[14497,20845],[18736,21160],[19199,21128],[18736,21128],[19199,21160],[15044,20900],[15507,20868],[15044,20868],[15507,20900],[15970,20964],[16433,20932],[15970,20932],[16433,20964],[15061,20906],[15524,20874],[15061,20874],[15524,20906],[16896,21028],[17359,20996],[16896,20996],[17359,21028],[14943,20903],[15406,20871],[14943,20871],[15406,20903],[17822,21092],[18285,21060],[17822,21060],[18285,21092],[14960,20909],[15423,20877],[14960,20877],[15423,20909],[18748,21156],[19211,21124],[18748,21124],[19211,21156],[15987,20970],[16450,20938],[15987,20938],[16450,20970],[16913,21034],[17376,21002],[16913,21002],[17376,21034],[15869,20967],[16332,20935],[15869,20935],[16332,20967],[17839,21098],[18302,21066],[17839,21066],[18302,21098],[15886,20973],[16349,20941],[15886,20941],[16349,20973],[18765,21162],[19228,21130],[18765,21130],[19228,21162],[16795,21031],[17258,20999],[16795,20999],[17258,21031],[17721,21095],[18184,21063],[17721,21063],[18184,21095],[16812,21037],[17275,21005],[16812,21005],[17275,21037],[18647,21159],[19110,21127],[18647,21127],[19110,21159],[17738,21101],[18201,21069],[17738,21069],[18201,21101],[18664,21165],[19127,21133],[18664,21133],[19127,21165],[12294,21232],[12757,21200],[12294,21200],[12757,21232],[13220,21296],[13683,21264],[13220,21264],[13683,21296],[12272,21235],[12735,21203],[12272,21203],[12735,21235],[14146,21360],[14609,21328],[14146,21328],[14609,21360],[12305,21224],[12768,21192],[12305,21192],[12768,21224],[15072,21424],[15535,21392],[15072,21392],[15535,21424],[12137,21220],[12600,21188],[12137,21188],[12600,21220],[15998,21488],[16461,21456],[15998,21456],[16461,21488],[12160,21226],[12623,21194],[12160,21194],[12623,21226],[16924,21552],[17387,21520],[16924,21520],[17387,21552],[12293,21223],[12756,21191],[12293,21191],[12756,21223],[17850,21616],[18313,21584],[17850,21584],[18313,21616],[12276,21229],[12739,21197],[12276,21197],[12739,21229],[18776,21680],[19239,21648],[18776,21648],[19239,21680],[13198,21299],[13661,21267],[13198,21267],[13661,21299],[14124,21363],[14587,21331],[14124,21331],[14587,21363],[13231,21288],[13694,21256],[13231,21256],[13694,21288],[15050,21427],[15513,21395],[15050,21395],[15513,21427],[13063,21284],[13526,21252],[13063,21252],[13526,21284],[15976,21491],[16439,21459],[15976,21459],[16439,21491],[13086,21290],[13549,21258],[13086,21258],[13549,21290],[16902,21555],[17365,21523],[16902,21523],[17365,21555],[13219,21287],[13682,21255],[13219,21255],[13682,21287],[17828,21619],[18291,21587],[17828,21587],[18291,21619],[13202,21293],[13665,21261],[13202,21261],[13665,21293],[18754,21683],[19217,21651],[18754,21651],[19217,21683],[14157,21352],[14620,21320],[14157,21320],[14620,21352],[15083,21416],[15546,21384],[15083,21384],[15546,21416],[13989,21348],[14452,21316],[13989,21316],[14452,21348],[16009,21480],[16472,21448],[16009,21448],[16472,21480],[14012,21354],[14475,21322],[14012,21322],[14475,21354],[16935,21544],[17398,21512],[16935,21512],[17398,21544],[14145,21351],[14608,21319],[14145,21319],[14608,21351],[17861,21608],[18324,21576],[17861,21576],[18324,21608],[14128,21357],[14591,21325],[14128,21325],[14591,21357],[18787,21672],[19250,21640],[18787,21640],[19250,21672],[14915,21412],[15378,21380],[14915,21380],[15378,21412],[15841,21476],[16304,21444],[15841,21444],[16304,21476],[14938,21418],[15401,21386],[14938,21386],[15401,21418],[16767,21540],[17230,21508],[16767,21508],[17230,21540],[15071,21415],[15534,21383],[15071,21383],[15534,21415],[17693,21604],[18156,21572],[17693,21572],[18156,21604],[15054,21421],[15517,21389],[15054,21389],[15517,21421],[18619,21668],[19082,21636],[18619,21636],[19082,21668],[15864,21482],[16327,21450],[15864,21450],[16327,21482],[16790,21546],[17253,21514],[16790,21514],[17253,21546],[15997,21479],[16460,21447],[15997,21447],[16460,21479],[17716,21610],[18179,21578],[17716,21578],[18179,21610],[15980,21485],[16443,21453],[15980,21453],[16443,21485],[18642,21674],[19105,21642],[18642,21642],[19105,21674],[16923,21543],[17386,21511],[16923,21511],[17386,21543],[17849,21607],[18312,21575],[17849,21575],[18312,21607],[16906,21549],[17369,21517],[16906,21517],[17369,21549],[18775,21671],[19238,21639],[18775,21639],[19238,21671],[17832,21613],[18295,21581],[17832,21581],[18295,21613],[18758,21677],[19221,21645],[18758,21645],[19221,21677],[13158,21747],[13621,21715],[13158,21715],[13621,21747],[14084,21811],[14547,21779],[14084,21779],[14547,21811],[13232,21736],[13695,21704],[13232,21704],[13695,21736],[15010,21875],[15473,21843],[15010,21843],[15473,21875],[13143,21732],[13606,21700],[13143,21700],[13606,21732],[15936,21939],[16399,21907],[15936,21907],[16399,21939],[13226,21738],[13689,21706],[13226,21706],[13689,21738],[16862,22003],[17325,21971],[16862,21971],[17325,22003],[13151,21735],[13614,21703],[13151,21703],[13614,21735],[17788,22067],[18251,22035],[17788,22035],[18251,22067],[13107,21741],[13570,21709],[13107,21709],[13570,21741],[18714,22131],[19177,22099],[18714,22099],[19177,22131],[14158,21800],[14621,21768],[14158,21768],[14621,21800],[15084,21864],[15547,21832],[15084,21832],[15547,21864],[14069,21796],[14532,21764],[14069,21764],[14532,21796],[16010,21928],[16473,21896],[16010,21896],[16473,21928],[14152,21802],[14615,21770],[14152,21770],[14615,21802],[16936,21992],[17399,21960],[16936,21960],[17399,21992],[14077,21799],[14540,21767],[14077,21767],[14540,21799],[17862,22056],[18325,22024],[17862,22024],[18325,22056],[14033,21805],[14496,21773],[14033,21773],[14496,21805],[18788,22120],[19251,22088],[18788,22088],[19251,22120],[14995,21860],[15458,21828],[14995,21828],[15458,21860],[15921,21924],[16384,21892],[15921,21892],[16384,21924],[15078,21866],[15541,21834],[15078,21834],[15541,21866],[16847,21988],[17310,21956],[16847,21956],[17310,21988],[15003,21863],[15466,21831],[15003,21831],[15466,21863],[17773,22052],[18236,22020],[17773,22020],[18236,22052],[14959,21869],[15422,21837],[14959,21837],[15422,21869],[18699,22116],[19162,22084],[18699,22084],[19162,22116],[16004,21930],[16467,21898],[16004,21898],[16467,21930],[16930,21994],[17393,21962],[16930,21962],[17393,21994],[15929,21927],[16392,21895],[15929,21895],[16392,21927],[17856,22058],[18319,22026],[17856,22026],[18319,22058],[15885,21933],[16348,21901],[15885,21901],[16348,21933],[18782,22122],[19245,22090],[18782,22090],[19245,22122],[16855,21991],[17318,21959],[16855,21959],[17318,21991],[17781,22055],[18244,22023],[17781,22023],[18244,22055],[16811,21997],[17274,21965],[16811,21965],[17274,21997],[18707,22119],[19170,22087],[18707,22087],[19170,22119],[17737,22061],[18200,22029],[17737,22029],[18200,22061],[18663,22125],[19126,22093],[18663,22093],[19126,22125],[14027,22184],[14490,22152],[14027,22152],[14490,22184],[14953,22248],[15416,22216],[14953,22216],[15416,22248],[14083,22180],[14546,22148],[14083,22148],[14546,22180],[15879,22312],[16342,22280],[15879,22280],[16342,22312],[14044,22186],[14507,22154],[14044,22154],[14507,22186],[16805,22376],[17268,22344],[16805,22344],[17268,22376],[13890,22183],[14353,22151],[13890,22151],[14353,22183],[17731,22440],[18194,22408],[17731,22408],[18194,22440],[14054,22189],[14517,22157],[14054,22157],[14517,22189],[18657,22504],[19120,22472],[18657,22472],[19120,22504],[15009,22244],[15472,22212],[15009,22212],[15472,22244],[15935,22308],[16398,22276],[15935,22276],[16398,22308],[14970,22250],[15433,22218],[14970,22218],[15433,22250],[16861,22372],[17324,22340],[16861,22340],[17324,22372],[14816,22247],[15279,22215],[14816,22215],[15279,22247],[17787,22436],[18250,22404],[17787,22404],[18250,22436],[14980,22253],[15443,22221],[14980,22221],[15443,22253],[18713,22500],[19176,22468],[18713,22468],[19176,22500],[15896,22314],[16359,22282],[15896,22282],[16359,22314],[16822,22378],[17285,22346],[16822,22346],[17285,22378],[15742,22311],[16205,22279],[15742,22279],[16205,22311],[17748,22442],[18211,22410],[17748,22410],[18211,22442],[15906,22317],[16369,22285],[15906,22285],[16369,22317],[18674,22506],[19137,22474],[18674,22474],[19137,22506],[16668,22375],[17131,22343],[16668,22343],[17131,22375],[17594,22439],[18057,22407],[17594,22407],[18057,22439],[16832,22381],[17295,22349],[16832,22349],[17295,22381],[18520,22503],[18983,22471],[18520,22471],[18983,22503],[17758,22445],[18221,22413],[17758,22413],[18221,22445],[18684,22509],[19147,22477],[18684,22477],[19147,22509],[15022,22564],[15485,22532],[15022,22532],[15485,22564],[15948,22628],[16411,22596],[15948,22596],[16411,22628],[15043,22570],[15506,22538],[15043,22538],[15506,22570],[16874,22692],[17337,22660],[16874,22660],[17337,22692],[14789,22567],[15252,22535],[14789,22535],[15252,22567],[17800,22756],[18263,22724],[17800,22724],[18263,22756],[14891,22573],[15354,22541],[14891,22541],[15354,22573],[18726,22820],[19189,22788],[18726,22788],[19189,22820],[15969,22634],[16432,22602],[15969,22602],[16432,22634],[16895,22698],[17358,22666],[16895,22666],[17358,22698],[15715,22631],[16178,22599],[15715,22599],[16178,22631],[17821,22762],[18284,22730],[17821,22730],[18284,22762],[15817,22637],[16280,22605],[15817,22605],[16280,22637],[18747,22826],[19210,22794],[18747,22794],[19210,22826],[16641,22695],[17104,22663],[16641,22663],[17104,22695],[17567,22759],[18030,22727],[17567,22727],[18030,22759],[16743,22701],[17206,22669],[16743,22669],[17206,22701],[18493,22823],[18956,22791],[18493,22791],[18956,22823],[17669,22765],[18132,22733],[17669,22733],[18132,22765],[18595,22829],[19058,22797],[18595,22797],[19058,22829],[15963,22890],[16426,22858],[15963,22858],[16426,22890],[16889,22954],[17352,22922],[16889,22922],[17352,22954],[15919,22887],[16382,22855],[15919,22855],[16382,22887],[17815,23018],[18278,22986],[17815,22986],[18278,23018],[15966,22893],[16429,22861],[15966,22861],[16429,22893],[18741,23082],[19204,23050],[18741,23050],[19204,23082],[16845,22951],[17308,22919],[16845,22919],[17308,22951],[17771,23015],[18234,22983],[17771,22983],[18234,23015],[16892,22957],[17355,22925],[16892,22925],[17355,22957],[18697,23079],[19160,23047],[18697,23047],[19160,23079],[17818,23021],[18281,22989],[17818,22989],[18281,23021],[18744,23085],[19207,23053],[18744,23053],[19207,23085],[16928,23143],[17391,23111],[16928,23111],[17391,23143],[17854,23207],[18317,23175],[17854,23175],[18317,23207],[16842,23149],[17305,23117],[16842,23117],[17305,23149],[18780,23271],[19243,23239],[18780,23239],[19243,23271],[17768,23213],[18231,23181],[17768,23181],[18231,23213],[18694,23277],[19157,23245],[18694,23245],[19157,23277],[17691,23341],[18154,23309],[17691,23309],[18154,23341],[18617,23405],[19080,23373],[18617,23373],[19080,23405]],"decoder":"mod 2: Y_T += sum of root nodes whose targets contain T (star roots: T reads star(c) for c in T; side roots; partner singles) + x_carrier + x_passive for each partner_mix entry receiving T; equals x_T = sum_{c in T} star(c) + sum_{|S cap T|=1} x_S","h":24,"labels":[[0,2,4],[0,2,5],[0,3,4],[0,3,5],[1,2,4],[1,2,5],[1,3,4],[1,3,5],[0,2,6],[0,2,7],[0,3,6],[0,3,7],[1,2,6],[1,2,7],[1,3,6],[1,3,7],[0,2,8],[0,2,9],[0,3,8],[0,3,9],[1,2,8],[1,2,9],[1,3,8],[1,3,9],[0,2,10],[0,2,11],[0,3,10],[0,3,11],[1,2,10],[1,2,11],[1,3,10],[1,3,11],[0,2,12],[0,2,13],[0,3,12],[0,3,13],[1,2,12],[1,2,13],[1,3,12],[1,3,13],[0,2,14],[0,2,15],[0,3,14],[0,3,15],[1,2,14],[1,2,15],[1,3,14],[1,3,15],[0,2,16],[0,2,17],[0,3,16],[0,3,17],[1,2,16],[1,2,17],[1,3,16],[1,3,17],[0,2,18],[0,2,19],[0,3,18],[0,3,19],[1,2,18],[1,2,19],[1,3,18],[1,3,19],[0,2,20],[0,2,21],[0,3,20],[0,3,21],[1,2,20],[1,2,21],[1,3,20],[1,3,21],[0,2,22],[0,2,23],[0,3,22],[0,3,23],[1,2,22],[1,2,23],[1,3,22],[1,3,23],[0,4,6],[0,4,7],[0,5,6],[0,5,7],[1,4,6],[1,4,7],[1,5,6],[1,5,7],[0,4,8],[0,4,9],[0,5,8],[0,5,9],[1,4,8],[1,4,9],[1,5,8],[1,5,9],[0,4,10],[0,4,11],[0,5,10],[0,5,11],[1,4,10],[1,4,11],[1,5,10],[1,5,11],[0,4,12],[0,4,13],[0,5,12],[0,5,13],[1,4,12],[1,4,13],[1,5,12],[1,5,13],[0,4,14],[0,4,15],[0,5,14],[0,5,15],[1,4,14],[1,4,15],[1,5,14],[1,5,15],[0,4,16],[0,4,17],[0,5,16],[0,5,17],[1,4,16],[1,4,17],[1,5,16],[1,5,17],[0,4,18],[0,4,19],[0,5,18],[0,5,19],[1,4,18],[1,4,19],[1,5,18],[1,5,19],[0,4,20],[0,4,21],[0,5,20],[0,5,21],[1,4,20],[1,4,21],[1,5,20],[1,5,21],[0,4,22],[0,4,23],[0,5,22],[0,5,23],[1,4,22],[1,4,23],[1,5,22],[1,5,23],[0,6,8],[0,6,9],[0,7,8],[0,7,9],[1,6,8],[1,6,9],[1,7,8],[1,7,9],[0,6,10],[0,6,11],[0,7,10],[0,7,11],[1,6,10],[1,6,11],[1,7,10],[1,7,11],[0,6,12],[0,6,13],[0,7,12],[0,7,13],[1,6,12],[1,6,13],[1,7,12],[1,7,13],[0,6,14],[0,6,15],[0,7,14],[0,7,15],[1,6,14],[1,6,15],[1,7,14],[1,7,15],[0,6,16],[0,6,17],[0,7,16],[0,7,17],[1,6,16],[1,6,17],[1,7,16],[1,7,17],[0,6,18],[0,6,19],[0,7,18],[0,7,19],[1,6,18],[1,6,19],[1,7,18],[1,7,19],[0,6,20],[0,6,21],[0,7,20],[0,7,21],[1,6,20],[1,6,21],[1,7,20],[1,7,21],[0,6,22],[0,6,23],[0,7,22],[0,7,23],[1,6,22],[1,6,23],[1,7,22],[1,7,23],[0,8,10],[0,8,11],[0,9,10],[0,9,11],[1,8,10],[1,8,11],[1,9,10],[1,9,11],[0,8,12],[0,8,13],[0,9,12],[0,9,13],[1,8,12],[1,8,13],[1,9,12],[1,9,13],[0,8,14],[0,8,15],[0,9,14],[0,9,15],[1,8,14],[1,8,15],[1,9,14],[1,9,15],[0,8,16],[0,8,17],[0,9,16],[0,9,17],[1,8,16],[1,8,17],[1,9,16],[1,9,17],[0,8,18],[0,8,19],[0,9,18],[0,9,19],[1,8,18],[1,8,19],[1,9,18],[1,9,19],[0,8,20],[0,8,21],[0,9,20],[0,9,21],[1,8,20],[1,8,21],[1,9,20],[1,9,21],[0,8,22],[0,8,23],[0,9,22],[0,9,23],[1,8,22],[1,8,23],[1,9,22],[1,9,23],[0,10,12],[0,10,13],[0,11,12],[0,11,13],[1,10,12],[1,10,13],[1,11,12],[1,11,13],[0,10,14],[0,10,15],[0,11,14],[0,11,15],[1,10,14],[1,10,15],[1,11,14],[1,11,15],[0,10,16],[0,10,17],[0,11,16],[0,11,17],[1,10,16],[1,10,17],[1,11,16],[1,11,17],[0,10,18],[0,10,19],[0,11,18],[0,11,19],[1,10,18],[1,10,19],[1,11,18],[1,11,19],[0,10,20],[0,10,21],[0,11,20],[0,11,21],[1,10,20],[1,10,21],[1,11,20],[1,11,21],[0,10,22],[0,10,23],[0,11,22],[0,11,23],[1,10,22],[1,10,23],[1,11,22],[1,11,23],[0,12,14],[0,12,15],[0,13,14],[0,13,15],[1,12,14],[1,12,15],[1,13,14],[1,13,15],[0,12,16],[0,12,17],[0,13,16],[0,13,17],[1,12,16],[1,12,17],[1,13,16],[1,13,17],[0,12,18],[0,12,19],[0,13,18],[0,13,19],[1,12,18],[1,12,19],[1,13,18],[1,13,19],[0,12,20],[0,12,21],[0,13,20],[0,13,21],[1,12,20],[1,12,21],[1,13,20],[1,13,21],[0,12,22],[0,12,23],[0,13,22],[0,13,23],[1,12,22],[1,12,23],[1,13,22],[1,13,23],[0,14,16],[0,14,17],[0,15,16],[0,15,17],[1,14,16],[1,14,17],[1,15,16],[1,15,17],[0,14,18],[0,14,19],[0,15,18],[0,15,19],[1,14,18],[1,14,19],[1,15,18],[1,15,19],[0,14,20],[0,14,21],[0,15,20],[0,15,21],[1,14,20],[1,14,21],[1,15,20],[1,15,21],[0,14,22],[0,14,23],[0,15,22],[0,15,23],[1,14,22],[1,14,23],[1,15,22],[1,15,23],[0,16,18],[0,16,19],[0,17,18],[0,17,19],[1,16,18],[1,16,19],[1,17,18],[1,17,19],[0,16,20],[0,16,21],[0,17,20],[0,17,21],[1,16,20],[1,16,21],[1,17,20],[1,17,21],[0,16,22],[0,16,23],[0,17,22],[0,17,23],[1,16,22],[1,16,23],[1,17,22],[1,17,23],[0,18,20],[0,18,21],[0,19,20],[0,19,21],[1,18,20],[1,18,21],[1,19,20],[1,19,21],[0,18,22],[0,18,23],[0,19,22],[0,19,23],[1,18,22],[1,18,23],[1,19,22],[1,19,23],[0,20,22],[0,20,23],[0,21,22],[0,21,23],[1,20,22],[1,20,23],[1,21,22],[1,21,23],[2,4,6],[2,4,7],[2,5,6],[2,5,7],[3,4,6],[3,4,7],[3,5,6],[3,5,7],[2,4,8],[2,4,9],[2,5,8],[2,5,9],[3,4,8],[3,4,9],[3,5,8],[3,5,9],[2,4,10],[2,4,11],[2,5,10],[2,5,11],[3,4,10],[3,4,11],[3,5,10],[3,5,11],[2,4,12],[2,4,13],[2,5,12],[2,5,13],[3,4,12],[3,4,13],[3,5,12],[3,5,13],[2,4,14],[2,4,15],[2,5,14],[2,5,15],[3,4,14],[3,4,15],[3,5,14],[3,5,15],[2,4,16],[2,4,17],[2,5,16],[2,5,17],[3,4,16],[3,4,17],[3,5,16],[3,5,17],[2,4,18],[2,4,19],[2,5,18],[2,5,19],[3,4,18],[3,4,19],[3,5,18],[3,5,19],[2,4,20],[2,4,21],[2,5,20],[2,5,21],[3,4,20],[3,4,21],[3,5,20],[3,5,21],[2,4,22],[2,4,23],[2,5,22],[2,5,23],[3,4,22],[3,4,23],[3,5,22],[3,5,23],[2,6,8],[2,6,9],[2,7,8],[2,7,9],[3,6,8],[3,6,9],[3,7,8],[3,7,9],[2,6,10],[2,6,11],[2,7,10],[2,7,11],[3,6,10],[3,6,11],[3,7,10],[3,7,11],[2,6,12],[2,6,13],[2,7,12],[2,7,13],[3,6,12],[3,6,13],[3,7,12],[3,7,13],[2,6,14],[2,6,15],[2,7,14],[2,7,15],[3,6,14],[3,6,15],[3,7,14],[3,7,15],[2,6,16],[2,6,17],[2,7,16],[2,7,17],[3,6,16],[3,6,17],[3,7,16],[3,7,17],[2,6,18],[2,6,19],[2,7,18],[2,7,19],[3,6,18],[3,6,19],[3,7,18],[3,7,19],[2,6,20],[2,6,21],[2,7,20],[2,7,21],[3,6,20],[3,6,21],[3,7,20],[3,7,21],[2,6,22],[2,6,23],[2,7,22],[2,7,23],[3,6,22],[3,6,23],[3,7,22],[3,7,23],[2,8,10],[2,8,11],[2,9,10],[2,9,11],[3,8,10],[3,8,11],[3,9,10],[3,9,11],[2,8,12],[2,8,13],[2,9,12],[2,9,13],[3,8,12],[3,8,13],[3,9,12],[3,9,13],[2,8,14],[2,8,15],[2,9,14],[2,9,15],[3,8,14],[3,8,15],[3,9,14],[3,9,15],[2,8,16],[2,8,17],[2,9,16],[2,9,17],[3,8,16],[3,8,17],[3,9,16],[3,9,17],[2,8,18],[2,8,19],[2,9,18],[2,9,19],[3,8,18],[3,8,19],[3,9,18],[3,9,19],[2,8,20],[2,8,21],[2,9,20],[2,9,21],[3,8,20],[3,8,21],[3,9,20],[3,9,21],[2,8,22],[2,8,23],[2,9,22],[2,9,23],[3,8,22],[3,8,23],[3,9,22],[3,9,23],[2,10,12],[2,10,13],[2,11,12],[2,11,13],[3,10,12],[3,10,13],[3,11,12],[3,11,13],[2,10,14],[2,10,15],[2,11,14],[2,11,15],[3,10,14],[3,10,15],[3,11,14],[3,11,15],[2,10,16],[2,10,17],[2,11,16],[2,11,17],[3,10,16],[3,10,17],[3,11,16],[3,11,17],[2,10,18],[2,10,19],[2,11,18],[2,11,19],[3,10,18],[3,10,19],[3,11,18],[3,11,19],[2,10,20],[2,10,21],[2,11,20],[2,11,21],[3,10,20],[3,10,21],[3,11,20],[3,11,21],[2,10,22],[2,10,23],[2,11,22],[2,11,23],[3,10,22],[3,10,23],[3,11,22],[3,11,23],[2,12,14],[2,12,15],[2,13,14],[2,13,15],[3,12,14],[3,12,15],[3,13,14],[3,13,15],[2,12,16],[2,12,17],[2,13,16],[2,13,17],[3,12,16],[3,12,17],[3,13,16],[3,13,17],[2,12,18],[2,12,19],[2,13,18],[2,13,19],[3,12,18],[3,12,19],[3,13,18],[3,13,19],[2,12,20],[2,12,21],[2,13,20],[2,13,21],[3,12,20],[3,12,21],[3,13,20],[3,13,21],[2,12,22],[2,12,23],[2,13,22],[2,13,23],[3,12,22],[3,12,23],[3,13,22],[3,13,23],[2,14,16],[2,14,17],[2,15,16],[2,15,17],[3,14,16],[3,14,17],[3,15,16],[3,15,17],[2,14,18],[2,14,19],[2,15,18],[2,15,19],[3,14,18],[3,14,19],[3,15,18],[3,15,19],[2,14,20],[2,14,21],[2,15,20],[2,15,21],[3,14,20],[3,14,21],[3,15,20],[3,15,21],[2,14,22],[2,14,23],[2,15,22],[2,15,23],[3,14,22],[3,14,23],[3,15,22],[3,15,23],[2,16,18],[2,16,19],[2,17,18],[2,17,19],[3,16,18],[3,16,19],[3,17,18],[3,17,19],[2,16,20],[2,16,21],[2,17,20],[2,17,21],[3,16,20],[3,16,21],[3,17,20],[3,17,21],[2,16,22],[2,16,23],[2,17,22],[2,17,23],[3,16,22],[3,16,23],[3,17,22],[3,17,23],[2,18,20],[2,18,21],[2,19,20],[2,19,21],[3,18,20],[3,18,21],[3,19,20],[3,19,21],[2,18,22],[2,18,23],[2,19,22],[2,19,23],[3,18,22],[3,18,23],[3,19,22],[3,19,23],[2,20,22],[2,20,23],[2,21,22],[2,21,23],[3,20,22],[3,20,23],[3,21,22],[3,21,23],[4,6,8],[4,6,9],[4,7,8],[4,7,9],[5,6,8],[5,6,9],[5,7,8],[5,7,9],[4,6,10],[4,6,11],[4,7,10],[4,7,11],[5,6,10],[5,6,11],[5,7,10],[5,7,11],[4,6,12],[4,6,13],[4,7,12],[4,7,13],[5,6,12],[5,6,13],[5,7,12],[5,7,13],[4,6,14],[4,6,15],[4,7,14],[4,7,15],[5,6,14],[5,6,15],[5,7,14],[5,7,15],[4,6,16],[4,6,17],[4,7,16],[4,7,17],[5,6,16],[5,6,17],[5,7,16],[5,7,17],[4,6,18],[4,6,19],[4,7,18],[4,7,19],[5,6,18],[5,6,19],[5,7,18],[5,7,19],[4,6,20],[4,6,21],[4,7,20],[4,7,21],[5,6,20],[5,6,21],[5,7,20],[5,7,21],[4,6,22],[4,6,23],[4,7,22],[4,7,23],[5,6,22],[5,6,23],[5,7,22],[5,7,23],[4,8,10],[4,8,11],[4,9,10],[4,9,11],[5,8,10],[5,8,11],[5,9,10],[5,9,11],[4,8,12],[4,8,13],[4,9,12],[4,9,13],[5,8,12],[5,8,13],[5,9,12],[5,9,13],[4,8,14],[4,8,15],[4,9,14],[4,9,15],[5,8,14],[5,8,15],[5,9,14],[5,9,15],[4,8,16],[4,8,17],[4,9,16],[4,9,17],[5,8,16],[5,8,17],[5,9,16],[5,9,17],[4,8,18],[4,8,19],[4,9,18],[4,9,19],[5,8,18],[5,8,19],[5,9,18],[5,9,19],[4,8,20],[4,8,21],[4,9,20],[4,9,21],[5,8,20],[5,8,21],[5,9,20],[5,9,21],[4,8,22],[4,8,23],[4,9,22],[4,9,23],[5,8,22],[5,8,23],[5,9,22],[5,9,23],[4,10,12],[4,10,13],[4,11,12],[4,11,13],[5,10,12],[5,10,13],[5,11,12],[5,11,13],[4,10,14],[4,10,15],[4,11,14],[4,11,15],[5,10,14],[5,10,15],[5,11,14],[5,11,15],[4,10,16],[4,10,17],[4,11,16],[4,11,17],[5,10,16],[5,10,17],[5,11,16],[5,11,17],[4,10,18],[4,10,19],[4,11,18],[4,11,19],[5,10,18],[5,10,19],[5,11,18],[5,11,19],[4,10,20],[4,10,21],[4,11,20],[4,11,21],[5,10,20],[5,10,21],[5,11,20],[5,11,21],[4,10,22],[4,10,23],[4,11,22],[4,11,23],[5,10,22],[5,10,23],[5,11,22],[5,11,23],[4,12,14],[4,12,15],[4,13,14],[4,13,15],[5,12,14],[5,12,15],[5,13,14],[5,13,15],[4,12,16],[4,12,17],[4,13,16],[4,13,17],[5,12,16],[5,12,17],[5,13,16],[5,13,17],[4,12,18],[4,12,19],[4,13,18],[4,13,19],[5,12,18],[5,12,19],[5,13,18],[5,13,19],[4,12,20],[4,12,21],[4,13,20],[4,13,21],[5,12,20],[5,12,21],[5,13,20],[5,13,21],[4,12,22],[4,12,23],[4,13,22],[4,13,23],[5,12,22],[5,12,23],[5,13,22],[5,13,23],[4,14,16],[4,14,17],[4,15,16],[4,15,17],[5,14,16],[5,14,17],[5,15,16],[5,15,17],[4,14,18],[4,14,19],[4,15,18],[4,15,19],[5,14,18],[5,14,19],[5,15,18],[5,15,19],[4,14,20],[4,14,21],[4,15,20],[4,15,21],[5,14,20],[5,14,21],[5,15,20],[5,15,21],[4,14,22],[4,14,23],[4,15,22],[4,15,23],[5,14,22],[5,14,23],[5,15,22],[5,15,23],[4,16,18],[4,16,19],[4,17,18],[4,17,19],[5,16,18],[5,16,19],[5,17,18],[5,17,19],[4,16,20],[4,16,21],[4,17,20],[4,17,21],[5,16,20],[5,16,21],[5,17,20],[5,17,21],[4,16,22],[4,16,23],[4,17,22],[4,17,23],[5,16,22],[5,16,23],[5,17,22],[5,17,23],[4,18,20],[4,18,21],[4,19,20],[4,19,21],[5,18,20],[5,18,21],[5,19,20],[5,19,21],[4,18,22],[4,18,23],[4,19,22],[4,19,23],[5,18,22],[5,18,23],[5,19,22],[5,19,23],[4,20,22],[4,20,23],[4,21,22],[4,21,23],[5,20,22],[5,20,23],[5,21,22],[5,21,23],[6,8,10],[6,8,11],[6,9,10],[6,9,11],[7,8,10],[7,8,11],[7,9,10],[7,9,11],[6,8,12],[6,8,13],[6,9,12],[6,9,13],[7,8,12],[7,8,13],[7,9,12],[7,9,13],[6,8,14],[6,8,15],[6,9,14],[6,9,15],[7,8,14],[7,8,15],[7,9,14],[7,9,15],[6,8,16],[6,8,17],[6,9,16],[6,9,17],[7,8,16],[7,8,17],[7,9,16],[7,9,17],[6,8,18],[6,8,19],[6,9,18],[6,9,19],[7,8,18],[7,8,19],[7,9,18],[7,9,19],[6,8,20],[6,8,21],[6,9,20],[6,9,21],[7,8,20],[7,8,21],[7,9,20],[7,9,21],[6,8,22],[6,8,23],[6,9,22],[6,9,23],[7,8,22],[7,8,23],[7,9,22],[7,9,23],[6,10,12],[6,10,13],[6,11,12],[6,11,13],[7,10,12],[7,10,13],[7,11,12],[7,11,13],[6,10,14],[6,10,15],[6,11,14],[6,11,15],[7,10,14],[7,10,15],[7,11,14],[7,11,15],[6,10,16],[6,10,17],[6,11,16],[6,11,17],[7,10,16],[7,10,17],[7,11,16],[7,11,17],[6,10,18],[6,10,19],[6,11,18],[6,11,19],[7,10,18],[7,10,19],[7,11,18],[7,11,19],[6,10,20],[6,10,21],[6,11,20],[6,11,21],[7,10,20],[7,10,21],[7,11,20],[7,11,21],[6,10,22],[6,10,23],[6,11,22],[6,11,23],[7,10,22],[7,10,23],[7,11,22],[7,11,23],[6,12,14],[6,12,15],[6,13,14],[6,13,15],[7,12,14],[7,12,15],[7,13,14],[7,13,15],[6,12,16],[6,12,17],[6,13,16],[6,13,17],[7,12,16],[7,12,17],[7,13,16],[7,13,17],[6,12,18],[6,12,19],[6,13,18],[6,13,19],[7,12,18],[7,12,19],[7,13,18],[7,13,19],[6,12,20],[6,12,21],[6,13,20],[6,13,21],[7,12,20],[7,12,21],[7,13,20],[7,13,21],[6,12,22],[6,12,23],[6,13,22],[6,13,23],[7,12,22],[7,12,23],[7,13,22],[7,13,23],[6,14,16],[6,14,17],[6,15,16],[6,15,17],[7,14,16],[7,14,17],[7,15,16],[7,15,17],[6,14,18],[6,14,19],[6,15,18],[6,15,19],[7,14,18],[7,14,19],[7,15,18],[7,15,19],[6,14,20],[6,14,21],[6,15,20],[6,15,21],[7,14,20],[7,14,21],[7,15,20],[7,15,21],[6,14,22],[6,14,23],[6,15,22],[6,15,23],[7,14,22],[7,14,23],[7,15,22],[7,15,23],[6,16,18],[6,16,19],[6,17,18],[6,17,19],[7,16,18],[7,16,19],[7,17,18],[7,17,19],[6,16,20],[6,16,21],[6,17,20],[6,17,21],[7,16,20],[7,16,21],[7,17,20],[7,17,21],[6,16,22],[6,16,23],[6,17,22],[6,17,23],[7,16,22],[7,16,23],[7,17,22],[7,17,23],[6,18,20],[6,18,21],[6,19,20],[6,19,21],[7,18,20],[7,18,21],[7,19,20],[7,19,21],[6,18,22],[6,18,23],[6,19,22],[6,19,23],[7,18,22],[7,18,23],[7,19,22],[7,19,23],[6,20,22],[6,20,23],[6,21,22],[6,21,23],[7,20,22],[7,20,23],[7,21,22],[7,21,23],[8,10,12],[8,10,13],[8,11,12],[8,11,13],[9,10,12],[9,10,13],[9,11,12],[9,11,13],[8,10,14],[8,10,15],[8,11,14],[8,11,15],[9,10,14],[9,10,15],[9,11,14],[9,11,15],[8,10,16],[8,10,17],[8,11,16],[8,11,17],[9,10,16],[9,10,17],[9,11,16],[9,11,17],[8,10,18],[8,10,19],[8,11,18],[8,11,19],[9,10,18],[9,10,19],[9,11,18],[9,11,19],[8,10,20],[8,10,21],[8,11,20],[8,11,21],[9,10,20],[9,10,21],[9,11,20],[9,11,21],[8,10,22],[8,10,23],[8,11,22],[8,11,23],[9,10,22],[9,10,23],[9,11,22],[9,11,23],[8,12,14],[8,12,15],[8,13,14],[8,13,15],[9,12,14],[9,12,15],[9,13,14],[9,13,15],[8,12,16],[8,12,17],[8,13,16],[8,13,17],[9,12,16],[9,12,17],[9,13,16],[9,13,17],[8,12,18],[8,12,19],[8,13,18],[8,13,19],[9,12,18],[9,12,19],[9,13,18],[9,13,19],[8,12,20],[8,12,21],[8,13,20],[8,13,21],[9,12,20],[9,12,21],[9,13,20],[9,13,21],[8,12,22],[8,12,23],[8,13,22],[8,13,23],[9,12,22],[9,12,23],[9,13,22],[9,13,23],[8,14,16],[8,14,17],[8,15,16],[8,15,17],[9,14,16],[9,14,17],[9,15,16],[9,15,17],[8,14,18],[8,14,19],[8,15,18],[8,15,19],[9,14,18],[9,14,19],[9,15,18],[9,15,19],[8,14,20],[8,14,21],[8,15,20],[8,15,21],[9,14,20],[9,14,21],[9,15,20],[9,15,21],[8,14,22],[8,14,23],[8,15,22],[8,15,23],[9,14,22],[9,14,23],[9,15,22],[9,15,23],[8,16,18],[8,16,19],[8,17,18],[8,17,19],[9,16,18],[9,16,19],[9,17,18],[9,17,19],[8,16,20],[8,16,21],[8,17,20],[8,17,21],[9,16,20],[9,16,21],[9,17,20],[9,17,21],[8,16,22],[8,16,23],[8,17,22],[8,17,23],[9,16,22],[9,16,23],[9,17,22],[9,17,23],[8,18,20],[8,18,21],[8,19,20],[8,19,21],[9,18,20],[9,18,21],[9,19,20],[9,19,21],[8,18,22],[8,18,23],[8,19,22],[8,19,23],[9,18,22],[9,18,23],[9,19,22],[9,19,23],[8,20,22],[8,20,23],[8,21,22],[8,21,23],[9,20,22],[9,20,23],[9,21,22],[9,21,23],[10,12,14],[10,12,15],[10,13,14],[10,13,15],[11,12,14],[11,12,15],[11,13,14],[11,13,15],[10,12,16],[10,12,17],[10,13,16],[10,13,17],[11,12,16],[11,12,17],[11,13,16],[11,13,17],[10,12,18],[10,12,19],[10,13,18],[10,13,19],[11,12,18],[11,12,19],[11,13,18],[11,13,19],[10,12,20],[10,12,21],[10,13,20],[10,13,21],[11,12,20],[11,12,21],[11,13,20],[11,13,21],[10,12,22],[10,12,23],[10,13,22],[10,13,23],[11,12,22],[11,12,23],[11,13,22],[11,13,23],[10,14,16],[10,14,17],[10,15,16],[10,15,17],[11,14,16],[11,14,17],[11,15,16],[11,15,17],[10,14,18],[10,14,19],[10,15,18],[10,15,19],[11,14,18],[11,14,19],[11,15,18],[11,15,19],[10,14,20],[10,14,21],[10,15,20],[10,15,21],[11,14,20],[11,14,21],[11,15,20],[11,15,21],[10,14,22],[10,14,23],[10,15,22],[10,15,23],[11,14,22],[11,14,23],[11,15,22],[11,15,23],[10,16,18],[10,16,19],[10,17,18],[10,17,19],[11,16,18],[11,16,19],[11,17,18],[11,17,19],[10,16,20],[10,16,21],[10,17,20],[10,17,21],[11,16,20],[11,16,21],[11,17,20],[11,17,21],[10,16,22],[10,16,23],[10,17,22],[10,17,23],[11,16,22],[11,16,23],[11,17,22],[11,17,23],[10,18,20],[10,18,21],[10,19,20],[10,19,21],[11,18,20],[11,18,21],[11,19,20],[11,19,21],[10,18,22],[10,18,23],[10,19,22],[10,19,23],[11,18,22],[11,18,23],[11,19,22],[11,19,23],[10,20,22],[10,20,23],[10,21,22],[10,21,23],[11,20,22],[11,20,23],[11,21,22],[11,21,23],[12,14,16],[12,14,17],[12,15,16],[12,15,17],[13,14,16],[13,14,17],[13,15,16],[13,15,17],[12,14,18],[12,14,19],[12,15,18],[12,15,19],[13,14,18],[13,14,19],[13,15,18],[13,15,19],[12,14,20],[12,14,21],[12,15,20],[12,15,21],[13,14,20],[13,14,21],[13,15,20],[13,15,21],[12,14,22],[12,14,23],[12,15,22],[12,15,23],[13,14,22],[13,14,23],[13,15,22],[13,15,23],[12,16,18],[12,16,19],[12,17,18],[12,17,19],[13,16,18],[13,16,19],[13,17,18],[13,17,19],[12,16,20],[12,16,21],[12,17,20],[12,17,21],[13,16,20],[13,16,21],[13,17,20],[13,17,21],[12,16,22],[12,16,23],[12,17,22],[12,17,23],[13,16,22],[13,16,23],[13,17,22],[13,17,23],[12,18,20],[12,18,21],[12,19,20],[12,19,21],[13,18,20],[13,18,21],[13,19,20],[13,19,21],[12,18,22],[12,18,23],[12,19,22],[12,19,23],[13,18,22],[13,18,23],[13,19,22],[13,19,23],[12,20,22],[12,20,23],[12,21,22],[12,21,23],[13,20,22],[13,20,23],[13,21,22],[13,21,23],[14,16,18],[14,16,19],[14,17,18],[14,17,19],[15,16,18],[15,16,19],[15,17,18],[15,17,19],[14,16,20],[14,16,21],[14,17,20],[14,17,21],[15,16,20],[15,16,21],[15,17,20],[15,17,21],[14,16,22],[14,16,23],[14,17,22],[14,17,23],[15,16,22],[15,16,23],[15,17,22],[15,17,23],[14,18,20],[14,18,21],[14,19,20],[14,19,21],[15,18,20],[15,18,21],[15,19,20],[15,19,21],[14,18,22],[14,18,23],[14,19,22],[14,19,23],[15,18,22],[15,18,23],[15,19,22],[15,19,23],[14,20,22],[14,20,23],[14,21,22],[14,21,23],[15,20,22],[15,20,23],[15,21,22],[15,21,23],[16,18,20],[16,18,21],[16,19,20],[16,19,21],[17,18,20],[17,18,21],[17,19,20],[17,19,21],[16,18,22],[16,18,23],[16,19,22],[16,19,23],[17,18,22],[17,18,23],[17,19,22],[17,19,23],[16,20,22],[16,20,23],[16,21,22],[16,21,23],[17,20,22],[17,20,23],[17,21,22],[17,21,23],[18,20,22],[18,20,23],[18,21,22],[18,21,23],[19,20,22],[19,20,23],[19,21,22],[19,21,23]],"p":12,"partner_mix":[{"carrier":0,"passive":3,"receivers":[5,6]},{"carrier":5,"passive":6,"receivers":[0,3]},{"carrier":1,"passive":2,"receivers":[4,7]},{"carrier":4,"passive":7,"receivers":[1,2]},{"carrier":8,"passive":11,"receivers":[13,14]},{"carrier":13,"passive":14,"receivers":[8,11]},{"carrier":9,"passive":10,"receivers":[12,15]},{"carrier":12,"passive":15,"receivers":[9,10]},{"carrier":16,"passive":19,"receivers":[21,22]},{"carrier":21,"passive":22,"receivers":[16,19]},{"carrier":17,"passive":18,"receivers":[20,23]},{"carrier":20,"passive":23,"receivers":[17,18]},{"carrier":24,"passive":27,"receivers":[29,30]},{"carrier":29,"passive":30,"receivers":[24,27]},{"carrier":25,"passive":26,"receivers":[28,31]},{"carrier":28,"passive":31,"receivers":[25,26]},{"carrier":32,"passive":35,"receivers":[37,38]},{"carrier":37,"passive":38,"receivers":[32,35]},{"carrier":33,"passive":34,"receivers":[36,39]},{"carrier":36,"passive":39,"receivers":[33,34]},{"carrier":40,"passive":43,"receivers":[45,46]},{"carrier":45,"passive":46,"receivers":[40,43]},{"carrier":41,"passive":42,"receivers":[44,47]},{"carrier":44,"passive":47,"receivers":[41,42]},{"carrier":48,"passive":51,"receivers":[53,54]},{"carrier":53,"passive":54,"receivers":[48,51]},{"carrier":49,"passive":50,"receivers":[52,55]},{"carrier":52,"passive":55,"receivers":[49,50]},{"carrier":56,"passive":59,"receivers":[61,62]},{"carrier":61,"passive":62,"receivers":[56,59]},{"carrier":57,"passive":58,"receivers":[60,63]},{"carrier":60,"passive":63,"receivers":[57,58]},{"carrier":64,"passive":67,"receivers":[69,70]},{"carrier":69,"passive":70,"receivers":[64,67]},{"carrier":65,"passive":66,"receivers":[68,71]},{"carrier":68,"passive":71,"receivers":[65,66]},{"carrier":72,"passive":75,"receivers":[77,78]},{"carrier":77,"passive":78,"receivers":[72,75]},{"carrier":73,"passive":74,"receivers":[76,79]},{"carrier":76,"passive":79,"receivers":[73,74]},{"carrier":80,"passive":83,"receivers":[85,86]},{"carrier":85,"passive":86,"receivers":[80,83]},{"carrier":81,"passive":82,"receivers":[84,87]},{"carrier":84,"passive":87,"receivers":[81,82]},{"carrier":88,"passive":91,"receivers":[93,94]},{"carrier":93,"passive":94,"receivers":[88,91]},{"carrier":89,"passive":90,"receivers":[92,95]},{"carrier":92,"passive":95,"receivers":[89,90]},{"carrier":96,"passive":99,"receivers":[101,102]},{"carrier":101,"passive":102,"receivers":[96,99]},{"carrier":97,"passive":98,"receivers":[100,103]},{"carrier":100,"passive":103,"receivers":[97,98]},{"carrier":104,"passive":107,"receivers":[109,110]},{"carrier":109,"passive":110,"receivers":[104,107]},{"carrier":105,"passive":106,"receivers":[108,111]},{"carrier":108,"passive":111,"receivers":[105,106]},{"carrier":112,"passive":115,"receivers":[117,118]},{"carrier":117,"passive":118,"receivers":[112,115]},{"carrier":113,"passive":114,"receivers":[116,119]},{"carrier":116,"passive":119,"receivers":[113,114]},{"carrier":120,"passive":123,"receivers":[125,126]},{"carrier":125,"passive":126,"receivers":[120,123]},{"carrier":121,"passive":122,"receivers":[124,127]},{"carrier":124,"passive":127,"receivers":[121,122]},{"carrier":128,"passive":131,"receivers":[133,134]},{"carrier":133,"passive":134,"receivers":[128,131]},{"carrier":129,"passive":130,"receivers":[132,135]},{"carrier":132,"passive":135,"receivers":[129,130]},{"carrier":136,"passive":139,"receivers":[141,142]},{"carrier":141,"passive":142,"receivers":[136,139]},{"carrier":137,"passive":138,"receivers":[140,143]},{"carrier":140,"passive":143,"receivers":[137,138]},{"carrier":144,"passive":147,"receivers":[149,150]},{"carrier":149,"passive":150,"receivers":[144,147]},{"carrier":145,"passive":146,"receivers":[148,151]},{"carrier":148,"passive":151,"receivers":[145,146]},{"carrier":152,"passive":155,"receivers":[157,158]},{"carrier":157,"passive":158,"receivers":[152,155]},{"carrier":153,"passive":154,"receivers":[156,159]},{"carrier":156,"passive":159,"receivers":[153,154]},{"carrier":160,"passive":163,"receivers":[165,166]},{"carrier":165,"passive":166,"receivers":[160,163]},{"carrier":161,"passive":162,"receivers":[164,167]},{"carrier":164,"passive":167,"receivers":[161,162]},{"carrier":168,"passive":171,"receivers":[173,174]},{"carrier":173,"passive":174,"receivers":[168,171]},{"carrier":169,"passive":170,"receivers":[172,175]},{"carrier":172,"passive":175,"receivers":[169,170]},{"carrier":176,"passive":179,"receivers":[181,182]},{"carrier":181,"passive":182,"receivers":[176,179]},{"carrier":177,"passive":178,"receivers":[180,183]},{"carrier":180,"passive":183,"receivers":[177,178]},{"carrier":184,"passive":187,"receivers":[189,190]},{"carrier":189,"passive":190,"receivers":[184,187]},{"carrier":185,"passive":186,"receivers":[188,191]},{"carrier":188,"passive":191,"receivers":[185,186]},{"carrier":192,"passive":195,"receivers":[197,198]},{"carrier":197,"passive":198,"receivers":[192,195]},{"carrier":193,"passive":194,"receivers":[196,199]},{"carrier":196,"passive":199,"receivers":[193,194]},{"carrier":200,"passive":203,"receivers":[205,206]},{"carrier":205,"passive":206,"receivers":[200,203]},{"carrier":201,"passive":202,"receivers":[204,207]},{"carrier":204,"passive":207,"receivers":[201,202]},{"carrier":208,"passive":211,"receivers":[213,214]},{"carrier":213,"passive":214,"receivers":[208,211]},{"carrier":209,"passive":210,"receivers":[212,215]},{"carrier":212,"passive":215,"receivers":[209,210]},{"carrier":216,"passive":219,"receivers":[221,222]},{"carrier":221,"passive":222,"receivers":[216,219]},{"carrier":217,"passive":218,"receivers":[220,223]},{"carrier":220,"passive":223,"receivers":[217,218]},{"carrier":224,"passive":227,"receivers":[229,230]},{"carrier":229,"passive":230,"receivers":[224,227]},{"carrier":225,"passive":226,"receivers":[228,231]},{"carrier":228,"passive":231,"receivers":[225,226]},{"carrier":232,"passive":235,"receivers":[237,238]},{"carrier":237,"passive":238,"receivers":[232,235]},{"carrier":233,"passive":234,"receivers":[236,239]},{"carrier":236,"passive":239,"receivers":[233,234]},{"carrier":240,"passive":243,"receivers":[245,246]},{"carrier":245,"passive":246,"receivers":[240,243]},{"carrier":241,"passive":242,"receivers":[244,247]},{"carrier":244,"passive":247,"receivers":[241,242]},{"carrier":248,"passive":251,"receivers":[253,254]},{"carrier":253,"passive":254,"receivers":[248,251]},{"carrier":249,"passive":250,"receivers":[252,255]},{"carrier":252,"passive":255,"receivers":[249,250]},{"carrier":256,"passive":259,"receivers":[261,262]},{"carrier":261,"passive":262,"receivers":[256,259]},{"carrier":257,"passive":258,"receivers":[260,263]},{"carrier":260,"passive":263,"receivers":[257,258]},{"carrier":264,"passive":267,"receivers":[269,270]},{"carrier":269,"passive":270,"receivers":[264,267]},{"carrier":265,"passive":266,"receivers":[268,271]},{"carrier":268,"passive":271,"receivers":[265,266]},{"carrier":272,"passive":275,"receivers":[277,278]},{"carrier":277,"passive":278,"receivers":[272,275]},{"carrier":273,"passive":274,"receivers":[276,279]},{"carrier":276,"passive":279,"receivers":[273,274]},{"carrier":280,"passive":283,"receivers":[285,286]},{"carrier":285,"passive":286,"receivers":[280,283]},{"carrier":281,"passive":282,"receivers":[284,287]},{"carrier":284,"passive":287,"receivers":[281,282]},{"carrier":288,"passive":291,"receivers":[293,294]},{"carrier":293,"passive":294,"receivers":[288,291]},{"carrier":289,"passive":290,"receivers":[292,295]},{"carrier":292,"passive":295,"receivers":[289,290]},{"carrier":296,"passive":299,"receivers":[301,302]},{"carrier":301,"passive":302,"receivers":[296,299]},{"carrier":297,"passive":298,"receivers":[300,303]},{"carrier":300,"passive":303,"receivers":[297,298]},{"carrier":304,"passive":307,"receivers":[309,310]},{"carrier":309,"passive":310,"receivers":[304,307]},{"carrier":305,"passive":306,"receivers":[308,311]},{"carrier":308,"passive":311,"receivers":[305,306]},{"carrier":312,"passive":315,"receivers":[317,318]},{"carrier":317,"passive":318,"receivers":[312,315]},{"carrier":313,"passive":314,"receivers":[316,319]},{"carrier":316,"passive":319,"receivers":[313,314]},{"carrier":320,"passive":323,"receivers":[325,326]},{"carrier":325,"passive":326,"receivers":[320,323]},{"carrier":321,"passive":322,"receivers":[324,327]},{"carrier":324,"passive":327,"receivers":[321,322]},{"carrier":328,"passive":331,"receivers":[333,334]},{"carrier":333,"passive":334,"receivers":[328,331]},{"carrier":329,"passive":330,"receivers":[332,335]},{"carrier":332,"passive":335,"receivers":[329,330]},{"carrier":336,"passive":339,"receivers":[341,342]},{"carrier":341,"passive":342,"receivers":[336,339]},{"carrier":337,"passive":338,"receivers":[340,343]},{"carrier":340,"passive":343,"receivers":[337,338]},{"carrier":344,"passive":347,"receivers":[349,350]},{"carrier":349,"passive":350,"receivers":[344,347]},{"carrier":345,"passive":346,"receivers":[348,351]},{"carrier":348,"passive":351,"receivers":[345,346]},{"carrier":352,"passive":355,"receivers":[357,358]},{"carrier":357,"passive":358,"receivers":[352,355]},{"carrier":353,"passive":354,"receivers":[356,359]},{"carrier":356,"passive":359,"receivers":[353,354]},{"carrier":360,"passive":363,"receivers":[365,366]},{"carrier":365,"passive":366,"receivers":[360,363]},{"carrier":361,"passive":362,"receivers":[364,367]},{"carrier":364,"passive":367,"receivers":[361,362]},{"carrier":368,"passive":371,"receivers":[373,374]},{"carrier":373,"passive":374,"receivers":[368,371]},{"carrier":369,"passive":370,"receivers":[372,375]},{"carrier":372,"passive":375,"receivers":[369,370]},{"carrier":376,"passive":379,"receivers":[381,382]},{"carrier":381,"passive":382,"receivers":[376,379]},{"carrier":377,"passive":378,"receivers":[380,383]},{"carrier":380,"passive":383,"receivers":[377,378]},{"carrier":384,"passive":387,"receivers":[389,390]},{"carrier":389,"passive":390,"receivers":[384,387]},{"carrier":385,"passive":386,"receivers":[388,391]},{"carrier":388,"passive":391,"receivers":[385,386]},{"carrier":392,"passive":395,"receivers":[397,398]},{"carrier":397,"passive":398,"receivers":[392,395]},{"carrier":393,"passive":394,"receivers":[396,399]},{"carrier":396,"passive":399,"receivers":[393,394]},{"carrier":400,"passive":403,"receivers":[405,406]},{"carrier":405,"passive":406,"receivers":[400,403]},{"carrier":401,"passive":402,"receivers":[404,407]},{"carrier":404,"passive":407,"receivers":[401,402]},{"carrier":408,"passive":411,"receivers":[413,414]},{"carrier":413,"passive":414,"receivers":[408,411]},{"carrier":409,"passive":410,"receivers":[412,415]},{"carrier":412,"passive":415,"receivers":[409,410]},{"carrier":416,"passive":419,"receivers":[421,422]},{"carrier":421,"passive":422,"receivers":[416,419]},{"carrier":417,"passive":418,"receivers":[420,423]},{"carrier":420,"passive":423,"receivers":[417,418]},{"carrier":424,"passive":427,"receivers":[429,430]},{"carrier":429,"passive":430,"receivers":[424,427]},{"carrier":425,"passive":426,"receivers":[428,431]},{"carrier":428,"passive":431,"receivers":[425,426]},{"carrier":432,"passive":435,"receivers":[437,438]},{"carrier":437,"passive":438,"receivers":[432,435]},{"carrier":433,"passive":434,"receivers":[436,439]},{"carrier":436,"passive":439,"receivers":[433,434]},{"carrier":440,"passive":443,"receivers":[445,446]},{"carrier":445,"passive":446,"receivers":[440,443]},{"carrier":441,"passive":442,"receivers":[444,447]},{"carrier":444,"passive":447,"receivers":[441,442]},{"carrier":448,"passive":451,"receivers":[453,454]},{"carrier":453,"passive":454,"receivers":[448,451]},{"carrier":449,"passive":450,"receivers":[452,455]},{"carrier":452,"passive":455,"receivers":[449,450]},{"carrier":456,"passive":459,"receivers":[461,462]},{"carrier":461,"passive":462,"receivers":[456,459]},{"carrier":457,"passive":458,"receivers":[460,463]},{"carrier":460,"passive":463,"receivers":[457,458]},{"carrier":464,"passive":467,"receivers":[469,470]},{"carrier":469,"passive":470,"receivers":[464,467]},{"carrier":465,"passive":466,"receivers":[468,471]},{"carrier":468,"passive":471,"receivers":[465,466]},{"carrier":472,"passive":475,"receivers":[477,478]},{"carrier":477,"passive":478,"receivers":[472,475]},{"carrier":473,"passive":474,"receivers":[476,479]},{"carrier":476,"passive":479,"receivers":[473,474]},{"carrier":480,"passive":483,"receivers":[485,486]},{"carrier":485,"passive":486,"receivers":[480,483]},{"carrier":481,"passive":482,"receivers":[484,487]},{"carrier":484,"passive":487,"receivers":[481,482]},{"carrier":488,"passive":491,"receivers":[493,494]},{"carrier":493,"passive":494,"receivers":[488,491]},{"carrier":489,"passive":490,"receivers":[492,495]},{"carrier":492,"passive":495,"receivers":[489,490]},{"carrier":496,"passive":499,"receivers":[501,502]},{"carrier":501,"passive":502,"receivers":[496,499]},{"carrier":497,"passive":498,"receivers":[500,503]},{"carrier":500,"passive":503,"receivers":[497,498]},{"carrier":504,"passive":507,"receivers":[509,510]},{"carrier":509,"passive":510,"receivers":[504,507]},{"carrier":505,"passive":506,"receivers":[508,511]},{"carrier":508,"passive":511,"receivers":[505,506]},{"carrier":512,"passive":515,"receivers":[517,518]},{"carrier":517,"passive":518,"receivers":[512,515]},{"carrier":513,"passive":514,"receivers":[516,519]},{"carrier":516,"passive":519,"receivers":[513,514]},{"carrier":520,"passive":523,"receivers":[525,526]},{"carrier":525,"passive":526,"receivers":[520,523]},{"carrier":521,"passive":522,"receivers":[524,527]},{"carrier":524,"passive":527,"receivers":[521,522]},{"carrier":528,"passive":531,"receivers":[533,534]},{"carrier":533,"passive":534,"receivers":[528,531]},{"carrier":529,"passive":530,"receivers":[532,535]},{"carrier":532,"passive":535,"receivers":[529,530]},{"carrier":536,"passive":539,"receivers":[541,542]},{"carrier":541,"passive":542,"receivers":[536,539]},{"carrier":537,"passive":538,"receivers":[540,543]},{"carrier":540,"passive":543,"receivers":[537,538]},{"carrier":544,"passive":547,"receivers":[549,550]},{"carrier":549,"passive":550,"receivers":[544,547]},{"carrier":545,"passive":546,"receivers":[548,551]},{"carrier":548,"passive":551,"receivers":[545,546]},{"carrier":552,"passive":555,"receivers":[557,558]},{"carrier":557,"passive":558,"receivers":[552,555]},{"carrier":553,"passive":554,"receivers":[556,559]},{"carrier":556,"passive":559,"receivers":[553,554]},{"carrier":560,"passive":563,"receivers":[565,566]},{"carrier":565,"passive":566,"receivers":[560,563]},{"carrier":561,"passive":562,"receivers":[564,567]},{"carrier":564,"passive":567,"receivers":[561,562]},{"carrier":568,"passive":571,"receivers":[573,574]},{"carrier":573,"passive":574,"receivers":[568,571]},{"carrier":569,"passive":570,"receivers":[572,575]},{"carrier":572,"passive":575,"receivers":[569,570]},{"carrier":576,"passive":579,"receivers":[581,582]},{"carrier":581,"passive":582,"receivers":[576,579]},{"carrier":577,"passive":578,"receivers":[580,583]},{"carrier":580,"passive":583,"receivers":[577,578]},{"carrier":584,"passive":587,"receivers":[589,590]},{"carrier":589,"passive":590,"receivers":[584,587]},{"carrier":585,"passive":586,"receivers":[588,591]},{"carrier":588,"passive":591,"receivers":[585,586]},{"carrier":592,"passive":595,"receivers":[597,598]},{"carrier":597,"passive":598,"receivers":[592,595]},{"carrier":593,"passive":594,"receivers":[596,599]},{"carrier":596,"passive":599,"receivers":[593,594]},{"carrier":600,"passive":603,"receivers":[605,606]},{"carrier":605,"passive":606,"receivers":[600,603]},{"carrier":601,"passive":602,"receivers":[604,607]},{"carrier":604,"passive":607,"receivers":[601,602]},{"carrier":608,"passive":611,"receivers":[613,614]},{"carrier":613,"passive":614,"receivers":[608,611]},{"carrier":609,"passive":610,"receivers":[612,615]},{"carrier":612,"passive":615,"receivers":[609,610]},{"carrier":616,"passive":619,"receivers":[621,622]},{"carrier":621,"passive":622,"receivers":[616,619]},{"carrier":617,"passive":618,"receivers":[620,623]},{"carrier":620,"passive":623,"receivers":[617,618]},{"carrier":624,"passive":627,"receivers":[629,630]},{"carrier":629,"passive":630,"receivers":[624,627]},{"carrier":625,"passive":626,"receivers":[628,631]},{"carrier":628,"passive":631,"receivers":[625,626]},{"carrier":632,"passive":635,"receivers":[637,638]},{"carrier":637,"passive":638,"receivers":[632,635]},{"carrier":633,"passive":634,"receivers":[636,639]},{"carrier":636,"passive":639,"receivers":[633,634]},{"carrier":640,"passive":643,"receivers":[645,646]},{"carrier":645,"passive":646,"receivers":[640,643]},{"carrier":641,"passive":642,"receivers":[644,647]},{"carrier":644,"passive":647,"receivers":[641,642]},{"carrier":648,"passive":651,"receivers":[653,654]},{"carrier":653,"passive":654,"receivers":[648,651]},{"carrier":649,"passive":650,"receivers":[652,655]},{"carrier":652,"passive":655,"receivers":[649,650]},{"carrier":656,"passive":659,"receivers":[661,662]},{"carrier":661,"passive":662,"receivers":[656,659]},{"carrier":657,"passive":658,"receivers":[660,663]},{"carrier":660,"passive":663,"receivers":[657,658]},{"carrier":664,"passive":667,"receivers":[669,670]},{"carrier":669,"passive":670,"receivers":[664,667]},{"carrier":665,"passive":666,"receivers":[668,671]},{"carrier":668,"passive":671,"receivers":[665,666]},{"carrier":672,"passive":675,"receivers":[677,678]},{"carrier":677,"passive":678,"receivers":[672,675]},{"carrier":673,"passive":674,"receivers":[676,679]},{"carrier":676,"passive":679,"receivers":[673,674]},{"carrier":680,"passive":683,"receivers":[685,686]},{"carrier":685,"passive":686,"receivers":[680,683]},{"carrier":681,"passive":682,"receivers":[684,687]},{"carrier":684,"passive":687,"receivers":[681,682]},{"carrier":688,"passive":691,"receivers":[693,694]},{"carrier":693,"passive":694,"receivers":[688,691]},{"carrier":689,"passive":690,"receivers":[692,695]},{"carrier":692,"passive":695,"receivers":[689,690]},{"carrier":696,"passive":699,"receivers":[701,702]},{"carrier":701,"passive":702,"receivers":[696,699]},{"carrier":697,"passive":698,"receivers":[700,703]},{"carrier":700,"passive":703,"receivers":[697,698]},{"carrier":704,"passive":707,"receivers":[709,710]},{"carrier":709,"passive":710,"receivers":[704,707]},{"carrier":705,"passive":706,"receivers":[708,711]},{"carrier":708,"passive":711,"receivers":[705,706]},{"carrier":712,"passive":715,"receivers":[717,718]},{"carrier":717,"passive":718,"receivers":[712,715]},{"carrier":713,"passive":714,"receivers":[716,719]},{"carrier":716,"passive":719,"receivers":[713,714]},{"carrier":720,"passive":723,"receivers":[725,726]},{"carrier":725,"passive":726,"receivers":[720,723]},{"carrier":721,"passive":722,"receivers":[724,727]},{"carrier":724,"passive":727,"receivers":[721,722]},{"carrier":728,"passive":731,"receivers":[733,734]},{"carrier":733,"passive":734,"receivers":[728,731]},{"carrier":729,"passive":730,"receivers":[732,735]},{"carrier":732,"passive":735,"receivers":[729,730]},{"carrier":736,"passive":739,"receivers":[741,742]},{"carrier":741,"passive":742,"receivers":[736,739]},{"carrier":737,"passive":738,"receivers":[740,743]},{"carrier":740,"passive":743,"receivers":[737,738]},{"carrier":744,"passive":747,"receivers":[749,750]},{"carrier":749,"passive":750,"receivers":[744,747]},{"carrier":745,"passive":746,"receivers":[748,751]},{"carrier":748,"passive":751,"receivers":[745,746]},{"carrier":752,"passive":755,"receivers":[757,758]},{"carrier":757,"passive":758,"receivers":[752,755]},{"carrier":753,"passive":754,"receivers":[756,759]},{"carrier":756,"passive":759,"receivers":[753,754]},{"carrier":760,"passive":763,"receivers":[765,766]},{"carrier":765,"passive":766,"receivers":[760,763]},{"carrier":761,"passive":762,"receivers":[764,767]},{"carrier":764,"passive":767,"receivers":[761,762]},{"carrier":768,"passive":771,"receivers":[773,774]},{"carrier":773,"passive":774,"receivers":[768,771]},{"carrier":769,"passive":770,"receivers":[772,775]},{"carrier":772,"passive":775,"receivers":[769,770]},{"carrier":776,"passive":779,"receivers":[781,782]},{"carrier":781,"passive":782,"receivers":[776,779]},{"carrier":777,"passive":778,"receivers":[780,783]},{"carrier":780,"passive":783,"receivers":[777,778]},{"carrier":784,"passive":787,"receivers":[789,790]},{"carrier":789,"passive":790,"receivers":[784,787]},{"carrier":785,"passive":786,"receivers":[788,791]},{"carrier":788,"passive":791,"receivers":[785,786]},{"carrier":792,"passive":795,"receivers":[797,798]},{"carrier":797,"passive":798,"receivers":[792,795]},{"carrier":793,"passive":794,"receivers":[796,799]},{"carrier":796,"passive":799,"receivers":[793,794]},{"carrier":800,"passive":803,"receivers":[805,806]},{"carrier":805,"passive":806,"receivers":[800,803]},{"carrier":801,"passive":802,"receivers":[804,807]},{"carrier":804,"passive":807,"receivers":[801,802]},{"carrier":808,"passive":811,"receivers":[813,814]},{"carrier":813,"passive":814,"receivers":[808,811]},{"carrier":809,"passive":810,"receivers":[812,815]},{"carrier":812,"passive":815,"receivers":[809,810]},{"carrier":816,"passive":819,"receivers":[821,822]},{"carrier":821,"passive":822,"receivers":[816,819]},{"carrier":817,"passive":818,"receivers":[820,823]},{"carrier":820,"passive":823,"receivers":[817,818]},{"carrier":824,"passive":827,"receivers":[829,830]},{"carrier":829,"passive":830,"receivers":[824,827]},{"carrier":825,"passive":826,"receivers":[828,831]},{"carrier":828,"passive":831,"receivers":[825,826]},{"carrier":832,"passive":835,"receivers":[837,838]},{"carrier":837,"passive":838,"receivers":[832,835]},{"carrier":833,"passive":834,"receivers":[836,839]},{"carrier":836,"passive":839,"receivers":[833,834]},{"carrier":840,"passive":843,"receivers":[845,846]},{"carrier":845,"passive":846,"receivers":[840,843]},{"carrier":841,"passive":842,"receivers":[844,847]},{"carrier":844,"passive":847,"receivers":[841,842]},{"carrier":848,"passive":851,"receivers":[853,854]},{"carrier":853,"passive":854,"receivers":[848,851]},{"carrier":849,"passive":850,"receivers":[852,855]},{"carrier":852,"passive":855,"receivers":[849,850]},{"carrier":856,"passive":859,"receivers":[861,862]},{"carrier":861,"passive":862,"receivers":[856,859]},{"carrier":857,"passive":858,"receivers":[860,863]},{"carrier":860,"passive":863,"receivers":[857,858]},{"carrier":864,"passive":867,"receivers":[869,870]},{"carrier":869,"passive":870,"receivers":[864,867]},{"carrier":865,"passive":866,"receivers":[868,871]},{"carrier":868,"passive":871,"receivers":[865,866]},{"carrier":872,"passive":875,"receivers":[877,878]},{"carrier":877,"passive":878,"receivers":[872,875]},{"carrier":873,"passive":874,"receivers":[876,879]},{"carrier":876,"passive":879,"receivers":[873,874]},{"carrier":880,"passive":883,"receivers":[885,886]},{"carrier":885,"passive":886,"receivers":[880,883]},{"carrier":881,"passive":882,"receivers":[884,887]},{"carrier":884,"passive":887,"receivers":[881,882]},{"carrier":888,"passive":891,"receivers":[893,894]},{"carrier":893,"passive":894,"receivers":[888,891]},{"carrier":889,"passive":890,"receivers":[892,895]},{"carrier":892,"passive":895,"receivers":[889,890]},{"carrier":896,"passive":899,"receivers":[901,902]},{"carrier":901,"passive":902,"receivers":[896,899]},{"carrier":897,"passive":898,"receivers":[900,903]},{"carrier":900,"passive":903,"receivers":[897,898]},{"carrier":904,"passive":907,"receivers":[909,910]},{"carrier":909,"passive":910,"receivers":[904,907]},{"carrier":905,"passive":906,"receivers":[908,911]},{"carrier":908,"passive":911,"receivers":[905,906]},{"carrier":912,"passive":915,"receivers":[917,918]},{"carrier":917,"passive":918,"receivers":[912,915]},{"carrier":913,"passive":914,"receivers":[916,919]},{"carrier":916,"passive":919,"receivers":[913,914]},{"carrier":920,"passive":923,"receivers":[925,926]},{"carrier":925,"passive":926,"receivers":[920,923]},{"carrier":921,"passive":922,"receivers":[924,927]},{"carrier":924,"passive":927,"receivers":[921,922]},{"carrier":928,"passive":931,"receivers":[933,934]},{"carrier":933,"passive":934,"receivers":[928,931]},{"carrier":929,"passive":930,"receivers":[932,935]},{"carrier":932,"passive":935,"receivers":[929,930]},{"carrier":936,"passive":939,"receivers":[941,942]},{"carrier":941,"passive":942,"receivers":[936,939]},{"carrier":937,"passive":938,"receivers":[940,943]},{"carrier":940,"passive":943,"receivers":[937,938]},{"carrier":944,"passive":947,"receivers":[949,950]},{"carrier":949,"passive":950,"receivers":[944,947]},{"carrier":945,"passive":946,"receivers":[948,951]},{"carrier":948,"passive":951,"receivers":[945,946]},{"carrier":952,"passive":955,"receivers":[957,958]},{"carrier":957,"passive":958,"receivers":[952,955]},{"carrier":953,"passive":954,"receivers":[956,959]},{"carrier":956,"passive":959,"receivers":[953,954]},{"carrier":960,"passive":963,"receivers":[965,966]},{"carrier":965,"passive":966,"receivers":[960,963]},{"carrier":961,"passive":962,"receivers":[964,967]},{"carrier":964,"passive":967,"receivers":[961,962]},{"carrier":968,"passive":971,"receivers":[973,974]},{"carrier":973,"passive":974,"receivers":[968,971]},{"carrier":969,"passive":970,"receivers":[972,975]},{"carrier":972,"passive":975,"receivers":[969,970]},{"carrier":976,"passive":979,"receivers":[981,982]},{"carrier":981,"passive":982,"receivers":[976,979]},{"carrier":977,"passive":978,"receivers":[980,983]},{"carrier":980,"passive":983,"receivers":[977,978]},{"carrier":984,"passive":987,"receivers":[989,990]},{"carrier":989,"passive":990,"receivers":[984,987]},{"carrier":985,"passive":986,"receivers":[988,991]},{"carrier":988,"passive":991,"receivers":[985,986]},{"carrier":992,"passive":995,"receivers":[997,998]},{"carrier":997,"passive":998,"receivers":[992,995]},{"carrier":993,"passive":994,"receivers":[996,999]},{"carrier":996,"passive":999,"receivers":[993,994]},{"carrier":1000,"passive":1003,"receivers":[1005,1006]},{"carrier":1005,"passive":1006,"receivers":[1000,1003]},{"carrier":1001,"passive":1002,"receivers":[1004,1007]},{"carrier":1004,"passive":1007,"receivers":[1001,1002]},{"carrier":1008,"passive":1011,"receivers":[1013,1014]},{"carrier":1013,"passive":1014,"receivers":[1008,1011]},{"carrier":1009,"passive":1010,"receivers":[1012,1015]},{"carrier":1012,"passive":1015,"receivers":[1009,1010]},{"carrier":1016,"passive":1019,"receivers":[1021,1022]},{"carrier":1021,"passive":1022,"receivers":[1016,1019]},{"carrier":1017,"passive":1018,"receivers":[1020,1023]},{"carrier":1020,"passive":1023,"receivers":[1017,1018]},{"carrier":1024,"passive":1027,"receivers":[1029,1030]},{"carrier":1029,"passive":1030,"receivers":[1024,1027]},{"carrier":1025,"passive":1026,"receivers":[1028,1031]},{"carrier":1028,"passive":1031,"receivers":[1025,1026]},{"carrier":1032,"passive":1035,"receivers":[1037,1038]},{"carrier":1037,"passive":1038,"receivers":[1032,1035]},{"carrier":1033,"passive":1034,"receivers":[1036,1039]},{"carrier":1036,"passive":1039,"receivers":[1033,1034]},{"carrier":1040,"passive":1043,"receivers":[1045,1046]},{"carrier":1045,"passive":1046,"receivers":[1040,1043]},{"carrier":1041,"passive":1042,"receivers":[1044,1047]},{"carrier":1044,"passive":1047,"receivers":[1041,1042]},{"carrier":1048,"passive":1051,"receivers":[1053,1054]},{"carrier":1053,"passive":1054,"receivers":[1048,1051]},{"carrier":1049,"passive":1050,"receivers":[1052,1055]},{"carrier":1052,"passive":1055,"receivers":[1049,1050]},{"carrier":1056,"passive":1059,"receivers":[1061,1062]},{"carrier":1061,"passive":1062,"receivers":[1056,1059]},{"carrier":1057,"passive":1058,"receivers":[1060,1063]},{"carrier":1060,"passive":1063,"receivers":[1057,1058]},{"carrier":1064,"passive":1067,"receivers":[1069,1070]},{"carrier":1069,"passive":1070,"receivers":[1064,1067]},{"carrier":1065,"passive":1066,"receivers":[1068,1071]},{"carrier":1068,"passive":1071,"receivers":[1065,1066]},{"carrier":1072,"passive":1075,"receivers":[1077,1078]},{"carrier":1077,"passive":1078,"receivers":[1072,1075]},{"carrier":1073,"passive":1074,"receivers":[1076,1079]},{"carrier":1076,"passive":1079,"receivers":[1073,1074]},{"carrier":1080,"passive":1083,"receivers":[1085,1086]},{"carrier":1085,"passive":1086,"receivers":[1080,1083]},{"carrier":1081,"passive":1082,"receivers":[1084,1087]},{"carrier":1084,"passive":1087,"receivers":[1081,1082]},{"carrier":1088,"passive":1091,"receivers":[1093,1094]},{"carrier":1093,"passive":1094,"receivers":[1088,1091]},{"carrier":1089,"passive":1090,"receivers":[1092,1095]},{"carrier":1092,"passive":1095,"receivers":[1089,1090]},{"carrier":1096,"passive":1099,"receivers":[1101,1102]},{"carrier":1101,"passive":1102,"receivers":[1096,1099]},{"carrier":1097,"passive":1098,"receivers":[1100,1103]},{"carrier":1100,"passive":1103,"receivers":[1097,1098]},{"carrier":1104,"passive":1107,"receivers":[1109,1110]},{"carrier":1109,"passive":1110,"receivers":[1104,1107]},{"carrier":1105,"passive":1106,"receivers":[1108,1111]},{"carrier":1108,"passive":1111,"receivers":[1105,1106]},{"carrier":1112,"passive":1115,"receivers":[1117,1118]},{"carrier":1117,"passive":1118,"receivers":[1112,1115]},{"carrier":1113,"passive":1114,"receivers":[1116,1119]},{"carrier":1116,"passive":1119,"receivers":[1113,1114]},{"carrier":1120,"passive":1123,"receivers":[1125,1126]},{"carrier":1125,"passive":1126,"receivers":[1120,1123]},{"carrier":1121,"passive":1122,"receivers":[1124,1127]},{"carrier":1124,"passive":1127,"receivers":[1121,1122]},{"carrier":1128,"passive":1131,"receivers":[1133,1134]},{"carrier":1133,"passive":1134,"receivers":[1128,1131]},{"carrier":1129,"passive":1130,"receivers":[1132,1135]},{"carrier":1132,"passive":1135,"receivers":[1129,1130]},{"carrier":1136,"passive":1139,"receivers":[1141,1142]},{"carrier":1141,"passive":1142,"receivers":[1136,1139]},{"carrier":1137,"passive":1138,"receivers":[1140,1143]},{"carrier":1140,"passive":1143,"receivers":[1137,1138]},{"carrier":1144,"passive":1147,"receivers":[1149,1150]},{"carrier":1149,"passive":1150,"receivers":[1144,1147]},{"carrier":1145,"passive":1146,"receivers":[1148,1151]},{"carrier":1148,"passive":1151,"receivers":[1145,1146]},{"carrier":1152,"passive":1155,"receivers":[1157,1158]},{"carrier":1157,"passive":1158,"receivers":[1152,1155]},{"carrier":1153,"passive":1154,"receivers":[1156,1159]},{"carrier":1156,"passive":1159,"receivers":[1153,1154]},{"carrier":1160,"passive":1163,"receivers":[1165,1166]},{"carrier":1165,"passive":1166,"receivers":[1160,1163]},{"carrier":1161,"passive":1162,"receivers":[1164,1167]},{"carrier":1164,"passive":1167,"receivers":[1161,1162]},{"carrier":1168,"passive":1171,"receivers":[1173,1174]},{"carrier":1173,"passive":1174,"receivers":[1168,1171]},{"carrier":1169,"passive":1170,"receivers":[1172,1175]},{"carrier":1172,"passive":1175,"receivers":[1169,1170]},{"carrier":1176,"passive":1179,"receivers":[1181,1182]},{"carrier":1181,"passive":1182,"receivers":[1176,1179]},{"carrier":1177,"passive":1178,"receivers":[1180,1183]},{"carrier":1180,"passive":1183,"receivers":[1177,1178]},{"carrier":1184,"passive":1187,"receivers":[1189,1190]},{"carrier":1189,"passive":1190,"receivers":[1184,1187]},{"carrier":1185,"passive":1186,"receivers":[1188,1191]},{"carrier":1188,"passive":1191,"receivers":[1185,1186]},{"carrier":1192,"passive":1195,"receivers":[1197,1198]},{"carrier":1197,"passive":1198,"receivers":[1192,1195]},{"carrier":1193,"passive":1194,"receivers":[1196,1199]},{"carrier":1196,"passive":1199,"receivers":[1193,1194]},{"carrier":1200,"passive":1203,"receivers":[1205,1206]},{"carrier":1205,"passive":1206,"receivers":[1200,1203]},{"carrier":1201,"passive":1202,"receivers":[1204,1207]},{"carrier":1204,"passive":1207,"receivers":[1201,1202]},{"carrier":1208,"passive":1211,"receivers":[1213,1214]},{"carrier":1213,"passive":1214,"receivers":[1208,1211]},{"carrier":1209,"passive":1210,"receivers":[1212,1215]},{"carrier":1212,"passive":1215,"receivers":[1209,1210]},{"carrier":1216,"passive":1219,"receivers":[1221,1222]},{"carrier":1221,"passive":1222,"receivers":[1216,1219]},{"carrier":1217,"passive":1218,"receivers":[1220,1223]},{"carrier":1220,"passive":1223,"receivers":[1217,1218]},{"carrier":1224,"passive":1227,"receivers":[1229,1230]},{"carrier":1229,"passive":1230,"receivers":[1224,1227]},{"carrier":1225,"passive":1226,"receivers":[1228,1231]},{"carrier":1228,"passive":1231,"receivers":[1225,1226]},{"carrier":1232,"passive":1235,"receivers":[1237,1238]},{"carrier":1237,"passive":1238,"receivers":[1232,1235]},{"carrier":1233,"passive":1234,"receivers":[1236,1239]},{"carrier":1236,"passive":1239,"receivers":[1233,1234]},{"carrier":1240,"passive":1243,"receivers":[1245,1246]},{"carrier":1245,"passive":1246,"receivers":[1240,1243]},{"carrier":1241,"passive":1242,"receivers":[1244,1247]},{"carrier":1244,"passive":1247,"receivers":[1241,1242]},{"carrier":1248,"passive":1251,"receivers":[1253,1254]},{"carrier":1253,"passive":1254,"receivers":[1248,1251]},{"carrier":1249,"passive":1250,"receivers":[1252,1255]},{"carrier":1252,"passive":1255,"receivers":[1249,1250]},{"carrier":1256,"passive":1259,"receivers":[1261,1262]},{"carrier":1261,"passive":1262,"receivers":[1256,1259]},{"carrier":1257,"passive":1258,"receivers":[1260,1263]},{"carrier":1260,"passive":1263,"receivers":[1257,1258]},{"carrier":1264,"passive":1267,"receivers":[1269,1270]},{"carrier":1269,"passive":1270,"receivers":[1264,1267]},{"carrier":1265,"passive":1266,"receivers":[1268,1271]},{"carrier":1268,"passive":1271,"receivers":[1265,1266]},{"carrier":1272,"passive":1275,"receivers":[1277,1278]},{"carrier":1277,"passive":1278,"receivers":[1272,1275]},{"carrier":1273,"passive":1274,"receivers":[1276,1279]},{"carrier":1276,"passive":1279,"receivers":[1273,1274]},{"carrier":1280,"passive":1283,"receivers":[1285,1286]},{"carrier":1285,"passive":1286,"receivers":[1280,1283]},{"carrier":1281,"passive":1282,"receivers":[1284,1287]},{"carrier":1284,"passive":1287,"receivers":[1281,1282]},{"carrier":1288,"passive":1291,"receivers":[1293,1294]},{"carrier":1293,"passive":1294,"receivers":[1288,1291]},{"carrier":1289,"passive":1290,"receivers":[1292,1295]},{"carrier":1292,"passive":1295,"receivers":[1289,1290]},{"carrier":1296,"passive":1299,"receivers":[1301,1302]},{"carrier":1301,"passive":1302,"receivers":[1296,1299]},{"carrier":1297,"passive":1298,"receivers":[1300,1303]},{"carrier":1300,"passive":1303,"receivers":[1297,1298]},{"carrier":1304,"passive":1307,"receivers":[1309,1310]},{"carrier":1309,"passive":1310,"receivers":[1304,1307]},{"carrier":1305,"passive":1306,"receivers":[1308,1311]},{"carrier":1308,"passive":1311,"receivers":[1305,1306]},{"carrier":1312,"passive":1315,"receivers":[1317,1318]},{"carrier":1317,"passive":1318,"receivers":[1312,1315]},{"carrier":1313,"passive":1314,"receivers":[1316,1319]},{"carrier":1316,"passive":1319,"receivers":[1313,1314]},{"carrier":1320,"passive":1323,"receivers":[1325,1326]},{"carrier":1325,"passive":1326,"receivers":[1320,1323]},{"carrier":1321,"passive":1322,"receivers":[1324,1327]},{"carrier":1324,"passive":1327,"receivers":[1321,1322]},{"carrier":1328,"passive":1331,"receivers":[1333,1334]},{"carrier":1333,"passive":1334,"receivers":[1328,1331]},{"carrier":1329,"passive":1330,"receivers":[1332,1335]},{"carrier":1332,"passive":1335,"receivers":[1329,1330]},{"carrier":1336,"passive":1339,"receivers":[1341,1342]},{"carrier":1341,"passive":1342,"receivers":[1336,1339]},{"carrier":1337,"passive":1338,"receivers":[1340,1343]},{"carrier":1340,"passive":1343,"receivers":[1337,1338]},{"carrier":1344,"passive":1347,"receivers":[1349,1350]},{"carrier":1349,"passive":1350,"receivers":[1344,1347]},{"carrier":1345,"passive":1346,"receivers":[1348,1351]},{"carrier":1348,"passive":1351,"receivers":[1345,1346]},{"carrier":1352,"passive":1355,"receivers":[1357,1358]},{"carrier":1357,"passive":1358,"receivers":[1352,1355]},{"carrier":1353,"passive":1354,"receivers":[1356,1359]},{"carrier":1356,"passive":1359,"receivers":[1353,1354]},{"carrier":1360,"passive":1363,"receivers":[1365,1366]},{"carrier":1365,"passive":1366,"receivers":[1360,1363]},{"carrier":1361,"passive":1362,"receivers":[1364,1367]},{"carrier":1364,"passive":1367,"receivers":[1361,1362]},{"carrier":1368,"passive":1371,"receivers":[1373,1374]},{"carrier":1373,"passive":1374,"receivers":[1368,1371]},{"carrier":1369,"passive":1370,"receivers":[1372,1375]},{"carrier":1372,"passive":1375,"receivers":[1369,1370]},{"carrier":1376,"passive":1379,"receivers":[1381,1382]},{"carrier":1381,"passive":1382,"receivers":[1376,1379]},{"carrier":1377,"passive":1378,"receivers":[1380,1383]},{"carrier":1380,"passive":1383,"receivers":[1377,1378]},{"carrier":1384,"passive":1387,"receivers":[1389,1390]},{"carrier":1389,"passive":1390,"receivers":[1384,1387]},{"carrier":1385,"passive":1386,"receivers":[1388,1391]},{"carrier":1388,"passive":1391,"receivers":[1385,1386]},{"carrier":1392,"passive":1395,"receivers":[1397,1398]},{"carrier":1397,"passive":1398,"receivers":[1392,1395]},{"carrier":1393,"passive":1394,"receivers":[1396,1399]},{"carrier":1396,"passive":1399,"receivers":[1393,1394]},{"carrier":1400,"passive":1403,"receivers":[1405,1406]},{"carrier":1405,"passive":1406,"receivers":[1400,1403]},{"carrier":1401,"passive":1402,"receivers":[1404,1407]},{"carrier":1404,"passive":1407,"receivers":[1401,1402]},{"carrier":1408,"passive":1411,"receivers":[1413,1414]},{"carrier":1413,"passive":1414,"receivers":[1408,1411]},{"carrier":1409,"passive":1410,"receivers":[1412,1415]},{"carrier":1412,"passive":1415,"receivers":[1409,1410]},{"carrier":1416,"passive":1419,"receivers":[1421,1422]},{"carrier":1421,"passive":1422,"receivers":[1416,1419]},{"carrier":1417,"passive":1418,"receivers":[1420,1423]},{"carrier":1420,"passive":1423,"receivers":[1417,1418]},{"carrier":1424,"passive":1427,"receivers":[1429,1430]},{"carrier":1429,"passive":1430,"receivers":[1424,1427]},{"carrier":1425,"passive":1426,"receivers":[1428,1431]},{"carrier":1428,"passive":1431,"receivers":[1425,1426]},{"carrier":1432,"passive":1435,"receivers":[1437,1438]},{"carrier":1437,"passive":1438,"receivers":[1432,1435]},{"carrier":1433,"passive":1434,"receivers":[1436,1439]},{"carrier":1436,"passive":1439,"receivers":[1433,1434]},{"carrier":1440,"passive":1443,"receivers":[1445,1446]},{"carrier":1445,"passive":1446,"receivers":[1440,1443]},{"carrier":1441,"passive":1442,"receivers":[1444,1447]},{"carrier":1444,"passive":1447,"receivers":[1441,1442]},{"carrier":1448,"passive":1451,"receivers":[1453,1454]},{"carrier":1453,"passive":1454,"receivers":[1448,1451]},{"carrier":1449,"passive":1450,"receivers":[1452,1455]},{"carrier":1452,"passive":1455,"receivers":[1449,1450]},{"carrier":1456,"passive":1459,"receivers":[1461,1462]},{"carrier":1461,"passive":1462,"receivers":[1456,1459]},{"carrier":1457,"passive":1458,"receivers":[1460,1463]},{"carrier":1460,"passive":1463,"receivers":[1457,1458]},{"carrier":1464,"passive":1467,"receivers":[1469,1470]},{"carrier":1469,"passive":1470,"receivers":[1464,1467]},{"carrier":1465,"passive":1466,"receivers":[1468,1471]},{"carrier":1468,"passive":1471,"receivers":[1465,1466]},{"carrier":1472,"passive":1475,"receivers":[1477,1478]},{"carrier":1477,"passive":1478,"receivers":[1472,1475]},{"carrier":1473,"passive":1474,"receivers":[1476,1479]},{"carrier":1476,"passive":1479,"receivers":[1473,1474]},{"carrier":1480,"passive":1483,"receivers":[1485,1486]},{"carrier":1485,"passive":1486,"receivers":[1480,1483]},{"carrier":1481,"passive":1482,"receivers":[1484,1487]},{"carrier":1484,"passive":1487,"receivers":[1481,1482]},{"carrier":1488,"passive":1491,"receivers":[1493,1494]},{"carrier":1493,"passive":1494,"receivers":[1488,1491]},{"carrier":1489,"passive":1490,"receivers":[1492,1495]},{"carrier":1492,"passive":1495,"receivers":[1489,1490]},{"carrier":1496,"passive":1499,"receivers":[1501,1502]},{"carrier":1501,"passive":1502,"receivers":[1496,1499]},{"carrier":1497,"passive":1498,"receivers":[1500,1503]},{"carrier":1500,"passive":1503,"receivers":[1497,1498]},{"carrier":1504,"passive":1507,"receivers":[1509,1510]},{"carrier":1509,"passive":1510,"receivers":[1504,1507]},{"carrier":1505,"passive":1506,"receivers":[1508,1511]},{"carrier":1508,"passive":1511,"receivers":[1505,1506]},{"carrier":1512,"passive":1515,"receivers":[1517,1518]},{"carrier":1517,"passive":1518,"receivers":[1512,1515]},{"carrier":1513,"passive":1514,"receivers":[1516,1519]},{"carrier":1516,"passive":1519,"receivers":[1513,1514]},{"carrier":1520,"passive":1523,"receivers":[1525,1526]},{"carrier":1525,"passive":1526,"receivers":[1520,1523]},{"carrier":1521,"passive":1522,"receivers":[1524,1527]},{"carrier":1524,"passive":1527,"receivers":[1521,1522]},{"carrier":1528,"passive":1531,"receivers":[1533,1534]},{"carrier":1533,"passive":1534,"receivers":[1528,1531]},{"carrier":1529,"passive":1530,"receivers":[1532,1535]},{"carrier":1532,"passive":1535,"receivers":[1529,1530]},{"carrier":1536,"passive":1539,"receivers":[1541,1542]},{"carrier":1541,"passive":1542,"receivers":[1536,1539]},{"carrier":1537,"passive":1538,"receivers":[1540,1543]},{"carrier":1540,"passive":1543,"receivers":[1537,1538]},{"carrier":1544,"passive":1547,"receivers":[1549,1550]},{"carrier":1549,"passive":1550,"receivers":[1544,1547]},{"carrier":1545,"passive":1546,"receivers":[1548,1551]},{"carrier":1548,"passive":1551,"receivers":[1545,1546]},{"carrier":1552,"passive":1555,"receivers":[1557,1558]},{"carrier":1557,"passive":1558,"receivers":[1552,1555]},{"carrier":1553,"passive":1554,"receivers":[1556,1559]},{"carrier":1556,"passive":1559,"receivers":[1553,1554]},{"carrier":1560,"passive":1563,"receivers":[1565,1566]},{"carrier":1565,"passive":1566,"receivers":[1560,1563]},{"carrier":1561,"passive":1562,"receivers":[1564,1567]},{"carrier":1564,"passive":1567,"receivers":[1561,1562]},{"carrier":1568,"passive":1571,"receivers":[1573,1574]},{"carrier":1573,"passive":1574,"receivers":[1568,1571]},{"carrier":1569,"passive":1570,"receivers":[1572,1575]},{"carrier":1572,"passive":1575,"receivers":[1569,1570]},{"carrier":1576,"passive":1579,"receivers":[1581,1582]},{"carrier":1581,"passive":1582,"receivers":[1576,1579]},{"carrier":1577,"passive":1578,"receivers":[1580,1583]},{"carrier":1580,"passive":1583,"receivers":[1577,1578]},{"carrier":1584,"passive":1587,"receivers":[1589,1590]},{"carrier":1589,"passive":1590,"receivers":[1584,1587]},{"carrier":1585,"passive":1586,"receivers":[1588,1591]},{"carrier":1588,"passive":1591,"receivers":[1585,1586]},{"carrier":1592,"passive":1595,"receivers":[1597,1598]},{"carrier":1597,"passive":1598,"receivers":[1592,1595]},{"carrier":1593,"passive":1594,"receivers":[1596,1599]},{"carrier":1596,"passive":1599,"receivers":[1593,1594]},{"carrier":1600,"passive":1603,"receivers":[1605,1606]},{"carrier":1605,"passive":1606,"receivers":[1600,1603]},{"carrier":1601,"passive":1602,"receivers":[1604,1607]},{"carrier":1604,"passive":1607,"receivers":[1601,1602]},{"carrier":1608,"passive":1611,"receivers":[1613,1614]},{"carrier":1613,"passive":1614,"receivers":[1608,1611]},{"carrier":1609,"passive":1610,"receivers":[1612,1615]},{"carrier":1612,"passive":1615,"receivers":[1609,1610]},{"carrier":1616,"passive":1619,"receivers":[1621,1622]},{"carrier":1621,"passive":1622,"receivers":[1616,1619]},{"carrier":1617,"passive":1618,"receivers":[1620,1623]},{"carrier":1620,"passive":1623,"receivers":[1617,1618]},{"carrier":1624,"passive":1627,"receivers":[1629,1630]},{"carrier":1629,"passive":1630,"receivers":[1624,1627]},{"carrier":1625,"passive":1626,"receivers":[1628,1631]},{"carrier":1628,"passive":1631,"receivers":[1625,1626]},{"carrier":1632,"passive":1635,"receivers":[1637,1638]},{"carrier":1637,"passive":1638,"receivers":[1632,1635]},{"carrier":1633,"passive":1634,"receivers":[1636,1639]},{"carrier":1636,"passive":1639,"receivers":[1633,1634]},{"carrier":1640,"passive":1643,"receivers":[1645,1646]},{"carrier":1645,"passive":1646,"receivers":[1640,1643]},{"carrier":1641,"passive":1642,"receivers":[1644,1647]},{"carrier":1644,"passive":1647,"receivers":[1641,1642]},{"carrier":1648,"passive":1651,"receivers":[1653,1654]},{"carrier":1653,"passive":1654,"receivers":[1648,1651]},{"carrier":1649,"passive":1650,"receivers":[1652,1655]},{"carrier":1652,"passive":1655,"receivers":[1649,1650]},{"carrier":1656,"passive":1659,"receivers":[1661,1662]},{"carrier":1661,"passive":1662,"receivers":[1656,1659]},{"carrier":1657,"passive":1658,"receivers":[1660,1663]},{"carrier":1660,"passive":1663,"receivers":[1657,1658]},{"carrier":1664,"passive":1667,"receivers":[1669,1670]},{"carrier":1669,"passive":1670,"receivers":[1664,1667]},{"carrier":1665,"passive":1666,"receivers":[1668,1671]},{"carrier":1668,"passive":1671,"receivers":[1665,1666]},{"carrier":1672,"passive":1675,"receivers":[1677,1678]},{"carrier":1677,"passive":1678,"receivers":[1672,1675]},{"carrier":1673,"passive":1674,"receivers":[1676,1679]},{"carrier":1676,"passive":1679,"receivers":[1673,1674]},{"carrier":1680,"passive":1683,"receivers":[1685,1686]},{"carrier":1685,"passive":1686,"receivers":[1680,1683]},{"carrier":1681,"passive":1682,"receivers":[1684,1687]},{"carrier":1684,"passive":1687,"receivers":[1681,1682]},{"carrier":1688,"passive":1691,"receivers":[1693,1694]},{"carrier":1693,"passive":1694,"receivers":[1688,1691]},{"carrier":1689,"passive":1690,"receivers":[1692,1695]},{"carrier":1692,"passive":1695,"receivers":[1689,1690]},{"carrier":1696,"passive":1699,"receivers":[1701,1702]},{"carrier":1701,"passive":1702,"receivers":[1696,1699]},{"carrier":1697,"passive":1698,"receivers":[1700,1703]},{"carrier":1700,"passive":1703,"receivers":[1697,1698]},{"carrier":1704,"passive":1707,"receivers":[1709,1710]},{"carrier":1709,"passive":1710,"receivers":[1704,1707]},{"carrier":1705,"passive":1706,"receivers":[1708,1711]},{"carrier":1708,"passive":1711,"receivers":[1705,1706]},{"carrier":1712,"passive":1715,"receivers":[1717,1718]},{"carrier":1717,"passive":1718,"receivers":[1712,1715]},{"carrier":1713,"passive":1714,"receivers":[1716,1719]},{"carrier":1716,"passive":1719,"receivers":[1713,1714]},{"carrier":1720,"passive":1723,"receivers":[1725,1726]},{"carrier":1725,"passive":1726,"receivers":[1720,1723]},{"carrier":1721,"passive":1722,"receivers":[1724,1727]},{"carrier":1724,"passive":1727,"receivers":[1721,1722]},{"carrier":1728,"passive":1731,"receivers":[1733,1734]},{"carrier":1733,"passive":1734,"receivers":[1728,1731]},{"carrier":1729,"passive":1730,"receivers":[1732,1735]},{"carrier":1732,"passive":1735,"receivers":[1729,1730]},{"carrier":1736,"passive":1739,"receivers":[1741,1742]},{"carrier":1741,"passive":1742,"receivers":[1736,1739]},{"carrier":1737,"passive":1738,"receivers":[1740,1743]},{"carrier":1740,"passive":1743,"receivers":[1737,1738]},{"carrier":1744,"passive":1747,"receivers":[1749,1750]},{"carrier":1749,"passive":1750,"receivers":[1744,1747]},{"carrier":1745,"passive":1746,"receivers":[1748,1751]},{"carrier":1748,"passive":1751,"receivers":[1745,1746]},{"carrier":1752,"passive":1755,"receivers":[1757,1758]},{"carrier":1757,"passive":1758,"receivers":[1752,1755]},{"carrier":1753,"passive":1754,"receivers":[1756,1759]},{"carrier":1756,"passive":1759,"receivers":[1753,1754]}],"roots":[{"channel":"face0","coefficient":1,"kind":"side","node":8600,"targets":[0,1,2,3]},{"channel":"face0","coefficient":1,"kind":"side","node":9063,"targets":[4,5,6,7]},{"channel":"edge12","coefficient":1,"kind":"side","node":20015,"targets":[0,3]},{"channel":"edge12","coefficient":1,"kind":"side","node":19983,"targets":[1,2]},{"channel":"edge12","coefficient":1,"kind":"side","node":20015,"targets":[4,7]},{"channel":"edge12","coefficient":1,"kind":"side","node":19983,"targets":[5,6]},{"channel":"u01","coefficient":1,"kind":"side","node":23476,"targets":[0]},{"channel":"w02","coefficient":1,"kind":"side","node":23480,"targets":[0]},{"channel":"partner","coefficient":1,"kind":"side","node":3,"targets":[0]},{"channel":"u01","coefficient":1,"kind":"side","node":23476,"targets":[1]},{"channel":"w02","coefficient":1,"kind":"side","node":23481,"targets":[1]},{"channel":"partner","coefficient":1,"kind":"side","node":2,"targets":[1]},{"channel":"u01","coefficient":1,"kind":"side","node":23477,"targets":[2]},{"channel":"w02","coefficient":1,"kind":"side","node":23480,"targets":[2]},{"channel":"partner","coefficient":1,"kind":"side","node":1,"targets":[2]},{"channel":"u01","coefficient":1,"kind":"side","node":23477,"targets":[3]},{"channel":"w02","coefficient":1,"kind":"side","node":23481,"targets":[3]},{"channel":"partner","coefficient":1,"kind":"side","node":0,"targets":[3]},{"channel":"u01","coefficient":1,"kind":"side","node":23478,"targets":[4]},{"channel":"w02","coefficient":1,"kind":"side","node":23482,"targets":[4]},{"channel":"partner","coefficient":1,"kind":"side","node":7,"targets":[4]},{"channel":"u01","coefficient":1,"kind":"side","node":23478,"targets":[5]},{"channel":"w02","coefficient":1,"kind":"side","node":23483,"targets":[5]},{"channel":"partner","coefficient":1,"kind":"side","node":6,"targets":[5]},{"channel":"u01","coefficient":1,"kind":"side","node":23479,"targets":[6]},{"channel":"w02","coefficient":1,"kind":"side","node":23482,"targets":[6]},{"channel":"partner","coefficient":1,"kind":"side","node":5,"targets":[6]},{"channel":"u01","coefficient":1,"kind":"side","node":23479,"targets":[7]},{"channel":"w02","coefficient":1,"kind":"side","node":23483,"targets":[7]},{"channel":"partner","coefficient":1,"kind":"side","node":4,"targets":[7]},{"channel":"face0","coefficient":1,"kind":"side","node":8581,"targets":[8,9,10,11]},{"channel":"face0","coefficient":1,"kind":"side","node":9044,"targets":[12,13,14,15]},{"channel":"edge12","coefficient":1,"kind":"side","node":20079,"targets":[8,11]},{"channel":"edge12","coefficient":1,"kind":"side","node":20047,"targets":[9,10]},{"channel":"edge12","coefficient":1,"kind":"side","node":20079,"targets":[12,15]},{"channel":"edge12","coefficient":1,"kind":"side","node":20047,"targets":[13,14]},{"channel":"u01","coefficient":1,"kind":"side","node":23484,"targets":[8]},{"channel":"w02","coefficient":1,"kind":"side","node":23488,"targets":[8]},{"channel":"partner","coefficient":1,"kind":"side","node":11,"targets":[8]},{"channel":"u01","coefficient":1,"kind":"side","node":23484,"targets":[9]},{"channel":"w02","coefficient":1,"kind":"side","node":23489,"targets":[9]},{"channel":"partner","coefficient":1,"kind":"side","node":10,"targets":[9]},{"channel":"u01","coefficient":1,"kind":"side","node":23485,"targets":[10]},{"channel":"w02","coefficient":1,"kind":"side","node":23488,"targets":[10]},{"channel":"partner","coefficient":1,"kind":"side","node":9,"targets":[10]},{"channel":"u01","coefficient":1,"kind":"side","node":23485,"targets":[11]},{"channel":"w02","coefficient":1,"kind":"side","node":23489,"targets":[11]},{"channel":"partner","coefficient":1,"kind":"side","node":8,"targets":[11]},{"channel":"u01","coefficient":1,"kind":"side","node":23486,"targets":[12]},{"channel":"w02","coefficient":1,"kind":"side","node":23490,"targets":[12]},{"channel":"partner","coefficient":1,"kind":"side","node":15,"targets":[12]},{"channel":"u01","coefficient":1,"kind":"side","node":23486,"targets":[13]},{"channel":"w02","coefficient":1,"kind":"side","node":23491,"targets":[13]},{"channel":"partner","coefficient":1,"kind":"side","node":14,"targets":[13]},{"channel":"u01","coefficient":1,"kind":"side","node":23487,"targets":[14]},{"channel":"w02","coefficient":1,"kind":"side","node":23490,"targets":[14]},{"channel":"partner","coefficient":1,"kind":"side","node":13,"targets":[14]},{"channel":"u01","coefficient":1,"kind":"side","node":23487,"targets":[15]},{"channel":"w02","coefficient":1,"kind":"side","node":23491,"targets":[15]},{"channel":"partner","coefficient":1,"kind":"side","node":12,"targets":[15]},{"channel":"face0","coefficient":1,"kind":"side","node":8557,"targets":[16,17,18,19]},{"channel":"face0","coefficient":1,"kind":"side","node":9020,"targets":[20,21,22,23]},{"channel":"edge12","coefficient":1,"kind":"side","node":20143,"targets":[16,19]},{"channel":"edge12","coefficient":1,"kind":"side","node":20111,"targets":[17,18]},{"channel":"edge12","coefficient":1,"kind":"side","node":20143,"targets":[20,23]},{"channel":"edge12","coefficient":1,"kind":"side","node":20111,"targets":[21,22]},{"channel":"u01","coefficient":1,"kind":"side","node":23492,"targets":[16]},{"channel":"w02","coefficient":1,"kind":"side","node":23496,"targets":[16]},{"channel":"partner","coefficient":1,"kind":"side","node":19,"targets":[16]},{"channel":"u01","coefficient":1,"kind":"side","node":23492,"targets":[17]},{"channel":"w02","coefficient":1,"kind":"side","node":23497,"targets":[17]},{"channel":"partner","coefficient":1,"kind":"side","node":18,"targets":[17]},{"channel":"u01","coefficient":1,"kind":"side","node":23493,"targets":[18]},{"channel":"w02","coefficient":1,"kind":"side","node":23496,"targets":[18]},{"channel":"partner","coefficient":1,"kind":"side","node":17,"targets":[18]},{"channel":"u01","coefficient":1,"kind":"side","node":23493,"targets":[19]},{"channel":"w02","coefficient":1,"kind":"side","node":23497,"targets":[19]},{"channel":"partner","coefficient":1,"kind":"side","node":16,"targets":[19]},{"channel":"u01","coefficient":1,"kind":"side","node":23494,"targets":[20]},{"channel":"w02","coefficient":1,"kind":"side","node":23498,"targets":[20]},{"channel":"partner","coefficient":1,"kind":"side","node":23,"targets":[20]},{"channel":"u01","coefficient":1,"kind":"side","node":23494,"targets":[21]},{"channel":"w02","coefficient":1,"kind":"side","node":23499,"targets":[21]},{"channel":"partner","coefficient":1,"kind":"side","node":22,"targets":[21]},{"channel":"u01","coefficient":1,"kind":"side","node":23495,"targets":[22]},{"channel":"w02","coefficient":1,"kind":"side","node":23498,"targets":[22]},{"channel":"partner","coefficient":1,"kind":"side","node":21,"targets":[22]},{"channel":"u01","coefficient":1,"kind":"side","node":23495,"targets":[23]},{"channel":"w02","coefficient":1,"kind":"side","node":23499,"targets":[23]},{"channel":"partner","coefficient":1,"kind":"side","node":20,"targets":[23]},{"channel":"face0","coefficient":1,"kind":"side","node":8501,"targets":[24,25,26,27]},{"channel":"face0","coefficient":1,"kind":"side","node":8964,"targets":[28,29,30,31]},{"channel":"edge12","coefficient":1,"kind":"side","node":20207,"targets":[24,27]},{"channel":"edge12","coefficient":1,"kind":"side","node":20175,"targets":[25,26]},{"channel":"edge12","coefficient":1,"kind":"side","node":20207,"targets":[28,31]},{"channel":"edge12","coefficient":1,"kind":"side","node":20175,"targets":[29,30]},{"channel":"u01","coefficient":1,"kind":"side","node":23500,"targets":[24]},{"channel":"w02","coefficient":1,"kind":"side","node":23504,"targets":[24]},{"channel":"partner","coefficient":1,"kind":"side","node":27,"targets":[24]},{"channel":"u01","coefficient":1,"kind":"side","node":23500,"targets":[25]},{"channel":"w02","coefficient":1,"kind":"side","node":23505,"targets":[25]},{"channel":"partner","coefficient":1,"kind":"side","node":26,"targets":[25]},{"channel":"u01","coefficient":1,"kind":"side","node":23501,"targets":[26]},{"channel":"w02","coefficient":1,"kind":"side","node":23504,"targets":[26]},{"channel":"partner","coefficient":1,"kind":"side","node":25,"targets":[26]},{"channel":"u01","coefficient":1,"kind":"side","node":23501,"targets":[27]},{"channel":"w02","coefficient":1,"kind":"side","node":23505,"targets":[27]},{"channel":"partner","coefficient":1,"kind":"side","node":24,"targets":[27]},{"channel":"u01","coefficient":1,"kind":"side","node":23502,"targets":[28]},{"channel":"w02","coefficient":1,"kind":"side","node":23506,"targets":[28]},{"channel":"partner","coefficient":1,"kind":"side","node":31,"targets":[28]},{"channel":"u01","coefficient":1,"kind":"side","node":23502,"targets":[29]},{"channel":"w02","coefficient":1,"kind":"side","node":23507,"targets":[29]},{"channel":"partner","coefficient":1,"kind":"side","node":30,"targets":[29]},{"channel":"u01","coefficient":1,"kind":"side","node":23503,"targets":[30]},{"channel":"w02","coefficient":1,"kind":"side","node":23506,"targets":[30]},{"channel":"partner","coefficient":1,"kind":"side","node":29,"targets":[30]},{"channel":"u01","coefficient":1,"kind":"side","node":23503,"targets":[31]},{"channel":"w02","coefficient":1,"kind":"side","node":23507,"targets":[31]},{"channel":"partner","coefficient":1,"kind":"side","node":28,"targets":[31]},{"channel":"face0","coefficient":1,"kind":"side","node":8570,"targets":[32,33,34,35]},{"channel":"face0","coefficient":1,"kind":"side","node":9033,"targets":[36,37,38,39]},{"channel":"edge12","coefficient":1,"kind":"side","node":20271,"targets":[32,35]},{"channel":"edge12","coefficient":1,"kind":"side","node":20239,"targets":[33,34]},{"channel":"edge12","coefficient":1,"kind":"side","node":20271,"targets":[36,39]},{"channel":"edge12","coefficient":1,"kind":"side","node":20239,"targets":[37,38]},{"channel":"u01","coefficient":1,"kind":"side","node":23508,"targets":[32]},{"channel":"w02","coefficient":1,"kind":"side","node":23512,"targets":[32]},{"channel":"partner","coefficient":1,"kind":"side","node":35,"targets":[32]},{"channel":"u01","coefficient":1,"kind":"side","node":23508,"targets":[33]},{"channel":"w02","coefficient":1,"kind":"side","node":23513,"targets":[33]},{"channel":"partner","coefficient":1,"kind":"side","node":34,"targets":[33]},{"channel":"u01","coefficient":1,"kind":"side","node":23509,"targets":[34]},{"channel":"w02","coefficient":1,"kind":"side","node":23512,"targets":[34]},{"channel":"partner","coefficient":1,"kind":"side","node":33,"targets":[34]},{"channel":"u01","coefficient":1,"kind":"side","node":23509,"targets":[35]},{"channel":"w02","coefficient":1,"kind":"side","node":23513,"targets":[35]},{"channel":"partner","coefficient":1,"kind":"side","node":32,"targets":[35]},{"channel":"u01","coefficient":1,"kind":"side","node":23510,"targets":[36]},{"channel":"w02","coefficient":1,"kind":"side","node":23514,"targets":[36]},{"channel":"partner","coefficient":1,"kind":"side","node":39,"targets":[36]},{"channel":"u01","coefficient":1,"kind":"side","node":23510,"targets":[37]},{"channel":"w02","coefficient":1,"kind":"side","node":23515,"targets":[37]},{"channel":"partner","coefficient":1,"kind":"side","node":38,"targets":[37]},{"channel":"u01","coefficient":1,"kind":"side","node":23511,"targets":[38]},{"channel":"w02","coefficient":1,"kind":"side","node":23514,"targets":[38]},{"channel":"partner","coefficient":1,"kind":"side","node":37,"targets":[38]},{"channel":"u01","coefficient":1,"kind":"side","node":23511,"targets":[39]},{"channel":"w02","coefficient":1,"kind":"side","node":23515,"targets":[39]},{"channel":"partner","coefficient":1,"kind":"side","node":36,"targets":[39]},{"channel":"face0","coefficient":1,"kind":"side","node":8369,"targets":[40,41,42,43]},{"channel":"face0","coefficient":1,"kind":"side","node":8832,"targets":[44,45,46,47]},{"channel":"edge12","coefficient":1,"kind":"side","node":20335,"targets":[40,43]},{"channel":"edge12","coefficient":1,"kind":"side","node":20303,"targets":[41,42]},{"channel":"edge12","coefficient":1,"kind":"side","node":20335,"targets":[44,47]},{"channel":"edge12","coefficient":1,"kind":"side","node":20303,"targets":[45,46]},{"channel":"u01","coefficient":1,"kind":"side","node":23516,"targets":[40]},{"channel":"w02","coefficient":1,"kind":"side","node":23520,"targets":[40]},{"channel":"partner","coefficient":1,"kind":"side","node":43,"targets":[40]},{"channel":"u01","coefficient":1,"kind":"side","node":23516,"targets":[41]},{"channel":"w02","coefficient":1,"kind":"side","node":23521,"targets":[41]},{"channel":"partner","coefficient":1,"kind":"side","node":42,"targets":[41]},{"channel":"u01","coefficient":1,"kind":"side","node":23517,"targets":[42]},{"channel":"w02","coefficient":1,"kind":"side","node":23520,"targets":[42]},{"channel":"partner","coefficient":1,"kind":"side","node":41,"targets":[42]},{"channel":"u01","coefficient":1,"kind":"side","node":23517,"targets":[43]},{"channel":"w02","coefficient":1,"kind":"side","node":23521,"targets":[43]},{"channel":"partner","coefficient":1,"kind":"side","node":40,"targets":[43]},{"channel":"u01","coefficient":1,"kind":"side","node":23518,"targets":[44]},{"channel":"w02","coefficient":1,"kind":"side","node":23522,"targets":[44]},{"channel":"partner","coefficient":1,"kind":"side","node":47,"targets":[44]},{"channel":"u01","coefficient":1,"kind":"side","node":23518,"targets":[45]},{"channel":"w02","coefficient":1,"kind":"side","node":23523,"targets":[45]},{"channel":"partner","coefficient":1,"kind":"side","node":46,"targets":[45]},{"channel":"u01","coefficient":1,"kind":"side","node":23519,"targets":[46]},{"channel":"w02","coefficient":1,"kind":"side","node":23522,"targets":[46]},{"channel":"partner","coefficient":1,"kind":"side","node":45,"targets":[46]},{"channel":"u01","coefficient":1,"kind":"side","node":23519,"targets":[47]},{"channel":"w02","coefficient":1,"kind":"side","node":23523,"targets":[47]},{"channel":"partner","coefficient":1,"kind":"side","node":44,"targets":[47]},{"channel":"face0","coefficient":1,"kind":"side","node":8584,"targets":[48,49,50,51]},{"channel":"face0","coefficient":1,"kind":"side","node":9047,"targets":[52,53,54,55]},{"channel":"edge12","coefficient":1,"kind":"side","node":20399,"targets":[48,51]},{"channel":"edge12","coefficient":1,"kind":"side","node":20367,"targets":[49,50]},{"channel":"edge12","coefficient":1,"kind":"side","node":20399,"targets":[52,55]},{"channel":"edge12","coefficient":1,"kind":"side","node":20367,"targets":[53,54]},{"channel":"u01","coefficient":1,"kind":"side","node":23524,"targets":[48]},{"channel":"w02","coefficient":1,"kind":"side","node":23528,"targets":[48]},{"channel":"partner","coefficient":1,"kind":"side","node":51,"targets":[48]},{"channel":"u01","coefficient":1,"kind":"side","node":23524,"targets":[49]},{"channel":"w02","coefficient":1,"kind":"side","node":23529,"targets":[49]},{"channel":"partner","coefficient":1,"kind":"side","node":50,"targets":[49]},{"channel":"u01","coefficient":1,"kind":"side","node":23525,"targets":[50]},{"channel":"w02","coefficient":1,"kind":"side","node":23528,"targets":[50]},{"channel":"partner","coefficient":1,"kind":"side","node":49,"targets":[50]},{"channel":"u01","coefficient":1,"kind":"side","node":23525,"targets":[51]},{"channel":"w02","coefficient":1,"kind":"side","node":23529,"targets":[51]},{"channel":"partner","coefficient":1,"kind":"side","node":48,"targets":[51]},{"channel":"u01","coefficient":1,"kind":"side","node":23526,"targets":[52]},{"channel":"w02","coefficient":1,"kind":"side","node":23530,"targets":[52]},{"channel":"partner","coefficient":1,"kind":"side","node":55,"targets":[52]},{"channel":"u01","coefficient":1,"kind":"side","node":23526,"targets":[53]},{"channel":"w02","coefficient":1,"kind":"side","node":23531,"targets":[53]},{"channel":"partner","coefficient":1,"kind":"side","node":54,"targets":[53]},{"channel":"u01","coefficient":1,"kind":"side","node":23527,"targets":[54]},{"channel":"w02","coefficient":1,"kind":"side","node":23530,"targets":[54]},{"channel":"partner","coefficient":1,"kind":"side","node":53,"targets":[54]},{"channel":"u01","coefficient":1,"kind":"side","node":23527,"targets":[55]},{"channel":"w02","coefficient":1,"kind":"side","node":23531,"targets":[55]},{"channel":"partner","coefficient":1,"kind":"side","node":52,"targets":[55]},{"channel":"face0","coefficient":1,"kind":"side","node":8516,"targets":[56,57,58,59]},{"channel":"face0","coefficient":1,"kind":"side","node":8979,"targets":[60,61,62,63]},{"channel":"edge12","coefficient":1,"kind":"side","node":20463,"targets":[56,59]},{"channel":"edge12","coefficient":1,"kind":"side","node":20431,"targets":[57,58]},{"channel":"edge12","coefficient":1,"kind":"side","node":20463,"targets":[60,63]},{"channel":"edge12","coefficient":1,"kind":"side","node":20431,"targets":[61,62]},{"channel":"u01","coefficient":1,"kind":"side","node":23532,"targets":[56]},{"channel":"w02","coefficient":1,"kind":"side","node":23536,"targets":[56]},{"channel":"partner","coefficient":1,"kind":"side","node":59,"targets":[56]},{"channel":"u01","coefficient":1,"kind":"side","node":23532,"targets":[57]},{"channel":"w02","coefficient":1,"kind":"side","node":23537,"targets":[57]},{"channel":"partner","coefficient":1,"kind":"side","node":58,"targets":[57]},{"channel":"u01","coefficient":1,"kind":"side","node":23533,"targets":[58]},{"channel":"w02","coefficient":1,"kind":"side","node":23536,"targets":[58]},{"channel":"partner","coefficient":1,"kind":"side","node":57,"targets":[58]},{"channel":"u01","coefficient":1,"kind":"side","node":23533,"targets":[59]},{"channel":"w02","coefficient":1,"kind":"side","node":23537,"targets":[59]},{"channel":"partner","coefficient":1,"kind":"side","node":56,"targets":[59]},{"channel":"u01","coefficient":1,"kind":"side","node":23534,"targets":[60]},{"channel":"w02","coefficient":1,"kind":"side","node":23538,"targets":[60]},{"channel":"partner","coefficient":1,"kind":"side","node":63,"targets":[60]},{"channel":"u01","coefficient":1,"kind":"side","node":23534,"targets":[61]},{"channel":"w02","coefficient":1,"kind":"side","node":23539,"targets":[61]},{"channel":"partner","coefficient":1,"kind":"side","node":62,"targets":[61]},{"channel":"u01","coefficient":1,"kind":"side","node":23535,"targets":[62]},{"channel":"w02","coefficient":1,"kind":"side","node":23538,"targets":[62]},{"channel":"partner","coefficient":1,"kind":"side","node":61,"targets":[62]},{"channel":"u01","coefficient":1,"kind":"side","node":23535,"targets":[63]},{"channel":"w02","coefficient":1,"kind":"side","node":23539,"targets":[63]},{"channel":"partner","coefficient":1,"kind":"side","node":60,"targets":[63]},{"channel":"face0","coefficient":1,"kind":"side","node":8539,"targets":[64,65,66,67]},{"channel":"face0","coefficient":1,"kind":"side","node":9002,"targets":[68,69,70,71]},{"channel":"edge12","coefficient":1,"kind":"side","node":20527,"targets":[64,67]},{"channel":"edge12","coefficient":1,"kind":"side","node":20495,"targets":[65,66]},{"channel":"edge12","coefficient":1,"kind":"side","node":20527,"targets":[68,71]},{"channel":"edge12","coefficient":1,"kind":"side","node":20495,"targets":[69,70]},{"channel":"u01","coefficient":1,"kind":"side","node":23540,"targets":[64]},{"channel":"w02","coefficient":1,"kind":"side","node":23544,"targets":[64]},{"channel":"partner","coefficient":1,"kind":"side","node":67,"targets":[64]},{"channel":"u01","coefficient":1,"kind":"side","node":23540,"targets":[65]},{"channel":"w02","coefficient":1,"kind":"side","node":23545,"targets":[65]},{"channel":"partner","coefficient":1,"kind":"side","node":66,"targets":[65]},{"channel":"u01","coefficient":1,"kind":"side","node":23541,"targets":[66]},{"channel":"w02","coefficient":1,"kind":"side","node":23544,"targets":[66]},{"channel":"partner","coefficient":1,"kind":"side","node":65,"targets":[66]},{"channel":"u01","coefficient":1,"kind":"side","node":23541,"targets":[67]},{"channel":"w02","coefficient":1,"kind":"side","node":23545,"targets":[67]},{"channel":"partner","coefficient":1,"kind":"side","node":64,"targets":[67]},{"channel":"u01","coefficient":1,"kind":"side","node":23542,"targets":[68]},{"channel":"w02","coefficient":1,"kind":"side","node":23546,"targets":[68]},{"channel":"partner","coefficient":1,"kind":"side","node":71,"targets":[68]},{"channel":"u01","coefficient":1,"kind":"side","node":23542,"targets":[69]},{"channel":"w02","coefficient":1,"kind":"side","node":23547,"targets":[69]},{"channel":"partner","coefficient":1,"kind":"side","node":70,"targets":[69]},{"channel":"u01","coefficient":1,"kind":"side","node":23543,"targets":[70]},{"channel":"w02","coefficient":1,"kind":"side","node":23546,"targets":[70]},{"channel":"partner","coefficient":1,"kind":"side","node":69,"targets":[70]},{"channel":"u01","coefficient":1,"kind":"side","node":23543,"targets":[71]},{"channel":"w02","coefficient":1,"kind":"side","node":23547,"targets":[71]},{"channel":"partner","coefficient":1,"kind":"side","node":68,"targets":[71]},{"channel":"face0","coefficient":1,"kind":"side","node":8575,"targets":[72,73,74,75]},{"channel":"face0","coefficient":1,"kind":"side","node":9038,"targets":[76,77,78,79]},{"channel":"edge12","coefficient":1,"kind":"side","node":20591,"targets":[72,75]},{"channel":"edge12","coefficient":1,"kind":"side","node":20559,"targets":[73,74]},{"channel":"edge12","coefficient":1,"kind":"side","node":20591,"targets":[76,79]},{"channel":"edge12","coefficient":1,"kind":"side","node":20559,"targets":[77,78]},{"channel":"u01","coefficient":1,"kind":"side","node":23548,"targets":[72]},{"channel":"w02","coefficient":1,"kind":"side","node":23552,"targets":[72]},{"channel":"partner","coefficient":1,"kind":"side","node":75,"targets":[72]},{"channel":"u01","coefficient":1,"kind":"side","node":23548,"targets":[73]},{"channel":"w02","coefficient":1,"kind":"side","node":23553,"targets":[73]},{"channel":"partner","coefficient":1,"kind":"side","node":74,"targets":[73]},{"channel":"u01","coefficient":1,"kind":"side","node":23549,"targets":[74]},{"channel":"w02","coefficient":1,"kind":"side","node":23552,"targets":[74]},{"channel":"partner","coefficient":1,"kind":"side","node":73,"targets":[74]},{"channel":"u01","coefficient":1,"kind":"side","node":23549,"targets":[75]},{"channel":"w02","coefficient":1,"kind":"side","node":23553,"targets":[75]},{"channel":"partner","coefficient":1,"kind":"side","node":72,"targets":[75]},{"channel":"u01","coefficient":1,"kind":"side","node":23550,"targets":[76]},{"channel":"w02","coefficient":1,"kind":"side","node":23554,"targets":[76]},{"channel":"partner","coefficient":1,"kind":"side","node":79,"targets":[76]},{"channel":"u01","coefficient":1,"kind":"side","node":23550,"targets":[77]},{"channel":"w02","coefficient":1,"kind":"side","node":23555,"targets":[77]},{"channel":"partner","coefficient":1,"kind":"side","node":78,"targets":[77]},{"channel":"u01","coefficient":1,"kind":"side","node":23551,"targets":[78]},{"channel":"w02","coefficient":1,"kind":"side","node":23554,"targets":[78]},{"channel":"partner","coefficient":1,"kind":"side","node":77,"targets":[78]},{"channel":"u01","coefficient":1,"kind":"side","node":23551,"targets":[79]},{"channel":"w02","coefficient":1,"kind":"side","node":23555,"targets":[79]},{"channel":"partner","coefficient":1,"kind":"side","node":76,"targets":[79]},{"channel":"face0","coefficient":1,"kind":"side","node":8598,"targets":[80,81,82,83]},{"channel":"face0","coefficient":1,"kind":"side","node":9061,"targets":[84,85,86,87]},{"channel":"edge12","coefficient":1,"kind":"side","node":20655,"targets":[80,83]},{"channel":"edge12","coefficient":1,"kind":"side","node":20623,"targets":[81,82]},{"channel":"edge12","coefficient":1,"kind":"side","node":20655,"targets":[84,87]},{"channel":"edge12","coefficient":1,"kind":"side","node":20623,"targets":[85,86]},{"channel":"u01","coefficient":1,"kind":"side","node":23556,"targets":[80]},{"channel":"w02","coefficient":1,"kind":"side","node":23560,"targets":[80]},{"channel":"partner","coefficient":1,"kind":"side","node":83,"targets":[80]},{"channel":"u01","coefficient":1,"kind":"side","node":23556,"targets":[81]},{"channel":"w02","coefficient":1,"kind":"side","node":23561,"targets":[81]},{"channel":"partner","coefficient":1,"kind":"side","node":82,"targets":[81]},{"channel":"u01","coefficient":1,"kind":"side","node":23557,"targets":[82]},{"channel":"w02","coefficient":1,"kind":"side","node":23560,"targets":[82]},{"channel":"partner","coefficient":1,"kind":"side","node":81,"targets":[82]},{"channel":"u01","coefficient":1,"kind":"side","node":23557,"targets":[83]},{"channel":"w02","coefficient":1,"kind":"side","node":23561,"targets":[83]},{"channel":"partner","coefficient":1,"kind":"side","node":80,"targets":[83]},{"channel":"u01","coefficient":1,"kind":"side","node":23558,"targets":[84]},{"channel":"w02","coefficient":1,"kind":"side","node":23562,"targets":[84]},{"channel":"partner","coefficient":1,"kind":"side","node":87,"targets":[84]},{"channel":"u01","coefficient":1,"kind":"side","node":23558,"targets":[85]},{"channel":"w02","coefficient":1,"kind":"side","node":23563,"targets":[85]},{"channel":"partner","coefficient":1,"kind":"side","node":86,"targets":[85]},{"channel":"u01","coefficient":1,"kind":"side","node":23559,"targets":[86]},{"channel":"w02","coefficient":1,"kind":"side","node":23562,"targets":[86]},{"channel":"partner","coefficient":1,"kind":"side","node":85,"targets":[86]},{"channel":"u01","coefficient":1,"kind":"side","node":23559,"targets":[87]},{"channel":"w02","coefficient":1,"kind":"side","node":23563,"targets":[87]},{"channel":"partner","coefficient":1,"kind":"side","node":84,"targets":[87]},{"channel":"face0","coefficient":1,"kind":"side","node":8519,"targets":[88,89,90,91]},{"channel":"face0","coefficient":1,"kind":"side","node":8982,"targets":[92,93,94,95]},{"channel":"edge12","coefficient":1,"kind":"side","node":20719,"targets":[88,91]},{"channel":"edge12","coefficient":1,"kind":"side","node":20687,"targets":[89,90]},{"channel":"edge12","coefficient":1,"kind":"side","node":20719,"targets":[92,95]},{"channel":"edge12","coefficient":1,"kind":"side","node":20687,"targets":[93,94]},{"channel":"u01","coefficient":1,"kind":"side","node":23564,"targets":[88]},{"channel":"w02","coefficient":1,"kind":"side","node":23568,"targets":[88]},{"channel":"partner","coefficient":1,"kind":"side","node":91,"targets":[88]},{"channel":"u01","coefficient":1,"kind":"side","node":23564,"targets":[89]},{"channel":"w02","coefficient":1,"kind":"side","node":23569,"targets":[89]},{"channel":"partner","coefficient":1,"kind":"side","node":90,"targets":[89]},{"channel":"u01","coefficient":1,"kind":"side","node":23565,"targets":[90]},{"channel":"w02","coefficient":1,"kind":"side","node":23568,"targets":[90]},{"channel":"partner","coefficient":1,"kind":"side","node":89,"targets":[90]},{"channel":"u01","coefficient":1,"kind":"side","node":23565,"targets":[91]},{"channel":"w02","coefficient":1,"kind":"side","node":23569,"targets":[91]},{"channel":"partner","coefficient":1,"kind":"side","node":88,"targets":[91]},{"channel":"u01","coefficient":1,"kind":"side","node":23566,"targets":[92]},{"channel":"w02","coefficient":1,"kind":"side","node":23570,"targets":[92]},{"channel":"partner","coefficient":1,"kind":"side","node":95,"targets":[92]},{"channel":"u01","coefficient":1,"kind":"side","node":23566,"targets":[93]},{"channel":"w02","coefficient":1,"kind":"side","node":23571,"targets":[93]},{"channel":"partner","coefficient":1,"kind":"side","node":94,"targets":[93]},{"channel":"u01","coefficient":1,"kind":"side","node":23567,"targets":[94]},{"channel":"w02","coefficient":1,"kind":"side","node":23570,"targets":[94]},{"channel":"partner","coefficient":1,"kind":"side","node":93,"targets":[94]},{"channel":"u01","coefficient":1,"kind":"side","node":23567,"targets":[95]},{"channel":"w02","coefficient":1,"kind":"side","node":23571,"targets":[95]},{"channel":"partner","coefficient":1,"kind":"side","node":92,"targets":[95]},{"channel":"face0","coefficient":1,"kind":"side","node":8483,"targets":[96,97,98,99]},{"channel":"face0","coefficient":1,"kind":"side","node":8946,"targets":[100,101,102,103]},{"channel":"edge12","coefficient":1,"kind":"side","node":20783,"targets":[96,99]},{"channel":"edge12","coefficient":1,"kind":"side","node":20751,"targets":[97,98]},{"channel":"edge12","coefficient":1,"kind":"side","node":20783,"targets":[100,103]},{"channel":"edge12","coefficient":1,"kind":"side","node":20751,"targets":[101,102]},{"channel":"u01","coefficient":1,"kind":"side","node":23572,"targets":[96]},{"channel":"w02","coefficient":1,"kind":"side","node":23576,"targets":[96]},{"channel":"partner","coefficient":1,"kind":"side","node":99,"targets":[96]},{"channel":"u01","coefficient":1,"kind":"side","node":23572,"targets":[97]},{"channel":"w02","coefficient":1,"kind":"side","node":23577,"targets":[97]},{"channel":"partner","coefficient":1,"kind":"side","node":98,"targets":[97]},{"channel":"u01","coefficient":1,"kind":"side","node":23573,"targets":[98]},{"channel":"w02","coefficient":1,"kind":"side","node":23576,"targets":[98]},{"channel":"partner","coefficient":1,"kind":"side","node":97,"targets":[98]},{"channel":"u01","coefficient":1,"kind":"side","node":23573,"targets":[99]},{"channel":"w02","coefficient":1,"kind":"side","node":23577,"targets":[99]},{"channel":"partner","coefficient":1,"kind":"side","node":96,"targets":[99]},{"channel":"u01","coefficient":1,"kind":"side","node":23574,"targets":[100]},{"channel":"w02","coefficient":1,"kind":"side","node":23578,"targets":[100]},{"channel":"partner","coefficient":1,"kind":"side","node":103,"targets":[100]},{"channel":"u01","coefficient":1,"kind":"side","node":23574,"targets":[101]},{"channel":"w02","coefficient":1,"kind":"side","node":23579,"targets":[101]},{"channel":"partner","coefficient":1,"kind":"side","node":102,"targets":[101]},{"channel":"u01","coefficient":1,"kind":"side","node":23575,"targets":[102]},{"channel":"w02","coefficient":1,"kind":"side","node":23578,"targets":[102]},{"channel":"partner","coefficient":1,"kind":"side","node":101,"targets":[102]},{"channel":"u01","coefficient":1,"kind":"side","node":23575,"targets":[103]},{"channel":"w02","coefficient":1,"kind":"side","node":23579,"targets":[103]},{"channel":"partner","coefficient":1,"kind":"side","node":100,"targets":[103]},{"channel":"face0","coefficient":1,"kind":"side","node":8504,"targets":[104,105,106,107]},{"channel":"face0","coefficient":1,"kind":"side","node":8967,"targets":[108,109,110,111]},{"channel":"edge12","coefficient":1,"kind":"side","node":20847,"targets":[104,107]},{"channel":"edge12","coefficient":1,"kind":"side","node":20815,"targets":[105,106]},{"channel":"edge12","coefficient":1,"kind":"side","node":20847,"targets":[108,111]},{"channel":"edge12","coefficient":1,"kind":"side","node":20815,"targets":[109,110]},{"channel":"u01","coefficient":1,"kind":"side","node":23580,"targets":[104]},{"channel":"w02","coefficient":1,"kind":"side","node":23584,"targets":[104]},{"channel":"partner","coefficient":1,"kind":"side","node":107,"targets":[104]},{"channel":"u01","coefficient":1,"kind":"side","node":23580,"targets":[105]},{"channel":"w02","coefficient":1,"kind":"side","node":23585,"targets":[105]},{"channel":"partner","coefficient":1,"kind":"side","node":106,"targets":[105]},{"channel":"u01","coefficient":1,"kind":"side","node":23581,"targets":[106]},{"channel":"w02","coefficient":1,"kind":"side","node":23584,"targets":[106]},{"channel":"partner","coefficient":1,"kind":"side","node":105,"targets":[106]},{"channel":"u01","coefficient":1,"kind":"side","node":23581,"targets":[107]},{"channel":"w02","coefficient":1,"kind":"side","node":23585,"targets":[107]},{"channel":"partner","coefficient":1,"kind":"side","node":104,"targets":[107]},{"channel":"u01","coefficient":1,"kind":"side","node":23582,"targets":[108]},{"channel":"w02","coefficient":1,"kind":"side","node":23586,"targets":[108]},{"channel":"partner","coefficient":1,"kind":"side","node":111,"targets":[108]},{"channel":"u01","coefficient":1,"kind":"side","node":23582,"targets":[109]},{"channel":"w02","coefficient":1,"kind":"side","node":23587,"targets":[109]},{"channel":"partner","coefficient":1,"kind":"side","node":110,"targets":[109]},{"channel":"u01","coefficient":1,"kind":"side","node":23583,"targets":[110]},{"channel":"w02","coefficient":1,"kind":"side","node":23586,"targets":[110]},{"channel":"partner","coefficient":1,"kind":"side","node":109,"targets":[110]},{"channel":"u01","coefficient":1,"kind":"side","node":23583,"targets":[111]},{"channel":"w02","coefficient":1,"kind":"side","node":23587,"targets":[111]},{"channel":"partner","coefficient":1,"kind":"side","node":108,"targets":[111]},{"channel":"face0","coefficient":1,"kind":"side","node":8486,"targets":[112,113,114,115]},{"channel":"face0","coefficient":1,"kind":"side","node":8949,"targets":[116,117,118,119]},{"channel":"edge12","coefficient":1,"kind":"side","node":20911,"targets":[112,115]},{"channel":"edge12","coefficient":1,"kind":"side","node":20879,"targets":[113,114]},{"channel":"edge12","coefficient":1,"kind":"side","node":20911,"targets":[116,119]},{"channel":"edge12","coefficient":1,"kind":"side","node":20879,"targets":[117,118]},{"channel":"u01","coefficient":1,"kind":"side","node":23588,"targets":[112]},{"channel":"w02","coefficient":1,"kind":"side","node":23592,"targets":[112]},{"channel":"partner","coefficient":1,"kind":"side","node":115,"targets":[112]},{"channel":"u01","coefficient":1,"kind":"side","node":23588,"targets":[113]},{"channel":"w02","coefficient":1,"kind":"side","node":23593,"targets":[113]},{"channel":"partner","coefficient":1,"kind":"side","node":114,"targets":[113]},{"channel":"u01","coefficient":1,"kind":"side","node":23589,"targets":[114]},{"channel":"w02","coefficient":1,"kind":"side","node":23592,"targets":[114]},{"channel":"partner","coefficient":1,"kind":"side","node":113,"targets":[114]},{"channel":"u01","coefficient":1,"kind":"side","node":23589,"targets":[115]},{"channel":"w02","coefficient":1,"kind":"side","node":23593,"targets":[115]},{"channel":"partner","coefficient":1,"kind":"side","node":112,"targets":[115]},{"channel":"u01","coefficient":1,"kind":"side","node":23590,"targets":[116]},{"channel":"w02","coefficient":1,"kind":"side","node":23594,"targets":[116]},{"channel":"partner","coefficient":1,"kind":"side","node":119,"targets":[116]},{"channel":"u01","coefficient":1,"kind":"side","node":23590,"targets":[117]},{"channel":"w02","coefficient":1,"kind":"side","node":23595,"targets":[117]},{"channel":"partner","coefficient":1,"kind":"side","node":118,"targets":[117]},{"channel":"u01","coefficient":1,"kind":"side","node":23591,"targets":[118]},{"channel":"w02","coefficient":1,"kind":"side","node":23594,"targets":[118]},{"channel":"partner","coefficient":1,"kind":"side","node":117,"targets":[118]},{"channel":"u01","coefficient":1,"kind":"side","node":23591,"targets":[119]},{"channel":"w02","coefficient":1,"kind":"side","node":23595,"targets":[119]},{"channel":"partner","coefficient":1,"kind":"side","node":116,"targets":[119]},{"channel":"face0","coefficient":1,"kind":"side","node":8500,"targets":[120,121,122,123]},{"channel":"face0","coefficient":1,"kind":"side","node":8963,"targets":[124,125,126,127]},{"channel":"edge12","coefficient":1,"kind":"side","node":20975,"targets":[120,123]},{"channel":"edge12","coefficient":1,"kind":"side","node":20943,"targets":[121,122]},{"channel":"edge12","coefficient":1,"kind":"side","node":20975,"targets":[124,127]},{"channel":"edge12","coefficient":1,"kind":"side","node":20943,"targets":[125,126]},{"channel":"u01","coefficient":1,"kind":"side","node":23596,"targets":[120]},{"channel":"w02","coefficient":1,"kind":"side","node":23600,"targets":[120]},{"channel":"partner","coefficient":1,"kind":"side","node":123,"targets":[120]},{"channel":"u01","coefficient":1,"kind":"side","node":23596,"targets":[121]},{"channel":"w02","coefficient":1,"kind":"side","node":23601,"targets":[121]},{"channel":"partner","coefficient":1,"kind":"side","node":122,"targets":[121]},{"channel":"u01","coefficient":1,"kind":"side","node":23597,"targets":[122]},{"channel":"w02","coefficient":1,"kind":"side","node":23600,"targets":[122]},{"channel":"partner","coefficient":1,"kind":"side","node":121,"targets":[122]},{"channel":"u01","coefficient":1,"kind":"side","node":23597,"targets":[123]},{"channel":"w02","coefficient":1,"kind":"side","node":23601,"targets":[123]},{"channel":"partner","coefficient":1,"kind":"side","node":120,"targets":[123]},{"channel":"u01","coefficient":1,"kind":"side","node":23598,"targets":[124]},{"channel":"w02","coefficient":1,"kind":"side","node":23602,"targets":[124]},{"channel":"partner","coefficient":1,"kind":"side","node":127,"targets":[124]},{"channel":"u01","coefficient":1,"kind":"side","node":23598,"targets":[125]},{"channel":"w02","coefficient":1,"kind":"side","node":23603,"targets":[125]},{"channel":"partner","coefficient":1,"kind":"side","node":126,"targets":[125]},{"channel":"u01","coefficient":1,"kind":"side","node":23599,"targets":[126]},{"channel":"w02","coefficient":1,"kind":"side","node":23602,"targets":[126]},{"channel":"partner","coefficient":1,"kind":"side","node":125,"targets":[126]},{"channel":"u01","coefficient":1,"kind":"side","node":23599,"targets":[127]},{"channel":"w02","coefficient":1,"kind":"side","node":23603,"targets":[127]},{"channel":"partner","coefficient":1,"kind":"side","node":124,"targets":[127]},{"channel":"face0","coefficient":1,"kind":"side","node":8374,"targets":[128,129,130,131]},{"channel":"face0","coefficient":1,"kind":"side","node":8837,"targets":[132,133,134,135]},{"channel":"edge12","coefficient":1,"kind":"side","node":21039,"targets":[128,131]},{"channel":"edge12","coefficient":1,"kind":"side","node":21007,"targets":[129,130]},{"channel":"edge12","coefficient":1,"kind":"side","node":21039,"targets":[132,135]},{"channel":"edge12","coefficient":1,"kind":"side","node":21007,"targets":[133,134]},{"channel":"u01","coefficient":1,"kind":"side","node":23604,"targets":[128]},{"channel":"w02","coefficient":1,"kind":"side","node":23608,"targets":[128]},{"channel":"partner","coefficient":1,"kind":"side","node":131,"targets":[128]},{"channel":"u01","coefficient":1,"kind":"side","node":23604,"targets":[129]},{"channel":"w02","coefficient":1,"kind":"side","node":23609,"targets":[129]},{"channel":"partner","coefficient":1,"kind":"side","node":130,"targets":[129]},{"channel":"u01","coefficient":1,"kind":"side","node":23605,"targets":[130]},{"channel":"w02","coefficient":1,"kind":"side","node":23608,"targets":[130]},{"channel":"partner","coefficient":1,"kind":"side","node":129,"targets":[130]},{"channel":"u01","coefficient":1,"kind":"side","node":23605,"targets":[131]},{"channel":"w02","coefficient":1,"kind":"side","node":23609,"targets":[131]},{"channel":"partner","coefficient":1,"kind":"side","node":128,"targets":[131]},{"channel":"u01","coefficient":1,"kind":"side","node":23606,"targets":[132]},{"channel":"w02","coefficient":1,"kind":"side","node":23610,"targets":[132]},{"channel":"partner","coefficient":1,"kind":"side","node":135,"targets":[132]},{"channel":"u01","coefficient":1,"kind":"side","node":23606,"targets":[133]},{"channel":"w02","coefficient":1,"kind":"side","node":23611,"targets":[133]},{"channel":"partner","coefficient":1,"kind":"side","node":134,"targets":[133]},{"channel":"u01","coefficient":1,"kind":"side","node":23607,"targets":[134]},{"channel":"w02","coefficient":1,"kind":"side","node":23610,"targets":[134]},{"channel":"partner","coefficient":1,"kind":"side","node":133,"targets":[134]},{"channel":"u01","coefficient":1,"kind":"side","node":23607,"targets":[135]},{"channel":"w02","coefficient":1,"kind":"side","node":23611,"targets":[135]},{"channel":"partner","coefficient":1,"kind":"side","node":132,"targets":[135]},{"channel":"face0","coefficient":1,"kind":"side","node":8592,"targets":[136,137,138,139]},{"channel":"face0","coefficient":1,"kind":"side","node":9055,"targets":[140,141,142,143]},{"channel":"edge12","coefficient":1,"kind":"side","node":21103,"targets":[136,139]},{"channel":"edge12","coefficient":1,"kind":"side","node":21071,"targets":[137,138]},{"channel":"edge12","coefficient":1,"kind":"side","node":21103,"targets":[140,143]},{"channel":"edge12","coefficient":1,"kind":"side","node":21071,"targets":[141,142]},{"channel":"u01","coefficient":1,"kind":"side","node":23612,"targets":[136]},{"channel":"w02","coefficient":1,"kind":"side","node":23616,"targets":[136]},{"channel":"partner","coefficient":1,"kind":"side","node":139,"targets":[136]},{"channel":"u01","coefficient":1,"kind":"side","node":23612,"targets":[137]},{"channel":"w02","coefficient":1,"kind":"side","node":23617,"targets":[137]},{"channel":"partner","coefficient":1,"kind":"side","node":138,"targets":[137]},{"channel":"u01","coefficient":1,"kind":"side","node":23613,"targets":[138]},{"channel":"w02","coefficient":1,"kind":"side","node":23616,"targets":[138]},{"channel":"partner","coefficient":1,"kind":"side","node":137,"targets":[138]},{"channel":"u01","coefficient":1,"kind":"side","node":23613,"targets":[139]},{"channel":"w02","coefficient":1,"kind":"side","node":23617,"targets":[139]},{"channel":"partner","coefficient":1,"kind":"side","node":136,"targets":[139]},{"channel":"u01","coefficient":1,"kind":"side","node":23614,"targets":[140]},{"channel":"w02","coefficient":1,"kind":"side","node":23618,"targets":[140]},{"channel":"partner","coefficient":1,"kind":"side","node":143,"targets":[140]},{"channel":"u01","coefficient":1,"kind":"side","node":23614,"targets":[141]},{"channel":"w02","coefficient":1,"kind":"side","node":23619,"targets":[141]},{"channel":"partner","coefficient":1,"kind":"side","node":142,"targets":[141]},{"channel":"u01","coefficient":1,"kind":"side","node":23615,"targets":[142]},{"channel":"w02","coefficient":1,"kind":"side","node":23618,"targets":[142]},{"channel":"partner","coefficient":1,"kind":"side","node":141,"targets":[142]},{"channel":"u01","coefficient":1,"kind":"side","node":23615,"targets":[143]},{"channel":"w02","coefficient":1,"kind":"side","node":23619,"targets":[143]},{"channel":"partner","coefficient":1,"kind":"side","node":140,"targets":[143]},{"channel":"face0","coefficient":1,"kind":"side","node":8375,"targets":[144,145,146,147]},{"channel":"face0","coefficient":1,"kind":"side","node":8838,"targets":[148,149,150,151]},{"channel":"edge12","coefficient":1,"kind":"side","node":21167,"targets":[144,147]},{"channel":"edge12","coefficient":1,"kind":"side","node":21135,"targets":[145,146]},{"channel":"edge12","coefficient":1,"kind":"side","node":21167,"targets":[148,151]},{"channel":"edge12","coefficient":1,"kind":"side","node":21135,"targets":[149,150]},{"channel":"u01","coefficient":1,"kind":"side","node":23620,"targets":[144]},{"channel":"w02","coefficient":1,"kind":"side","node":23624,"targets":[144]},{"channel":"partner","coefficient":1,"kind":"side","node":147,"targets":[144]},{"channel":"u01","coefficient":1,"kind":"side","node":23620,"targets":[145]},{"channel":"w02","coefficient":1,"kind":"side","node":23625,"targets":[145]},{"channel":"partner","coefficient":1,"kind":"side","node":146,"targets":[145]},{"channel":"u01","coefficient":1,"kind":"side","node":23621,"targets":[146]},{"channel":"w02","coefficient":1,"kind":"side","node":23624,"targets":[146]},{"channel":"partner","coefficient":1,"kind":"side","node":145,"targets":[146]},{"channel":"u01","coefficient":1,"kind":"side","node":23621,"targets":[147]},{"channel":"w02","coefficient":1,"kind":"side","node":23625,"targets":[147]},{"channel":"partner","coefficient":1,"kind":"side","node":144,"targets":[147]},{"channel":"u01","coefficient":1,"kind":"side","node":23622,"targets":[148]},{"channel":"w02","coefficient":1,"kind":"side","node":23626,"targets":[148]},{"channel":"partner","coefficient":1,"kind":"side","node":151,"targets":[148]},{"channel":"u01","coefficient":1,"kind":"side","node":23622,"targets":[149]},{"channel":"w02","coefficient":1,"kind":"side","node":23627,"targets":[149]},{"channel":"partner","coefficient":1,"kind":"side","node":150,"targets":[149]},{"channel":"u01","coefficient":1,"kind":"side","node":23623,"targets":[150]},{"channel":"w02","coefficient":1,"kind":"side","node":23626,"targets":[150]},{"channel":"partner","coefficient":1,"kind":"side","node":149,"targets":[150]},{"channel":"u01","coefficient":1,"kind":"side","node":23623,"targets":[151]},{"channel":"w02","coefficient":1,"kind":"side","node":23627,"targets":[151]},{"channel":"partner","coefficient":1,"kind":"side","node":148,"targets":[151]},{"channel":"face0","coefficient":1,"kind":"side","node":8556,"targets":[152,153,154,155]},{"channel":"face0","coefficient":1,"kind":"side","node":9019,"targets":[156,157,158,159]},{"channel":"edge12","coefficient":1,"kind":"side","node":21231,"targets":[152,155]},{"channel":"edge12","coefficient":1,"kind":"side","node":21199,"targets":[153,154]},{"channel":"edge12","coefficient":1,"kind":"side","node":21231,"targets":[156,159]},{"channel":"edge12","coefficient":1,"kind":"side","node":21199,"targets":[157,158]},{"channel":"u01","coefficient":1,"kind":"side","node":23628,"targets":[152]},{"channel":"w02","coefficient":1,"kind":"side","node":23632,"targets":[152]},{"channel":"partner","coefficient":1,"kind":"side","node":155,"targets":[152]},{"channel":"u01","coefficient":1,"kind":"side","node":23628,"targets":[153]},{"channel":"w02","coefficient":1,"kind":"side","node":23633,"targets":[153]},{"channel":"partner","coefficient":1,"kind":"side","node":154,"targets":[153]},{"channel":"u01","coefficient":1,"kind":"side","node":23629,"targets":[154]},{"channel":"w02","coefficient":1,"kind":"side","node":23632,"targets":[154]},{"channel":"partner","coefficient":1,"kind":"side","node":153,"targets":[154]},{"channel":"u01","coefficient":1,"kind":"side","node":23629,"targets":[155]},{"channel":"w02","coefficient":1,"kind":"side","node":23633,"targets":[155]},{"channel":"partner","coefficient":1,"kind":"side","node":152,"targets":[155]},{"channel":"u01","coefficient":1,"kind":"side","node":23630,"targets":[156]},{"channel":"w02","coefficient":1,"kind":"side","node":23634,"targets":[156]},{"channel":"partner","coefficient":1,"kind":"side","node":159,"targets":[156]},{"channel":"u01","coefficient":1,"kind":"side","node":23630,"targets":[157]},{"channel":"w02","coefficient":1,"kind":"side","node":23635,"targets":[157]},{"channel":"partner","coefficient":1,"kind":"side","node":158,"targets":[157]},{"channel":"u01","coefficient":1,"kind":"side","node":23631,"targets":[158]},{"channel":"w02","coefficient":1,"kind":"side","node":23634,"targets":[158]},{"channel":"partner","coefficient":1,"kind":"side","node":157,"targets":[158]},{"channel":"u01","coefficient":1,"kind":"side","node":23631,"targets":[159]},{"channel":"w02","coefficient":1,"kind":"side","node":23635,"targets":[159]},{"channel":"partner","coefficient":1,"kind":"side","node":156,"targets":[159]},{"channel":"face0","coefficient":1,"kind":"side","node":8586,"targets":[160,161,162,163]},{"channel":"face0","coefficient":1,"kind":"side","node":9049,"targets":[164,165,166,167]},{"channel":"edge12","coefficient":1,"kind":"side","node":21295,"targets":[160,163]},{"channel":"edge12","coefficient":1,"kind":"side","node":21263,"targets":[161,162]},{"channel":"edge12","coefficient":1,"kind":"side","node":21295,"targets":[164,167]},{"channel":"edge12","coefficient":1,"kind":"side","node":21263,"targets":[165,166]},{"channel":"u01","coefficient":1,"kind":"side","node":23636,"targets":[160]},{"channel":"w02","coefficient":1,"kind":"side","node":23640,"targets":[160]},{"channel":"partner","coefficient":1,"kind":"side","node":163,"targets":[160]},{"channel":"u01","coefficient":1,"kind":"side","node":23636,"targets":[161]},{"channel":"w02","coefficient":1,"kind":"side","node":23641,"targets":[161]},{"channel":"partner","coefficient":1,"kind":"side","node":162,"targets":[161]},{"channel":"u01","coefficient":1,"kind":"side","node":23637,"targets":[162]},{"channel":"w02","coefficient":1,"kind":"side","node":23640,"targets":[162]},{"channel":"partner","coefficient":1,"kind":"side","node":161,"targets":[162]},{"channel":"u01","coefficient":1,"kind":"side","node":23637,"targets":[163]},{"channel":"w02","coefficient":1,"kind":"side","node":23641,"targets":[163]},{"channel":"partner","coefficient":1,"kind":"side","node":160,"targets":[163]},{"channel":"u01","coefficient":1,"kind":"side","node":23638,"targets":[164]},{"channel":"w02","coefficient":1,"kind":"side","node":23642,"targets":[164]},{"channel":"partner","coefficient":1,"kind":"side","node":167,"targets":[164]},{"channel":"u01","coefficient":1,"kind":"side","node":23638,"targets":[165]},{"channel":"w02","coefficient":1,"kind":"side","node":23643,"targets":[165]},{"channel":"partner","coefficient":1,"kind":"side","node":166,"targets":[165]},{"channel":"u01","coefficient":1,"kind":"side","node":23639,"targets":[166]},{"channel":"w02","coefficient":1,"kind":"side","node":23642,"targets":[166]},{"channel":"partner","coefficient":1,"kind":"side","node":165,"targets":[166]},{"channel":"u01","coefficient":1,"kind":"side","node":23639,"targets":[167]},{"channel":"w02","coefficient":1,"kind":"side","node":23643,"targets":[167]},{"channel":"partner","coefficient":1,"kind":"side","node":164,"targets":[167]},{"channel":"face0","coefficient":1,"kind":"side","node":8580,"targets":[168,169,170,171]},{"channel":"face0","coefficient":1,"kind":"side","node":9043,"targets":[172,173,174,175]},{"channel":"edge12","coefficient":1,"kind":"side","node":21359,"targets":[168,171]},{"channel":"edge12","coefficient":1,"kind":"side","node":21327,"targets":[169,170]},{"channel":"edge12","coefficient":1,"kind":"side","node":21359,"targets":[172,175]},{"channel":"edge12","coefficient":1,"kind":"side","node":21327,"targets":[173,174]},{"channel":"u01","coefficient":1,"kind":"side","node":23644,"targets":[168]},{"channel":"w02","coefficient":1,"kind":"side","node":23648,"targets":[168]},{"channel":"partner","coefficient":1,"kind":"side","node":171,"targets":[168]},{"channel":"u01","coefficient":1,"kind":"side","node":23644,"targets":[169]},{"channel":"w02","coefficient":1,"kind":"side","node":23649,"targets":[169]},{"channel":"partner","coefficient":1,"kind":"side","node":170,"targets":[169]},{"channel":"u01","coefficient":1,"kind":"side","node":23645,"targets":[170]},{"channel":"w02","coefficient":1,"kind":"side","node":23648,"targets":[170]},{"channel":"partner","coefficient":1,"kind":"side","node":169,"targets":[170]},{"channel":"u01","coefficient":1,"kind":"side","node":23645,"targets":[171]},{"channel":"w02","coefficient":1,"kind":"side","node":23649,"targets":[171]},{"channel":"partner","coefficient":1,"kind":"side","node":168,"targets":[171]},{"channel":"u01","coefficient":1,"kind":"side","node":23646,"targets":[172]},{"channel":"w02","coefficient":1,"kind":"side","node":23650,"targets":[172]},{"channel":"partner","coefficient":1,"kind":"side","node":175,"targets":[172]},{"channel":"u01","coefficient":1,"kind":"side","node":23646,"targets":[173]},{"channel":"w02","coefficient":1,"kind":"side","node":23651,"targets":[173]},{"channel":"partner","coefficient":1,"kind":"side","node":174,"targets":[173]},{"channel":"u01","coefficient":1,"kind":"side","node":23647,"targets":[174]},{"channel":"w02","coefficient":1,"kind":"side","node":23650,"targets":[174]},{"channel":"partner","coefficient":1,"kind":"side","node":173,"targets":[174]},{"channel":"u01","coefficient":1,"kind":"side","node":23647,"targets":[175]},{"channel":"w02","coefficient":1,"kind":"side","node":23651,"targets":[175]},{"channel":"partner","coefficient":1,"kind":"side","node":172,"targets":[175]},{"channel":"face0","coefficient":1,"kind":"side","node":8550,"targets":[176,177,178,179]},{"channel":"face0","coefficient":1,"kind":"side","node":9013,"targets":[180,181,182,183]},{"channel":"edge12","coefficient":1,"kind":"side","node":21423,"targets":[176,179]},{"channel":"edge12","coefficient":1,"kind":"side","node":21391,"targets":[177,178]},{"channel":"edge12","coefficient":1,"kind":"side","node":21423,"targets":[180,183]},{"channel":"edge12","coefficient":1,"kind":"side","node":21391,"targets":[181,182]},{"channel":"u01","coefficient":1,"kind":"side","node":23652,"targets":[176]},{"channel":"w02","coefficient":1,"kind":"side","node":23656,"targets":[176]},{"channel":"partner","coefficient":1,"kind":"side","node":179,"targets":[176]},{"channel":"u01","coefficient":1,"kind":"side","node":23652,"targets":[177]},{"channel":"w02","coefficient":1,"kind":"side","node":23657,"targets":[177]},{"channel":"partner","coefficient":1,"kind":"side","node":178,"targets":[177]},{"channel":"u01","coefficient":1,"kind":"side","node":23653,"targets":[178]},{"channel":"w02","coefficient":1,"kind":"side","node":23656,"targets":[178]},{"channel":"partner","coefficient":1,"kind":"side","node":177,"targets":[178]},{"channel":"u01","coefficient":1,"kind":"side","node":23653,"targets":[179]},{"channel":"w02","coefficient":1,"kind":"side","node":23657,"targets":[179]},{"channel":"partner","coefficient":1,"kind":"side","node":176,"targets":[179]},{"channel":"u01","coefficient":1,"kind":"side","node":23654,"targets":[180]},{"channel":"w02","coefficient":1,"kind":"side","node":23658,"targets":[180]},{"channel":"partner","coefficient":1,"kind":"side","node":183,"targets":[180]},{"channel":"u01","coefficient":1,"kind":"side","node":23654,"targets":[181]},{"channel":"w02","coefficient":1,"kind":"side","node":23659,"targets":[181]},{"channel":"partner","coefficient":1,"kind":"side","node":182,"targets":[181]},{"channel":"u01","coefficient":1,"kind":"side","node":23655,"targets":[182]},{"channel":"w02","coefficient":1,"kind":"side","node":23658,"targets":[182]},{"channel":"partner","coefficient":1,"kind":"side","node":181,"targets":[182]},{"channel":"u01","coefficient":1,"kind":"side","node":23655,"targets":[183]},{"channel":"w02","coefficient":1,"kind":"side","node":23659,"targets":[183]},{"channel":"partner","coefficient":1,"kind":"side","node":180,"targets":[183]},{"channel":"face0","coefficient":1,"kind":"side","node":8562,"targets":[184,185,186,187]},{"channel":"face0","coefficient":1,"kind":"side","node":9025,"targets":[188,189,190,191]},{"channel":"edge12","coefficient":1,"kind":"side","node":21487,"targets":[184,187]},{"channel":"edge12","coefficient":1,"kind":"side","node":21455,"targets":[185,186]},{"channel":"edge12","coefficient":1,"kind":"side","node":21487,"targets":[188,191]},{"channel":"edge12","coefficient":1,"kind":"side","node":21455,"targets":[189,190]},{"channel":"u01","coefficient":1,"kind":"side","node":23660,"targets":[184]},{"channel":"w02","coefficient":1,"kind":"side","node":23664,"targets":[184]},{"channel":"partner","coefficient":1,"kind":"side","node":187,"targets":[184]},{"channel":"u01","coefficient":1,"kind":"side","node":23660,"targets":[185]},{"channel":"w02","coefficient":1,"kind":"side","node":23665,"targets":[185]},{"channel":"partner","coefficient":1,"kind":"side","node":186,"targets":[185]},{"channel":"u01","coefficient":1,"kind":"side","node":23661,"targets":[186]},{"channel":"w02","coefficient":1,"kind":"side","node":23664,"targets":[186]},{"channel":"partner","coefficient":1,"kind":"side","node":185,"targets":[186]},{"channel":"u01","coefficient":1,"kind":"side","node":23661,"targets":[187]},{"channel":"w02","coefficient":1,"kind":"side","node":23665,"targets":[187]},{"channel":"partner","coefficient":1,"kind":"side","node":184,"targets":[187]},{"channel":"u01","coefficient":1,"kind":"side","node":23662,"targets":[188]},{"channel":"w02","coefficient":1,"kind":"side","node":23666,"targets":[188]},{"channel":"partner","coefficient":1,"kind":"side","node":191,"targets":[188]},{"channel":"u01","coefficient":1,"kind":"side","node":23662,"targets":[189]},{"channel":"w02","coefficient":1,"kind":"side","node":23667,"targets":[189]},{"channel":"partner","coefficient":1,"kind":"side","node":190,"targets":[189]},{"channel":"u01","coefficient":1,"kind":"side","node":23663,"targets":[190]},{"channel":"w02","coefficient":1,"kind":"side","node":23666,"targets":[190]},{"channel":"partner","coefficient":1,"kind":"side","node":189,"targets":[190]},{"channel":"u01","coefficient":1,"kind":"side","node":23663,"targets":[191]},{"channel":"w02","coefficient":1,"kind":"side","node":23667,"targets":[191]},{"channel":"partner","coefficient":1,"kind":"side","node":188,"targets":[191]},{"channel":"face0","coefficient":1,"kind":"side","node":8579,"targets":[192,193,194,195]},{"channel":"face0","coefficient":1,"kind":"side","node":9042,"targets":[196,197,198,199]},{"channel":"edge12","coefficient":1,"kind":"side","node":21551,"targets":[192,195]},{"channel":"edge12","coefficient":1,"kind":"side","node":21519,"targets":[193,194]},{"channel":"edge12","coefficient":1,"kind":"side","node":21551,"targets":[196,199]},{"channel":"edge12","coefficient":1,"kind":"side","node":21519,"targets":[197,198]},{"channel":"u01","coefficient":1,"kind":"side","node":23668,"targets":[192]},{"channel":"w02","coefficient":1,"kind":"side","node":23672,"targets":[192]},{"channel":"partner","coefficient":1,"kind":"side","node":195,"targets":[192]},{"channel":"u01","coefficient":1,"kind":"side","node":23668,"targets":[193]},{"channel":"w02","coefficient":1,"kind":"side","node":23673,"targets":[193]},{"channel":"partner","coefficient":1,"kind":"side","node":194,"targets":[193]},{"channel":"u01","coefficient":1,"kind":"side","node":23669,"targets":[194]},{"channel":"w02","coefficient":1,"kind":"side","node":23672,"targets":[194]},{"channel":"partner","coefficient":1,"kind":"side","node":193,"targets":[194]},{"channel":"u01","coefficient":1,"kind":"side","node":23669,"targets":[195]},{"channel":"w02","coefficient":1,"kind":"side","node":23673,"targets":[195]},{"channel":"partner","coefficient":1,"kind":"side","node":192,"targets":[195]},{"channel":"u01","coefficient":1,"kind":"side","node":23670,"targets":[196]},{"channel":"w02","coefficient":1,"kind":"side","node":23674,"targets":[196]},{"channel":"partner","coefficient":1,"kind":"side","node":199,"targets":[196]},{"channel":"u01","coefficient":1,"kind":"side","node":23670,"targets":[197]},{"channel":"w02","coefficient":1,"kind":"side","node":23675,"targets":[197]},{"channel":"partner","coefficient":1,"kind":"side","node":198,"targets":[197]},{"channel":"u01","coefficient":1,"kind":"side","node":23671,"targets":[198]},{"channel":"w02","coefficient":1,"kind":"side","node":23674,"targets":[198]},{"channel":"partner","coefficient":1,"kind":"side","node":197,"targets":[198]},{"channel":"u01","coefficient":1,"kind":"side","node":23671,"targets":[199]},{"channel":"w02","coefficient":1,"kind":"side","node":23675,"targets":[199]},{"channel":"partner","coefficient":1,"kind":"side","node":196,"targets":[199]},{"channel":"face0","coefficient":1,"kind":"side","node":8461,"targets":[200,201,202,203]},{"channel":"face0","coefficient":1,"kind":"side","node":8924,"targets":[204,205,206,207]},{"channel":"edge12","coefficient":1,"kind":"side","node":21615,"targets":[200,203]},{"channel":"edge12","coefficient":1,"kind":"side","node":21583,"targets":[201,202]},{"channel":"edge12","coefficient":1,"kind":"side","node":21615,"targets":[204,207]},{"channel":"edge12","coefficient":1,"kind":"side","node":21583,"targets":[205,206]},{"channel":"u01","coefficient":1,"kind":"side","node":23676,"targets":[200]},{"channel":"w02","coefficient":1,"kind":"side","node":23680,"targets":[200]},{"channel":"partner","coefficient":1,"kind":"side","node":203,"targets":[200]},{"channel":"u01","coefficient":1,"kind":"side","node":23676,"targets":[201]},{"channel":"w02","coefficient":1,"kind":"side","node":23681,"targets":[201]},{"channel":"partner","coefficient":1,"kind":"side","node":202,"targets":[201]},{"channel":"u01","coefficient":1,"kind":"side","node":23677,"targets":[202]},{"channel":"w02","coefficient":1,"kind":"side","node":23680,"targets":[202]},{"channel":"partner","coefficient":1,"kind":"side","node":201,"targets":[202]},{"channel":"u01","coefficient":1,"kind":"side","node":23677,"targets":[203]},{"channel":"w02","coefficient":1,"kind":"side","node":23681,"targets":[203]},{"channel":"partner","coefficient":1,"kind":"side","node":200,"targets":[203]},{"channel":"u01","coefficient":1,"kind":"side","node":23678,"targets":[204]},{"channel":"w02","coefficient":1,"kind":"side","node":23682,"targets":[204]},{"channel":"partner","coefficient":1,"kind":"side","node":207,"targets":[204]},{"channel":"u01","coefficient":1,"kind":"side","node":23678,"targets":[205]},{"channel":"w02","coefficient":1,"kind":"side","node":23683,"targets":[205]},{"channel":"partner","coefficient":1,"kind":"side","node":206,"targets":[205]},{"channel":"u01","coefficient":1,"kind":"side","node":23679,"targets":[206]},{"channel":"w02","coefficient":1,"kind":"side","node":23682,"targets":[206]},{"channel":"partner","coefficient":1,"kind":"side","node":205,"targets":[206]},{"channel":"u01","coefficient":1,"kind":"side","node":23679,"targets":[207]},{"channel":"w02","coefficient":1,"kind":"side","node":23683,"targets":[207]},{"channel":"partner","coefficient":1,"kind":"side","node":204,"targets":[207]},{"channel":"face0","coefficient":1,"kind":"side","node":8478,"targets":[208,209,210,211]},{"channel":"face0","coefficient":1,"kind":"side","node":8941,"targets":[212,213,214,215]},{"channel":"edge12","coefficient":1,"kind":"side","node":21679,"targets":[208,211]},{"channel":"edge12","coefficient":1,"kind":"side","node":21647,"targets":[209,210]},{"channel":"edge12","coefficient":1,"kind":"side","node":21679,"targets":[212,215]},{"channel":"edge12","coefficient":1,"kind":"side","node":21647,"targets":[213,214]},{"channel":"u01","coefficient":1,"kind":"side","node":23684,"targets":[208]},{"channel":"w02","coefficient":1,"kind":"side","node":23688,"targets":[208]},{"channel":"partner","coefficient":1,"kind":"side","node":211,"targets":[208]},{"channel":"u01","coefficient":1,"kind":"side","node":23684,"targets":[209]},{"channel":"w02","coefficient":1,"kind":"side","node":23689,"targets":[209]},{"channel":"partner","coefficient":1,"kind":"side","node":210,"targets":[209]},{"channel":"u01","coefficient":1,"kind":"side","node":23685,"targets":[210]},{"channel":"w02","coefficient":1,"kind":"side","node":23688,"targets":[210]},{"channel":"partner","coefficient":1,"kind":"side","node":209,"targets":[210]},{"channel":"u01","coefficient":1,"kind":"side","node":23685,"targets":[211]},{"channel":"w02","coefficient":1,"kind":"side","node":23689,"targets":[211]},{"channel":"partner","coefficient":1,"kind":"side","node":208,"targets":[211]},{"channel":"u01","coefficient":1,"kind":"side","node":23686,"targets":[212]},{"channel":"w02","coefficient":1,"kind":"side","node":23690,"targets":[212]},{"channel":"partner","coefficient":1,"kind":"side","node":215,"targets":[212]},{"channel":"u01","coefficient":1,"kind":"side","node":23686,"targets":[213]},{"channel":"w02","coefficient":1,"kind":"side","node":23691,"targets":[213]},{"channel":"partner","coefficient":1,"kind":"side","node":214,"targets":[213]},{"channel":"u01","coefficient":1,"kind":"side","node":23687,"targets":[214]},{"channel":"w02","coefficient":1,"kind":"side","node":23690,"targets":[214]},{"channel":"partner","coefficient":1,"kind":"side","node":213,"targets":[214]},{"channel":"u01","coefficient":1,"kind":"side","node":23687,"targets":[215]},{"channel":"w02","coefficient":1,"kind":"side","node":23691,"targets":[215]},{"channel":"partner","coefficient":1,"kind":"side","node":212,"targets":[215]},{"channel":"face0","coefficient":1,"kind":"side","node":8590,"targets":[216,217,218,219]},{"channel":"face0","coefficient":1,"kind":"side","node":9053,"targets":[220,221,222,223]},{"channel":"edge12","coefficient":1,"kind":"side","node":21743,"targets":[216,219]},{"channel":"edge12","coefficient":1,"kind":"side","node":21711,"targets":[217,218]},{"channel":"edge12","coefficient":1,"kind":"side","node":21743,"targets":[220,223]},{"channel":"edge12","coefficient":1,"kind":"side","node":21711,"targets":[221,222]},{"channel":"u01","coefficient":1,"kind":"side","node":23692,"targets":[216]},{"channel":"w02","coefficient":1,"kind":"side","node":23696,"targets":[216]},{"channel":"partner","coefficient":1,"kind":"side","node":219,"targets":[216]},{"channel":"u01","coefficient":1,"kind":"side","node":23692,"targets":[217]},{"channel":"w02","coefficient":1,"kind":"side","node":23697,"targets":[217]},{"channel":"partner","coefficient":1,"kind":"side","node":218,"targets":[217]},{"channel":"u01","coefficient":1,"kind":"side","node":23693,"targets":[218]},{"channel":"w02","coefficient":1,"kind":"side","node":23696,"targets":[218]},{"channel":"partner","coefficient":1,"kind":"side","node":217,"targets":[218]},{"channel":"u01","coefficient":1,"kind":"side","node":23693,"targets":[219]},{"channel":"w02","coefficient":1,"kind":"side","node":23697,"targets":[219]},{"channel":"partner","coefficient":1,"kind":"side","node":216,"targets":[219]},{"channel":"u01","coefficient":1,"kind":"side","node":23694,"targets":[220]},{"channel":"w02","coefficient":1,"kind":"side","node":23698,"targets":[220]},{"channel":"partner","coefficient":1,"kind":"side","node":223,"targets":[220]},{"channel":"u01","coefficient":1,"kind":"side","node":23694,"targets":[221]},{"channel":"w02","coefficient":1,"kind":"side","node":23699,"targets":[221]},{"channel":"partner","coefficient":1,"kind":"side","node":222,"targets":[221]},{"channel":"u01","coefficient":1,"kind":"side","node":23695,"targets":[222]},{"channel":"w02","coefficient":1,"kind":"side","node":23698,"targets":[222]},{"channel":"partner","coefficient":1,"kind":"side","node":221,"targets":[222]},{"channel":"u01","coefficient":1,"kind":"side","node":23695,"targets":[223]},{"channel":"w02","coefficient":1,"kind":"side","node":23699,"targets":[223]},{"channel":"partner","coefficient":1,"kind":"side","node":220,"targets":[223]},{"channel":"face0","coefficient":1,"kind":"side","node":8568,"targets":[224,225,226,227]},{"channel":"face0","coefficient":1,"kind":"side","node":9031,"targets":[228,229,230,231]},{"channel":"edge12","coefficient":1,"kind":"side","node":21807,"targets":[224,227]},{"channel":"edge12","coefficient":1,"kind":"side","node":21775,"targets":[225,226]},{"channel":"edge12","coefficient":1,"kind":"side","node":21807,"targets":[228,231]},{"channel":"edge12","coefficient":1,"kind":"side","node":21775,"targets":[229,230]},{"channel":"u01","coefficient":1,"kind":"side","node":23700,"targets":[224]},{"channel":"w02","coefficient":1,"kind":"side","node":23704,"targets":[224]},{"channel":"partner","coefficient":1,"kind":"side","node":227,"targets":[224]},{"channel":"u01","coefficient":1,"kind":"side","node":23700,"targets":[225]},{"channel":"w02","coefficient":1,"kind":"side","node":23705,"targets":[225]},{"channel":"partner","coefficient":1,"kind":"side","node":226,"targets":[225]},{"channel":"u01","coefficient":1,"kind":"side","node":23701,"targets":[226]},{"channel":"w02","coefficient":1,"kind":"side","node":23704,"targets":[226]},{"channel":"partner","coefficient":1,"kind":"side","node":225,"targets":[226]},{"channel":"u01","coefficient":1,"kind":"side","node":23701,"targets":[227]},{"channel":"w02","coefficient":1,"kind":"side","node":23705,"targets":[227]},{"channel":"partner","coefficient":1,"kind":"side","node":224,"targets":[227]},{"channel":"u01","coefficient":1,"kind":"side","node":23702,"targets":[228]},{"channel":"w02","coefficient":1,"kind":"side","node":23706,"targets":[228]},{"channel":"partner","coefficient":1,"kind":"side","node":231,"targets":[228]},{"channel":"u01","coefficient":1,"kind":"side","node":23702,"targets":[229]},{"channel":"w02","coefficient":1,"kind":"side","node":23707,"targets":[229]},{"channel":"partner","coefficient":1,"kind":"side","node":230,"targets":[229]},{"channel":"u01","coefficient":1,"kind":"side","node":23703,"targets":[230]},{"channel":"w02","coefficient":1,"kind":"side","node":23706,"targets":[230]},{"channel":"partner","coefficient":1,"kind":"side","node":229,"targets":[230]},{"channel":"u01","coefficient":1,"kind":"side","node":23703,"targets":[231]},{"channel":"w02","coefficient":1,"kind":"side","node":23707,"targets":[231]},{"channel":"partner","coefficient":1,"kind":"side","node":228,"targets":[231]},{"channel":"face0","coefficient":1,"kind":"side","node":8601,"targets":[232,233,234,235]},{"channel":"face0","coefficient":1,"kind":"side","node":9064,"targets":[236,237,238,239]},{"channel":"edge12","coefficient":1,"kind":"side","node":21871,"targets":[232,235]},{"channel":"edge12","coefficient":1,"kind":"side","node":21839,"targets":[233,234]},{"channel":"edge12","coefficient":1,"kind":"side","node":21871,"targets":[236,239]},{"channel":"edge12","coefficient":1,"kind":"side","node":21839,"targets":[237,238]},{"channel":"u01","coefficient":1,"kind":"side","node":23708,"targets":[232]},{"channel":"w02","coefficient":1,"kind":"side","node":23712,"targets":[232]},{"channel":"partner","coefficient":1,"kind":"side","node":235,"targets":[232]},{"channel":"u01","coefficient":1,"kind":"side","node":23708,"targets":[233]},{"channel":"w02","coefficient":1,"kind":"side","node":23713,"targets":[233]},{"channel":"partner","coefficient":1,"kind":"side","node":234,"targets":[233]},{"channel":"u01","coefficient":1,"kind":"side","node":23709,"targets":[234]},{"channel":"w02","coefficient":1,"kind":"side","node":23712,"targets":[234]},{"channel":"partner","coefficient":1,"kind":"side","node":233,"targets":[234]},{"channel":"u01","coefficient":1,"kind":"side","node":23709,"targets":[235]},{"channel":"w02","coefficient":1,"kind":"side","node":23713,"targets":[235]},{"channel":"partner","coefficient":1,"kind":"side","node":232,"targets":[235]},{"channel":"u01","coefficient":1,"kind":"side","node":23710,"targets":[236]},{"channel":"w02","coefficient":1,"kind":"side","node":23714,"targets":[236]},{"channel":"partner","coefficient":1,"kind":"side","node":239,"targets":[236]},{"channel":"u01","coefficient":1,"kind":"side","node":23710,"targets":[237]},{"channel":"w02","coefficient":1,"kind":"side","node":23715,"targets":[237]},{"channel":"partner","coefficient":1,"kind":"side","node":238,"targets":[237]},{"channel":"u01","coefficient":1,"kind":"side","node":23711,"targets":[238]},{"channel":"w02","coefficient":1,"kind":"side","node":23714,"targets":[238]},{"channel":"partner","coefficient":1,"kind":"side","node":237,"targets":[238]},{"channel":"u01","coefficient":1,"kind":"side","node":23711,"targets":[239]},{"channel":"w02","coefficient":1,"kind":"side","node":23715,"targets":[239]},{"channel":"partner","coefficient":1,"kind":"side","node":236,"targets":[239]},{"channel":"face0","coefficient":1,"kind":"side","node":8433,"targets":[240,241,242,243]},{"channel":"face0","coefficient":1,"kind":"side","node":8896,"targets":[244,245,246,247]},{"channel":"edge12","coefficient":1,"kind":"side","node":21935,"targets":[240,243]},{"channel":"edge12","coefficient":1,"kind":"side","node":21903,"targets":[241,242]},{"channel":"edge12","coefficient":1,"kind":"side","node":21935,"targets":[244,247]},{"channel":"edge12","coefficient":1,"kind":"side","node":21903,"targets":[245,246]},{"channel":"u01","coefficient":1,"kind":"side","node":23716,"targets":[240]},{"channel":"w02","coefficient":1,"kind":"side","node":23720,"targets":[240]},{"channel":"partner","coefficient":1,"kind":"side","node":243,"targets":[240]},{"channel":"u01","coefficient":1,"kind":"side","node":23716,"targets":[241]},{"channel":"w02","coefficient":1,"kind":"side","node":23721,"targets":[241]},{"channel":"partner","coefficient":1,"kind":"side","node":242,"targets":[241]},{"channel":"u01","coefficient":1,"kind":"side","node":23717,"targets":[242]},{"channel":"w02","coefficient":1,"kind":"side","node":23720,"targets":[242]},{"channel":"partner","coefficient":1,"kind":"side","node":241,"targets":[242]},{"channel":"u01","coefficient":1,"kind":"side","node":23717,"targets":[243]},{"channel":"w02","coefficient":1,"kind":"side","node":23721,"targets":[243]},{"channel":"partner","coefficient":1,"kind":"side","node":240,"targets":[243]},{"channel":"u01","coefficient":1,"kind":"side","node":23718,"targets":[244]},{"channel":"w02","coefficient":1,"kind":"side","node":23722,"targets":[244]},{"channel":"partner","coefficient":1,"kind":"side","node":247,"targets":[244]},{"channel":"u01","coefficient":1,"kind":"side","node":23718,"targets":[245]},{"channel":"w02","coefficient":1,"kind":"side","node":23723,"targets":[245]},{"channel":"partner","coefficient":1,"kind":"side","node":246,"targets":[245]},{"channel":"u01","coefficient":1,"kind":"side","node":23719,"targets":[246]},{"channel":"w02","coefficient":1,"kind":"side","node":23722,"targets":[246]},{"channel":"partner","coefficient":1,"kind":"side","node":245,"targets":[246]},{"channel":"u01","coefficient":1,"kind":"side","node":23719,"targets":[247]},{"channel":"w02","coefficient":1,"kind":"side","node":23723,"targets":[247]},{"channel":"partner","coefficient":1,"kind":"side","node":244,"targets":[247]},{"channel":"face0","coefficient":1,"kind":"side","node":8456,"targets":[248,249,250,251]},{"channel":"face0","coefficient":1,"kind":"side","node":8919,"targets":[252,253,254,255]},{"channel":"edge12","coefficient":1,"kind":"side","node":21999,"targets":[248,251]},{"channel":"edge12","coefficient":1,"kind":"side","node":21967,"targets":[249,250]},{"channel":"edge12","coefficient":1,"kind":"side","node":21999,"targets":[252,255]},{"channel":"edge12","coefficient":1,"kind":"side","node":21967,"targets":[253,254]},{"channel":"u01","coefficient":1,"kind":"side","node":23724,"targets":[248]},{"channel":"w02","coefficient":1,"kind":"side","node":23728,"targets":[248]},{"channel":"partner","coefficient":1,"kind":"side","node":251,"targets":[248]},{"channel":"u01","coefficient":1,"kind":"side","node":23724,"targets":[249]},{"channel":"w02","coefficient":1,"kind":"side","node":23729,"targets":[249]},{"channel":"partner","coefficient":1,"kind":"side","node":250,"targets":[249]},{"channel":"u01","coefficient":1,"kind":"side","node":23725,"targets":[250]},{"channel":"w02","coefficient":1,"kind":"side","node":23728,"targets":[250]},{"channel":"partner","coefficient":1,"kind":"side","node":249,"targets":[250]},{"channel":"u01","coefficient":1,"kind":"side","node":23725,"targets":[251]},{"channel":"w02","coefficient":1,"kind":"side","node":23729,"targets":[251]},{"channel":"partner","coefficient":1,"kind":"side","node":248,"targets":[251]},{"channel":"u01","coefficient":1,"kind":"side","node":23726,"targets":[252]},{"channel":"w02","coefficient":1,"kind":"side","node":23730,"targets":[252]},{"channel":"partner","coefficient":1,"kind":"side","node":255,"targets":[252]},{"channel":"u01","coefficient":1,"kind":"side","node":23726,"targets":[253]},{"channel":"w02","coefficient":1,"kind":"side","node":23731,"targets":[253]},{"channel":"partner","coefficient":1,"kind":"side","node":254,"targets":[253]},{"channel":"u01","coefficient":1,"kind":"side","node":23727,"targets":[254]},{"channel":"w02","coefficient":1,"kind":"side","node":23730,"targets":[254]},{"channel":"partner","coefficient":1,"kind":"side","node":253,"targets":[254]},{"channel":"u01","coefficient":1,"kind":"side","node":23727,"targets":[255]},{"channel":"w02","coefficient":1,"kind":"side","node":23731,"targets":[255]},{"channel":"partner","coefficient":1,"kind":"side","node":252,"targets":[255]},{"channel":"face0","coefficient":1,"kind":"side","node":8589,"targets":[256,257,258,259]},{"channel":"face0","coefficient":1,"kind":"side","node":9052,"targets":[260,261,262,263]},{"channel":"edge12","coefficient":1,"kind":"side","node":22063,"targets":[256,259]},{"channel":"edge12","coefficient":1,"kind":"side","node":22031,"targets":[257,258]},{"channel":"edge12","coefficient":1,"kind":"side","node":22063,"targets":[260,263]},{"channel":"edge12","coefficient":1,"kind":"side","node":22031,"targets":[261,262]},{"channel":"u01","coefficient":1,"kind":"side","node":23732,"targets":[256]},{"channel":"w02","coefficient":1,"kind":"side","node":23736,"targets":[256]},{"channel":"partner","coefficient":1,"kind":"side","node":259,"targets":[256]},{"channel":"u01","coefficient":1,"kind":"side","node":23732,"targets":[257]},{"channel":"w02","coefficient":1,"kind":"side","node":23737,"targets":[257]},{"channel":"partner","coefficient":1,"kind":"side","node":258,"targets":[257]},{"channel":"u01","coefficient":1,"kind":"side","node":23733,"targets":[258]},{"channel":"w02","coefficient":1,"kind":"side","node":23736,"targets":[258]},{"channel":"partner","coefficient":1,"kind":"side","node":257,"targets":[258]},{"channel":"u01","coefficient":1,"kind":"side","node":23733,"targets":[259]},{"channel":"w02","coefficient":1,"kind":"side","node":23737,"targets":[259]},{"channel":"partner","coefficient":1,"kind":"side","node":256,"targets":[259]},{"channel":"u01","coefficient":1,"kind":"side","node":23734,"targets":[260]},{"channel":"w02","coefficient":1,"kind":"side","node":23738,"targets":[260]},{"channel":"partner","coefficient":1,"kind":"side","node":263,"targets":[260]},{"channel":"u01","coefficient":1,"kind":"side","node":23734,"targets":[261]},{"channel":"w02","coefficient":1,"kind":"side","node":23739,"targets":[261]},{"channel":"partner","coefficient":1,"kind":"side","node":262,"targets":[261]},{"channel":"u01","coefficient":1,"kind":"side","node":23735,"targets":[262]},{"channel":"w02","coefficient":1,"kind":"side","node":23738,"targets":[262]},{"channel":"partner","coefficient":1,"kind":"side","node":261,"targets":[262]},{"channel":"u01","coefficient":1,"kind":"side","node":23735,"targets":[263]},{"channel":"w02","coefficient":1,"kind":"side","node":23739,"targets":[263]},{"channel":"partner","coefficient":1,"kind":"side","node":260,"targets":[263]},{"channel":"face0","coefficient":1,"kind":"side","node":8572,"targets":[264,265,266,267]},{"channel":"face0","coefficient":1,"kind":"side","node":9035,"targets":[268,269,270,271]},{"channel":"edge12","coefficient":1,"kind":"side","node":22127,"targets":[264,267]},{"channel":"edge12","coefficient":1,"kind":"side","node":22095,"targets":[265,266]},{"channel":"edge12","coefficient":1,"kind":"side","node":22127,"targets":[268,271]},{"channel":"edge12","coefficient":1,"kind":"side","node":22095,"targets":[269,270]},{"channel":"u01","coefficient":1,"kind":"side","node":23740,"targets":[264]},{"channel":"w02","coefficient":1,"kind":"side","node":23744,"targets":[264]},{"channel":"partner","coefficient":1,"kind":"side","node":267,"targets":[264]},{"channel":"u01","coefficient":1,"kind":"side","node":23740,"targets":[265]},{"channel":"w02","coefficient":1,"kind":"side","node":23745,"targets":[265]},{"channel":"partner","coefficient":1,"kind":"side","node":266,"targets":[265]},{"channel":"u01","coefficient":1,"kind":"side","node":23741,"targets":[266]},{"channel":"w02","coefficient":1,"kind":"side","node":23744,"targets":[266]},{"channel":"partner","coefficient":1,"kind":"side","node":265,"targets":[266]},{"channel":"u01","coefficient":1,"kind":"side","node":23741,"targets":[267]},{"channel":"w02","coefficient":1,"kind":"side","node":23745,"targets":[267]},{"channel":"partner","coefficient":1,"kind":"side","node":264,"targets":[267]},{"channel":"u01","coefficient":1,"kind":"side","node":23742,"targets":[268]},{"channel":"w02","coefficient":1,"kind":"side","node":23746,"targets":[268]},{"channel":"partner","coefficient":1,"kind":"side","node":271,"targets":[268]},{"channel":"u01","coefficient":1,"kind":"side","node":23742,"targets":[269]},{"channel":"w02","coefficient":1,"kind":"side","node":23747,"targets":[269]},{"channel":"partner","coefficient":1,"kind":"side","node":270,"targets":[269]},{"channel":"u01","coefficient":1,"kind":"side","node":23743,"targets":[270]},{"channel":"w02","coefficient":1,"kind":"side","node":23746,"targets":[270]},{"channel":"partner","coefficient":1,"kind":"side","node":269,"targets":[270]},{"channel":"u01","coefficient":1,"kind":"side","node":23743,"targets":[271]},{"channel":"w02","coefficient":1,"kind":"side","node":23747,"targets":[271]},{"channel":"partner","coefficient":1,"kind":"side","node":268,"targets":[271]},{"channel":"face0","coefficient":1,"kind":"side","node":8528,"targets":[272,273,274,275]},{"channel":"face0","coefficient":1,"kind":"side","node":8991,"targets":[276,277,278,279]},{"channel":"edge12","coefficient":1,"kind":"side","node":22191,"targets":[272,275]},{"channel":"edge12","coefficient":1,"kind":"side","node":22159,"targets":[273,274]},{"channel":"edge12","coefficient":1,"kind":"side","node":22191,"targets":[276,279]},{"channel":"edge12","coefficient":1,"kind":"side","node":22159,"targets":[277,278]},{"channel":"u01","coefficient":1,"kind":"side","node":23748,"targets":[272]},{"channel":"w02","coefficient":1,"kind":"side","node":23752,"targets":[272]},{"channel":"partner","coefficient":1,"kind":"side","node":275,"targets":[272]},{"channel":"u01","coefficient":1,"kind":"side","node":23748,"targets":[273]},{"channel":"w02","coefficient":1,"kind":"side","node":23753,"targets":[273]},{"channel":"partner","coefficient":1,"kind":"side","node":274,"targets":[273]},{"channel":"u01","coefficient":1,"kind":"side","node":23749,"targets":[274]},{"channel":"w02","coefficient":1,"kind":"side","node":23752,"targets":[274]},{"channel":"partner","coefficient":1,"kind":"side","node":273,"targets":[274]},{"channel":"u01","coefficient":1,"kind":"side","node":23749,"targets":[275]},{"channel":"w02","coefficient":1,"kind":"side","node":23753,"targets":[275]},{"channel":"partner","coefficient":1,"kind":"side","node":272,"targets":[275]},{"channel":"u01","coefficient":1,"kind":"side","node":23750,"targets":[276]},{"channel":"w02","coefficient":1,"kind":"side","node":23754,"targets":[276]},{"channel":"partner","coefficient":1,"kind":"side","node":279,"targets":[276]},{"channel":"u01","coefficient":1,"kind":"side","node":23750,"targets":[277]},{"channel":"w02","coefficient":1,"kind":"side","node":23755,"targets":[277]},{"channel":"partner","coefficient":1,"kind":"side","node":278,"targets":[277]},{"channel":"u01","coefficient":1,"kind":"side","node":23751,"targets":[278]},{"channel":"w02","coefficient":1,"kind":"side","node":23754,"targets":[278]},{"channel":"partner","coefficient":1,"kind":"side","node":277,"targets":[278]},{"channel":"u01","coefficient":1,"kind":"side","node":23751,"targets":[279]},{"channel":"w02","coefficient":1,"kind":"side","node":23755,"targets":[279]},{"channel":"partner","coefficient":1,"kind":"side","node":276,"targets":[279]},{"channel":"face0","coefficient":1,"kind":"side","node":8602,"targets":[280,281,282,283]},{"channel":"face0","coefficient":1,"kind":"side","node":9065,"targets":[284,285,286,287]},{"channel":"edge12","coefficient":1,"kind":"side","node":22255,"targets":[280,283]},{"channel":"edge12","coefficient":1,"kind":"side","node":22223,"targets":[281,282]},{"channel":"edge12","coefficient":1,"kind":"side","node":22255,"targets":[284,287]},{"channel":"edge12","coefficient":1,"kind":"side","node":22223,"targets":[285,286]},{"channel":"u01","coefficient":1,"kind":"side","node":23756,"targets":[280]},{"channel":"w02","coefficient":1,"kind":"side","node":23760,"targets":[280]},{"channel":"partner","coefficient":1,"kind":"side","node":283,"targets":[280]},{"channel":"u01","coefficient":1,"kind":"side","node":23756,"targets":[281]},{"channel":"w02","coefficient":1,"kind":"side","node":23761,"targets":[281]},{"channel":"partner","coefficient":1,"kind":"side","node":282,"targets":[281]},{"channel":"u01","coefficient":1,"kind":"side","node":23757,"targets":[282]},{"channel":"w02","coefficient":1,"kind":"side","node":23760,"targets":[282]},{"channel":"partner","coefficient":1,"kind":"side","node":281,"targets":[282]},{"channel":"u01","coefficient":1,"kind":"side","node":23757,"targets":[283]},{"channel":"w02","coefficient":1,"kind":"side","node":23761,"targets":[283]},{"channel":"partner","coefficient":1,"kind":"side","node":280,"targets":[283]},{"channel":"u01","coefficient":1,"kind":"side","node":23758,"targets":[284]},{"channel":"w02","coefficient":1,"kind":"side","node":23762,"targets":[284]},{"channel":"partner","coefficient":1,"kind":"side","node":287,"targets":[284]},{"channel":"u01","coefficient":1,"kind":"side","node":23758,"targets":[285]},{"channel":"w02","coefficient":1,"kind":"side","node":23763,"targets":[285]},{"channel":"partner","coefficient":1,"kind":"side","node":286,"targets":[285]},{"channel":"u01","coefficient":1,"kind":"side","node":23759,"targets":[286]},{"channel":"w02","coefficient":1,"kind":"side","node":23762,"targets":[286]},{"channel":"partner","coefficient":1,"kind":"side","node":285,"targets":[286]},{"channel":"u01","coefficient":1,"kind":"side","node":23759,"targets":[287]},{"channel":"w02","coefficient":1,"kind":"side","node":23763,"targets":[287]},{"channel":"partner","coefficient":1,"kind":"side","node":284,"targets":[287]},{"channel":"face0","coefficient":1,"kind":"side","node":8513,"targets":[288,289,290,291]},{"channel":"face0","coefficient":1,"kind":"side","node":8976,"targets":[292,293,294,295]},{"channel":"edge12","coefficient":1,"kind":"side","node":22319,"targets":[288,291]},{"channel":"edge12","coefficient":1,"kind":"side","node":22287,"targets":[289,290]},{"channel":"edge12","coefficient":1,"kind":"side","node":22319,"targets":[292,295]},{"channel":"edge12","coefficient":1,"kind":"side","node":22287,"targets":[293,294]},{"channel":"u01","coefficient":1,"kind":"side","node":23764,"targets":[288]},{"channel":"w02","coefficient":1,"kind":"side","node":23768,"targets":[288]},{"channel":"partner","coefficient":1,"kind":"side","node":291,"targets":[288]},{"channel":"u01","coefficient":1,"kind":"side","node":23764,"targets":[289]},{"channel":"w02","coefficient":1,"kind":"side","node":23769,"targets":[289]},{"channel":"partner","coefficient":1,"kind":"side","node":290,"targets":[289]},{"channel":"u01","coefficient":1,"kind":"side","node":23765,"targets":[290]},{"channel":"w02","coefficient":1,"kind":"side","node":23768,"targets":[290]},{"channel":"partner","coefficient":1,"kind":"side","node":289,"targets":[290]},{"channel":"u01","coefficient":1,"kind":"side","node":23765,"targets":[291]},{"channel":"w02","coefficient":1,"kind":"side","node":23769,"targets":[291]},{"channel":"partner","coefficient":1,"kind":"side","node":288,"targets":[291]},{"channel":"u01","coefficient":1,"kind":"side","node":23766,"targets":[292]},{"channel":"w02","coefficient":1,"kind":"side","node":23770,"targets":[292]},{"channel":"partner","coefficient":1,"kind":"side","node":295,"targets":[292]},{"channel":"u01","coefficient":1,"kind":"side","node":23766,"targets":[293]},{"channel":"w02","coefficient":1,"kind":"side","node":23771,"targets":[293]},{"channel":"partner","coefficient":1,"kind":"side","node":294,"targets":[293]},{"channel":"u01","coefficient":1,"kind":"side","node":23767,"targets":[294]},{"channel":"w02","coefficient":1,"kind":"side","node":23770,"targets":[294]},{"channel":"partner","coefficient":1,"kind":"side","node":293,"targets":[294]},{"channel":"u01","coefficient":1,"kind":"side","node":23767,"targets":[295]},{"channel":"w02","coefficient":1,"kind":"side","node":23771,"targets":[295]},{"channel":"partner","coefficient":1,"kind":"side","node":292,"targets":[295]},{"channel":"face0","coefficient":1,"kind":"side","node":8596,"targets":[296,297,298,299]},{"channel":"face0","coefficient":1,"kind":"side","node":9059,"targets":[300,301,302,303]},{"channel":"edge12","coefficient":1,"kind":"side","node":22383,"targets":[296,299]},{"channel":"edge12","coefficient":1,"kind":"side","node":22351,"targets":[297,298]},{"channel":"edge12","coefficient":1,"kind":"side","node":22383,"targets":[300,303]},{"channel":"edge12","coefficient":1,"kind":"side","node":22351,"targets":[301,302]},{"channel":"u01","coefficient":1,"kind":"side","node":23772,"targets":[296]},{"channel":"w02","coefficient":1,"kind":"side","node":23776,"targets":[296]},{"channel":"partner","coefficient":1,"kind":"side","node":299,"targets":[296]},{"channel":"u01","coefficient":1,"kind":"side","node":23772,"targets":[297]},{"channel":"w02","coefficient":1,"kind":"side","node":23777,"targets":[297]},{"channel":"partner","coefficient":1,"kind":"side","node":298,"targets":[297]},{"channel":"u01","coefficient":1,"kind":"side","node":23773,"targets":[298]},{"channel":"w02","coefficient":1,"kind":"side","node":23776,"targets":[298]},{"channel":"partner","coefficient":1,"kind":"side","node":297,"targets":[298]},{"channel":"u01","coefficient":1,"kind":"side","node":23773,"targets":[299]},{"channel":"w02","coefficient":1,"kind":"side","node":23777,"targets":[299]},{"channel":"partner","coefficient":1,"kind":"side","node":296,"targets":[299]},{"channel":"u01","coefficient":1,"kind":"side","node":23774,"targets":[300]},{"channel":"w02","coefficient":1,"kind":"side","node":23778,"targets":[300]},{"channel":"partner","coefficient":1,"kind":"side","node":303,"targets":[300]},{"channel":"u01","coefficient":1,"kind":"side","node":23774,"targets":[301]},{"channel":"w02","coefficient":1,"kind":"side","node":23779,"targets":[301]},{"channel":"partner","coefficient":1,"kind":"side","node":302,"targets":[301]},{"channel":"u01","coefficient":1,"kind":"side","node":23775,"targets":[302]},{"channel":"w02","coefficient":1,"kind":"side","node":23778,"targets":[302]},{"channel":"partner","coefficient":1,"kind":"side","node":301,"targets":[302]},{"channel":"u01","coefficient":1,"kind":"side","node":23775,"targets":[303]},{"channel":"w02","coefficient":1,"kind":"side","node":23779,"targets":[303]},{"channel":"partner","coefficient":1,"kind":"side","node":300,"targets":[303]},{"channel":"face0","coefficient":1,"kind":"side","node":8521,"targets":[304,305,306,307]},{"channel":"face0","coefficient":1,"kind":"side","node":8984,"targets":[308,309,310,311]},{"channel":"edge12","coefficient":1,"kind":"side","node":22447,"targets":[304,307]},{"channel":"edge12","coefficient":1,"kind":"side","node":22415,"targets":[305,306]},{"channel":"edge12","coefficient":1,"kind":"side","node":22447,"targets":[308,311]},{"channel":"edge12","coefficient":1,"kind":"side","node":22415,"targets":[309,310]},{"channel":"u01","coefficient":1,"kind":"side","node":23780,"targets":[304]},{"channel":"w02","coefficient":1,"kind":"side","node":23784,"targets":[304]},{"channel":"partner","coefficient":1,"kind":"side","node":307,"targets":[304]},{"channel":"u01","coefficient":1,"kind":"side","node":23780,"targets":[305]},{"channel":"w02","coefficient":1,"kind":"side","node":23785,"targets":[305]},{"channel":"partner","coefficient":1,"kind":"side","node":306,"targets":[305]},{"channel":"u01","coefficient":1,"kind":"side","node":23781,"targets":[306]},{"channel":"w02","coefficient":1,"kind":"side","node":23784,"targets":[306]},{"channel":"partner","coefficient":1,"kind":"side","node":305,"targets":[306]},{"channel":"u01","coefficient":1,"kind":"side","node":23781,"targets":[307]},{"channel":"w02","coefficient":1,"kind":"side","node":23785,"targets":[307]},{"channel":"partner","coefficient":1,"kind":"side","node":304,"targets":[307]},{"channel":"u01","coefficient":1,"kind":"side","node":23782,"targets":[308]},{"channel":"w02","coefficient":1,"kind":"side","node":23786,"targets":[308]},{"channel":"partner","coefficient":1,"kind":"side","node":311,"targets":[308]},{"channel":"u01","coefficient":1,"kind":"side","node":23782,"targets":[309]},{"channel":"w02","coefficient":1,"kind":"side","node":23787,"targets":[309]},{"channel":"partner","coefficient":1,"kind":"side","node":310,"targets":[309]},{"channel":"u01","coefficient":1,"kind":"side","node":23783,"targets":[310]},{"channel":"w02","coefficient":1,"kind":"side","node":23786,"targets":[310]},{"channel":"partner","coefficient":1,"kind":"side","node":309,"targets":[310]},{"channel":"u01","coefficient":1,"kind":"side","node":23783,"targets":[311]},{"channel":"w02","coefficient":1,"kind":"side","node":23787,"targets":[311]},{"channel":"partner","coefficient":1,"kind":"side","node":308,"targets":[311]},{"channel":"face0","coefficient":1,"kind":"side","node":8477,"targets":[312,313,314,315]},{"channel":"face0","coefficient":1,"kind":"side","node":8940,"targets":[316,317,318,319]},{"channel":"edge12","coefficient":1,"kind":"side","node":22511,"targets":[312,315]},{"channel":"edge12","coefficient":1,"kind":"side","node":22479,"targets":[313,314]},{"channel":"edge12","coefficient":1,"kind":"side","node":22511,"targets":[316,319]},{"channel":"edge12","coefficient":1,"kind":"side","node":22479,"targets":[317,318]},{"channel":"u01","coefficient":1,"kind":"side","node":23788,"targets":[312]},{"channel":"w02","coefficient":1,"kind":"side","node":23792,"targets":[312]},{"channel":"partner","coefficient":1,"kind":"side","node":315,"targets":[312]},{"channel":"u01","coefficient":1,"kind":"side","node":23788,"targets":[313]},{"channel":"w02","coefficient":1,"kind":"side","node":23793,"targets":[313]},{"channel":"partner","coefficient":1,"kind":"side","node":314,"targets":[313]},{"channel":"u01","coefficient":1,"kind":"side","node":23789,"targets":[314]},{"channel":"w02","coefficient":1,"kind":"side","node":23792,"targets":[314]},{"channel":"partner","coefficient":1,"kind":"side","node":313,"targets":[314]},{"channel":"u01","coefficient":1,"kind":"side","node":23789,"targets":[315]},{"channel":"w02","coefficient":1,"kind":"side","node":23793,"targets":[315]},{"channel":"partner","coefficient":1,"kind":"side","node":312,"targets":[315]},{"channel":"u01","coefficient":1,"kind":"side","node":23790,"targets":[316]},{"channel":"w02","coefficient":1,"kind":"side","node":23794,"targets":[316]},{"channel":"partner","coefficient":1,"kind":"side","node":319,"targets":[316]},{"channel":"u01","coefficient":1,"kind":"side","node":23790,"targets":[317]},{"channel":"w02","coefficient":1,"kind":"side","node":23795,"targets":[317]},{"channel":"partner","coefficient":1,"kind":"side","node":318,"targets":[317]},{"channel":"u01","coefficient":1,"kind":"side","node":23791,"targets":[318]},{"channel":"w02","coefficient":1,"kind":"side","node":23794,"targets":[318]},{"channel":"partner","coefficient":1,"kind":"side","node":317,"targets":[318]},{"channel":"u01","coefficient":1,"kind":"side","node":23791,"targets":[319]},{"channel":"w02","coefficient":1,"kind":"side","node":23795,"targets":[319]},{"channel":"partner","coefficient":1,"kind":"side","node":316,"targets":[319]},{"channel":"face0","coefficient":1,"kind":"side","node":8471,"targets":[320,321,322,323]},{"channel":"face0","coefficient":1,"kind":"side","node":8934,"targets":[324,325,326,327]},{"channel":"edge12","coefficient":1,"kind":"side","node":22575,"targets":[320,323]},{"channel":"edge12","coefficient":1,"kind":"side","node":22543,"targets":[321,322]},{"channel":"edge12","coefficient":1,"kind":"side","node":22575,"targets":[324,327]},{"channel":"edge12","coefficient":1,"kind":"side","node":22543,"targets":[325,326]},{"channel":"u01","coefficient":1,"kind":"side","node":23796,"targets":[320]},{"channel":"w02","coefficient":1,"kind":"side","node":23800,"targets":[320]},{"channel":"partner","coefficient":1,"kind":"side","node":323,"targets":[320]},{"channel":"u01","coefficient":1,"kind":"side","node":23796,"targets":[321]},{"channel":"w02","coefficient":1,"kind":"side","node":23801,"targets":[321]},{"channel":"partner","coefficient":1,"kind":"side","node":322,"targets":[321]},{"channel":"u01","coefficient":1,"kind":"side","node":23797,"targets":[322]},{"channel":"w02","coefficient":1,"kind":"side","node":23800,"targets":[322]},{"channel":"partner","coefficient":1,"kind":"side","node":321,"targets":[322]},{"channel":"u01","coefficient":1,"kind":"side","node":23797,"targets":[323]},{"channel":"w02","coefficient":1,"kind":"side","node":23801,"targets":[323]},{"channel":"partner","coefficient":1,"kind":"side","node":320,"targets":[323]},{"channel":"u01","coefficient":1,"kind":"side","node":23798,"targets":[324]},{"channel":"w02","coefficient":1,"kind":"side","node":23802,"targets":[324]},{"channel":"partner","coefficient":1,"kind":"side","node":327,"targets":[324]},{"channel":"u01","coefficient":1,"kind":"side","node":23798,"targets":[325]},{"channel":"w02","coefficient":1,"kind":"side","node":23803,"targets":[325]},{"channel":"partner","coefficient":1,"kind":"side","node":326,"targets":[325]},{"channel":"u01","coefficient":1,"kind":"side","node":23799,"targets":[326]},{"channel":"w02","coefficient":1,"kind":"side","node":23802,"targets":[326]},{"channel":"partner","coefficient":1,"kind":"side","node":325,"targets":[326]},{"channel":"u01","coefficient":1,"kind":"side","node":23799,"targets":[327]},{"channel":"w02","coefficient":1,"kind":"side","node":23803,"targets":[327]},{"channel":"partner","coefficient":1,"kind":"side","node":324,"targets":[327]},{"channel":"face0","coefficient":1,"kind":"side","node":8527,"targets":[328,329,330,331]},{"channel":"face0","coefficient":1,"kind":"side","node":8990,"targets":[332,333,334,335]},{"channel":"edge12","coefficient":1,"kind":"side","node":22639,"targets":[328,331]},{"channel":"edge12","coefficient":1,"kind":"side","node":22607,"targets":[329,330]},{"channel":"edge12","coefficient":1,"kind":"side","node":22639,"targets":[332,335]},{"channel":"edge12","coefficient":1,"kind":"side","node":22607,"targets":[333,334]},{"channel":"u01","coefficient":1,"kind":"side","node":23804,"targets":[328]},{"channel":"w02","coefficient":1,"kind":"side","node":23808,"targets":[328]},{"channel":"partner","coefficient":1,"kind":"side","node":331,"targets":[328]},{"channel":"u01","coefficient":1,"kind":"side","node":23804,"targets":[329]},{"channel":"w02","coefficient":1,"kind":"side","node":23809,"targets":[329]},{"channel":"partner","coefficient":1,"kind":"side","node":330,"targets":[329]},{"channel":"u01","coefficient":1,"kind":"side","node":23805,"targets":[330]},{"channel":"w02","coefficient":1,"kind":"side","node":23808,"targets":[330]},{"channel":"partner","coefficient":1,"kind":"side","node":329,"targets":[330]},{"channel":"u01","coefficient":1,"kind":"side","node":23805,"targets":[331]},{"channel":"w02","coefficient":1,"kind":"side","node":23809,"targets":[331]},{"channel":"partner","coefficient":1,"kind":"side","node":328,"targets":[331]},{"channel":"u01","coefficient":1,"kind":"side","node":23806,"targets":[332]},{"channel":"w02","coefficient":1,"kind":"side","node":23810,"targets":[332]},{"channel":"partner","coefficient":1,"kind":"side","node":335,"targets":[332]},{"channel":"u01","coefficient":1,"kind":"side","node":23806,"targets":[333]},{"channel":"w02","coefficient":1,"kind":"side","node":23811,"targets":[333]},{"channel":"partner","coefficient":1,"kind":"side","node":334,"targets":[333]},{"channel":"u01","coefficient":1,"kind":"side","node":23807,"targets":[334]},{"channel":"w02","coefficient":1,"kind":"side","node":23810,"targets":[334]},{"channel":"partner","coefficient":1,"kind":"side","node":333,"targets":[334]},{"channel":"u01","coefficient":1,"kind":"side","node":23807,"targets":[335]},{"channel":"w02","coefficient":1,"kind":"side","node":23811,"targets":[335]},{"channel":"partner","coefficient":1,"kind":"side","node":332,"targets":[335]},{"channel":"face0","coefficient":1,"kind":"side","node":8488,"targets":[336,337,338,339]},{"channel":"face0","coefficient":1,"kind":"side","node":8951,"targets":[340,341,342,343]},{"channel":"edge12","coefficient":1,"kind":"side","node":22703,"targets":[336,339]},{"channel":"edge12","coefficient":1,"kind":"side","node":22671,"targets":[337,338]},{"channel":"edge12","coefficient":1,"kind":"side","node":22703,"targets":[340,343]},{"channel":"edge12","coefficient":1,"kind":"side","node":22671,"targets":[341,342]},{"channel":"u01","coefficient":1,"kind":"side","node":23812,"targets":[336]},{"channel":"w02","coefficient":1,"kind":"side","node":23816,"targets":[336]},{"channel":"partner","coefficient":1,"kind":"side","node":339,"targets":[336]},{"channel":"u01","coefficient":1,"kind":"side","node":23812,"targets":[337]},{"channel":"w02","coefficient":1,"kind":"side","node":23817,"targets":[337]},{"channel":"partner","coefficient":1,"kind":"side","node":338,"targets":[337]},{"channel":"u01","coefficient":1,"kind":"side","node":23813,"targets":[338]},{"channel":"w02","coefficient":1,"kind":"side","node":23816,"targets":[338]},{"channel":"partner","coefficient":1,"kind":"side","node":337,"targets":[338]},{"channel":"u01","coefficient":1,"kind":"side","node":23813,"targets":[339]},{"channel":"w02","coefficient":1,"kind":"side","node":23817,"targets":[339]},{"channel":"partner","coefficient":1,"kind":"side","node":336,"targets":[339]},{"channel":"u01","coefficient":1,"kind":"side","node":23814,"targets":[340]},{"channel":"w02","coefficient":1,"kind":"side","node":23818,"targets":[340]},{"channel":"partner","coefficient":1,"kind":"side","node":343,"targets":[340]},{"channel":"u01","coefficient":1,"kind":"side","node":23814,"targets":[341]},{"channel":"w02","coefficient":1,"kind":"side","node":23819,"targets":[341]},{"channel":"partner","coefficient":1,"kind":"side","node":342,"targets":[341]},{"channel":"u01","coefficient":1,"kind":"side","node":23815,"targets":[342]},{"channel":"w02","coefficient":1,"kind":"side","node":23818,"targets":[342]},{"channel":"partner","coefficient":1,"kind":"side","node":341,"targets":[342]},{"channel":"u01","coefficient":1,"kind":"side","node":23815,"targets":[343]},{"channel":"w02","coefficient":1,"kind":"side","node":23819,"targets":[343]},{"channel":"partner","coefficient":1,"kind":"side","node":340,"targets":[343]},{"channel":"face0","coefficient":1,"kind":"side","node":8334,"targets":[344,345,346,347]},{"channel":"face0","coefficient":1,"kind":"side","node":8797,"targets":[348,349,350,351]},{"channel":"edge12","coefficient":1,"kind":"side","node":22767,"targets":[344,347]},{"channel":"edge12","coefficient":1,"kind":"side","node":22735,"targets":[345,346]},{"channel":"edge12","coefficient":1,"kind":"side","node":22767,"targets":[348,351]},{"channel":"edge12","coefficient":1,"kind":"side","node":22735,"targets":[349,350]},{"channel":"u01","coefficient":1,"kind":"side","node":23820,"targets":[344]},{"channel":"w02","coefficient":1,"kind":"side","node":23824,"targets":[344]},{"channel":"partner","coefficient":1,"kind":"side","node":347,"targets":[344]},{"channel":"u01","coefficient":1,"kind":"side","node":23820,"targets":[345]},{"channel":"w02","coefficient":1,"kind":"side","node":23825,"targets":[345]},{"channel":"partner","coefficient":1,"kind":"side","node":346,"targets":[345]},{"channel":"u01","coefficient":1,"kind":"side","node":23821,"targets":[346]},{"channel":"w02","coefficient":1,"kind":"side","node":23824,"targets":[346]},{"channel":"partner","coefficient":1,"kind":"side","node":345,"targets":[346]},{"channel":"u01","coefficient":1,"kind":"side","node":23821,"targets":[347]},{"channel":"w02","coefficient":1,"kind":"side","node":23825,"targets":[347]},{"channel":"partner","coefficient":1,"kind":"side","node":344,"targets":[347]},{"channel":"u01","coefficient":1,"kind":"side","node":23822,"targets":[348]},{"channel":"w02","coefficient":1,"kind":"side","node":23826,"targets":[348]},{"channel":"partner","coefficient":1,"kind":"side","node":351,"targets":[348]},{"channel":"u01","coefficient":1,"kind":"side","node":23822,"targets":[349]},{"channel":"w02","coefficient":1,"kind":"side","node":23827,"targets":[349]},{"channel":"partner","coefficient":1,"kind":"side","node":350,"targets":[349]},{"channel":"u01","coefficient":1,"kind":"side","node":23823,"targets":[350]},{"channel":"w02","coefficient":1,"kind":"side","node":23826,"targets":[350]},{"channel":"partner","coefficient":1,"kind":"side","node":349,"targets":[350]},{"channel":"u01","coefficient":1,"kind":"side","node":23823,"targets":[351]},{"channel":"w02","coefficient":1,"kind":"side","node":23827,"targets":[351]},{"channel":"partner","coefficient":1,"kind":"side","node":348,"targets":[351]},{"channel":"face0","coefficient":1,"kind":"side","node":8498,"targets":[352,353,354,355]},{"channel":"face0","coefficient":1,"kind":"side","node":8961,"targets":[356,357,358,359]},{"channel":"edge12","coefficient":1,"kind":"side","node":22831,"targets":[352,355]},{"channel":"edge12","coefficient":1,"kind":"side","node":22799,"targets":[353,354]},{"channel":"edge12","coefficient":1,"kind":"side","node":22831,"targets":[356,359]},{"channel":"edge12","coefficient":1,"kind":"side","node":22799,"targets":[357,358]},{"channel":"u01","coefficient":1,"kind":"side","node":23828,"targets":[352]},{"channel":"w02","coefficient":1,"kind":"side","node":23832,"targets":[352]},{"channel":"partner","coefficient":1,"kind":"side","node":355,"targets":[352]},{"channel":"u01","coefficient":1,"kind":"side","node":23828,"targets":[353]},{"channel":"w02","coefficient":1,"kind":"side","node":23833,"targets":[353]},{"channel":"partner","coefficient":1,"kind":"side","node":354,"targets":[353]},{"channel":"u01","coefficient":1,"kind":"side","node":23829,"targets":[354]},{"channel":"w02","coefficient":1,"kind":"side","node":23832,"targets":[354]},{"channel":"partner","coefficient":1,"kind":"side","node":353,"targets":[354]},{"channel":"u01","coefficient":1,"kind":"side","node":23829,"targets":[355]},{"channel":"w02","coefficient":1,"kind":"side","node":23833,"targets":[355]},{"channel":"partner","coefficient":1,"kind":"side","node":352,"targets":[355]},{"channel":"u01","coefficient":1,"kind":"side","node":23830,"targets":[356]},{"channel":"w02","coefficient":1,"kind":"side","node":23834,"targets":[356]},{"channel":"partner","coefficient":1,"kind":"side","node":359,"targets":[356]},{"channel":"u01","coefficient":1,"kind":"side","node":23830,"targets":[357]},{"channel":"w02","coefficient":1,"kind":"side","node":23835,"targets":[357]},{"channel":"partner","coefficient":1,"kind":"side","node":358,"targets":[357]},{"channel":"u01","coefficient":1,"kind":"side","node":23831,"targets":[358]},{"channel":"w02","coefficient":1,"kind":"side","node":23834,"targets":[358]},{"channel":"partner","coefficient":1,"kind":"side","node":357,"targets":[358]},{"channel":"u01","coefficient":1,"kind":"side","node":23831,"targets":[359]},{"channel":"w02","coefficient":1,"kind":"side","node":23835,"targets":[359]},{"channel":"partner","coefficient":1,"kind":"side","node":356,"targets":[359]},{"channel":"face0","coefficient":1,"kind":"side","node":8540,"targets":[360,361,362,363]},{"channel":"face0","coefficient":1,"kind":"side","node":9003,"targets":[364,365,366,367]},{"channel":"edge12","coefficient":1,"kind":"side","node":22895,"targets":[360,363]},{"channel":"edge12","coefficient":1,"kind":"side","node":22863,"targets":[361,362]},{"channel":"edge12","coefficient":1,"kind":"side","node":22895,"targets":[364,367]},{"channel":"edge12","coefficient":1,"kind":"side","node":22863,"targets":[365,366]},{"channel":"u01","coefficient":1,"kind":"side","node":23836,"targets":[360]},{"channel":"w02","coefficient":1,"kind":"side","node":23840,"targets":[360]},{"channel":"partner","coefficient":1,"kind":"side","node":363,"targets":[360]},{"channel":"u01","coefficient":1,"kind":"side","node":23836,"targets":[361]},{"channel":"w02","coefficient":1,"kind":"side","node":23841,"targets":[361]},{"channel":"partner","coefficient":1,"kind":"side","node":362,"targets":[361]},{"channel":"u01","coefficient":1,"kind":"side","node":23837,"targets":[362]},{"channel":"w02","coefficient":1,"kind":"side","node":23840,"targets":[362]},{"channel":"partner","coefficient":1,"kind":"side","node":361,"targets":[362]},{"channel":"u01","coefficient":1,"kind":"side","node":23837,"targets":[363]},{"channel":"w02","coefficient":1,"kind":"side","node":23841,"targets":[363]},{"channel":"partner","coefficient":1,"kind":"side","node":360,"targets":[363]},{"channel":"u01","coefficient":1,"kind":"side","node":23838,"targets":[364]},{"channel":"w02","coefficient":1,"kind":"side","node":23842,"targets":[364]},{"channel":"partner","coefficient":1,"kind":"side","node":367,"targets":[364]},{"channel":"u01","coefficient":1,"kind":"side","node":23838,"targets":[365]},{"channel":"w02","coefficient":1,"kind":"side","node":23843,"targets":[365]},{"channel":"partner","coefficient":1,"kind":"side","node":366,"targets":[365]},{"channel":"u01","coefficient":1,"kind":"side","node":23839,"targets":[366]},{"channel":"w02","coefficient":1,"kind":"side","node":23842,"targets":[366]},{"channel":"partner","coefficient":1,"kind":"side","node":365,"targets":[366]},{"channel":"u01","coefficient":1,"kind":"side","node":23839,"targets":[367]},{"channel":"w02","coefficient":1,"kind":"side","node":23843,"targets":[367]},{"channel":"partner","coefficient":1,"kind":"side","node":364,"targets":[367]},{"channel":"face0","coefficient":1,"kind":"side","node":8561,"targets":[368,369,370,371]},{"channel":"face0","coefficient":1,"kind":"side","node":9024,"targets":[372,373,374,375]},{"channel":"edge12","coefficient":1,"kind":"side","node":22959,"targets":[368,371]},{"channel":"edge12","coefficient":1,"kind":"side","node":22927,"targets":[369,370]},{"channel":"edge12","coefficient":1,"kind":"side","node":22959,"targets":[372,375]},{"channel":"edge12","coefficient":1,"kind":"side","node":22927,"targets":[373,374]},{"channel":"u01","coefficient":1,"kind":"side","node":23844,"targets":[368]},{"channel":"w02","coefficient":1,"kind":"side","node":23848,"targets":[368]},{"channel":"partner","coefficient":1,"kind":"side","node":371,"targets":[368]},{"channel":"u01","coefficient":1,"kind":"side","node":23844,"targets":[369]},{"channel":"w02","coefficient":1,"kind":"side","node":23849,"targets":[369]},{"channel":"partner","coefficient":1,"kind":"side","node":370,"targets":[369]},{"channel":"u01","coefficient":1,"kind":"side","node":23845,"targets":[370]},{"channel":"w02","coefficient":1,"kind":"side","node":23848,"targets":[370]},{"channel":"partner","coefficient":1,"kind":"side","node":369,"targets":[370]},{"channel":"u01","coefficient":1,"kind":"side","node":23845,"targets":[371]},{"channel":"w02","coefficient":1,"kind":"side","node":23849,"targets":[371]},{"channel":"partner","coefficient":1,"kind":"side","node":368,"targets":[371]},{"channel":"u01","coefficient":1,"kind":"side","node":23846,"targets":[372]},{"channel":"w02","coefficient":1,"kind":"side","node":23850,"targets":[372]},{"channel":"partner","coefficient":1,"kind":"side","node":375,"targets":[372]},{"channel":"u01","coefficient":1,"kind":"side","node":23846,"targets":[373]},{"channel":"w02","coefficient":1,"kind":"side","node":23851,"targets":[373]},{"channel":"partner","coefficient":1,"kind":"side","node":374,"targets":[373]},{"channel":"u01","coefficient":1,"kind":"side","node":23847,"targets":[374]},{"channel":"w02","coefficient":1,"kind":"side","node":23850,"targets":[374]},{"channel":"partner","coefficient":1,"kind":"side","node":373,"targets":[374]},{"channel":"u01","coefficient":1,"kind":"side","node":23847,"targets":[375]},{"channel":"w02","coefficient":1,"kind":"side","node":23851,"targets":[375]},{"channel":"partner","coefficient":1,"kind":"side","node":372,"targets":[375]},{"channel":"face0","coefficient":1,"kind":"side","node":8307,"targets":[376,377,378,379]},{"channel":"face0","coefficient":1,"kind":"side","node":8770,"targets":[380,381,382,383]},{"channel":"edge12","coefficient":1,"kind":"side","node":23023,"targets":[376,379]},{"channel":"edge12","coefficient":1,"kind":"side","node":22991,"targets":[377,378]},{"channel":"edge12","coefficient":1,"kind":"side","node":23023,"targets":[380,383]},{"channel":"edge12","coefficient":1,"kind":"side","node":22991,"targets":[381,382]},{"channel":"u01","coefficient":1,"kind":"side","node":23852,"targets":[376]},{"channel":"w02","coefficient":1,"kind":"side","node":23856,"targets":[376]},{"channel":"partner","coefficient":1,"kind":"side","node":379,"targets":[376]},{"channel":"u01","coefficient":1,"kind":"side","node":23852,"targets":[377]},{"channel":"w02","coefficient":1,"kind":"side","node":23857,"targets":[377]},{"channel":"partner","coefficient":1,"kind":"side","node":378,"targets":[377]},{"channel":"u01","coefficient":1,"kind":"side","node":23853,"targets":[378]},{"channel":"w02","coefficient":1,"kind":"side","node":23856,"targets":[378]},{"channel":"partner","coefficient":1,"kind":"side","node":377,"targets":[378]},{"channel":"u01","coefficient":1,"kind":"side","node":23853,"targets":[379]},{"channel":"w02","coefficient":1,"kind":"side","node":23857,"targets":[379]},{"channel":"partner","coefficient":1,"kind":"side","node":376,"targets":[379]},{"channel":"u01","coefficient":1,"kind":"side","node":23854,"targets":[380]},{"channel":"w02","coefficient":1,"kind":"side","node":23858,"targets":[380]},{"channel":"partner","coefficient":1,"kind":"side","node":383,"targets":[380]},{"channel":"u01","coefficient":1,"kind":"side","node":23854,"targets":[381]},{"channel":"w02","coefficient":1,"kind":"side","node":23859,"targets":[381]},{"channel":"partner","coefficient":1,"kind":"side","node":382,"targets":[381]},{"channel":"u01","coefficient":1,"kind":"side","node":23855,"targets":[382]},{"channel":"w02","coefficient":1,"kind":"side","node":23858,"targets":[382]},{"channel":"partner","coefficient":1,"kind":"side","node":381,"targets":[382]},{"channel":"u01","coefficient":1,"kind":"side","node":23855,"targets":[383]},{"channel":"w02","coefficient":1,"kind":"side","node":23859,"targets":[383]},{"channel":"partner","coefficient":1,"kind":"side","node":380,"targets":[383]},{"channel":"face0","coefficient":1,"kind":"side","node":8409,"targets":[384,385,386,387]},{"channel":"face0","coefficient":1,"kind":"side","node":8872,"targets":[388,389,390,391]},{"channel":"edge12","coefficient":1,"kind":"side","node":23087,"targets":[384,387]},{"channel":"edge12","coefficient":1,"kind":"side","node":23055,"targets":[385,386]},{"channel":"edge12","coefficient":1,"kind":"side","node":23087,"targets":[388,391]},{"channel":"edge12","coefficient":1,"kind":"side","node":23055,"targets":[389,390]},{"channel":"u01","coefficient":1,"kind":"side","node":23860,"targets":[384]},{"channel":"w02","coefficient":1,"kind":"side","node":23864,"targets":[384]},{"channel":"partner","coefficient":1,"kind":"side","node":387,"targets":[384]},{"channel":"u01","coefficient":1,"kind":"side","node":23860,"targets":[385]},{"channel":"w02","coefficient":1,"kind":"side","node":23865,"targets":[385]},{"channel":"partner","coefficient":1,"kind":"side","node":386,"targets":[385]},{"channel":"u01","coefficient":1,"kind":"side","node":23861,"targets":[386]},{"channel":"w02","coefficient":1,"kind":"side","node":23864,"targets":[386]},{"channel":"partner","coefficient":1,"kind":"side","node":385,"targets":[386]},{"channel":"u01","coefficient":1,"kind":"side","node":23861,"targets":[387]},{"channel":"w02","coefficient":1,"kind":"side","node":23865,"targets":[387]},{"channel":"partner","coefficient":1,"kind":"side","node":384,"targets":[387]},{"channel":"u01","coefficient":1,"kind":"side","node":23862,"targets":[388]},{"channel":"w02","coefficient":1,"kind":"side","node":23866,"targets":[388]},{"channel":"partner","coefficient":1,"kind":"side","node":391,"targets":[388]},{"channel":"u01","coefficient":1,"kind":"side","node":23862,"targets":[389]},{"channel":"w02","coefficient":1,"kind":"side","node":23867,"targets":[389]},{"channel":"partner","coefficient":1,"kind":"side","node":390,"targets":[389]},{"channel":"u01","coefficient":1,"kind":"side","node":23863,"targets":[390]},{"channel":"w02","coefficient":1,"kind":"side","node":23866,"targets":[390]},{"channel":"partner","coefficient":1,"kind":"side","node":389,"targets":[390]},{"channel":"u01","coefficient":1,"kind":"side","node":23863,"targets":[391]},{"channel":"w02","coefficient":1,"kind":"side","node":23867,"targets":[391]},{"channel":"partner","coefficient":1,"kind":"side","node":388,"targets":[391]},{"channel":"face0","coefficient":1,"kind":"side","node":8555,"targets":[392,393,394,395]},{"channel":"face0","coefficient":1,"kind":"side","node":9018,"targets":[396,397,398,399]},{"channel":"edge12","coefficient":1,"kind":"side","node":23151,"targets":[392,395]},{"channel":"edge12","coefficient":1,"kind":"side","node":23119,"targets":[393,394]},{"channel":"edge12","coefficient":1,"kind":"side","node":23151,"targets":[396,399]},{"channel":"edge12","coefficient":1,"kind":"side","node":23119,"targets":[397,398]},{"channel":"u01","coefficient":1,"kind":"side","node":23868,"targets":[392]},{"channel":"w02","coefficient":1,"kind":"side","node":23872,"targets":[392]},{"channel":"partner","coefficient":1,"kind":"side","node":395,"targets":[392]},{"channel":"u01","coefficient":1,"kind":"side","node":23868,"targets":[393]},{"channel":"w02","coefficient":1,"kind":"side","node":23873,"targets":[393]},{"channel":"partner","coefficient":1,"kind":"side","node":394,"targets":[393]},{"channel":"u01","coefficient":1,"kind":"side","node":23869,"targets":[394]},{"channel":"w02","coefficient":1,"kind":"side","node":23872,"targets":[394]},{"channel":"partner","coefficient":1,"kind":"side","node":393,"targets":[394]},{"channel":"u01","coefficient":1,"kind":"side","node":23869,"targets":[395]},{"channel":"w02","coefficient":1,"kind":"side","node":23873,"targets":[395]},{"channel":"partner","coefficient":1,"kind":"side","node":392,"targets":[395]},{"channel":"u01","coefficient":1,"kind":"side","node":23870,"targets":[396]},{"channel":"w02","coefficient":1,"kind":"side","node":23874,"targets":[396]},{"channel":"partner","coefficient":1,"kind":"side","node":399,"targets":[396]},{"channel":"u01","coefficient":1,"kind":"side","node":23870,"targets":[397]},{"channel":"w02","coefficient":1,"kind":"side","node":23875,"targets":[397]},{"channel":"partner","coefficient":1,"kind":"side","node":398,"targets":[397]},{"channel":"u01","coefficient":1,"kind":"side","node":23871,"targets":[398]},{"channel":"w02","coefficient":1,"kind":"side","node":23874,"targets":[398]},{"channel":"partner","coefficient":1,"kind":"side","node":397,"targets":[398]},{"channel":"u01","coefficient":1,"kind":"side","node":23871,"targets":[399]},{"channel":"w02","coefficient":1,"kind":"side","node":23875,"targets":[399]},{"channel":"partner","coefficient":1,"kind":"side","node":396,"targets":[399]},{"channel":"face0","coefficient":1,"kind":"side","node":8511,"targets":[400,401,402,403]},{"channel":"face0","coefficient":1,"kind":"side","node":8974,"targets":[404,405,406,407]},{"channel":"edge12","coefficient":1,"kind":"side","node":23215,"targets":[400,403]},{"channel":"edge12","coefficient":1,"kind":"side","node":23183,"targets":[401,402]},{"channel":"edge12","coefficient":1,"kind":"side","node":23215,"targets":[404,407]},{"channel":"edge12","coefficient":1,"kind":"side","node":23183,"targets":[405,406]},{"channel":"u01","coefficient":1,"kind":"side","node":23876,"targets":[400]},{"channel":"w02","coefficient":1,"kind":"side","node":23880,"targets":[400]},{"channel":"partner","coefficient":1,"kind":"side","node":403,"targets":[400]},{"channel":"u01","coefficient":1,"kind":"side","node":23876,"targets":[401]},{"channel":"w02","coefficient":1,"kind":"side","node":23881,"targets":[401]},{"channel":"partner","coefficient":1,"kind":"side","node":402,"targets":[401]},{"channel":"u01","coefficient":1,"kind":"side","node":23877,"targets":[402]},{"channel":"w02","coefficient":1,"kind":"side","node":23880,"targets":[402]},{"channel":"partner","coefficient":1,"kind":"side","node":401,"targets":[402]},{"channel":"u01","coefficient":1,"kind":"side","node":23877,"targets":[403]},{"channel":"w02","coefficient":1,"kind":"side","node":23881,"targets":[403]},{"channel":"partner","coefficient":1,"kind":"side","node":400,"targets":[403]},{"channel":"u01","coefficient":1,"kind":"side","node":23878,"targets":[404]},{"channel":"w02","coefficient":1,"kind":"side","node":23882,"targets":[404]},{"channel":"partner","coefficient":1,"kind":"side","node":407,"targets":[404]},{"channel":"u01","coefficient":1,"kind":"side","node":23878,"targets":[405]},{"channel":"w02","coefficient":1,"kind":"side","node":23883,"targets":[405]},{"channel":"partner","coefficient":1,"kind":"side","node":406,"targets":[405]},{"channel":"u01","coefficient":1,"kind":"side","node":23879,"targets":[406]},{"channel":"w02","coefficient":1,"kind":"side","node":23882,"targets":[406]},{"channel":"partner","coefficient":1,"kind":"side","node":405,"targets":[406]},{"channel":"u01","coefficient":1,"kind":"side","node":23879,"targets":[407]},{"channel":"w02","coefficient":1,"kind":"side","node":23883,"targets":[407]},{"channel":"partner","coefficient":1,"kind":"side","node":404,"targets":[407]},{"channel":"face0","coefficient":1,"kind":"side","node":8558,"targets":[408,409,410,411]},{"channel":"face0","coefficient":1,"kind":"side","node":9021,"targets":[412,413,414,415]},{"channel":"edge12","coefficient":1,"kind":"side","node":23279,"targets":[408,411]},{"channel":"edge12","coefficient":1,"kind":"side","node":23247,"targets":[409,410]},{"channel":"edge12","coefficient":1,"kind":"side","node":23279,"targets":[412,415]},{"channel":"edge12","coefficient":1,"kind":"side","node":23247,"targets":[413,414]},{"channel":"u01","coefficient":1,"kind":"side","node":23884,"targets":[408]},{"channel":"w02","coefficient":1,"kind":"side","node":23888,"targets":[408]},{"channel":"partner","coefficient":1,"kind":"side","node":411,"targets":[408]},{"channel":"u01","coefficient":1,"kind":"side","node":23884,"targets":[409]},{"channel":"w02","coefficient":1,"kind":"side","node":23889,"targets":[409]},{"channel":"partner","coefficient":1,"kind":"side","node":410,"targets":[409]},{"channel":"u01","coefficient":1,"kind":"side","node":23885,"targets":[410]},{"channel":"w02","coefficient":1,"kind":"side","node":23888,"targets":[410]},{"channel":"partner","coefficient":1,"kind":"side","node":409,"targets":[410]},{"channel":"u01","coefficient":1,"kind":"side","node":23885,"targets":[411]},{"channel":"w02","coefficient":1,"kind":"side","node":23889,"targets":[411]},{"channel":"partner","coefficient":1,"kind":"side","node":408,"targets":[411]},{"channel":"u01","coefficient":1,"kind":"side","node":23886,"targets":[412]},{"channel":"w02","coefficient":1,"kind":"side","node":23890,"targets":[412]},{"channel":"partner","coefficient":1,"kind":"side","node":415,"targets":[412]},{"channel":"u01","coefficient":1,"kind":"side","node":23886,"targets":[413]},{"channel":"w02","coefficient":1,"kind":"side","node":23891,"targets":[413]},{"channel":"partner","coefficient":1,"kind":"side","node":414,"targets":[413]},{"channel":"u01","coefficient":1,"kind":"side","node":23887,"targets":[414]},{"channel":"w02","coefficient":1,"kind":"side","node":23890,"targets":[414]},{"channel":"partner","coefficient":1,"kind":"side","node":413,"targets":[414]},{"channel":"u01","coefficient":1,"kind":"side","node":23887,"targets":[415]},{"channel":"w02","coefficient":1,"kind":"side","node":23891,"targets":[415]},{"channel":"partner","coefficient":1,"kind":"side","node":412,"targets":[415]},{"channel":"face0","coefficient":1,"kind":"side","node":8594,"targets":[416,417,418,419]},{"channel":"face0","coefficient":1,"kind":"side","node":9057,"targets":[420,421,422,423]},{"channel":"edge12","coefficient":1,"kind":"side","node":23343,"targets":[416,419]},{"channel":"edge12","coefficient":1,"kind":"side","node":23311,"targets":[417,418]},{"channel":"edge12","coefficient":1,"kind":"side","node":23343,"targets":[420,423]},{"channel":"edge12","coefficient":1,"kind":"side","node":23311,"targets":[421,422]},{"channel":"u01","coefficient":1,"kind":"side","node":23892,"targets":[416]},{"channel":"w02","coefficient":1,"kind":"side","node":23896,"targets":[416]},{"channel":"partner","coefficient":1,"kind":"side","node":419,"targets":[416]},{"channel":"u01","coefficient":1,"kind":"side","node":23892,"targets":[417]},{"channel":"w02","coefficient":1,"kind":"side","node":23897,"targets":[417]},{"channel":"partner","coefficient":1,"kind":"side","node":418,"targets":[417]},{"channel":"u01","coefficient":1,"kind":"side","node":23893,"targets":[418]},{"channel":"w02","coefficient":1,"kind":"side","node":23896,"targets":[418]},{"channel":"partner","coefficient":1,"kind":"side","node":417,"targets":[418]},{"channel":"u01","coefficient":1,"kind":"side","node":23893,"targets":[419]},{"channel":"w02","coefficient":1,"kind":"side","node":23897,"targets":[419]},{"channel":"partner","coefficient":1,"kind":"side","node":416,"targets":[419]},{"channel":"u01","coefficient":1,"kind":"side","node":23894,"targets":[420]},{"channel":"w02","coefficient":1,"kind":"side","node":23898,"targets":[420]},{"channel":"partner","coefficient":1,"kind":"side","node":423,"targets":[420]},{"channel":"u01","coefficient":1,"kind":"side","node":23894,"targets":[421]},{"channel":"w02","coefficient":1,"kind":"side","node":23899,"targets":[421]},{"channel":"partner","coefficient":1,"kind":"side","node":422,"targets":[421]},{"channel":"u01","coefficient":1,"kind":"side","node":23895,"targets":[422]},{"channel":"w02","coefficient":1,"kind":"side","node":23898,"targets":[422]},{"channel":"partner","coefficient":1,"kind":"side","node":421,"targets":[422]},{"channel":"u01","coefficient":1,"kind":"side","node":23895,"targets":[423]},{"channel":"w02","coefficient":1,"kind":"side","node":23899,"targets":[423]},{"channel":"partner","coefficient":1,"kind":"side","node":420,"targets":[423]},{"channel":"face0","coefficient":1,"kind":"side","node":8508,"targets":[424,425,426,427]},{"channel":"face0","coefficient":1,"kind":"side","node":8971,"targets":[428,429,430,431]},{"channel":"edge12","coefficient":1,"kind":"side","node":23407,"targets":[424,427]},{"channel":"edge12","coefficient":1,"kind":"side","node":23375,"targets":[425,426]},{"channel":"edge12","coefficient":1,"kind":"side","node":23407,"targets":[428,431]},{"channel":"edge12","coefficient":1,"kind":"side","node":23375,"targets":[429,430]},{"channel":"u01","coefficient":1,"kind":"side","node":23900,"targets":[424]},{"channel":"w02","coefficient":1,"kind":"side","node":23904,"targets":[424]},{"channel":"partner","coefficient":1,"kind":"side","node":427,"targets":[424]},{"channel":"u01","coefficient":1,"kind":"side","node":23900,"targets":[425]},{"channel":"w02","coefficient":1,"kind":"side","node":23905,"targets":[425]},{"channel":"partner","coefficient":1,"kind":"side","node":426,"targets":[425]},{"channel":"u01","coefficient":1,"kind":"side","node":23901,"targets":[426]},{"channel":"w02","coefficient":1,"kind":"side","node":23904,"targets":[426]},{"channel":"partner","coefficient":1,"kind":"side","node":425,"targets":[426]},{"channel":"u01","coefficient":1,"kind":"side","node":23901,"targets":[427]},{"channel":"w02","coefficient":1,"kind":"side","node":23905,"targets":[427]},{"channel":"partner","coefficient":1,"kind":"side","node":424,"targets":[427]},{"channel":"u01","coefficient":1,"kind":"side","node":23902,"targets":[428]},{"channel":"w02","coefficient":1,"kind":"side","node":23906,"targets":[428]},{"channel":"partner","coefficient":1,"kind":"side","node":431,"targets":[428]},{"channel":"u01","coefficient":1,"kind":"side","node":23902,"targets":[429]},{"channel":"w02","coefficient":1,"kind":"side","node":23907,"targets":[429]},{"channel":"partner","coefficient":1,"kind":"side","node":430,"targets":[429]},{"channel":"u01","coefficient":1,"kind":"side","node":23903,"targets":[430]},{"channel":"w02","coefficient":1,"kind":"side","node":23906,"targets":[430]},{"channel":"partner","coefficient":1,"kind":"side","node":429,"targets":[430]},{"channel":"u01","coefficient":1,"kind":"side","node":23903,"targets":[431]},{"channel":"w02","coefficient":1,"kind":"side","node":23907,"targets":[431]},{"channel":"partner","coefficient":1,"kind":"side","node":428,"targets":[431]},{"channel":"face0","coefficient":1,"kind":"side","node":8431,"targets":[432,433,434,435]},{"channel":"face0","coefficient":1,"kind":"side","node":8894,"targets":[436,437,438,439]},{"channel":"edge12","coefficient":1,"kind":"side","node":23471,"targets":[432,435]},{"channel":"edge12","coefficient":1,"kind":"side","node":23439,"targets":[433,434]},{"channel":"edge12","coefficient":1,"kind":"side","node":23471,"targets":[436,439]},{"channel":"edge12","coefficient":1,"kind":"side","node":23439,"targets":[437,438]},{"channel":"u01","coefficient":1,"kind":"side","node":23908,"targets":[432]},{"channel":"w02","coefficient":1,"kind":"side","node":23912,"targets":[432]},{"channel":"partner","coefficient":1,"kind":"side","node":435,"targets":[432]},{"channel":"u01","coefficient":1,"kind":"side","node":23908,"targets":[433]},{"channel":"w02","coefficient":1,"kind":"side","node":23913,"targets":[433]},{"channel":"partner","coefficient":1,"kind":"side","node":434,"targets":[433]},{"channel":"u01","coefficient":1,"kind":"side","node":23909,"targets":[434]},{"channel":"w02","coefficient":1,"kind":"side","node":23912,"targets":[434]},{"channel":"partner","coefficient":1,"kind":"side","node":433,"targets":[434]},{"channel":"u01","coefficient":1,"kind":"side","node":23909,"targets":[435]},{"channel":"w02","coefficient":1,"kind":"side","node":23913,"targets":[435]},{"channel":"partner","coefficient":1,"kind":"side","node":432,"targets":[435]},{"channel":"u01","coefficient":1,"kind":"side","node":23910,"targets":[436]},{"channel":"w02","coefficient":1,"kind":"side","node":23914,"targets":[436]},{"channel":"partner","coefficient":1,"kind":"side","node":439,"targets":[436]},{"channel":"u01","coefficient":1,"kind":"side","node":23910,"targets":[437]},{"channel":"w02","coefficient":1,"kind":"side","node":23915,"targets":[437]},{"channel":"partner","coefficient":1,"kind":"side","node":438,"targets":[437]},{"channel":"u01","coefficient":1,"kind":"side","node":23911,"targets":[438]},{"channel":"w02","coefficient":1,"kind":"side","node":23914,"targets":[438]},{"channel":"partner","coefficient":1,"kind":"side","node":437,"targets":[438]},{"channel":"u01","coefficient":1,"kind":"side","node":23911,"targets":[439]},{"channel":"w02","coefficient":1,"kind":"side","node":23915,"targets":[439]},{"channel":"partner","coefficient":1,"kind":"side","node":436,"targets":[439]},{"channel":"face0","coefficient":1,"kind":"side","node":9524,"targets":[440,441,442,443]},{"channel":"face0","coefficient":1,"kind":"side","node":9987,"targets":[444,445,446,447]},{"channel":"edge12","coefficient":1,"kind":"side","node":20654,"targets":[440,443]},{"channel":"edge12","coefficient":1,"kind":"side","node":20622,"targets":[441,442]},{"channel":"edge12","coefficient":1,"kind":"side","node":20654,"targets":[444,447]},{"channel":"edge12","coefficient":1,"kind":"side","node":20622,"targets":[445,446]},{"channel":"u01","coefficient":1,"kind":"side","node":23916,"targets":[440]},{"channel":"w02","coefficient":1,"kind":"side","node":23920,"targets":[440]},{"channel":"partner","coefficient":1,"kind":"side","node":443,"targets":[440]},{"channel":"u01","coefficient":1,"kind":"side","node":23916,"targets":[441]},{"channel":"w02","coefficient":1,"kind":"side","node":23921,"targets":[441]},{"channel":"partner","coefficient":1,"kind":"side","node":442,"targets":[441]},{"channel":"u01","coefficient":1,"kind":"side","node":23917,"targets":[442]},{"channel":"w02","coefficient":1,"kind":"side","node":23920,"targets":[442]},{"channel":"partner","coefficient":1,"kind":"side","node":441,"targets":[442]},{"channel":"u01","coefficient":1,"kind":"side","node":23917,"targets":[443]},{"channel":"w02","coefficient":1,"kind":"side","node":23921,"targets":[443]},{"channel":"partner","coefficient":1,"kind":"side","node":440,"targets":[443]},{"channel":"u01","coefficient":1,"kind":"side","node":23918,"targets":[444]},{"channel":"w02","coefficient":1,"kind":"side","node":23922,"targets":[444]},{"channel":"partner","coefficient":1,"kind":"side","node":447,"targets":[444]},{"channel":"u01","coefficient":1,"kind":"side","node":23918,"targets":[445]},{"channel":"w02","coefficient":1,"kind":"side","node":23923,"targets":[445]},{"channel":"partner","coefficient":1,"kind":"side","node":446,"targets":[445]},{"channel":"u01","coefficient":1,"kind":"side","node":23919,"targets":[446]},{"channel":"w02","coefficient":1,"kind":"side","node":23922,"targets":[446]},{"channel":"partner","coefficient":1,"kind":"side","node":445,"targets":[446]},{"channel":"u01","coefficient":1,"kind":"side","node":23919,"targets":[447]},{"channel":"w02","coefficient":1,"kind":"side","node":23923,"targets":[447]},{"channel":"partner","coefficient":1,"kind":"side","node":444,"targets":[447]},{"channel":"face0","coefficient":1,"kind":"side","node":9445,"targets":[448,449,450,451]},{"channel":"face0","coefficient":1,"kind":"side","node":9908,"targets":[452,453,454,455]},{"channel":"edge12","coefficient":1,"kind":"side","node":20718,"targets":[448,451]},{"channel":"edge12","coefficient":1,"kind":"side","node":20686,"targets":[449,450]},{"channel":"edge12","coefficient":1,"kind":"side","node":20718,"targets":[452,455]},{"channel":"edge12","coefficient":1,"kind":"side","node":20686,"targets":[453,454]},{"channel":"u01","coefficient":1,"kind":"side","node":23924,"targets":[448]},{"channel":"w02","coefficient":1,"kind":"side","node":23928,"targets":[448]},{"channel":"partner","coefficient":1,"kind":"side","node":451,"targets":[448]},{"channel":"u01","coefficient":1,"kind":"side","node":23924,"targets":[449]},{"channel":"w02","coefficient":1,"kind":"side","node":23929,"targets":[449]},{"channel":"partner","coefficient":1,"kind":"side","node":450,"targets":[449]},{"channel":"u01","coefficient":1,"kind":"side","node":23925,"targets":[450]},{"channel":"w02","coefficient":1,"kind":"side","node":23928,"targets":[450]},{"channel":"partner","coefficient":1,"kind":"side","node":449,"targets":[450]},{"channel":"u01","coefficient":1,"kind":"side","node":23925,"targets":[451]},{"channel":"w02","coefficient":1,"kind":"side","node":23929,"targets":[451]},{"channel":"partner","coefficient":1,"kind":"side","node":448,"targets":[451]},{"channel":"u01","coefficient":1,"kind":"side","node":23926,"targets":[452]},{"channel":"w02","coefficient":1,"kind":"side","node":23930,"targets":[452]},{"channel":"partner","coefficient":1,"kind":"side","node":455,"targets":[452]},{"channel":"u01","coefficient":1,"kind":"side","node":23926,"targets":[453]},{"channel":"w02","coefficient":1,"kind":"side","node":23931,"targets":[453]},{"channel":"partner","coefficient":1,"kind":"side","node":454,"targets":[453]},{"channel":"u01","coefficient":1,"kind":"side","node":23927,"targets":[454]},{"channel":"w02","coefficient":1,"kind":"side","node":23930,"targets":[454]},{"channel":"partner","coefficient":1,"kind":"side","node":453,"targets":[454]},{"channel":"u01","coefficient":1,"kind":"side","node":23927,"targets":[455]},{"channel":"w02","coefficient":1,"kind":"side","node":23931,"targets":[455]},{"channel":"partner","coefficient":1,"kind":"side","node":452,"targets":[455]},{"channel":"face0","coefficient":1,"kind":"side","node":9409,"targets":[456,457,458,459]},{"channel":"face0","coefficient":1,"kind":"side","node":9872,"targets":[460,461,462,463]},{"channel":"edge12","coefficient":1,"kind":"side","node":20782,"targets":[456,459]},{"channel":"edge12","coefficient":1,"kind":"side","node":20750,"targets":[457,458]},{"channel":"edge12","coefficient":1,"kind":"side","node":20782,"targets":[460,463]},{"channel":"edge12","coefficient":1,"kind":"side","node":20750,"targets":[461,462]},{"channel":"u01","coefficient":1,"kind":"side","node":23932,"targets":[456]},{"channel":"w02","coefficient":1,"kind":"side","node":23936,"targets":[456]},{"channel":"partner","coefficient":1,"kind":"side","node":459,"targets":[456]},{"channel":"u01","coefficient":1,"kind":"side","node":23932,"targets":[457]},{"channel":"w02","coefficient":1,"kind":"side","node":23937,"targets":[457]},{"channel":"partner","coefficient":1,"kind":"side","node":458,"targets":[457]},{"channel":"u01","coefficient":1,"kind":"side","node":23933,"targets":[458]},{"channel":"w02","coefficient":1,"kind":"side","node":23936,"targets":[458]},{"channel":"partner","coefficient":1,"kind":"side","node":457,"targets":[458]},{"channel":"u01","coefficient":1,"kind":"side","node":23933,"targets":[459]},{"channel":"w02","coefficient":1,"kind":"side","node":23937,"targets":[459]},{"channel":"partner","coefficient":1,"kind":"side","node":456,"targets":[459]},{"channel":"u01","coefficient":1,"kind":"side","node":23934,"targets":[460]},{"channel":"w02","coefficient":1,"kind":"side","node":23938,"targets":[460]},{"channel":"partner","coefficient":1,"kind":"side","node":463,"targets":[460]},{"channel":"u01","coefficient":1,"kind":"side","node":23934,"targets":[461]},{"channel":"w02","coefficient":1,"kind":"side","node":23939,"targets":[461]},{"channel":"partner","coefficient":1,"kind":"side","node":462,"targets":[461]},{"channel":"u01","coefficient":1,"kind":"side","node":23935,"targets":[462]},{"channel":"w02","coefficient":1,"kind":"side","node":23938,"targets":[462]},{"channel":"partner","coefficient":1,"kind":"side","node":461,"targets":[462]},{"channel":"u01","coefficient":1,"kind":"side","node":23935,"targets":[463]},{"channel":"w02","coefficient":1,"kind":"side","node":23939,"targets":[463]},{"channel":"partner","coefficient":1,"kind":"side","node":460,"targets":[463]},{"channel":"face0","coefficient":1,"kind":"side","node":9430,"targets":[464,465,466,467]},{"channel":"face0","coefficient":1,"kind":"side","node":9893,"targets":[468,469,470,471]},{"channel":"edge12","coefficient":1,"kind":"side","node":20846,"targets":[464,467]},{"channel":"edge12","coefficient":1,"kind":"side","node":20814,"targets":[465,466]},{"channel":"edge12","coefficient":1,"kind":"side","node":20846,"targets":[468,471]},{"channel":"edge12","coefficient":1,"kind":"side","node":20814,"targets":[469,470]},{"channel":"u01","coefficient":1,"kind":"side","node":23940,"targets":[464]},{"channel":"w02","coefficient":1,"kind":"side","node":23944,"targets":[464]},{"channel":"partner","coefficient":1,"kind":"side","node":467,"targets":[464]},{"channel":"u01","coefficient":1,"kind":"side","node":23940,"targets":[465]},{"channel":"w02","coefficient":1,"kind":"side","node":23945,"targets":[465]},{"channel":"partner","coefficient":1,"kind":"side","node":466,"targets":[465]},{"channel":"u01","coefficient":1,"kind":"side","node":23941,"targets":[466]},{"channel":"w02","coefficient":1,"kind":"side","node":23944,"targets":[466]},{"channel":"partner","coefficient":1,"kind":"side","node":465,"targets":[466]},{"channel":"u01","coefficient":1,"kind":"side","node":23941,"targets":[467]},{"channel":"w02","coefficient":1,"kind":"side","node":23945,"targets":[467]},{"channel":"partner","coefficient":1,"kind":"side","node":464,"targets":[467]},{"channel":"u01","coefficient":1,"kind":"side","node":23942,"targets":[468]},{"channel":"w02","coefficient":1,"kind":"side","node":23946,"targets":[468]},{"channel":"partner","coefficient":1,"kind":"side","node":471,"targets":[468]},{"channel":"u01","coefficient":1,"kind":"side","node":23942,"targets":[469]},{"channel":"w02","coefficient":1,"kind":"side","node":23947,"targets":[469]},{"channel":"partner","coefficient":1,"kind":"side","node":470,"targets":[469]},{"channel":"u01","coefficient":1,"kind":"side","node":23943,"targets":[470]},{"channel":"w02","coefficient":1,"kind":"side","node":23946,"targets":[470]},{"channel":"partner","coefficient":1,"kind":"side","node":469,"targets":[470]},{"channel":"u01","coefficient":1,"kind":"side","node":23943,"targets":[471]},{"channel":"w02","coefficient":1,"kind":"side","node":23947,"targets":[471]},{"channel":"partner","coefficient":1,"kind":"side","node":468,"targets":[471]},{"channel":"face0","coefficient":1,"kind":"side","node":9412,"targets":[472,473,474,475]},{"channel":"face0","coefficient":1,"kind":"side","node":9875,"targets":[476,477,478,479]},{"channel":"edge12","coefficient":1,"kind":"side","node":20910,"targets":[472,475]},{"channel":"edge12","coefficient":1,"kind":"side","node":20878,"targets":[473,474]},{"channel":"edge12","coefficient":1,"kind":"side","node":20910,"targets":[476,479]},{"channel":"edge12","coefficient":1,"kind":"side","node":20878,"targets":[477,478]},{"channel":"u01","coefficient":1,"kind":"side","node":23948,"targets":[472]},{"channel":"w02","coefficient":1,"kind":"side","node":23952,"targets":[472]},{"channel":"partner","coefficient":1,"kind":"side","node":475,"targets":[472]},{"channel":"u01","coefficient":1,"kind":"side","node":23948,"targets":[473]},{"channel":"w02","coefficient":1,"kind":"side","node":23953,"targets":[473]},{"channel":"partner","coefficient":1,"kind":"side","node":474,"targets":[473]},{"channel":"u01","coefficient":1,"kind":"side","node":23949,"targets":[474]},{"channel":"w02","coefficient":1,"kind":"side","node":23952,"targets":[474]},{"channel":"partner","coefficient":1,"kind":"side","node":473,"targets":[474]},{"channel":"u01","coefficient":1,"kind":"side","node":23949,"targets":[475]},{"channel":"w02","coefficient":1,"kind":"side","node":23953,"targets":[475]},{"channel":"partner","coefficient":1,"kind":"side","node":472,"targets":[475]},{"channel":"u01","coefficient":1,"kind":"side","node":23950,"targets":[476]},{"channel":"w02","coefficient":1,"kind":"side","node":23954,"targets":[476]},{"channel":"partner","coefficient":1,"kind":"side","node":479,"targets":[476]},{"channel":"u01","coefficient":1,"kind":"side","node":23950,"targets":[477]},{"channel":"w02","coefficient":1,"kind":"side","node":23955,"targets":[477]},{"channel":"partner","coefficient":1,"kind":"side","node":478,"targets":[477]},{"channel":"u01","coefficient":1,"kind":"side","node":23951,"targets":[478]},{"channel":"w02","coefficient":1,"kind":"side","node":23954,"targets":[478]},{"channel":"partner","coefficient":1,"kind":"side","node":477,"targets":[478]},{"channel":"u01","coefficient":1,"kind":"side","node":23951,"targets":[479]},{"channel":"w02","coefficient":1,"kind":"side","node":23955,"targets":[479]},{"channel":"partner","coefficient":1,"kind":"side","node":476,"targets":[479]},{"channel":"face0","coefficient":1,"kind":"side","node":9426,"targets":[480,481,482,483]},{"channel":"face0","coefficient":1,"kind":"side","node":9889,"targets":[484,485,486,487]},{"channel":"edge12","coefficient":1,"kind":"side","node":20974,"targets":[480,483]},{"channel":"edge12","coefficient":1,"kind":"side","node":20942,"targets":[481,482]},{"channel":"edge12","coefficient":1,"kind":"side","node":20974,"targets":[484,487]},{"channel":"edge12","coefficient":1,"kind":"side","node":20942,"targets":[485,486]},{"channel":"u01","coefficient":1,"kind":"side","node":23956,"targets":[480]},{"channel":"w02","coefficient":1,"kind":"side","node":23960,"targets":[480]},{"channel":"partner","coefficient":1,"kind":"side","node":483,"targets":[480]},{"channel":"u01","coefficient":1,"kind":"side","node":23956,"targets":[481]},{"channel":"w02","coefficient":1,"kind":"side","node":23961,"targets":[481]},{"channel":"partner","coefficient":1,"kind":"side","node":482,"targets":[481]},{"channel":"u01","coefficient":1,"kind":"side","node":23957,"targets":[482]},{"channel":"w02","coefficient":1,"kind":"side","node":23960,"targets":[482]},{"channel":"partner","coefficient":1,"kind":"side","node":481,"targets":[482]},{"channel":"u01","coefficient":1,"kind":"side","node":23957,"targets":[483]},{"channel":"w02","coefficient":1,"kind":"side","node":23961,"targets":[483]},{"channel":"partner","coefficient":1,"kind":"side","node":480,"targets":[483]},{"channel":"u01","coefficient":1,"kind":"side","node":23958,"targets":[484]},{"channel":"w02","coefficient":1,"kind":"side","node":23962,"targets":[484]},{"channel":"partner","coefficient":1,"kind":"side","node":487,"targets":[484]},{"channel":"u01","coefficient":1,"kind":"side","node":23958,"targets":[485]},{"channel":"w02","coefficient":1,"kind":"side","node":23963,"targets":[485]},{"channel":"partner","coefficient":1,"kind":"side","node":486,"targets":[485]},{"channel":"u01","coefficient":1,"kind":"side","node":23959,"targets":[486]},{"channel":"w02","coefficient":1,"kind":"side","node":23962,"targets":[486]},{"channel":"partner","coefficient":1,"kind":"side","node":485,"targets":[486]},{"channel":"u01","coefficient":1,"kind":"side","node":23959,"targets":[487]},{"channel":"w02","coefficient":1,"kind":"side","node":23963,"targets":[487]},{"channel":"partner","coefficient":1,"kind":"side","node":484,"targets":[487]},{"channel":"face0","coefficient":1,"kind":"side","node":9300,"targets":[488,489,490,491]},{"channel":"face0","coefficient":1,"kind":"side","node":9763,"targets":[492,493,494,495]},{"channel":"edge12","coefficient":1,"kind":"side","node":21038,"targets":[488,491]},{"channel":"edge12","coefficient":1,"kind":"side","node":21006,"targets":[489,490]},{"channel":"edge12","coefficient":1,"kind":"side","node":21038,"targets":[492,495]},{"channel":"edge12","coefficient":1,"kind":"side","node":21006,"targets":[493,494]},{"channel":"u01","coefficient":1,"kind":"side","node":23964,"targets":[488]},{"channel":"w02","coefficient":1,"kind":"side","node":23968,"targets":[488]},{"channel":"partner","coefficient":1,"kind":"side","node":491,"targets":[488]},{"channel":"u01","coefficient":1,"kind":"side","node":23964,"targets":[489]},{"channel":"w02","coefficient":1,"kind":"side","node":23969,"targets":[489]},{"channel":"partner","coefficient":1,"kind":"side","node":490,"targets":[489]},{"channel":"u01","coefficient":1,"kind":"side","node":23965,"targets":[490]},{"channel":"w02","coefficient":1,"kind":"side","node":23968,"targets":[490]},{"channel":"partner","coefficient":1,"kind":"side","node":489,"targets":[490]},{"channel":"u01","coefficient":1,"kind":"side","node":23965,"targets":[491]},{"channel":"w02","coefficient":1,"kind":"side","node":23969,"targets":[491]},{"channel":"partner","coefficient":1,"kind":"side","node":488,"targets":[491]},{"channel":"u01","coefficient":1,"kind":"side","node":23966,"targets":[492]},{"channel":"w02","coefficient":1,"kind":"side","node":23970,"targets":[492]},{"channel":"partner","coefficient":1,"kind":"side","node":495,"targets":[492]},{"channel":"u01","coefficient":1,"kind":"side","node":23966,"targets":[493]},{"channel":"w02","coefficient":1,"kind":"side","node":23971,"targets":[493]},{"channel":"partner","coefficient":1,"kind":"side","node":494,"targets":[493]},{"channel":"u01","coefficient":1,"kind":"side","node":23967,"targets":[494]},{"channel":"w02","coefficient":1,"kind":"side","node":23970,"targets":[494]},{"channel":"partner","coefficient":1,"kind":"side","node":493,"targets":[494]},{"channel":"u01","coefficient":1,"kind":"side","node":23967,"targets":[495]},{"channel":"w02","coefficient":1,"kind":"side","node":23971,"targets":[495]},{"channel":"partner","coefficient":1,"kind":"side","node":492,"targets":[495]},{"channel":"face0","coefficient":1,"kind":"side","node":9518,"targets":[496,497,498,499]},{"channel":"face0","coefficient":1,"kind":"side","node":9981,"targets":[500,501,502,503]},{"channel":"edge12","coefficient":1,"kind":"side","node":21102,"targets":[496,499]},{"channel":"edge12","coefficient":1,"kind":"side","node":21070,"targets":[497,498]},{"channel":"edge12","coefficient":1,"kind":"side","node":21102,"targets":[500,503]},{"channel":"edge12","coefficient":1,"kind":"side","node":21070,"targets":[501,502]},{"channel":"u01","coefficient":1,"kind":"side","node":23972,"targets":[496]},{"channel":"w02","coefficient":1,"kind":"side","node":23976,"targets":[496]},{"channel":"partner","coefficient":1,"kind":"side","node":499,"targets":[496]},{"channel":"u01","coefficient":1,"kind":"side","node":23972,"targets":[497]},{"channel":"w02","coefficient":1,"kind":"side","node":23977,"targets":[497]},{"channel":"partner","coefficient":1,"kind":"side","node":498,"targets":[497]},{"channel":"u01","coefficient":1,"kind":"side","node":23973,"targets":[498]},{"channel":"w02","coefficient":1,"kind":"side","node":23976,"targets":[498]},{"channel":"partner","coefficient":1,"kind":"side","node":497,"targets":[498]},{"channel":"u01","coefficient":1,"kind":"side","node":23973,"targets":[499]},{"channel":"w02","coefficient":1,"kind":"side","node":23977,"targets":[499]},{"channel":"partner","coefficient":1,"kind":"side","node":496,"targets":[499]},{"channel":"u01","coefficient":1,"kind":"side","node":23974,"targets":[500]},{"channel":"w02","coefficient":1,"kind":"side","node":23978,"targets":[500]},{"channel":"partner","coefficient":1,"kind":"side","node":503,"targets":[500]},{"channel":"u01","coefficient":1,"kind":"side","node":23974,"targets":[501]},{"channel":"w02","coefficient":1,"kind":"side","node":23979,"targets":[501]},{"channel":"partner","coefficient":1,"kind":"side","node":502,"targets":[501]},{"channel":"u01","coefficient":1,"kind":"side","node":23975,"targets":[502]},{"channel":"w02","coefficient":1,"kind":"side","node":23978,"targets":[502]},{"channel":"partner","coefficient":1,"kind":"side","node":501,"targets":[502]},{"channel":"u01","coefficient":1,"kind":"side","node":23975,"targets":[503]},{"channel":"w02","coefficient":1,"kind":"side","node":23979,"targets":[503]},{"channel":"partner","coefficient":1,"kind":"side","node":500,"targets":[503]},{"channel":"face0","coefficient":1,"kind":"side","node":9301,"targets":[504,505,506,507]},{"channel":"face0","coefficient":1,"kind":"side","node":9764,"targets":[508,509,510,511]},{"channel":"edge12","coefficient":1,"kind":"side","node":21166,"targets":[504,507]},{"channel":"edge12","coefficient":1,"kind":"side","node":21134,"targets":[505,506]},{"channel":"edge12","coefficient":1,"kind":"side","node":21166,"targets":[508,511]},{"channel":"edge12","coefficient":1,"kind":"side","node":21134,"targets":[509,510]},{"channel":"u01","coefficient":1,"kind":"side","node":23980,"targets":[504]},{"channel":"w02","coefficient":1,"kind":"side","node":23984,"targets":[504]},{"channel":"partner","coefficient":1,"kind":"side","node":507,"targets":[504]},{"channel":"u01","coefficient":1,"kind":"side","node":23980,"targets":[505]},{"channel":"w02","coefficient":1,"kind":"side","node":23985,"targets":[505]},{"channel":"partner","coefficient":1,"kind":"side","node":506,"targets":[505]},{"channel":"u01","coefficient":1,"kind":"side","node":23981,"targets":[506]},{"channel":"w02","coefficient":1,"kind":"side","node":23984,"targets":[506]},{"channel":"partner","coefficient":1,"kind":"side","node":505,"targets":[506]},{"channel":"u01","coefficient":1,"kind":"side","node":23981,"targets":[507]},{"channel":"w02","coefficient":1,"kind":"side","node":23985,"targets":[507]},{"channel":"partner","coefficient":1,"kind":"side","node":504,"targets":[507]},{"channel":"u01","coefficient":1,"kind":"side","node":23982,"targets":[508]},{"channel":"w02","coefficient":1,"kind":"side","node":23986,"targets":[508]},{"channel":"partner","coefficient":1,"kind":"side","node":511,"targets":[508]},{"channel":"u01","coefficient":1,"kind":"side","node":23982,"targets":[509]},{"channel":"w02","coefficient":1,"kind":"side","node":23987,"targets":[509]},{"channel":"partner","coefficient":1,"kind":"side","node":510,"targets":[509]},{"channel":"u01","coefficient":1,"kind":"side","node":23983,"targets":[510]},{"channel":"w02","coefficient":1,"kind":"side","node":23986,"targets":[510]},{"channel":"partner","coefficient":1,"kind":"side","node":509,"targets":[510]},{"channel":"u01","coefficient":1,"kind":"side","node":23983,"targets":[511]},{"channel":"w02","coefficient":1,"kind":"side","node":23987,"targets":[511]},{"channel":"partner","coefficient":1,"kind":"side","node":508,"targets":[511]},{"channel":"face0","coefficient":1,"kind":"side","node":9482,"targets":[512,513,514,515]},{"channel":"face0","coefficient":1,"kind":"side","node":9945,"targets":[516,517,518,519]},{"channel":"edge12","coefficient":1,"kind":"side","node":21230,"targets":[512,515]},{"channel":"edge12","coefficient":1,"kind":"side","node":21198,"targets":[513,514]},{"channel":"edge12","coefficient":1,"kind":"side","node":21230,"targets":[516,519]},{"channel":"edge12","coefficient":1,"kind":"side","node":21198,"targets":[517,518]},{"channel":"u01","coefficient":1,"kind":"side","node":23988,"targets":[512]},{"channel":"w02","coefficient":1,"kind":"side","node":23992,"targets":[512]},{"channel":"partner","coefficient":1,"kind":"side","node":515,"targets":[512]},{"channel":"u01","coefficient":1,"kind":"side","node":23988,"targets":[513]},{"channel":"w02","coefficient":1,"kind":"side","node":23993,"targets":[513]},{"channel":"partner","coefficient":1,"kind":"side","node":514,"targets":[513]},{"channel":"u01","coefficient":1,"kind":"side","node":23989,"targets":[514]},{"channel":"w02","coefficient":1,"kind":"side","node":23992,"targets":[514]},{"channel":"partner","coefficient":1,"kind":"side","node":513,"targets":[514]},{"channel":"u01","coefficient":1,"kind":"side","node":23989,"targets":[515]},{"channel":"w02","coefficient":1,"kind":"side","node":23993,"targets":[515]},{"channel":"partner","coefficient":1,"kind":"side","node":512,"targets":[515]},{"channel":"u01","coefficient":1,"kind":"side","node":23990,"targets":[516]},{"channel":"w02","coefficient":1,"kind":"side","node":23994,"targets":[516]},{"channel":"partner","coefficient":1,"kind":"side","node":519,"targets":[516]},{"channel":"u01","coefficient":1,"kind":"side","node":23990,"targets":[517]},{"channel":"w02","coefficient":1,"kind":"side","node":23995,"targets":[517]},{"channel":"partner","coefficient":1,"kind":"side","node":518,"targets":[517]},{"channel":"u01","coefficient":1,"kind":"side","node":23991,"targets":[518]},{"channel":"w02","coefficient":1,"kind":"side","node":23994,"targets":[518]},{"channel":"partner","coefficient":1,"kind":"side","node":517,"targets":[518]},{"channel":"u01","coefficient":1,"kind":"side","node":23991,"targets":[519]},{"channel":"w02","coefficient":1,"kind":"side","node":23995,"targets":[519]},{"channel":"partner","coefficient":1,"kind":"side","node":516,"targets":[519]},{"channel":"face0","coefficient":1,"kind":"side","node":9512,"targets":[520,521,522,523]},{"channel":"face0","coefficient":1,"kind":"side","node":9975,"targets":[524,525,526,527]},{"channel":"edge12","coefficient":1,"kind":"side","node":21294,"targets":[520,523]},{"channel":"edge12","coefficient":1,"kind":"side","node":21262,"targets":[521,522]},{"channel":"edge12","coefficient":1,"kind":"side","node":21294,"targets":[524,527]},{"channel":"edge12","coefficient":1,"kind":"side","node":21262,"targets":[525,526]},{"channel":"u01","coefficient":1,"kind":"side","node":23996,"targets":[520]},{"channel":"w02","coefficient":1,"kind":"side","node":24000,"targets":[520]},{"channel":"partner","coefficient":1,"kind":"side","node":523,"targets":[520]},{"channel":"u01","coefficient":1,"kind":"side","node":23996,"targets":[521]},{"channel":"w02","coefficient":1,"kind":"side","node":24001,"targets":[521]},{"channel":"partner","coefficient":1,"kind":"side","node":522,"targets":[521]},{"channel":"u01","coefficient":1,"kind":"side","node":23997,"targets":[522]},{"channel":"w02","coefficient":1,"kind":"side","node":24000,"targets":[522]},{"channel":"partner","coefficient":1,"kind":"side","node":521,"targets":[522]},{"channel":"u01","coefficient":1,"kind":"side","node":23997,"targets":[523]},{"channel":"w02","coefficient":1,"kind":"side","node":24001,"targets":[523]},{"channel":"partner","coefficient":1,"kind":"side","node":520,"targets":[523]},{"channel":"u01","coefficient":1,"kind":"side","node":23998,"targets":[524]},{"channel":"w02","coefficient":1,"kind":"side","node":24002,"targets":[524]},{"channel":"partner","coefficient":1,"kind":"side","node":527,"targets":[524]},{"channel":"u01","coefficient":1,"kind":"side","node":23998,"targets":[525]},{"channel":"w02","coefficient":1,"kind":"side","node":24003,"targets":[525]},{"channel":"partner","coefficient":1,"kind":"side","node":526,"targets":[525]},{"channel":"u01","coefficient":1,"kind":"side","node":23999,"targets":[526]},{"channel":"w02","coefficient":1,"kind":"side","node":24002,"targets":[526]},{"channel":"partner","coefficient":1,"kind":"side","node":525,"targets":[526]},{"channel":"u01","coefficient":1,"kind":"side","node":23999,"targets":[527]},{"channel":"w02","coefficient":1,"kind":"side","node":24003,"targets":[527]},{"channel":"partner","coefficient":1,"kind":"side","node":524,"targets":[527]},{"channel":"face0","coefficient":1,"kind":"side","node":9506,"targets":[528,529,530,531]},{"channel":"face0","coefficient":1,"kind":"side","node":9969,"targets":[532,533,534,535]},{"channel":"edge12","coefficient":1,"kind":"side","node":21358,"targets":[528,531]},{"channel":"edge12","coefficient":1,"kind":"side","node":21326,"targets":[529,530]},{"channel":"edge12","coefficient":1,"kind":"side","node":21358,"targets":[532,535]},{"channel":"edge12","coefficient":1,"kind":"side","node":21326,"targets":[533,534]},{"channel":"u01","coefficient":1,"kind":"side","node":24004,"targets":[528]},{"channel":"w02","coefficient":1,"kind":"side","node":24008,"targets":[528]},{"channel":"partner","coefficient":1,"kind":"side","node":531,"targets":[528]},{"channel":"u01","coefficient":1,"kind":"side","node":24004,"targets":[529]},{"channel":"w02","coefficient":1,"kind":"side","node":24009,"targets":[529]},{"channel":"partner","coefficient":1,"kind":"side","node":530,"targets":[529]},{"channel":"u01","coefficient":1,"kind":"side","node":24005,"targets":[530]},{"channel":"w02","coefficient":1,"kind":"side","node":24008,"targets":[530]},{"channel":"partner","coefficient":1,"kind":"side","node":529,"targets":[530]},{"channel":"u01","coefficient":1,"kind":"side","node":24005,"targets":[531]},{"channel":"w02","coefficient":1,"kind":"side","node":24009,"targets":[531]},{"channel":"partner","coefficient":1,"kind":"side","node":528,"targets":[531]},{"channel":"u01","coefficient":1,"kind":"side","node":24006,"targets":[532]},{"channel":"w02","coefficient":1,"kind":"side","node":24010,"targets":[532]},{"channel":"partner","coefficient":1,"kind":"side","node":535,"targets":[532]},{"channel":"u01","coefficient":1,"kind":"side","node":24006,"targets":[533]},{"channel":"w02","coefficient":1,"kind":"side","node":24011,"targets":[533]},{"channel":"partner","coefficient":1,"kind":"side","node":534,"targets":[533]},{"channel":"u01","coefficient":1,"kind":"side","node":24007,"targets":[534]},{"channel":"w02","coefficient":1,"kind":"side","node":24010,"targets":[534]},{"channel":"partner","coefficient":1,"kind":"side","node":533,"targets":[534]},{"channel":"u01","coefficient":1,"kind":"side","node":24007,"targets":[535]},{"channel":"w02","coefficient":1,"kind":"side","node":24011,"targets":[535]},{"channel":"partner","coefficient":1,"kind":"side","node":532,"targets":[535]},{"channel":"face0","coefficient":1,"kind":"side","node":9476,"targets":[536,537,538,539]},{"channel":"face0","coefficient":1,"kind":"side","node":9939,"targets":[540,541,542,543]},{"channel":"edge12","coefficient":1,"kind":"side","node":21422,"targets":[536,539]},{"channel":"edge12","coefficient":1,"kind":"side","node":21390,"targets":[537,538]},{"channel":"edge12","coefficient":1,"kind":"side","node":21422,"targets":[540,543]},{"channel":"edge12","coefficient":1,"kind":"side","node":21390,"targets":[541,542]},{"channel":"u01","coefficient":1,"kind":"side","node":24012,"targets":[536]},{"channel":"w02","coefficient":1,"kind":"side","node":24016,"targets":[536]},{"channel":"partner","coefficient":1,"kind":"side","node":539,"targets":[536]},{"channel":"u01","coefficient":1,"kind":"side","node":24012,"targets":[537]},{"channel":"w02","coefficient":1,"kind":"side","node":24017,"targets":[537]},{"channel":"partner","coefficient":1,"kind":"side","node":538,"targets":[537]},{"channel":"u01","coefficient":1,"kind":"side","node":24013,"targets":[538]},{"channel":"w02","coefficient":1,"kind":"side","node":24016,"targets":[538]},{"channel":"partner","coefficient":1,"kind":"side","node":537,"targets":[538]},{"channel":"u01","coefficient":1,"kind":"side","node":24013,"targets":[539]},{"channel":"w02","coefficient":1,"kind":"side","node":24017,"targets":[539]},{"channel":"partner","coefficient":1,"kind":"side","node":536,"targets":[539]},{"channel":"u01","coefficient":1,"kind":"side","node":24014,"targets":[540]},{"channel":"w02","coefficient":1,"kind":"side","node":24018,"targets":[540]},{"channel":"partner","coefficient":1,"kind":"side","node":543,"targets":[540]},{"channel":"u01","coefficient":1,"kind":"side","node":24014,"targets":[541]},{"channel":"w02","coefficient":1,"kind":"side","node":24019,"targets":[541]},{"channel":"partner","coefficient":1,"kind":"side","node":542,"targets":[541]},{"channel":"u01","coefficient":1,"kind":"side","node":24015,"targets":[542]},{"channel":"w02","coefficient":1,"kind":"side","node":24018,"targets":[542]},{"channel":"partner","coefficient":1,"kind":"side","node":541,"targets":[542]},{"channel":"u01","coefficient":1,"kind":"side","node":24015,"targets":[543]},{"channel":"w02","coefficient":1,"kind":"side","node":24019,"targets":[543]},{"channel":"partner","coefficient":1,"kind":"side","node":540,"targets":[543]},{"channel":"face0","coefficient":1,"kind":"side","node":9488,"targets":[544,545,546,547]},{"channel":"face0","coefficient":1,"kind":"side","node":9951,"targets":[548,549,550,551]},{"channel":"edge12","coefficient":1,"kind":"side","node":21486,"targets":[544,547]},{"channel":"edge12","coefficient":1,"kind":"side","node":21454,"targets":[545,546]},{"channel":"edge12","coefficient":1,"kind":"side","node":21486,"targets":[548,551]},{"channel":"edge12","coefficient":1,"kind":"side","node":21454,"targets":[549,550]},{"channel":"u01","coefficient":1,"kind":"side","node":24020,"targets":[544]},{"channel":"w02","coefficient":1,"kind":"side","node":24024,"targets":[544]},{"channel":"partner","coefficient":1,"kind":"side","node":547,"targets":[544]},{"channel":"u01","coefficient":1,"kind":"side","node":24020,"targets":[545]},{"channel":"w02","coefficient":1,"kind":"side","node":24025,"targets":[545]},{"channel":"partner","coefficient":1,"kind":"side","node":546,"targets":[545]},{"channel":"u01","coefficient":1,"kind":"side","node":24021,"targets":[546]},{"channel":"w02","coefficient":1,"kind":"side","node":24024,"targets":[546]},{"channel":"partner","coefficient":1,"kind":"side","node":545,"targets":[546]},{"channel":"u01","coefficient":1,"kind":"side","node":24021,"targets":[547]},{"channel":"w02","coefficient":1,"kind":"side","node":24025,"targets":[547]},{"channel":"partner","coefficient":1,"kind":"side","node":544,"targets":[547]},{"channel":"u01","coefficient":1,"kind":"side","node":24022,"targets":[548]},{"channel":"w02","coefficient":1,"kind":"side","node":24026,"targets":[548]},{"channel":"partner","coefficient":1,"kind":"side","node":551,"targets":[548]},{"channel":"u01","coefficient":1,"kind":"side","node":24022,"targets":[549]},{"channel":"w02","coefficient":1,"kind":"side","node":24027,"targets":[549]},{"channel":"partner","coefficient":1,"kind":"side","node":550,"targets":[549]},{"channel":"u01","coefficient":1,"kind":"side","node":24023,"targets":[550]},{"channel":"w02","coefficient":1,"kind":"side","node":24026,"targets":[550]},{"channel":"partner","coefficient":1,"kind":"side","node":549,"targets":[550]},{"channel":"u01","coefficient":1,"kind":"side","node":24023,"targets":[551]},{"channel":"w02","coefficient":1,"kind":"side","node":24027,"targets":[551]},{"channel":"partner","coefficient":1,"kind":"side","node":548,"targets":[551]},{"channel":"face0","coefficient":1,"kind":"side","node":9505,"targets":[552,553,554,555]},{"channel":"face0","coefficient":1,"kind":"side","node":9968,"targets":[556,557,558,559]},{"channel":"edge12","coefficient":1,"kind":"side","node":21550,"targets":[552,555]},{"channel":"edge12","coefficient":1,"kind":"side","node":21518,"targets":[553,554]},{"channel":"edge12","coefficient":1,"kind":"side","node":21550,"targets":[556,559]},{"channel":"edge12","coefficient":1,"kind":"side","node":21518,"targets":[557,558]},{"channel":"u01","coefficient":1,"kind":"side","node":24028,"targets":[552]},{"channel":"w02","coefficient":1,"kind":"side","node":24032,"targets":[552]},{"channel":"partner","coefficient":1,"kind":"side","node":555,"targets":[552]},{"channel":"u01","coefficient":1,"kind":"side","node":24028,"targets":[553]},{"channel":"w02","coefficient":1,"kind":"side","node":24033,"targets":[553]},{"channel":"partner","coefficient":1,"kind":"side","node":554,"targets":[553]},{"channel":"u01","coefficient":1,"kind":"side","node":24029,"targets":[554]},{"channel":"w02","coefficient":1,"kind":"side","node":24032,"targets":[554]},{"channel":"partner","coefficient":1,"kind":"side","node":553,"targets":[554]},{"channel":"u01","coefficient":1,"kind":"side","node":24029,"targets":[555]},{"channel":"w02","coefficient":1,"kind":"side","node":24033,"targets":[555]},{"channel":"partner","coefficient":1,"kind":"side","node":552,"targets":[555]},{"channel":"u01","coefficient":1,"kind":"side","node":24030,"targets":[556]},{"channel":"w02","coefficient":1,"kind":"side","node":24034,"targets":[556]},{"channel":"partner","coefficient":1,"kind":"side","node":559,"targets":[556]},{"channel":"u01","coefficient":1,"kind":"side","node":24030,"targets":[557]},{"channel":"w02","coefficient":1,"kind":"side","node":24035,"targets":[557]},{"channel":"partner","coefficient":1,"kind":"side","node":558,"targets":[557]},{"channel":"u01","coefficient":1,"kind":"side","node":24031,"targets":[558]},{"channel":"w02","coefficient":1,"kind":"side","node":24034,"targets":[558]},{"channel":"partner","coefficient":1,"kind":"side","node":557,"targets":[558]},{"channel":"u01","coefficient":1,"kind":"side","node":24031,"targets":[559]},{"channel":"w02","coefficient":1,"kind":"side","node":24035,"targets":[559]},{"channel":"partner","coefficient":1,"kind":"side","node":556,"targets":[559]},{"channel":"face0","coefficient":1,"kind":"side","node":9387,"targets":[560,561,562,563]},{"channel":"face0","coefficient":1,"kind":"side","node":9850,"targets":[564,565,566,567]},{"channel":"edge12","coefficient":1,"kind":"side","node":21614,"targets":[560,563]},{"channel":"edge12","coefficient":1,"kind":"side","node":21582,"targets":[561,562]},{"channel":"edge12","coefficient":1,"kind":"side","node":21614,"targets":[564,567]},{"channel":"edge12","coefficient":1,"kind":"side","node":21582,"targets":[565,566]},{"channel":"u01","coefficient":1,"kind":"side","node":24036,"targets":[560]},{"channel":"w02","coefficient":1,"kind":"side","node":24040,"targets":[560]},{"channel":"partner","coefficient":1,"kind":"side","node":563,"targets":[560]},{"channel":"u01","coefficient":1,"kind":"side","node":24036,"targets":[561]},{"channel":"w02","coefficient":1,"kind":"side","node":24041,"targets":[561]},{"channel":"partner","coefficient":1,"kind":"side","node":562,"targets":[561]},{"channel":"u01","coefficient":1,"kind":"side","node":24037,"targets":[562]},{"channel":"w02","coefficient":1,"kind":"side","node":24040,"targets":[562]},{"channel":"partner","coefficient":1,"kind":"side","node":561,"targets":[562]},{"channel":"u01","coefficient":1,"kind":"side","node":24037,"targets":[563]},{"channel":"w02","coefficient":1,"kind":"side","node":24041,"targets":[563]},{"channel":"partner","coefficient":1,"kind":"side","node":560,"targets":[563]},{"channel":"u01","coefficient":1,"kind":"side","node":24038,"targets":[564]},{"channel":"w02","coefficient":1,"kind":"side","node":24042,"targets":[564]},{"channel":"partner","coefficient":1,"kind":"side","node":567,"targets":[564]},{"channel":"u01","coefficient":1,"kind":"side","node":24038,"targets":[565]},{"channel":"w02","coefficient":1,"kind":"side","node":24043,"targets":[565]},{"channel":"partner","coefficient":1,"kind":"side","node":566,"targets":[565]},{"channel":"u01","coefficient":1,"kind":"side","node":24039,"targets":[566]},{"channel":"w02","coefficient":1,"kind":"side","node":24042,"targets":[566]},{"channel":"partner","coefficient":1,"kind":"side","node":565,"targets":[566]},{"channel":"u01","coefficient":1,"kind":"side","node":24039,"targets":[567]},{"channel":"w02","coefficient":1,"kind":"side","node":24043,"targets":[567]},{"channel":"partner","coefficient":1,"kind":"side","node":564,"targets":[567]},{"channel":"face0","coefficient":1,"kind":"side","node":9404,"targets":[568,569,570,571]},{"channel":"face0","coefficient":1,"kind":"side","node":9867,"targets":[572,573,574,575]},{"channel":"edge12","coefficient":1,"kind":"side","node":21678,"targets":[568,571]},{"channel":"edge12","coefficient":1,"kind":"side","node":21646,"targets":[569,570]},{"channel":"edge12","coefficient":1,"kind":"side","node":21678,"targets":[572,575]},{"channel":"edge12","coefficient":1,"kind":"side","node":21646,"targets":[573,574]},{"channel":"u01","coefficient":1,"kind":"side","node":24044,"targets":[568]},{"channel":"w02","coefficient":1,"kind":"side","node":24048,"targets":[568]},{"channel":"partner","coefficient":1,"kind":"side","node":571,"targets":[568]},{"channel":"u01","coefficient":1,"kind":"side","node":24044,"targets":[569]},{"channel":"w02","coefficient":1,"kind":"side","node":24049,"targets":[569]},{"channel":"partner","coefficient":1,"kind":"side","node":570,"targets":[569]},{"channel":"u01","coefficient":1,"kind":"side","node":24045,"targets":[570]},{"channel":"w02","coefficient":1,"kind":"side","node":24048,"targets":[570]},{"channel":"partner","coefficient":1,"kind":"side","node":569,"targets":[570]},{"channel":"u01","coefficient":1,"kind":"side","node":24045,"targets":[571]},{"channel":"w02","coefficient":1,"kind":"side","node":24049,"targets":[571]},{"channel":"partner","coefficient":1,"kind":"side","node":568,"targets":[571]},{"channel":"u01","coefficient":1,"kind":"side","node":24046,"targets":[572]},{"channel":"w02","coefficient":1,"kind":"side","node":24050,"targets":[572]},{"channel":"partner","coefficient":1,"kind":"side","node":575,"targets":[572]},{"channel":"u01","coefficient":1,"kind":"side","node":24046,"targets":[573]},{"channel":"w02","coefficient":1,"kind":"side","node":24051,"targets":[573]},{"channel":"partner","coefficient":1,"kind":"side","node":574,"targets":[573]},{"channel":"u01","coefficient":1,"kind":"side","node":24047,"targets":[574]},{"channel":"w02","coefficient":1,"kind":"side","node":24050,"targets":[574]},{"channel":"partner","coefficient":1,"kind":"side","node":573,"targets":[574]},{"channel":"u01","coefficient":1,"kind":"side","node":24047,"targets":[575]},{"channel":"w02","coefficient":1,"kind":"side","node":24051,"targets":[575]},{"channel":"partner","coefficient":1,"kind":"side","node":572,"targets":[575]},{"channel":"face0","coefficient":1,"kind":"side","node":9516,"targets":[576,577,578,579]},{"channel":"face0","coefficient":1,"kind":"side","node":9979,"targets":[580,581,582,583]},{"channel":"edge12","coefficient":1,"kind":"side","node":21742,"targets":[576,579]},{"channel":"edge12","coefficient":1,"kind":"side","node":21710,"targets":[577,578]},{"channel":"edge12","coefficient":1,"kind":"side","node":21742,"targets":[580,583]},{"channel":"edge12","coefficient":1,"kind":"side","node":21710,"targets":[581,582]},{"channel":"u01","coefficient":1,"kind":"side","node":24052,"targets":[576]},{"channel":"w02","coefficient":1,"kind":"side","node":24056,"targets":[576]},{"channel":"partner","coefficient":1,"kind":"side","node":579,"targets":[576]},{"channel":"u01","coefficient":1,"kind":"side","node":24052,"targets":[577]},{"channel":"w02","coefficient":1,"kind":"side","node":24057,"targets":[577]},{"channel":"partner","coefficient":1,"kind":"side","node":578,"targets":[577]},{"channel":"u01","coefficient":1,"kind":"side","node":24053,"targets":[578]},{"channel":"w02","coefficient":1,"kind":"side","node":24056,"targets":[578]},{"channel":"partner","coefficient":1,"kind":"side","node":577,"targets":[578]},{"channel":"u01","coefficient":1,"kind":"side","node":24053,"targets":[579]},{"channel":"w02","coefficient":1,"kind":"side","node":24057,"targets":[579]},{"channel":"partner","coefficient":1,"kind":"side","node":576,"targets":[579]},{"channel":"u01","coefficient":1,"kind":"side","node":24054,"targets":[580]},{"channel":"w02","coefficient":1,"kind":"side","node":24058,"targets":[580]},{"channel":"partner","coefficient":1,"kind":"side","node":583,"targets":[580]},{"channel":"u01","coefficient":1,"kind":"side","node":24054,"targets":[581]},{"channel":"w02","coefficient":1,"kind":"side","node":24059,"targets":[581]},{"channel":"partner","coefficient":1,"kind":"side","node":582,"targets":[581]},{"channel":"u01","coefficient":1,"kind":"side","node":24055,"targets":[582]},{"channel":"w02","coefficient":1,"kind":"side","node":24058,"targets":[582]},{"channel":"partner","coefficient":1,"kind":"side","node":581,"targets":[582]},{"channel":"u01","coefficient":1,"kind":"side","node":24055,"targets":[583]},{"channel":"w02","coefficient":1,"kind":"side","node":24059,"targets":[583]},{"channel":"partner","coefficient":1,"kind":"side","node":580,"targets":[583]},{"channel":"face0","coefficient":1,"kind":"side","node":9494,"targets":[584,585,586,587]},{"channel":"face0","coefficient":1,"kind":"side","node":9957,"targets":[588,589,590,591]},{"channel":"edge12","coefficient":1,"kind":"side","node":21806,"targets":[584,587]},{"channel":"edge12","coefficient":1,"kind":"side","node":21774,"targets":[585,586]},{"channel":"edge12","coefficient":1,"kind":"side","node":21806,"targets":[588,591]},{"channel":"edge12","coefficient":1,"kind":"side","node":21774,"targets":[589,590]},{"channel":"u01","coefficient":1,"kind":"side","node":24060,"targets":[584]},{"channel":"w02","coefficient":1,"kind":"side","node":24064,"targets":[584]},{"channel":"partner","coefficient":1,"kind":"side","node":587,"targets":[584]},{"channel":"u01","coefficient":1,"kind":"side","node":24060,"targets":[585]},{"channel":"w02","coefficient":1,"kind":"side","node":24065,"targets":[585]},{"channel":"partner","coefficient":1,"kind":"side","node":586,"targets":[585]},{"channel":"u01","coefficient":1,"kind":"side","node":24061,"targets":[586]},{"channel":"w02","coefficient":1,"kind":"side","node":24064,"targets":[586]},{"channel":"partner","coefficient":1,"kind":"side","node":585,"targets":[586]},{"channel":"u01","coefficient":1,"kind":"side","node":24061,"targets":[587]},{"channel":"w02","coefficient":1,"kind":"side","node":24065,"targets":[587]},{"channel":"partner","coefficient":1,"kind":"side","node":584,"targets":[587]},{"channel":"u01","coefficient":1,"kind":"side","node":24062,"targets":[588]},{"channel":"w02","coefficient":1,"kind":"side","node":24066,"targets":[588]},{"channel":"partner","coefficient":1,"kind":"side","node":591,"targets":[588]},{"channel":"u01","coefficient":1,"kind":"side","node":24062,"targets":[589]},{"channel":"w02","coefficient":1,"kind":"side","node":24067,"targets":[589]},{"channel":"partner","coefficient":1,"kind":"side","node":590,"targets":[589]},{"channel":"u01","coefficient":1,"kind":"side","node":24063,"targets":[590]},{"channel":"w02","coefficient":1,"kind":"side","node":24066,"targets":[590]},{"channel":"partner","coefficient":1,"kind":"side","node":589,"targets":[590]},{"channel":"u01","coefficient":1,"kind":"side","node":24063,"targets":[591]},{"channel":"w02","coefficient":1,"kind":"side","node":24067,"targets":[591]},{"channel":"partner","coefficient":1,"kind":"side","node":588,"targets":[591]},{"channel":"face0","coefficient":1,"kind":"side","node":9527,"targets":[592,593,594,595]},{"channel":"face0","coefficient":1,"kind":"side","node":9990,"targets":[596,597,598,599]},{"channel":"edge12","coefficient":1,"kind":"side","node":21870,"targets":[592,595]},{"channel":"edge12","coefficient":1,"kind":"side","node":21838,"targets":[593,594]},{"channel":"edge12","coefficient":1,"kind":"side","node":21870,"targets":[596,599]},{"channel":"edge12","coefficient":1,"kind":"side","node":21838,"targets":[597,598]},{"channel":"u01","coefficient":1,"kind":"side","node":24068,"targets":[592]},{"channel":"w02","coefficient":1,"kind":"side","node":24072,"targets":[592]},{"channel":"partner","coefficient":1,"kind":"side","node":595,"targets":[592]},{"channel":"u01","coefficient":1,"kind":"side","node":24068,"targets":[593]},{"channel":"w02","coefficient":1,"kind":"side","node":24073,"targets":[593]},{"channel":"partner","coefficient":1,"kind":"side","node":594,"targets":[593]},{"channel":"u01","coefficient":1,"kind":"side","node":24069,"targets":[594]},{"channel":"w02","coefficient":1,"kind":"side","node":24072,"targets":[594]},{"channel":"partner","coefficient":1,"kind":"side","node":593,"targets":[594]},{"channel":"u01","coefficient":1,"kind":"side","node":24069,"targets":[595]},{"channel":"w02","coefficient":1,"kind":"side","node":24073,"targets":[595]},{"channel":"partner","coefficient":1,"kind":"side","node":592,"targets":[595]},{"channel":"u01","coefficient":1,"kind":"side","node":24070,"targets":[596]},{"channel":"w02","coefficient":1,"kind":"side","node":24074,"targets":[596]},{"channel":"partner","coefficient":1,"kind":"side","node":599,"targets":[596]},{"channel":"u01","coefficient":1,"kind":"side","node":24070,"targets":[597]},{"channel":"w02","coefficient":1,"kind":"side","node":24075,"targets":[597]},{"channel":"partner","coefficient":1,"kind":"side","node":598,"targets":[597]},{"channel":"u01","coefficient":1,"kind":"side","node":24071,"targets":[598]},{"channel":"w02","coefficient":1,"kind":"side","node":24074,"targets":[598]},{"channel":"partner","coefficient":1,"kind":"side","node":597,"targets":[598]},{"channel":"u01","coefficient":1,"kind":"side","node":24071,"targets":[599]},{"channel":"w02","coefficient":1,"kind":"side","node":24075,"targets":[599]},{"channel":"partner","coefficient":1,"kind":"side","node":596,"targets":[599]},{"channel":"face0","coefficient":1,"kind":"side","node":9359,"targets":[600,601,602,603]},{"channel":"face0","coefficient":1,"kind":"side","node":9822,"targets":[604,605,606,607]},{"channel":"edge12","coefficient":1,"kind":"side","node":21934,"targets":[600,603]},{"channel":"edge12","coefficient":1,"kind":"side","node":21902,"targets":[601,602]},{"channel":"edge12","coefficient":1,"kind":"side","node":21934,"targets":[604,607]},{"channel":"edge12","coefficient":1,"kind":"side","node":21902,"targets":[605,606]},{"channel":"u01","coefficient":1,"kind":"side","node":24076,"targets":[600]},{"channel":"w02","coefficient":1,"kind":"side","node":24080,"targets":[600]},{"channel":"partner","coefficient":1,"kind":"side","node":603,"targets":[600]},{"channel":"u01","coefficient":1,"kind":"side","node":24076,"targets":[601]},{"channel":"w02","coefficient":1,"kind":"side","node":24081,"targets":[601]},{"channel":"partner","coefficient":1,"kind":"side","node":602,"targets":[601]},{"channel":"u01","coefficient":1,"kind":"side","node":24077,"targets":[602]},{"channel":"w02","coefficient":1,"kind":"side","node":24080,"targets":[602]},{"channel":"partner","coefficient":1,"kind":"side","node":601,"targets":[602]},{"channel":"u01","coefficient":1,"kind":"side","node":24077,"targets":[603]},{"channel":"w02","coefficient":1,"kind":"side","node":24081,"targets":[603]},{"channel":"partner","coefficient":1,"kind":"side","node":600,"targets":[603]},{"channel":"u01","coefficient":1,"kind":"side","node":24078,"targets":[604]},{"channel":"w02","coefficient":1,"kind":"side","node":24082,"targets":[604]},{"channel":"partner","coefficient":1,"kind":"side","node":607,"targets":[604]},{"channel":"u01","coefficient":1,"kind":"side","node":24078,"targets":[605]},{"channel":"w02","coefficient":1,"kind":"side","node":24083,"targets":[605]},{"channel":"partner","coefficient":1,"kind":"side","node":606,"targets":[605]},{"channel":"u01","coefficient":1,"kind":"side","node":24079,"targets":[606]},{"channel":"w02","coefficient":1,"kind":"side","node":24082,"targets":[606]},{"channel":"partner","coefficient":1,"kind":"side","node":605,"targets":[606]},{"channel":"u01","coefficient":1,"kind":"side","node":24079,"targets":[607]},{"channel":"w02","coefficient":1,"kind":"side","node":24083,"targets":[607]},{"channel":"partner","coefficient":1,"kind":"side","node":604,"targets":[607]},{"channel":"face0","coefficient":1,"kind":"side","node":9382,"targets":[608,609,610,611]},{"channel":"face0","coefficient":1,"kind":"side","node":9845,"targets":[612,613,614,615]},{"channel":"edge12","coefficient":1,"kind":"side","node":21998,"targets":[608,611]},{"channel":"edge12","coefficient":1,"kind":"side","node":21966,"targets":[609,610]},{"channel":"edge12","coefficient":1,"kind":"side","node":21998,"targets":[612,615]},{"channel":"edge12","coefficient":1,"kind":"side","node":21966,"targets":[613,614]},{"channel":"u01","coefficient":1,"kind":"side","node":24084,"targets":[608]},{"channel":"w02","coefficient":1,"kind":"side","node":24088,"targets":[608]},{"channel":"partner","coefficient":1,"kind":"side","node":611,"targets":[608]},{"channel":"u01","coefficient":1,"kind":"side","node":24084,"targets":[609]},{"channel":"w02","coefficient":1,"kind":"side","node":24089,"targets":[609]},{"channel":"partner","coefficient":1,"kind":"side","node":610,"targets":[609]},{"channel":"u01","coefficient":1,"kind":"side","node":24085,"targets":[610]},{"channel":"w02","coefficient":1,"kind":"side","node":24088,"targets":[610]},{"channel":"partner","coefficient":1,"kind":"side","node":609,"targets":[610]},{"channel":"u01","coefficient":1,"kind":"side","node":24085,"targets":[611]},{"channel":"w02","coefficient":1,"kind":"side","node":24089,"targets":[611]},{"channel":"partner","coefficient":1,"kind":"side","node":608,"targets":[611]},{"channel":"u01","coefficient":1,"kind":"side","node":24086,"targets":[612]},{"channel":"w02","coefficient":1,"kind":"side","node":24090,"targets":[612]},{"channel":"partner","coefficient":1,"kind":"side","node":615,"targets":[612]},{"channel":"u01","coefficient":1,"kind":"side","node":24086,"targets":[613]},{"channel":"w02","coefficient":1,"kind":"side","node":24091,"targets":[613]},{"channel":"partner","coefficient":1,"kind":"side","node":614,"targets":[613]},{"channel":"u01","coefficient":1,"kind":"side","node":24087,"targets":[614]},{"channel":"w02","coefficient":1,"kind":"side","node":24090,"targets":[614]},{"channel":"partner","coefficient":1,"kind":"side","node":613,"targets":[614]},{"channel":"u01","coefficient":1,"kind":"side","node":24087,"targets":[615]},{"channel":"w02","coefficient":1,"kind":"side","node":24091,"targets":[615]},{"channel":"partner","coefficient":1,"kind":"side","node":612,"targets":[615]},{"channel":"face0","coefficient":1,"kind":"side","node":9515,"targets":[616,617,618,619]},{"channel":"face0","coefficient":1,"kind":"side","node":9978,"targets":[620,621,622,623]},{"channel":"edge12","coefficient":1,"kind":"side","node":22062,"targets":[616,619]},{"channel":"edge12","coefficient":1,"kind":"side","node":22030,"targets":[617,618]},{"channel":"edge12","coefficient":1,"kind":"side","node":22062,"targets":[620,623]},{"channel":"edge12","coefficient":1,"kind":"side","node":22030,"targets":[621,622]},{"channel":"u01","coefficient":1,"kind":"side","node":24092,"targets":[616]},{"channel":"w02","coefficient":1,"kind":"side","node":24096,"targets":[616]},{"channel":"partner","coefficient":1,"kind":"side","node":619,"targets":[616]},{"channel":"u01","coefficient":1,"kind":"side","node":24092,"targets":[617]},{"channel":"w02","coefficient":1,"kind":"side","node":24097,"targets":[617]},{"channel":"partner","coefficient":1,"kind":"side","node":618,"targets":[617]},{"channel":"u01","coefficient":1,"kind":"side","node":24093,"targets":[618]},{"channel":"w02","coefficient":1,"kind":"side","node":24096,"targets":[618]},{"channel":"partner","coefficient":1,"kind":"side","node":617,"targets":[618]},{"channel":"u01","coefficient":1,"kind":"side","node":24093,"targets":[619]},{"channel":"w02","coefficient":1,"kind":"side","node":24097,"targets":[619]},{"channel":"partner","coefficient":1,"kind":"side","node":616,"targets":[619]},{"channel":"u01","coefficient":1,"kind":"side","node":24094,"targets":[620]},{"channel":"w02","coefficient":1,"kind":"side","node":24098,"targets":[620]},{"channel":"partner","coefficient":1,"kind":"side","node":623,"targets":[620]},{"channel":"u01","coefficient":1,"kind":"side","node":24094,"targets":[621]},{"channel":"w02","coefficient":1,"kind":"side","node":24099,"targets":[621]},{"channel":"partner","coefficient":1,"kind":"side","node":622,"targets":[621]},{"channel":"u01","coefficient":1,"kind":"side","node":24095,"targets":[622]},{"channel":"w02","coefficient":1,"kind":"side","node":24098,"targets":[622]},{"channel":"partner","coefficient":1,"kind":"side","node":621,"targets":[622]},{"channel":"u01","coefficient":1,"kind":"side","node":24095,"targets":[623]},{"channel":"w02","coefficient":1,"kind":"side","node":24099,"targets":[623]},{"channel":"partner","coefficient":1,"kind":"side","node":620,"targets":[623]},{"channel":"face0","coefficient":1,"kind":"side","node":9498,"targets":[624,625,626,627]},{"channel":"face0","coefficient":1,"kind":"side","node":9961,"targets":[628,629,630,631]},{"channel":"edge12","coefficient":1,"kind":"side","node":22126,"targets":[624,627]},{"channel":"edge12","coefficient":1,"kind":"side","node":22094,"targets":[625,626]},{"channel":"edge12","coefficient":1,"kind":"side","node":22126,"targets":[628,631]},{"channel":"edge12","coefficient":1,"kind":"side","node":22094,"targets":[629,630]},{"channel":"u01","coefficient":1,"kind":"side","node":24100,"targets":[624]},{"channel":"w02","coefficient":1,"kind":"side","node":24104,"targets":[624]},{"channel":"partner","coefficient":1,"kind":"side","node":627,"targets":[624]},{"channel":"u01","coefficient":1,"kind":"side","node":24100,"targets":[625]},{"channel":"w02","coefficient":1,"kind":"side","node":24105,"targets":[625]},{"channel":"partner","coefficient":1,"kind":"side","node":626,"targets":[625]},{"channel":"u01","coefficient":1,"kind":"side","node":24101,"targets":[626]},{"channel":"w02","coefficient":1,"kind":"side","node":24104,"targets":[626]},{"channel":"partner","coefficient":1,"kind":"side","node":625,"targets":[626]},{"channel":"u01","coefficient":1,"kind":"side","node":24101,"targets":[627]},{"channel":"w02","coefficient":1,"kind":"side","node":24105,"targets":[627]},{"channel":"partner","coefficient":1,"kind":"side","node":624,"targets":[627]},{"channel":"u01","coefficient":1,"kind":"side","node":24102,"targets":[628]},{"channel":"w02","coefficient":1,"kind":"side","node":24106,"targets":[628]},{"channel":"partner","coefficient":1,"kind":"side","node":631,"targets":[628]},{"channel":"u01","coefficient":1,"kind":"side","node":24102,"targets":[629]},{"channel":"w02","coefficient":1,"kind":"side","node":24107,"targets":[629]},{"channel":"partner","coefficient":1,"kind":"side","node":630,"targets":[629]},{"channel":"u01","coefficient":1,"kind":"side","node":24103,"targets":[630]},{"channel":"w02","coefficient":1,"kind":"side","node":24106,"targets":[630]},{"channel":"partner","coefficient":1,"kind":"side","node":629,"targets":[630]},{"channel":"u01","coefficient":1,"kind":"side","node":24103,"targets":[631]},{"channel":"w02","coefficient":1,"kind":"side","node":24107,"targets":[631]},{"channel":"partner","coefficient":1,"kind":"side","node":628,"targets":[631]},{"channel":"face0","coefficient":1,"kind":"side","node":9454,"targets":[632,633,634,635]},{"channel":"face0","coefficient":1,"kind":"side","node":9917,"targets":[636,637,638,639]},{"channel":"edge12","coefficient":1,"kind":"side","node":22190,"targets":[632,635]},{"channel":"edge12","coefficient":1,"kind":"side","node":22158,"targets":[633,634]},{"channel":"edge12","coefficient":1,"kind":"side","node":22190,"targets":[636,639]},{"channel":"edge12","coefficient":1,"kind":"side","node":22158,"targets":[637,638]},{"channel":"u01","coefficient":1,"kind":"side","node":24108,"targets":[632]},{"channel":"w02","coefficient":1,"kind":"side","node":24112,"targets":[632]},{"channel":"partner","coefficient":1,"kind":"side","node":635,"targets":[632]},{"channel":"u01","coefficient":1,"kind":"side","node":24108,"targets":[633]},{"channel":"w02","coefficient":1,"kind":"side","node":24113,"targets":[633]},{"channel":"partner","coefficient":1,"kind":"side","node":634,"targets":[633]},{"channel":"u01","coefficient":1,"kind":"side","node":24109,"targets":[634]},{"channel":"w02","coefficient":1,"kind":"side","node":24112,"targets":[634]},{"channel":"partner","coefficient":1,"kind":"side","node":633,"targets":[634]},{"channel":"u01","coefficient":1,"kind":"side","node":24109,"targets":[635]},{"channel":"w02","coefficient":1,"kind":"side","node":24113,"targets":[635]},{"channel":"partner","coefficient":1,"kind":"side","node":632,"targets":[635]},{"channel":"u01","coefficient":1,"kind":"side","node":24110,"targets":[636]},{"channel":"w02","coefficient":1,"kind":"side","node":24114,"targets":[636]},{"channel":"partner","coefficient":1,"kind":"side","node":639,"targets":[636]},{"channel":"u01","coefficient":1,"kind":"side","node":24110,"targets":[637]},{"channel":"w02","coefficient":1,"kind":"side","node":24115,"targets":[637]},{"channel":"partner","coefficient":1,"kind":"side","node":638,"targets":[637]},{"channel":"u01","coefficient":1,"kind":"side","node":24111,"targets":[638]},{"channel":"w02","coefficient":1,"kind":"side","node":24114,"targets":[638]},{"channel":"partner","coefficient":1,"kind":"side","node":637,"targets":[638]},{"channel":"u01","coefficient":1,"kind":"side","node":24111,"targets":[639]},{"channel":"w02","coefficient":1,"kind":"side","node":24115,"targets":[639]},{"channel":"partner","coefficient":1,"kind":"side","node":636,"targets":[639]},{"channel":"face0","coefficient":1,"kind":"side","node":9528,"targets":[640,641,642,643]},{"channel":"face0","coefficient":1,"kind":"side","node":9991,"targets":[644,645,646,647]},{"channel":"edge12","coefficient":1,"kind":"side","node":22254,"targets":[640,643]},{"channel":"edge12","coefficient":1,"kind":"side","node":22222,"targets":[641,642]},{"channel":"edge12","coefficient":1,"kind":"side","node":22254,"targets":[644,647]},{"channel":"edge12","coefficient":1,"kind":"side","node":22222,"targets":[645,646]},{"channel":"u01","coefficient":1,"kind":"side","node":24116,"targets":[640]},{"channel":"w02","coefficient":1,"kind":"side","node":24120,"targets":[640]},{"channel":"partner","coefficient":1,"kind":"side","node":643,"targets":[640]},{"channel":"u01","coefficient":1,"kind":"side","node":24116,"targets":[641]},{"channel":"w02","coefficient":1,"kind":"side","node":24121,"targets":[641]},{"channel":"partner","coefficient":1,"kind":"side","node":642,"targets":[641]},{"channel":"u01","coefficient":1,"kind":"side","node":24117,"targets":[642]},{"channel":"w02","coefficient":1,"kind":"side","node":24120,"targets":[642]},{"channel":"partner","coefficient":1,"kind":"side","node":641,"targets":[642]},{"channel":"u01","coefficient":1,"kind":"side","node":24117,"targets":[643]},{"channel":"w02","coefficient":1,"kind":"side","node":24121,"targets":[643]},{"channel":"partner","coefficient":1,"kind":"side","node":640,"targets":[643]},{"channel":"u01","coefficient":1,"kind":"side","node":24118,"targets":[644]},{"channel":"w02","coefficient":1,"kind":"side","node":24122,"targets":[644]},{"channel":"partner","coefficient":1,"kind":"side","node":647,"targets":[644]},{"channel":"u01","coefficient":1,"kind":"side","node":24118,"targets":[645]},{"channel":"w02","coefficient":1,"kind":"side","node":24123,"targets":[645]},{"channel":"partner","coefficient":1,"kind":"side","node":646,"targets":[645]},{"channel":"u01","coefficient":1,"kind":"side","node":24119,"targets":[646]},{"channel":"w02","coefficient":1,"kind":"side","node":24122,"targets":[646]},{"channel":"partner","coefficient":1,"kind":"side","node":645,"targets":[646]},{"channel":"u01","coefficient":1,"kind":"side","node":24119,"targets":[647]},{"channel":"w02","coefficient":1,"kind":"side","node":24123,"targets":[647]},{"channel":"partner","coefficient":1,"kind":"side","node":644,"targets":[647]},{"channel":"face0","coefficient":1,"kind":"side","node":9439,"targets":[648,649,650,651]},{"channel":"face0","coefficient":1,"kind":"side","node":9902,"targets":[652,653,654,655]},{"channel":"edge12","coefficient":1,"kind":"side","node":22318,"targets":[648,651]},{"channel":"edge12","coefficient":1,"kind":"side","node":22286,"targets":[649,650]},{"channel":"edge12","coefficient":1,"kind":"side","node":22318,"targets":[652,655]},{"channel":"edge12","coefficient":1,"kind":"side","node":22286,"targets":[653,654]},{"channel":"u01","coefficient":1,"kind":"side","node":24124,"targets":[648]},{"channel":"w02","coefficient":1,"kind":"side","node":24128,"targets":[648]},{"channel":"partner","coefficient":1,"kind":"side","node":651,"targets":[648]},{"channel":"u01","coefficient":1,"kind":"side","node":24124,"targets":[649]},{"channel":"w02","coefficient":1,"kind":"side","node":24129,"targets":[649]},{"channel":"partner","coefficient":1,"kind":"side","node":650,"targets":[649]},{"channel":"u01","coefficient":1,"kind":"side","node":24125,"targets":[650]},{"channel":"w02","coefficient":1,"kind":"side","node":24128,"targets":[650]},{"channel":"partner","coefficient":1,"kind":"side","node":649,"targets":[650]},{"channel":"u01","coefficient":1,"kind":"side","node":24125,"targets":[651]},{"channel":"w02","coefficient":1,"kind":"side","node":24129,"targets":[651]},{"channel":"partner","coefficient":1,"kind":"side","node":648,"targets":[651]},{"channel":"u01","coefficient":1,"kind":"side","node":24126,"targets":[652]},{"channel":"w02","coefficient":1,"kind":"side","node":24130,"targets":[652]},{"channel":"partner","coefficient":1,"kind":"side","node":655,"targets":[652]},{"channel":"u01","coefficient":1,"kind":"side","node":24126,"targets":[653]},{"channel":"w02","coefficient":1,"kind":"side","node":24131,"targets":[653]},{"channel":"partner","coefficient":1,"kind":"side","node":654,"targets":[653]},{"channel":"u01","coefficient":1,"kind":"side","node":24127,"targets":[654]},{"channel":"w02","coefficient":1,"kind":"side","node":24130,"targets":[654]},{"channel":"partner","coefficient":1,"kind":"side","node":653,"targets":[654]},{"channel":"u01","coefficient":1,"kind":"side","node":24127,"targets":[655]},{"channel":"w02","coefficient":1,"kind":"side","node":24131,"targets":[655]},{"channel":"partner","coefficient":1,"kind":"side","node":652,"targets":[655]},{"channel":"face0","coefficient":1,"kind":"side","node":9522,"targets":[656,657,658,659]},{"channel":"face0","coefficient":1,"kind":"side","node":9985,"targets":[660,661,662,663]},{"channel":"edge12","coefficient":1,"kind":"side","node":22382,"targets":[656,659]},{"channel":"edge12","coefficient":1,"kind":"side","node":22350,"targets":[657,658]},{"channel":"edge12","coefficient":1,"kind":"side","node":22382,"targets":[660,663]},{"channel":"edge12","coefficient":1,"kind":"side","node":22350,"targets":[661,662]},{"channel":"u01","coefficient":1,"kind":"side","node":24132,"targets":[656]},{"channel":"w02","coefficient":1,"kind":"side","node":24136,"targets":[656]},{"channel":"partner","coefficient":1,"kind":"side","node":659,"targets":[656]},{"channel":"u01","coefficient":1,"kind":"side","node":24132,"targets":[657]},{"channel":"w02","coefficient":1,"kind":"side","node":24137,"targets":[657]},{"channel":"partner","coefficient":1,"kind":"side","node":658,"targets":[657]},{"channel":"u01","coefficient":1,"kind":"side","node":24133,"targets":[658]},{"channel":"w02","coefficient":1,"kind":"side","node":24136,"targets":[658]},{"channel":"partner","coefficient":1,"kind":"side","node":657,"targets":[658]},{"channel":"u01","coefficient":1,"kind":"side","node":24133,"targets":[659]},{"channel":"w02","coefficient":1,"kind":"side","node":24137,"targets":[659]},{"channel":"partner","coefficient":1,"kind":"side","node":656,"targets":[659]},{"channel":"u01","coefficient":1,"kind":"side","node":24134,"targets":[660]},{"channel":"w02","coefficient":1,"kind":"side","node":24138,"targets":[660]},{"channel":"partner","coefficient":1,"kind":"side","node":663,"targets":[660]},{"channel":"u01","coefficient":1,"kind":"side","node":24134,"targets":[661]},{"channel":"w02","coefficient":1,"kind":"side","node":24139,"targets":[661]},{"channel":"partner","coefficient":1,"kind":"side","node":662,"targets":[661]},{"channel":"u01","coefficient":1,"kind":"side","node":24135,"targets":[662]},{"channel":"w02","coefficient":1,"kind":"side","node":24138,"targets":[662]},{"channel":"partner","coefficient":1,"kind":"side","node":661,"targets":[662]},{"channel":"u01","coefficient":1,"kind":"side","node":24135,"targets":[663]},{"channel":"w02","coefficient":1,"kind":"side","node":24139,"targets":[663]},{"channel":"partner","coefficient":1,"kind":"side","node":660,"targets":[663]},{"channel":"face0","coefficient":1,"kind":"side","node":9447,"targets":[664,665,666,667]},{"channel":"face0","coefficient":1,"kind":"side","node":9910,"targets":[668,669,670,671]},{"channel":"edge12","coefficient":1,"kind":"side","node":22446,"targets":[664,667]},{"channel":"edge12","coefficient":1,"kind":"side","node":22414,"targets":[665,666]},{"channel":"edge12","coefficient":1,"kind":"side","node":22446,"targets":[668,671]},{"channel":"edge12","coefficient":1,"kind":"side","node":22414,"targets":[669,670]},{"channel":"u01","coefficient":1,"kind":"side","node":24140,"targets":[664]},{"channel":"w02","coefficient":1,"kind":"side","node":24144,"targets":[664]},{"channel":"partner","coefficient":1,"kind":"side","node":667,"targets":[664]},{"channel":"u01","coefficient":1,"kind":"side","node":24140,"targets":[665]},{"channel":"w02","coefficient":1,"kind":"side","node":24145,"targets":[665]},{"channel":"partner","coefficient":1,"kind":"side","node":666,"targets":[665]},{"channel":"u01","coefficient":1,"kind":"side","node":24141,"targets":[666]},{"channel":"w02","coefficient":1,"kind":"side","node":24144,"targets":[666]},{"channel":"partner","coefficient":1,"kind":"side","node":665,"targets":[666]},{"channel":"u01","coefficient":1,"kind":"side","node":24141,"targets":[667]},{"channel":"w02","coefficient":1,"kind":"side","node":24145,"targets":[667]},{"channel":"partner","coefficient":1,"kind":"side","node":664,"targets":[667]},{"channel":"u01","coefficient":1,"kind":"side","node":24142,"targets":[668]},{"channel":"w02","coefficient":1,"kind":"side","node":24146,"targets":[668]},{"channel":"partner","coefficient":1,"kind":"side","node":671,"targets":[668]},{"channel":"u01","coefficient":1,"kind":"side","node":24142,"targets":[669]},{"channel":"w02","coefficient":1,"kind":"side","node":24147,"targets":[669]},{"channel":"partner","coefficient":1,"kind":"side","node":670,"targets":[669]},{"channel":"u01","coefficient":1,"kind":"side","node":24143,"targets":[670]},{"channel":"w02","coefficient":1,"kind":"side","node":24146,"targets":[670]},{"channel":"partner","coefficient":1,"kind":"side","node":669,"targets":[670]},{"channel":"u01","coefficient":1,"kind":"side","node":24143,"targets":[671]},{"channel":"w02","coefficient":1,"kind":"side","node":24147,"targets":[671]},{"channel":"partner","coefficient":1,"kind":"side","node":668,"targets":[671]},{"channel":"face0","coefficient":1,"kind":"side","node":9403,"targets":[672,673,674,675]},{"channel":"face0","coefficient":1,"kind":"side","node":9866,"targets":[676,677,678,679]},{"channel":"edge12","coefficient":1,"kind":"side","node":22510,"targets":[672,675]},{"channel":"edge12","coefficient":1,"kind":"side","node":22478,"targets":[673,674]},{"channel":"edge12","coefficient":1,"kind":"side","node":22510,"targets":[676,679]},{"channel":"edge12","coefficient":1,"kind":"side","node":22478,"targets":[677,678]},{"channel":"u01","coefficient":1,"kind":"side","node":24148,"targets":[672]},{"channel":"w02","coefficient":1,"kind":"side","node":24152,"targets":[672]},{"channel":"partner","coefficient":1,"kind":"side","node":675,"targets":[672]},{"channel":"u01","coefficient":1,"kind":"side","node":24148,"targets":[673]},{"channel":"w02","coefficient":1,"kind":"side","node":24153,"targets":[673]},{"channel":"partner","coefficient":1,"kind":"side","node":674,"targets":[673]},{"channel":"u01","coefficient":1,"kind":"side","node":24149,"targets":[674]},{"channel":"w02","coefficient":1,"kind":"side","node":24152,"targets":[674]},{"channel":"partner","coefficient":1,"kind":"side","node":673,"targets":[674]},{"channel":"u01","coefficient":1,"kind":"side","node":24149,"targets":[675]},{"channel":"w02","coefficient":1,"kind":"side","node":24153,"targets":[675]},{"channel":"partner","coefficient":1,"kind":"side","node":672,"targets":[675]},{"channel":"u01","coefficient":1,"kind":"side","node":24150,"targets":[676]},{"channel":"w02","coefficient":1,"kind":"side","node":24154,"targets":[676]},{"channel":"partner","coefficient":1,"kind":"side","node":679,"targets":[676]},{"channel":"u01","coefficient":1,"kind":"side","node":24150,"targets":[677]},{"channel":"w02","coefficient":1,"kind":"side","node":24155,"targets":[677]},{"channel":"partner","coefficient":1,"kind":"side","node":678,"targets":[677]},{"channel":"u01","coefficient":1,"kind":"side","node":24151,"targets":[678]},{"channel":"w02","coefficient":1,"kind":"side","node":24154,"targets":[678]},{"channel":"partner","coefficient":1,"kind":"side","node":677,"targets":[678]},{"channel":"u01","coefficient":1,"kind":"side","node":24151,"targets":[679]},{"channel":"w02","coefficient":1,"kind":"side","node":24155,"targets":[679]},{"channel":"partner","coefficient":1,"kind":"side","node":676,"targets":[679]},{"channel":"face0","coefficient":1,"kind":"side","node":9397,"targets":[680,681,682,683]},{"channel":"face0","coefficient":1,"kind":"side","node":9860,"targets":[684,685,686,687]},{"channel":"edge12","coefficient":1,"kind":"side","node":22574,"targets":[680,683]},{"channel":"edge12","coefficient":1,"kind":"side","node":22542,"targets":[681,682]},{"channel":"edge12","coefficient":1,"kind":"side","node":22574,"targets":[684,687]},{"channel":"edge12","coefficient":1,"kind":"side","node":22542,"targets":[685,686]},{"channel":"u01","coefficient":1,"kind":"side","node":24156,"targets":[680]},{"channel":"w02","coefficient":1,"kind":"side","node":24160,"targets":[680]},{"channel":"partner","coefficient":1,"kind":"side","node":683,"targets":[680]},{"channel":"u01","coefficient":1,"kind":"side","node":24156,"targets":[681]},{"channel":"w02","coefficient":1,"kind":"side","node":24161,"targets":[681]},{"channel":"partner","coefficient":1,"kind":"side","node":682,"targets":[681]},{"channel":"u01","coefficient":1,"kind":"side","node":24157,"targets":[682]},{"channel":"w02","coefficient":1,"kind":"side","node":24160,"targets":[682]},{"channel":"partner","coefficient":1,"kind":"side","node":681,"targets":[682]},{"channel":"u01","coefficient":1,"kind":"side","node":24157,"targets":[683]},{"channel":"w02","coefficient":1,"kind":"side","node":24161,"targets":[683]},{"channel":"partner","coefficient":1,"kind":"side","node":680,"targets":[683]},{"channel":"u01","coefficient":1,"kind":"side","node":24158,"targets":[684]},{"channel":"w02","coefficient":1,"kind":"side","node":24162,"targets":[684]},{"channel":"partner","coefficient":1,"kind":"side","node":687,"targets":[684]},{"channel":"u01","coefficient":1,"kind":"side","node":24158,"targets":[685]},{"channel":"w02","coefficient":1,"kind":"side","node":24163,"targets":[685]},{"channel":"partner","coefficient":1,"kind":"side","node":686,"targets":[685]},{"channel":"u01","coefficient":1,"kind":"side","node":24159,"targets":[686]},{"channel":"w02","coefficient":1,"kind":"side","node":24162,"targets":[686]},{"channel":"partner","coefficient":1,"kind":"side","node":685,"targets":[686]},{"channel":"u01","coefficient":1,"kind":"side","node":24159,"targets":[687]},{"channel":"w02","coefficient":1,"kind":"side","node":24163,"targets":[687]},{"channel":"partner","coefficient":1,"kind":"side","node":684,"targets":[687]},{"channel":"face0","coefficient":1,"kind":"side","node":9453,"targets":[688,689,690,691]},{"channel":"face0","coefficient":1,"kind":"side","node":9916,"targets":[692,693,694,695]},{"channel":"edge12","coefficient":1,"kind":"side","node":22638,"targets":[688,691]},{"channel":"edge12","coefficient":1,"kind":"side","node":22606,"targets":[689,690]},{"channel":"edge12","coefficient":1,"kind":"side","node":22638,"targets":[692,695]},{"channel":"edge12","coefficient":1,"kind":"side","node":22606,"targets":[693,694]},{"channel":"u01","coefficient":1,"kind":"side","node":24164,"targets":[688]},{"channel":"w02","coefficient":1,"kind":"side","node":24168,"targets":[688]},{"channel":"partner","coefficient":1,"kind":"side","node":691,"targets":[688]},{"channel":"u01","coefficient":1,"kind":"side","node":24164,"targets":[689]},{"channel":"w02","coefficient":1,"kind":"side","node":24169,"targets":[689]},{"channel":"partner","coefficient":1,"kind":"side","node":690,"targets":[689]},{"channel":"u01","coefficient":1,"kind":"side","node":24165,"targets":[690]},{"channel":"w02","coefficient":1,"kind":"side","node":24168,"targets":[690]},{"channel":"partner","coefficient":1,"kind":"side","node":689,"targets":[690]},{"channel":"u01","coefficient":1,"kind":"side","node":24165,"targets":[691]},{"channel":"w02","coefficient":1,"kind":"side","node":24169,"targets":[691]},{"channel":"partner","coefficient":1,"kind":"side","node":688,"targets":[691]},{"channel":"u01","coefficient":1,"kind":"side","node":24166,"targets":[692]},{"channel":"w02","coefficient":1,"kind":"side","node":24170,"targets":[692]},{"channel":"partner","coefficient":1,"kind":"side","node":695,"targets":[692]},{"channel":"u01","coefficient":1,"kind":"side","node":24166,"targets":[693]},{"channel":"w02","coefficient":1,"kind":"side","node":24171,"targets":[693]},{"channel":"partner","coefficient":1,"kind":"side","node":694,"targets":[693]},{"channel":"u01","coefficient":1,"kind":"side","node":24167,"targets":[694]},{"channel":"w02","coefficient":1,"kind":"side","node":24170,"targets":[694]},{"channel":"partner","coefficient":1,"kind":"side","node":693,"targets":[694]},{"channel":"u01","coefficient":1,"kind":"side","node":24167,"targets":[695]},{"channel":"w02","coefficient":1,"kind":"side","node":24171,"targets":[695]},{"channel":"partner","coefficient":1,"kind":"side","node":692,"targets":[695]},{"channel":"face0","coefficient":1,"kind":"side","node":9414,"targets":[696,697,698,699]},{"channel":"face0","coefficient":1,"kind":"side","node":9877,"targets":[700,701,702,703]},{"channel":"edge12","coefficient":1,"kind":"side","node":22702,"targets":[696,699]},{"channel":"edge12","coefficient":1,"kind":"side","node":22670,"targets":[697,698]},{"channel":"edge12","coefficient":1,"kind":"side","node":22702,"targets":[700,703]},{"channel":"edge12","coefficient":1,"kind":"side","node":22670,"targets":[701,702]},{"channel":"u01","coefficient":1,"kind":"side","node":24172,"targets":[696]},{"channel":"w02","coefficient":1,"kind":"side","node":24176,"targets":[696]},{"channel":"partner","coefficient":1,"kind":"side","node":699,"targets":[696]},{"channel":"u01","coefficient":1,"kind":"side","node":24172,"targets":[697]},{"channel":"w02","coefficient":1,"kind":"side","node":24177,"targets":[697]},{"channel":"partner","coefficient":1,"kind":"side","node":698,"targets":[697]},{"channel":"u01","coefficient":1,"kind":"side","node":24173,"targets":[698]},{"channel":"w02","coefficient":1,"kind":"side","node":24176,"targets":[698]},{"channel":"partner","coefficient":1,"kind":"side","node":697,"targets":[698]},{"channel":"u01","coefficient":1,"kind":"side","node":24173,"targets":[699]},{"channel":"w02","coefficient":1,"kind":"side","node":24177,"targets":[699]},{"channel":"partner","coefficient":1,"kind":"side","node":696,"targets":[699]},{"channel":"u01","coefficient":1,"kind":"side","node":24174,"targets":[700]},{"channel":"w02","coefficient":1,"kind":"side","node":24178,"targets":[700]},{"channel":"partner","coefficient":1,"kind":"side","node":703,"targets":[700]},{"channel":"u01","coefficient":1,"kind":"side","node":24174,"targets":[701]},{"channel":"w02","coefficient":1,"kind":"side","node":24179,"targets":[701]},{"channel":"partner","coefficient":1,"kind":"side","node":702,"targets":[701]},{"channel":"u01","coefficient":1,"kind":"side","node":24175,"targets":[702]},{"channel":"w02","coefficient":1,"kind":"side","node":24178,"targets":[702]},{"channel":"partner","coefficient":1,"kind":"side","node":701,"targets":[702]},{"channel":"u01","coefficient":1,"kind":"side","node":24175,"targets":[703]},{"channel":"w02","coefficient":1,"kind":"side","node":24179,"targets":[703]},{"channel":"partner","coefficient":1,"kind":"side","node":700,"targets":[703]},{"channel":"face0","coefficient":1,"kind":"side","node":9260,"targets":[704,705,706,707]},{"channel":"face0","coefficient":1,"kind":"side","node":9723,"targets":[708,709,710,711]},{"channel":"edge12","coefficient":1,"kind":"side","node":22766,"targets":[704,707]},{"channel":"edge12","coefficient":1,"kind":"side","node":22734,"targets":[705,706]},{"channel":"edge12","coefficient":1,"kind":"side","node":22766,"targets":[708,711]},{"channel":"edge12","coefficient":1,"kind":"side","node":22734,"targets":[709,710]},{"channel":"u01","coefficient":1,"kind":"side","node":24180,"targets":[704]},{"channel":"w02","coefficient":1,"kind":"side","node":24184,"targets":[704]},{"channel":"partner","coefficient":1,"kind":"side","node":707,"targets":[704]},{"channel":"u01","coefficient":1,"kind":"side","node":24180,"targets":[705]},{"channel":"w02","coefficient":1,"kind":"side","node":24185,"targets":[705]},{"channel":"partner","coefficient":1,"kind":"side","node":706,"targets":[705]},{"channel":"u01","coefficient":1,"kind":"side","node":24181,"targets":[706]},{"channel":"w02","coefficient":1,"kind":"side","node":24184,"targets":[706]},{"channel":"partner","coefficient":1,"kind":"side","node":705,"targets":[706]},{"channel":"u01","coefficient":1,"kind":"side","node":24181,"targets":[707]},{"channel":"w02","coefficient":1,"kind":"side","node":24185,"targets":[707]},{"channel":"partner","coefficient":1,"kind":"side","node":704,"targets":[707]},{"channel":"u01","coefficient":1,"kind":"side","node":24182,"targets":[708]},{"channel":"w02","coefficient":1,"kind":"side","node":24186,"targets":[708]},{"channel":"partner","coefficient":1,"kind":"side","node":711,"targets":[708]},{"channel":"u01","coefficient":1,"kind":"side","node":24182,"targets":[709]},{"channel":"w02","coefficient":1,"kind":"side","node":24187,"targets":[709]},{"channel":"partner","coefficient":1,"kind":"side","node":710,"targets":[709]},{"channel":"u01","coefficient":1,"kind":"side","node":24183,"targets":[710]},{"channel":"w02","coefficient":1,"kind":"side","node":24186,"targets":[710]},{"channel":"partner","coefficient":1,"kind":"side","node":709,"targets":[710]},{"channel":"u01","coefficient":1,"kind":"side","node":24183,"targets":[711]},{"channel":"w02","coefficient":1,"kind":"side","node":24187,"targets":[711]},{"channel":"partner","coefficient":1,"kind":"side","node":708,"targets":[711]},{"channel":"face0","coefficient":1,"kind":"side","node":9424,"targets":[712,713,714,715]},{"channel":"face0","coefficient":1,"kind":"side","node":9887,"targets":[716,717,718,719]},{"channel":"edge12","coefficient":1,"kind":"side","node":22830,"targets":[712,715]},{"channel":"edge12","coefficient":1,"kind":"side","node":22798,"targets":[713,714]},{"channel":"edge12","coefficient":1,"kind":"side","node":22830,"targets":[716,719]},{"channel":"edge12","coefficient":1,"kind":"side","node":22798,"targets":[717,718]},{"channel":"u01","coefficient":1,"kind":"side","node":24188,"targets":[712]},{"channel":"w02","coefficient":1,"kind":"side","node":24192,"targets":[712]},{"channel":"partner","coefficient":1,"kind":"side","node":715,"targets":[712]},{"channel":"u01","coefficient":1,"kind":"side","node":24188,"targets":[713]},{"channel":"w02","coefficient":1,"kind":"side","node":24193,"targets":[713]},{"channel":"partner","coefficient":1,"kind":"side","node":714,"targets":[713]},{"channel":"u01","coefficient":1,"kind":"side","node":24189,"targets":[714]},{"channel":"w02","coefficient":1,"kind":"side","node":24192,"targets":[714]},{"channel":"partner","coefficient":1,"kind":"side","node":713,"targets":[714]},{"channel":"u01","coefficient":1,"kind":"side","node":24189,"targets":[715]},{"channel":"w02","coefficient":1,"kind":"side","node":24193,"targets":[715]},{"channel":"partner","coefficient":1,"kind":"side","node":712,"targets":[715]},{"channel":"u01","coefficient":1,"kind":"side","node":24190,"targets":[716]},{"channel":"w02","coefficient":1,"kind":"side","node":24194,"targets":[716]},{"channel":"partner","coefficient":1,"kind":"side","node":719,"targets":[716]},{"channel":"u01","coefficient":1,"kind":"side","node":24190,"targets":[717]},{"channel":"w02","coefficient":1,"kind":"side","node":24195,"targets":[717]},{"channel":"partner","coefficient":1,"kind":"side","node":718,"targets":[717]},{"channel":"u01","coefficient":1,"kind":"side","node":24191,"targets":[718]},{"channel":"w02","coefficient":1,"kind":"side","node":24194,"targets":[718]},{"channel":"partner","coefficient":1,"kind":"side","node":717,"targets":[718]},{"channel":"u01","coefficient":1,"kind":"side","node":24191,"targets":[719]},{"channel":"w02","coefficient":1,"kind":"side","node":24195,"targets":[719]},{"channel":"partner","coefficient":1,"kind":"side","node":716,"targets":[719]},{"channel":"face0","coefficient":1,"kind":"side","node":9466,"targets":[720,721,722,723]},{"channel":"face0","coefficient":1,"kind":"side","node":9929,"targets":[724,725,726,727]},{"channel":"edge12","coefficient":1,"kind":"side","node":22894,"targets":[720,723]},{"channel":"edge12","coefficient":1,"kind":"side","node":22862,"targets":[721,722]},{"channel":"edge12","coefficient":1,"kind":"side","node":22894,"targets":[724,727]},{"channel":"edge12","coefficient":1,"kind":"side","node":22862,"targets":[725,726]},{"channel":"u01","coefficient":1,"kind":"side","node":24196,"targets":[720]},{"channel":"w02","coefficient":1,"kind":"side","node":24200,"targets":[720]},{"channel":"partner","coefficient":1,"kind":"side","node":723,"targets":[720]},{"channel":"u01","coefficient":1,"kind":"side","node":24196,"targets":[721]},{"channel":"w02","coefficient":1,"kind":"side","node":24201,"targets":[721]},{"channel":"partner","coefficient":1,"kind":"side","node":722,"targets":[721]},{"channel":"u01","coefficient":1,"kind":"side","node":24197,"targets":[722]},{"channel":"w02","coefficient":1,"kind":"side","node":24200,"targets":[722]},{"channel":"partner","coefficient":1,"kind":"side","node":721,"targets":[722]},{"channel":"u01","coefficient":1,"kind":"side","node":24197,"targets":[723]},{"channel":"w02","coefficient":1,"kind":"side","node":24201,"targets":[723]},{"channel":"partner","coefficient":1,"kind":"side","node":720,"targets":[723]},{"channel":"u01","coefficient":1,"kind":"side","node":24198,"targets":[724]},{"channel":"w02","coefficient":1,"kind":"side","node":24202,"targets":[724]},{"channel":"partner","coefficient":1,"kind":"side","node":727,"targets":[724]},{"channel":"u01","coefficient":1,"kind":"side","node":24198,"targets":[725]},{"channel":"w02","coefficient":1,"kind":"side","node":24203,"targets":[725]},{"channel":"partner","coefficient":1,"kind":"side","node":726,"targets":[725]},{"channel":"u01","coefficient":1,"kind":"side","node":24199,"targets":[726]},{"channel":"w02","coefficient":1,"kind":"side","node":24202,"targets":[726]},{"channel":"partner","coefficient":1,"kind":"side","node":725,"targets":[726]},{"channel":"u01","coefficient":1,"kind":"side","node":24199,"targets":[727]},{"channel":"w02","coefficient":1,"kind":"side","node":24203,"targets":[727]},{"channel":"partner","coefficient":1,"kind":"side","node":724,"targets":[727]},{"channel":"face0","coefficient":1,"kind":"side","node":9487,"targets":[728,729,730,731]},{"channel":"face0","coefficient":1,"kind":"side","node":9950,"targets":[732,733,734,735]},{"channel":"edge12","coefficient":1,"kind":"side","node":22958,"targets":[728,731]},{"channel":"edge12","coefficient":1,"kind":"side","node":22926,"targets":[729,730]},{"channel":"edge12","coefficient":1,"kind":"side","node":22958,"targets":[732,735]},{"channel":"edge12","coefficient":1,"kind":"side","node":22926,"targets":[733,734]},{"channel":"u01","coefficient":1,"kind":"side","node":24204,"targets":[728]},{"channel":"w02","coefficient":1,"kind":"side","node":24208,"targets":[728]},{"channel":"partner","coefficient":1,"kind":"side","node":731,"targets":[728]},{"channel":"u01","coefficient":1,"kind":"side","node":24204,"targets":[729]},{"channel":"w02","coefficient":1,"kind":"side","node":24209,"targets":[729]},{"channel":"partner","coefficient":1,"kind":"side","node":730,"targets":[729]},{"channel":"u01","coefficient":1,"kind":"side","node":24205,"targets":[730]},{"channel":"w02","coefficient":1,"kind":"side","node":24208,"targets":[730]},{"channel":"partner","coefficient":1,"kind":"side","node":729,"targets":[730]},{"channel":"u01","coefficient":1,"kind":"side","node":24205,"targets":[731]},{"channel":"w02","coefficient":1,"kind":"side","node":24209,"targets":[731]},{"channel":"partner","coefficient":1,"kind":"side","node":728,"targets":[731]},{"channel":"u01","coefficient":1,"kind":"side","node":24206,"targets":[732]},{"channel":"w02","coefficient":1,"kind":"side","node":24210,"targets":[732]},{"channel":"partner","coefficient":1,"kind":"side","node":735,"targets":[732]},{"channel":"u01","coefficient":1,"kind":"side","node":24206,"targets":[733]},{"channel":"w02","coefficient":1,"kind":"side","node":24211,"targets":[733]},{"channel":"partner","coefficient":1,"kind":"side","node":734,"targets":[733]},{"channel":"u01","coefficient":1,"kind":"side","node":24207,"targets":[734]},{"channel":"w02","coefficient":1,"kind":"side","node":24210,"targets":[734]},{"channel":"partner","coefficient":1,"kind":"side","node":733,"targets":[734]},{"channel":"u01","coefficient":1,"kind":"side","node":24207,"targets":[735]},{"channel":"w02","coefficient":1,"kind":"side","node":24211,"targets":[735]},{"channel":"partner","coefficient":1,"kind":"side","node":732,"targets":[735]},{"channel":"face0","coefficient":1,"kind":"side","node":9233,"targets":[736,737,738,739]},{"channel":"face0","coefficient":1,"kind":"side","node":9696,"targets":[740,741,742,743]},{"channel":"edge12","coefficient":1,"kind":"side","node":23022,"targets":[736,739]},{"channel":"edge12","coefficient":1,"kind":"side","node":22990,"targets":[737,738]},{"channel":"edge12","coefficient":1,"kind":"side","node":23022,"targets":[740,743]},{"channel":"edge12","coefficient":1,"kind":"side","node":22990,"targets":[741,742]},{"channel":"u01","coefficient":1,"kind":"side","node":24212,"targets":[736]},{"channel":"w02","coefficient":1,"kind":"side","node":24216,"targets":[736]},{"channel":"partner","coefficient":1,"kind":"side","node":739,"targets":[736]},{"channel":"u01","coefficient":1,"kind":"side","node":24212,"targets":[737]},{"channel":"w02","coefficient":1,"kind":"side","node":24217,"targets":[737]},{"channel":"partner","coefficient":1,"kind":"side","node":738,"targets":[737]},{"channel":"u01","coefficient":1,"kind":"side","node":24213,"targets":[738]},{"channel":"w02","coefficient":1,"kind":"side","node":24216,"targets":[738]},{"channel":"partner","coefficient":1,"kind":"side","node":737,"targets":[738]},{"channel":"u01","coefficient":1,"kind":"side","node":24213,"targets":[739]},{"channel":"w02","coefficient":1,"kind":"side","node":24217,"targets":[739]},{"channel":"partner","coefficient":1,"kind":"side","node":736,"targets":[739]},{"channel":"u01","coefficient":1,"kind":"side","node":24214,"targets":[740]},{"channel":"w02","coefficient":1,"kind":"side","node":24218,"targets":[740]},{"channel":"partner","coefficient":1,"kind":"side","node":743,"targets":[740]},{"channel":"u01","coefficient":1,"kind":"side","node":24214,"targets":[741]},{"channel":"w02","coefficient":1,"kind":"side","node":24219,"targets":[741]},{"channel":"partner","coefficient":1,"kind":"side","node":742,"targets":[741]},{"channel":"u01","coefficient":1,"kind":"side","node":24215,"targets":[742]},{"channel":"w02","coefficient":1,"kind":"side","node":24218,"targets":[742]},{"channel":"partner","coefficient":1,"kind":"side","node":741,"targets":[742]},{"channel":"u01","coefficient":1,"kind":"side","node":24215,"targets":[743]},{"channel":"w02","coefficient":1,"kind":"side","node":24219,"targets":[743]},{"channel":"partner","coefficient":1,"kind":"side","node":740,"targets":[743]},{"channel":"face0","coefficient":1,"kind":"side","node":9335,"targets":[744,745,746,747]},{"channel":"face0","coefficient":1,"kind":"side","node":9798,"targets":[748,749,750,751]},{"channel":"edge12","coefficient":1,"kind":"side","node":23086,"targets":[744,747]},{"channel":"edge12","coefficient":1,"kind":"side","node":23054,"targets":[745,746]},{"channel":"edge12","coefficient":1,"kind":"side","node":23086,"targets":[748,751]},{"channel":"edge12","coefficient":1,"kind":"side","node":23054,"targets":[749,750]},{"channel":"u01","coefficient":1,"kind":"side","node":24220,"targets":[744]},{"channel":"w02","coefficient":1,"kind":"side","node":24224,"targets":[744]},{"channel":"partner","coefficient":1,"kind":"side","node":747,"targets":[744]},{"channel":"u01","coefficient":1,"kind":"side","node":24220,"targets":[745]},{"channel":"w02","coefficient":1,"kind":"side","node":24225,"targets":[745]},{"channel":"partner","coefficient":1,"kind":"side","node":746,"targets":[745]},{"channel":"u01","coefficient":1,"kind":"side","node":24221,"targets":[746]},{"channel":"w02","coefficient":1,"kind":"side","node":24224,"targets":[746]},{"channel":"partner","coefficient":1,"kind":"side","node":745,"targets":[746]},{"channel":"u01","coefficient":1,"kind":"side","node":24221,"targets":[747]},{"channel":"w02","coefficient":1,"kind":"side","node":24225,"targets":[747]},{"channel":"partner","coefficient":1,"kind":"side","node":744,"targets":[747]},{"channel":"u01","coefficient":1,"kind":"side","node":24222,"targets":[748]},{"channel":"w02","coefficient":1,"kind":"side","node":24226,"targets":[748]},{"channel":"partner","coefficient":1,"kind":"side","node":751,"targets":[748]},{"channel":"u01","coefficient":1,"kind":"side","node":24222,"targets":[749]},{"channel":"w02","coefficient":1,"kind":"side","node":24227,"targets":[749]},{"channel":"partner","coefficient":1,"kind":"side","node":750,"targets":[749]},{"channel":"u01","coefficient":1,"kind":"side","node":24223,"targets":[750]},{"channel":"w02","coefficient":1,"kind":"side","node":24226,"targets":[750]},{"channel":"partner","coefficient":1,"kind":"side","node":749,"targets":[750]},{"channel":"u01","coefficient":1,"kind":"side","node":24223,"targets":[751]},{"channel":"w02","coefficient":1,"kind":"side","node":24227,"targets":[751]},{"channel":"partner","coefficient":1,"kind":"side","node":748,"targets":[751]},{"channel":"face0","coefficient":1,"kind":"side","node":9481,"targets":[752,753,754,755]},{"channel":"face0","coefficient":1,"kind":"side","node":9944,"targets":[756,757,758,759]},{"channel":"edge12","coefficient":1,"kind":"side","node":23150,"targets":[752,755]},{"channel":"edge12","coefficient":1,"kind":"side","node":23118,"targets":[753,754]},{"channel":"edge12","coefficient":1,"kind":"side","node":23150,"targets":[756,759]},{"channel":"edge12","coefficient":1,"kind":"side","node":23118,"targets":[757,758]},{"channel":"u01","coefficient":1,"kind":"side","node":24228,"targets":[752]},{"channel":"w02","coefficient":1,"kind":"side","node":24232,"targets":[752]},{"channel":"partner","coefficient":1,"kind":"side","node":755,"targets":[752]},{"channel":"u01","coefficient":1,"kind":"side","node":24228,"targets":[753]},{"channel":"w02","coefficient":1,"kind":"side","node":24233,"targets":[753]},{"channel":"partner","coefficient":1,"kind":"side","node":754,"targets":[753]},{"channel":"u01","coefficient":1,"kind":"side","node":24229,"targets":[754]},{"channel":"w02","coefficient":1,"kind":"side","node":24232,"targets":[754]},{"channel":"partner","coefficient":1,"kind":"side","node":753,"targets":[754]},{"channel":"u01","coefficient":1,"kind":"side","node":24229,"targets":[755]},{"channel":"w02","coefficient":1,"kind":"side","node":24233,"targets":[755]},{"channel":"partner","coefficient":1,"kind":"side","node":752,"targets":[755]},{"channel":"u01","coefficient":1,"kind":"side","node":24230,"targets":[756]},{"channel":"w02","coefficient":1,"kind":"side","node":24234,"targets":[756]},{"channel":"partner","coefficient":1,"kind":"side","node":759,"targets":[756]},{"channel":"u01","coefficient":1,"kind":"side","node":24230,"targets":[757]},{"channel":"w02","coefficient":1,"kind":"side","node":24235,"targets":[757]},{"channel":"partner","coefficient":1,"kind":"side","node":758,"targets":[757]},{"channel":"u01","coefficient":1,"kind":"side","node":24231,"targets":[758]},{"channel":"w02","coefficient":1,"kind":"side","node":24234,"targets":[758]},{"channel":"partner","coefficient":1,"kind":"side","node":757,"targets":[758]},{"channel":"u01","coefficient":1,"kind":"side","node":24231,"targets":[759]},{"channel":"w02","coefficient":1,"kind":"side","node":24235,"targets":[759]},{"channel":"partner","coefficient":1,"kind":"side","node":756,"targets":[759]},{"channel":"face0","coefficient":1,"kind":"side","node":9437,"targets":[760,761,762,763]},{"channel":"face0","coefficient":1,"kind":"side","node":9900,"targets":[764,765,766,767]},{"channel":"edge12","coefficient":1,"kind":"side","node":23214,"targets":[760,763]},{"channel":"edge12","coefficient":1,"kind":"side","node":23182,"targets":[761,762]},{"channel":"edge12","coefficient":1,"kind":"side","node":23214,"targets":[764,767]},{"channel":"edge12","coefficient":1,"kind":"side","node":23182,"targets":[765,766]},{"channel":"u01","coefficient":1,"kind":"side","node":24236,"targets":[760]},{"channel":"w02","coefficient":1,"kind":"side","node":24240,"targets":[760]},{"channel":"partner","coefficient":1,"kind":"side","node":763,"targets":[760]},{"channel":"u01","coefficient":1,"kind":"side","node":24236,"targets":[761]},{"channel":"w02","coefficient":1,"kind":"side","node":24241,"targets":[761]},{"channel":"partner","coefficient":1,"kind":"side","node":762,"targets":[761]},{"channel":"u01","coefficient":1,"kind":"side","node":24237,"targets":[762]},{"channel":"w02","coefficient":1,"kind":"side","node":24240,"targets":[762]},{"channel":"partner","coefficient":1,"kind":"side","node":761,"targets":[762]},{"channel":"u01","coefficient":1,"kind":"side","node":24237,"targets":[763]},{"channel":"w02","coefficient":1,"kind":"side","node":24241,"targets":[763]},{"channel":"partner","coefficient":1,"kind":"side","node":760,"targets":[763]},{"channel":"u01","coefficient":1,"kind":"side","node":24238,"targets":[764]},{"channel":"w02","coefficient":1,"kind":"side","node":24242,"targets":[764]},{"channel":"partner","coefficient":1,"kind":"side","node":767,"targets":[764]},{"channel":"u01","coefficient":1,"kind":"side","node":24238,"targets":[765]},{"channel":"w02","coefficient":1,"kind":"side","node":24243,"targets":[765]},{"channel":"partner","coefficient":1,"kind":"side","node":766,"targets":[765]},{"channel":"u01","coefficient":1,"kind":"side","node":24239,"targets":[766]},{"channel":"w02","coefficient":1,"kind":"side","node":24242,"targets":[766]},{"channel":"partner","coefficient":1,"kind":"side","node":765,"targets":[766]},{"channel":"u01","coefficient":1,"kind":"side","node":24239,"targets":[767]},{"channel":"w02","coefficient":1,"kind":"side","node":24243,"targets":[767]},{"channel":"partner","coefficient":1,"kind":"side","node":764,"targets":[767]},{"channel":"face0","coefficient":1,"kind":"side","node":9484,"targets":[768,769,770,771]},{"channel":"face0","coefficient":1,"kind":"side","node":9947,"targets":[772,773,774,775]},{"channel":"edge12","coefficient":1,"kind":"side","node":23278,"targets":[768,771]},{"channel":"edge12","coefficient":1,"kind":"side","node":23246,"targets":[769,770]},{"channel":"edge12","coefficient":1,"kind":"side","node":23278,"targets":[772,775]},{"channel":"edge12","coefficient":1,"kind":"side","node":23246,"targets":[773,774]},{"channel":"u01","coefficient":1,"kind":"side","node":24244,"targets":[768]},{"channel":"w02","coefficient":1,"kind":"side","node":24248,"targets":[768]},{"channel":"partner","coefficient":1,"kind":"side","node":771,"targets":[768]},{"channel":"u01","coefficient":1,"kind":"side","node":24244,"targets":[769]},{"channel":"w02","coefficient":1,"kind":"side","node":24249,"targets":[769]},{"channel":"partner","coefficient":1,"kind":"side","node":770,"targets":[769]},{"channel":"u01","coefficient":1,"kind":"side","node":24245,"targets":[770]},{"channel":"w02","coefficient":1,"kind":"side","node":24248,"targets":[770]},{"channel":"partner","coefficient":1,"kind":"side","node":769,"targets":[770]},{"channel":"u01","coefficient":1,"kind":"side","node":24245,"targets":[771]},{"channel":"w02","coefficient":1,"kind":"side","node":24249,"targets":[771]},{"channel":"partner","coefficient":1,"kind":"side","node":768,"targets":[771]},{"channel":"u01","coefficient":1,"kind":"side","node":24246,"targets":[772]},{"channel":"w02","coefficient":1,"kind":"side","node":24250,"targets":[772]},{"channel":"partner","coefficient":1,"kind":"side","node":775,"targets":[772]},{"channel":"u01","coefficient":1,"kind":"side","node":24246,"targets":[773]},{"channel":"w02","coefficient":1,"kind":"side","node":24251,"targets":[773]},{"channel":"partner","coefficient":1,"kind":"side","node":774,"targets":[773]},{"channel":"u01","coefficient":1,"kind":"side","node":24247,"targets":[774]},{"channel":"w02","coefficient":1,"kind":"side","node":24250,"targets":[774]},{"channel":"partner","coefficient":1,"kind":"side","node":773,"targets":[774]},{"channel":"u01","coefficient":1,"kind":"side","node":24247,"targets":[775]},{"channel":"w02","coefficient":1,"kind":"side","node":24251,"targets":[775]},{"channel":"partner","coefficient":1,"kind":"side","node":772,"targets":[775]},{"channel":"face0","coefficient":1,"kind":"side","node":9520,"targets":[776,777,778,779]},{"channel":"face0","coefficient":1,"kind":"side","node":9983,"targets":[780,781,782,783]},{"channel":"edge12","coefficient":1,"kind":"side","node":23342,"targets":[776,779]},{"channel":"edge12","coefficient":1,"kind":"side","node":23310,"targets":[777,778]},{"channel":"edge12","coefficient":1,"kind":"side","node":23342,"targets":[780,783]},{"channel":"edge12","coefficient":1,"kind":"side","node":23310,"targets":[781,782]},{"channel":"u01","coefficient":1,"kind":"side","node":24252,"targets":[776]},{"channel":"w02","coefficient":1,"kind":"side","node":24256,"targets":[776]},{"channel":"partner","coefficient":1,"kind":"side","node":779,"targets":[776]},{"channel":"u01","coefficient":1,"kind":"side","node":24252,"targets":[777]},{"channel":"w02","coefficient":1,"kind":"side","node":24257,"targets":[777]},{"channel":"partner","coefficient":1,"kind":"side","node":778,"targets":[777]},{"channel":"u01","coefficient":1,"kind":"side","node":24253,"targets":[778]},{"channel":"w02","coefficient":1,"kind":"side","node":24256,"targets":[778]},{"channel":"partner","coefficient":1,"kind":"side","node":777,"targets":[778]},{"channel":"u01","coefficient":1,"kind":"side","node":24253,"targets":[779]},{"channel":"w02","coefficient":1,"kind":"side","node":24257,"targets":[779]},{"channel":"partner","coefficient":1,"kind":"side","node":776,"targets":[779]},{"channel":"u01","coefficient":1,"kind":"side","node":24254,"targets":[780]},{"channel":"w02","coefficient":1,"kind":"side","node":24258,"targets":[780]},{"channel":"partner","coefficient":1,"kind":"side","node":783,"targets":[780]},{"channel":"u01","coefficient":1,"kind":"side","node":24254,"targets":[781]},{"channel":"w02","coefficient":1,"kind":"side","node":24259,"targets":[781]},{"channel":"partner","coefficient":1,"kind":"side","node":782,"targets":[781]},{"channel":"u01","coefficient":1,"kind":"side","node":24255,"targets":[782]},{"channel":"w02","coefficient":1,"kind":"side","node":24258,"targets":[782]},{"channel":"partner","coefficient":1,"kind":"side","node":781,"targets":[782]},{"channel":"u01","coefficient":1,"kind":"side","node":24255,"targets":[783]},{"channel":"w02","coefficient":1,"kind":"side","node":24259,"targets":[783]},{"channel":"partner","coefficient":1,"kind":"side","node":780,"targets":[783]},{"channel":"face0","coefficient":1,"kind":"side","node":9434,"targets":[784,785,786,787]},{"channel":"face0","coefficient":1,"kind":"side","node":9897,"targets":[788,789,790,791]},{"channel":"edge12","coefficient":1,"kind":"side","node":23406,"targets":[784,787]},{"channel":"edge12","coefficient":1,"kind":"side","node":23374,"targets":[785,786]},{"channel":"edge12","coefficient":1,"kind":"side","node":23406,"targets":[788,791]},{"channel":"edge12","coefficient":1,"kind":"side","node":23374,"targets":[789,790]},{"channel":"u01","coefficient":1,"kind":"side","node":24260,"targets":[784]},{"channel":"w02","coefficient":1,"kind":"side","node":24264,"targets":[784]},{"channel":"partner","coefficient":1,"kind":"side","node":787,"targets":[784]},{"channel":"u01","coefficient":1,"kind":"side","node":24260,"targets":[785]},{"channel":"w02","coefficient":1,"kind":"side","node":24265,"targets":[785]},{"channel":"partner","coefficient":1,"kind":"side","node":786,"targets":[785]},{"channel":"u01","coefficient":1,"kind":"side","node":24261,"targets":[786]},{"channel":"w02","coefficient":1,"kind":"side","node":24264,"targets":[786]},{"channel":"partner","coefficient":1,"kind":"side","node":785,"targets":[786]},{"channel":"u01","coefficient":1,"kind":"side","node":24261,"targets":[787]},{"channel":"w02","coefficient":1,"kind":"side","node":24265,"targets":[787]},{"channel":"partner","coefficient":1,"kind":"side","node":784,"targets":[787]},{"channel":"u01","coefficient":1,"kind":"side","node":24262,"targets":[788]},{"channel":"w02","coefficient":1,"kind":"side","node":24266,"targets":[788]},{"channel":"partner","coefficient":1,"kind":"side","node":791,"targets":[788]},{"channel":"u01","coefficient":1,"kind":"side","node":24262,"targets":[789]},{"channel":"w02","coefficient":1,"kind":"side","node":24267,"targets":[789]},{"channel":"partner","coefficient":1,"kind":"side","node":790,"targets":[789]},{"channel":"u01","coefficient":1,"kind":"side","node":24263,"targets":[790]},{"channel":"w02","coefficient":1,"kind":"side","node":24266,"targets":[790]},{"channel":"partner","coefficient":1,"kind":"side","node":789,"targets":[790]},{"channel":"u01","coefficient":1,"kind":"side","node":24263,"targets":[791]},{"channel":"w02","coefficient":1,"kind":"side","node":24267,"targets":[791]},{"channel":"partner","coefficient":1,"kind":"side","node":788,"targets":[791]},{"channel":"face0","coefficient":1,"kind":"side","node":9357,"targets":[792,793,794,795]},{"channel":"face0","coefficient":1,"kind":"side","node":9820,"targets":[796,797,798,799]},{"channel":"edge12","coefficient":1,"kind":"side","node":23470,"targets":[792,795]},{"channel":"edge12","coefficient":1,"kind":"side","node":23438,"targets":[793,794]},{"channel":"edge12","coefficient":1,"kind":"side","node":23470,"targets":[796,799]},{"channel":"edge12","coefficient":1,"kind":"side","node":23438,"targets":[797,798]},{"channel":"u01","coefficient":1,"kind":"side","node":24268,"targets":[792]},{"channel":"w02","coefficient":1,"kind":"side","node":24272,"targets":[792]},{"channel":"partner","coefficient":1,"kind":"side","node":795,"targets":[792]},{"channel":"u01","coefficient":1,"kind":"side","node":24268,"targets":[793]},{"channel":"w02","coefficient":1,"kind":"side","node":24273,"targets":[793]},{"channel":"partner","coefficient":1,"kind":"side","node":794,"targets":[793]},{"channel":"u01","coefficient":1,"kind":"side","node":24269,"targets":[794]},{"channel":"w02","coefficient":1,"kind":"side","node":24272,"targets":[794]},{"channel":"partner","coefficient":1,"kind":"side","node":793,"targets":[794]},{"channel":"u01","coefficient":1,"kind":"side","node":24269,"targets":[795]},{"channel":"w02","coefficient":1,"kind":"side","node":24273,"targets":[795]},{"channel":"partner","coefficient":1,"kind":"side","node":792,"targets":[795]},{"channel":"u01","coefficient":1,"kind":"side","node":24270,"targets":[796]},{"channel":"w02","coefficient":1,"kind":"side","node":24274,"targets":[796]},{"channel":"partner","coefficient":1,"kind":"side","node":799,"targets":[796]},{"channel":"u01","coefficient":1,"kind":"side","node":24270,"targets":[797]},{"channel":"w02","coefficient":1,"kind":"side","node":24275,"targets":[797]},{"channel":"partner","coefficient":1,"kind":"side","node":798,"targets":[797]},{"channel":"u01","coefficient":1,"kind":"side","node":24271,"targets":[798]},{"channel":"w02","coefficient":1,"kind":"side","node":24274,"targets":[798]},{"channel":"partner","coefficient":1,"kind":"side","node":797,"targets":[798]},{"channel":"u01","coefficient":1,"kind":"side","node":24271,"targets":[799]},{"channel":"w02","coefficient":1,"kind":"side","node":24275,"targets":[799]},{"channel":"partner","coefficient":1,"kind":"side","node":796,"targets":[799]},{"channel":"face0","coefficient":1,"kind":"side","node":10408,"targets":[800,801,802,803]},{"channel":"face0","coefficient":1,"kind":"side","node":10871,"targets":[804,805,806,807]},{"channel":"edge12","coefficient":1,"kind":"side","node":21228,"targets":[800,803]},{"channel":"edge12","coefficient":1,"kind":"side","node":21196,"targets":[801,802]},{"channel":"edge12","coefficient":1,"kind":"side","node":21228,"targets":[804,807]},{"channel":"edge12","coefficient":1,"kind":"side","node":21196,"targets":[805,806]},{"channel":"u01","coefficient":1,"kind":"side","node":24276,"targets":[800]},{"channel":"w02","coefficient":1,"kind":"side","node":24280,"targets":[800]},{"channel":"partner","coefficient":1,"kind":"side","node":803,"targets":[800]},{"channel":"u01","coefficient":1,"kind":"side","node":24276,"targets":[801]},{"channel":"w02","coefficient":1,"kind":"side","node":24281,"targets":[801]},{"channel":"partner","coefficient":1,"kind":"side","node":802,"targets":[801]},{"channel":"u01","coefficient":1,"kind":"side","node":24277,"targets":[802]},{"channel":"w02","coefficient":1,"kind":"side","node":24280,"targets":[802]},{"channel":"partner","coefficient":1,"kind":"side","node":801,"targets":[802]},{"channel":"u01","coefficient":1,"kind":"side","node":24277,"targets":[803]},{"channel":"w02","coefficient":1,"kind":"side","node":24281,"targets":[803]},{"channel":"partner","coefficient":1,"kind":"side","node":800,"targets":[803]},{"channel":"u01","coefficient":1,"kind":"side","node":24278,"targets":[804]},{"channel":"w02","coefficient":1,"kind":"side","node":24282,"targets":[804]},{"channel":"partner","coefficient":1,"kind":"side","node":807,"targets":[804]},{"channel":"u01","coefficient":1,"kind":"side","node":24278,"targets":[805]},{"channel":"w02","coefficient":1,"kind":"side","node":24283,"targets":[805]},{"channel":"partner","coefficient":1,"kind":"side","node":806,"targets":[805]},{"channel":"u01","coefficient":1,"kind":"side","node":24279,"targets":[806]},{"channel":"w02","coefficient":1,"kind":"side","node":24282,"targets":[806]},{"channel":"partner","coefficient":1,"kind":"side","node":805,"targets":[806]},{"channel":"u01","coefficient":1,"kind":"side","node":24279,"targets":[807]},{"channel":"w02","coefficient":1,"kind":"side","node":24283,"targets":[807]},{"channel":"partner","coefficient":1,"kind":"side","node":804,"targets":[807]},{"channel":"face0","coefficient":1,"kind":"side","node":10438,"targets":[808,809,810,811]},{"channel":"face0","coefficient":1,"kind":"side","node":10901,"targets":[812,813,814,815]},{"channel":"edge12","coefficient":1,"kind":"side","node":21292,"targets":[808,811]},{"channel":"edge12","coefficient":1,"kind":"side","node":21260,"targets":[809,810]},{"channel":"edge12","coefficient":1,"kind":"side","node":21292,"targets":[812,815]},{"channel":"edge12","coefficient":1,"kind":"side","node":21260,"targets":[813,814]},{"channel":"u01","coefficient":1,"kind":"side","node":24284,"targets":[808]},{"channel":"w02","coefficient":1,"kind":"side","node":24288,"targets":[808]},{"channel":"partner","coefficient":1,"kind":"side","node":811,"targets":[808]},{"channel":"u01","coefficient":1,"kind":"side","node":24284,"targets":[809]},{"channel":"w02","coefficient":1,"kind":"side","node":24289,"targets":[809]},{"channel":"partner","coefficient":1,"kind":"side","node":810,"targets":[809]},{"channel":"u01","coefficient":1,"kind":"side","node":24285,"targets":[810]},{"channel":"w02","coefficient":1,"kind":"side","node":24288,"targets":[810]},{"channel":"partner","coefficient":1,"kind":"side","node":809,"targets":[810]},{"channel":"u01","coefficient":1,"kind":"side","node":24285,"targets":[811]},{"channel":"w02","coefficient":1,"kind":"side","node":24289,"targets":[811]},{"channel":"partner","coefficient":1,"kind":"side","node":808,"targets":[811]},{"channel":"u01","coefficient":1,"kind":"side","node":24286,"targets":[812]},{"channel":"w02","coefficient":1,"kind":"side","node":24290,"targets":[812]},{"channel":"partner","coefficient":1,"kind":"side","node":815,"targets":[812]},{"channel":"u01","coefficient":1,"kind":"side","node":24286,"targets":[813]},{"channel":"w02","coefficient":1,"kind":"side","node":24291,"targets":[813]},{"channel":"partner","coefficient":1,"kind":"side","node":814,"targets":[813]},{"channel":"u01","coefficient":1,"kind":"side","node":24287,"targets":[814]},{"channel":"w02","coefficient":1,"kind":"side","node":24290,"targets":[814]},{"channel":"partner","coefficient":1,"kind":"side","node":813,"targets":[814]},{"channel":"u01","coefficient":1,"kind":"side","node":24287,"targets":[815]},{"channel":"w02","coefficient":1,"kind":"side","node":24291,"targets":[815]},{"channel":"partner","coefficient":1,"kind":"side","node":812,"targets":[815]},{"channel":"face0","coefficient":1,"kind":"side","node":10432,"targets":[816,817,818,819]},{"channel":"face0","coefficient":1,"kind":"side","node":10895,"targets":[820,821,822,823]},{"channel":"edge12","coefficient":1,"kind":"side","node":21356,"targets":[816,819]},{"channel":"edge12","coefficient":1,"kind":"side","node":21324,"targets":[817,818]},{"channel":"edge12","coefficient":1,"kind":"side","node":21356,"targets":[820,823]},{"channel":"edge12","coefficient":1,"kind":"side","node":21324,"targets":[821,822]},{"channel":"u01","coefficient":1,"kind":"side","node":24292,"targets":[816]},{"channel":"w02","coefficient":1,"kind":"side","node":24296,"targets":[816]},{"channel":"partner","coefficient":1,"kind":"side","node":819,"targets":[816]},{"channel":"u01","coefficient":1,"kind":"side","node":24292,"targets":[817]},{"channel":"w02","coefficient":1,"kind":"side","node":24297,"targets":[817]},{"channel":"partner","coefficient":1,"kind":"side","node":818,"targets":[817]},{"channel":"u01","coefficient":1,"kind":"side","node":24293,"targets":[818]},{"channel":"w02","coefficient":1,"kind":"side","node":24296,"targets":[818]},{"channel":"partner","coefficient":1,"kind":"side","node":817,"targets":[818]},{"channel":"u01","coefficient":1,"kind":"side","node":24293,"targets":[819]},{"channel":"w02","coefficient":1,"kind":"side","node":24297,"targets":[819]},{"channel":"partner","coefficient":1,"kind":"side","node":816,"targets":[819]},{"channel":"u01","coefficient":1,"kind":"side","node":24294,"targets":[820]},{"channel":"w02","coefficient":1,"kind":"side","node":24298,"targets":[820]},{"channel":"partner","coefficient":1,"kind":"side","node":823,"targets":[820]},{"channel":"u01","coefficient":1,"kind":"side","node":24294,"targets":[821]},{"channel":"w02","coefficient":1,"kind":"side","node":24299,"targets":[821]},{"channel":"partner","coefficient":1,"kind":"side","node":822,"targets":[821]},{"channel":"u01","coefficient":1,"kind":"side","node":24295,"targets":[822]},{"channel":"w02","coefficient":1,"kind":"side","node":24298,"targets":[822]},{"channel":"partner","coefficient":1,"kind":"side","node":821,"targets":[822]},{"channel":"u01","coefficient":1,"kind":"side","node":24295,"targets":[823]},{"channel":"w02","coefficient":1,"kind":"side","node":24299,"targets":[823]},{"channel":"partner","coefficient":1,"kind":"side","node":820,"targets":[823]},{"channel":"face0","coefficient":1,"kind":"side","node":10402,"targets":[824,825,826,827]},{"channel":"face0","coefficient":1,"kind":"side","node":10865,"targets":[828,829,830,831]},{"channel":"edge12","coefficient":1,"kind":"side","node":21420,"targets":[824,827]},{"channel":"edge12","coefficient":1,"kind":"side","node":21388,"targets":[825,826]},{"channel":"edge12","coefficient":1,"kind":"side","node":21420,"targets":[828,831]},{"channel":"edge12","coefficient":1,"kind":"side","node":21388,"targets":[829,830]},{"channel":"u01","coefficient":1,"kind":"side","node":24300,"targets":[824]},{"channel":"w02","coefficient":1,"kind":"side","node":24304,"targets":[824]},{"channel":"partner","coefficient":1,"kind":"side","node":827,"targets":[824]},{"channel":"u01","coefficient":1,"kind":"side","node":24300,"targets":[825]},{"channel":"w02","coefficient":1,"kind":"side","node":24305,"targets":[825]},{"channel":"partner","coefficient":1,"kind":"side","node":826,"targets":[825]},{"channel":"u01","coefficient":1,"kind":"side","node":24301,"targets":[826]},{"channel":"w02","coefficient":1,"kind":"side","node":24304,"targets":[826]},{"channel":"partner","coefficient":1,"kind":"side","node":825,"targets":[826]},{"channel":"u01","coefficient":1,"kind":"side","node":24301,"targets":[827]},{"channel":"w02","coefficient":1,"kind":"side","node":24305,"targets":[827]},{"channel":"partner","coefficient":1,"kind":"side","node":824,"targets":[827]},{"channel":"u01","coefficient":1,"kind":"side","node":24302,"targets":[828]},{"channel":"w02","coefficient":1,"kind":"side","node":24306,"targets":[828]},{"channel":"partner","coefficient":1,"kind":"side","node":831,"targets":[828]},{"channel":"u01","coefficient":1,"kind":"side","node":24302,"targets":[829]},{"channel":"w02","coefficient":1,"kind":"side","node":24307,"targets":[829]},{"channel":"partner","coefficient":1,"kind":"side","node":830,"targets":[829]},{"channel":"u01","coefficient":1,"kind":"side","node":24303,"targets":[830]},{"channel":"w02","coefficient":1,"kind":"side","node":24306,"targets":[830]},{"channel":"partner","coefficient":1,"kind":"side","node":829,"targets":[830]},{"channel":"u01","coefficient":1,"kind":"side","node":24303,"targets":[831]},{"channel":"w02","coefficient":1,"kind":"side","node":24307,"targets":[831]},{"channel":"partner","coefficient":1,"kind":"side","node":828,"targets":[831]},{"channel":"face0","coefficient":1,"kind":"side","node":10414,"targets":[832,833,834,835]},{"channel":"face0","coefficient":1,"kind":"side","node":10877,"targets":[836,837,838,839]},{"channel":"edge12","coefficient":1,"kind":"side","node":21484,"targets":[832,835]},{"channel":"edge12","coefficient":1,"kind":"side","node":21452,"targets":[833,834]},{"channel":"edge12","coefficient":1,"kind":"side","node":21484,"targets":[836,839]},{"channel":"edge12","coefficient":1,"kind":"side","node":21452,"targets":[837,838]},{"channel":"u01","coefficient":1,"kind":"side","node":24308,"targets":[832]},{"channel":"w02","coefficient":1,"kind":"side","node":24312,"targets":[832]},{"channel":"partner","coefficient":1,"kind":"side","node":835,"targets":[832]},{"channel":"u01","coefficient":1,"kind":"side","node":24308,"targets":[833]},{"channel":"w02","coefficient":1,"kind":"side","node":24313,"targets":[833]},{"channel":"partner","coefficient":1,"kind":"side","node":834,"targets":[833]},{"channel":"u01","coefficient":1,"kind":"side","node":24309,"targets":[834]},{"channel":"w02","coefficient":1,"kind":"side","node":24312,"targets":[834]},{"channel":"partner","coefficient":1,"kind":"side","node":833,"targets":[834]},{"channel":"u01","coefficient":1,"kind":"side","node":24309,"targets":[835]},{"channel":"w02","coefficient":1,"kind":"side","node":24313,"targets":[835]},{"channel":"partner","coefficient":1,"kind":"side","node":832,"targets":[835]},{"channel":"u01","coefficient":1,"kind":"side","node":24310,"targets":[836]},{"channel":"w02","coefficient":1,"kind":"side","node":24314,"targets":[836]},{"channel":"partner","coefficient":1,"kind":"side","node":839,"targets":[836]},{"channel":"u01","coefficient":1,"kind":"side","node":24310,"targets":[837]},{"channel":"w02","coefficient":1,"kind":"side","node":24315,"targets":[837]},{"channel":"partner","coefficient":1,"kind":"side","node":838,"targets":[837]},{"channel":"u01","coefficient":1,"kind":"side","node":24311,"targets":[838]},{"channel":"w02","coefficient":1,"kind":"side","node":24314,"targets":[838]},{"channel":"partner","coefficient":1,"kind":"side","node":837,"targets":[838]},{"channel":"u01","coefficient":1,"kind":"side","node":24311,"targets":[839]},{"channel":"w02","coefficient":1,"kind":"side","node":24315,"targets":[839]},{"channel":"partner","coefficient":1,"kind":"side","node":836,"targets":[839]},{"channel":"face0","coefficient":1,"kind":"side","node":10431,"targets":[840,841,842,843]},{"channel":"face0","coefficient":1,"kind":"side","node":10894,"targets":[844,845,846,847]},{"channel":"edge12","coefficient":1,"kind":"side","node":21548,"targets":[840,843]},{"channel":"edge12","coefficient":1,"kind":"side","node":21516,"targets":[841,842]},{"channel":"edge12","coefficient":1,"kind":"side","node":21548,"targets":[844,847]},{"channel":"edge12","coefficient":1,"kind":"side","node":21516,"targets":[845,846]},{"channel":"u01","coefficient":1,"kind":"side","node":24316,"targets":[840]},{"channel":"w02","coefficient":1,"kind":"side","node":24320,"targets":[840]},{"channel":"partner","coefficient":1,"kind":"side","node":843,"targets":[840]},{"channel":"u01","coefficient":1,"kind":"side","node":24316,"targets":[841]},{"channel":"w02","coefficient":1,"kind":"side","node":24321,"targets":[841]},{"channel":"partner","coefficient":1,"kind":"side","node":842,"targets":[841]},{"channel":"u01","coefficient":1,"kind":"side","node":24317,"targets":[842]},{"channel":"w02","coefficient":1,"kind":"side","node":24320,"targets":[842]},{"channel":"partner","coefficient":1,"kind":"side","node":841,"targets":[842]},{"channel":"u01","coefficient":1,"kind":"side","node":24317,"targets":[843]},{"channel":"w02","coefficient":1,"kind":"side","node":24321,"targets":[843]},{"channel":"partner","coefficient":1,"kind":"side","node":840,"targets":[843]},{"channel":"u01","coefficient":1,"kind":"side","node":24318,"targets":[844]},{"channel":"w02","coefficient":1,"kind":"side","node":24322,"targets":[844]},{"channel":"partner","coefficient":1,"kind":"side","node":847,"targets":[844]},{"channel":"u01","coefficient":1,"kind":"side","node":24318,"targets":[845]},{"channel":"w02","coefficient":1,"kind":"side","node":24323,"targets":[845]},{"channel":"partner","coefficient":1,"kind":"side","node":846,"targets":[845]},{"channel":"u01","coefficient":1,"kind":"side","node":24319,"targets":[846]},{"channel":"w02","coefficient":1,"kind":"side","node":24322,"targets":[846]},{"channel":"partner","coefficient":1,"kind":"side","node":845,"targets":[846]},{"channel":"u01","coefficient":1,"kind":"side","node":24319,"targets":[847]},{"channel":"w02","coefficient":1,"kind":"side","node":24323,"targets":[847]},{"channel":"partner","coefficient":1,"kind":"side","node":844,"targets":[847]},{"channel":"face0","coefficient":1,"kind":"side","node":10313,"targets":[848,849,850,851]},{"channel":"face0","coefficient":1,"kind":"side","node":10776,"targets":[852,853,854,855]},{"channel":"edge12","coefficient":1,"kind":"side","node":21612,"targets":[848,851]},{"channel":"edge12","coefficient":1,"kind":"side","node":21580,"targets":[849,850]},{"channel":"edge12","coefficient":1,"kind":"side","node":21612,"targets":[852,855]},{"channel":"edge12","coefficient":1,"kind":"side","node":21580,"targets":[853,854]},{"channel":"u01","coefficient":1,"kind":"side","node":24324,"targets":[848]},{"channel":"w02","coefficient":1,"kind":"side","node":24328,"targets":[848]},{"channel":"partner","coefficient":1,"kind":"side","node":851,"targets":[848]},{"channel":"u01","coefficient":1,"kind":"side","node":24324,"targets":[849]},{"channel":"w02","coefficient":1,"kind":"side","node":24329,"targets":[849]},{"channel":"partner","coefficient":1,"kind":"side","node":850,"targets":[849]},{"channel":"u01","coefficient":1,"kind":"side","node":24325,"targets":[850]},{"channel":"w02","coefficient":1,"kind":"side","node":24328,"targets":[850]},{"channel":"partner","coefficient":1,"kind":"side","node":849,"targets":[850]},{"channel":"u01","coefficient":1,"kind":"side","node":24325,"targets":[851]},{"channel":"w02","coefficient":1,"kind":"side","node":24329,"targets":[851]},{"channel":"partner","coefficient":1,"kind":"side","node":848,"targets":[851]},{"channel":"u01","coefficient":1,"kind":"side","node":24326,"targets":[852]},{"channel":"w02","coefficient":1,"kind":"side","node":24330,"targets":[852]},{"channel":"partner","coefficient":1,"kind":"side","node":855,"targets":[852]},{"channel":"u01","coefficient":1,"kind":"side","node":24326,"targets":[853]},{"channel":"w02","coefficient":1,"kind":"side","node":24331,"targets":[853]},{"channel":"partner","coefficient":1,"kind":"side","node":854,"targets":[853]},{"channel":"u01","coefficient":1,"kind":"side","node":24327,"targets":[854]},{"channel":"w02","coefficient":1,"kind":"side","node":24330,"targets":[854]},{"channel":"partner","coefficient":1,"kind":"side","node":853,"targets":[854]},{"channel":"u01","coefficient":1,"kind":"side","node":24327,"targets":[855]},{"channel":"w02","coefficient":1,"kind":"side","node":24331,"targets":[855]},{"channel":"partner","coefficient":1,"kind":"side","node":852,"targets":[855]},{"channel":"face0","coefficient":1,"kind":"side","node":10330,"targets":[856,857,858,859]},{"channel":"face0","coefficient":1,"kind":"side","node":10793,"targets":[860,861,862,863]},{"channel":"edge12","coefficient":1,"kind":"side","node":21676,"targets":[856,859]},{"channel":"edge12","coefficient":1,"kind":"side","node":21644,"targets":[857,858]},{"channel":"edge12","coefficient":1,"kind":"side","node":21676,"targets":[860,863]},{"channel":"edge12","coefficient":1,"kind":"side","node":21644,"targets":[861,862]},{"channel":"u01","coefficient":1,"kind":"side","node":24332,"targets":[856]},{"channel":"w02","coefficient":1,"kind":"side","node":24336,"targets":[856]},{"channel":"partner","coefficient":1,"kind":"side","node":859,"targets":[856]},{"channel":"u01","coefficient":1,"kind":"side","node":24332,"targets":[857]},{"channel":"w02","coefficient":1,"kind":"side","node":24337,"targets":[857]},{"channel":"partner","coefficient":1,"kind":"side","node":858,"targets":[857]},{"channel":"u01","coefficient":1,"kind":"side","node":24333,"targets":[858]},{"channel":"w02","coefficient":1,"kind":"side","node":24336,"targets":[858]},{"channel":"partner","coefficient":1,"kind":"side","node":857,"targets":[858]},{"channel":"u01","coefficient":1,"kind":"side","node":24333,"targets":[859]},{"channel":"w02","coefficient":1,"kind":"side","node":24337,"targets":[859]},{"channel":"partner","coefficient":1,"kind":"side","node":856,"targets":[859]},{"channel":"u01","coefficient":1,"kind":"side","node":24334,"targets":[860]},{"channel":"w02","coefficient":1,"kind":"side","node":24338,"targets":[860]},{"channel":"partner","coefficient":1,"kind":"side","node":863,"targets":[860]},{"channel":"u01","coefficient":1,"kind":"side","node":24334,"targets":[861]},{"channel":"w02","coefficient":1,"kind":"side","node":24339,"targets":[861]},{"channel":"partner","coefficient":1,"kind":"side","node":862,"targets":[861]},{"channel":"u01","coefficient":1,"kind":"side","node":24335,"targets":[862]},{"channel":"w02","coefficient":1,"kind":"side","node":24338,"targets":[862]},{"channel":"partner","coefficient":1,"kind":"side","node":861,"targets":[862]},{"channel":"u01","coefficient":1,"kind":"side","node":24335,"targets":[863]},{"channel":"w02","coefficient":1,"kind":"side","node":24339,"targets":[863]},{"channel":"partner","coefficient":1,"kind":"side","node":860,"targets":[863]},{"channel":"face0","coefficient":1,"kind":"side","node":10442,"targets":[864,865,866,867]},{"channel":"face0","coefficient":1,"kind":"side","node":10905,"targets":[868,869,870,871]},{"channel":"edge12","coefficient":1,"kind":"side","node":21740,"targets":[864,867]},{"channel":"edge12","coefficient":1,"kind":"side","node":21708,"targets":[865,866]},{"channel":"edge12","coefficient":1,"kind":"side","node":21740,"targets":[868,871]},{"channel":"edge12","coefficient":1,"kind":"side","node":21708,"targets":[869,870]},{"channel":"u01","coefficient":1,"kind":"side","node":24340,"targets":[864]},{"channel":"w02","coefficient":1,"kind":"side","node":24344,"targets":[864]},{"channel":"partner","coefficient":1,"kind":"side","node":867,"targets":[864]},{"channel":"u01","coefficient":1,"kind":"side","node":24340,"targets":[865]},{"channel":"w02","coefficient":1,"kind":"side","node":24345,"targets":[865]},{"channel":"partner","coefficient":1,"kind":"side","node":866,"targets":[865]},{"channel":"u01","coefficient":1,"kind":"side","node":24341,"targets":[866]},{"channel":"w02","coefficient":1,"kind":"side","node":24344,"targets":[866]},{"channel":"partner","coefficient":1,"kind":"side","node":865,"targets":[866]},{"channel":"u01","coefficient":1,"kind":"side","node":24341,"targets":[867]},{"channel":"w02","coefficient":1,"kind":"side","node":24345,"targets":[867]},{"channel":"partner","coefficient":1,"kind":"side","node":864,"targets":[867]},{"channel":"u01","coefficient":1,"kind":"side","node":24342,"targets":[868]},{"channel":"w02","coefficient":1,"kind":"side","node":24346,"targets":[868]},{"channel":"partner","coefficient":1,"kind":"side","node":871,"targets":[868]},{"channel":"u01","coefficient":1,"kind":"side","node":24342,"targets":[869]},{"channel":"w02","coefficient":1,"kind":"side","node":24347,"targets":[869]},{"channel":"partner","coefficient":1,"kind":"side","node":870,"targets":[869]},{"channel":"u01","coefficient":1,"kind":"side","node":24343,"targets":[870]},{"channel":"w02","coefficient":1,"kind":"side","node":24346,"targets":[870]},{"channel":"partner","coefficient":1,"kind":"side","node":869,"targets":[870]},{"channel":"u01","coefficient":1,"kind":"side","node":24343,"targets":[871]},{"channel":"w02","coefficient":1,"kind":"side","node":24347,"targets":[871]},{"channel":"partner","coefficient":1,"kind":"side","node":868,"targets":[871]},{"channel":"face0","coefficient":1,"kind":"side","node":10420,"targets":[872,873,874,875]},{"channel":"face0","coefficient":1,"kind":"side","node":10883,"targets":[876,877,878,879]},{"channel":"edge12","coefficient":1,"kind":"side","node":21804,"targets":[872,875]},{"channel":"edge12","coefficient":1,"kind":"side","node":21772,"targets":[873,874]},{"channel":"edge12","coefficient":1,"kind":"side","node":21804,"targets":[876,879]},{"channel":"edge12","coefficient":1,"kind":"side","node":21772,"targets":[877,878]},{"channel":"u01","coefficient":1,"kind":"side","node":24348,"targets":[872]},{"channel":"w02","coefficient":1,"kind":"side","node":24352,"targets":[872]},{"channel":"partner","coefficient":1,"kind":"side","node":875,"targets":[872]},{"channel":"u01","coefficient":1,"kind":"side","node":24348,"targets":[873]},{"channel":"w02","coefficient":1,"kind":"side","node":24353,"targets":[873]},{"channel":"partner","coefficient":1,"kind":"side","node":874,"targets":[873]},{"channel":"u01","coefficient":1,"kind":"side","node":24349,"targets":[874]},{"channel":"w02","coefficient":1,"kind":"side","node":24352,"targets":[874]},{"channel":"partner","coefficient":1,"kind":"side","node":873,"targets":[874]},{"channel":"u01","coefficient":1,"kind":"side","node":24349,"targets":[875]},{"channel":"w02","coefficient":1,"kind":"side","node":24353,"targets":[875]},{"channel":"partner","coefficient":1,"kind":"side","node":872,"targets":[875]},{"channel":"u01","coefficient":1,"kind":"side","node":24350,"targets":[876]},{"channel":"w02","coefficient":1,"kind":"side","node":24354,"targets":[876]},{"channel":"partner","coefficient":1,"kind":"side","node":879,"targets":[876]},{"channel":"u01","coefficient":1,"kind":"side","node":24350,"targets":[877]},{"channel":"w02","coefficient":1,"kind":"side","node":24355,"targets":[877]},{"channel":"partner","coefficient":1,"kind":"side","node":878,"targets":[877]},{"channel":"u01","coefficient":1,"kind":"side","node":24351,"targets":[878]},{"channel":"w02","coefficient":1,"kind":"side","node":24354,"targets":[878]},{"channel":"partner","coefficient":1,"kind":"side","node":877,"targets":[878]},{"channel":"u01","coefficient":1,"kind":"side","node":24351,"targets":[879]},{"channel":"w02","coefficient":1,"kind":"side","node":24355,"targets":[879]},{"channel":"partner","coefficient":1,"kind":"side","node":876,"targets":[879]},{"channel":"face0","coefficient":1,"kind":"side","node":10453,"targets":[880,881,882,883]},{"channel":"face0","coefficient":1,"kind":"side","node":10916,"targets":[884,885,886,887]},{"channel":"edge12","coefficient":1,"kind":"side","node":21868,"targets":[880,883]},{"channel":"edge12","coefficient":1,"kind":"side","node":21836,"targets":[881,882]},{"channel":"edge12","coefficient":1,"kind":"side","node":21868,"targets":[884,887]},{"channel":"edge12","coefficient":1,"kind":"side","node":21836,"targets":[885,886]},{"channel":"u01","coefficient":1,"kind":"side","node":24356,"targets":[880]},{"channel":"w02","coefficient":1,"kind":"side","node":24360,"targets":[880]},{"channel":"partner","coefficient":1,"kind":"side","node":883,"targets":[880]},{"channel":"u01","coefficient":1,"kind":"side","node":24356,"targets":[881]},{"channel":"w02","coefficient":1,"kind":"side","node":24361,"targets":[881]},{"channel":"partner","coefficient":1,"kind":"side","node":882,"targets":[881]},{"channel":"u01","coefficient":1,"kind":"side","node":24357,"targets":[882]},{"channel":"w02","coefficient":1,"kind":"side","node":24360,"targets":[882]},{"channel":"partner","coefficient":1,"kind":"side","node":881,"targets":[882]},{"channel":"u01","coefficient":1,"kind":"side","node":24357,"targets":[883]},{"channel":"w02","coefficient":1,"kind":"side","node":24361,"targets":[883]},{"channel":"partner","coefficient":1,"kind":"side","node":880,"targets":[883]},{"channel":"u01","coefficient":1,"kind":"side","node":24358,"targets":[884]},{"channel":"w02","coefficient":1,"kind":"side","node":24362,"targets":[884]},{"channel":"partner","coefficient":1,"kind":"side","node":887,"targets":[884]},{"channel":"u01","coefficient":1,"kind":"side","node":24358,"targets":[885]},{"channel":"w02","coefficient":1,"kind":"side","node":24363,"targets":[885]},{"channel":"partner","coefficient":1,"kind":"side","node":886,"targets":[885]},{"channel":"u01","coefficient":1,"kind":"side","node":24359,"targets":[886]},{"channel":"w02","coefficient":1,"kind":"side","node":24362,"targets":[886]},{"channel":"partner","coefficient":1,"kind":"side","node":885,"targets":[886]},{"channel":"u01","coefficient":1,"kind":"side","node":24359,"targets":[887]},{"channel":"w02","coefficient":1,"kind":"side","node":24363,"targets":[887]},{"channel":"partner","coefficient":1,"kind":"side","node":884,"targets":[887]},{"channel":"face0","coefficient":1,"kind":"side","node":10285,"targets":[888,889,890,891]},{"channel":"face0","coefficient":1,"kind":"side","node":10748,"targets":[892,893,894,895]},{"channel":"edge12","coefficient":1,"kind":"side","node":21932,"targets":[888,891]},{"channel":"edge12","coefficient":1,"kind":"side","node":21900,"targets":[889,890]},{"channel":"edge12","coefficient":1,"kind":"side","node":21932,"targets":[892,895]},{"channel":"edge12","coefficient":1,"kind":"side","node":21900,"targets":[893,894]},{"channel":"u01","coefficient":1,"kind":"side","node":24364,"targets":[888]},{"channel":"w02","coefficient":1,"kind":"side","node":24368,"targets":[888]},{"channel":"partner","coefficient":1,"kind":"side","node":891,"targets":[888]},{"channel":"u01","coefficient":1,"kind":"side","node":24364,"targets":[889]},{"channel":"w02","coefficient":1,"kind":"side","node":24369,"targets":[889]},{"channel":"partner","coefficient":1,"kind":"side","node":890,"targets":[889]},{"channel":"u01","coefficient":1,"kind":"side","node":24365,"targets":[890]},{"channel":"w02","coefficient":1,"kind":"side","node":24368,"targets":[890]},{"channel":"partner","coefficient":1,"kind":"side","node":889,"targets":[890]},{"channel":"u01","coefficient":1,"kind":"side","node":24365,"targets":[891]},{"channel":"w02","coefficient":1,"kind":"side","node":24369,"targets":[891]},{"channel":"partner","coefficient":1,"kind":"side","node":888,"targets":[891]},{"channel":"u01","coefficient":1,"kind":"side","node":24366,"targets":[892]},{"channel":"w02","coefficient":1,"kind":"side","node":24370,"targets":[892]},{"channel":"partner","coefficient":1,"kind":"side","node":895,"targets":[892]},{"channel":"u01","coefficient":1,"kind":"side","node":24366,"targets":[893]},{"channel":"w02","coefficient":1,"kind":"side","node":24371,"targets":[893]},{"channel":"partner","coefficient":1,"kind":"side","node":894,"targets":[893]},{"channel":"u01","coefficient":1,"kind":"side","node":24367,"targets":[894]},{"channel":"w02","coefficient":1,"kind":"side","node":24370,"targets":[894]},{"channel":"partner","coefficient":1,"kind":"side","node":893,"targets":[894]},{"channel":"u01","coefficient":1,"kind":"side","node":24367,"targets":[895]},{"channel":"w02","coefficient":1,"kind":"side","node":24371,"targets":[895]},{"channel":"partner","coefficient":1,"kind":"side","node":892,"targets":[895]},{"channel":"face0","coefficient":1,"kind":"side","node":10308,"targets":[896,897,898,899]},{"channel":"face0","coefficient":1,"kind":"side","node":10771,"targets":[900,901,902,903]},{"channel":"edge12","coefficient":1,"kind":"side","node":21996,"targets":[896,899]},{"channel":"edge12","coefficient":1,"kind":"side","node":21964,"targets":[897,898]},{"channel":"edge12","coefficient":1,"kind":"side","node":21996,"targets":[900,903]},{"channel":"edge12","coefficient":1,"kind":"side","node":21964,"targets":[901,902]},{"channel":"u01","coefficient":1,"kind":"side","node":24372,"targets":[896]},{"channel":"w02","coefficient":1,"kind":"side","node":24376,"targets":[896]},{"channel":"partner","coefficient":1,"kind":"side","node":899,"targets":[896]},{"channel":"u01","coefficient":1,"kind":"side","node":24372,"targets":[897]},{"channel":"w02","coefficient":1,"kind":"side","node":24377,"targets":[897]},{"channel":"partner","coefficient":1,"kind":"side","node":898,"targets":[897]},{"channel":"u01","coefficient":1,"kind":"side","node":24373,"targets":[898]},{"channel":"w02","coefficient":1,"kind":"side","node":24376,"targets":[898]},{"channel":"partner","coefficient":1,"kind":"side","node":897,"targets":[898]},{"channel":"u01","coefficient":1,"kind":"side","node":24373,"targets":[899]},{"channel":"w02","coefficient":1,"kind":"side","node":24377,"targets":[899]},{"channel":"partner","coefficient":1,"kind":"side","node":896,"targets":[899]},{"channel":"u01","coefficient":1,"kind":"side","node":24374,"targets":[900]},{"channel":"w02","coefficient":1,"kind":"side","node":24378,"targets":[900]},{"channel":"partner","coefficient":1,"kind":"side","node":903,"targets":[900]},{"channel":"u01","coefficient":1,"kind":"side","node":24374,"targets":[901]},{"channel":"w02","coefficient":1,"kind":"side","node":24379,"targets":[901]},{"channel":"partner","coefficient":1,"kind":"side","node":902,"targets":[901]},{"channel":"u01","coefficient":1,"kind":"side","node":24375,"targets":[902]},{"channel":"w02","coefficient":1,"kind":"side","node":24378,"targets":[902]},{"channel":"partner","coefficient":1,"kind":"side","node":901,"targets":[902]},{"channel":"u01","coefficient":1,"kind":"side","node":24375,"targets":[903]},{"channel":"w02","coefficient":1,"kind":"side","node":24379,"targets":[903]},{"channel":"partner","coefficient":1,"kind":"side","node":900,"targets":[903]},{"channel":"face0","coefficient":1,"kind":"side","node":10441,"targets":[904,905,906,907]},{"channel":"face0","coefficient":1,"kind":"side","node":10904,"targets":[908,909,910,911]},{"channel":"edge12","coefficient":1,"kind":"side","node":22060,"targets":[904,907]},{"channel":"edge12","coefficient":1,"kind":"side","node":22028,"targets":[905,906]},{"channel":"edge12","coefficient":1,"kind":"side","node":22060,"targets":[908,911]},{"channel":"edge12","coefficient":1,"kind":"side","node":22028,"targets":[909,910]},{"channel":"u01","coefficient":1,"kind":"side","node":24380,"targets":[904]},{"channel":"w02","coefficient":1,"kind":"side","node":24384,"targets":[904]},{"channel":"partner","coefficient":1,"kind":"side","node":907,"targets":[904]},{"channel":"u01","coefficient":1,"kind":"side","node":24380,"targets":[905]},{"channel":"w02","coefficient":1,"kind":"side","node":24385,"targets":[905]},{"channel":"partner","coefficient":1,"kind":"side","node":906,"targets":[905]},{"channel":"u01","coefficient":1,"kind":"side","node":24381,"targets":[906]},{"channel":"w02","coefficient":1,"kind":"side","node":24384,"targets":[906]},{"channel":"partner","coefficient":1,"kind":"side","node":905,"targets":[906]},{"channel":"u01","coefficient":1,"kind":"side","node":24381,"targets":[907]},{"channel":"w02","coefficient":1,"kind":"side","node":24385,"targets":[907]},{"channel":"partner","coefficient":1,"kind":"side","node":904,"targets":[907]},{"channel":"u01","coefficient":1,"kind":"side","node":24382,"targets":[908]},{"channel":"w02","coefficient":1,"kind":"side","node":24386,"targets":[908]},{"channel":"partner","coefficient":1,"kind":"side","node":911,"targets":[908]},{"channel":"u01","coefficient":1,"kind":"side","node":24382,"targets":[909]},{"channel":"w02","coefficient":1,"kind":"side","node":24387,"targets":[909]},{"channel":"partner","coefficient":1,"kind":"side","node":910,"targets":[909]},{"channel":"u01","coefficient":1,"kind":"side","node":24383,"targets":[910]},{"channel":"w02","coefficient":1,"kind":"side","node":24386,"targets":[910]},{"channel":"partner","coefficient":1,"kind":"side","node":909,"targets":[910]},{"channel":"u01","coefficient":1,"kind":"side","node":24383,"targets":[911]},{"channel":"w02","coefficient":1,"kind":"side","node":24387,"targets":[911]},{"channel":"partner","coefficient":1,"kind":"side","node":908,"targets":[911]},{"channel":"face0","coefficient":1,"kind":"side","node":10424,"targets":[912,913,914,915]},{"channel":"face0","coefficient":1,"kind":"side","node":10887,"targets":[916,917,918,919]},{"channel":"edge12","coefficient":1,"kind":"side","node":22124,"targets":[912,915]},{"channel":"edge12","coefficient":1,"kind":"side","node":22092,"targets":[913,914]},{"channel":"edge12","coefficient":1,"kind":"side","node":22124,"targets":[916,919]},{"channel":"edge12","coefficient":1,"kind":"side","node":22092,"targets":[917,918]},{"channel":"u01","coefficient":1,"kind":"side","node":24388,"targets":[912]},{"channel":"w02","coefficient":1,"kind":"side","node":24392,"targets":[912]},{"channel":"partner","coefficient":1,"kind":"side","node":915,"targets":[912]},{"channel":"u01","coefficient":1,"kind":"side","node":24388,"targets":[913]},{"channel":"w02","coefficient":1,"kind":"side","node":24393,"targets":[913]},{"channel":"partner","coefficient":1,"kind":"side","node":914,"targets":[913]},{"channel":"u01","coefficient":1,"kind":"side","node":24389,"targets":[914]},{"channel":"w02","coefficient":1,"kind":"side","node":24392,"targets":[914]},{"channel":"partner","coefficient":1,"kind":"side","node":913,"targets":[914]},{"channel":"u01","coefficient":1,"kind":"side","node":24389,"targets":[915]},{"channel":"w02","coefficient":1,"kind":"side","node":24393,"targets":[915]},{"channel":"partner","coefficient":1,"kind":"side","node":912,"targets":[915]},{"channel":"u01","coefficient":1,"kind":"side","node":24390,"targets":[916]},{"channel":"w02","coefficient":1,"kind":"side","node":24394,"targets":[916]},{"channel":"partner","coefficient":1,"kind":"side","node":919,"targets":[916]},{"channel":"u01","coefficient":1,"kind":"side","node":24390,"targets":[917]},{"channel":"w02","coefficient":1,"kind":"side","node":24395,"targets":[917]},{"channel":"partner","coefficient":1,"kind":"side","node":918,"targets":[917]},{"channel":"u01","coefficient":1,"kind":"side","node":24391,"targets":[918]},{"channel":"w02","coefficient":1,"kind":"side","node":24394,"targets":[918]},{"channel":"partner","coefficient":1,"kind":"side","node":917,"targets":[918]},{"channel":"u01","coefficient":1,"kind":"side","node":24391,"targets":[919]},{"channel":"w02","coefficient":1,"kind":"side","node":24395,"targets":[919]},{"channel":"partner","coefficient":1,"kind":"side","node":916,"targets":[919]},{"channel":"face0","coefficient":1,"kind":"side","node":10380,"targets":[920,921,922,923]},{"channel":"face0","coefficient":1,"kind":"side","node":10843,"targets":[924,925,926,927]},{"channel":"edge12","coefficient":1,"kind":"side","node":22188,"targets":[920,923]},{"channel":"edge12","coefficient":1,"kind":"side","node":22156,"targets":[921,922]},{"channel":"edge12","coefficient":1,"kind":"side","node":22188,"targets":[924,927]},{"channel":"edge12","coefficient":1,"kind":"side","node":22156,"targets":[925,926]},{"channel":"u01","coefficient":1,"kind":"side","node":24396,"targets":[920]},{"channel":"w02","coefficient":1,"kind":"side","node":24400,"targets":[920]},{"channel":"partner","coefficient":1,"kind":"side","node":923,"targets":[920]},{"channel":"u01","coefficient":1,"kind":"side","node":24396,"targets":[921]},{"channel":"w02","coefficient":1,"kind":"side","node":24401,"targets":[921]},{"channel":"partner","coefficient":1,"kind":"side","node":922,"targets":[921]},{"channel":"u01","coefficient":1,"kind":"side","node":24397,"targets":[922]},{"channel":"w02","coefficient":1,"kind":"side","node":24400,"targets":[922]},{"channel":"partner","coefficient":1,"kind":"side","node":921,"targets":[922]},{"channel":"u01","coefficient":1,"kind":"side","node":24397,"targets":[923]},{"channel":"w02","coefficient":1,"kind":"side","node":24401,"targets":[923]},{"channel":"partner","coefficient":1,"kind":"side","node":920,"targets":[923]},{"channel":"u01","coefficient":1,"kind":"side","node":24398,"targets":[924]},{"channel":"w02","coefficient":1,"kind":"side","node":24402,"targets":[924]},{"channel":"partner","coefficient":1,"kind":"side","node":927,"targets":[924]},{"channel":"u01","coefficient":1,"kind":"side","node":24398,"targets":[925]},{"channel":"w02","coefficient":1,"kind":"side","node":24403,"targets":[925]},{"channel":"partner","coefficient":1,"kind":"side","node":926,"targets":[925]},{"channel":"u01","coefficient":1,"kind":"side","node":24399,"targets":[926]},{"channel":"w02","coefficient":1,"kind":"side","node":24402,"targets":[926]},{"channel":"partner","coefficient":1,"kind":"side","node":925,"targets":[926]},{"channel":"u01","coefficient":1,"kind":"side","node":24399,"targets":[927]},{"channel":"w02","coefficient":1,"kind":"side","node":24403,"targets":[927]},{"channel":"partner","coefficient":1,"kind":"side","node":924,"targets":[927]},{"channel":"face0","coefficient":1,"kind":"side","node":10454,"targets":[928,929,930,931]},{"channel":"face0","coefficient":1,"kind":"side","node":10917,"targets":[932,933,934,935]},{"channel":"edge12","coefficient":1,"kind":"side","node":22252,"targets":[928,931]},{"channel":"edge12","coefficient":1,"kind":"side","node":22220,"targets":[929,930]},{"channel":"edge12","coefficient":1,"kind":"side","node":22252,"targets":[932,935]},{"channel":"edge12","coefficient":1,"kind":"side","node":22220,"targets":[933,934]},{"channel":"u01","coefficient":1,"kind":"side","node":24404,"targets":[928]},{"channel":"w02","coefficient":1,"kind":"side","node":24408,"targets":[928]},{"channel":"partner","coefficient":1,"kind":"side","node":931,"targets":[928]},{"channel":"u01","coefficient":1,"kind":"side","node":24404,"targets":[929]},{"channel":"w02","coefficient":1,"kind":"side","node":24409,"targets":[929]},{"channel":"partner","coefficient":1,"kind":"side","node":930,"targets":[929]},{"channel":"u01","coefficient":1,"kind":"side","node":24405,"targets":[930]},{"channel":"w02","coefficient":1,"kind":"side","node":24408,"targets":[930]},{"channel":"partner","coefficient":1,"kind":"side","node":929,"targets":[930]},{"channel":"u01","coefficient":1,"kind":"side","node":24405,"targets":[931]},{"channel":"w02","coefficient":1,"kind":"side","node":24409,"targets":[931]},{"channel":"partner","coefficient":1,"kind":"side","node":928,"targets":[931]},{"channel":"u01","coefficient":1,"kind":"side","node":24406,"targets":[932]},{"channel":"w02","coefficient":1,"kind":"side","node":24410,"targets":[932]},{"channel":"partner","coefficient":1,"kind":"side","node":935,"targets":[932]},{"channel":"u01","coefficient":1,"kind":"side","node":24406,"targets":[933]},{"channel":"w02","coefficient":1,"kind":"side","node":24411,"targets":[933]},{"channel":"partner","coefficient":1,"kind":"side","node":934,"targets":[933]},{"channel":"u01","coefficient":1,"kind":"side","node":24407,"targets":[934]},{"channel":"w02","coefficient":1,"kind":"side","node":24410,"targets":[934]},{"channel":"partner","coefficient":1,"kind":"side","node":933,"targets":[934]},{"channel":"u01","coefficient":1,"kind":"side","node":24407,"targets":[935]},{"channel":"w02","coefficient":1,"kind":"side","node":24411,"targets":[935]},{"channel":"partner","coefficient":1,"kind":"side","node":932,"targets":[935]},{"channel":"face0","coefficient":1,"kind":"side","node":10365,"targets":[936,937,938,939]},{"channel":"face0","coefficient":1,"kind":"side","node":10828,"targets":[940,941,942,943]},{"channel":"edge12","coefficient":1,"kind":"side","node":22316,"targets":[936,939]},{"channel":"edge12","coefficient":1,"kind":"side","node":22284,"targets":[937,938]},{"channel":"edge12","coefficient":1,"kind":"side","node":22316,"targets":[940,943]},{"channel":"edge12","coefficient":1,"kind":"side","node":22284,"targets":[941,942]},{"channel":"u01","coefficient":1,"kind":"side","node":24412,"targets":[936]},{"channel":"w02","coefficient":1,"kind":"side","node":24416,"targets":[936]},{"channel":"partner","coefficient":1,"kind":"side","node":939,"targets":[936]},{"channel":"u01","coefficient":1,"kind":"side","node":24412,"targets":[937]},{"channel":"w02","coefficient":1,"kind":"side","node":24417,"targets":[937]},{"channel":"partner","coefficient":1,"kind":"side","node":938,"targets":[937]},{"channel":"u01","coefficient":1,"kind":"side","node":24413,"targets":[938]},{"channel":"w02","coefficient":1,"kind":"side","node":24416,"targets":[938]},{"channel":"partner","coefficient":1,"kind":"side","node":937,"targets":[938]},{"channel":"u01","coefficient":1,"kind":"side","node":24413,"targets":[939]},{"channel":"w02","coefficient":1,"kind":"side","node":24417,"targets":[939]},{"channel":"partner","coefficient":1,"kind":"side","node":936,"targets":[939]},{"channel":"u01","coefficient":1,"kind":"side","node":24414,"targets":[940]},{"channel":"w02","coefficient":1,"kind":"side","node":24418,"targets":[940]},{"channel":"partner","coefficient":1,"kind":"side","node":943,"targets":[940]},{"channel":"u01","coefficient":1,"kind":"side","node":24414,"targets":[941]},{"channel":"w02","coefficient":1,"kind":"side","node":24419,"targets":[941]},{"channel":"partner","coefficient":1,"kind":"side","node":942,"targets":[941]},{"channel":"u01","coefficient":1,"kind":"side","node":24415,"targets":[942]},{"channel":"w02","coefficient":1,"kind":"side","node":24418,"targets":[942]},{"channel":"partner","coefficient":1,"kind":"side","node":941,"targets":[942]},{"channel":"u01","coefficient":1,"kind":"side","node":24415,"targets":[943]},{"channel":"w02","coefficient":1,"kind":"side","node":24419,"targets":[943]},{"channel":"partner","coefficient":1,"kind":"side","node":940,"targets":[943]},{"channel":"face0","coefficient":1,"kind":"side","node":10448,"targets":[944,945,946,947]},{"channel":"face0","coefficient":1,"kind":"side","node":10911,"targets":[948,949,950,951]},{"channel":"edge12","coefficient":1,"kind":"side","node":22380,"targets":[944,947]},{"channel":"edge12","coefficient":1,"kind":"side","node":22348,"targets":[945,946]},{"channel":"edge12","coefficient":1,"kind":"side","node":22380,"targets":[948,951]},{"channel":"edge12","coefficient":1,"kind":"side","node":22348,"targets":[949,950]},{"channel":"u01","coefficient":1,"kind":"side","node":24420,"targets":[944]},{"channel":"w02","coefficient":1,"kind":"side","node":24424,"targets":[944]},{"channel":"partner","coefficient":1,"kind":"side","node":947,"targets":[944]},{"channel":"u01","coefficient":1,"kind":"side","node":24420,"targets":[945]},{"channel":"w02","coefficient":1,"kind":"side","node":24425,"targets":[945]},{"channel":"partner","coefficient":1,"kind":"side","node":946,"targets":[945]},{"channel":"u01","coefficient":1,"kind":"side","node":24421,"targets":[946]},{"channel":"w02","coefficient":1,"kind":"side","node":24424,"targets":[946]},{"channel":"partner","coefficient":1,"kind":"side","node":945,"targets":[946]},{"channel":"u01","coefficient":1,"kind":"side","node":24421,"targets":[947]},{"channel":"w02","coefficient":1,"kind":"side","node":24425,"targets":[947]},{"channel":"partner","coefficient":1,"kind":"side","node":944,"targets":[947]},{"channel":"u01","coefficient":1,"kind":"side","node":24422,"targets":[948]},{"channel":"w02","coefficient":1,"kind":"side","node":24426,"targets":[948]},{"channel":"partner","coefficient":1,"kind":"side","node":951,"targets":[948]},{"channel":"u01","coefficient":1,"kind":"side","node":24422,"targets":[949]},{"channel":"w02","coefficient":1,"kind":"side","node":24427,"targets":[949]},{"channel":"partner","coefficient":1,"kind":"side","node":950,"targets":[949]},{"channel":"u01","coefficient":1,"kind":"side","node":24423,"targets":[950]},{"channel":"w02","coefficient":1,"kind":"side","node":24426,"targets":[950]},{"channel":"partner","coefficient":1,"kind":"side","node":949,"targets":[950]},{"channel":"u01","coefficient":1,"kind":"side","node":24423,"targets":[951]},{"channel":"w02","coefficient":1,"kind":"side","node":24427,"targets":[951]},{"channel":"partner","coefficient":1,"kind":"side","node":948,"targets":[951]},{"channel":"face0","coefficient":1,"kind":"side","node":10373,"targets":[952,953,954,955]},{"channel":"face0","coefficient":1,"kind":"side","node":10836,"targets":[956,957,958,959]},{"channel":"edge12","coefficient":1,"kind":"side","node":22444,"targets":[952,955]},{"channel":"edge12","coefficient":1,"kind":"side","node":22412,"targets":[953,954]},{"channel":"edge12","coefficient":1,"kind":"side","node":22444,"targets":[956,959]},{"channel":"edge12","coefficient":1,"kind":"side","node":22412,"targets":[957,958]},{"channel":"u01","coefficient":1,"kind":"side","node":24428,"targets":[952]},{"channel":"w02","coefficient":1,"kind":"side","node":24432,"targets":[952]},{"channel":"partner","coefficient":1,"kind":"side","node":955,"targets":[952]},{"channel":"u01","coefficient":1,"kind":"side","node":24428,"targets":[953]},{"channel":"w02","coefficient":1,"kind":"side","node":24433,"targets":[953]},{"channel":"partner","coefficient":1,"kind":"side","node":954,"targets":[953]},{"channel":"u01","coefficient":1,"kind":"side","node":24429,"targets":[954]},{"channel":"w02","coefficient":1,"kind":"side","node":24432,"targets":[954]},{"channel":"partner","coefficient":1,"kind":"side","node":953,"targets":[954]},{"channel":"u01","coefficient":1,"kind":"side","node":24429,"targets":[955]},{"channel":"w02","coefficient":1,"kind":"side","node":24433,"targets":[955]},{"channel":"partner","coefficient":1,"kind":"side","node":952,"targets":[955]},{"channel":"u01","coefficient":1,"kind":"side","node":24430,"targets":[956]},{"channel":"w02","coefficient":1,"kind":"side","node":24434,"targets":[956]},{"channel":"partner","coefficient":1,"kind":"side","node":959,"targets":[956]},{"channel":"u01","coefficient":1,"kind":"side","node":24430,"targets":[957]},{"channel":"w02","coefficient":1,"kind":"side","node":24435,"targets":[957]},{"channel":"partner","coefficient":1,"kind":"side","node":958,"targets":[957]},{"channel":"u01","coefficient":1,"kind":"side","node":24431,"targets":[958]},{"channel":"w02","coefficient":1,"kind":"side","node":24434,"targets":[958]},{"channel":"partner","coefficient":1,"kind":"side","node":957,"targets":[958]},{"channel":"u01","coefficient":1,"kind":"side","node":24431,"targets":[959]},{"channel":"w02","coefficient":1,"kind":"side","node":24435,"targets":[959]},{"channel":"partner","coefficient":1,"kind":"side","node":956,"targets":[959]},{"channel":"face0","coefficient":1,"kind":"side","node":10329,"targets":[960,961,962,963]},{"channel":"face0","coefficient":1,"kind":"side","node":10792,"targets":[964,965,966,967]},{"channel":"edge12","coefficient":1,"kind":"side","node":22508,"targets":[960,963]},{"channel":"edge12","coefficient":1,"kind":"side","node":22476,"targets":[961,962]},{"channel":"edge12","coefficient":1,"kind":"side","node":22508,"targets":[964,967]},{"channel":"edge12","coefficient":1,"kind":"side","node":22476,"targets":[965,966]},{"channel":"u01","coefficient":1,"kind":"side","node":24436,"targets":[960]},{"channel":"w02","coefficient":1,"kind":"side","node":24440,"targets":[960]},{"channel":"partner","coefficient":1,"kind":"side","node":963,"targets":[960]},{"channel":"u01","coefficient":1,"kind":"side","node":24436,"targets":[961]},{"channel":"w02","coefficient":1,"kind":"side","node":24441,"targets":[961]},{"channel":"partner","coefficient":1,"kind":"side","node":962,"targets":[961]},{"channel":"u01","coefficient":1,"kind":"side","node":24437,"targets":[962]},{"channel":"w02","coefficient":1,"kind":"side","node":24440,"targets":[962]},{"channel":"partner","coefficient":1,"kind":"side","node":961,"targets":[962]},{"channel":"u01","coefficient":1,"kind":"side","node":24437,"targets":[963]},{"channel":"w02","coefficient":1,"kind":"side","node":24441,"targets":[963]},{"channel":"partner","coefficient":1,"kind":"side","node":960,"targets":[963]},{"channel":"u01","coefficient":1,"kind":"side","node":24438,"targets":[964]},{"channel":"w02","coefficient":1,"kind":"side","node":24442,"targets":[964]},{"channel":"partner","coefficient":1,"kind":"side","node":967,"targets":[964]},{"channel":"u01","coefficient":1,"kind":"side","node":24438,"targets":[965]},{"channel":"w02","coefficient":1,"kind":"side","node":24443,"targets":[965]},{"channel":"partner","coefficient":1,"kind":"side","node":966,"targets":[965]},{"channel":"u01","coefficient":1,"kind":"side","node":24439,"targets":[966]},{"channel":"w02","coefficient":1,"kind":"side","node":24442,"targets":[966]},{"channel":"partner","coefficient":1,"kind":"side","node":965,"targets":[966]},{"channel":"u01","coefficient":1,"kind":"side","node":24439,"targets":[967]},{"channel":"w02","coefficient":1,"kind":"side","node":24443,"targets":[967]},{"channel":"partner","coefficient":1,"kind":"side","node":964,"targets":[967]},{"channel":"face0","coefficient":1,"kind":"side","node":10323,"targets":[968,969,970,971]},{"channel":"face0","coefficient":1,"kind":"side","node":10786,"targets":[972,973,974,975]},{"channel":"edge12","coefficient":1,"kind":"side","node":22572,"targets":[968,971]},{"channel":"edge12","coefficient":1,"kind":"side","node":22540,"targets":[969,970]},{"channel":"edge12","coefficient":1,"kind":"side","node":22572,"targets":[972,975]},{"channel":"edge12","coefficient":1,"kind":"side","node":22540,"targets":[973,974]},{"channel":"u01","coefficient":1,"kind":"side","node":24444,"targets":[968]},{"channel":"w02","coefficient":1,"kind":"side","node":24448,"targets":[968]},{"channel":"partner","coefficient":1,"kind":"side","node":971,"targets":[968]},{"channel":"u01","coefficient":1,"kind":"side","node":24444,"targets":[969]},{"channel":"w02","coefficient":1,"kind":"side","node":24449,"targets":[969]},{"channel":"partner","coefficient":1,"kind":"side","node":970,"targets":[969]},{"channel":"u01","coefficient":1,"kind":"side","node":24445,"targets":[970]},{"channel":"w02","coefficient":1,"kind":"side","node":24448,"targets":[970]},{"channel":"partner","coefficient":1,"kind":"side","node":969,"targets":[970]},{"channel":"u01","coefficient":1,"kind":"side","node":24445,"targets":[971]},{"channel":"w02","coefficient":1,"kind":"side","node":24449,"targets":[971]},{"channel":"partner","coefficient":1,"kind":"side","node":968,"targets":[971]},{"channel":"u01","coefficient":1,"kind":"side","node":24446,"targets":[972]},{"channel":"w02","coefficient":1,"kind":"side","node":24450,"targets":[972]},{"channel":"partner","coefficient":1,"kind":"side","node":975,"targets":[972]},{"channel":"u01","coefficient":1,"kind":"side","node":24446,"targets":[973]},{"channel":"w02","coefficient":1,"kind":"side","node":24451,"targets":[973]},{"channel":"partner","coefficient":1,"kind":"side","node":974,"targets":[973]},{"channel":"u01","coefficient":1,"kind":"side","node":24447,"targets":[974]},{"channel":"w02","coefficient":1,"kind":"side","node":24450,"targets":[974]},{"channel":"partner","coefficient":1,"kind":"side","node":973,"targets":[974]},{"channel":"u01","coefficient":1,"kind":"side","node":24447,"targets":[975]},{"channel":"w02","coefficient":1,"kind":"side","node":24451,"targets":[975]},{"channel":"partner","coefficient":1,"kind":"side","node":972,"targets":[975]},{"channel":"face0","coefficient":1,"kind":"side","node":10379,"targets":[976,977,978,979]},{"channel":"face0","coefficient":1,"kind":"side","node":10842,"targets":[980,981,982,983]},{"channel":"edge12","coefficient":1,"kind":"side","node":22636,"targets":[976,979]},{"channel":"edge12","coefficient":1,"kind":"side","node":22604,"targets":[977,978]},{"channel":"edge12","coefficient":1,"kind":"side","node":22636,"targets":[980,983]},{"channel":"edge12","coefficient":1,"kind":"side","node":22604,"targets":[981,982]},{"channel":"u01","coefficient":1,"kind":"side","node":24452,"targets":[976]},{"channel":"w02","coefficient":1,"kind":"side","node":24456,"targets":[976]},{"channel":"partner","coefficient":1,"kind":"side","node":979,"targets":[976]},{"channel":"u01","coefficient":1,"kind":"side","node":24452,"targets":[977]},{"channel":"w02","coefficient":1,"kind":"side","node":24457,"targets":[977]},{"channel":"partner","coefficient":1,"kind":"side","node":978,"targets":[977]},{"channel":"u01","coefficient":1,"kind":"side","node":24453,"targets":[978]},{"channel":"w02","coefficient":1,"kind":"side","node":24456,"targets":[978]},{"channel":"partner","coefficient":1,"kind":"side","node":977,"targets":[978]},{"channel":"u01","coefficient":1,"kind":"side","node":24453,"targets":[979]},{"channel":"w02","coefficient":1,"kind":"side","node":24457,"targets":[979]},{"channel":"partner","coefficient":1,"kind":"side","node":976,"targets":[979]},{"channel":"u01","coefficient":1,"kind":"side","node":24454,"targets":[980]},{"channel":"w02","coefficient":1,"kind":"side","node":24458,"targets":[980]},{"channel":"partner","coefficient":1,"kind":"side","node":983,"targets":[980]},{"channel":"u01","coefficient":1,"kind":"side","node":24454,"targets":[981]},{"channel":"w02","coefficient":1,"kind":"side","node":24459,"targets":[981]},{"channel":"partner","coefficient":1,"kind":"side","node":982,"targets":[981]},{"channel":"u01","coefficient":1,"kind":"side","node":24455,"targets":[982]},{"channel":"w02","coefficient":1,"kind":"side","node":24458,"targets":[982]},{"channel":"partner","coefficient":1,"kind":"side","node":981,"targets":[982]},{"channel":"u01","coefficient":1,"kind":"side","node":24455,"targets":[983]},{"channel":"w02","coefficient":1,"kind":"side","node":24459,"targets":[983]},{"channel":"partner","coefficient":1,"kind":"side","node":980,"targets":[983]},{"channel":"face0","coefficient":1,"kind":"side","node":10340,"targets":[984,985,986,987]},{"channel":"face0","coefficient":1,"kind":"side","node":10803,"targets":[988,989,990,991]},{"channel":"edge12","coefficient":1,"kind":"side","node":22700,"targets":[984,987]},{"channel":"edge12","coefficient":1,"kind":"side","node":22668,"targets":[985,986]},{"channel":"edge12","coefficient":1,"kind":"side","node":22700,"targets":[988,991]},{"channel":"edge12","coefficient":1,"kind":"side","node":22668,"targets":[989,990]},{"channel":"u01","coefficient":1,"kind":"side","node":24460,"targets":[984]},{"channel":"w02","coefficient":1,"kind":"side","node":24464,"targets":[984]},{"channel":"partner","coefficient":1,"kind":"side","node":987,"targets":[984]},{"channel":"u01","coefficient":1,"kind":"side","node":24460,"targets":[985]},{"channel":"w02","coefficient":1,"kind":"side","node":24465,"targets":[985]},{"channel":"partner","coefficient":1,"kind":"side","node":986,"targets":[985]},{"channel":"u01","coefficient":1,"kind":"side","node":24461,"targets":[986]},{"channel":"w02","coefficient":1,"kind":"side","node":24464,"targets":[986]},{"channel":"partner","coefficient":1,"kind":"side","node":985,"targets":[986]},{"channel":"u01","coefficient":1,"kind":"side","node":24461,"targets":[987]},{"channel":"w02","coefficient":1,"kind":"side","node":24465,"targets":[987]},{"channel":"partner","coefficient":1,"kind":"side","node":984,"targets":[987]},{"channel":"u01","coefficient":1,"kind":"side","node":24462,"targets":[988]},{"channel":"w02","coefficient":1,"kind":"side","node":24466,"targets":[988]},{"channel":"partner","coefficient":1,"kind":"side","node":991,"targets":[988]},{"channel":"u01","coefficient":1,"kind":"side","node":24462,"targets":[989]},{"channel":"w02","coefficient":1,"kind":"side","node":24467,"targets":[989]},{"channel":"partner","coefficient":1,"kind":"side","node":990,"targets":[989]},{"channel":"u01","coefficient":1,"kind":"side","node":24463,"targets":[990]},{"channel":"w02","coefficient":1,"kind":"side","node":24466,"targets":[990]},{"channel":"partner","coefficient":1,"kind":"side","node":989,"targets":[990]},{"channel":"u01","coefficient":1,"kind":"side","node":24463,"targets":[991]},{"channel":"w02","coefficient":1,"kind":"side","node":24467,"targets":[991]},{"channel":"partner","coefficient":1,"kind":"side","node":988,"targets":[991]},{"channel":"face0","coefficient":1,"kind":"side","node":10186,"targets":[992,993,994,995]},{"channel":"face0","coefficient":1,"kind":"side","node":10649,"targets":[996,997,998,999]},{"channel":"edge12","coefficient":1,"kind":"side","node":22764,"targets":[992,995]},{"channel":"edge12","coefficient":1,"kind":"side","node":22732,"targets":[993,994]},{"channel":"edge12","coefficient":1,"kind":"side","node":22764,"targets":[996,999]},{"channel":"edge12","coefficient":1,"kind":"side","node":22732,"targets":[997,998]},{"channel":"u01","coefficient":1,"kind":"side","node":24468,"targets":[992]},{"channel":"w02","coefficient":1,"kind":"side","node":24472,"targets":[992]},{"channel":"partner","coefficient":1,"kind":"side","node":995,"targets":[992]},{"channel":"u01","coefficient":1,"kind":"side","node":24468,"targets":[993]},{"channel":"w02","coefficient":1,"kind":"side","node":24473,"targets":[993]},{"channel":"partner","coefficient":1,"kind":"side","node":994,"targets":[993]},{"channel":"u01","coefficient":1,"kind":"side","node":24469,"targets":[994]},{"channel":"w02","coefficient":1,"kind":"side","node":24472,"targets":[994]},{"channel":"partner","coefficient":1,"kind":"side","node":993,"targets":[994]},{"channel":"u01","coefficient":1,"kind":"side","node":24469,"targets":[995]},{"channel":"w02","coefficient":1,"kind":"side","node":24473,"targets":[995]},{"channel":"partner","coefficient":1,"kind":"side","node":992,"targets":[995]},{"channel":"u01","coefficient":1,"kind":"side","node":24470,"targets":[996]},{"channel":"w02","coefficient":1,"kind":"side","node":24474,"targets":[996]},{"channel":"partner","coefficient":1,"kind":"side","node":999,"targets":[996]},{"channel":"u01","coefficient":1,"kind":"side","node":24470,"targets":[997]},{"channel":"w02","coefficient":1,"kind":"side","node":24475,"targets":[997]},{"channel":"partner","coefficient":1,"kind":"side","node":998,"targets":[997]},{"channel":"u01","coefficient":1,"kind":"side","node":24471,"targets":[998]},{"channel":"w02","coefficient":1,"kind":"side","node":24474,"targets":[998]},{"channel":"partner","coefficient":1,"kind":"side","node":997,"targets":[998]},{"channel":"u01","coefficient":1,"kind":"side","node":24471,"targets":[999]},{"channel":"w02","coefficient":1,"kind":"side","node":24475,"targets":[999]},{"channel":"partner","coefficient":1,"kind":"side","node":996,"targets":[999]},{"channel":"face0","coefficient":1,"kind":"side","node":10350,"targets":[1000,1001,1002,1003]},{"channel":"face0","coefficient":1,"kind":"side","node":10813,"targets":[1004,1005,1006,1007]},{"channel":"edge12","coefficient":1,"kind":"side","node":22828,"targets":[1000,1003]},{"channel":"edge12","coefficient":1,"kind":"side","node":22796,"targets":[1001,1002]},{"channel":"edge12","coefficient":1,"kind":"side","node":22828,"targets":[1004,1007]},{"channel":"edge12","coefficient":1,"kind":"side","node":22796,"targets":[1005,1006]},{"channel":"u01","coefficient":1,"kind":"side","node":24476,"targets":[1000]},{"channel":"w02","coefficient":1,"kind":"side","node":24480,"targets":[1000]},{"channel":"partner","coefficient":1,"kind":"side","node":1003,"targets":[1000]},{"channel":"u01","coefficient":1,"kind":"side","node":24476,"targets":[1001]},{"channel":"w02","coefficient":1,"kind":"side","node":24481,"targets":[1001]},{"channel":"partner","coefficient":1,"kind":"side","node":1002,"targets":[1001]},{"channel":"u01","coefficient":1,"kind":"side","node":24477,"targets":[1002]},{"channel":"w02","coefficient":1,"kind":"side","node":24480,"targets":[1002]},{"channel":"partner","coefficient":1,"kind":"side","node":1001,"targets":[1002]},{"channel":"u01","coefficient":1,"kind":"side","node":24477,"targets":[1003]},{"channel":"w02","coefficient":1,"kind":"side","node":24481,"targets":[1003]},{"channel":"partner","coefficient":1,"kind":"side","node":1000,"targets":[1003]},{"channel":"u01","coefficient":1,"kind":"side","node":24478,"targets":[1004]},{"channel":"w02","coefficient":1,"kind":"side","node":24482,"targets":[1004]},{"channel":"partner","coefficient":1,"kind":"side","node":1007,"targets":[1004]},{"channel":"u01","coefficient":1,"kind":"side","node":24478,"targets":[1005]},{"channel":"w02","coefficient":1,"kind":"side","node":24483,"targets":[1005]},{"channel":"partner","coefficient":1,"kind":"side","node":1006,"targets":[1005]},{"channel":"u01","coefficient":1,"kind":"side","node":24479,"targets":[1006]},{"channel":"w02","coefficient":1,"kind":"side","node":24482,"targets":[1006]},{"channel":"partner","coefficient":1,"kind":"side","node":1005,"targets":[1006]},{"channel":"u01","coefficient":1,"kind":"side","node":24479,"targets":[1007]},{"channel":"w02","coefficient":1,"kind":"side","node":24483,"targets":[1007]},{"channel":"partner","coefficient":1,"kind":"side","node":1004,"targets":[1007]},{"channel":"face0","coefficient":1,"kind":"side","node":10392,"targets":[1008,1009,1010,1011]},{"channel":"face0","coefficient":1,"kind":"side","node":10855,"targets":[1012,1013,1014,1015]},{"channel":"edge12","coefficient":1,"kind":"side","node":22892,"targets":[1008,1011]},{"channel":"edge12","coefficient":1,"kind":"side","node":22860,"targets":[1009,1010]},{"channel":"edge12","coefficient":1,"kind":"side","node":22892,"targets":[1012,1015]},{"channel":"edge12","coefficient":1,"kind":"side","node":22860,"targets":[1013,1014]},{"channel":"u01","coefficient":1,"kind":"side","node":24484,"targets":[1008]},{"channel":"w02","coefficient":1,"kind":"side","node":24488,"targets":[1008]},{"channel":"partner","coefficient":1,"kind":"side","node":1011,"targets":[1008]},{"channel":"u01","coefficient":1,"kind":"side","node":24484,"targets":[1009]},{"channel":"w02","coefficient":1,"kind":"side","node":24489,"targets":[1009]},{"channel":"partner","coefficient":1,"kind":"side","node":1010,"targets":[1009]},{"channel":"u01","coefficient":1,"kind":"side","node":24485,"targets":[1010]},{"channel":"w02","coefficient":1,"kind":"side","node":24488,"targets":[1010]},{"channel":"partner","coefficient":1,"kind":"side","node":1009,"targets":[1010]},{"channel":"u01","coefficient":1,"kind":"side","node":24485,"targets":[1011]},{"channel":"w02","coefficient":1,"kind":"side","node":24489,"targets":[1011]},{"channel":"partner","coefficient":1,"kind":"side","node":1008,"targets":[1011]},{"channel":"u01","coefficient":1,"kind":"side","node":24486,"targets":[1012]},{"channel":"w02","coefficient":1,"kind":"side","node":24490,"targets":[1012]},{"channel":"partner","coefficient":1,"kind":"side","node":1015,"targets":[1012]},{"channel":"u01","coefficient":1,"kind":"side","node":24486,"targets":[1013]},{"channel":"w02","coefficient":1,"kind":"side","node":24491,"targets":[1013]},{"channel":"partner","coefficient":1,"kind":"side","node":1014,"targets":[1013]},{"channel":"u01","coefficient":1,"kind":"side","node":24487,"targets":[1014]},{"channel":"w02","coefficient":1,"kind":"side","node":24490,"targets":[1014]},{"channel":"partner","coefficient":1,"kind":"side","node":1013,"targets":[1014]},{"channel":"u01","coefficient":1,"kind":"side","node":24487,"targets":[1015]},{"channel":"w02","coefficient":1,"kind":"side","node":24491,"targets":[1015]},{"channel":"partner","coefficient":1,"kind":"side","node":1012,"targets":[1015]},{"channel":"face0","coefficient":1,"kind":"side","node":10413,"targets":[1016,1017,1018,1019]},{"channel":"face0","coefficient":1,"kind":"side","node":10876,"targets":[1020,1021,1022,1023]},{"channel":"edge12","coefficient":1,"kind":"side","node":22956,"targets":[1016,1019]},{"channel":"edge12","coefficient":1,"kind":"side","node":22924,"targets":[1017,1018]},{"channel":"edge12","coefficient":1,"kind":"side","node":22956,"targets":[1020,1023]},{"channel":"edge12","coefficient":1,"kind":"side","node":22924,"targets":[1021,1022]},{"channel":"u01","coefficient":1,"kind":"side","node":24492,"targets":[1016]},{"channel":"w02","coefficient":1,"kind":"side","node":24496,"targets":[1016]},{"channel":"partner","coefficient":1,"kind":"side","node":1019,"targets":[1016]},{"channel":"u01","coefficient":1,"kind":"side","node":24492,"targets":[1017]},{"channel":"w02","coefficient":1,"kind":"side","node":24497,"targets":[1017]},{"channel":"partner","coefficient":1,"kind":"side","node":1018,"targets":[1017]},{"channel":"u01","coefficient":1,"kind":"side","node":24493,"targets":[1018]},{"channel":"w02","coefficient":1,"kind":"side","node":24496,"targets":[1018]},{"channel":"partner","coefficient":1,"kind":"side","node":1017,"targets":[1018]},{"channel":"u01","coefficient":1,"kind":"side","node":24493,"targets":[1019]},{"channel":"w02","coefficient":1,"kind":"side","node":24497,"targets":[1019]},{"channel":"partner","coefficient":1,"kind":"side","node":1016,"targets":[1019]},{"channel":"u01","coefficient":1,"kind":"side","node":24494,"targets":[1020]},{"channel":"w02","coefficient":1,"kind":"side","node":24498,"targets":[1020]},{"channel":"partner","coefficient":1,"kind":"side","node":1023,"targets":[1020]},{"channel":"u01","coefficient":1,"kind":"side","node":24494,"targets":[1021]},{"channel":"w02","coefficient":1,"kind":"side","node":24499,"targets":[1021]},{"channel":"partner","coefficient":1,"kind":"side","node":1022,"targets":[1021]},{"channel":"u01","coefficient":1,"kind":"side","node":24495,"targets":[1022]},{"channel":"w02","coefficient":1,"kind":"side","node":24498,"targets":[1022]},{"channel":"partner","coefficient":1,"kind":"side","node":1021,"targets":[1022]},{"channel":"u01","coefficient":1,"kind":"side","node":24495,"targets":[1023]},{"channel":"w02","coefficient":1,"kind":"side","node":24499,"targets":[1023]},{"channel":"partner","coefficient":1,"kind":"side","node":1020,"targets":[1023]},{"channel":"face0","coefficient":1,"kind":"side","node":10159,"targets":[1024,1025,1026,1027]},{"channel":"face0","coefficient":1,"kind":"side","node":10622,"targets":[1028,1029,1030,1031]},{"channel":"edge12","coefficient":1,"kind":"side","node":23020,"targets":[1024,1027]},{"channel":"edge12","coefficient":1,"kind":"side","node":22988,"targets":[1025,1026]},{"channel":"edge12","coefficient":1,"kind":"side","node":23020,"targets":[1028,1031]},{"channel":"edge12","coefficient":1,"kind":"side","node":22988,"targets":[1029,1030]},{"channel":"u01","coefficient":1,"kind":"side","node":24500,"targets":[1024]},{"channel":"w02","coefficient":1,"kind":"side","node":24504,"targets":[1024]},{"channel":"partner","coefficient":1,"kind":"side","node":1027,"targets":[1024]},{"channel":"u01","coefficient":1,"kind":"side","node":24500,"targets":[1025]},{"channel":"w02","coefficient":1,"kind":"side","node":24505,"targets":[1025]},{"channel":"partner","coefficient":1,"kind":"side","node":1026,"targets":[1025]},{"channel":"u01","coefficient":1,"kind":"side","node":24501,"targets":[1026]},{"channel":"w02","coefficient":1,"kind":"side","node":24504,"targets":[1026]},{"channel":"partner","coefficient":1,"kind":"side","node":1025,"targets":[1026]},{"channel":"u01","coefficient":1,"kind":"side","node":24501,"targets":[1027]},{"channel":"w02","coefficient":1,"kind":"side","node":24505,"targets":[1027]},{"channel":"partner","coefficient":1,"kind":"side","node":1024,"targets":[1027]},{"channel":"u01","coefficient":1,"kind":"side","node":24502,"targets":[1028]},{"channel":"w02","coefficient":1,"kind":"side","node":24506,"targets":[1028]},{"channel":"partner","coefficient":1,"kind":"side","node":1031,"targets":[1028]},{"channel":"u01","coefficient":1,"kind":"side","node":24502,"targets":[1029]},{"channel":"w02","coefficient":1,"kind":"side","node":24507,"targets":[1029]},{"channel":"partner","coefficient":1,"kind":"side","node":1030,"targets":[1029]},{"channel":"u01","coefficient":1,"kind":"side","node":24503,"targets":[1030]},{"channel":"w02","coefficient":1,"kind":"side","node":24506,"targets":[1030]},{"channel":"partner","coefficient":1,"kind":"side","node":1029,"targets":[1030]},{"channel":"u01","coefficient":1,"kind":"side","node":24503,"targets":[1031]},{"channel":"w02","coefficient":1,"kind":"side","node":24507,"targets":[1031]},{"channel":"partner","coefficient":1,"kind":"side","node":1028,"targets":[1031]},{"channel":"face0","coefficient":1,"kind":"side","node":10261,"targets":[1032,1033,1034,1035]},{"channel":"face0","coefficient":1,"kind":"side","node":10724,"targets":[1036,1037,1038,1039]},{"channel":"edge12","coefficient":1,"kind":"side","node":23084,"targets":[1032,1035]},{"channel":"edge12","coefficient":1,"kind":"side","node":23052,"targets":[1033,1034]},{"channel":"edge12","coefficient":1,"kind":"side","node":23084,"targets":[1036,1039]},{"channel":"edge12","coefficient":1,"kind":"side","node":23052,"targets":[1037,1038]},{"channel":"u01","coefficient":1,"kind":"side","node":24508,"targets":[1032]},{"channel":"w02","coefficient":1,"kind":"side","node":24512,"targets":[1032]},{"channel":"partner","coefficient":1,"kind":"side","node":1035,"targets":[1032]},{"channel":"u01","coefficient":1,"kind":"side","node":24508,"targets":[1033]},{"channel":"w02","coefficient":1,"kind":"side","node":24513,"targets":[1033]},{"channel":"partner","coefficient":1,"kind":"side","node":1034,"targets":[1033]},{"channel":"u01","coefficient":1,"kind":"side","node":24509,"targets":[1034]},{"channel":"w02","coefficient":1,"kind":"side","node":24512,"targets":[1034]},{"channel":"partner","coefficient":1,"kind":"side","node":1033,"targets":[1034]},{"channel":"u01","coefficient":1,"kind":"side","node":24509,"targets":[1035]},{"channel":"w02","coefficient":1,"kind":"side","node":24513,"targets":[1035]},{"channel":"partner","coefficient":1,"kind":"side","node":1032,"targets":[1035]},{"channel":"u01","coefficient":1,"kind":"side","node":24510,"targets":[1036]},{"channel":"w02","coefficient":1,"kind":"side","node":24514,"targets":[1036]},{"channel":"partner","coefficient":1,"kind":"side","node":1039,"targets":[1036]},{"channel":"u01","coefficient":1,"kind":"side","node":24510,"targets":[1037]},{"channel":"w02","coefficient":1,"kind":"side","node":24515,"targets":[1037]},{"channel":"partner","coefficient":1,"kind":"side","node":1038,"targets":[1037]},{"channel":"u01","coefficient":1,"kind":"side","node":24511,"targets":[1038]},{"channel":"w02","coefficient":1,"kind":"side","node":24514,"targets":[1038]},{"channel":"partner","coefficient":1,"kind":"side","node":1037,"targets":[1038]},{"channel":"u01","coefficient":1,"kind":"side","node":24511,"targets":[1039]},{"channel":"w02","coefficient":1,"kind":"side","node":24515,"targets":[1039]},{"channel":"partner","coefficient":1,"kind":"side","node":1036,"targets":[1039]},{"channel":"face0","coefficient":1,"kind":"side","node":10407,"targets":[1040,1041,1042,1043]},{"channel":"face0","coefficient":1,"kind":"side","node":10870,"targets":[1044,1045,1046,1047]},{"channel":"edge12","coefficient":1,"kind":"side","node":23148,"targets":[1040,1043]},{"channel":"edge12","coefficient":1,"kind":"side","node":23116,"targets":[1041,1042]},{"channel":"edge12","coefficient":1,"kind":"side","node":23148,"targets":[1044,1047]},{"channel":"edge12","coefficient":1,"kind":"side","node":23116,"targets":[1045,1046]},{"channel":"u01","coefficient":1,"kind":"side","node":24516,"targets":[1040]},{"channel":"w02","coefficient":1,"kind":"side","node":24520,"targets":[1040]},{"channel":"partner","coefficient":1,"kind":"side","node":1043,"targets":[1040]},{"channel":"u01","coefficient":1,"kind":"side","node":24516,"targets":[1041]},{"channel":"w02","coefficient":1,"kind":"side","node":24521,"targets":[1041]},{"channel":"partner","coefficient":1,"kind":"side","node":1042,"targets":[1041]},{"channel":"u01","coefficient":1,"kind":"side","node":24517,"targets":[1042]},{"channel":"w02","coefficient":1,"kind":"side","node":24520,"targets":[1042]},{"channel":"partner","coefficient":1,"kind":"side","node":1041,"targets":[1042]},{"channel":"u01","coefficient":1,"kind":"side","node":24517,"targets":[1043]},{"channel":"w02","coefficient":1,"kind":"side","node":24521,"targets":[1043]},{"channel":"partner","coefficient":1,"kind":"side","node":1040,"targets":[1043]},{"channel":"u01","coefficient":1,"kind":"side","node":24518,"targets":[1044]},{"channel":"w02","coefficient":1,"kind":"side","node":24522,"targets":[1044]},{"channel":"partner","coefficient":1,"kind":"side","node":1047,"targets":[1044]},{"channel":"u01","coefficient":1,"kind":"side","node":24518,"targets":[1045]},{"channel":"w02","coefficient":1,"kind":"side","node":24523,"targets":[1045]},{"channel":"partner","coefficient":1,"kind":"side","node":1046,"targets":[1045]},{"channel":"u01","coefficient":1,"kind":"side","node":24519,"targets":[1046]},{"channel":"w02","coefficient":1,"kind":"side","node":24522,"targets":[1046]},{"channel":"partner","coefficient":1,"kind":"side","node":1045,"targets":[1046]},{"channel":"u01","coefficient":1,"kind":"side","node":24519,"targets":[1047]},{"channel":"w02","coefficient":1,"kind":"side","node":24523,"targets":[1047]},{"channel":"partner","coefficient":1,"kind":"side","node":1044,"targets":[1047]},{"channel":"face0","coefficient":1,"kind":"side","node":10363,"targets":[1048,1049,1050,1051]},{"channel":"face0","coefficient":1,"kind":"side","node":10826,"targets":[1052,1053,1054,1055]},{"channel":"edge12","coefficient":1,"kind":"side","node":23212,"targets":[1048,1051]},{"channel":"edge12","coefficient":1,"kind":"side","node":23180,"targets":[1049,1050]},{"channel":"edge12","coefficient":1,"kind":"side","node":23212,"targets":[1052,1055]},{"channel":"edge12","coefficient":1,"kind":"side","node":23180,"targets":[1053,1054]},{"channel":"u01","coefficient":1,"kind":"side","node":24524,"targets":[1048]},{"channel":"w02","coefficient":1,"kind":"side","node":24528,"targets":[1048]},{"channel":"partner","coefficient":1,"kind":"side","node":1051,"targets":[1048]},{"channel":"u01","coefficient":1,"kind":"side","node":24524,"targets":[1049]},{"channel":"w02","coefficient":1,"kind":"side","node":24529,"targets":[1049]},{"channel":"partner","coefficient":1,"kind":"side","node":1050,"targets":[1049]},{"channel":"u01","coefficient":1,"kind":"side","node":24525,"targets":[1050]},{"channel":"w02","coefficient":1,"kind":"side","node":24528,"targets":[1050]},{"channel":"partner","coefficient":1,"kind":"side","node":1049,"targets":[1050]},{"channel":"u01","coefficient":1,"kind":"side","node":24525,"targets":[1051]},{"channel":"w02","coefficient":1,"kind":"side","node":24529,"targets":[1051]},{"channel":"partner","coefficient":1,"kind":"side","node":1048,"targets":[1051]},{"channel":"u01","coefficient":1,"kind":"side","node":24526,"targets":[1052]},{"channel":"w02","coefficient":1,"kind":"side","node":24530,"targets":[1052]},{"channel":"partner","coefficient":1,"kind":"side","node":1055,"targets":[1052]},{"channel":"u01","coefficient":1,"kind":"side","node":24526,"targets":[1053]},{"channel":"w02","coefficient":1,"kind":"side","node":24531,"targets":[1053]},{"channel":"partner","coefficient":1,"kind":"side","node":1054,"targets":[1053]},{"channel":"u01","coefficient":1,"kind":"side","node":24527,"targets":[1054]},{"channel":"w02","coefficient":1,"kind":"side","node":24530,"targets":[1054]},{"channel":"partner","coefficient":1,"kind":"side","node":1053,"targets":[1054]},{"channel":"u01","coefficient":1,"kind":"side","node":24527,"targets":[1055]},{"channel":"w02","coefficient":1,"kind":"side","node":24531,"targets":[1055]},{"channel":"partner","coefficient":1,"kind":"side","node":1052,"targets":[1055]},{"channel":"face0","coefficient":1,"kind":"side","node":10410,"targets":[1056,1057,1058,1059]},{"channel":"face0","coefficient":1,"kind":"side","node":10873,"targets":[1060,1061,1062,1063]},{"channel":"edge12","coefficient":1,"kind":"side","node":23276,"targets":[1056,1059]},{"channel":"edge12","coefficient":1,"kind":"side","node":23244,"targets":[1057,1058]},{"channel":"edge12","coefficient":1,"kind":"side","node":23276,"targets":[1060,1063]},{"channel":"edge12","coefficient":1,"kind":"side","node":23244,"targets":[1061,1062]},{"channel":"u01","coefficient":1,"kind":"side","node":24532,"targets":[1056]},{"channel":"w02","coefficient":1,"kind":"side","node":24536,"targets":[1056]},{"channel":"partner","coefficient":1,"kind":"side","node":1059,"targets":[1056]},{"channel":"u01","coefficient":1,"kind":"side","node":24532,"targets":[1057]},{"channel":"w02","coefficient":1,"kind":"side","node":24537,"targets":[1057]},{"channel":"partner","coefficient":1,"kind":"side","node":1058,"targets":[1057]},{"channel":"u01","coefficient":1,"kind":"side","node":24533,"targets":[1058]},{"channel":"w02","coefficient":1,"kind":"side","node":24536,"targets":[1058]},{"channel":"partner","coefficient":1,"kind":"side","node":1057,"targets":[1058]},{"channel":"u01","coefficient":1,"kind":"side","node":24533,"targets":[1059]},{"channel":"w02","coefficient":1,"kind":"side","node":24537,"targets":[1059]},{"channel":"partner","coefficient":1,"kind":"side","node":1056,"targets":[1059]},{"channel":"u01","coefficient":1,"kind":"side","node":24534,"targets":[1060]},{"channel":"w02","coefficient":1,"kind":"side","node":24538,"targets":[1060]},{"channel":"partner","coefficient":1,"kind":"side","node":1063,"targets":[1060]},{"channel":"u01","coefficient":1,"kind":"side","node":24534,"targets":[1061]},{"channel":"w02","coefficient":1,"kind":"side","node":24539,"targets":[1061]},{"channel":"partner","coefficient":1,"kind":"side","node":1062,"targets":[1061]},{"channel":"u01","coefficient":1,"kind":"side","node":24535,"targets":[1062]},{"channel":"w02","coefficient":1,"kind":"side","node":24538,"targets":[1062]},{"channel":"partner","coefficient":1,"kind":"side","node":1061,"targets":[1062]},{"channel":"u01","coefficient":1,"kind":"side","node":24535,"targets":[1063]},{"channel":"w02","coefficient":1,"kind":"side","node":24539,"targets":[1063]},{"channel":"partner","coefficient":1,"kind":"side","node":1060,"targets":[1063]},{"channel":"face0","coefficient":1,"kind":"side","node":10446,"targets":[1064,1065,1066,1067]},{"channel":"face0","coefficient":1,"kind":"side","node":10909,"targets":[1068,1069,1070,1071]},{"channel":"edge12","coefficient":1,"kind":"side","node":23340,"targets":[1064,1067]},{"channel":"edge12","coefficient":1,"kind":"side","node":23308,"targets":[1065,1066]},{"channel":"edge12","coefficient":1,"kind":"side","node":23340,"targets":[1068,1071]},{"channel":"edge12","coefficient":1,"kind":"side","node":23308,"targets":[1069,1070]},{"channel":"u01","coefficient":1,"kind":"side","node":24540,"targets":[1064]},{"channel":"w02","coefficient":1,"kind":"side","node":24544,"targets":[1064]},{"channel":"partner","coefficient":1,"kind":"side","node":1067,"targets":[1064]},{"channel":"u01","coefficient":1,"kind":"side","node":24540,"targets":[1065]},{"channel":"w02","coefficient":1,"kind":"side","node":24545,"targets":[1065]},{"channel":"partner","coefficient":1,"kind":"side","node":1066,"targets":[1065]},{"channel":"u01","coefficient":1,"kind":"side","node":24541,"targets":[1066]},{"channel":"w02","coefficient":1,"kind":"side","node":24544,"targets":[1066]},{"channel":"partner","coefficient":1,"kind":"side","node":1065,"targets":[1066]},{"channel":"u01","coefficient":1,"kind":"side","node":24541,"targets":[1067]},{"channel":"w02","coefficient":1,"kind":"side","node":24545,"targets":[1067]},{"channel":"partner","coefficient":1,"kind":"side","node":1064,"targets":[1067]},{"channel":"u01","coefficient":1,"kind":"side","node":24542,"targets":[1068]},{"channel":"w02","coefficient":1,"kind":"side","node":24546,"targets":[1068]},{"channel":"partner","coefficient":1,"kind":"side","node":1071,"targets":[1068]},{"channel":"u01","coefficient":1,"kind":"side","node":24542,"targets":[1069]},{"channel":"w02","coefficient":1,"kind":"side","node":24547,"targets":[1069]},{"channel":"partner","coefficient":1,"kind":"side","node":1070,"targets":[1069]},{"channel":"u01","coefficient":1,"kind":"side","node":24543,"targets":[1070]},{"channel":"w02","coefficient":1,"kind":"side","node":24546,"targets":[1070]},{"channel":"partner","coefficient":1,"kind":"side","node":1069,"targets":[1070]},{"channel":"u01","coefficient":1,"kind":"side","node":24543,"targets":[1071]},{"channel":"w02","coefficient":1,"kind":"side","node":24547,"targets":[1071]},{"channel":"partner","coefficient":1,"kind":"side","node":1068,"targets":[1071]},{"channel":"face0","coefficient":1,"kind":"side","node":10360,"targets":[1072,1073,1074,1075]},{"channel":"face0","coefficient":1,"kind":"side","node":10823,"targets":[1076,1077,1078,1079]},{"channel":"edge12","coefficient":1,"kind":"side","node":23404,"targets":[1072,1075]},{"channel":"edge12","coefficient":1,"kind":"side","node":23372,"targets":[1073,1074]},{"channel":"edge12","coefficient":1,"kind":"side","node":23404,"targets":[1076,1079]},{"channel":"edge12","coefficient":1,"kind":"side","node":23372,"targets":[1077,1078]},{"channel":"u01","coefficient":1,"kind":"side","node":24548,"targets":[1072]},{"channel":"w02","coefficient":1,"kind":"side","node":24552,"targets":[1072]},{"channel":"partner","coefficient":1,"kind":"side","node":1075,"targets":[1072]},{"channel":"u01","coefficient":1,"kind":"side","node":24548,"targets":[1073]},{"channel":"w02","coefficient":1,"kind":"side","node":24553,"targets":[1073]},{"channel":"partner","coefficient":1,"kind":"side","node":1074,"targets":[1073]},{"channel":"u01","coefficient":1,"kind":"side","node":24549,"targets":[1074]},{"channel":"w02","coefficient":1,"kind":"side","node":24552,"targets":[1074]},{"channel":"partner","coefficient":1,"kind":"side","node":1073,"targets":[1074]},{"channel":"u01","coefficient":1,"kind":"side","node":24549,"targets":[1075]},{"channel":"w02","coefficient":1,"kind":"side","node":24553,"targets":[1075]},{"channel":"partner","coefficient":1,"kind":"side","node":1072,"targets":[1075]},{"channel":"u01","coefficient":1,"kind":"side","node":24550,"targets":[1076]},{"channel":"w02","coefficient":1,"kind":"side","node":24554,"targets":[1076]},{"channel":"partner","coefficient":1,"kind":"side","node":1079,"targets":[1076]},{"channel":"u01","coefficient":1,"kind":"side","node":24550,"targets":[1077]},{"channel":"w02","coefficient":1,"kind":"side","node":24555,"targets":[1077]},{"channel":"partner","coefficient":1,"kind":"side","node":1078,"targets":[1077]},{"channel":"u01","coefficient":1,"kind":"side","node":24551,"targets":[1078]},{"channel":"w02","coefficient":1,"kind":"side","node":24554,"targets":[1078]},{"channel":"partner","coefficient":1,"kind":"side","node":1077,"targets":[1078]},{"channel":"u01","coefficient":1,"kind":"side","node":24551,"targets":[1079]},{"channel":"w02","coefficient":1,"kind":"side","node":24555,"targets":[1079]},{"channel":"partner","coefficient":1,"kind":"side","node":1076,"targets":[1079]},{"channel":"face0","coefficient":1,"kind":"side","node":10283,"targets":[1080,1081,1082,1083]},{"channel":"face0","coefficient":1,"kind":"side","node":10746,"targets":[1084,1085,1086,1087]},{"channel":"edge12","coefficient":1,"kind":"side","node":23468,"targets":[1080,1083]},{"channel":"edge12","coefficient":1,"kind":"side","node":23436,"targets":[1081,1082]},{"channel":"edge12","coefficient":1,"kind":"side","node":23468,"targets":[1084,1087]},{"channel":"edge12","coefficient":1,"kind":"side","node":23436,"targets":[1085,1086]},{"channel":"u01","coefficient":1,"kind":"side","node":24556,"targets":[1080]},{"channel":"w02","coefficient":1,"kind":"side","node":24560,"targets":[1080]},{"channel":"partner","coefficient":1,"kind":"side","node":1083,"targets":[1080]},{"channel":"u01","coefficient":1,"kind":"side","node":24556,"targets":[1081]},{"channel":"w02","coefficient":1,"kind":"side","node":24561,"targets":[1081]},{"channel":"partner","coefficient":1,"kind":"side","node":1082,"targets":[1081]},{"channel":"u01","coefficient":1,"kind":"side","node":24557,"targets":[1082]},{"channel":"w02","coefficient":1,"kind":"side","node":24560,"targets":[1082]},{"channel":"partner","coefficient":1,"kind":"side","node":1081,"targets":[1082]},{"channel":"u01","coefficient":1,"kind":"side","node":24557,"targets":[1083]},{"channel":"w02","coefficient":1,"kind":"side","node":24561,"targets":[1083]},{"channel":"partner","coefficient":1,"kind":"side","node":1080,"targets":[1083]},{"channel":"u01","coefficient":1,"kind":"side","node":24558,"targets":[1084]},{"channel":"w02","coefficient":1,"kind":"side","node":24562,"targets":[1084]},{"channel":"partner","coefficient":1,"kind":"side","node":1087,"targets":[1084]},{"channel":"u01","coefficient":1,"kind":"side","node":24558,"targets":[1085]},{"channel":"w02","coefficient":1,"kind":"side","node":24563,"targets":[1085]},{"channel":"partner","coefficient":1,"kind":"side","node":1086,"targets":[1085]},{"channel":"u01","coefficient":1,"kind":"side","node":24559,"targets":[1086]},{"channel":"w02","coefficient":1,"kind":"side","node":24562,"targets":[1086]},{"channel":"partner","coefficient":1,"kind":"side","node":1085,"targets":[1086]},{"channel":"u01","coefficient":1,"kind":"side","node":24559,"targets":[1087]},{"channel":"w02","coefficient":1,"kind":"side","node":24563,"targets":[1087]},{"channel":"partner","coefficient":1,"kind":"side","node":1084,"targets":[1087]},{"channel":"face0","coefficient":1,"kind":"side","node":11368,"targets":[1088,1089,1090,1091]},{"channel":"face0","coefficient":1,"kind":"side","node":11831,"targets":[1092,1093,1094,1095]},{"channel":"edge12","coefficient":1,"kind":"side","node":21744,"targets":[1088,1091]},{"channel":"edge12","coefficient":1,"kind":"side","node":21712,"targets":[1089,1090]},{"channel":"edge12","coefficient":1,"kind":"side","node":21744,"targets":[1092,1095]},{"channel":"edge12","coefficient":1,"kind":"side","node":21712,"targets":[1093,1094]},{"channel":"u01","coefficient":1,"kind":"side","node":24564,"targets":[1088]},{"channel":"w02","coefficient":1,"kind":"side","node":24568,"targets":[1088]},{"channel":"partner","coefficient":1,"kind":"side","node":1091,"targets":[1088]},{"channel":"u01","coefficient":1,"kind":"side","node":24564,"targets":[1089]},{"channel":"w02","coefficient":1,"kind":"side","node":24569,"targets":[1089]},{"channel":"partner","coefficient":1,"kind":"side","node":1090,"targets":[1089]},{"channel":"u01","coefficient":1,"kind":"side","node":24565,"targets":[1090]},{"channel":"w02","coefficient":1,"kind":"side","node":24568,"targets":[1090]},{"channel":"partner","coefficient":1,"kind":"side","node":1089,"targets":[1090]},{"channel":"u01","coefficient":1,"kind":"side","node":24565,"targets":[1091]},{"channel":"w02","coefficient":1,"kind":"side","node":24569,"targets":[1091]},{"channel":"partner","coefficient":1,"kind":"side","node":1088,"targets":[1091]},{"channel":"u01","coefficient":1,"kind":"side","node":24566,"targets":[1092]},{"channel":"w02","coefficient":1,"kind":"side","node":24570,"targets":[1092]},{"channel":"partner","coefficient":1,"kind":"side","node":1095,"targets":[1092]},{"channel":"u01","coefficient":1,"kind":"side","node":24566,"targets":[1093]},{"channel":"w02","coefficient":1,"kind":"side","node":24571,"targets":[1093]},{"channel":"partner","coefficient":1,"kind":"side","node":1094,"targets":[1093]},{"channel":"u01","coefficient":1,"kind":"side","node":24567,"targets":[1094]},{"channel":"w02","coefficient":1,"kind":"side","node":24570,"targets":[1094]},{"channel":"partner","coefficient":1,"kind":"side","node":1093,"targets":[1094]},{"channel":"u01","coefficient":1,"kind":"side","node":24567,"targets":[1095]},{"channel":"w02","coefficient":1,"kind":"side","node":24571,"targets":[1095]},{"channel":"partner","coefficient":1,"kind":"side","node":1092,"targets":[1095]},{"channel":"face0","coefficient":1,"kind":"side","node":11346,"targets":[1096,1097,1098,1099]},{"channel":"face0","coefficient":1,"kind":"side","node":11809,"targets":[1100,1101,1102,1103]},{"channel":"edge12","coefficient":1,"kind":"side","node":21808,"targets":[1096,1099]},{"channel":"edge12","coefficient":1,"kind":"side","node":21776,"targets":[1097,1098]},{"channel":"edge12","coefficient":1,"kind":"side","node":21808,"targets":[1100,1103]},{"channel":"edge12","coefficient":1,"kind":"side","node":21776,"targets":[1101,1102]},{"channel":"u01","coefficient":1,"kind":"side","node":24572,"targets":[1096]},{"channel":"w02","coefficient":1,"kind":"side","node":24576,"targets":[1096]},{"channel":"partner","coefficient":1,"kind":"side","node":1099,"targets":[1096]},{"channel":"u01","coefficient":1,"kind":"side","node":24572,"targets":[1097]},{"channel":"w02","coefficient":1,"kind":"side","node":24577,"targets":[1097]},{"channel":"partner","coefficient":1,"kind":"side","node":1098,"targets":[1097]},{"channel":"u01","coefficient":1,"kind":"side","node":24573,"targets":[1098]},{"channel":"w02","coefficient":1,"kind":"side","node":24576,"targets":[1098]},{"channel":"partner","coefficient":1,"kind":"side","node":1097,"targets":[1098]},{"channel":"u01","coefficient":1,"kind":"side","node":24573,"targets":[1099]},{"channel":"w02","coefficient":1,"kind":"side","node":24577,"targets":[1099]},{"channel":"partner","coefficient":1,"kind":"side","node":1096,"targets":[1099]},{"channel":"u01","coefficient":1,"kind":"side","node":24574,"targets":[1100]},{"channel":"w02","coefficient":1,"kind":"side","node":24578,"targets":[1100]},{"channel":"partner","coefficient":1,"kind":"side","node":1103,"targets":[1100]},{"channel":"u01","coefficient":1,"kind":"side","node":24574,"targets":[1101]},{"channel":"w02","coefficient":1,"kind":"side","node":24579,"targets":[1101]},{"channel":"partner","coefficient":1,"kind":"side","node":1102,"targets":[1101]},{"channel":"u01","coefficient":1,"kind":"side","node":24575,"targets":[1102]},{"channel":"w02","coefficient":1,"kind":"side","node":24578,"targets":[1102]},{"channel":"partner","coefficient":1,"kind":"side","node":1101,"targets":[1102]},{"channel":"u01","coefficient":1,"kind":"side","node":24575,"targets":[1103]},{"channel":"w02","coefficient":1,"kind":"side","node":24579,"targets":[1103]},{"channel":"partner","coefficient":1,"kind":"side","node":1100,"targets":[1103]},{"channel":"face0","coefficient":1,"kind":"side","node":11379,"targets":[1104,1105,1106,1107]},{"channel":"face0","coefficient":1,"kind":"side","node":11842,"targets":[1108,1109,1110,1111]},{"channel":"edge12","coefficient":1,"kind":"side","node":21872,"targets":[1104,1107]},{"channel":"edge12","coefficient":1,"kind":"side","node":21840,"targets":[1105,1106]},{"channel":"edge12","coefficient":1,"kind":"side","node":21872,"targets":[1108,1111]},{"channel":"edge12","coefficient":1,"kind":"side","node":21840,"targets":[1109,1110]},{"channel":"u01","coefficient":1,"kind":"side","node":24580,"targets":[1104]},{"channel":"w02","coefficient":1,"kind":"side","node":24584,"targets":[1104]},{"channel":"partner","coefficient":1,"kind":"side","node":1107,"targets":[1104]},{"channel":"u01","coefficient":1,"kind":"side","node":24580,"targets":[1105]},{"channel":"w02","coefficient":1,"kind":"side","node":24585,"targets":[1105]},{"channel":"partner","coefficient":1,"kind":"side","node":1106,"targets":[1105]},{"channel":"u01","coefficient":1,"kind":"side","node":24581,"targets":[1106]},{"channel":"w02","coefficient":1,"kind":"side","node":24584,"targets":[1106]},{"channel":"partner","coefficient":1,"kind":"side","node":1105,"targets":[1106]},{"channel":"u01","coefficient":1,"kind":"side","node":24581,"targets":[1107]},{"channel":"w02","coefficient":1,"kind":"side","node":24585,"targets":[1107]},{"channel":"partner","coefficient":1,"kind":"side","node":1104,"targets":[1107]},{"channel":"u01","coefficient":1,"kind":"side","node":24582,"targets":[1108]},{"channel":"w02","coefficient":1,"kind":"side","node":24586,"targets":[1108]},{"channel":"partner","coefficient":1,"kind":"side","node":1111,"targets":[1108]},{"channel":"u01","coefficient":1,"kind":"side","node":24582,"targets":[1109]},{"channel":"w02","coefficient":1,"kind":"side","node":24587,"targets":[1109]},{"channel":"partner","coefficient":1,"kind":"side","node":1110,"targets":[1109]},{"channel":"u01","coefficient":1,"kind":"side","node":24583,"targets":[1110]},{"channel":"w02","coefficient":1,"kind":"side","node":24586,"targets":[1110]},{"channel":"partner","coefficient":1,"kind":"side","node":1109,"targets":[1110]},{"channel":"u01","coefficient":1,"kind":"side","node":24583,"targets":[1111]},{"channel":"w02","coefficient":1,"kind":"side","node":24587,"targets":[1111]},{"channel":"partner","coefficient":1,"kind":"side","node":1108,"targets":[1111]},{"channel":"face0","coefficient":1,"kind":"side","node":11211,"targets":[1112,1113,1114,1115]},{"channel":"face0","coefficient":1,"kind":"side","node":11674,"targets":[1116,1117,1118,1119]},{"channel":"edge12","coefficient":1,"kind":"side","node":21936,"targets":[1112,1115]},{"channel":"edge12","coefficient":1,"kind":"side","node":21904,"targets":[1113,1114]},{"channel":"edge12","coefficient":1,"kind":"side","node":21936,"targets":[1116,1119]},{"channel":"edge12","coefficient":1,"kind":"side","node":21904,"targets":[1117,1118]},{"channel":"u01","coefficient":1,"kind":"side","node":24588,"targets":[1112]},{"channel":"w02","coefficient":1,"kind":"side","node":24592,"targets":[1112]},{"channel":"partner","coefficient":1,"kind":"side","node":1115,"targets":[1112]},{"channel":"u01","coefficient":1,"kind":"side","node":24588,"targets":[1113]},{"channel":"w02","coefficient":1,"kind":"side","node":24593,"targets":[1113]},{"channel":"partner","coefficient":1,"kind":"side","node":1114,"targets":[1113]},{"channel":"u01","coefficient":1,"kind":"side","node":24589,"targets":[1114]},{"channel":"w02","coefficient":1,"kind":"side","node":24592,"targets":[1114]},{"channel":"partner","coefficient":1,"kind":"side","node":1113,"targets":[1114]},{"channel":"u01","coefficient":1,"kind":"side","node":24589,"targets":[1115]},{"channel":"w02","coefficient":1,"kind":"side","node":24593,"targets":[1115]},{"channel":"partner","coefficient":1,"kind":"side","node":1112,"targets":[1115]},{"channel":"u01","coefficient":1,"kind":"side","node":24590,"targets":[1116]},{"channel":"w02","coefficient":1,"kind":"side","node":24594,"targets":[1116]},{"channel":"partner","coefficient":1,"kind":"side","node":1119,"targets":[1116]},{"channel":"u01","coefficient":1,"kind":"side","node":24590,"targets":[1117]},{"channel":"w02","coefficient":1,"kind":"side","node":24595,"targets":[1117]},{"channel":"partner","coefficient":1,"kind":"side","node":1118,"targets":[1117]},{"channel":"u01","coefficient":1,"kind":"side","node":24591,"targets":[1118]},{"channel":"w02","coefficient":1,"kind":"side","node":24594,"targets":[1118]},{"channel":"partner","coefficient":1,"kind":"side","node":1117,"targets":[1118]},{"channel":"u01","coefficient":1,"kind":"side","node":24591,"targets":[1119]},{"channel":"w02","coefficient":1,"kind":"side","node":24595,"targets":[1119]},{"channel":"partner","coefficient":1,"kind":"side","node":1116,"targets":[1119]},{"channel":"face0","coefficient":1,"kind":"side","node":11234,"targets":[1120,1121,1122,1123]},{"channel":"face0","coefficient":1,"kind":"side","node":11697,"targets":[1124,1125,1126,1127]},{"channel":"edge12","coefficient":1,"kind":"side","node":22000,"targets":[1120,1123]},{"channel":"edge12","coefficient":1,"kind":"side","node":21968,"targets":[1121,1122]},{"channel":"edge12","coefficient":1,"kind":"side","node":22000,"targets":[1124,1127]},{"channel":"edge12","coefficient":1,"kind":"side","node":21968,"targets":[1125,1126]},{"channel":"u01","coefficient":1,"kind":"side","node":24596,"targets":[1120]},{"channel":"w02","coefficient":1,"kind":"side","node":24600,"targets":[1120]},{"channel":"partner","coefficient":1,"kind":"side","node":1123,"targets":[1120]},{"channel":"u01","coefficient":1,"kind":"side","node":24596,"targets":[1121]},{"channel":"w02","coefficient":1,"kind":"side","node":24601,"targets":[1121]},{"channel":"partner","coefficient":1,"kind":"side","node":1122,"targets":[1121]},{"channel":"u01","coefficient":1,"kind":"side","node":24597,"targets":[1122]},{"channel":"w02","coefficient":1,"kind":"side","node":24600,"targets":[1122]},{"channel":"partner","coefficient":1,"kind":"side","node":1121,"targets":[1122]},{"channel":"u01","coefficient":1,"kind":"side","node":24597,"targets":[1123]},{"channel":"w02","coefficient":1,"kind":"side","node":24601,"targets":[1123]},{"channel":"partner","coefficient":1,"kind":"side","node":1120,"targets":[1123]},{"channel":"u01","coefficient":1,"kind":"side","node":24598,"targets":[1124]},{"channel":"w02","coefficient":1,"kind":"side","node":24602,"targets":[1124]},{"channel":"partner","coefficient":1,"kind":"side","node":1127,"targets":[1124]},{"channel":"u01","coefficient":1,"kind":"side","node":24598,"targets":[1125]},{"channel":"w02","coefficient":1,"kind":"side","node":24603,"targets":[1125]},{"channel":"partner","coefficient":1,"kind":"side","node":1126,"targets":[1125]},{"channel":"u01","coefficient":1,"kind":"side","node":24599,"targets":[1126]},{"channel":"w02","coefficient":1,"kind":"side","node":24602,"targets":[1126]},{"channel":"partner","coefficient":1,"kind":"side","node":1125,"targets":[1126]},{"channel":"u01","coefficient":1,"kind":"side","node":24599,"targets":[1127]},{"channel":"w02","coefficient":1,"kind":"side","node":24603,"targets":[1127]},{"channel":"partner","coefficient":1,"kind":"side","node":1124,"targets":[1127]},{"channel":"face0","coefficient":1,"kind":"side","node":11367,"targets":[1128,1129,1130,1131]},{"channel":"face0","coefficient":1,"kind":"side","node":11830,"targets":[1132,1133,1134,1135]},{"channel":"edge12","coefficient":1,"kind":"side","node":22064,"targets":[1128,1131]},{"channel":"edge12","coefficient":1,"kind":"side","node":22032,"targets":[1129,1130]},{"channel":"edge12","coefficient":1,"kind":"side","node":22064,"targets":[1132,1135]},{"channel":"edge12","coefficient":1,"kind":"side","node":22032,"targets":[1133,1134]},{"channel":"u01","coefficient":1,"kind":"side","node":24604,"targets":[1128]},{"channel":"w02","coefficient":1,"kind":"side","node":24608,"targets":[1128]},{"channel":"partner","coefficient":1,"kind":"side","node":1131,"targets":[1128]},{"channel":"u01","coefficient":1,"kind":"side","node":24604,"targets":[1129]},{"channel":"w02","coefficient":1,"kind":"side","node":24609,"targets":[1129]},{"channel":"partner","coefficient":1,"kind":"side","node":1130,"targets":[1129]},{"channel":"u01","coefficient":1,"kind":"side","node":24605,"targets":[1130]},{"channel":"w02","coefficient":1,"kind":"side","node":24608,"targets":[1130]},{"channel":"partner","coefficient":1,"kind":"side","node":1129,"targets":[1130]},{"channel":"u01","coefficient":1,"kind":"side","node":24605,"targets":[1131]},{"channel":"w02","coefficient":1,"kind":"side","node":24609,"targets":[1131]},{"channel":"partner","coefficient":1,"kind":"side","node":1128,"targets":[1131]},{"channel":"u01","coefficient":1,"kind":"side","node":24606,"targets":[1132]},{"channel":"w02","coefficient":1,"kind":"side","node":24610,"targets":[1132]},{"channel":"partner","coefficient":1,"kind":"side","node":1135,"targets":[1132]},{"channel":"u01","coefficient":1,"kind":"side","node":24606,"targets":[1133]},{"channel":"w02","coefficient":1,"kind":"side","node":24611,"targets":[1133]},{"channel":"partner","coefficient":1,"kind":"side","node":1134,"targets":[1133]},{"channel":"u01","coefficient":1,"kind":"side","node":24607,"targets":[1134]},{"channel":"w02","coefficient":1,"kind":"side","node":24610,"targets":[1134]},{"channel":"partner","coefficient":1,"kind":"side","node":1133,"targets":[1134]},{"channel":"u01","coefficient":1,"kind":"side","node":24607,"targets":[1135]},{"channel":"w02","coefficient":1,"kind":"side","node":24611,"targets":[1135]},{"channel":"partner","coefficient":1,"kind":"side","node":1132,"targets":[1135]},{"channel":"face0","coefficient":1,"kind":"side","node":11350,"targets":[1136,1137,1138,1139]},{"channel":"face0","coefficient":1,"kind":"side","node":11813,"targets":[1140,1141,1142,1143]},{"channel":"edge12","coefficient":1,"kind":"side","node":22128,"targets":[1136,1139]},{"channel":"edge12","coefficient":1,"kind":"side","node":22096,"targets":[1137,1138]},{"channel":"edge12","coefficient":1,"kind":"side","node":22128,"targets":[1140,1143]},{"channel":"edge12","coefficient":1,"kind":"side","node":22096,"targets":[1141,1142]},{"channel":"u01","coefficient":1,"kind":"side","node":24612,"targets":[1136]},{"channel":"w02","coefficient":1,"kind":"side","node":24616,"targets":[1136]},{"channel":"partner","coefficient":1,"kind":"side","node":1139,"targets":[1136]},{"channel":"u01","coefficient":1,"kind":"side","node":24612,"targets":[1137]},{"channel":"w02","coefficient":1,"kind":"side","node":24617,"targets":[1137]},{"channel":"partner","coefficient":1,"kind":"side","node":1138,"targets":[1137]},{"channel":"u01","coefficient":1,"kind":"side","node":24613,"targets":[1138]},{"channel":"w02","coefficient":1,"kind":"side","node":24616,"targets":[1138]},{"channel":"partner","coefficient":1,"kind":"side","node":1137,"targets":[1138]},{"channel":"u01","coefficient":1,"kind":"side","node":24613,"targets":[1139]},{"channel":"w02","coefficient":1,"kind":"side","node":24617,"targets":[1139]},{"channel":"partner","coefficient":1,"kind":"side","node":1136,"targets":[1139]},{"channel":"u01","coefficient":1,"kind":"side","node":24614,"targets":[1140]},{"channel":"w02","coefficient":1,"kind":"side","node":24618,"targets":[1140]},{"channel":"partner","coefficient":1,"kind":"side","node":1143,"targets":[1140]},{"channel":"u01","coefficient":1,"kind":"side","node":24614,"targets":[1141]},{"channel":"w02","coefficient":1,"kind":"side","node":24619,"targets":[1141]},{"channel":"partner","coefficient":1,"kind":"side","node":1142,"targets":[1141]},{"channel":"u01","coefficient":1,"kind":"side","node":24615,"targets":[1142]},{"channel":"w02","coefficient":1,"kind":"side","node":24618,"targets":[1142]},{"channel":"partner","coefficient":1,"kind":"side","node":1141,"targets":[1142]},{"channel":"u01","coefficient":1,"kind":"side","node":24615,"targets":[1143]},{"channel":"w02","coefficient":1,"kind":"side","node":24619,"targets":[1143]},{"channel":"partner","coefficient":1,"kind":"side","node":1140,"targets":[1143]},{"channel":"face0","coefficient":1,"kind":"side","node":11306,"targets":[1144,1145,1146,1147]},{"channel":"face0","coefficient":1,"kind":"side","node":11769,"targets":[1148,1149,1150,1151]},{"channel":"edge12","coefficient":1,"kind":"side","node":22192,"targets":[1144,1147]},{"channel":"edge12","coefficient":1,"kind":"side","node":22160,"targets":[1145,1146]},{"channel":"edge12","coefficient":1,"kind":"side","node":22192,"targets":[1148,1151]},{"channel":"edge12","coefficient":1,"kind":"side","node":22160,"targets":[1149,1150]},{"channel":"u01","coefficient":1,"kind":"side","node":24620,"targets":[1144]},{"channel":"w02","coefficient":1,"kind":"side","node":24624,"targets":[1144]},{"channel":"partner","coefficient":1,"kind":"side","node":1147,"targets":[1144]},{"channel":"u01","coefficient":1,"kind":"side","node":24620,"targets":[1145]},{"channel":"w02","coefficient":1,"kind":"side","node":24625,"targets":[1145]},{"channel":"partner","coefficient":1,"kind":"side","node":1146,"targets":[1145]},{"channel":"u01","coefficient":1,"kind":"side","node":24621,"targets":[1146]},{"channel":"w02","coefficient":1,"kind":"side","node":24624,"targets":[1146]},{"channel":"partner","coefficient":1,"kind":"side","node":1145,"targets":[1146]},{"channel":"u01","coefficient":1,"kind":"side","node":24621,"targets":[1147]},{"channel":"w02","coefficient":1,"kind":"side","node":24625,"targets":[1147]},{"channel":"partner","coefficient":1,"kind":"side","node":1144,"targets":[1147]},{"channel":"u01","coefficient":1,"kind":"side","node":24622,"targets":[1148]},{"channel":"w02","coefficient":1,"kind":"side","node":24626,"targets":[1148]},{"channel":"partner","coefficient":1,"kind":"side","node":1151,"targets":[1148]},{"channel":"u01","coefficient":1,"kind":"side","node":24622,"targets":[1149]},{"channel":"w02","coefficient":1,"kind":"side","node":24627,"targets":[1149]},{"channel":"partner","coefficient":1,"kind":"side","node":1150,"targets":[1149]},{"channel":"u01","coefficient":1,"kind":"side","node":24623,"targets":[1150]},{"channel":"w02","coefficient":1,"kind":"side","node":24626,"targets":[1150]},{"channel":"partner","coefficient":1,"kind":"side","node":1149,"targets":[1150]},{"channel":"u01","coefficient":1,"kind":"side","node":24623,"targets":[1151]},{"channel":"w02","coefficient":1,"kind":"side","node":24627,"targets":[1151]},{"channel":"partner","coefficient":1,"kind":"side","node":1148,"targets":[1151]},{"channel":"face0","coefficient":1,"kind":"side","node":11380,"targets":[1152,1153,1154,1155]},{"channel":"face0","coefficient":1,"kind":"side","node":11843,"targets":[1156,1157,1158,1159]},{"channel":"edge12","coefficient":1,"kind":"side","node":22256,"targets":[1152,1155]},{"channel":"edge12","coefficient":1,"kind":"side","node":22224,"targets":[1153,1154]},{"channel":"edge12","coefficient":1,"kind":"side","node":22256,"targets":[1156,1159]},{"channel":"edge12","coefficient":1,"kind":"side","node":22224,"targets":[1157,1158]},{"channel":"u01","coefficient":1,"kind":"side","node":24628,"targets":[1152]},{"channel":"w02","coefficient":1,"kind":"side","node":24632,"targets":[1152]},{"channel":"partner","coefficient":1,"kind":"side","node":1155,"targets":[1152]},{"channel":"u01","coefficient":1,"kind":"side","node":24628,"targets":[1153]},{"channel":"w02","coefficient":1,"kind":"side","node":24633,"targets":[1153]},{"channel":"partner","coefficient":1,"kind":"side","node":1154,"targets":[1153]},{"channel":"u01","coefficient":1,"kind":"side","node":24629,"targets":[1154]},{"channel":"w02","coefficient":1,"kind":"side","node":24632,"targets":[1154]},{"channel":"partner","coefficient":1,"kind":"side","node":1153,"targets":[1154]},{"channel":"u01","coefficient":1,"kind":"side","node":24629,"targets":[1155]},{"channel":"w02","coefficient":1,"kind":"side","node":24633,"targets":[1155]},{"channel":"partner","coefficient":1,"kind":"side","node":1152,"targets":[1155]},{"channel":"u01","coefficient":1,"kind":"side","node":24630,"targets":[1156]},{"channel":"w02","coefficient":1,"kind":"side","node":24634,"targets":[1156]},{"channel":"partner","coefficient":1,"kind":"side","node":1159,"targets":[1156]},{"channel":"u01","coefficient":1,"kind":"side","node":24630,"targets":[1157]},{"channel":"w02","coefficient":1,"kind":"side","node":24635,"targets":[1157]},{"channel":"partner","coefficient":1,"kind":"side","node":1158,"targets":[1157]},{"channel":"u01","coefficient":1,"kind":"side","node":24631,"targets":[1158]},{"channel":"w02","coefficient":1,"kind":"side","node":24634,"targets":[1158]},{"channel":"partner","coefficient":1,"kind":"side","node":1157,"targets":[1158]},{"channel":"u01","coefficient":1,"kind":"side","node":24631,"targets":[1159]},{"channel":"w02","coefficient":1,"kind":"side","node":24635,"targets":[1159]},{"channel":"partner","coefficient":1,"kind":"side","node":1156,"targets":[1159]},{"channel":"face0","coefficient":1,"kind":"side","node":11291,"targets":[1160,1161,1162,1163]},{"channel":"face0","coefficient":1,"kind":"side","node":11754,"targets":[1164,1165,1166,1167]},{"channel":"edge12","coefficient":1,"kind":"side","node":22320,"targets":[1160,1163]},{"channel":"edge12","coefficient":1,"kind":"side","node":22288,"targets":[1161,1162]},{"channel":"edge12","coefficient":1,"kind":"side","node":22320,"targets":[1164,1167]},{"channel":"edge12","coefficient":1,"kind":"side","node":22288,"targets":[1165,1166]},{"channel":"u01","coefficient":1,"kind":"side","node":24636,"targets":[1160]},{"channel":"w02","coefficient":1,"kind":"side","node":24640,"targets":[1160]},{"channel":"partner","coefficient":1,"kind":"side","node":1163,"targets":[1160]},{"channel":"u01","coefficient":1,"kind":"side","node":24636,"targets":[1161]},{"channel":"w02","coefficient":1,"kind":"side","node":24641,"targets":[1161]},{"channel":"partner","coefficient":1,"kind":"side","node":1162,"targets":[1161]},{"channel":"u01","coefficient":1,"kind":"side","node":24637,"targets":[1162]},{"channel":"w02","coefficient":1,"kind":"side","node":24640,"targets":[1162]},{"channel":"partner","coefficient":1,"kind":"side","node":1161,"targets":[1162]},{"channel":"u01","coefficient":1,"kind":"side","node":24637,"targets":[1163]},{"channel":"w02","coefficient":1,"kind":"side","node":24641,"targets":[1163]},{"channel":"partner","coefficient":1,"kind":"side","node":1160,"targets":[1163]},{"channel":"u01","coefficient":1,"kind":"side","node":24638,"targets":[1164]},{"channel":"w02","coefficient":1,"kind":"side","node":24642,"targets":[1164]},{"channel":"partner","coefficient":1,"kind":"side","node":1167,"targets":[1164]},{"channel":"u01","coefficient":1,"kind":"side","node":24638,"targets":[1165]},{"channel":"w02","coefficient":1,"kind":"side","node":24643,"targets":[1165]},{"channel":"partner","coefficient":1,"kind":"side","node":1166,"targets":[1165]},{"channel":"u01","coefficient":1,"kind":"side","node":24639,"targets":[1166]},{"channel":"w02","coefficient":1,"kind":"side","node":24642,"targets":[1166]},{"channel":"partner","coefficient":1,"kind":"side","node":1165,"targets":[1166]},{"channel":"u01","coefficient":1,"kind":"side","node":24639,"targets":[1167]},{"channel":"w02","coefficient":1,"kind":"side","node":24643,"targets":[1167]},{"channel":"partner","coefficient":1,"kind":"side","node":1164,"targets":[1167]},{"channel":"face0","coefficient":1,"kind":"side","node":11374,"targets":[1168,1169,1170,1171]},{"channel":"face0","coefficient":1,"kind":"side","node":11837,"targets":[1172,1173,1174,1175]},{"channel":"edge12","coefficient":1,"kind":"side","node":22384,"targets":[1168,1171]},{"channel":"edge12","coefficient":1,"kind":"side","node":22352,"targets":[1169,1170]},{"channel":"edge12","coefficient":1,"kind":"side","node":22384,"targets":[1172,1175]},{"channel":"edge12","coefficient":1,"kind":"side","node":22352,"targets":[1173,1174]},{"channel":"u01","coefficient":1,"kind":"side","node":24644,"targets":[1168]},{"channel":"w02","coefficient":1,"kind":"side","node":24648,"targets":[1168]},{"channel":"partner","coefficient":1,"kind":"side","node":1171,"targets":[1168]},{"channel":"u01","coefficient":1,"kind":"side","node":24644,"targets":[1169]},{"channel":"w02","coefficient":1,"kind":"side","node":24649,"targets":[1169]},{"channel":"partner","coefficient":1,"kind":"side","node":1170,"targets":[1169]},{"channel":"u01","coefficient":1,"kind":"side","node":24645,"targets":[1170]},{"channel":"w02","coefficient":1,"kind":"side","node":24648,"targets":[1170]},{"channel":"partner","coefficient":1,"kind":"side","node":1169,"targets":[1170]},{"channel":"u01","coefficient":1,"kind":"side","node":24645,"targets":[1171]},{"channel":"w02","coefficient":1,"kind":"side","node":24649,"targets":[1171]},{"channel":"partner","coefficient":1,"kind":"side","node":1168,"targets":[1171]},{"channel":"u01","coefficient":1,"kind":"side","node":24646,"targets":[1172]},{"channel":"w02","coefficient":1,"kind":"side","node":24650,"targets":[1172]},{"channel":"partner","coefficient":1,"kind":"side","node":1175,"targets":[1172]},{"channel":"u01","coefficient":1,"kind":"side","node":24646,"targets":[1173]},{"channel":"w02","coefficient":1,"kind":"side","node":24651,"targets":[1173]},{"channel":"partner","coefficient":1,"kind":"side","node":1174,"targets":[1173]},{"channel":"u01","coefficient":1,"kind":"side","node":24647,"targets":[1174]},{"channel":"w02","coefficient":1,"kind":"side","node":24650,"targets":[1174]},{"channel":"partner","coefficient":1,"kind":"side","node":1173,"targets":[1174]},{"channel":"u01","coefficient":1,"kind":"side","node":24647,"targets":[1175]},{"channel":"w02","coefficient":1,"kind":"side","node":24651,"targets":[1175]},{"channel":"partner","coefficient":1,"kind":"side","node":1172,"targets":[1175]},{"channel":"face0","coefficient":1,"kind":"side","node":11299,"targets":[1176,1177,1178,1179]},{"channel":"face0","coefficient":1,"kind":"side","node":11762,"targets":[1180,1181,1182,1183]},{"channel":"edge12","coefficient":1,"kind":"side","node":22448,"targets":[1176,1179]},{"channel":"edge12","coefficient":1,"kind":"side","node":22416,"targets":[1177,1178]},{"channel":"edge12","coefficient":1,"kind":"side","node":22448,"targets":[1180,1183]},{"channel":"edge12","coefficient":1,"kind":"side","node":22416,"targets":[1181,1182]},{"channel":"u01","coefficient":1,"kind":"side","node":24652,"targets":[1176]},{"channel":"w02","coefficient":1,"kind":"side","node":24656,"targets":[1176]},{"channel":"partner","coefficient":1,"kind":"side","node":1179,"targets":[1176]},{"channel":"u01","coefficient":1,"kind":"side","node":24652,"targets":[1177]},{"channel":"w02","coefficient":1,"kind":"side","node":24657,"targets":[1177]},{"channel":"partner","coefficient":1,"kind":"side","node":1178,"targets":[1177]},{"channel":"u01","coefficient":1,"kind":"side","node":24653,"targets":[1178]},{"channel":"w02","coefficient":1,"kind":"side","node":24656,"targets":[1178]},{"channel":"partner","coefficient":1,"kind":"side","node":1177,"targets":[1178]},{"channel":"u01","coefficient":1,"kind":"side","node":24653,"targets":[1179]},{"channel":"w02","coefficient":1,"kind":"side","node":24657,"targets":[1179]},{"channel":"partner","coefficient":1,"kind":"side","node":1176,"targets":[1179]},{"channel":"u01","coefficient":1,"kind":"side","node":24654,"targets":[1180]},{"channel":"w02","coefficient":1,"kind":"side","node":24658,"targets":[1180]},{"channel":"partner","coefficient":1,"kind":"side","node":1183,"targets":[1180]},{"channel":"u01","coefficient":1,"kind":"side","node":24654,"targets":[1181]},{"channel":"w02","coefficient":1,"kind":"side","node":24659,"targets":[1181]},{"channel":"partner","coefficient":1,"kind":"side","node":1182,"targets":[1181]},{"channel":"u01","coefficient":1,"kind":"side","node":24655,"targets":[1182]},{"channel":"w02","coefficient":1,"kind":"side","node":24658,"targets":[1182]},{"channel":"partner","coefficient":1,"kind":"side","node":1181,"targets":[1182]},{"channel":"u01","coefficient":1,"kind":"side","node":24655,"targets":[1183]},{"channel":"w02","coefficient":1,"kind":"side","node":24659,"targets":[1183]},{"channel":"partner","coefficient":1,"kind":"side","node":1180,"targets":[1183]},{"channel":"face0","coefficient":1,"kind":"side","node":11255,"targets":[1184,1185,1186,1187]},{"channel":"face0","coefficient":1,"kind":"side","node":11718,"targets":[1188,1189,1190,1191]},{"channel":"edge12","coefficient":1,"kind":"side","node":22512,"targets":[1184,1187]},{"channel":"edge12","coefficient":1,"kind":"side","node":22480,"targets":[1185,1186]},{"channel":"edge12","coefficient":1,"kind":"side","node":22512,"targets":[1188,1191]},{"channel":"edge12","coefficient":1,"kind":"side","node":22480,"targets":[1189,1190]},{"channel":"u01","coefficient":1,"kind":"side","node":24660,"targets":[1184]},{"channel":"w02","coefficient":1,"kind":"side","node":24664,"targets":[1184]},{"channel":"partner","coefficient":1,"kind":"side","node":1187,"targets":[1184]},{"channel":"u01","coefficient":1,"kind":"side","node":24660,"targets":[1185]},{"channel":"w02","coefficient":1,"kind":"side","node":24665,"targets":[1185]},{"channel":"partner","coefficient":1,"kind":"side","node":1186,"targets":[1185]},{"channel":"u01","coefficient":1,"kind":"side","node":24661,"targets":[1186]},{"channel":"w02","coefficient":1,"kind":"side","node":24664,"targets":[1186]},{"channel":"partner","coefficient":1,"kind":"side","node":1185,"targets":[1186]},{"channel":"u01","coefficient":1,"kind":"side","node":24661,"targets":[1187]},{"channel":"w02","coefficient":1,"kind":"side","node":24665,"targets":[1187]},{"channel":"partner","coefficient":1,"kind":"side","node":1184,"targets":[1187]},{"channel":"u01","coefficient":1,"kind":"side","node":24662,"targets":[1188]},{"channel":"w02","coefficient":1,"kind":"side","node":24666,"targets":[1188]},{"channel":"partner","coefficient":1,"kind":"side","node":1191,"targets":[1188]},{"channel":"u01","coefficient":1,"kind":"side","node":24662,"targets":[1189]},{"channel":"w02","coefficient":1,"kind":"side","node":24667,"targets":[1189]},{"channel":"partner","coefficient":1,"kind":"side","node":1190,"targets":[1189]},{"channel":"u01","coefficient":1,"kind":"side","node":24663,"targets":[1190]},{"channel":"w02","coefficient":1,"kind":"side","node":24666,"targets":[1190]},{"channel":"partner","coefficient":1,"kind":"side","node":1189,"targets":[1190]},{"channel":"u01","coefficient":1,"kind":"side","node":24663,"targets":[1191]},{"channel":"w02","coefficient":1,"kind":"side","node":24667,"targets":[1191]},{"channel":"partner","coefficient":1,"kind":"side","node":1188,"targets":[1191]},{"channel":"face0","coefficient":1,"kind":"side","node":11249,"targets":[1192,1193,1194,1195]},{"channel":"face0","coefficient":1,"kind":"side","node":11712,"targets":[1196,1197,1198,1199]},{"channel":"edge12","coefficient":1,"kind":"side","node":22576,"targets":[1192,1195]},{"channel":"edge12","coefficient":1,"kind":"side","node":22544,"targets":[1193,1194]},{"channel":"edge12","coefficient":1,"kind":"side","node":22576,"targets":[1196,1199]},{"channel":"edge12","coefficient":1,"kind":"side","node":22544,"targets":[1197,1198]},{"channel":"u01","coefficient":1,"kind":"side","node":24668,"targets":[1192]},{"channel":"w02","coefficient":1,"kind":"side","node":24672,"targets":[1192]},{"channel":"partner","coefficient":1,"kind":"side","node":1195,"targets":[1192]},{"channel":"u01","coefficient":1,"kind":"side","node":24668,"targets":[1193]},{"channel":"w02","coefficient":1,"kind":"side","node":24673,"targets":[1193]},{"channel":"partner","coefficient":1,"kind":"side","node":1194,"targets":[1193]},{"channel":"u01","coefficient":1,"kind":"side","node":24669,"targets":[1194]},{"channel":"w02","coefficient":1,"kind":"side","node":24672,"targets":[1194]},{"channel":"partner","coefficient":1,"kind":"side","node":1193,"targets":[1194]},{"channel":"u01","coefficient":1,"kind":"side","node":24669,"targets":[1195]},{"channel":"w02","coefficient":1,"kind":"side","node":24673,"targets":[1195]},{"channel":"partner","coefficient":1,"kind":"side","node":1192,"targets":[1195]},{"channel":"u01","coefficient":1,"kind":"side","node":24670,"targets":[1196]},{"channel":"w02","coefficient":1,"kind":"side","node":24674,"targets":[1196]},{"channel":"partner","coefficient":1,"kind":"side","node":1199,"targets":[1196]},{"channel":"u01","coefficient":1,"kind":"side","node":24670,"targets":[1197]},{"channel":"w02","coefficient":1,"kind":"side","node":24675,"targets":[1197]},{"channel":"partner","coefficient":1,"kind":"side","node":1198,"targets":[1197]},{"channel":"u01","coefficient":1,"kind":"side","node":24671,"targets":[1198]},{"channel":"w02","coefficient":1,"kind":"side","node":24674,"targets":[1198]},{"channel":"partner","coefficient":1,"kind":"side","node":1197,"targets":[1198]},{"channel":"u01","coefficient":1,"kind":"side","node":24671,"targets":[1199]},{"channel":"w02","coefficient":1,"kind":"side","node":24675,"targets":[1199]},{"channel":"partner","coefficient":1,"kind":"side","node":1196,"targets":[1199]},{"channel":"face0","coefficient":1,"kind":"side","node":11305,"targets":[1200,1201,1202,1203]},{"channel":"face0","coefficient":1,"kind":"side","node":11768,"targets":[1204,1205,1206,1207]},{"channel":"edge12","coefficient":1,"kind":"side","node":22640,"targets":[1200,1203]},{"channel":"edge12","coefficient":1,"kind":"side","node":22608,"targets":[1201,1202]},{"channel":"edge12","coefficient":1,"kind":"side","node":22640,"targets":[1204,1207]},{"channel":"edge12","coefficient":1,"kind":"side","node":22608,"targets":[1205,1206]},{"channel":"u01","coefficient":1,"kind":"side","node":24676,"targets":[1200]},{"channel":"w02","coefficient":1,"kind":"side","node":24680,"targets":[1200]},{"channel":"partner","coefficient":1,"kind":"side","node":1203,"targets":[1200]},{"channel":"u01","coefficient":1,"kind":"side","node":24676,"targets":[1201]},{"channel":"w02","coefficient":1,"kind":"side","node":24681,"targets":[1201]},{"channel":"partner","coefficient":1,"kind":"side","node":1202,"targets":[1201]},{"channel":"u01","coefficient":1,"kind":"side","node":24677,"targets":[1202]},{"channel":"w02","coefficient":1,"kind":"side","node":24680,"targets":[1202]},{"channel":"partner","coefficient":1,"kind":"side","node":1201,"targets":[1202]},{"channel":"u01","coefficient":1,"kind":"side","node":24677,"targets":[1203]},{"channel":"w02","coefficient":1,"kind":"side","node":24681,"targets":[1203]},{"channel":"partner","coefficient":1,"kind":"side","node":1200,"targets":[1203]},{"channel":"u01","coefficient":1,"kind":"side","node":24678,"targets":[1204]},{"channel":"w02","coefficient":1,"kind":"side","node":24682,"targets":[1204]},{"channel":"partner","coefficient":1,"kind":"side","node":1207,"targets":[1204]},{"channel":"u01","coefficient":1,"kind":"side","node":24678,"targets":[1205]},{"channel":"w02","coefficient":1,"kind":"side","node":24683,"targets":[1205]},{"channel":"partner","coefficient":1,"kind":"side","node":1206,"targets":[1205]},{"channel":"u01","coefficient":1,"kind":"side","node":24679,"targets":[1206]},{"channel":"w02","coefficient":1,"kind":"side","node":24682,"targets":[1206]},{"channel":"partner","coefficient":1,"kind":"side","node":1205,"targets":[1206]},{"channel":"u01","coefficient":1,"kind":"side","node":24679,"targets":[1207]},{"channel":"w02","coefficient":1,"kind":"side","node":24683,"targets":[1207]},{"channel":"partner","coefficient":1,"kind":"side","node":1204,"targets":[1207]},{"channel":"face0","coefficient":1,"kind":"side","node":11266,"targets":[1208,1209,1210,1211]},{"channel":"face0","coefficient":1,"kind":"side","node":11729,"targets":[1212,1213,1214,1215]},{"channel":"edge12","coefficient":1,"kind":"side","node":22704,"targets":[1208,1211]},{"channel":"edge12","coefficient":1,"kind":"side","node":22672,"targets":[1209,1210]},{"channel":"edge12","coefficient":1,"kind":"side","node":22704,"targets":[1212,1215]},{"channel":"edge12","coefficient":1,"kind":"side","node":22672,"targets":[1213,1214]},{"channel":"u01","coefficient":1,"kind":"side","node":24684,"targets":[1208]},{"channel":"w02","coefficient":1,"kind":"side","node":24688,"targets":[1208]},{"channel":"partner","coefficient":1,"kind":"side","node":1211,"targets":[1208]},{"channel":"u01","coefficient":1,"kind":"side","node":24684,"targets":[1209]},{"channel":"w02","coefficient":1,"kind":"side","node":24689,"targets":[1209]},{"channel":"partner","coefficient":1,"kind":"side","node":1210,"targets":[1209]},{"channel":"u01","coefficient":1,"kind":"side","node":24685,"targets":[1210]},{"channel":"w02","coefficient":1,"kind":"side","node":24688,"targets":[1210]},{"channel":"partner","coefficient":1,"kind":"side","node":1209,"targets":[1210]},{"channel":"u01","coefficient":1,"kind":"side","node":24685,"targets":[1211]},{"channel":"w02","coefficient":1,"kind":"side","node":24689,"targets":[1211]},{"channel":"partner","coefficient":1,"kind":"side","node":1208,"targets":[1211]},{"channel":"u01","coefficient":1,"kind":"side","node":24686,"targets":[1212]},{"channel":"w02","coefficient":1,"kind":"side","node":24690,"targets":[1212]},{"channel":"partner","coefficient":1,"kind":"side","node":1215,"targets":[1212]},{"channel":"u01","coefficient":1,"kind":"side","node":24686,"targets":[1213]},{"channel":"w02","coefficient":1,"kind":"side","node":24691,"targets":[1213]},{"channel":"partner","coefficient":1,"kind":"side","node":1214,"targets":[1213]},{"channel":"u01","coefficient":1,"kind":"side","node":24687,"targets":[1214]},{"channel":"w02","coefficient":1,"kind":"side","node":24690,"targets":[1214]},{"channel":"partner","coefficient":1,"kind":"side","node":1213,"targets":[1214]},{"channel":"u01","coefficient":1,"kind":"side","node":24687,"targets":[1215]},{"channel":"w02","coefficient":1,"kind":"side","node":24691,"targets":[1215]},{"channel":"partner","coefficient":1,"kind":"side","node":1212,"targets":[1215]},{"channel":"face0","coefficient":1,"kind":"side","node":11112,"targets":[1216,1217,1218,1219]},{"channel":"face0","coefficient":1,"kind":"side","node":11575,"targets":[1220,1221,1222,1223]},{"channel":"edge12","coefficient":1,"kind":"side","node":22768,"targets":[1216,1219]},{"channel":"edge12","coefficient":1,"kind":"side","node":22736,"targets":[1217,1218]},{"channel":"edge12","coefficient":1,"kind":"side","node":22768,"targets":[1220,1223]},{"channel":"edge12","coefficient":1,"kind":"side","node":22736,"targets":[1221,1222]},{"channel":"u01","coefficient":1,"kind":"side","node":24692,"targets":[1216]},{"channel":"w02","coefficient":1,"kind":"side","node":24696,"targets":[1216]},{"channel":"partner","coefficient":1,"kind":"side","node":1219,"targets":[1216]},{"channel":"u01","coefficient":1,"kind":"side","node":24692,"targets":[1217]},{"channel":"w02","coefficient":1,"kind":"side","node":24697,"targets":[1217]},{"channel":"partner","coefficient":1,"kind":"side","node":1218,"targets":[1217]},{"channel":"u01","coefficient":1,"kind":"side","node":24693,"targets":[1218]},{"channel":"w02","coefficient":1,"kind":"side","node":24696,"targets":[1218]},{"channel":"partner","coefficient":1,"kind":"side","node":1217,"targets":[1218]},{"channel":"u01","coefficient":1,"kind":"side","node":24693,"targets":[1219]},{"channel":"w02","coefficient":1,"kind":"side","node":24697,"targets":[1219]},{"channel":"partner","coefficient":1,"kind":"side","node":1216,"targets":[1219]},{"channel":"u01","coefficient":1,"kind":"side","node":24694,"targets":[1220]},{"channel":"w02","coefficient":1,"kind":"side","node":24698,"targets":[1220]},{"channel":"partner","coefficient":1,"kind":"side","node":1223,"targets":[1220]},{"channel":"u01","coefficient":1,"kind":"side","node":24694,"targets":[1221]},{"channel":"w02","coefficient":1,"kind":"side","node":24699,"targets":[1221]},{"channel":"partner","coefficient":1,"kind":"side","node":1222,"targets":[1221]},{"channel":"u01","coefficient":1,"kind":"side","node":24695,"targets":[1222]},{"channel":"w02","coefficient":1,"kind":"side","node":24698,"targets":[1222]},{"channel":"partner","coefficient":1,"kind":"side","node":1221,"targets":[1222]},{"channel":"u01","coefficient":1,"kind":"side","node":24695,"targets":[1223]},{"channel":"w02","coefficient":1,"kind":"side","node":24699,"targets":[1223]},{"channel":"partner","coefficient":1,"kind":"side","node":1220,"targets":[1223]},{"channel":"face0","coefficient":1,"kind":"side","node":11276,"targets":[1224,1225,1226,1227]},{"channel":"face0","coefficient":1,"kind":"side","node":11739,"targets":[1228,1229,1230,1231]},{"channel":"edge12","coefficient":1,"kind":"side","node":22832,"targets":[1224,1227]},{"channel":"edge12","coefficient":1,"kind":"side","node":22800,"targets":[1225,1226]},{"channel":"edge12","coefficient":1,"kind":"side","node":22832,"targets":[1228,1231]},{"channel":"edge12","coefficient":1,"kind":"side","node":22800,"targets":[1229,1230]},{"channel":"u01","coefficient":1,"kind":"side","node":24700,"targets":[1224]},{"channel":"w02","coefficient":1,"kind":"side","node":24704,"targets":[1224]},{"channel":"partner","coefficient":1,"kind":"side","node":1227,"targets":[1224]},{"channel":"u01","coefficient":1,"kind":"side","node":24700,"targets":[1225]},{"channel":"w02","coefficient":1,"kind":"side","node":24705,"targets":[1225]},{"channel":"partner","coefficient":1,"kind":"side","node":1226,"targets":[1225]},{"channel":"u01","coefficient":1,"kind":"side","node":24701,"targets":[1226]},{"channel":"w02","coefficient":1,"kind":"side","node":24704,"targets":[1226]},{"channel":"partner","coefficient":1,"kind":"side","node":1225,"targets":[1226]},{"channel":"u01","coefficient":1,"kind":"side","node":24701,"targets":[1227]},{"channel":"w02","coefficient":1,"kind":"side","node":24705,"targets":[1227]},{"channel":"partner","coefficient":1,"kind":"side","node":1224,"targets":[1227]},{"channel":"u01","coefficient":1,"kind":"side","node":24702,"targets":[1228]},{"channel":"w02","coefficient":1,"kind":"side","node":24706,"targets":[1228]},{"channel":"partner","coefficient":1,"kind":"side","node":1231,"targets":[1228]},{"channel":"u01","coefficient":1,"kind":"side","node":24702,"targets":[1229]},{"channel":"w02","coefficient":1,"kind":"side","node":24707,"targets":[1229]},{"channel":"partner","coefficient":1,"kind":"side","node":1230,"targets":[1229]},{"channel":"u01","coefficient":1,"kind":"side","node":24703,"targets":[1230]},{"channel":"w02","coefficient":1,"kind":"side","node":24706,"targets":[1230]},{"channel":"partner","coefficient":1,"kind":"side","node":1229,"targets":[1230]},{"channel":"u01","coefficient":1,"kind":"side","node":24703,"targets":[1231]},{"channel":"w02","coefficient":1,"kind":"side","node":24707,"targets":[1231]},{"channel":"partner","coefficient":1,"kind":"side","node":1228,"targets":[1231]},{"channel":"face0","coefficient":1,"kind":"side","node":11318,"targets":[1232,1233,1234,1235]},{"channel":"face0","coefficient":1,"kind":"side","node":11781,"targets":[1236,1237,1238,1239]},{"channel":"edge12","coefficient":1,"kind":"side","node":22896,"targets":[1232,1235]},{"channel":"edge12","coefficient":1,"kind":"side","node":22864,"targets":[1233,1234]},{"channel":"edge12","coefficient":1,"kind":"side","node":22896,"targets":[1236,1239]},{"channel":"edge12","coefficient":1,"kind":"side","node":22864,"targets":[1237,1238]},{"channel":"u01","coefficient":1,"kind":"side","node":24708,"targets":[1232]},{"channel":"w02","coefficient":1,"kind":"side","node":24712,"targets":[1232]},{"channel":"partner","coefficient":1,"kind":"side","node":1235,"targets":[1232]},{"channel":"u01","coefficient":1,"kind":"side","node":24708,"targets":[1233]},{"channel":"w02","coefficient":1,"kind":"side","node":24713,"targets":[1233]},{"channel":"partner","coefficient":1,"kind":"side","node":1234,"targets":[1233]},{"channel":"u01","coefficient":1,"kind":"side","node":24709,"targets":[1234]},{"channel":"w02","coefficient":1,"kind":"side","node":24712,"targets":[1234]},{"channel":"partner","coefficient":1,"kind":"side","node":1233,"targets":[1234]},{"channel":"u01","coefficient":1,"kind":"side","node":24709,"targets":[1235]},{"channel":"w02","coefficient":1,"kind":"side","node":24713,"targets":[1235]},{"channel":"partner","coefficient":1,"kind":"side","node":1232,"targets":[1235]},{"channel":"u01","coefficient":1,"kind":"side","node":24710,"targets":[1236]},{"channel":"w02","coefficient":1,"kind":"side","node":24714,"targets":[1236]},{"channel":"partner","coefficient":1,"kind":"side","node":1239,"targets":[1236]},{"channel":"u01","coefficient":1,"kind":"side","node":24710,"targets":[1237]},{"channel":"w02","coefficient":1,"kind":"side","node":24715,"targets":[1237]},{"channel":"partner","coefficient":1,"kind":"side","node":1238,"targets":[1237]},{"channel":"u01","coefficient":1,"kind":"side","node":24711,"targets":[1238]},{"channel":"w02","coefficient":1,"kind":"side","node":24714,"targets":[1238]},{"channel":"partner","coefficient":1,"kind":"side","node":1237,"targets":[1238]},{"channel":"u01","coefficient":1,"kind":"side","node":24711,"targets":[1239]},{"channel":"w02","coefficient":1,"kind":"side","node":24715,"targets":[1239]},{"channel":"partner","coefficient":1,"kind":"side","node":1236,"targets":[1239]},{"channel":"face0","coefficient":1,"kind":"side","node":11339,"targets":[1240,1241,1242,1243]},{"channel":"face0","coefficient":1,"kind":"side","node":11802,"targets":[1244,1245,1246,1247]},{"channel":"edge12","coefficient":1,"kind":"side","node":22960,"targets":[1240,1243]},{"channel":"edge12","coefficient":1,"kind":"side","node":22928,"targets":[1241,1242]},{"channel":"edge12","coefficient":1,"kind":"side","node":22960,"targets":[1244,1247]},{"channel":"edge12","coefficient":1,"kind":"side","node":22928,"targets":[1245,1246]},{"channel":"u01","coefficient":1,"kind":"side","node":24716,"targets":[1240]},{"channel":"w02","coefficient":1,"kind":"side","node":24720,"targets":[1240]},{"channel":"partner","coefficient":1,"kind":"side","node":1243,"targets":[1240]},{"channel":"u01","coefficient":1,"kind":"side","node":24716,"targets":[1241]},{"channel":"w02","coefficient":1,"kind":"side","node":24721,"targets":[1241]},{"channel":"partner","coefficient":1,"kind":"side","node":1242,"targets":[1241]},{"channel":"u01","coefficient":1,"kind":"side","node":24717,"targets":[1242]},{"channel":"w02","coefficient":1,"kind":"side","node":24720,"targets":[1242]},{"channel":"partner","coefficient":1,"kind":"side","node":1241,"targets":[1242]},{"channel":"u01","coefficient":1,"kind":"side","node":24717,"targets":[1243]},{"channel":"w02","coefficient":1,"kind":"side","node":24721,"targets":[1243]},{"channel":"partner","coefficient":1,"kind":"side","node":1240,"targets":[1243]},{"channel":"u01","coefficient":1,"kind":"side","node":24718,"targets":[1244]},{"channel":"w02","coefficient":1,"kind":"side","node":24722,"targets":[1244]},{"channel":"partner","coefficient":1,"kind":"side","node":1247,"targets":[1244]},{"channel":"u01","coefficient":1,"kind":"side","node":24718,"targets":[1245]},{"channel":"w02","coefficient":1,"kind":"side","node":24723,"targets":[1245]},{"channel":"partner","coefficient":1,"kind":"side","node":1246,"targets":[1245]},{"channel":"u01","coefficient":1,"kind":"side","node":24719,"targets":[1246]},{"channel":"w02","coefficient":1,"kind":"side","node":24722,"targets":[1246]},{"channel":"partner","coefficient":1,"kind":"side","node":1245,"targets":[1246]},{"channel":"u01","coefficient":1,"kind":"side","node":24719,"targets":[1247]},{"channel":"w02","coefficient":1,"kind":"side","node":24723,"targets":[1247]},{"channel":"partner","coefficient":1,"kind":"side","node":1244,"targets":[1247]},{"channel":"face0","coefficient":1,"kind":"side","node":11085,"targets":[1248,1249,1250,1251]},{"channel":"face0","coefficient":1,"kind":"side","node":11548,"targets":[1252,1253,1254,1255]},{"channel":"edge12","coefficient":1,"kind":"side","node":23024,"targets":[1248,1251]},{"channel":"edge12","coefficient":1,"kind":"side","node":22992,"targets":[1249,1250]},{"channel":"edge12","coefficient":1,"kind":"side","node":23024,"targets":[1252,1255]},{"channel":"edge12","coefficient":1,"kind":"side","node":22992,"targets":[1253,1254]},{"channel":"u01","coefficient":1,"kind":"side","node":24724,"targets":[1248]},{"channel":"w02","coefficient":1,"kind":"side","node":24728,"targets":[1248]},{"channel":"partner","coefficient":1,"kind":"side","node":1251,"targets":[1248]},{"channel":"u01","coefficient":1,"kind":"side","node":24724,"targets":[1249]},{"channel":"w02","coefficient":1,"kind":"side","node":24729,"targets":[1249]},{"channel":"partner","coefficient":1,"kind":"side","node":1250,"targets":[1249]},{"channel":"u01","coefficient":1,"kind":"side","node":24725,"targets":[1250]},{"channel":"w02","coefficient":1,"kind":"side","node":24728,"targets":[1250]},{"channel":"partner","coefficient":1,"kind":"side","node":1249,"targets":[1250]},{"channel":"u01","coefficient":1,"kind":"side","node":24725,"targets":[1251]},{"channel":"w02","coefficient":1,"kind":"side","node":24729,"targets":[1251]},{"channel":"partner","coefficient":1,"kind":"side","node":1248,"targets":[1251]},{"channel":"u01","coefficient":1,"kind":"side","node":24726,"targets":[1252]},{"channel":"w02","coefficient":1,"kind":"side","node":24730,"targets":[1252]},{"channel":"partner","coefficient":1,"kind":"side","node":1255,"targets":[1252]},{"channel":"u01","coefficient":1,"kind":"side","node":24726,"targets":[1253]},{"channel":"w02","coefficient":1,"kind":"side","node":24731,"targets":[1253]},{"channel":"partner","coefficient":1,"kind":"side","node":1254,"targets":[1253]},{"channel":"u01","coefficient":1,"kind":"side","node":24727,"targets":[1254]},{"channel":"w02","coefficient":1,"kind":"side","node":24730,"targets":[1254]},{"channel":"partner","coefficient":1,"kind":"side","node":1253,"targets":[1254]},{"channel":"u01","coefficient":1,"kind":"side","node":24727,"targets":[1255]},{"channel":"w02","coefficient":1,"kind":"side","node":24731,"targets":[1255]},{"channel":"partner","coefficient":1,"kind":"side","node":1252,"targets":[1255]},{"channel":"face0","coefficient":1,"kind":"side","node":11187,"targets":[1256,1257,1258,1259]},{"channel":"face0","coefficient":1,"kind":"side","node":11650,"targets":[1260,1261,1262,1263]},{"channel":"edge12","coefficient":1,"kind":"side","node":23088,"targets":[1256,1259]},{"channel":"edge12","coefficient":1,"kind":"side","node":23056,"targets":[1257,1258]},{"channel":"edge12","coefficient":1,"kind":"side","node":23088,"targets":[1260,1263]},{"channel":"edge12","coefficient":1,"kind":"side","node":23056,"targets":[1261,1262]},{"channel":"u01","coefficient":1,"kind":"side","node":24732,"targets":[1256]},{"channel":"w02","coefficient":1,"kind":"side","node":24736,"targets":[1256]},{"channel":"partner","coefficient":1,"kind":"side","node":1259,"targets":[1256]},{"channel":"u01","coefficient":1,"kind":"side","node":24732,"targets":[1257]},{"channel":"w02","coefficient":1,"kind":"side","node":24737,"targets":[1257]},{"channel":"partner","coefficient":1,"kind":"side","node":1258,"targets":[1257]},{"channel":"u01","coefficient":1,"kind":"side","node":24733,"targets":[1258]},{"channel":"w02","coefficient":1,"kind":"side","node":24736,"targets":[1258]},{"channel":"partner","coefficient":1,"kind":"side","node":1257,"targets":[1258]},{"channel":"u01","coefficient":1,"kind":"side","node":24733,"targets":[1259]},{"channel":"w02","coefficient":1,"kind":"side","node":24737,"targets":[1259]},{"channel":"partner","coefficient":1,"kind":"side","node":1256,"targets":[1259]},{"channel":"u01","coefficient":1,"kind":"side","node":24734,"targets":[1260]},{"channel":"w02","coefficient":1,"kind":"side","node":24738,"targets":[1260]},{"channel":"partner","coefficient":1,"kind":"side","node":1263,"targets":[1260]},{"channel":"u01","coefficient":1,"kind":"side","node":24734,"targets":[1261]},{"channel":"w02","coefficient":1,"kind":"side","node":24739,"targets":[1261]},{"channel":"partner","coefficient":1,"kind":"side","node":1262,"targets":[1261]},{"channel":"u01","coefficient":1,"kind":"side","node":24735,"targets":[1262]},{"channel":"w02","coefficient":1,"kind":"side","node":24738,"targets":[1262]},{"channel":"partner","coefficient":1,"kind":"side","node":1261,"targets":[1262]},{"channel":"u01","coefficient":1,"kind":"side","node":24735,"targets":[1263]},{"channel":"w02","coefficient":1,"kind":"side","node":24739,"targets":[1263]},{"channel":"partner","coefficient":1,"kind":"side","node":1260,"targets":[1263]},{"channel":"face0","coefficient":1,"kind":"side","node":11333,"targets":[1264,1265,1266,1267]},{"channel":"face0","coefficient":1,"kind":"side","node":11796,"targets":[1268,1269,1270,1271]},{"channel":"edge12","coefficient":1,"kind":"side","node":23152,"targets":[1264,1267]},{"channel":"edge12","coefficient":1,"kind":"side","node":23120,"targets":[1265,1266]},{"channel":"edge12","coefficient":1,"kind":"side","node":23152,"targets":[1268,1271]},{"channel":"edge12","coefficient":1,"kind":"side","node":23120,"targets":[1269,1270]},{"channel":"u01","coefficient":1,"kind":"side","node":24740,"targets":[1264]},{"channel":"w02","coefficient":1,"kind":"side","node":24744,"targets":[1264]},{"channel":"partner","coefficient":1,"kind":"side","node":1267,"targets":[1264]},{"channel":"u01","coefficient":1,"kind":"side","node":24740,"targets":[1265]},{"channel":"w02","coefficient":1,"kind":"side","node":24745,"targets":[1265]},{"channel":"partner","coefficient":1,"kind":"side","node":1266,"targets":[1265]},{"channel":"u01","coefficient":1,"kind":"side","node":24741,"targets":[1266]},{"channel":"w02","coefficient":1,"kind":"side","node":24744,"targets":[1266]},{"channel":"partner","coefficient":1,"kind":"side","node":1265,"targets":[1266]},{"channel":"u01","coefficient":1,"kind":"side","node":24741,"targets":[1267]},{"channel":"w02","coefficient":1,"kind":"side","node":24745,"targets":[1267]},{"channel":"partner","coefficient":1,"kind":"side","node":1264,"targets":[1267]},{"channel":"u01","coefficient":1,"kind":"side","node":24742,"targets":[1268]},{"channel":"w02","coefficient":1,"kind":"side","node":24746,"targets":[1268]},{"channel":"partner","coefficient":1,"kind":"side","node":1271,"targets":[1268]},{"channel":"u01","coefficient":1,"kind":"side","node":24742,"targets":[1269]},{"channel":"w02","coefficient":1,"kind":"side","node":24747,"targets":[1269]},{"channel":"partner","coefficient":1,"kind":"side","node":1270,"targets":[1269]},{"channel":"u01","coefficient":1,"kind":"side","node":24743,"targets":[1270]},{"channel":"w02","coefficient":1,"kind":"side","node":24746,"targets":[1270]},{"channel":"partner","coefficient":1,"kind":"side","node":1269,"targets":[1270]},{"channel":"u01","coefficient":1,"kind":"side","node":24743,"targets":[1271]},{"channel":"w02","coefficient":1,"kind":"side","node":24747,"targets":[1271]},{"channel":"partner","coefficient":1,"kind":"side","node":1268,"targets":[1271]},{"channel":"face0","coefficient":1,"kind":"side","node":11289,"targets":[1272,1273,1274,1275]},{"channel":"face0","coefficient":1,"kind":"side","node":11752,"targets":[1276,1277,1278,1279]},{"channel":"edge12","coefficient":1,"kind":"side","node":23216,"targets":[1272,1275]},{"channel":"edge12","coefficient":1,"kind":"side","node":23184,"targets":[1273,1274]},{"channel":"edge12","coefficient":1,"kind":"side","node":23216,"targets":[1276,1279]},{"channel":"edge12","coefficient":1,"kind":"side","node":23184,"targets":[1277,1278]},{"channel":"u01","coefficient":1,"kind":"side","node":24748,"targets":[1272]},{"channel":"w02","coefficient":1,"kind":"side","node":24752,"targets":[1272]},{"channel":"partner","coefficient":1,"kind":"side","node":1275,"targets":[1272]},{"channel":"u01","coefficient":1,"kind":"side","node":24748,"targets":[1273]},{"channel":"w02","coefficient":1,"kind":"side","node":24753,"targets":[1273]},{"channel":"partner","coefficient":1,"kind":"side","node":1274,"targets":[1273]},{"channel":"u01","coefficient":1,"kind":"side","node":24749,"targets":[1274]},{"channel":"w02","coefficient":1,"kind":"side","node":24752,"targets":[1274]},{"channel":"partner","coefficient":1,"kind":"side","node":1273,"targets":[1274]},{"channel":"u01","coefficient":1,"kind":"side","node":24749,"targets":[1275]},{"channel":"w02","coefficient":1,"kind":"side","node":24753,"targets":[1275]},{"channel":"partner","coefficient":1,"kind":"side","node":1272,"targets":[1275]},{"channel":"u01","coefficient":1,"kind":"side","node":24750,"targets":[1276]},{"channel":"w02","coefficient":1,"kind":"side","node":24754,"targets":[1276]},{"channel":"partner","coefficient":1,"kind":"side","node":1279,"targets":[1276]},{"channel":"u01","coefficient":1,"kind":"side","node":24750,"targets":[1277]},{"channel":"w02","coefficient":1,"kind":"side","node":24755,"targets":[1277]},{"channel":"partner","coefficient":1,"kind":"side","node":1278,"targets":[1277]},{"channel":"u01","coefficient":1,"kind":"side","node":24751,"targets":[1278]},{"channel":"w02","coefficient":1,"kind":"side","node":24754,"targets":[1278]},{"channel":"partner","coefficient":1,"kind":"side","node":1277,"targets":[1278]},{"channel":"u01","coefficient":1,"kind":"side","node":24751,"targets":[1279]},{"channel":"w02","coefficient":1,"kind":"side","node":24755,"targets":[1279]},{"channel":"partner","coefficient":1,"kind":"side","node":1276,"targets":[1279]},{"channel":"face0","coefficient":1,"kind":"side","node":11336,"targets":[1280,1281,1282,1283]},{"channel":"face0","coefficient":1,"kind":"side","node":11799,"targets":[1284,1285,1286,1287]},{"channel":"edge12","coefficient":1,"kind":"side","node":23280,"targets":[1280,1283]},{"channel":"edge12","coefficient":1,"kind":"side","node":23248,"targets":[1281,1282]},{"channel":"edge12","coefficient":1,"kind":"side","node":23280,"targets":[1284,1287]},{"channel":"edge12","coefficient":1,"kind":"side","node":23248,"targets":[1285,1286]},{"channel":"u01","coefficient":1,"kind":"side","node":24756,"targets":[1280]},{"channel":"w02","coefficient":1,"kind":"side","node":24760,"targets":[1280]},{"channel":"partner","coefficient":1,"kind":"side","node":1283,"targets":[1280]},{"channel":"u01","coefficient":1,"kind":"side","node":24756,"targets":[1281]},{"channel":"w02","coefficient":1,"kind":"side","node":24761,"targets":[1281]},{"channel":"partner","coefficient":1,"kind":"side","node":1282,"targets":[1281]},{"channel":"u01","coefficient":1,"kind":"side","node":24757,"targets":[1282]},{"channel":"w02","coefficient":1,"kind":"side","node":24760,"targets":[1282]},{"channel":"partner","coefficient":1,"kind":"side","node":1281,"targets":[1282]},{"channel":"u01","coefficient":1,"kind":"side","node":24757,"targets":[1283]},{"channel":"w02","coefficient":1,"kind":"side","node":24761,"targets":[1283]},{"channel":"partner","coefficient":1,"kind":"side","node":1280,"targets":[1283]},{"channel":"u01","coefficient":1,"kind":"side","node":24758,"targets":[1284]},{"channel":"w02","coefficient":1,"kind":"side","node":24762,"targets":[1284]},{"channel":"partner","coefficient":1,"kind":"side","node":1287,"targets":[1284]},{"channel":"u01","coefficient":1,"kind":"side","node":24758,"targets":[1285]},{"channel":"w02","coefficient":1,"kind":"side","node":24763,"targets":[1285]},{"channel":"partner","coefficient":1,"kind":"side","node":1286,"targets":[1285]},{"channel":"u01","coefficient":1,"kind":"side","node":24759,"targets":[1286]},{"channel":"w02","coefficient":1,"kind":"side","node":24762,"targets":[1286]},{"channel":"partner","coefficient":1,"kind":"side","node":1285,"targets":[1286]},{"channel":"u01","coefficient":1,"kind":"side","node":24759,"targets":[1287]},{"channel":"w02","coefficient":1,"kind":"side","node":24763,"targets":[1287]},{"channel":"partner","coefficient":1,"kind":"side","node":1284,"targets":[1287]},{"channel":"face0","coefficient":1,"kind":"side","node":11372,"targets":[1288,1289,1290,1291]},{"channel":"face0","coefficient":1,"kind":"side","node":11835,"targets":[1292,1293,1294,1295]},{"channel":"edge12","coefficient":1,"kind":"side","node":23344,"targets":[1288,1291]},{"channel":"edge12","coefficient":1,"kind":"side","node":23312,"targets":[1289,1290]},{"channel":"edge12","coefficient":1,"kind":"side","node":23344,"targets":[1292,1295]},{"channel":"edge12","coefficient":1,"kind":"side","node":23312,"targets":[1293,1294]},{"channel":"u01","coefficient":1,"kind":"side","node":24764,"targets":[1288]},{"channel":"w02","coefficient":1,"kind":"side","node":24768,"targets":[1288]},{"channel":"partner","coefficient":1,"kind":"side","node":1291,"targets":[1288]},{"channel":"u01","coefficient":1,"kind":"side","node":24764,"targets":[1289]},{"channel":"w02","coefficient":1,"kind":"side","node":24769,"targets":[1289]},{"channel":"partner","coefficient":1,"kind":"side","node":1290,"targets":[1289]},{"channel":"u01","coefficient":1,"kind":"side","node":24765,"targets":[1290]},{"channel":"w02","coefficient":1,"kind":"side","node":24768,"targets":[1290]},{"channel":"partner","coefficient":1,"kind":"side","node":1289,"targets":[1290]},{"channel":"u01","coefficient":1,"kind":"side","node":24765,"targets":[1291]},{"channel":"w02","coefficient":1,"kind":"side","node":24769,"targets":[1291]},{"channel":"partner","coefficient":1,"kind":"side","node":1288,"targets":[1291]},{"channel":"u01","coefficient":1,"kind":"side","node":24766,"targets":[1292]},{"channel":"w02","coefficient":1,"kind":"side","node":24770,"targets":[1292]},{"channel":"partner","coefficient":1,"kind":"side","node":1295,"targets":[1292]},{"channel":"u01","coefficient":1,"kind":"side","node":24766,"targets":[1293]},{"channel":"w02","coefficient":1,"kind":"side","node":24771,"targets":[1293]},{"channel":"partner","coefficient":1,"kind":"side","node":1294,"targets":[1293]},{"channel":"u01","coefficient":1,"kind":"side","node":24767,"targets":[1294]},{"channel":"w02","coefficient":1,"kind":"side","node":24770,"targets":[1294]},{"channel":"partner","coefficient":1,"kind":"side","node":1293,"targets":[1294]},{"channel":"u01","coefficient":1,"kind":"side","node":24767,"targets":[1295]},{"channel":"w02","coefficient":1,"kind":"side","node":24771,"targets":[1295]},{"channel":"partner","coefficient":1,"kind":"side","node":1292,"targets":[1295]},{"channel":"face0","coefficient":1,"kind":"side","node":11286,"targets":[1296,1297,1298,1299]},{"channel":"face0","coefficient":1,"kind":"side","node":11749,"targets":[1300,1301,1302,1303]},{"channel":"edge12","coefficient":1,"kind":"side","node":23408,"targets":[1296,1299]},{"channel":"edge12","coefficient":1,"kind":"side","node":23376,"targets":[1297,1298]},{"channel":"edge12","coefficient":1,"kind":"side","node":23408,"targets":[1300,1303]},{"channel":"edge12","coefficient":1,"kind":"side","node":23376,"targets":[1301,1302]},{"channel":"u01","coefficient":1,"kind":"side","node":24772,"targets":[1296]},{"channel":"w02","coefficient":1,"kind":"side","node":24776,"targets":[1296]},{"channel":"partner","coefficient":1,"kind":"side","node":1299,"targets":[1296]},{"channel":"u01","coefficient":1,"kind":"side","node":24772,"targets":[1297]},{"channel":"w02","coefficient":1,"kind":"side","node":24777,"targets":[1297]},{"channel":"partner","coefficient":1,"kind":"side","node":1298,"targets":[1297]},{"channel":"u01","coefficient":1,"kind":"side","node":24773,"targets":[1298]},{"channel":"w02","coefficient":1,"kind":"side","node":24776,"targets":[1298]},{"channel":"partner","coefficient":1,"kind":"side","node":1297,"targets":[1298]},{"channel":"u01","coefficient":1,"kind":"side","node":24773,"targets":[1299]},{"channel":"w02","coefficient":1,"kind":"side","node":24777,"targets":[1299]},{"channel":"partner","coefficient":1,"kind":"side","node":1296,"targets":[1299]},{"channel":"u01","coefficient":1,"kind":"side","node":24774,"targets":[1300]},{"channel":"w02","coefficient":1,"kind":"side","node":24778,"targets":[1300]},{"channel":"partner","coefficient":1,"kind":"side","node":1303,"targets":[1300]},{"channel":"u01","coefficient":1,"kind":"side","node":24774,"targets":[1301]},{"channel":"w02","coefficient":1,"kind":"side","node":24779,"targets":[1301]},{"channel":"partner","coefficient":1,"kind":"side","node":1302,"targets":[1301]},{"channel":"u01","coefficient":1,"kind":"side","node":24775,"targets":[1302]},{"channel":"w02","coefficient":1,"kind":"side","node":24778,"targets":[1302]},{"channel":"partner","coefficient":1,"kind":"side","node":1301,"targets":[1302]},{"channel":"u01","coefficient":1,"kind":"side","node":24775,"targets":[1303]},{"channel":"w02","coefficient":1,"kind":"side","node":24779,"targets":[1303]},{"channel":"partner","coefficient":1,"kind":"side","node":1300,"targets":[1303]},{"channel":"face0","coefficient":1,"kind":"side","node":11209,"targets":[1304,1305,1306,1307]},{"channel":"face0","coefficient":1,"kind":"side","node":11672,"targets":[1308,1309,1310,1311]},{"channel":"edge12","coefficient":1,"kind":"side","node":23472,"targets":[1304,1307]},{"channel":"edge12","coefficient":1,"kind":"side","node":23440,"targets":[1305,1306]},{"channel":"edge12","coefficient":1,"kind":"side","node":23472,"targets":[1308,1311]},{"channel":"edge12","coefficient":1,"kind":"side","node":23440,"targets":[1309,1310]},{"channel":"u01","coefficient":1,"kind":"side","node":24780,"targets":[1304]},{"channel":"w02","coefficient":1,"kind":"side","node":24784,"targets":[1304]},{"channel":"partner","coefficient":1,"kind":"side","node":1307,"targets":[1304]},{"channel":"u01","coefficient":1,"kind":"side","node":24780,"targets":[1305]},{"channel":"w02","coefficient":1,"kind":"side","node":24785,"targets":[1305]},{"channel":"partner","coefficient":1,"kind":"side","node":1306,"targets":[1305]},{"channel":"u01","coefficient":1,"kind":"side","node":24781,"targets":[1306]},{"channel":"w02","coefficient":1,"kind":"side","node":24784,"targets":[1306]},{"channel":"partner","coefficient":1,"kind":"side","node":1305,"targets":[1306]},{"channel":"u01","coefficient":1,"kind":"side","node":24781,"targets":[1307]},{"channel":"w02","coefficient":1,"kind":"side","node":24785,"targets":[1307]},{"channel":"partner","coefficient":1,"kind":"side","node":1304,"targets":[1307]},{"channel":"u01","coefficient":1,"kind":"side","node":24782,"targets":[1308]},{"channel":"w02","coefficient":1,"kind":"side","node":24786,"targets":[1308]},{"channel":"partner","coefficient":1,"kind":"side","node":1311,"targets":[1308]},{"channel":"u01","coefficient":1,"kind":"side","node":24782,"targets":[1309]},{"channel":"w02","coefficient":1,"kind":"side","node":24787,"targets":[1309]},{"channel":"partner","coefficient":1,"kind":"side","node":1310,"targets":[1309]},{"channel":"u01","coefficient":1,"kind":"side","node":24783,"targets":[1310]},{"channel":"w02","coefficient":1,"kind":"side","node":24786,"targets":[1310]},{"channel":"partner","coefficient":1,"kind":"side","node":1309,"targets":[1310]},{"channel":"u01","coefficient":1,"kind":"side","node":24783,"targets":[1311]},{"channel":"w02","coefficient":1,"kind":"side","node":24787,"targets":[1311]},{"channel":"partner","coefficient":1,"kind":"side","node":1308,"targets":[1311]},{"channel":"face0","coefficient":1,"kind":"side","node":12232,"targets":[1312,1313,1314,1315]},{"channel":"face0","coefficient":1,"kind":"side","node":12695,"targets":[1316,1317,1318,1319]},{"channel":"edge12","coefficient":1,"kind":"side","node":22195,"targets":[1312,1315]},{"channel":"edge12","coefficient":1,"kind":"side","node":22163,"targets":[1313,1314]},{"channel":"edge12","coefficient":1,"kind":"side","node":22195,"targets":[1316,1319]},{"channel":"edge12","coefficient":1,"kind":"side","node":22163,"targets":[1317,1318]},{"channel":"u01","coefficient":1,"kind":"side","node":24788,"targets":[1312]},{"channel":"w02","coefficient":1,"kind":"side","node":24792,"targets":[1312]},{"channel":"partner","coefficient":1,"kind":"side","node":1315,"targets":[1312]},{"channel":"u01","coefficient":1,"kind":"side","node":24788,"targets":[1313]},{"channel":"w02","coefficient":1,"kind":"side","node":24793,"targets":[1313]},{"channel":"partner","coefficient":1,"kind":"side","node":1314,"targets":[1313]},{"channel":"u01","coefficient":1,"kind":"side","node":24789,"targets":[1314]},{"channel":"w02","coefficient":1,"kind":"side","node":24792,"targets":[1314]},{"channel":"partner","coefficient":1,"kind":"side","node":1313,"targets":[1314]},{"channel":"u01","coefficient":1,"kind":"side","node":24789,"targets":[1315]},{"channel":"w02","coefficient":1,"kind":"side","node":24793,"targets":[1315]},{"channel":"partner","coefficient":1,"kind":"side","node":1312,"targets":[1315]},{"channel":"u01","coefficient":1,"kind":"side","node":24790,"targets":[1316]},{"channel":"w02","coefficient":1,"kind":"side","node":24794,"targets":[1316]},{"channel":"partner","coefficient":1,"kind":"side","node":1319,"targets":[1316]},{"channel":"u01","coefficient":1,"kind":"side","node":24790,"targets":[1317]},{"channel":"w02","coefficient":1,"kind":"side","node":24795,"targets":[1317]},{"channel":"partner","coefficient":1,"kind":"side","node":1318,"targets":[1317]},{"channel":"u01","coefficient":1,"kind":"side","node":24791,"targets":[1318]},{"channel":"w02","coefficient":1,"kind":"side","node":24794,"targets":[1318]},{"channel":"partner","coefficient":1,"kind":"side","node":1317,"targets":[1318]},{"channel":"u01","coefficient":1,"kind":"side","node":24791,"targets":[1319]},{"channel":"w02","coefficient":1,"kind":"side","node":24795,"targets":[1319]},{"channel":"partner","coefficient":1,"kind":"side","node":1316,"targets":[1319]},{"channel":"face0","coefficient":1,"kind":"side","node":12306,"targets":[1320,1321,1322,1323]},{"channel":"face0","coefficient":1,"kind":"side","node":12769,"targets":[1324,1325,1326,1327]},{"channel":"edge12","coefficient":1,"kind":"side","node":22259,"targets":[1320,1323]},{"channel":"edge12","coefficient":1,"kind":"side","node":22227,"targets":[1321,1322]},{"channel":"edge12","coefficient":1,"kind":"side","node":22259,"targets":[1324,1327]},{"channel":"edge12","coefficient":1,"kind":"side","node":22227,"targets":[1325,1326]},{"channel":"u01","coefficient":1,"kind":"side","node":24796,"targets":[1320]},{"channel":"w02","coefficient":1,"kind":"side","node":24800,"targets":[1320]},{"channel":"partner","coefficient":1,"kind":"side","node":1323,"targets":[1320]},{"channel":"u01","coefficient":1,"kind":"side","node":24796,"targets":[1321]},{"channel":"w02","coefficient":1,"kind":"side","node":24801,"targets":[1321]},{"channel":"partner","coefficient":1,"kind":"side","node":1322,"targets":[1321]},{"channel":"u01","coefficient":1,"kind":"side","node":24797,"targets":[1322]},{"channel":"w02","coefficient":1,"kind":"side","node":24800,"targets":[1322]},{"channel":"partner","coefficient":1,"kind":"side","node":1321,"targets":[1322]},{"channel":"u01","coefficient":1,"kind":"side","node":24797,"targets":[1323]},{"channel":"w02","coefficient":1,"kind":"side","node":24801,"targets":[1323]},{"channel":"partner","coefficient":1,"kind":"side","node":1320,"targets":[1323]},{"channel":"u01","coefficient":1,"kind":"side","node":24798,"targets":[1324]},{"channel":"w02","coefficient":1,"kind":"side","node":24802,"targets":[1324]},{"channel":"partner","coefficient":1,"kind":"side","node":1327,"targets":[1324]},{"channel":"u01","coefficient":1,"kind":"side","node":24798,"targets":[1325]},{"channel":"w02","coefficient":1,"kind":"side","node":24803,"targets":[1325]},{"channel":"partner","coefficient":1,"kind":"side","node":1326,"targets":[1325]},{"channel":"u01","coefficient":1,"kind":"side","node":24799,"targets":[1326]},{"channel":"w02","coefficient":1,"kind":"side","node":24802,"targets":[1326]},{"channel":"partner","coefficient":1,"kind":"side","node":1325,"targets":[1326]},{"channel":"u01","coefficient":1,"kind":"side","node":24799,"targets":[1327]},{"channel":"w02","coefficient":1,"kind":"side","node":24803,"targets":[1327]},{"channel":"partner","coefficient":1,"kind":"side","node":1324,"targets":[1327]},{"channel":"face0","coefficient":1,"kind":"side","node":12217,"targets":[1328,1329,1330,1331]},{"channel":"face0","coefficient":1,"kind":"side","node":12680,"targets":[1332,1333,1334,1335]},{"channel":"edge12","coefficient":1,"kind":"side","node":22323,"targets":[1328,1331]},{"channel":"edge12","coefficient":1,"kind":"side","node":22291,"targets":[1329,1330]},{"channel":"edge12","coefficient":1,"kind":"side","node":22323,"targets":[1332,1335]},{"channel":"edge12","coefficient":1,"kind":"side","node":22291,"targets":[1333,1334]},{"channel":"u01","coefficient":1,"kind":"side","node":24804,"targets":[1328]},{"channel":"w02","coefficient":1,"kind":"side","node":24808,"targets":[1328]},{"channel":"partner","coefficient":1,"kind":"side","node":1331,"targets":[1328]},{"channel":"u01","coefficient":1,"kind":"side","node":24804,"targets":[1329]},{"channel":"w02","coefficient":1,"kind":"side","node":24809,"targets":[1329]},{"channel":"partner","coefficient":1,"kind":"side","node":1330,"targets":[1329]},{"channel":"u01","coefficient":1,"kind":"side","node":24805,"targets":[1330]},{"channel":"w02","coefficient":1,"kind":"side","node":24808,"targets":[1330]},{"channel":"partner","coefficient":1,"kind":"side","node":1329,"targets":[1330]},{"channel":"u01","coefficient":1,"kind":"side","node":24805,"targets":[1331]},{"channel":"w02","coefficient":1,"kind":"side","node":24809,"targets":[1331]},{"channel":"partner","coefficient":1,"kind":"side","node":1328,"targets":[1331]},{"channel":"u01","coefficient":1,"kind":"side","node":24806,"targets":[1332]},{"channel":"w02","coefficient":1,"kind":"side","node":24810,"targets":[1332]},{"channel":"partner","coefficient":1,"kind":"side","node":1335,"targets":[1332]},{"channel":"u01","coefficient":1,"kind":"side","node":24806,"targets":[1333]},{"channel":"w02","coefficient":1,"kind":"side","node":24811,"targets":[1333]},{"channel":"partner","coefficient":1,"kind":"side","node":1334,"targets":[1333]},{"channel":"u01","coefficient":1,"kind":"side","node":24807,"targets":[1334]},{"channel":"w02","coefficient":1,"kind":"side","node":24810,"targets":[1334]},{"channel":"partner","coefficient":1,"kind":"side","node":1333,"targets":[1334]},{"channel":"u01","coefficient":1,"kind":"side","node":24807,"targets":[1335]},{"channel":"w02","coefficient":1,"kind":"side","node":24811,"targets":[1335]},{"channel":"partner","coefficient":1,"kind":"side","node":1332,"targets":[1335]},{"channel":"face0","coefficient":1,"kind":"side","node":12300,"targets":[1336,1337,1338,1339]},{"channel":"face0","coefficient":1,"kind":"side","node":12763,"targets":[1340,1341,1342,1343]},{"channel":"edge12","coefficient":1,"kind":"side","node":22387,"targets":[1336,1339]},{"channel":"edge12","coefficient":1,"kind":"side","node":22355,"targets":[1337,1338]},{"channel":"edge12","coefficient":1,"kind":"side","node":22387,"targets":[1340,1343]},{"channel":"edge12","coefficient":1,"kind":"side","node":22355,"targets":[1341,1342]},{"channel":"u01","coefficient":1,"kind":"side","node":24812,"targets":[1336]},{"channel":"w02","coefficient":1,"kind":"side","node":24816,"targets":[1336]},{"channel":"partner","coefficient":1,"kind":"side","node":1339,"targets":[1336]},{"channel":"u01","coefficient":1,"kind":"side","node":24812,"targets":[1337]},{"channel":"w02","coefficient":1,"kind":"side","node":24817,"targets":[1337]},{"channel":"partner","coefficient":1,"kind":"side","node":1338,"targets":[1337]},{"channel":"u01","coefficient":1,"kind":"side","node":24813,"targets":[1338]},{"channel":"w02","coefficient":1,"kind":"side","node":24816,"targets":[1338]},{"channel":"partner","coefficient":1,"kind":"side","node":1337,"targets":[1338]},{"channel":"u01","coefficient":1,"kind":"side","node":24813,"targets":[1339]},{"channel":"w02","coefficient":1,"kind":"side","node":24817,"targets":[1339]},{"channel":"partner","coefficient":1,"kind":"side","node":1336,"targets":[1339]},{"channel":"u01","coefficient":1,"kind":"side","node":24814,"targets":[1340]},{"channel":"w02","coefficient":1,"kind":"side","node":24818,"targets":[1340]},{"channel":"partner","coefficient":1,"kind":"side","node":1343,"targets":[1340]},{"channel":"u01","coefficient":1,"kind":"side","node":24814,"targets":[1341]},{"channel":"w02","coefficient":1,"kind":"side","node":24819,"targets":[1341]},{"channel":"partner","coefficient":1,"kind":"side","node":1342,"targets":[1341]},{"channel":"u01","coefficient":1,"kind":"side","node":24815,"targets":[1342]},{"channel":"w02","coefficient":1,"kind":"side","node":24818,"targets":[1342]},{"channel":"partner","coefficient":1,"kind":"side","node":1341,"targets":[1342]},{"channel":"u01","coefficient":1,"kind":"side","node":24815,"targets":[1343]},{"channel":"w02","coefficient":1,"kind":"side","node":24819,"targets":[1343]},{"channel":"partner","coefficient":1,"kind":"side","node":1340,"targets":[1343]},{"channel":"face0","coefficient":1,"kind":"side","node":12225,"targets":[1344,1345,1346,1347]},{"channel":"face0","coefficient":1,"kind":"side","node":12688,"targets":[1348,1349,1350,1351]},{"channel":"edge12","coefficient":1,"kind":"side","node":22451,"targets":[1344,1347]},{"channel":"edge12","coefficient":1,"kind":"side","node":22419,"targets":[1345,1346]},{"channel":"edge12","coefficient":1,"kind":"side","node":22451,"targets":[1348,1351]},{"channel":"edge12","coefficient":1,"kind":"side","node":22419,"targets":[1349,1350]},{"channel":"u01","coefficient":1,"kind":"side","node":24820,"targets":[1344]},{"channel":"w02","coefficient":1,"kind":"side","node":24824,"targets":[1344]},{"channel":"partner","coefficient":1,"kind":"side","node":1347,"targets":[1344]},{"channel":"u01","coefficient":1,"kind":"side","node":24820,"targets":[1345]},{"channel":"w02","coefficient":1,"kind":"side","node":24825,"targets":[1345]},{"channel":"partner","coefficient":1,"kind":"side","node":1346,"targets":[1345]},{"channel":"u01","coefficient":1,"kind":"side","node":24821,"targets":[1346]},{"channel":"w02","coefficient":1,"kind":"side","node":24824,"targets":[1346]},{"channel":"partner","coefficient":1,"kind":"side","node":1345,"targets":[1346]},{"channel":"u01","coefficient":1,"kind":"side","node":24821,"targets":[1347]},{"channel":"w02","coefficient":1,"kind":"side","node":24825,"targets":[1347]},{"channel":"partner","coefficient":1,"kind":"side","node":1344,"targets":[1347]},{"channel":"u01","coefficient":1,"kind":"side","node":24822,"targets":[1348]},{"channel":"w02","coefficient":1,"kind":"side","node":24826,"targets":[1348]},{"channel":"partner","coefficient":1,"kind":"side","node":1351,"targets":[1348]},{"channel":"u01","coefficient":1,"kind":"side","node":24822,"targets":[1349]},{"channel":"w02","coefficient":1,"kind":"side","node":24827,"targets":[1349]},{"channel":"partner","coefficient":1,"kind":"side","node":1350,"targets":[1349]},{"channel":"u01","coefficient":1,"kind":"side","node":24823,"targets":[1350]},{"channel":"w02","coefficient":1,"kind":"side","node":24826,"targets":[1350]},{"channel":"partner","coefficient":1,"kind":"side","node":1349,"targets":[1350]},{"channel":"u01","coefficient":1,"kind":"side","node":24823,"targets":[1351]},{"channel":"w02","coefficient":1,"kind":"side","node":24827,"targets":[1351]},{"channel":"partner","coefficient":1,"kind":"side","node":1348,"targets":[1351]},{"channel":"face0","coefficient":1,"kind":"side","node":12181,"targets":[1352,1353,1354,1355]},{"channel":"face0","coefficient":1,"kind":"side","node":12644,"targets":[1356,1357,1358,1359]},{"channel":"edge12","coefficient":1,"kind":"side","node":22515,"targets":[1352,1355]},{"channel":"edge12","coefficient":1,"kind":"side","node":22483,"targets":[1353,1354]},{"channel":"edge12","coefficient":1,"kind":"side","node":22515,"targets":[1356,1359]},{"channel":"edge12","coefficient":1,"kind":"side","node":22483,"targets":[1357,1358]},{"channel":"u01","coefficient":1,"kind":"side","node":24828,"targets":[1352]},{"channel":"w02","coefficient":1,"kind":"side","node":24832,"targets":[1352]},{"channel":"partner","coefficient":1,"kind":"side","node":1355,"targets":[1352]},{"channel":"u01","coefficient":1,"kind":"side","node":24828,"targets":[1353]},{"channel":"w02","coefficient":1,"kind":"side","node":24833,"targets":[1353]},{"channel":"partner","coefficient":1,"kind":"side","node":1354,"targets":[1353]},{"channel":"u01","coefficient":1,"kind":"side","node":24829,"targets":[1354]},{"channel":"w02","coefficient":1,"kind":"side","node":24832,"targets":[1354]},{"channel":"partner","coefficient":1,"kind":"side","node":1353,"targets":[1354]},{"channel":"u01","coefficient":1,"kind":"side","node":24829,"targets":[1355]},{"channel":"w02","coefficient":1,"kind":"side","node":24833,"targets":[1355]},{"channel":"partner","coefficient":1,"kind":"side","node":1352,"targets":[1355]},{"channel":"u01","coefficient":1,"kind":"side","node":24830,"targets":[1356]},{"channel":"w02","coefficient":1,"kind":"side","node":24834,"targets":[1356]},{"channel":"partner","coefficient":1,"kind":"side","node":1359,"targets":[1356]},{"channel":"u01","coefficient":1,"kind":"side","node":24830,"targets":[1357]},{"channel":"w02","coefficient":1,"kind":"side","node":24835,"targets":[1357]},{"channel":"partner","coefficient":1,"kind":"side","node":1358,"targets":[1357]},{"channel":"u01","coefficient":1,"kind":"side","node":24831,"targets":[1358]},{"channel":"w02","coefficient":1,"kind":"side","node":24834,"targets":[1358]},{"channel":"partner","coefficient":1,"kind":"side","node":1357,"targets":[1358]},{"channel":"u01","coefficient":1,"kind":"side","node":24831,"targets":[1359]},{"channel":"w02","coefficient":1,"kind":"side","node":24835,"targets":[1359]},{"channel":"partner","coefficient":1,"kind":"side","node":1356,"targets":[1359]},{"channel":"face0","coefficient":1,"kind":"side","node":12175,"targets":[1360,1361,1362,1363]},{"channel":"face0","coefficient":1,"kind":"side","node":12638,"targets":[1364,1365,1366,1367]},{"channel":"edge12","coefficient":1,"kind":"side","node":22579,"targets":[1360,1363]},{"channel":"edge12","coefficient":1,"kind":"side","node":22547,"targets":[1361,1362]},{"channel":"edge12","coefficient":1,"kind":"side","node":22579,"targets":[1364,1367]},{"channel":"edge12","coefficient":1,"kind":"side","node":22547,"targets":[1365,1366]},{"channel":"u01","coefficient":1,"kind":"side","node":24836,"targets":[1360]},{"channel":"w02","coefficient":1,"kind":"side","node":24840,"targets":[1360]},{"channel":"partner","coefficient":1,"kind":"side","node":1363,"targets":[1360]},{"channel":"u01","coefficient":1,"kind":"side","node":24836,"targets":[1361]},{"channel":"w02","coefficient":1,"kind":"side","node":24841,"targets":[1361]},{"channel":"partner","coefficient":1,"kind":"side","node":1362,"targets":[1361]},{"channel":"u01","coefficient":1,"kind":"side","node":24837,"targets":[1362]},{"channel":"w02","coefficient":1,"kind":"side","node":24840,"targets":[1362]},{"channel":"partner","coefficient":1,"kind":"side","node":1361,"targets":[1362]},{"channel":"u01","coefficient":1,"kind":"side","node":24837,"targets":[1363]},{"channel":"w02","coefficient":1,"kind":"side","node":24841,"targets":[1363]},{"channel":"partner","coefficient":1,"kind":"side","node":1360,"targets":[1363]},{"channel":"u01","coefficient":1,"kind":"side","node":24838,"targets":[1364]},{"channel":"w02","coefficient":1,"kind":"side","node":24842,"targets":[1364]},{"channel":"partner","coefficient":1,"kind":"side","node":1367,"targets":[1364]},{"channel":"u01","coefficient":1,"kind":"side","node":24838,"targets":[1365]},{"channel":"w02","coefficient":1,"kind":"side","node":24843,"targets":[1365]},{"channel":"partner","coefficient":1,"kind":"side","node":1366,"targets":[1365]},{"channel":"u01","coefficient":1,"kind":"side","node":24839,"targets":[1366]},{"channel":"w02","coefficient":1,"kind":"side","node":24842,"targets":[1366]},{"channel":"partner","coefficient":1,"kind":"side","node":1365,"targets":[1366]},{"channel":"u01","coefficient":1,"kind":"side","node":24839,"targets":[1367]},{"channel":"w02","coefficient":1,"kind":"side","node":24843,"targets":[1367]},{"channel":"partner","coefficient":1,"kind":"side","node":1364,"targets":[1367]},{"channel":"face0","coefficient":1,"kind":"side","node":12231,"targets":[1368,1369,1370,1371]},{"channel":"face0","coefficient":1,"kind":"side","node":12694,"targets":[1372,1373,1374,1375]},{"channel":"edge12","coefficient":1,"kind":"side","node":22643,"targets":[1368,1371]},{"channel":"edge12","coefficient":1,"kind":"side","node":22611,"targets":[1369,1370]},{"channel":"edge12","coefficient":1,"kind":"side","node":22643,"targets":[1372,1375]},{"channel":"edge12","coefficient":1,"kind":"side","node":22611,"targets":[1373,1374]},{"channel":"u01","coefficient":1,"kind":"side","node":24844,"targets":[1368]},{"channel":"w02","coefficient":1,"kind":"side","node":24848,"targets":[1368]},{"channel":"partner","coefficient":1,"kind":"side","node":1371,"targets":[1368]},{"channel":"u01","coefficient":1,"kind":"side","node":24844,"targets":[1369]},{"channel":"w02","coefficient":1,"kind":"side","node":24849,"targets":[1369]},{"channel":"partner","coefficient":1,"kind":"side","node":1370,"targets":[1369]},{"channel":"u01","coefficient":1,"kind":"side","node":24845,"targets":[1370]},{"channel":"w02","coefficient":1,"kind":"side","node":24848,"targets":[1370]},{"channel":"partner","coefficient":1,"kind":"side","node":1369,"targets":[1370]},{"channel":"u01","coefficient":1,"kind":"side","node":24845,"targets":[1371]},{"channel":"w02","coefficient":1,"kind":"side","node":24849,"targets":[1371]},{"channel":"partner","coefficient":1,"kind":"side","node":1368,"targets":[1371]},{"channel":"u01","coefficient":1,"kind":"side","node":24846,"targets":[1372]},{"channel":"w02","coefficient":1,"kind":"side","node":24850,"targets":[1372]},{"channel":"partner","coefficient":1,"kind":"side","node":1375,"targets":[1372]},{"channel":"u01","coefficient":1,"kind":"side","node":24846,"targets":[1373]},{"channel":"w02","coefficient":1,"kind":"side","node":24851,"targets":[1373]},{"channel":"partner","coefficient":1,"kind":"side","node":1374,"targets":[1373]},{"channel":"u01","coefficient":1,"kind":"side","node":24847,"targets":[1374]},{"channel":"w02","coefficient":1,"kind":"side","node":24850,"targets":[1374]},{"channel":"partner","coefficient":1,"kind":"side","node":1373,"targets":[1374]},{"channel":"u01","coefficient":1,"kind":"side","node":24847,"targets":[1375]},{"channel":"w02","coefficient":1,"kind":"side","node":24851,"targets":[1375]},{"channel":"partner","coefficient":1,"kind":"side","node":1372,"targets":[1375]},{"channel":"face0","coefficient":1,"kind":"side","node":12192,"targets":[1376,1377,1378,1379]},{"channel":"face0","coefficient":1,"kind":"side","node":12655,"targets":[1380,1381,1382,1383]},{"channel":"edge12","coefficient":1,"kind":"side","node":22707,"targets":[1376,1379]},{"channel":"edge12","coefficient":1,"kind":"side","node":22675,"targets":[1377,1378]},{"channel":"edge12","coefficient":1,"kind":"side","node":22707,"targets":[1380,1383]},{"channel":"edge12","coefficient":1,"kind":"side","node":22675,"targets":[1381,1382]},{"channel":"u01","coefficient":1,"kind":"side","node":24852,"targets":[1376]},{"channel":"w02","coefficient":1,"kind":"side","node":24856,"targets":[1376]},{"channel":"partner","coefficient":1,"kind":"side","node":1379,"targets":[1376]},{"channel":"u01","coefficient":1,"kind":"side","node":24852,"targets":[1377]},{"channel":"w02","coefficient":1,"kind":"side","node":24857,"targets":[1377]},{"channel":"partner","coefficient":1,"kind":"side","node":1378,"targets":[1377]},{"channel":"u01","coefficient":1,"kind":"side","node":24853,"targets":[1378]},{"channel":"w02","coefficient":1,"kind":"side","node":24856,"targets":[1378]},{"channel":"partner","coefficient":1,"kind":"side","node":1377,"targets":[1378]},{"channel":"u01","coefficient":1,"kind":"side","node":24853,"targets":[1379]},{"channel":"w02","coefficient":1,"kind":"side","node":24857,"targets":[1379]},{"channel":"partner","coefficient":1,"kind":"side","node":1376,"targets":[1379]},{"channel":"u01","coefficient":1,"kind":"side","node":24854,"targets":[1380]},{"channel":"w02","coefficient":1,"kind":"side","node":24858,"targets":[1380]},{"channel":"partner","coefficient":1,"kind":"side","node":1383,"targets":[1380]},{"channel":"u01","coefficient":1,"kind":"side","node":24854,"targets":[1381]},{"channel":"w02","coefficient":1,"kind":"side","node":24859,"targets":[1381]},{"channel":"partner","coefficient":1,"kind":"side","node":1382,"targets":[1381]},{"channel":"u01","coefficient":1,"kind":"side","node":24855,"targets":[1382]},{"channel":"w02","coefficient":1,"kind":"side","node":24858,"targets":[1382]},{"channel":"partner","coefficient":1,"kind":"side","node":1381,"targets":[1382]},{"channel":"u01","coefficient":1,"kind":"side","node":24855,"targets":[1383]},{"channel":"w02","coefficient":1,"kind":"side","node":24859,"targets":[1383]},{"channel":"partner","coefficient":1,"kind":"side","node":1380,"targets":[1383]},{"channel":"face0","coefficient":1,"kind":"side","node":12038,"targets":[1384,1385,1386,1387]},{"channel":"face0","coefficient":1,"kind":"side","node":12501,"targets":[1388,1389,1390,1391]},{"channel":"edge12","coefficient":1,"kind":"side","node":22771,"targets":[1384,1387]},{"channel":"edge12","coefficient":1,"kind":"side","node":22739,"targets":[1385,1386]},{"channel":"edge12","coefficient":1,"kind":"side","node":22771,"targets":[1388,1391]},{"channel":"edge12","coefficient":1,"kind":"side","node":22739,"targets":[1389,1390]},{"channel":"u01","coefficient":1,"kind":"side","node":24860,"targets":[1384]},{"channel":"w02","coefficient":1,"kind":"side","node":24864,"targets":[1384]},{"channel":"partner","coefficient":1,"kind":"side","node":1387,"targets":[1384]},{"channel":"u01","coefficient":1,"kind":"side","node":24860,"targets":[1385]},{"channel":"w02","coefficient":1,"kind":"side","node":24865,"targets":[1385]},{"channel":"partner","coefficient":1,"kind":"side","node":1386,"targets":[1385]},{"channel":"u01","coefficient":1,"kind":"side","node":24861,"targets":[1386]},{"channel":"w02","coefficient":1,"kind":"side","node":24864,"targets":[1386]},{"channel":"partner","coefficient":1,"kind":"side","node":1385,"targets":[1386]},{"channel":"u01","coefficient":1,"kind":"side","node":24861,"targets":[1387]},{"channel":"w02","coefficient":1,"kind":"side","node":24865,"targets":[1387]},{"channel":"partner","coefficient":1,"kind":"side","node":1384,"targets":[1387]},{"channel":"u01","coefficient":1,"kind":"side","node":24862,"targets":[1388]},{"channel":"w02","coefficient":1,"kind":"side","node":24866,"targets":[1388]},{"channel":"partner","coefficient":1,"kind":"side","node":1391,"targets":[1388]},{"channel":"u01","coefficient":1,"kind":"side","node":24862,"targets":[1389]},{"channel":"w02","coefficient":1,"kind":"side","node":24867,"targets":[1389]},{"channel":"partner","coefficient":1,"kind":"side","node":1390,"targets":[1389]},{"channel":"u01","coefficient":1,"kind":"side","node":24863,"targets":[1390]},{"channel":"w02","coefficient":1,"kind":"side","node":24866,"targets":[1390]},{"channel":"partner","coefficient":1,"kind":"side","node":1389,"targets":[1390]},{"channel":"u01","coefficient":1,"kind":"side","node":24863,"targets":[1391]},{"channel":"w02","coefficient":1,"kind":"side","node":24867,"targets":[1391]},{"channel":"partner","coefficient":1,"kind":"side","node":1388,"targets":[1391]},{"channel":"face0","coefficient":1,"kind":"side","node":12202,"targets":[1392,1393,1394,1395]},{"channel":"face0","coefficient":1,"kind":"side","node":12665,"targets":[1396,1397,1398,1399]},{"channel":"edge12","coefficient":1,"kind":"side","node":22835,"targets":[1392,1395]},{"channel":"edge12","coefficient":1,"kind":"side","node":22803,"targets":[1393,1394]},{"channel":"edge12","coefficient":1,"kind":"side","node":22835,"targets":[1396,1399]},{"channel":"edge12","coefficient":1,"kind":"side","node":22803,"targets":[1397,1398]},{"channel":"u01","coefficient":1,"kind":"side","node":24868,"targets":[1392]},{"channel":"w02","coefficient":1,"kind":"side","node":24872,"targets":[1392]},{"channel":"partner","coefficient":1,"kind":"side","node":1395,"targets":[1392]},{"channel":"u01","coefficient":1,"kind":"side","node":24868,"targets":[1393]},{"channel":"w02","coefficient":1,"kind":"side","node":24873,"targets":[1393]},{"channel":"partner","coefficient":1,"kind":"side","node":1394,"targets":[1393]},{"channel":"u01","coefficient":1,"kind":"side","node":24869,"targets":[1394]},{"channel":"w02","coefficient":1,"kind":"side","node":24872,"targets":[1394]},{"channel":"partner","coefficient":1,"kind":"side","node":1393,"targets":[1394]},{"channel":"u01","coefficient":1,"kind":"side","node":24869,"targets":[1395]},{"channel":"w02","coefficient":1,"kind":"side","node":24873,"targets":[1395]},{"channel":"partner","coefficient":1,"kind":"side","node":1392,"targets":[1395]},{"channel":"u01","coefficient":1,"kind":"side","node":24870,"targets":[1396]},{"channel":"w02","coefficient":1,"kind":"side","node":24874,"targets":[1396]},{"channel":"partner","coefficient":1,"kind":"side","node":1399,"targets":[1396]},{"channel":"u01","coefficient":1,"kind":"side","node":24870,"targets":[1397]},{"channel":"w02","coefficient":1,"kind":"side","node":24875,"targets":[1397]},{"channel":"partner","coefficient":1,"kind":"side","node":1398,"targets":[1397]},{"channel":"u01","coefficient":1,"kind":"side","node":24871,"targets":[1398]},{"channel":"w02","coefficient":1,"kind":"side","node":24874,"targets":[1398]},{"channel":"partner","coefficient":1,"kind":"side","node":1397,"targets":[1398]},{"channel":"u01","coefficient":1,"kind":"side","node":24871,"targets":[1399]},{"channel":"w02","coefficient":1,"kind":"side","node":24875,"targets":[1399]},{"channel":"partner","coefficient":1,"kind":"side","node":1396,"targets":[1399]},{"channel":"face0","coefficient":1,"kind":"side","node":12244,"targets":[1400,1401,1402,1403]},{"channel":"face0","coefficient":1,"kind":"side","node":12707,"targets":[1404,1405,1406,1407]},{"channel":"edge12","coefficient":1,"kind":"side","node":22899,"targets":[1400,1403]},{"channel":"edge12","coefficient":1,"kind":"side","node":22867,"targets":[1401,1402]},{"channel":"edge12","coefficient":1,"kind":"side","node":22899,"targets":[1404,1407]},{"channel":"edge12","coefficient":1,"kind":"side","node":22867,"targets":[1405,1406]},{"channel":"u01","coefficient":1,"kind":"side","node":24876,"targets":[1400]},{"channel":"w02","coefficient":1,"kind":"side","node":24880,"targets":[1400]},{"channel":"partner","coefficient":1,"kind":"side","node":1403,"targets":[1400]},{"channel":"u01","coefficient":1,"kind":"side","node":24876,"targets":[1401]},{"channel":"w02","coefficient":1,"kind":"side","node":24881,"targets":[1401]},{"channel":"partner","coefficient":1,"kind":"side","node":1402,"targets":[1401]},{"channel":"u01","coefficient":1,"kind":"side","node":24877,"targets":[1402]},{"channel":"w02","coefficient":1,"kind":"side","node":24880,"targets":[1402]},{"channel":"partner","coefficient":1,"kind":"side","node":1401,"targets":[1402]},{"channel":"u01","coefficient":1,"kind":"side","node":24877,"targets":[1403]},{"channel":"w02","coefficient":1,"kind":"side","node":24881,"targets":[1403]},{"channel":"partner","coefficient":1,"kind":"side","node":1400,"targets":[1403]},{"channel":"u01","coefficient":1,"kind":"side","node":24878,"targets":[1404]},{"channel":"w02","coefficient":1,"kind":"side","node":24882,"targets":[1404]},{"channel":"partner","coefficient":1,"kind":"side","node":1407,"targets":[1404]},{"channel":"u01","coefficient":1,"kind":"side","node":24878,"targets":[1405]},{"channel":"w02","coefficient":1,"kind":"side","node":24883,"targets":[1405]},{"channel":"partner","coefficient":1,"kind":"side","node":1406,"targets":[1405]},{"channel":"u01","coefficient":1,"kind":"side","node":24879,"targets":[1406]},{"channel":"w02","coefficient":1,"kind":"side","node":24882,"targets":[1406]},{"channel":"partner","coefficient":1,"kind":"side","node":1405,"targets":[1406]},{"channel":"u01","coefficient":1,"kind":"side","node":24879,"targets":[1407]},{"channel":"w02","coefficient":1,"kind":"side","node":24883,"targets":[1407]},{"channel":"partner","coefficient":1,"kind":"side","node":1404,"targets":[1407]},{"channel":"face0","coefficient":1,"kind":"side","node":12265,"targets":[1408,1409,1410,1411]},{"channel":"face0","coefficient":1,"kind":"side","node":12728,"targets":[1412,1413,1414,1415]},{"channel":"edge12","coefficient":1,"kind":"side","node":22963,"targets":[1408,1411]},{"channel":"edge12","coefficient":1,"kind":"side","node":22931,"targets":[1409,1410]},{"channel":"edge12","coefficient":1,"kind":"side","node":22963,"targets":[1412,1415]},{"channel":"edge12","coefficient":1,"kind":"side","node":22931,"targets":[1413,1414]},{"channel":"u01","coefficient":1,"kind":"side","node":24884,"targets":[1408]},{"channel":"w02","coefficient":1,"kind":"side","node":24888,"targets":[1408]},{"channel":"partner","coefficient":1,"kind":"side","node":1411,"targets":[1408]},{"channel":"u01","coefficient":1,"kind":"side","node":24884,"targets":[1409]},{"channel":"w02","coefficient":1,"kind":"side","node":24889,"targets":[1409]},{"channel":"partner","coefficient":1,"kind":"side","node":1410,"targets":[1409]},{"channel":"u01","coefficient":1,"kind":"side","node":24885,"targets":[1410]},{"channel":"w02","coefficient":1,"kind":"side","node":24888,"targets":[1410]},{"channel":"partner","coefficient":1,"kind":"side","node":1409,"targets":[1410]},{"channel":"u01","coefficient":1,"kind":"side","node":24885,"targets":[1411]},{"channel":"w02","coefficient":1,"kind":"side","node":24889,"targets":[1411]},{"channel":"partner","coefficient":1,"kind":"side","node":1408,"targets":[1411]},{"channel":"u01","coefficient":1,"kind":"side","node":24886,"targets":[1412]},{"channel":"w02","coefficient":1,"kind":"side","node":24890,"targets":[1412]},{"channel":"partner","coefficient":1,"kind":"side","node":1415,"targets":[1412]},{"channel":"u01","coefficient":1,"kind":"side","node":24886,"targets":[1413]},{"channel":"w02","coefficient":1,"kind":"side","node":24891,"targets":[1413]},{"channel":"partner","coefficient":1,"kind":"side","node":1414,"targets":[1413]},{"channel":"u01","coefficient":1,"kind":"side","node":24887,"targets":[1414]},{"channel":"w02","coefficient":1,"kind":"side","node":24890,"targets":[1414]},{"channel":"partner","coefficient":1,"kind":"side","node":1413,"targets":[1414]},{"channel":"u01","coefficient":1,"kind":"side","node":24887,"targets":[1415]},{"channel":"w02","coefficient":1,"kind":"side","node":24891,"targets":[1415]},{"channel":"partner","coefficient":1,"kind":"side","node":1412,"targets":[1415]},{"channel":"face0","coefficient":1,"kind":"side","node":12011,"targets":[1416,1417,1418,1419]},{"channel":"face0","coefficient":1,"kind":"side","node":12474,"targets":[1420,1421,1422,1423]},{"channel":"edge12","coefficient":1,"kind":"side","node":23027,"targets":[1416,1419]},{"channel":"edge12","coefficient":1,"kind":"side","node":22995,"targets":[1417,1418]},{"channel":"edge12","coefficient":1,"kind":"side","node":23027,"targets":[1420,1423]},{"channel":"edge12","coefficient":1,"kind":"side","node":22995,"targets":[1421,1422]},{"channel":"u01","coefficient":1,"kind":"side","node":24892,"targets":[1416]},{"channel":"w02","coefficient":1,"kind":"side","node":24896,"targets":[1416]},{"channel":"partner","coefficient":1,"kind":"side","node":1419,"targets":[1416]},{"channel":"u01","coefficient":1,"kind":"side","node":24892,"targets":[1417]},{"channel":"w02","coefficient":1,"kind":"side","node":24897,"targets":[1417]},{"channel":"partner","coefficient":1,"kind":"side","node":1418,"targets":[1417]},{"channel":"u01","coefficient":1,"kind":"side","node":24893,"targets":[1418]},{"channel":"w02","coefficient":1,"kind":"side","node":24896,"targets":[1418]},{"channel":"partner","coefficient":1,"kind":"side","node":1417,"targets":[1418]},{"channel":"u01","coefficient":1,"kind":"side","node":24893,"targets":[1419]},{"channel":"w02","coefficient":1,"kind":"side","node":24897,"targets":[1419]},{"channel":"partner","coefficient":1,"kind":"side","node":1416,"targets":[1419]},{"channel":"u01","coefficient":1,"kind":"side","node":24894,"targets":[1420]},{"channel":"w02","coefficient":1,"kind":"side","node":24898,"targets":[1420]},{"channel":"partner","coefficient":1,"kind":"side","node":1423,"targets":[1420]},{"channel":"u01","coefficient":1,"kind":"side","node":24894,"targets":[1421]},{"channel":"w02","coefficient":1,"kind":"side","node":24899,"targets":[1421]},{"channel":"partner","coefficient":1,"kind":"side","node":1422,"targets":[1421]},{"channel":"u01","coefficient":1,"kind":"side","node":24895,"targets":[1422]},{"channel":"w02","coefficient":1,"kind":"side","node":24898,"targets":[1422]},{"channel":"partner","coefficient":1,"kind":"side","node":1421,"targets":[1422]},{"channel":"u01","coefficient":1,"kind":"side","node":24895,"targets":[1423]},{"channel":"w02","coefficient":1,"kind":"side","node":24899,"targets":[1423]},{"channel":"partner","coefficient":1,"kind":"side","node":1420,"targets":[1423]},{"channel":"face0","coefficient":1,"kind":"side","node":12113,"targets":[1424,1425,1426,1427]},{"channel":"face0","coefficient":1,"kind":"side","node":12576,"targets":[1428,1429,1430,1431]},{"channel":"edge12","coefficient":1,"kind":"side","node":23091,"targets":[1424,1427]},{"channel":"edge12","coefficient":1,"kind":"side","node":23059,"targets":[1425,1426]},{"channel":"edge12","coefficient":1,"kind":"side","node":23091,"targets":[1428,1431]},{"channel":"edge12","coefficient":1,"kind":"side","node":23059,"targets":[1429,1430]},{"channel":"u01","coefficient":1,"kind":"side","node":24900,"targets":[1424]},{"channel":"w02","coefficient":1,"kind":"side","node":24904,"targets":[1424]},{"channel":"partner","coefficient":1,"kind":"side","node":1427,"targets":[1424]},{"channel":"u01","coefficient":1,"kind":"side","node":24900,"targets":[1425]},{"channel":"w02","coefficient":1,"kind":"side","node":24905,"targets":[1425]},{"channel":"partner","coefficient":1,"kind":"side","node":1426,"targets":[1425]},{"channel":"u01","coefficient":1,"kind":"side","node":24901,"targets":[1426]},{"channel":"w02","coefficient":1,"kind":"side","node":24904,"targets":[1426]},{"channel":"partner","coefficient":1,"kind":"side","node":1425,"targets":[1426]},{"channel":"u01","coefficient":1,"kind":"side","node":24901,"targets":[1427]},{"channel":"w02","coefficient":1,"kind":"side","node":24905,"targets":[1427]},{"channel":"partner","coefficient":1,"kind":"side","node":1424,"targets":[1427]},{"channel":"u01","coefficient":1,"kind":"side","node":24902,"targets":[1428]},{"channel":"w02","coefficient":1,"kind":"side","node":24906,"targets":[1428]},{"channel":"partner","coefficient":1,"kind":"side","node":1431,"targets":[1428]},{"channel":"u01","coefficient":1,"kind":"side","node":24902,"targets":[1429]},{"channel":"w02","coefficient":1,"kind":"side","node":24907,"targets":[1429]},{"channel":"partner","coefficient":1,"kind":"side","node":1430,"targets":[1429]},{"channel":"u01","coefficient":1,"kind":"side","node":24903,"targets":[1430]},{"channel":"w02","coefficient":1,"kind":"side","node":24906,"targets":[1430]},{"channel":"partner","coefficient":1,"kind":"side","node":1429,"targets":[1430]},{"channel":"u01","coefficient":1,"kind":"side","node":24903,"targets":[1431]},{"channel":"w02","coefficient":1,"kind":"side","node":24907,"targets":[1431]},{"channel":"partner","coefficient":1,"kind":"side","node":1428,"targets":[1431]},{"channel":"face0","coefficient":1,"kind":"side","node":12259,"targets":[1432,1433,1434,1435]},{"channel":"face0","coefficient":1,"kind":"side","node":12722,"targets":[1436,1437,1438,1439]},{"channel":"edge12","coefficient":1,"kind":"side","node":23155,"targets":[1432,1435]},{"channel":"edge12","coefficient":1,"kind":"side","node":23123,"targets":[1433,1434]},{"channel":"edge12","coefficient":1,"kind":"side","node":23155,"targets":[1436,1439]},{"channel":"edge12","coefficient":1,"kind":"side","node":23123,"targets":[1437,1438]},{"channel":"u01","coefficient":1,"kind":"side","node":24908,"targets":[1432]},{"channel":"w02","coefficient":1,"kind":"side","node":24912,"targets":[1432]},{"channel":"partner","coefficient":1,"kind":"side","node":1435,"targets":[1432]},{"channel":"u01","coefficient":1,"kind":"side","node":24908,"targets":[1433]},{"channel":"w02","coefficient":1,"kind":"side","node":24913,"targets":[1433]},{"channel":"partner","coefficient":1,"kind":"side","node":1434,"targets":[1433]},{"channel":"u01","coefficient":1,"kind":"side","node":24909,"targets":[1434]},{"channel":"w02","coefficient":1,"kind":"side","node":24912,"targets":[1434]},{"channel":"partner","coefficient":1,"kind":"side","node":1433,"targets":[1434]},{"channel":"u01","coefficient":1,"kind":"side","node":24909,"targets":[1435]},{"channel":"w02","coefficient":1,"kind":"side","node":24913,"targets":[1435]},{"channel":"partner","coefficient":1,"kind":"side","node":1432,"targets":[1435]},{"channel":"u01","coefficient":1,"kind":"side","node":24910,"targets":[1436]},{"channel":"w02","coefficient":1,"kind":"side","node":24914,"targets":[1436]},{"channel":"partner","coefficient":1,"kind":"side","node":1439,"targets":[1436]},{"channel":"u01","coefficient":1,"kind":"side","node":24910,"targets":[1437]},{"channel":"w02","coefficient":1,"kind":"side","node":24915,"targets":[1437]},{"channel":"partner","coefficient":1,"kind":"side","node":1438,"targets":[1437]},{"channel":"u01","coefficient":1,"kind":"side","node":24911,"targets":[1438]},{"channel":"w02","coefficient":1,"kind":"side","node":24914,"targets":[1438]},{"channel":"partner","coefficient":1,"kind":"side","node":1437,"targets":[1438]},{"channel":"u01","coefficient":1,"kind":"side","node":24911,"targets":[1439]},{"channel":"w02","coefficient":1,"kind":"side","node":24915,"targets":[1439]},{"channel":"partner","coefficient":1,"kind":"side","node":1436,"targets":[1439]},{"channel":"face0","coefficient":1,"kind":"side","node":12215,"targets":[1440,1441,1442,1443]},{"channel":"face0","coefficient":1,"kind":"side","node":12678,"targets":[1444,1445,1446,1447]},{"channel":"edge12","coefficient":1,"kind":"side","node":23219,"targets":[1440,1443]},{"channel":"edge12","coefficient":1,"kind":"side","node":23187,"targets":[1441,1442]},{"channel":"edge12","coefficient":1,"kind":"side","node":23219,"targets":[1444,1447]},{"channel":"edge12","coefficient":1,"kind":"side","node":23187,"targets":[1445,1446]},{"channel":"u01","coefficient":1,"kind":"side","node":24916,"targets":[1440]},{"channel":"w02","coefficient":1,"kind":"side","node":24920,"targets":[1440]},{"channel":"partner","coefficient":1,"kind":"side","node":1443,"targets":[1440]},{"channel":"u01","coefficient":1,"kind":"side","node":24916,"targets":[1441]},{"channel":"w02","coefficient":1,"kind":"side","node":24921,"targets":[1441]},{"channel":"partner","coefficient":1,"kind":"side","node":1442,"targets":[1441]},{"channel":"u01","coefficient":1,"kind":"side","node":24917,"targets":[1442]},{"channel":"w02","coefficient":1,"kind":"side","node":24920,"targets":[1442]},{"channel":"partner","coefficient":1,"kind":"side","node":1441,"targets":[1442]},{"channel":"u01","coefficient":1,"kind":"side","node":24917,"targets":[1443]},{"channel":"w02","coefficient":1,"kind":"side","node":24921,"targets":[1443]},{"channel":"partner","coefficient":1,"kind":"side","node":1440,"targets":[1443]},{"channel":"u01","coefficient":1,"kind":"side","node":24918,"targets":[1444]},{"channel":"w02","coefficient":1,"kind":"side","node":24922,"targets":[1444]},{"channel":"partner","coefficient":1,"kind":"side","node":1447,"targets":[1444]},{"channel":"u01","coefficient":1,"kind":"side","node":24918,"targets":[1445]},{"channel":"w02","coefficient":1,"kind":"side","node":24923,"targets":[1445]},{"channel":"partner","coefficient":1,"kind":"side","node":1446,"targets":[1445]},{"channel":"u01","coefficient":1,"kind":"side","node":24919,"targets":[1446]},{"channel":"w02","coefficient":1,"kind":"side","node":24922,"targets":[1446]},{"channel":"partner","coefficient":1,"kind":"side","node":1445,"targets":[1446]},{"channel":"u01","coefficient":1,"kind":"side","node":24919,"targets":[1447]},{"channel":"w02","coefficient":1,"kind":"side","node":24923,"targets":[1447]},{"channel":"partner","coefficient":1,"kind":"side","node":1444,"targets":[1447]},{"channel":"face0","coefficient":1,"kind":"side","node":12262,"targets":[1448,1449,1450,1451]},{"channel":"face0","coefficient":1,"kind":"side","node":12725,"targets":[1452,1453,1454,1455]},{"channel":"edge12","coefficient":1,"kind":"side","node":23283,"targets":[1448,1451]},{"channel":"edge12","coefficient":1,"kind":"side","node":23251,"targets":[1449,1450]},{"channel":"edge12","coefficient":1,"kind":"side","node":23283,"targets":[1452,1455]},{"channel":"edge12","coefficient":1,"kind":"side","node":23251,"targets":[1453,1454]},{"channel":"u01","coefficient":1,"kind":"side","node":24924,"targets":[1448]},{"channel":"w02","coefficient":1,"kind":"side","node":24928,"targets":[1448]},{"channel":"partner","coefficient":1,"kind":"side","node":1451,"targets":[1448]},{"channel":"u01","coefficient":1,"kind":"side","node":24924,"targets":[1449]},{"channel":"w02","coefficient":1,"kind":"side","node":24929,"targets":[1449]},{"channel":"partner","coefficient":1,"kind":"side","node":1450,"targets":[1449]},{"channel":"u01","coefficient":1,"kind":"side","node":24925,"targets":[1450]},{"channel":"w02","coefficient":1,"kind":"side","node":24928,"targets":[1450]},{"channel":"partner","coefficient":1,"kind":"side","node":1449,"targets":[1450]},{"channel":"u01","coefficient":1,"kind":"side","node":24925,"targets":[1451]},{"channel":"w02","coefficient":1,"kind":"side","node":24929,"targets":[1451]},{"channel":"partner","coefficient":1,"kind":"side","node":1448,"targets":[1451]},{"channel":"u01","coefficient":1,"kind":"side","node":24926,"targets":[1452]},{"channel":"w02","coefficient":1,"kind":"side","node":24930,"targets":[1452]},{"channel":"partner","coefficient":1,"kind":"side","node":1455,"targets":[1452]},{"channel":"u01","coefficient":1,"kind":"side","node":24926,"targets":[1453]},{"channel":"w02","coefficient":1,"kind":"side","node":24931,"targets":[1453]},{"channel":"partner","coefficient":1,"kind":"side","node":1454,"targets":[1453]},{"channel":"u01","coefficient":1,"kind":"side","node":24927,"targets":[1454]},{"channel":"w02","coefficient":1,"kind":"side","node":24930,"targets":[1454]},{"channel":"partner","coefficient":1,"kind":"side","node":1453,"targets":[1454]},{"channel":"u01","coefficient":1,"kind":"side","node":24927,"targets":[1455]},{"channel":"w02","coefficient":1,"kind":"side","node":24931,"targets":[1455]},{"channel":"partner","coefficient":1,"kind":"side","node":1452,"targets":[1455]},{"channel":"face0","coefficient":1,"kind":"side","node":12298,"targets":[1456,1457,1458,1459]},{"channel":"face0","coefficient":1,"kind":"side","node":12761,"targets":[1460,1461,1462,1463]},{"channel":"edge12","coefficient":1,"kind":"side","node":23347,"targets":[1456,1459]},{"channel":"edge12","coefficient":1,"kind":"side","node":23315,"targets":[1457,1458]},{"channel":"edge12","coefficient":1,"kind":"side","node":23347,"targets":[1460,1463]},{"channel":"edge12","coefficient":1,"kind":"side","node":23315,"targets":[1461,1462]},{"channel":"u01","coefficient":1,"kind":"side","node":24932,"targets":[1456]},{"channel":"w02","coefficient":1,"kind":"side","node":24936,"targets":[1456]},{"channel":"partner","coefficient":1,"kind":"side","node":1459,"targets":[1456]},{"channel":"u01","coefficient":1,"kind":"side","node":24932,"targets":[1457]},{"channel":"w02","coefficient":1,"kind":"side","node":24937,"targets":[1457]},{"channel":"partner","coefficient":1,"kind":"side","node":1458,"targets":[1457]},{"channel":"u01","coefficient":1,"kind":"side","node":24933,"targets":[1458]},{"channel":"w02","coefficient":1,"kind":"side","node":24936,"targets":[1458]},{"channel":"partner","coefficient":1,"kind":"side","node":1457,"targets":[1458]},{"channel":"u01","coefficient":1,"kind":"side","node":24933,"targets":[1459]},{"channel":"w02","coefficient":1,"kind":"side","node":24937,"targets":[1459]},{"channel":"partner","coefficient":1,"kind":"side","node":1456,"targets":[1459]},{"channel":"u01","coefficient":1,"kind":"side","node":24934,"targets":[1460]},{"channel":"w02","coefficient":1,"kind":"side","node":24938,"targets":[1460]},{"channel":"partner","coefficient":1,"kind":"side","node":1463,"targets":[1460]},{"channel":"u01","coefficient":1,"kind":"side","node":24934,"targets":[1461]},{"channel":"w02","coefficient":1,"kind":"side","node":24939,"targets":[1461]},{"channel":"partner","coefficient":1,"kind":"side","node":1462,"targets":[1461]},{"channel":"u01","coefficient":1,"kind":"side","node":24935,"targets":[1462]},{"channel":"w02","coefficient":1,"kind":"side","node":24938,"targets":[1462]},{"channel":"partner","coefficient":1,"kind":"side","node":1461,"targets":[1462]},{"channel":"u01","coefficient":1,"kind":"side","node":24935,"targets":[1463]},{"channel":"w02","coefficient":1,"kind":"side","node":24939,"targets":[1463]},{"channel":"partner","coefficient":1,"kind":"side","node":1460,"targets":[1463]},{"channel":"face0","coefficient":1,"kind":"side","node":12212,"targets":[1464,1465,1466,1467]},{"channel":"face0","coefficient":1,"kind":"side","node":12675,"targets":[1468,1469,1470,1471]},{"channel":"edge12","coefficient":1,"kind":"side","node":23411,"targets":[1464,1467]},{"channel":"edge12","coefficient":1,"kind":"side","node":23379,"targets":[1465,1466]},{"channel":"edge12","coefficient":1,"kind":"side","node":23411,"targets":[1468,1471]},{"channel":"edge12","coefficient":1,"kind":"side","node":23379,"targets":[1469,1470]},{"channel":"u01","coefficient":1,"kind":"side","node":24940,"targets":[1464]},{"channel":"w02","coefficient":1,"kind":"side","node":24944,"targets":[1464]},{"channel":"partner","coefficient":1,"kind":"side","node":1467,"targets":[1464]},{"channel":"u01","coefficient":1,"kind":"side","node":24940,"targets":[1465]},{"channel":"w02","coefficient":1,"kind":"side","node":24945,"targets":[1465]},{"channel":"partner","coefficient":1,"kind":"side","node":1466,"targets":[1465]},{"channel":"u01","coefficient":1,"kind":"side","node":24941,"targets":[1466]},{"channel":"w02","coefficient":1,"kind":"side","node":24944,"targets":[1466]},{"channel":"partner","coefficient":1,"kind":"side","node":1465,"targets":[1466]},{"channel":"u01","coefficient":1,"kind":"side","node":24941,"targets":[1467]},{"channel":"w02","coefficient":1,"kind":"side","node":24945,"targets":[1467]},{"channel":"partner","coefficient":1,"kind":"side","node":1464,"targets":[1467]},{"channel":"u01","coefficient":1,"kind":"side","node":24942,"targets":[1468]},{"channel":"w02","coefficient":1,"kind":"side","node":24946,"targets":[1468]},{"channel":"partner","coefficient":1,"kind":"side","node":1471,"targets":[1468]},{"channel":"u01","coefficient":1,"kind":"side","node":24942,"targets":[1469]},{"channel":"w02","coefficient":1,"kind":"side","node":24947,"targets":[1469]},{"channel":"partner","coefficient":1,"kind":"side","node":1470,"targets":[1469]},{"channel":"u01","coefficient":1,"kind":"side","node":24943,"targets":[1470]},{"channel":"w02","coefficient":1,"kind":"side","node":24946,"targets":[1470]},{"channel":"partner","coefficient":1,"kind":"side","node":1469,"targets":[1470]},{"channel":"u01","coefficient":1,"kind":"side","node":24943,"targets":[1471]},{"channel":"w02","coefficient":1,"kind":"side","node":24947,"targets":[1471]},{"channel":"partner","coefficient":1,"kind":"side","node":1468,"targets":[1471]},{"channel":"face0","coefficient":1,"kind":"side","node":12135,"targets":[1472,1473,1474,1475]},{"channel":"face0","coefficient":1,"kind":"side","node":12598,"targets":[1476,1477,1478,1479]},{"channel":"edge12","coefficient":1,"kind":"side","node":23475,"targets":[1472,1475]},{"channel":"edge12","coefficient":1,"kind":"side","node":23443,"targets":[1473,1474]},{"channel":"edge12","coefficient":1,"kind":"side","node":23475,"targets":[1476,1479]},{"channel":"edge12","coefficient":1,"kind":"side","node":23443,"targets":[1477,1478]},{"channel":"u01","coefficient":1,"kind":"side","node":24948,"targets":[1472]},{"channel":"w02","coefficient":1,"kind":"side","node":24952,"targets":[1472]},{"channel":"partner","coefficient":1,"kind":"side","node":1475,"targets":[1472]},{"channel":"u01","coefficient":1,"kind":"side","node":24948,"targets":[1473]},{"channel":"w02","coefficient":1,"kind":"side","node":24953,"targets":[1473]},{"channel":"partner","coefficient":1,"kind":"side","node":1474,"targets":[1473]},{"channel":"u01","coefficient":1,"kind":"side","node":24949,"targets":[1474]},{"channel":"w02","coefficient":1,"kind":"side","node":24952,"targets":[1474]},{"channel":"partner","coefficient":1,"kind":"side","node":1473,"targets":[1474]},{"channel":"u01","coefficient":1,"kind":"side","node":24949,"targets":[1475]},{"channel":"w02","coefficient":1,"kind":"side","node":24953,"targets":[1475]},{"channel":"partner","coefficient":1,"kind":"side","node":1472,"targets":[1475]},{"channel":"u01","coefficient":1,"kind":"side","node":24950,"targets":[1476]},{"channel":"w02","coefficient":1,"kind":"side","node":24954,"targets":[1476]},{"channel":"partner","coefficient":1,"kind":"side","node":1479,"targets":[1476]},{"channel":"u01","coefficient":1,"kind":"side","node":24950,"targets":[1477]},{"channel":"w02","coefficient":1,"kind":"side","node":24955,"targets":[1477]},{"channel":"partner","coefficient":1,"kind":"side","node":1478,"targets":[1477]},{"channel":"u01","coefficient":1,"kind":"side","node":24951,"targets":[1478]},{"channel":"w02","coefficient":1,"kind":"side","node":24954,"targets":[1478]},{"channel":"partner","coefficient":1,"kind":"side","node":1477,"targets":[1478]},{"channel":"u01","coefficient":1,"kind":"side","node":24951,"targets":[1479]},{"channel":"w02","coefficient":1,"kind":"side","node":24955,"targets":[1479]},{"channel":"partner","coefficient":1,"kind":"side","node":1476,"targets":[1479]},{"channel":"face0","coefficient":1,"kind":"side","node":13101,"targets":[1480,1481,1482,1483]},{"channel":"face0","coefficient":1,"kind":"side","node":13564,"targets":[1484,1485,1486,1487]},{"channel":"edge12","coefficient":1,"kind":"side","node":22568,"targets":[1480,1483]},{"channel":"edge12","coefficient":1,"kind":"side","node":22536,"targets":[1481,1482]},{"channel":"edge12","coefficient":1,"kind":"side","node":22568,"targets":[1484,1487]},{"channel":"edge12","coefficient":1,"kind":"side","node":22536,"targets":[1485,1486]},{"channel":"u01","coefficient":1,"kind":"side","node":24956,"targets":[1480]},{"channel":"w02","coefficient":1,"kind":"side","node":24960,"targets":[1480]},{"channel":"partner","coefficient":1,"kind":"side","node":1483,"targets":[1480]},{"channel":"u01","coefficient":1,"kind":"side","node":24956,"targets":[1481]},{"channel":"w02","coefficient":1,"kind":"side","node":24961,"targets":[1481]},{"channel":"partner","coefficient":1,"kind":"side","node":1482,"targets":[1481]},{"channel":"u01","coefficient":1,"kind":"side","node":24957,"targets":[1482]},{"channel":"w02","coefficient":1,"kind":"side","node":24960,"targets":[1482]},{"channel":"partner","coefficient":1,"kind":"side","node":1481,"targets":[1482]},{"channel":"u01","coefficient":1,"kind":"side","node":24957,"targets":[1483]},{"channel":"w02","coefficient":1,"kind":"side","node":24961,"targets":[1483]},{"channel":"partner","coefficient":1,"kind":"side","node":1480,"targets":[1483]},{"channel":"u01","coefficient":1,"kind":"side","node":24958,"targets":[1484]},{"channel":"w02","coefficient":1,"kind":"side","node":24962,"targets":[1484]},{"channel":"partner","coefficient":1,"kind":"side","node":1487,"targets":[1484]},{"channel":"u01","coefficient":1,"kind":"side","node":24958,"targets":[1485]},{"channel":"w02","coefficient":1,"kind":"side","node":24963,"targets":[1485]},{"channel":"partner","coefficient":1,"kind":"side","node":1486,"targets":[1485]},{"channel":"u01","coefficient":1,"kind":"side","node":24959,"targets":[1486]},{"channel":"w02","coefficient":1,"kind":"side","node":24962,"targets":[1486]},{"channel":"partner","coefficient":1,"kind":"side","node":1485,"targets":[1486]},{"channel":"u01","coefficient":1,"kind":"side","node":24959,"targets":[1487]},{"channel":"w02","coefficient":1,"kind":"side","node":24963,"targets":[1487]},{"channel":"partner","coefficient":1,"kind":"side","node":1484,"targets":[1487]},{"channel":"face0","coefficient":1,"kind":"side","node":13157,"targets":[1488,1489,1490,1491]},{"channel":"face0","coefficient":1,"kind":"side","node":13620,"targets":[1492,1493,1494,1495]},{"channel":"edge12","coefficient":1,"kind":"side","node":22632,"targets":[1488,1491]},{"channel":"edge12","coefficient":1,"kind":"side","node":22600,"targets":[1489,1490]},{"channel":"edge12","coefficient":1,"kind":"side","node":22632,"targets":[1492,1495]},{"channel":"edge12","coefficient":1,"kind":"side","node":22600,"targets":[1493,1494]},{"channel":"u01","coefficient":1,"kind":"side","node":24964,"targets":[1488]},{"channel":"w02","coefficient":1,"kind":"side","node":24968,"targets":[1488]},{"channel":"partner","coefficient":1,"kind":"side","node":1491,"targets":[1488]},{"channel":"u01","coefficient":1,"kind":"side","node":24964,"targets":[1489]},{"channel":"w02","coefficient":1,"kind":"side","node":24969,"targets":[1489]},{"channel":"partner","coefficient":1,"kind":"side","node":1490,"targets":[1489]},{"channel":"u01","coefficient":1,"kind":"side","node":24965,"targets":[1490]},{"channel":"w02","coefficient":1,"kind":"side","node":24968,"targets":[1490]},{"channel":"partner","coefficient":1,"kind":"side","node":1489,"targets":[1490]},{"channel":"u01","coefficient":1,"kind":"side","node":24965,"targets":[1491]},{"channel":"w02","coefficient":1,"kind":"side","node":24969,"targets":[1491]},{"channel":"partner","coefficient":1,"kind":"side","node":1488,"targets":[1491]},{"channel":"u01","coefficient":1,"kind":"side","node":24966,"targets":[1492]},{"channel":"w02","coefficient":1,"kind":"side","node":24970,"targets":[1492]},{"channel":"partner","coefficient":1,"kind":"side","node":1495,"targets":[1492]},{"channel":"u01","coefficient":1,"kind":"side","node":24966,"targets":[1493]},{"channel":"w02","coefficient":1,"kind":"side","node":24971,"targets":[1493]},{"channel":"partner","coefficient":1,"kind":"side","node":1494,"targets":[1493]},{"channel":"u01","coefficient":1,"kind":"side","node":24967,"targets":[1494]},{"channel":"w02","coefficient":1,"kind":"side","node":24970,"targets":[1494]},{"channel":"partner","coefficient":1,"kind":"side","node":1493,"targets":[1494]},{"channel":"u01","coefficient":1,"kind":"side","node":24967,"targets":[1495]},{"channel":"w02","coefficient":1,"kind":"side","node":24971,"targets":[1495]},{"channel":"partner","coefficient":1,"kind":"side","node":1492,"targets":[1495]},{"channel":"face0","coefficient":1,"kind":"side","node":13118,"targets":[1496,1497,1498,1499]},{"channel":"face0","coefficient":1,"kind":"side","node":13581,"targets":[1500,1501,1502,1503]},{"channel":"edge12","coefficient":1,"kind":"side","node":22696,"targets":[1496,1499]},{"channel":"edge12","coefficient":1,"kind":"side","node":22664,"targets":[1497,1498]},{"channel":"edge12","coefficient":1,"kind":"side","node":22696,"targets":[1500,1503]},{"channel":"edge12","coefficient":1,"kind":"side","node":22664,"targets":[1501,1502]},{"channel":"u01","coefficient":1,"kind":"side","node":24972,"targets":[1496]},{"channel":"w02","coefficient":1,"kind":"side","node":24976,"targets":[1496]},{"channel":"partner","coefficient":1,"kind":"side","node":1499,"targets":[1496]},{"channel":"u01","coefficient":1,"kind":"side","node":24972,"targets":[1497]},{"channel":"w02","coefficient":1,"kind":"side","node":24977,"targets":[1497]},{"channel":"partner","coefficient":1,"kind":"side","node":1498,"targets":[1497]},{"channel":"u01","coefficient":1,"kind":"side","node":24973,"targets":[1498]},{"channel":"w02","coefficient":1,"kind":"side","node":24976,"targets":[1498]},{"channel":"partner","coefficient":1,"kind":"side","node":1497,"targets":[1498]},{"channel":"u01","coefficient":1,"kind":"side","node":24973,"targets":[1499]},{"channel":"w02","coefficient":1,"kind":"side","node":24977,"targets":[1499]},{"channel":"partner","coefficient":1,"kind":"side","node":1496,"targets":[1499]},{"channel":"u01","coefficient":1,"kind":"side","node":24974,"targets":[1500]},{"channel":"w02","coefficient":1,"kind":"side","node":24978,"targets":[1500]},{"channel":"partner","coefficient":1,"kind":"side","node":1503,"targets":[1500]},{"channel":"u01","coefficient":1,"kind":"side","node":24974,"targets":[1501]},{"channel":"w02","coefficient":1,"kind":"side","node":24979,"targets":[1501]},{"channel":"partner","coefficient":1,"kind":"side","node":1502,"targets":[1501]},{"channel":"u01","coefficient":1,"kind":"side","node":24975,"targets":[1502]},{"channel":"w02","coefficient":1,"kind":"side","node":24978,"targets":[1502]},{"channel":"partner","coefficient":1,"kind":"side","node":1501,"targets":[1502]},{"channel":"u01","coefficient":1,"kind":"side","node":24975,"targets":[1503]},{"channel":"w02","coefficient":1,"kind":"side","node":24979,"targets":[1503]},{"channel":"partner","coefficient":1,"kind":"side","node":1500,"targets":[1503]},{"channel":"face0","coefficient":1,"kind":"side","node":12964,"targets":[1504,1505,1506,1507]},{"channel":"face0","coefficient":1,"kind":"side","node":13427,"targets":[1508,1509,1510,1511]},{"channel":"edge12","coefficient":1,"kind":"side","node":22760,"targets":[1504,1507]},{"channel":"edge12","coefficient":1,"kind":"side","node":22728,"targets":[1505,1506]},{"channel":"edge12","coefficient":1,"kind":"side","node":22760,"targets":[1508,1511]},{"channel":"edge12","coefficient":1,"kind":"side","node":22728,"targets":[1509,1510]},{"channel":"u01","coefficient":1,"kind":"side","node":24980,"targets":[1504]},{"channel":"w02","coefficient":1,"kind":"side","node":24984,"targets":[1504]},{"channel":"partner","coefficient":1,"kind":"side","node":1507,"targets":[1504]},{"channel":"u01","coefficient":1,"kind":"side","node":24980,"targets":[1505]},{"channel":"w02","coefficient":1,"kind":"side","node":24985,"targets":[1505]},{"channel":"partner","coefficient":1,"kind":"side","node":1506,"targets":[1505]},{"channel":"u01","coefficient":1,"kind":"side","node":24981,"targets":[1506]},{"channel":"w02","coefficient":1,"kind":"side","node":24984,"targets":[1506]},{"channel":"partner","coefficient":1,"kind":"side","node":1505,"targets":[1506]},{"channel":"u01","coefficient":1,"kind":"side","node":24981,"targets":[1507]},{"channel":"w02","coefficient":1,"kind":"side","node":24985,"targets":[1507]},{"channel":"partner","coefficient":1,"kind":"side","node":1504,"targets":[1507]},{"channel":"u01","coefficient":1,"kind":"side","node":24982,"targets":[1508]},{"channel":"w02","coefficient":1,"kind":"side","node":24986,"targets":[1508]},{"channel":"partner","coefficient":1,"kind":"side","node":1511,"targets":[1508]},{"channel":"u01","coefficient":1,"kind":"side","node":24982,"targets":[1509]},{"channel":"w02","coefficient":1,"kind":"side","node":24987,"targets":[1509]},{"channel":"partner","coefficient":1,"kind":"side","node":1510,"targets":[1509]},{"channel":"u01","coefficient":1,"kind":"side","node":24983,"targets":[1510]},{"channel":"w02","coefficient":1,"kind":"side","node":24986,"targets":[1510]},{"channel":"partner","coefficient":1,"kind":"side","node":1509,"targets":[1510]},{"channel":"u01","coefficient":1,"kind":"side","node":24983,"targets":[1511]},{"channel":"w02","coefficient":1,"kind":"side","node":24987,"targets":[1511]},{"channel":"partner","coefficient":1,"kind":"side","node":1508,"targets":[1511]},{"channel":"face0","coefficient":1,"kind":"side","node":13128,"targets":[1512,1513,1514,1515]},{"channel":"face0","coefficient":1,"kind":"side","node":13591,"targets":[1516,1517,1518,1519]},{"channel":"edge12","coefficient":1,"kind":"side","node":22824,"targets":[1512,1515]},{"channel":"edge12","coefficient":1,"kind":"side","node":22792,"targets":[1513,1514]},{"channel":"edge12","coefficient":1,"kind":"side","node":22824,"targets":[1516,1519]},{"channel":"edge12","coefficient":1,"kind":"side","node":22792,"targets":[1517,1518]},{"channel":"u01","coefficient":1,"kind":"side","node":24988,"targets":[1512]},{"channel":"w02","coefficient":1,"kind":"side","node":24992,"targets":[1512]},{"channel":"partner","coefficient":1,"kind":"side","node":1515,"targets":[1512]},{"channel":"u01","coefficient":1,"kind":"side","node":24988,"targets":[1513]},{"channel":"w02","coefficient":1,"kind":"side","node":24993,"targets":[1513]},{"channel":"partner","coefficient":1,"kind":"side","node":1514,"targets":[1513]},{"channel":"u01","coefficient":1,"kind":"side","node":24989,"targets":[1514]},{"channel":"w02","coefficient":1,"kind":"side","node":24992,"targets":[1514]},{"channel":"partner","coefficient":1,"kind":"side","node":1513,"targets":[1514]},{"channel":"u01","coefficient":1,"kind":"side","node":24989,"targets":[1515]},{"channel":"w02","coefficient":1,"kind":"side","node":24993,"targets":[1515]},{"channel":"partner","coefficient":1,"kind":"side","node":1512,"targets":[1515]},{"channel":"u01","coefficient":1,"kind":"side","node":24990,"targets":[1516]},{"channel":"w02","coefficient":1,"kind":"side","node":24994,"targets":[1516]},{"channel":"partner","coefficient":1,"kind":"side","node":1519,"targets":[1516]},{"channel":"u01","coefficient":1,"kind":"side","node":24990,"targets":[1517]},{"channel":"w02","coefficient":1,"kind":"side","node":24995,"targets":[1517]},{"channel":"partner","coefficient":1,"kind":"side","node":1518,"targets":[1517]},{"channel":"u01","coefficient":1,"kind":"side","node":24991,"targets":[1518]},{"channel":"w02","coefficient":1,"kind":"side","node":24994,"targets":[1518]},{"channel":"partner","coefficient":1,"kind":"side","node":1517,"targets":[1518]},{"channel":"u01","coefficient":1,"kind":"side","node":24991,"targets":[1519]},{"channel":"w02","coefficient":1,"kind":"side","node":24995,"targets":[1519]},{"channel":"partner","coefficient":1,"kind":"side","node":1516,"targets":[1519]},{"channel":"face0","coefficient":1,"kind":"side","node":13170,"targets":[1520,1521,1522,1523]},{"channel":"face0","coefficient":1,"kind":"side","node":13633,"targets":[1524,1525,1526,1527]},{"channel":"edge12","coefficient":1,"kind":"side","node":22888,"targets":[1520,1523]},{"channel":"edge12","coefficient":1,"kind":"side","node":22856,"targets":[1521,1522]},{"channel":"edge12","coefficient":1,"kind":"side","node":22888,"targets":[1524,1527]},{"channel":"edge12","coefficient":1,"kind":"side","node":22856,"targets":[1525,1526]},{"channel":"u01","coefficient":1,"kind":"side","node":24996,"targets":[1520]},{"channel":"w02","coefficient":1,"kind":"side","node":25000,"targets":[1520]},{"channel":"partner","coefficient":1,"kind":"side","node":1523,"targets":[1520]},{"channel":"u01","coefficient":1,"kind":"side","node":24996,"targets":[1521]},{"channel":"w02","coefficient":1,"kind":"side","node":25001,"targets":[1521]},{"channel":"partner","coefficient":1,"kind":"side","node":1522,"targets":[1521]},{"channel":"u01","coefficient":1,"kind":"side","node":24997,"targets":[1522]},{"channel":"w02","coefficient":1,"kind":"side","node":25000,"targets":[1522]},{"channel":"partner","coefficient":1,"kind":"side","node":1521,"targets":[1522]},{"channel":"u01","coefficient":1,"kind":"side","node":24997,"targets":[1523]},{"channel":"w02","coefficient":1,"kind":"side","node":25001,"targets":[1523]},{"channel":"partner","coefficient":1,"kind":"side","node":1520,"targets":[1523]},{"channel":"u01","coefficient":1,"kind":"side","node":24998,"targets":[1524]},{"channel":"w02","coefficient":1,"kind":"side","node":25002,"targets":[1524]},{"channel":"partner","coefficient":1,"kind":"side","node":1527,"targets":[1524]},{"channel":"u01","coefficient":1,"kind":"side","node":24998,"targets":[1525]},{"channel":"w02","coefficient":1,"kind":"side","node":25003,"targets":[1525]},{"channel":"partner","coefficient":1,"kind":"side","node":1526,"targets":[1525]},{"channel":"u01","coefficient":1,"kind":"side","node":24999,"targets":[1526]},{"channel":"w02","coefficient":1,"kind":"side","node":25002,"targets":[1526]},{"channel":"partner","coefficient":1,"kind":"side","node":1525,"targets":[1526]},{"channel":"u01","coefficient":1,"kind":"side","node":24999,"targets":[1527]},{"channel":"w02","coefficient":1,"kind":"side","node":25003,"targets":[1527]},{"channel":"partner","coefficient":1,"kind":"side","node":1524,"targets":[1527]},{"channel":"face0","coefficient":1,"kind":"side","node":13191,"targets":[1528,1529,1530,1531]},{"channel":"face0","coefficient":1,"kind":"side","node":13654,"targets":[1532,1533,1534,1535]},{"channel":"edge12","coefficient":1,"kind":"side","node":22952,"targets":[1528,1531]},{"channel":"edge12","coefficient":1,"kind":"side","node":22920,"targets":[1529,1530]},{"channel":"edge12","coefficient":1,"kind":"side","node":22952,"targets":[1532,1535]},{"channel":"edge12","coefficient":1,"kind":"side","node":22920,"targets":[1533,1534]},{"channel":"u01","coefficient":1,"kind":"side","node":25004,"targets":[1528]},{"channel":"w02","coefficient":1,"kind":"side","node":25008,"targets":[1528]},{"channel":"partner","coefficient":1,"kind":"side","node":1531,"targets":[1528]},{"channel":"u01","coefficient":1,"kind":"side","node":25004,"targets":[1529]},{"channel":"w02","coefficient":1,"kind":"side","node":25009,"targets":[1529]},{"channel":"partner","coefficient":1,"kind":"side","node":1530,"targets":[1529]},{"channel":"u01","coefficient":1,"kind":"side","node":25005,"targets":[1530]},{"channel":"w02","coefficient":1,"kind":"side","node":25008,"targets":[1530]},{"channel":"partner","coefficient":1,"kind":"side","node":1529,"targets":[1530]},{"channel":"u01","coefficient":1,"kind":"side","node":25005,"targets":[1531]},{"channel":"w02","coefficient":1,"kind":"side","node":25009,"targets":[1531]},{"channel":"partner","coefficient":1,"kind":"side","node":1528,"targets":[1531]},{"channel":"u01","coefficient":1,"kind":"side","node":25006,"targets":[1532]},{"channel":"w02","coefficient":1,"kind":"side","node":25010,"targets":[1532]},{"channel":"partner","coefficient":1,"kind":"side","node":1535,"targets":[1532]},{"channel":"u01","coefficient":1,"kind":"side","node":25006,"targets":[1533]},{"channel":"w02","coefficient":1,"kind":"side","node":25011,"targets":[1533]},{"channel":"partner","coefficient":1,"kind":"side","node":1534,"targets":[1533]},{"channel":"u01","coefficient":1,"kind":"side","node":25007,"targets":[1534]},{"channel":"w02","coefficient":1,"kind":"side","node":25010,"targets":[1534]},{"channel":"partner","coefficient":1,"kind":"side","node":1533,"targets":[1534]},{"channel":"u01","coefficient":1,"kind":"side","node":25007,"targets":[1535]},{"channel":"w02","coefficient":1,"kind":"side","node":25011,"targets":[1535]},{"channel":"partner","coefficient":1,"kind":"side","node":1532,"targets":[1535]},{"channel":"face0","coefficient":1,"kind":"side","node":12937,"targets":[1536,1537,1538,1539]},{"channel":"face0","coefficient":1,"kind":"side","node":13400,"targets":[1540,1541,1542,1543]},{"channel":"edge12","coefficient":1,"kind":"side","node":23016,"targets":[1536,1539]},{"channel":"edge12","coefficient":1,"kind":"side","node":22984,"targets":[1537,1538]},{"channel":"edge12","coefficient":1,"kind":"side","node":23016,"targets":[1540,1543]},{"channel":"edge12","coefficient":1,"kind":"side","node":22984,"targets":[1541,1542]},{"channel":"u01","coefficient":1,"kind":"side","node":25012,"targets":[1536]},{"channel":"w02","coefficient":1,"kind":"side","node":25016,"targets":[1536]},{"channel":"partner","coefficient":1,"kind":"side","node":1539,"targets":[1536]},{"channel":"u01","coefficient":1,"kind":"side","node":25012,"targets":[1537]},{"channel":"w02","coefficient":1,"kind":"side","node":25017,"targets":[1537]},{"channel":"partner","coefficient":1,"kind":"side","node":1538,"targets":[1537]},{"channel":"u01","coefficient":1,"kind":"side","node":25013,"targets":[1538]},{"channel":"w02","coefficient":1,"kind":"side","node":25016,"targets":[1538]},{"channel":"partner","coefficient":1,"kind":"side","node":1537,"targets":[1538]},{"channel":"u01","coefficient":1,"kind":"side","node":25013,"targets":[1539]},{"channel":"w02","coefficient":1,"kind":"side","node":25017,"targets":[1539]},{"channel":"partner","coefficient":1,"kind":"side","node":1536,"targets":[1539]},{"channel":"u01","coefficient":1,"kind":"side","node":25014,"targets":[1540]},{"channel":"w02","coefficient":1,"kind":"side","node":25018,"targets":[1540]},{"channel":"partner","coefficient":1,"kind":"side","node":1543,"targets":[1540]},{"channel":"u01","coefficient":1,"kind":"side","node":25014,"targets":[1541]},{"channel":"w02","coefficient":1,"kind":"side","node":25019,"targets":[1541]},{"channel":"partner","coefficient":1,"kind":"side","node":1542,"targets":[1541]},{"channel":"u01","coefficient":1,"kind":"side","node":25015,"targets":[1542]},{"channel":"w02","coefficient":1,"kind":"side","node":25018,"targets":[1542]},{"channel":"partner","coefficient":1,"kind":"side","node":1541,"targets":[1542]},{"channel":"u01","coefficient":1,"kind":"side","node":25015,"targets":[1543]},{"channel":"w02","coefficient":1,"kind":"side","node":25019,"targets":[1543]},{"channel":"partner","coefficient":1,"kind":"side","node":1540,"targets":[1543]},{"channel":"face0","coefficient":1,"kind":"side","node":13039,"targets":[1544,1545,1546,1547]},{"channel":"face0","coefficient":1,"kind":"side","node":13502,"targets":[1548,1549,1550,1551]},{"channel":"edge12","coefficient":1,"kind":"side","node":23080,"targets":[1544,1547]},{"channel":"edge12","coefficient":1,"kind":"side","node":23048,"targets":[1545,1546]},{"channel":"edge12","coefficient":1,"kind":"side","node":23080,"targets":[1548,1551]},{"channel":"edge12","coefficient":1,"kind":"side","node":23048,"targets":[1549,1550]},{"channel":"u01","coefficient":1,"kind":"side","node":25020,"targets":[1544]},{"channel":"w02","coefficient":1,"kind":"side","node":25024,"targets":[1544]},{"channel":"partner","coefficient":1,"kind":"side","node":1547,"targets":[1544]},{"channel":"u01","coefficient":1,"kind":"side","node":25020,"targets":[1545]},{"channel":"w02","coefficient":1,"kind":"side","node":25025,"targets":[1545]},{"channel":"partner","coefficient":1,"kind":"side","node":1546,"targets":[1545]},{"channel":"u01","coefficient":1,"kind":"side","node":25021,"targets":[1546]},{"channel":"w02","coefficient":1,"kind":"side","node":25024,"targets":[1546]},{"channel":"partner","coefficient":1,"kind":"side","node":1545,"targets":[1546]},{"channel":"u01","coefficient":1,"kind":"side","node":25021,"targets":[1547]},{"channel":"w02","coefficient":1,"kind":"side","node":25025,"targets":[1547]},{"channel":"partner","coefficient":1,"kind":"side","node":1544,"targets":[1547]},{"channel":"u01","coefficient":1,"kind":"side","node":25022,"targets":[1548]},{"channel":"w02","coefficient":1,"kind":"side","node":25026,"targets":[1548]},{"channel":"partner","coefficient":1,"kind":"side","node":1551,"targets":[1548]},{"channel":"u01","coefficient":1,"kind":"side","node":25022,"targets":[1549]},{"channel":"w02","coefficient":1,"kind":"side","node":25027,"targets":[1549]},{"channel":"partner","coefficient":1,"kind":"side","node":1550,"targets":[1549]},{"channel":"u01","coefficient":1,"kind":"side","node":25023,"targets":[1550]},{"channel":"w02","coefficient":1,"kind":"side","node":25026,"targets":[1550]},{"channel":"partner","coefficient":1,"kind":"side","node":1549,"targets":[1550]},{"channel":"u01","coefficient":1,"kind":"side","node":25023,"targets":[1551]},{"channel":"w02","coefficient":1,"kind":"side","node":25027,"targets":[1551]},{"channel":"partner","coefficient":1,"kind":"side","node":1548,"targets":[1551]},{"channel":"face0","coefficient":1,"kind":"side","node":13185,"targets":[1552,1553,1554,1555]},{"channel":"face0","coefficient":1,"kind":"side","node":13648,"targets":[1556,1557,1558,1559]},{"channel":"edge12","coefficient":1,"kind":"side","node":23144,"targets":[1552,1555]},{"channel":"edge12","coefficient":1,"kind":"side","node":23112,"targets":[1553,1554]},{"channel":"edge12","coefficient":1,"kind":"side","node":23144,"targets":[1556,1559]},{"channel":"edge12","coefficient":1,"kind":"side","node":23112,"targets":[1557,1558]},{"channel":"u01","coefficient":1,"kind":"side","node":25028,"targets":[1552]},{"channel":"w02","coefficient":1,"kind":"side","node":25032,"targets":[1552]},{"channel":"partner","coefficient":1,"kind":"side","node":1555,"targets":[1552]},{"channel":"u01","coefficient":1,"kind":"side","node":25028,"targets":[1553]},{"channel":"w02","coefficient":1,"kind":"side","node":25033,"targets":[1553]},{"channel":"partner","coefficient":1,"kind":"side","node":1554,"targets":[1553]},{"channel":"u01","coefficient":1,"kind":"side","node":25029,"targets":[1554]},{"channel":"w02","coefficient":1,"kind":"side","node":25032,"targets":[1554]},{"channel":"partner","coefficient":1,"kind":"side","node":1553,"targets":[1554]},{"channel":"u01","coefficient":1,"kind":"side","node":25029,"targets":[1555]},{"channel":"w02","coefficient":1,"kind":"side","node":25033,"targets":[1555]},{"channel":"partner","coefficient":1,"kind":"side","node":1552,"targets":[1555]},{"channel":"u01","coefficient":1,"kind":"side","node":25030,"targets":[1556]},{"channel":"w02","coefficient":1,"kind":"side","node":25034,"targets":[1556]},{"channel":"partner","coefficient":1,"kind":"side","node":1559,"targets":[1556]},{"channel":"u01","coefficient":1,"kind":"side","node":25030,"targets":[1557]},{"channel":"w02","coefficient":1,"kind":"side","node":25035,"targets":[1557]},{"channel":"partner","coefficient":1,"kind":"side","node":1558,"targets":[1557]},{"channel":"u01","coefficient":1,"kind":"side","node":25031,"targets":[1558]},{"channel":"w02","coefficient":1,"kind":"side","node":25034,"targets":[1558]},{"channel":"partner","coefficient":1,"kind":"side","node":1557,"targets":[1558]},{"channel":"u01","coefficient":1,"kind":"side","node":25031,"targets":[1559]},{"channel":"w02","coefficient":1,"kind":"side","node":25035,"targets":[1559]},{"channel":"partner","coefficient":1,"kind":"side","node":1556,"targets":[1559]},{"channel":"face0","coefficient":1,"kind":"side","node":13141,"targets":[1560,1561,1562,1563]},{"channel":"face0","coefficient":1,"kind":"side","node":13604,"targets":[1564,1565,1566,1567]},{"channel":"edge12","coefficient":1,"kind":"side","node":23208,"targets":[1560,1563]},{"channel":"edge12","coefficient":1,"kind":"side","node":23176,"targets":[1561,1562]},{"channel":"edge12","coefficient":1,"kind":"side","node":23208,"targets":[1564,1567]},{"channel":"edge12","coefficient":1,"kind":"side","node":23176,"targets":[1565,1566]},{"channel":"u01","coefficient":1,"kind":"side","node":25036,"targets":[1560]},{"channel":"w02","coefficient":1,"kind":"side","node":25040,"targets":[1560]},{"channel":"partner","coefficient":1,"kind":"side","node":1563,"targets":[1560]},{"channel":"u01","coefficient":1,"kind":"side","node":25036,"targets":[1561]},{"channel":"w02","coefficient":1,"kind":"side","node":25041,"targets":[1561]},{"channel":"partner","coefficient":1,"kind":"side","node":1562,"targets":[1561]},{"channel":"u01","coefficient":1,"kind":"side","node":25037,"targets":[1562]},{"channel":"w02","coefficient":1,"kind":"side","node":25040,"targets":[1562]},{"channel":"partner","coefficient":1,"kind":"side","node":1561,"targets":[1562]},{"channel":"u01","coefficient":1,"kind":"side","node":25037,"targets":[1563]},{"channel":"w02","coefficient":1,"kind":"side","node":25041,"targets":[1563]},{"channel":"partner","coefficient":1,"kind":"side","node":1560,"targets":[1563]},{"channel":"u01","coefficient":1,"kind":"side","node":25038,"targets":[1564]},{"channel":"w02","coefficient":1,"kind":"side","node":25042,"targets":[1564]},{"channel":"partner","coefficient":1,"kind":"side","node":1567,"targets":[1564]},{"channel":"u01","coefficient":1,"kind":"side","node":25038,"targets":[1565]},{"channel":"w02","coefficient":1,"kind":"side","node":25043,"targets":[1565]},{"channel":"partner","coefficient":1,"kind":"side","node":1566,"targets":[1565]},{"channel":"u01","coefficient":1,"kind":"side","node":25039,"targets":[1566]},{"channel":"w02","coefficient":1,"kind":"side","node":25042,"targets":[1566]},{"channel":"partner","coefficient":1,"kind":"side","node":1565,"targets":[1566]},{"channel":"u01","coefficient":1,"kind":"side","node":25039,"targets":[1567]},{"channel":"w02","coefficient":1,"kind":"side","node":25043,"targets":[1567]},{"channel":"partner","coefficient":1,"kind":"side","node":1564,"targets":[1567]},{"channel":"face0","coefficient":1,"kind":"side","node":13188,"targets":[1568,1569,1570,1571]},{"channel":"face0","coefficient":1,"kind":"side","node":13651,"targets":[1572,1573,1574,1575]},{"channel":"edge12","coefficient":1,"kind":"side","node":23272,"targets":[1568,1571]},{"channel":"edge12","coefficient":1,"kind":"side","node":23240,"targets":[1569,1570]},{"channel":"edge12","coefficient":1,"kind":"side","node":23272,"targets":[1572,1575]},{"channel":"edge12","coefficient":1,"kind":"side","node":23240,"targets":[1573,1574]},{"channel":"u01","coefficient":1,"kind":"side","node":25044,"targets":[1568]},{"channel":"w02","coefficient":1,"kind":"side","node":25048,"targets":[1568]},{"channel":"partner","coefficient":1,"kind":"side","node":1571,"targets":[1568]},{"channel":"u01","coefficient":1,"kind":"side","node":25044,"targets":[1569]},{"channel":"w02","coefficient":1,"kind":"side","node":25049,"targets":[1569]},{"channel":"partner","coefficient":1,"kind":"side","node":1570,"targets":[1569]},{"channel":"u01","coefficient":1,"kind":"side","node":25045,"targets":[1570]},{"channel":"w02","coefficient":1,"kind":"side","node":25048,"targets":[1570]},{"channel":"partner","coefficient":1,"kind":"side","node":1569,"targets":[1570]},{"channel":"u01","coefficient":1,"kind":"side","node":25045,"targets":[1571]},{"channel":"w02","coefficient":1,"kind":"side","node":25049,"targets":[1571]},{"channel":"partner","coefficient":1,"kind":"side","node":1568,"targets":[1571]},{"channel":"u01","coefficient":1,"kind":"side","node":25046,"targets":[1572]},{"channel":"w02","coefficient":1,"kind":"side","node":25050,"targets":[1572]},{"channel":"partner","coefficient":1,"kind":"side","node":1575,"targets":[1572]},{"channel":"u01","coefficient":1,"kind":"side","node":25046,"targets":[1573]},{"channel":"w02","coefficient":1,"kind":"side","node":25051,"targets":[1573]},{"channel":"partner","coefficient":1,"kind":"side","node":1574,"targets":[1573]},{"channel":"u01","coefficient":1,"kind":"side","node":25047,"targets":[1574]},{"channel":"w02","coefficient":1,"kind":"side","node":25050,"targets":[1574]},{"channel":"partner","coefficient":1,"kind":"side","node":1573,"targets":[1574]},{"channel":"u01","coefficient":1,"kind":"side","node":25047,"targets":[1575]},{"channel":"w02","coefficient":1,"kind":"side","node":25051,"targets":[1575]},{"channel":"partner","coefficient":1,"kind":"side","node":1572,"targets":[1575]},{"channel":"face0","coefficient":1,"kind":"side","node":13224,"targets":[1576,1577,1578,1579]},{"channel":"face0","coefficient":1,"kind":"side","node":13687,"targets":[1580,1581,1582,1583]},{"channel":"edge12","coefficient":1,"kind":"side","node":23336,"targets":[1576,1579]},{"channel":"edge12","coefficient":1,"kind":"side","node":23304,"targets":[1577,1578]},{"channel":"edge12","coefficient":1,"kind":"side","node":23336,"targets":[1580,1583]},{"channel":"edge12","coefficient":1,"kind":"side","node":23304,"targets":[1581,1582]},{"channel":"u01","coefficient":1,"kind":"side","node":25052,"targets":[1576]},{"channel":"w02","coefficient":1,"kind":"side","node":25056,"targets":[1576]},{"channel":"partner","coefficient":1,"kind":"side","node":1579,"targets":[1576]},{"channel":"u01","coefficient":1,"kind":"side","node":25052,"targets":[1577]},{"channel":"w02","coefficient":1,"kind":"side","node":25057,"targets":[1577]},{"channel":"partner","coefficient":1,"kind":"side","node":1578,"targets":[1577]},{"channel":"u01","coefficient":1,"kind":"side","node":25053,"targets":[1578]},{"channel":"w02","coefficient":1,"kind":"side","node":25056,"targets":[1578]},{"channel":"partner","coefficient":1,"kind":"side","node":1577,"targets":[1578]},{"channel":"u01","coefficient":1,"kind":"side","node":25053,"targets":[1579]},{"channel":"w02","coefficient":1,"kind":"side","node":25057,"targets":[1579]},{"channel":"partner","coefficient":1,"kind":"side","node":1576,"targets":[1579]},{"channel":"u01","coefficient":1,"kind":"side","node":25054,"targets":[1580]},{"channel":"w02","coefficient":1,"kind":"side","node":25058,"targets":[1580]},{"channel":"partner","coefficient":1,"kind":"side","node":1583,"targets":[1580]},{"channel":"u01","coefficient":1,"kind":"side","node":25054,"targets":[1581]},{"channel":"w02","coefficient":1,"kind":"side","node":25059,"targets":[1581]},{"channel":"partner","coefficient":1,"kind":"side","node":1582,"targets":[1581]},{"channel":"u01","coefficient":1,"kind":"side","node":25055,"targets":[1582]},{"channel":"w02","coefficient":1,"kind":"side","node":25058,"targets":[1582]},{"channel":"partner","coefficient":1,"kind":"side","node":1581,"targets":[1582]},{"channel":"u01","coefficient":1,"kind":"side","node":25055,"targets":[1583]},{"channel":"w02","coefficient":1,"kind":"side","node":25059,"targets":[1583]},{"channel":"partner","coefficient":1,"kind":"side","node":1580,"targets":[1583]},{"channel":"face0","coefficient":1,"kind":"side","node":13138,"targets":[1584,1585,1586,1587]},{"channel":"face0","coefficient":1,"kind":"side","node":13601,"targets":[1588,1589,1590,1591]},{"channel":"edge12","coefficient":1,"kind":"side","node":23400,"targets":[1584,1587]},{"channel":"edge12","coefficient":1,"kind":"side","node":23368,"targets":[1585,1586]},{"channel":"edge12","coefficient":1,"kind":"side","node":23400,"targets":[1588,1591]},{"channel":"edge12","coefficient":1,"kind":"side","node":23368,"targets":[1589,1590]},{"channel":"u01","coefficient":1,"kind":"side","node":25060,"targets":[1584]},{"channel":"w02","coefficient":1,"kind":"side","node":25064,"targets":[1584]},{"channel":"partner","coefficient":1,"kind":"side","node":1587,"targets":[1584]},{"channel":"u01","coefficient":1,"kind":"side","node":25060,"targets":[1585]},{"channel":"w02","coefficient":1,"kind":"side","node":25065,"targets":[1585]},{"channel":"partner","coefficient":1,"kind":"side","node":1586,"targets":[1585]},{"channel":"u01","coefficient":1,"kind":"side","node":25061,"targets":[1586]},{"channel":"w02","coefficient":1,"kind":"side","node":25064,"targets":[1586]},{"channel":"partner","coefficient":1,"kind":"side","node":1585,"targets":[1586]},{"channel":"u01","coefficient":1,"kind":"side","node":25061,"targets":[1587]},{"channel":"w02","coefficient":1,"kind":"side","node":25065,"targets":[1587]},{"channel":"partner","coefficient":1,"kind":"side","node":1584,"targets":[1587]},{"channel":"u01","coefficient":1,"kind":"side","node":25062,"targets":[1588]},{"channel":"w02","coefficient":1,"kind":"side","node":25066,"targets":[1588]},{"channel":"partner","coefficient":1,"kind":"side","node":1591,"targets":[1588]},{"channel":"u01","coefficient":1,"kind":"side","node":25062,"targets":[1589]},{"channel":"w02","coefficient":1,"kind":"side","node":25067,"targets":[1589]},{"channel":"partner","coefficient":1,"kind":"side","node":1590,"targets":[1589]},{"channel":"u01","coefficient":1,"kind":"side","node":25063,"targets":[1590]},{"channel":"w02","coefficient":1,"kind":"side","node":25066,"targets":[1590]},{"channel":"partner","coefficient":1,"kind":"side","node":1589,"targets":[1590]},{"channel":"u01","coefficient":1,"kind":"side","node":25063,"targets":[1591]},{"channel":"w02","coefficient":1,"kind":"side","node":25067,"targets":[1591]},{"channel":"partner","coefficient":1,"kind":"side","node":1588,"targets":[1591]},{"channel":"face0","coefficient":1,"kind":"side","node":13061,"targets":[1592,1593,1594,1595]},{"channel":"face0","coefficient":1,"kind":"side","node":13524,"targets":[1596,1597,1598,1599]},{"channel":"edge12","coefficient":1,"kind":"side","node":23464,"targets":[1592,1595]},{"channel":"edge12","coefficient":1,"kind":"side","node":23432,"targets":[1593,1594]},{"channel":"edge12","coefficient":1,"kind":"side","node":23464,"targets":[1596,1599]},{"channel":"edge12","coefficient":1,"kind":"side","node":23432,"targets":[1597,1598]},{"channel":"u01","coefficient":1,"kind":"side","node":25068,"targets":[1592]},{"channel":"w02","coefficient":1,"kind":"side","node":25072,"targets":[1592]},{"channel":"partner","coefficient":1,"kind":"side","node":1595,"targets":[1592]},{"channel":"u01","coefficient":1,"kind":"side","node":25068,"targets":[1593]},{"channel":"w02","coefficient":1,"kind":"side","node":25073,"targets":[1593]},{"channel":"partner","coefficient":1,"kind":"side","node":1594,"targets":[1593]},{"channel":"u01","coefficient":1,"kind":"side","node":25069,"targets":[1594]},{"channel":"w02","coefficient":1,"kind":"side","node":25072,"targets":[1594]},{"channel":"partner","coefficient":1,"kind":"side","node":1593,"targets":[1594]},{"channel":"u01","coefficient":1,"kind":"side","node":25069,"targets":[1595]},{"channel":"w02","coefficient":1,"kind":"side","node":25073,"targets":[1595]},{"channel":"partner","coefficient":1,"kind":"side","node":1592,"targets":[1595]},{"channel":"u01","coefficient":1,"kind":"side","node":25070,"targets":[1596]},{"channel":"w02","coefficient":1,"kind":"side","node":25074,"targets":[1596]},{"channel":"partner","coefficient":1,"kind":"side","node":1599,"targets":[1596]},{"channel":"u01","coefficient":1,"kind":"side","node":25070,"targets":[1597]},{"channel":"w02","coefficient":1,"kind":"side","node":25075,"targets":[1597]},{"channel":"partner","coefficient":1,"kind":"side","node":1598,"targets":[1597]},{"channel":"u01","coefficient":1,"kind":"side","node":25071,"targets":[1598]},{"channel":"w02","coefficient":1,"kind":"side","node":25074,"targets":[1598]},{"channel":"partner","coefficient":1,"kind":"side","node":1597,"targets":[1598]},{"channel":"u01","coefficient":1,"kind":"side","node":25071,"targets":[1599]},{"channel":"w02","coefficient":1,"kind":"side","node":25075,"targets":[1599]},{"channel":"partner","coefficient":1,"kind":"side","node":1596,"targets":[1599]},{"channel":"face0","coefficient":1,"kind":"side","node":14096,"targets":[1600,1601,1602,1603]},{"channel":"face0","coefficient":1,"kind":"side","node":14559,"targets":[1604,1605,1606,1607]},{"channel":"edge12","coefficient":1,"kind":"side","node":22884,"targets":[1600,1603]},{"channel":"edge12","coefficient":1,"kind":"side","node":22852,"targets":[1601,1602]},{"channel":"edge12","coefficient":1,"kind":"side","node":22884,"targets":[1604,1607]},{"channel":"edge12","coefficient":1,"kind":"side","node":22852,"targets":[1605,1606]},{"channel":"u01","coefficient":1,"kind":"side","node":25076,"targets":[1600]},{"channel":"w02","coefficient":1,"kind":"side","node":25080,"targets":[1600]},{"channel":"partner","coefficient":1,"kind":"side","node":1603,"targets":[1600]},{"channel":"u01","coefficient":1,"kind":"side","node":25076,"targets":[1601]},{"channel":"w02","coefficient":1,"kind":"side","node":25081,"targets":[1601]},{"channel":"partner","coefficient":1,"kind":"side","node":1602,"targets":[1601]},{"channel":"u01","coefficient":1,"kind":"side","node":25077,"targets":[1602]},{"channel":"w02","coefficient":1,"kind":"side","node":25080,"targets":[1602]},{"channel":"partner","coefficient":1,"kind":"side","node":1601,"targets":[1602]},{"channel":"u01","coefficient":1,"kind":"side","node":25077,"targets":[1603]},{"channel":"w02","coefficient":1,"kind":"side","node":25081,"targets":[1603]},{"channel":"partner","coefficient":1,"kind":"side","node":1600,"targets":[1603]},{"channel":"u01","coefficient":1,"kind":"side","node":25078,"targets":[1604]},{"channel":"w02","coefficient":1,"kind":"side","node":25082,"targets":[1604]},{"channel":"partner","coefficient":1,"kind":"side","node":1607,"targets":[1604]},{"channel":"u01","coefficient":1,"kind":"side","node":25078,"targets":[1605]},{"channel":"w02","coefficient":1,"kind":"side","node":25083,"targets":[1605]},{"channel":"partner","coefficient":1,"kind":"side","node":1606,"targets":[1605]},{"channel":"u01","coefficient":1,"kind":"side","node":25079,"targets":[1606]},{"channel":"w02","coefficient":1,"kind":"side","node":25082,"targets":[1606]},{"channel":"partner","coefficient":1,"kind":"side","node":1605,"targets":[1606]},{"channel":"u01","coefficient":1,"kind":"side","node":25079,"targets":[1607]},{"channel":"w02","coefficient":1,"kind":"side","node":25083,"targets":[1607]},{"channel":"partner","coefficient":1,"kind":"side","node":1604,"targets":[1607]},{"channel":"face0","coefficient":1,"kind":"side","node":14117,"targets":[1608,1609,1610,1611]},{"channel":"face0","coefficient":1,"kind":"side","node":14580,"targets":[1612,1613,1614,1615]},{"channel":"edge12","coefficient":1,"kind":"side","node":22948,"targets":[1608,1611]},{"channel":"edge12","coefficient":1,"kind":"side","node":22916,"targets":[1609,1610]},{"channel":"edge12","coefficient":1,"kind":"side","node":22948,"targets":[1612,1615]},{"channel":"edge12","coefficient":1,"kind":"side","node":22916,"targets":[1613,1614]},{"channel":"u01","coefficient":1,"kind":"side","node":25084,"targets":[1608]},{"channel":"w02","coefficient":1,"kind":"side","node":25088,"targets":[1608]},{"channel":"partner","coefficient":1,"kind":"side","node":1611,"targets":[1608]},{"channel":"u01","coefficient":1,"kind":"side","node":25084,"targets":[1609]},{"channel":"w02","coefficient":1,"kind":"side","node":25089,"targets":[1609]},{"channel":"partner","coefficient":1,"kind":"side","node":1610,"targets":[1609]},{"channel":"u01","coefficient":1,"kind":"side","node":25085,"targets":[1610]},{"channel":"w02","coefficient":1,"kind":"side","node":25088,"targets":[1610]},{"channel":"partner","coefficient":1,"kind":"side","node":1609,"targets":[1610]},{"channel":"u01","coefficient":1,"kind":"side","node":25085,"targets":[1611]},{"channel":"w02","coefficient":1,"kind":"side","node":25089,"targets":[1611]},{"channel":"partner","coefficient":1,"kind":"side","node":1608,"targets":[1611]},{"channel":"u01","coefficient":1,"kind":"side","node":25086,"targets":[1612]},{"channel":"w02","coefficient":1,"kind":"side","node":25090,"targets":[1612]},{"channel":"partner","coefficient":1,"kind":"side","node":1615,"targets":[1612]},{"channel":"u01","coefficient":1,"kind":"side","node":25086,"targets":[1613]},{"channel":"w02","coefficient":1,"kind":"side","node":25091,"targets":[1613]},{"channel":"partner","coefficient":1,"kind":"side","node":1614,"targets":[1613]},{"channel":"u01","coefficient":1,"kind":"side","node":25087,"targets":[1614]},{"channel":"w02","coefficient":1,"kind":"side","node":25090,"targets":[1614]},{"channel":"partner","coefficient":1,"kind":"side","node":1613,"targets":[1614]},{"channel":"u01","coefficient":1,"kind":"side","node":25087,"targets":[1615]},{"channel":"w02","coefficient":1,"kind":"side","node":25091,"targets":[1615]},{"channel":"partner","coefficient":1,"kind":"side","node":1612,"targets":[1615]},{"channel":"face0","coefficient":1,"kind":"side","node":13863,"targets":[1616,1617,1618,1619]},{"channel":"face0","coefficient":1,"kind":"side","node":14326,"targets":[1620,1621,1622,1623]},{"channel":"edge12","coefficient":1,"kind":"side","node":23012,"targets":[1616,1619]},{"channel":"edge12","coefficient":1,"kind":"side","node":22980,"targets":[1617,1618]},{"channel":"edge12","coefficient":1,"kind":"side","node":23012,"targets":[1620,1623]},{"channel":"edge12","coefficient":1,"kind":"side","node":22980,"targets":[1621,1622]},{"channel":"u01","coefficient":1,"kind":"side","node":25092,"targets":[1616]},{"channel":"w02","coefficient":1,"kind":"side","node":25096,"targets":[1616]},{"channel":"partner","coefficient":1,"kind":"side","node":1619,"targets":[1616]},{"channel":"u01","coefficient":1,"kind":"side","node":25092,"targets":[1617]},{"channel":"w02","coefficient":1,"kind":"side","node":25097,"targets":[1617]},{"channel":"partner","coefficient":1,"kind":"side","node":1618,"targets":[1617]},{"channel":"u01","coefficient":1,"kind":"side","node":25093,"targets":[1618]},{"channel":"w02","coefficient":1,"kind":"side","node":25096,"targets":[1618]},{"channel":"partner","coefficient":1,"kind":"side","node":1617,"targets":[1618]},{"channel":"u01","coefficient":1,"kind":"side","node":25093,"targets":[1619]},{"channel":"w02","coefficient":1,"kind":"side","node":25097,"targets":[1619]},{"channel":"partner","coefficient":1,"kind":"side","node":1616,"targets":[1619]},{"channel":"u01","coefficient":1,"kind":"side","node":25094,"targets":[1620]},{"channel":"w02","coefficient":1,"kind":"side","node":25098,"targets":[1620]},{"channel":"partner","coefficient":1,"kind":"side","node":1623,"targets":[1620]},{"channel":"u01","coefficient":1,"kind":"side","node":25094,"targets":[1621]},{"channel":"w02","coefficient":1,"kind":"side","node":25099,"targets":[1621]},{"channel":"partner","coefficient":1,"kind":"side","node":1622,"targets":[1621]},{"channel":"u01","coefficient":1,"kind":"side","node":25095,"targets":[1622]},{"channel":"w02","coefficient":1,"kind":"side","node":25098,"targets":[1622]},{"channel":"partner","coefficient":1,"kind":"side","node":1621,"targets":[1622]},{"channel":"u01","coefficient":1,"kind":"side","node":25095,"targets":[1623]},{"channel":"w02","coefficient":1,"kind":"side","node":25099,"targets":[1623]},{"channel":"partner","coefficient":1,"kind":"side","node":1620,"targets":[1623]},{"channel":"face0","coefficient":1,"kind":"side","node":13965,"targets":[1624,1625,1626,1627]},{"channel":"face0","coefficient":1,"kind":"side","node":14428,"targets":[1628,1629,1630,1631]},{"channel":"edge12","coefficient":1,"kind":"side","node":23076,"targets":[1624,1627]},{"channel":"edge12","coefficient":1,"kind":"side","node":23044,"targets":[1625,1626]},{"channel":"edge12","coefficient":1,"kind":"side","node":23076,"targets":[1628,1631]},{"channel":"edge12","coefficient":1,"kind":"side","node":23044,"targets":[1629,1630]},{"channel":"u01","coefficient":1,"kind":"side","node":25100,"targets":[1624]},{"channel":"w02","coefficient":1,"kind":"side","node":25104,"targets":[1624]},{"channel":"partner","coefficient":1,"kind":"side","node":1627,"targets":[1624]},{"channel":"u01","coefficient":1,"kind":"side","node":25100,"targets":[1625]},{"channel":"w02","coefficient":1,"kind":"side","node":25105,"targets":[1625]},{"channel":"partner","coefficient":1,"kind":"side","node":1626,"targets":[1625]},{"channel":"u01","coefficient":1,"kind":"side","node":25101,"targets":[1626]},{"channel":"w02","coefficient":1,"kind":"side","node":25104,"targets":[1626]},{"channel":"partner","coefficient":1,"kind":"side","node":1625,"targets":[1626]},{"channel":"u01","coefficient":1,"kind":"side","node":25101,"targets":[1627]},{"channel":"w02","coefficient":1,"kind":"side","node":25105,"targets":[1627]},{"channel":"partner","coefficient":1,"kind":"side","node":1624,"targets":[1627]},{"channel":"u01","coefficient":1,"kind":"side","node":25102,"targets":[1628]},{"channel":"w02","coefficient":1,"kind":"side","node":25106,"targets":[1628]},{"channel":"partner","coefficient":1,"kind":"side","node":1631,"targets":[1628]},{"channel":"u01","coefficient":1,"kind":"side","node":25102,"targets":[1629]},{"channel":"w02","coefficient":1,"kind":"side","node":25107,"targets":[1629]},{"channel":"partner","coefficient":1,"kind":"side","node":1630,"targets":[1629]},{"channel":"u01","coefficient":1,"kind":"side","node":25103,"targets":[1630]},{"channel":"w02","coefficient":1,"kind":"side","node":25106,"targets":[1630]},{"channel":"partner","coefficient":1,"kind":"side","node":1629,"targets":[1630]},{"channel":"u01","coefficient":1,"kind":"side","node":25103,"targets":[1631]},{"channel":"w02","coefficient":1,"kind":"side","node":25107,"targets":[1631]},{"channel":"partner","coefficient":1,"kind":"side","node":1628,"targets":[1631]},{"channel":"face0","coefficient":1,"kind":"side","node":14111,"targets":[1632,1633,1634,1635]},{"channel":"face0","coefficient":1,"kind":"side","node":14574,"targets":[1636,1637,1638,1639]},{"channel":"edge12","coefficient":1,"kind":"side","node":23140,"targets":[1632,1635]},{"channel":"edge12","coefficient":1,"kind":"side","node":23108,"targets":[1633,1634]},{"channel":"edge12","coefficient":1,"kind":"side","node":23140,"targets":[1636,1639]},{"channel":"edge12","coefficient":1,"kind":"side","node":23108,"targets":[1637,1638]},{"channel":"u01","coefficient":1,"kind":"side","node":25108,"targets":[1632]},{"channel":"w02","coefficient":1,"kind":"side","node":25112,"targets":[1632]},{"channel":"partner","coefficient":1,"kind":"side","node":1635,"targets":[1632]},{"channel":"u01","coefficient":1,"kind":"side","node":25108,"targets":[1633]},{"channel":"w02","coefficient":1,"kind":"side","node":25113,"targets":[1633]},{"channel":"partner","coefficient":1,"kind":"side","node":1634,"targets":[1633]},{"channel":"u01","coefficient":1,"kind":"side","node":25109,"targets":[1634]},{"channel":"w02","coefficient":1,"kind":"side","node":25112,"targets":[1634]},{"channel":"partner","coefficient":1,"kind":"side","node":1633,"targets":[1634]},{"channel":"u01","coefficient":1,"kind":"side","node":25109,"targets":[1635]},{"channel":"w02","coefficient":1,"kind":"side","node":25113,"targets":[1635]},{"channel":"partner","coefficient":1,"kind":"side","node":1632,"targets":[1635]},{"channel":"u01","coefficient":1,"kind":"side","node":25110,"targets":[1636]},{"channel":"w02","coefficient":1,"kind":"side","node":25114,"targets":[1636]},{"channel":"partner","coefficient":1,"kind":"side","node":1639,"targets":[1636]},{"channel":"u01","coefficient":1,"kind":"side","node":25110,"targets":[1637]},{"channel":"w02","coefficient":1,"kind":"side","node":25115,"targets":[1637]},{"channel":"partner","coefficient":1,"kind":"side","node":1638,"targets":[1637]},{"channel":"u01","coefficient":1,"kind":"side","node":25111,"targets":[1638]},{"channel":"w02","coefficient":1,"kind":"side","node":25114,"targets":[1638]},{"channel":"partner","coefficient":1,"kind":"side","node":1637,"targets":[1638]},{"channel":"u01","coefficient":1,"kind":"side","node":25111,"targets":[1639]},{"channel":"w02","coefficient":1,"kind":"side","node":25115,"targets":[1639]},{"channel":"partner","coefficient":1,"kind":"side","node":1636,"targets":[1639]},{"channel":"face0","coefficient":1,"kind":"side","node":14067,"targets":[1640,1641,1642,1643]},{"channel":"face0","coefficient":1,"kind":"side","node":14530,"targets":[1644,1645,1646,1647]},{"channel":"edge12","coefficient":1,"kind":"side","node":23204,"targets":[1640,1643]},{"channel":"edge12","coefficient":1,"kind":"side","node":23172,"targets":[1641,1642]},{"channel":"edge12","coefficient":1,"kind":"side","node":23204,"targets":[1644,1647]},{"channel":"edge12","coefficient":1,"kind":"side","node":23172,"targets":[1645,1646]},{"channel":"u01","coefficient":1,"kind":"side","node":25116,"targets":[1640]},{"channel":"w02","coefficient":1,"kind":"side","node":25120,"targets":[1640]},{"channel":"partner","coefficient":1,"kind":"side","node":1643,"targets":[1640]},{"channel":"u01","coefficient":1,"kind":"side","node":25116,"targets":[1641]},{"channel":"w02","coefficient":1,"kind":"side","node":25121,"targets":[1641]},{"channel":"partner","coefficient":1,"kind":"side","node":1642,"targets":[1641]},{"channel":"u01","coefficient":1,"kind":"side","node":25117,"targets":[1642]},{"channel":"w02","coefficient":1,"kind":"side","node":25120,"targets":[1642]},{"channel":"partner","coefficient":1,"kind":"side","node":1641,"targets":[1642]},{"channel":"u01","coefficient":1,"kind":"side","node":25117,"targets":[1643]},{"channel":"w02","coefficient":1,"kind":"side","node":25121,"targets":[1643]},{"channel":"partner","coefficient":1,"kind":"side","node":1640,"targets":[1643]},{"channel":"u01","coefficient":1,"kind":"side","node":25118,"targets":[1644]},{"channel":"w02","coefficient":1,"kind":"side","node":25122,"targets":[1644]},{"channel":"partner","coefficient":1,"kind":"side","node":1647,"targets":[1644]},{"channel":"u01","coefficient":1,"kind":"side","node":25118,"targets":[1645]},{"channel":"w02","coefficient":1,"kind":"side","node":25123,"targets":[1645]},{"channel":"partner","coefficient":1,"kind":"side","node":1646,"targets":[1645]},{"channel":"u01","coefficient":1,"kind":"side","node":25119,"targets":[1646]},{"channel":"w02","coefficient":1,"kind":"side","node":25122,"targets":[1646]},{"channel":"partner","coefficient":1,"kind":"side","node":1645,"targets":[1646]},{"channel":"u01","coefficient":1,"kind":"side","node":25119,"targets":[1647]},{"channel":"w02","coefficient":1,"kind":"side","node":25123,"targets":[1647]},{"channel":"partner","coefficient":1,"kind":"side","node":1644,"targets":[1647]},{"channel":"face0","coefficient":1,"kind":"side","node":14114,"targets":[1648,1649,1650,1651]},{"channel":"face0","coefficient":1,"kind":"side","node":14577,"targets":[1652,1653,1654,1655]},{"channel":"edge12","coefficient":1,"kind":"side","node":23268,"targets":[1648,1651]},{"channel":"edge12","coefficient":1,"kind":"side","node":23236,"targets":[1649,1650]},{"channel":"edge12","coefficient":1,"kind":"side","node":23268,"targets":[1652,1655]},{"channel":"edge12","coefficient":1,"kind":"side","node":23236,"targets":[1653,1654]},{"channel":"u01","coefficient":1,"kind":"side","node":25124,"targets":[1648]},{"channel":"w02","coefficient":1,"kind":"side","node":25128,"targets":[1648]},{"channel":"partner","coefficient":1,"kind":"side","node":1651,"targets":[1648]},{"channel":"u01","coefficient":1,"kind":"side","node":25124,"targets":[1649]},{"channel":"w02","coefficient":1,"kind":"side","node":25129,"targets":[1649]},{"channel":"partner","coefficient":1,"kind":"side","node":1650,"targets":[1649]},{"channel":"u01","coefficient":1,"kind":"side","node":25125,"targets":[1650]},{"channel":"w02","coefficient":1,"kind":"side","node":25128,"targets":[1650]},{"channel":"partner","coefficient":1,"kind":"side","node":1649,"targets":[1650]},{"channel":"u01","coefficient":1,"kind":"side","node":25125,"targets":[1651]},{"channel":"w02","coefficient":1,"kind":"side","node":25129,"targets":[1651]},{"channel":"partner","coefficient":1,"kind":"side","node":1648,"targets":[1651]},{"channel":"u01","coefficient":1,"kind":"side","node":25126,"targets":[1652]},{"channel":"w02","coefficient":1,"kind":"side","node":25130,"targets":[1652]},{"channel":"partner","coefficient":1,"kind":"side","node":1655,"targets":[1652]},{"channel":"u01","coefficient":1,"kind":"side","node":25126,"targets":[1653]},{"channel":"w02","coefficient":1,"kind":"side","node":25131,"targets":[1653]},{"channel":"partner","coefficient":1,"kind":"side","node":1654,"targets":[1653]},{"channel":"u01","coefficient":1,"kind":"side","node":25127,"targets":[1654]},{"channel":"w02","coefficient":1,"kind":"side","node":25130,"targets":[1654]},{"channel":"partner","coefficient":1,"kind":"side","node":1653,"targets":[1654]},{"channel":"u01","coefficient":1,"kind":"side","node":25127,"targets":[1655]},{"channel":"w02","coefficient":1,"kind":"side","node":25131,"targets":[1655]},{"channel":"partner","coefficient":1,"kind":"side","node":1652,"targets":[1655]},{"channel":"face0","coefficient":1,"kind":"side","node":14150,"targets":[1656,1657,1658,1659]},{"channel":"face0","coefficient":1,"kind":"side","node":14613,"targets":[1660,1661,1662,1663]},{"channel":"edge12","coefficient":1,"kind":"side","node":23332,"targets":[1656,1659]},{"channel":"edge12","coefficient":1,"kind":"side","node":23300,"targets":[1657,1658]},{"channel":"edge12","coefficient":1,"kind":"side","node":23332,"targets":[1660,1663]},{"channel":"edge12","coefficient":1,"kind":"side","node":23300,"targets":[1661,1662]},{"channel":"u01","coefficient":1,"kind":"side","node":25132,"targets":[1656]},{"channel":"w02","coefficient":1,"kind":"side","node":25136,"targets":[1656]},{"channel":"partner","coefficient":1,"kind":"side","node":1659,"targets":[1656]},{"channel":"u01","coefficient":1,"kind":"side","node":25132,"targets":[1657]},{"channel":"w02","coefficient":1,"kind":"side","node":25137,"targets":[1657]},{"channel":"partner","coefficient":1,"kind":"side","node":1658,"targets":[1657]},{"channel":"u01","coefficient":1,"kind":"side","node":25133,"targets":[1658]},{"channel":"w02","coefficient":1,"kind":"side","node":25136,"targets":[1658]},{"channel":"partner","coefficient":1,"kind":"side","node":1657,"targets":[1658]},{"channel":"u01","coefficient":1,"kind":"side","node":25133,"targets":[1659]},{"channel":"w02","coefficient":1,"kind":"side","node":25137,"targets":[1659]},{"channel":"partner","coefficient":1,"kind":"side","node":1656,"targets":[1659]},{"channel":"u01","coefficient":1,"kind":"side","node":25134,"targets":[1660]},{"channel":"w02","coefficient":1,"kind":"side","node":25138,"targets":[1660]},{"channel":"partner","coefficient":1,"kind":"side","node":1663,"targets":[1660]},{"channel":"u01","coefficient":1,"kind":"side","node":25134,"targets":[1661]},{"channel":"w02","coefficient":1,"kind":"side","node":25139,"targets":[1661]},{"channel":"partner","coefficient":1,"kind":"side","node":1662,"targets":[1661]},{"channel":"u01","coefficient":1,"kind":"side","node":25135,"targets":[1662]},{"channel":"w02","coefficient":1,"kind":"side","node":25138,"targets":[1662]},{"channel":"partner","coefficient":1,"kind":"side","node":1661,"targets":[1662]},{"channel":"u01","coefficient":1,"kind":"side","node":25135,"targets":[1663]},{"channel":"w02","coefficient":1,"kind":"side","node":25139,"targets":[1663]},{"channel":"partner","coefficient":1,"kind":"side","node":1660,"targets":[1663]},{"channel":"face0","coefficient":1,"kind":"side","node":14064,"targets":[1664,1665,1666,1667]},{"channel":"face0","coefficient":1,"kind":"side","node":14527,"targets":[1668,1669,1670,1671]},{"channel":"edge12","coefficient":1,"kind":"side","node":23396,"targets":[1664,1667]},{"channel":"edge12","coefficient":1,"kind":"side","node":23364,"targets":[1665,1666]},{"channel":"edge12","coefficient":1,"kind":"side","node":23396,"targets":[1668,1671]},{"channel":"edge12","coefficient":1,"kind":"side","node":23364,"targets":[1669,1670]},{"channel":"u01","coefficient":1,"kind":"side","node":25140,"targets":[1664]},{"channel":"w02","coefficient":1,"kind":"side","node":25144,"targets":[1664]},{"channel":"partner","coefficient":1,"kind":"side","node":1667,"targets":[1664]},{"channel":"u01","coefficient":1,"kind":"side","node":25140,"targets":[1665]},{"channel":"w02","coefficient":1,"kind":"side","node":25145,"targets":[1665]},{"channel":"partner","coefficient":1,"kind":"side","node":1666,"targets":[1665]},{"channel":"u01","coefficient":1,"kind":"side","node":25141,"targets":[1666]},{"channel":"w02","coefficient":1,"kind":"side","node":25144,"targets":[1666]},{"channel":"partner","coefficient":1,"kind":"side","node":1665,"targets":[1666]},{"channel":"u01","coefficient":1,"kind":"side","node":25141,"targets":[1667]},{"channel":"w02","coefficient":1,"kind":"side","node":25145,"targets":[1667]},{"channel":"partner","coefficient":1,"kind":"side","node":1664,"targets":[1667]},{"channel":"u01","coefficient":1,"kind":"side","node":25142,"targets":[1668]},{"channel":"w02","coefficient":1,"kind":"side","node":25146,"targets":[1668]},{"channel":"partner","coefficient":1,"kind":"side","node":1671,"targets":[1668]},{"channel":"u01","coefficient":1,"kind":"side","node":25142,"targets":[1669]},{"channel":"w02","coefficient":1,"kind":"side","node":25147,"targets":[1669]},{"channel":"partner","coefficient":1,"kind":"side","node":1670,"targets":[1669]},{"channel":"u01","coefficient":1,"kind":"side","node":25143,"targets":[1670]},{"channel":"w02","coefficient":1,"kind":"side","node":25146,"targets":[1670]},{"channel":"partner","coefficient":1,"kind":"side","node":1669,"targets":[1670]},{"channel":"u01","coefficient":1,"kind":"side","node":25143,"targets":[1671]},{"channel":"w02","coefficient":1,"kind":"side","node":25147,"targets":[1671]},{"channel":"partner","coefficient":1,"kind":"side","node":1668,"targets":[1671]},{"channel":"face0","coefficient":1,"kind":"side","node":13987,"targets":[1672,1673,1674,1675]},{"channel":"face0","coefficient":1,"kind":"side","node":14450,"targets":[1676,1677,1678,1679]},{"channel":"edge12","coefficient":1,"kind":"side","node":23460,"targets":[1672,1675]},{"channel":"edge12","coefficient":1,"kind":"side","node":23428,"targets":[1673,1674]},{"channel":"edge12","coefficient":1,"kind":"side","node":23460,"targets":[1676,1679]},{"channel":"edge12","coefficient":1,"kind":"side","node":23428,"targets":[1677,1678]},{"channel":"u01","coefficient":1,"kind":"side","node":25148,"targets":[1672]},{"channel":"w02","coefficient":1,"kind":"side","node":25152,"targets":[1672]},{"channel":"partner","coefficient":1,"kind":"side","node":1675,"targets":[1672]},{"channel":"u01","coefficient":1,"kind":"side","node":25148,"targets":[1673]},{"channel":"w02","coefficient":1,"kind":"side","node":25153,"targets":[1673]},{"channel":"partner","coefficient":1,"kind":"side","node":1674,"targets":[1673]},{"channel":"u01","coefficient":1,"kind":"side","node":25149,"targets":[1674]},{"channel":"w02","coefficient":1,"kind":"side","node":25152,"targets":[1674]},{"channel":"partner","coefficient":1,"kind":"side","node":1673,"targets":[1674]},{"channel":"u01","coefficient":1,"kind":"side","node":25149,"targets":[1675]},{"channel":"w02","coefficient":1,"kind":"side","node":25153,"targets":[1675]},{"channel":"partner","coefficient":1,"kind":"side","node":1672,"targets":[1675]},{"channel":"u01","coefficient":1,"kind":"side","node":25150,"targets":[1676]},{"channel":"w02","coefficient":1,"kind":"side","node":25154,"targets":[1676]},{"channel":"partner","coefficient":1,"kind":"side","node":1679,"targets":[1676]},{"channel":"u01","coefficient":1,"kind":"side","node":25150,"targets":[1677]},{"channel":"w02","coefficient":1,"kind":"side","node":25155,"targets":[1677]},{"channel":"partner","coefficient":1,"kind":"side","node":1678,"targets":[1677]},{"channel":"u01","coefficient":1,"kind":"side","node":25151,"targets":[1678]},{"channel":"w02","coefficient":1,"kind":"side","node":25154,"targets":[1678]},{"channel":"partner","coefficient":1,"kind":"side","node":1677,"targets":[1678]},{"channel":"u01","coefficient":1,"kind":"side","node":25151,"targets":[1679]},{"channel":"w02","coefficient":1,"kind":"side","node":25155,"targets":[1679]},{"channel":"partner","coefficient":1,"kind":"side","node":1676,"targets":[1679]},{"channel":"face0","coefficient":1,"kind":"side","node":15037,"targets":[1680,1681,1682,1683]},{"channel":"face0","coefficient":1,"kind":"side","node":15500,"targets":[1684,1685,1686,1687]},{"channel":"edge12","coefficient":1,"kind":"side","node":23146,"targets":[1680,1683]},{"channel":"edge12","coefficient":1,"kind":"side","node":23114,"targets":[1681,1682]},{"channel":"edge12","coefficient":1,"kind":"side","node":23146,"targets":[1684,1687]},{"channel":"edge12","coefficient":1,"kind":"side","node":23114,"targets":[1685,1686]},{"channel":"u01","coefficient":1,"kind":"side","node":25156,"targets":[1680]},{"channel":"w02","coefficient":1,"kind":"side","node":25160,"targets":[1680]},{"channel":"partner","coefficient":1,"kind":"side","node":1683,"targets":[1680]},{"channel":"u01","coefficient":1,"kind":"side","node":25156,"targets":[1681]},{"channel":"w02","coefficient":1,"kind":"side","node":25161,"targets":[1681]},{"channel":"partner","coefficient":1,"kind":"side","node":1682,"targets":[1681]},{"channel":"u01","coefficient":1,"kind":"side","node":25157,"targets":[1682]},{"channel":"w02","coefficient":1,"kind":"side","node":25160,"targets":[1682]},{"channel":"partner","coefficient":1,"kind":"side","node":1681,"targets":[1682]},{"channel":"u01","coefficient":1,"kind":"side","node":25157,"targets":[1683]},{"channel":"w02","coefficient":1,"kind":"side","node":25161,"targets":[1683]},{"channel":"partner","coefficient":1,"kind":"side","node":1680,"targets":[1683]},{"channel":"u01","coefficient":1,"kind":"side","node":25158,"targets":[1684]},{"channel":"w02","coefficient":1,"kind":"side","node":25162,"targets":[1684]},{"channel":"partner","coefficient":1,"kind":"side","node":1687,"targets":[1684]},{"channel":"u01","coefficient":1,"kind":"side","node":25158,"targets":[1685]},{"channel":"w02","coefficient":1,"kind":"side","node":25163,"targets":[1685]},{"channel":"partner","coefficient":1,"kind":"side","node":1686,"targets":[1685]},{"channel":"u01","coefficient":1,"kind":"side","node":25159,"targets":[1686]},{"channel":"w02","coefficient":1,"kind":"side","node":25162,"targets":[1686]},{"channel":"partner","coefficient":1,"kind":"side","node":1685,"targets":[1686]},{"channel":"u01","coefficient":1,"kind":"side","node":25159,"targets":[1687]},{"channel":"w02","coefficient":1,"kind":"side","node":25163,"targets":[1687]},{"channel":"partner","coefficient":1,"kind":"side","node":1684,"targets":[1687]},{"channel":"face0","coefficient":1,"kind":"side","node":14993,"targets":[1688,1689,1690,1691]},{"channel":"face0","coefficient":1,"kind":"side","node":15456,"targets":[1692,1693,1694,1695]},{"channel":"edge12","coefficient":1,"kind":"side","node":23210,"targets":[1688,1691]},{"channel":"edge12","coefficient":1,"kind":"side","node":23178,"targets":[1689,1690]},{"channel":"edge12","coefficient":1,"kind":"side","node":23210,"targets":[1692,1695]},{"channel":"edge12","coefficient":1,"kind":"side","node":23178,"targets":[1693,1694]},{"channel":"u01","coefficient":1,"kind":"side","node":25164,"targets":[1688]},{"channel":"w02","coefficient":1,"kind":"side","node":25168,"targets":[1688]},{"channel":"partner","coefficient":1,"kind":"side","node":1691,"targets":[1688]},{"channel":"u01","coefficient":1,"kind":"side","node":25164,"targets":[1689]},{"channel":"w02","coefficient":1,"kind":"side","node":25169,"targets":[1689]},{"channel":"partner","coefficient":1,"kind":"side","node":1690,"targets":[1689]},{"channel":"u01","coefficient":1,"kind":"side","node":25165,"targets":[1690]},{"channel":"w02","coefficient":1,"kind":"side","node":25168,"targets":[1690]},{"channel":"partner","coefficient":1,"kind":"side","node":1689,"targets":[1690]},{"channel":"u01","coefficient":1,"kind":"side","node":25165,"targets":[1691]},{"channel":"w02","coefficient":1,"kind":"side","node":25169,"targets":[1691]},{"channel":"partner","coefficient":1,"kind":"side","node":1688,"targets":[1691]},{"channel":"u01","coefficient":1,"kind":"side","node":25166,"targets":[1692]},{"channel":"w02","coefficient":1,"kind":"side","node":25170,"targets":[1692]},{"channel":"partner","coefficient":1,"kind":"side","node":1695,"targets":[1692]},{"channel":"u01","coefficient":1,"kind":"side","node":25166,"targets":[1693]},{"channel":"w02","coefficient":1,"kind":"side","node":25171,"targets":[1693]},{"channel":"partner","coefficient":1,"kind":"side","node":1694,"targets":[1693]},{"channel":"u01","coefficient":1,"kind":"side","node":25167,"targets":[1694]},{"channel":"w02","coefficient":1,"kind":"side","node":25170,"targets":[1694]},{"channel":"partner","coefficient":1,"kind":"side","node":1693,"targets":[1694]},{"channel":"u01","coefficient":1,"kind":"side","node":25167,"targets":[1695]},{"channel":"w02","coefficient":1,"kind":"side","node":25171,"targets":[1695]},{"channel":"partner","coefficient":1,"kind":"side","node":1692,"targets":[1695]},{"channel":"face0","coefficient":1,"kind":"side","node":15040,"targets":[1696,1697,1698,1699]},{"channel":"face0","coefficient":1,"kind":"side","node":15503,"targets":[1700,1701,1702,1703]},{"channel":"edge12","coefficient":1,"kind":"side","node":23274,"targets":[1696,1699]},{"channel":"edge12","coefficient":1,"kind":"side","node":23242,"targets":[1697,1698]},{"channel":"edge12","coefficient":1,"kind":"side","node":23274,"targets":[1700,1703]},{"channel":"edge12","coefficient":1,"kind":"side","node":23242,"targets":[1701,1702]},{"channel":"u01","coefficient":1,"kind":"side","node":25172,"targets":[1696]},{"channel":"w02","coefficient":1,"kind":"side","node":25176,"targets":[1696]},{"channel":"partner","coefficient":1,"kind":"side","node":1699,"targets":[1696]},{"channel":"u01","coefficient":1,"kind":"side","node":25172,"targets":[1697]},{"channel":"w02","coefficient":1,"kind":"side","node":25177,"targets":[1697]},{"channel":"partner","coefficient":1,"kind":"side","node":1698,"targets":[1697]},{"channel":"u01","coefficient":1,"kind":"side","node":25173,"targets":[1698]},{"channel":"w02","coefficient":1,"kind":"side","node":25176,"targets":[1698]},{"channel":"partner","coefficient":1,"kind":"side","node":1697,"targets":[1698]},{"channel":"u01","coefficient":1,"kind":"side","node":25173,"targets":[1699]},{"channel":"w02","coefficient":1,"kind":"side","node":25177,"targets":[1699]},{"channel":"partner","coefficient":1,"kind":"side","node":1696,"targets":[1699]},{"channel":"u01","coefficient":1,"kind":"side","node":25174,"targets":[1700]},{"channel":"w02","coefficient":1,"kind":"side","node":25178,"targets":[1700]},{"channel":"partner","coefficient":1,"kind":"side","node":1703,"targets":[1700]},{"channel":"u01","coefficient":1,"kind":"side","node":25174,"targets":[1701]},{"channel":"w02","coefficient":1,"kind":"side","node":25179,"targets":[1701]},{"channel":"partner","coefficient":1,"kind":"side","node":1702,"targets":[1701]},{"channel":"u01","coefficient":1,"kind":"side","node":25175,"targets":[1702]},{"channel":"w02","coefficient":1,"kind":"side","node":25178,"targets":[1702]},{"channel":"partner","coefficient":1,"kind":"side","node":1701,"targets":[1702]},{"channel":"u01","coefficient":1,"kind":"side","node":25175,"targets":[1703]},{"channel":"w02","coefficient":1,"kind":"side","node":25179,"targets":[1703]},{"channel":"partner","coefficient":1,"kind":"side","node":1700,"targets":[1703]},{"channel":"face0","coefficient":1,"kind":"side","node":15076,"targets":[1704,1705,1706,1707]},{"channel":"face0","coefficient":1,"kind":"side","node":15539,"targets":[1708,1709,1710,1711]},{"channel":"edge12","coefficient":1,"kind":"side","node":23338,"targets":[1704,1707]},{"channel":"edge12","coefficient":1,"kind":"side","node":23306,"targets":[1705,1706]},{"channel":"edge12","coefficient":1,"kind":"side","node":23338,"targets":[1708,1711]},{"channel":"edge12","coefficient":1,"kind":"side","node":23306,"targets":[1709,1710]},{"channel":"u01","coefficient":1,"kind":"side","node":25180,"targets":[1704]},{"channel":"w02","coefficient":1,"kind":"side","node":25184,"targets":[1704]},{"channel":"partner","coefficient":1,"kind":"side","node":1707,"targets":[1704]},{"channel":"u01","coefficient":1,"kind":"side","node":25180,"targets":[1705]},{"channel":"w02","coefficient":1,"kind":"side","node":25185,"targets":[1705]},{"channel":"partner","coefficient":1,"kind":"side","node":1706,"targets":[1705]},{"channel":"u01","coefficient":1,"kind":"side","node":25181,"targets":[1706]},{"channel":"w02","coefficient":1,"kind":"side","node":25184,"targets":[1706]},{"channel":"partner","coefficient":1,"kind":"side","node":1705,"targets":[1706]},{"channel":"u01","coefficient":1,"kind":"side","node":25181,"targets":[1707]},{"channel":"w02","coefficient":1,"kind":"side","node":25185,"targets":[1707]},{"channel":"partner","coefficient":1,"kind":"side","node":1704,"targets":[1707]},{"channel":"u01","coefficient":1,"kind":"side","node":25182,"targets":[1708]},{"channel":"w02","coefficient":1,"kind":"side","node":25186,"targets":[1708]},{"channel":"partner","coefficient":1,"kind":"side","node":1711,"targets":[1708]},{"channel":"u01","coefficient":1,"kind":"side","node":25182,"targets":[1709]},{"channel":"w02","coefficient":1,"kind":"side","node":25187,"targets":[1709]},{"channel":"partner","coefficient":1,"kind":"side","node":1710,"targets":[1709]},{"channel":"u01","coefficient":1,"kind":"side","node":25183,"targets":[1710]},{"channel":"w02","coefficient":1,"kind":"side","node":25186,"targets":[1710]},{"channel":"partner","coefficient":1,"kind":"side","node":1709,"targets":[1710]},{"channel":"u01","coefficient":1,"kind":"side","node":25183,"targets":[1711]},{"channel":"w02","coefficient":1,"kind":"side","node":25187,"targets":[1711]},{"channel":"partner","coefficient":1,"kind":"side","node":1708,"targets":[1711]},{"channel":"face0","coefficient":1,"kind":"side","node":14990,"targets":[1712,1713,1714,1715]},{"channel":"face0","coefficient":1,"kind":"side","node":15453,"targets":[1716,1717,1718,1719]},{"channel":"edge12","coefficient":1,"kind":"side","node":23402,"targets":[1712,1715]},{"channel":"edge12","coefficient":1,"kind":"side","node":23370,"targets":[1713,1714]},{"channel":"edge12","coefficient":1,"kind":"side","node":23402,"targets":[1716,1719]},{"channel":"edge12","coefficient":1,"kind":"side","node":23370,"targets":[1717,1718]},{"channel":"u01","coefficient":1,"kind":"side","node":25188,"targets":[1712]},{"channel":"w02","coefficient":1,"kind":"side","node":25192,"targets":[1712]},{"channel":"partner","coefficient":1,"kind":"side","node":1715,"targets":[1712]},{"channel":"u01","coefficient":1,"kind":"side","node":25188,"targets":[1713]},{"channel":"w02","coefficient":1,"kind":"side","node":25193,"targets":[1713]},{"channel":"partner","coefficient":1,"kind":"side","node":1714,"targets":[1713]},{"channel":"u01","coefficient":1,"kind":"side","node":25189,"targets":[1714]},{"channel":"w02","coefficient":1,"kind":"side","node":25192,"targets":[1714]},{"channel":"partner","coefficient":1,"kind":"side","node":1713,"targets":[1714]},{"channel":"u01","coefficient":1,"kind":"side","node":25189,"targets":[1715]},{"channel":"w02","coefficient":1,"kind":"side","node":25193,"targets":[1715]},{"channel":"partner","coefficient":1,"kind":"side","node":1712,"targets":[1715]},{"channel":"u01","coefficient":1,"kind":"side","node":25190,"targets":[1716]},{"channel":"w02","coefficient":1,"kind":"side","node":25194,"targets":[1716]},{"channel":"partner","coefficient":1,"kind":"side","node":1719,"targets":[1716]},{"channel":"u01","coefficient":1,"kind":"side","node":25190,"targets":[1717]},{"channel":"w02","coefficient":1,"kind":"side","node":25195,"targets":[1717]},{"channel":"partner","coefficient":1,"kind":"side","node":1718,"targets":[1717]},{"channel":"u01","coefficient":1,"kind":"side","node":25191,"targets":[1718]},{"channel":"w02","coefficient":1,"kind":"side","node":25194,"targets":[1718]},{"channel":"partner","coefficient":1,"kind":"side","node":1717,"targets":[1718]},{"channel":"u01","coefficient":1,"kind":"side","node":25191,"targets":[1719]},{"channel":"w02","coefficient":1,"kind":"side","node":25195,"targets":[1719]},{"channel":"partner","coefficient":1,"kind":"side","node":1716,"targets":[1719]},{"channel":"face0","coefficient":1,"kind":"side","node":14913,"targets":[1720,1721,1722,1723]},{"channel":"face0","coefficient":1,"kind":"side","node":15376,"targets":[1724,1725,1726,1727]},{"channel":"edge12","coefficient":1,"kind":"side","node":23466,"targets":[1720,1723]},{"channel":"edge12","coefficient":1,"kind":"side","node":23434,"targets":[1721,1722]},{"channel":"edge12","coefficient":1,"kind":"side","node":23466,"targets":[1724,1727]},{"channel":"edge12","coefficient":1,"kind":"side","node":23434,"targets":[1725,1726]},{"channel":"u01","coefficient":1,"kind":"side","node":25196,"targets":[1720]},{"channel":"w02","coefficient":1,"kind":"side","node":25200,"targets":[1720]},{"channel":"partner","coefficient":1,"kind":"side","node":1723,"targets":[1720]},{"channel":"u01","coefficient":1,"kind":"side","node":25196,"targets":[1721]},{"channel":"w02","coefficient":1,"kind":"side","node":25201,"targets":[1721]},{"channel":"partner","coefficient":1,"kind":"side","node":1722,"targets":[1721]},{"channel":"u01","coefficient":1,"kind":"side","node":25197,"targets":[1722]},{"channel":"w02","coefficient":1,"kind":"side","node":25200,"targets":[1722]},{"channel":"partner","coefficient":1,"kind":"side","node":1721,"targets":[1722]},{"channel":"u01","coefficient":1,"kind":"side","node":25197,"targets":[1723]},{"channel":"w02","coefficient":1,"kind":"side","node":25201,"targets":[1723]},{"channel":"partner","coefficient":1,"kind":"side","node":1720,"targets":[1723]},{"channel":"u01","coefficient":1,"kind":"side","node":25198,"targets":[1724]},{"channel":"w02","coefficient":1,"kind":"side","node":25202,"targets":[1724]},{"channel":"partner","coefficient":1,"kind":"side","node":1727,"targets":[1724]},{"channel":"u01","coefficient":1,"kind":"side","node":25198,"targets":[1725]},{"channel":"w02","coefficient":1,"kind":"side","node":25203,"targets":[1725]},{"channel":"partner","coefficient":1,"kind":"side","node":1726,"targets":[1725]},{"channel":"u01","coefficient":1,"kind":"side","node":25199,"targets":[1726]},{"channel":"w02","coefficient":1,"kind":"side","node":25202,"targets":[1726]},{"channel":"partner","coefficient":1,"kind":"side","node":1725,"targets":[1726]},{"channel":"u01","coefficient":1,"kind":"side","node":25199,"targets":[1727]},{"channel":"w02","coefficient":1,"kind":"side","node":25203,"targets":[1727]},{"channel":"partner","coefficient":1,"kind":"side","node":1724,"targets":[1727]},{"channel":"face0","coefficient":1,"kind":"side","node":16002,"targets":[1728,1729,1730,1731]},{"channel":"face0","coefficient":1,"kind":"side","node":16465,"targets":[1732,1733,1734,1735]},{"channel":"edge12","coefficient":1,"kind":"side","node":23335,"targets":[1728,1731]},{"channel":"edge12","coefficient":1,"kind":"side","node":23303,"targets":[1729,1730]},{"channel":"edge12","coefficient":1,"kind":"side","node":23335,"targets":[1732,1735]},{"channel":"edge12","coefficient":1,"kind":"side","node":23303,"targets":[1733,1734]},{"channel":"u01","coefficient":1,"kind":"side","node":25204,"targets":[1728]},{"channel":"w02","coefficient":1,"kind":"side","node":25208,"targets":[1728]},{"channel":"partner","coefficient":1,"kind":"side","node":1731,"targets":[1728]},{"channel":"u01","coefficient":1,"kind":"side","node":25204,"targets":[1729]},{"channel":"w02","coefficient":1,"kind":"side","node":25209,"targets":[1729]},{"channel":"partner","coefficient":1,"kind":"side","node":1730,"targets":[1729]},{"channel":"u01","coefficient":1,"kind":"side","node":25205,"targets":[1730]},{"channel":"w02","coefficient":1,"kind":"side","node":25208,"targets":[1730]},{"channel":"partner","coefficient":1,"kind":"side","node":1729,"targets":[1730]},{"channel":"u01","coefficient":1,"kind":"side","node":25205,"targets":[1731]},{"channel":"w02","coefficient":1,"kind":"side","node":25209,"targets":[1731]},{"channel":"partner","coefficient":1,"kind":"side","node":1728,"targets":[1731]},{"channel":"u01","coefficient":1,"kind":"side","node":25206,"targets":[1732]},{"channel":"w02","coefficient":1,"kind":"side","node":25210,"targets":[1732]},{"channel":"partner","coefficient":1,"kind":"side","node":1735,"targets":[1732]},{"channel":"u01","coefficient":1,"kind":"side","node":25206,"targets":[1733]},{"channel":"w02","coefficient":1,"kind":"side","node":25211,"targets":[1733]},{"channel":"partner","coefficient":1,"kind":"side","node":1734,"targets":[1733]},{"channel":"u01","coefficient":1,"kind":"side","node":25207,"targets":[1734]},{"channel":"w02","coefficient":1,"kind":"side","node":25210,"targets":[1734]},{"channel":"partner","coefficient":1,"kind":"side","node":1733,"targets":[1734]},{"channel":"u01","coefficient":1,"kind":"side","node":25207,"targets":[1735]},{"channel":"w02","coefficient":1,"kind":"side","node":25211,"targets":[1735]},{"channel":"partner","coefficient":1,"kind":"side","node":1732,"targets":[1735]},{"channel":"face0","coefficient":1,"kind":"side","node":15916,"targets":[1736,1737,1738,1739]},{"channel":"face0","coefficient":1,"kind":"side","node":16379,"targets":[1740,1741,1742,1743]},{"channel":"edge12","coefficient":1,"kind":"side","node":23399,"targets":[1736,1739]},{"channel":"edge12","coefficient":1,"kind":"side","node":23367,"targets":[1737,1738]},{"channel":"edge12","coefficient":1,"kind":"side","node":23399,"targets":[1740,1743]},{"channel":"edge12","coefficient":1,"kind":"side","node":23367,"targets":[1741,1742]},{"channel":"u01","coefficient":1,"kind":"side","node":25212,"targets":[1736]},{"channel":"w02","coefficient":1,"kind":"side","node":25216,"targets":[1736]},{"channel":"partner","coefficient":1,"kind":"side","node":1739,"targets":[1736]},{"channel":"u01","coefficient":1,"kind":"side","node":25212,"targets":[1737]},{"channel":"w02","coefficient":1,"kind":"side","node":25217,"targets":[1737]},{"channel":"partner","coefficient":1,"kind":"side","node":1738,"targets":[1737]},{"channel":"u01","coefficient":1,"kind":"side","node":25213,"targets":[1738]},{"channel":"w02","coefficient":1,"kind":"side","node":25216,"targets":[1738]},{"channel":"partner","coefficient":1,"kind":"side","node":1737,"targets":[1738]},{"channel":"u01","coefficient":1,"kind":"side","node":25213,"targets":[1739]},{"channel":"w02","coefficient":1,"kind":"side","node":25217,"targets":[1739]},{"channel":"partner","coefficient":1,"kind":"side","node":1736,"targets":[1739]},{"channel":"u01","coefficient":1,"kind":"side","node":25214,"targets":[1740]},{"channel":"w02","coefficient":1,"kind":"side","node":25218,"targets":[1740]},{"channel":"partner","coefficient":1,"kind":"side","node":1743,"targets":[1740]},{"channel":"u01","coefficient":1,"kind":"side","node":25214,"targets":[1741]},{"channel":"w02","coefficient":1,"kind":"side","node":25219,"targets":[1741]},{"channel":"partner","coefficient":1,"kind":"side","node":1742,"targets":[1741]},{"channel":"u01","coefficient":1,"kind":"side","node":25215,"targets":[1742]},{"channel":"w02","coefficient":1,"kind":"side","node":25218,"targets":[1742]},{"channel":"partner","coefficient":1,"kind":"side","node":1741,"targets":[1742]},{"channel":"u01","coefficient":1,"kind":"side","node":25215,"targets":[1743]},{"channel":"w02","coefficient":1,"kind":"side","node":25219,"targets":[1743]},{"channel":"partner","coefficient":1,"kind":"side","node":1740,"targets":[1743]},{"channel":"face0","coefficient":1,"kind":"side","node":15839,"targets":[1744,1745,1746,1747]},{"channel":"face0","coefficient":1,"kind":"side","node":16302,"targets":[1748,1749,1750,1751]},{"channel":"edge12","coefficient":1,"kind":"side","node":23463,"targets":[1744,1747]},{"channel":"edge12","coefficient":1,"kind":"side","node":23431,"targets":[1745,1746]},{"channel":"edge12","coefficient":1,"kind":"side","node":23463,"targets":[1748,1751]},{"channel":"edge12","coefficient":1,"kind":"side","node":23431,"targets":[1749,1750]},{"channel":"u01","coefficient":1,"kind":"side","node":25220,"targets":[1744]},{"channel":"w02","coefficient":1,"kind":"side","node":25224,"targets":[1744]},{"channel":"partner","coefficient":1,"kind":"side","node":1747,"targets":[1744]},{"channel":"u01","coefficient":1,"kind":"side","node":25220,"targets":[1745]},{"channel":"w02","coefficient":1,"kind":"side","node":25225,"targets":[1745]},{"channel":"partner","coefficient":1,"kind":"side","node":1746,"targets":[1745]},{"channel":"u01","coefficient":1,"kind":"side","node":25221,"targets":[1746]},{"channel":"w02","coefficient":1,"kind":"side","node":25224,"targets":[1746]},{"channel":"partner","coefficient":1,"kind":"side","node":1745,"targets":[1746]},{"channel":"u01","coefficient":1,"kind":"side","node":25221,"targets":[1747]},{"channel":"w02","coefficient":1,"kind":"side","node":25225,"targets":[1747]},{"channel":"partner","coefficient":1,"kind":"side","node":1744,"targets":[1747]},{"channel":"u01","coefficient":1,"kind":"side","node":25222,"targets":[1748]},{"channel":"w02","coefficient":1,"kind":"side","node":25226,"targets":[1748]},{"channel":"partner","coefficient":1,"kind":"side","node":1751,"targets":[1748]},{"channel":"u01","coefficient":1,"kind":"side","node":25222,"targets":[1749]},{"channel":"w02","coefficient":1,"kind":"side","node":25227,"targets":[1749]},{"channel":"partner","coefficient":1,"kind":"side","node":1750,"targets":[1749]},{"channel":"u01","coefficient":1,"kind":"side","node":25223,"targets":[1750]},{"channel":"w02","coefficient":1,"kind":"side","node":25226,"targets":[1750]},{"channel":"partner","coefficient":1,"kind":"side","node":1749,"targets":[1750]},{"channel":"u01","coefficient":1,"kind":"side","node":25223,"targets":[1751]},{"channel":"w02","coefficient":1,"kind":"side","node":25227,"targets":[1751]},{"channel":"partner","coefficient":1,"kind":"side","node":1748,"targets":[1751]},{"channel":"face0","coefficient":1,"kind":"side","node":16765,"targets":[1752,1753,1754,1755]},{"channel":"face0","coefficient":1,"kind":"side","node":17228,"targets":[1756,1757,1758,1759]},{"channel":"edge12","coefficient":1,"kind":"side","node":23469,"targets":[1752,1755]},{"channel":"edge12","coefficient":1,"kind":"side","node":23437,"targets":[1753,1754]},{"channel":"edge12","coefficient":1,"kind":"side","node":23469,"targets":[1756,1759]},{"channel":"edge12","coefficient":1,"kind":"side","node":23437,"targets":[1757,1758]},{"channel":"u01","coefficient":1,"kind":"side","node":25228,"targets":[1752]},{"channel":"w02","coefficient":1,"kind":"side","node":25232,"targets":[1752]},{"channel":"partner","coefficient":1,"kind":"side","node":1755,"targets":[1752]},{"channel":"u01","coefficient":1,"kind":"side","node":25228,"targets":[1753]},{"channel":"w02","coefficient":1,"kind":"side","node":25233,"targets":[1753]},{"channel":"partner","coefficient":1,"kind":"side","node":1754,"targets":[1753]},{"channel":"u01","coefficient":1,"kind":"side","node":25229,"targets":[1754]},{"channel":"w02","coefficient":1,"kind":"side","node":25232,"targets":[1754]},{"channel":"partner","coefficient":1,"kind":"side","node":1753,"targets":[1754]},{"channel":"u01","coefficient":1,"kind":"side","node":25229,"targets":[1755]},{"channel":"w02","coefficient":1,"kind":"side","node":25233,"targets":[1755]},{"channel":"partner","coefficient":1,"kind":"side","node":1752,"targets":[1755]},{"channel":"u01","coefficient":1,"kind":"side","node":25230,"targets":[1756]},{"channel":"w02","coefficient":1,"kind":"side","node":25234,"targets":[1756]},{"channel":"partner","coefficient":1,"kind":"side","node":1759,"targets":[1756]},{"channel":"u01","coefficient":1,"kind":"side","node":25230,"targets":[1757]},{"channel":"w02","coefficient":1,"kind":"side","node":25235,"targets":[1757]},{"channel":"partner","coefficient":1,"kind":"side","node":1758,"targets":[1757]},{"channel":"u01","coefficient":1,"kind":"side","node":25231,"targets":[1758]},{"channel":"w02","coefficient":1,"kind":"side","node":25234,"targets":[1758]},{"channel":"partner","coefficient":1,"kind":"side","node":1757,"targets":[1758]},{"channel":"u01","coefficient":1,"kind":"side","node":25231,"targets":[1759]},{"channel":"w02","coefficient":1,"kind":"side","node":25235,"targets":[1759]},{"channel":"partner","coefficient":1,"kind":"side","node":1756,"targets":[1759]},{"coefficient":1,"coordinate":0,"kind":"center","node":8597,"targets":[0,1,2,3,8,9,10,11,16,17,18,19,24,25,26,27,32,33,34,35,40,41,42,43,48,49,50,51,56,57,58,59,64,65,66,67,72,73,74,75,80,81,82,83,88,89,90,91,96,97,98,99,104,105,106,107,112,113,114,115,120,121,122,123,128,129,130,131,136,137,138,139,144,145,146,147,152,153,154,155,160,161,162,163,168,169,170,171,176,177,178,179,184,185,186,187,192,193,194,195,200,201,202,203,208,209,210,211,216,217,218,219,224,225,226,227,232,233,234,235,240,241,242,243,248,249,250,251,256,257,258,259,264,265,266,267,272,273,274,275,280,281,282,283,288,289,290,291,296,297,298,299,304,305,306,307,312,313,314,315,320,321,322,323,328,329,330,331,336,337,338,339,344,345,346,347,352,353,354,355,360,361,362,363,368,369,370,371,376,377,378,379,384,385,386,387,392,393,394,395,400,401,402,403,408,409,410,411,416,417,418,419,424,425,426,427,432,433,434,435]},{"coefficient":1,"coordinate":1,"kind":"center","node":9060,"targets":[4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31,36,37,38,39,44,45,46,47,52,53,54,55,60,61,62,63,68,69,70,71,76,77,78,79,84,85,86,87,92,93,94,95,100,101,102,103,108,109,110,111,116,117,118,119,124,125,126,127,132,133,134,135,140,141,142,143,148,149,150,151,156,157,158,159,164,165,166,167,172,173,174,175,180,181,182,183,188,189,190,191,196,197,198,199,204,205,206,207,212,213,214,215,220,221,222,223,228,229,230,231,236,237,238,239,244,245,246,247,252,253,254,255,260,261,262,263,268,269,270,271,276,277,278,279,284,285,286,287,292,293,294,295,300,301,302,303,308,309,310,311,316,317,318,319,324,325,326,327,332,333,334,335,340,341,342,343,348,349,350,351,356,357,358,359,364,365,366,367,372,373,374,375,380,381,382,383,388,389,390,391,396,397,398,399,404,405,406,407,412,413,414,415,420,421,422,423,428,429,430,431,436,437,438,439]},{"coefficient":1,"coordinate":2,"kind":"center","node":9523,"targets":[0,1,4,5,8,9,12,13,16,17,20,21,24,25,28,29,32,33,36,37,40,41,44,45,48,49,52,53,56,57,60,61,64,65,68,69,72,73,76,77,440,441,442,443,448,449,450,451,456,457,458,459,464,465,466,467,472,473,474,475,480,481,482,483,488,489,490,491,496,497,498,499,504,505,506,507,512,513,514,515,520,521,522,523,528,529,530,531,536,537,538,539,544,545,546,547,552,553,554,555,560,561,562,563,568,569,570,571,576,577,578,579,584,585,586,587,592,593,594,595,600,601,602,603,608,609,610,611,616,617,618,619,624,625,626,627,632,633,634,635,640,641,642,643,648,649,650,651,656,657,658,659,664,665,666,667,672,673,674,675,680,681,682,683,688,689,690,691,696,697,698,699,704,705,706,707,712,713,714,715,720,721,722,723,728,729,730,731,736,737,738,739,744,745,746,747,752,753,754,755,760,761,762,763,768,769,770,771,776,777,778,779,784,785,786,787,792,793,794,795]},{"coefficient":1,"coordinate":3,"kind":"center","node":9986,"targets":[2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35,38,39,42,43,46,47,50,51,54,55,58,59,62,63,66,67,70,71,74,75,78,79,444,445,446,447,452,453,454,455,460,461,462,463,468,469,470,471,476,477,478,479,484,485,486,487,492,493,494,495,500,501,502,503,508,509,510,511,516,517,518,519,524,525,526,527,532,533,534,535,540,541,542,543,548,549,550,551,556,557,558,559,564,565,566,567,572,573,574,575,580,581,582,583,588,589,590,591,596,597,598,599,604,605,606,607,612,613,614,615,620,621,622,623,628,629,630,631,636,637,638,639,644,645,646,647,652,653,654,655,660,661,662,663,668,669,670,671,676,677,678,679,684,685,686,687,692,693,694,695,700,701,702,703,708,709,710,711,716,717,718,719,724,725,726,727,732,733,734,735,740,741,742,743,748,749,750,751,756,757,758,759,764,765,766,767,772,773,774,775,780,781,782,783,788,789,790,791,796,797,798,799]},{"coefficient":1,"coordinate":4,"kind":"center","node":10449,"targets":[0,2,4,6,80,81,84,85,88,89,92,93,96,97,100,101,104,105,108,109,112,113,116,117,120,121,124,125,128,129,132,133,136,137,140,141,144,145,148,149,440,441,444,445,448,449,452,453,456,457,460,461,464,465,468,469,472,473,476,477,480,481,484,485,488,489,492,493,496,497,500,501,504,505,508,509,800,801,802,803,808,809,810,811,816,817,818,819,824,825,826,827,832,833,834,835,840,841,842,843,848,849,850,851,856,857,858,859,864,865,866,867,872,873,874,875,880,881,882,883,888,889,890,891,896,897,898,899,904,905,906,907,912,913,914,915,920,921,922,923,928,929,930,931,936,937,938,939,944,945,946,947,952,953,954,955,960,961,962,963,968,969,970,971,976,977,978,979,984,985,986,987,992,993,994,995,1000,1001,1002,1003,1008,1009,1010,1011,1016,1017,1018,1019,1024,1025,1026,1027,1032,1033,1034,1035,1040,1041,1042,1043,1048,1049,1050,1051,1056,1057,1058,1059,1064,1065,1066,1067,1072,1073,1074,1075,1080,1081,1082,1083]},{"coefficient":1,"coordinate":5,"kind":"center","node":10912,"targets":[1,3,5,7,82,83,86,87,90,91,94,95,98,99,102,103,106,107,110,111,114,115,118,119,122,123,126,127,130,131,134,135,138,139,142,143,146,147,150,151,442,443,446,447,450,451,454,455,458,459,462,463,466,467,470,471,474,475,478,479,482,483,486,487,490,491,494,495,498,499,502,503,506,507,510,511,804,805,806,807,812,813,814,815,820,821,822,823,828,829,830,831,836,837,838,839,844,845,846,847,852,853,854,855,860,861,862,863,868,869,870,871,876,877,878,879,884,885,886,887,892,893,894,895,900,901,902,903,908,909,910,911,916,917,918,919,924,925,926,927,932,933,934,935,940,941,942,943,948,949,950,951,956,957,958,959,964,965,966,967,972,973,974,975,980,981,982,983,988,989,990,991,996,997,998,999,1004,1005,1006,1007,1012,1013,1014,1015,1020,1021,1022,1023,1028,1029,1030,1031,1036,1037,1038,1039,1044,1045,1046,1047,1052,1053,1054,1055,1060,1061,1062,1063,1068,1069,1070,1071,1076,1077,1078,1079,1084,1085,1086,1087]},{"coefficient":1,"coordinate":6,"kind":"center","node":11375,"targets":[8,10,12,14,80,82,84,86,152,153,156,157,160,161,164,165,168,169,172,173,176,177,180,181,184,185,188,189,192,193,196,197,200,201,204,205,208,209,212,213,440,442,444,446,512,513,516,517,520,521,524,525,528,529,532,533,536,537,540,541,544,545,548,549,552,553,556,557,560,561,564,565,568,569,572,573,800,801,804,805,808,809,812,813,816,817,820,821,824,825,828,829,832,833,836,837,840,841,844,845,848,849,852,853,856,857,860,861,1088,1089,1090,1091,1096,1097,1098,1099,1104,1105,1106,1107,1112,1113,1114,1115,1120,1121,1122,1123,1128,1129,1130,1131,1136,1137,1138,1139,1144,1145,1146,1147,1152,1153,1154,1155,1160,1161,1162,1163,1168,1169,1170,1171,1176,1177,1178,1179,1184,1185,1186,1187,1192,1193,1194,1195,1200,1201,1202,1203,1208,1209,1210,1211,1216,1217,1218,1219,1224,1225,1226,1227,1232,1233,1234,1235,1240,1241,1242,1243,1248,1249,1250,1251,1256,1257,1258,1259,1264,1265,1266,1267,1272,1273,1274,1275,1280,1281,1282,1283,1288,1289,1290,1291,1296,1297,1298,1299,1304,1305,1306,1307]},{"coefficient":1,"coordinate":7,"kind":"center","node":11838,"targets":[9,11,13,15,81,83,85,87,154,155,158,159,162,163,166,167,170,171,174,175,178,179,182,183,186,187,190,191,194,195,198,199,202,203,206,207,210,211,214,215,441,443,445,447,514,515,518,519,522,523,526,527,530,531,534,535,538,539,542,543,546,547,550,551,554,555,558,559,562,563,566,567,570,571,574,575,802,803,806,807,810,811,814,815,818,819,822,823,826,827,830,831,834,835,838,839,842,843,846,847,850,851,854,855,858,859,862,863,1092,1093,1094,1095,1100,1101,1102,1103,1108,1109,1110,1111,1116,1117,1118,1119,1124,1125,1126,1127,1132,1133,1134,1135,1140,1141,1142,1143,1148,1149,1150,1151,1156,1157,1158,1159,1164,1165,1166,1167,1172,1173,1174,1175,1180,1181,1182,1183,1188,1189,1190,1191,1196,1197,1198,1199,1204,1205,1206,1207,1212,1213,1214,1215,1220,1221,1222,1223,1228,1229,1230,1231,1236,1237,1238,1239,1244,1245,1246,1247,1252,1253,1254,1255,1260,1261,1262,1263,1268,1269,1270,1271,1276,1277,1278,1279,1284,1285,1286,1287,1292,1293,1294,1295,1300,1301,1302,1303,1308,1309,1310,1311]},{"coefficient":1,"coordinate":8,"kind":"center","node":12301,"targets":[16,18,20,22,88,90,92,94,152,154,156,158,216,217,220,221,224,225,228,229,232,233,236,237,240,241,244,245,248,249,252,253,256,257,260,261,264,265,268,269,448,450,452,454,512,514,516,518,576,577,580,581,584,585,588,589,592,593,596,597,600,601,604,605,608,609,612,613,616,617,620,621,624,625,628,629,800,802,804,806,864,865,868,869,872,873,876,877,880,881,884,885,888,889,892,893,896,897,900,901,904,905,908,909,912,913,916,917,1088,1089,1092,1093,1096,1097,1100,1101,1104,1105,1108,1109,1112,1113,1116,1117,1120,1121,1124,1125,1128,1129,1132,1133,1136,1137,1140,1141,1312,1313,1314,1315,1320,1321,1322,1323,1328,1329,1330,1331,1336,1337,1338,1339,1344,1345,1346,1347,1352,1353,1354,1355,1360,1361,1362,1363,1368,1369,1370,1371,1376,1377,1378,1379,1384,1385,1386,1387,1392,1393,1394,1395,1400,1401,1402,1403,1408,1409,1410,1411,1416,1417,1418,1419,1424,1425,1426,1427,1432,1433,1434,1435,1440,1441,1442,1443,1448,1449,1450,1451,1456,1457,1458,1459,1464,1465,1466,1467,1472,1473,1474,1475]},{"coefficient":1,"coordinate":9,"kind":"center","node":12764,"targets":[17,19,21,23,89,91,93,95,153,155,157,159,218,219,222,223,226,227,230,231,234,235,238,239,242,243,246,247,250,251,254,255,258,259,262,263,266,267,270,271,449,451,453,455,513,515,517,519,578,579,582,583,586,587,590,591,594,595,598,599,602,603,606,607,610,611,614,615,618,619,622,623,626,627,630,631,801,803,805,807,866,867,870,871,874,875,878,879,882,883,886,887,890,891,894,895,898,899,902,903,906,907,910,911,914,915,918,919,1090,1091,1094,1095,1098,1099,1102,1103,1106,1107,1110,1111,1114,1115,1118,1119,1122,1123,1126,1127,1130,1131,1134,1135,1138,1139,1142,1143,1316,1317,1318,1319,1324,1325,1326,1327,1332,1333,1334,1335,1340,1341,1342,1343,1348,1349,1350,1351,1356,1357,1358,1359,1364,1365,1366,1367,1372,1373,1374,1375,1380,1381,1382,1383,1388,1389,1390,1391,1396,1397,1398,1399,1404,1405,1406,1407,1412,1413,1414,1415,1420,1421,1422,1423,1428,1429,1430,1431,1436,1437,1438,1439,1444,1445,1446,1447,1452,1453,1454,1455,1460,1461,1462,1463,1468,1469,1470,1471,1476,1477,1478,1479]},{"coefficient":1,"coordinate":10,"kind":"center","node":13227,"targets":[24,26,28,30,96,98,100,102,160,162,164,166,216,218,220,222,272,273,276,277,280,281,284,285,288,289,292,293,296,297,300,301,304,305,308,309,312,313,316,317,456,458,460,462,520,522,524,526,576,578,580,582,632,633,636,637,640,641,644,645,648,649,652,653,656,657,660,661,664,665,668,669,672,673,676,677,808,810,812,814,864,866,868,870,920,921,924,925,928,929,932,933,936,937,940,941,944,945,948,949,952,953,956,957,960,961,964,965,1088,1090,1092,1094,1144,1145,1148,1149,1152,1153,1156,1157,1160,1161,1164,1165,1168,1169,1172,1173,1176,1177,1180,1181,1184,1185,1188,1189,1312,1313,1316,1317,1320,1321,1324,1325,1328,1329,1332,1333,1336,1337,1340,1341,1344,1345,1348,1349,1352,1353,1356,1357,1480,1481,1482,1483,1488,1489,1490,1491,1496,1497,1498,1499,1504,1505,1506,1507,1512,1513,1514,1515,1520,1521,1522,1523,1528,1529,1530,1531,1536,1537,1538,1539,1544,1545,1546,1547,1552,1553,1554,1555,1560,1561,1562,1563,1568,1569,1570,1571,1576,1577,1578,1579,1584,1585,1586,1587,1592,1593,1594,1595]},{"coefficient":1,"coordinate":11,"kind":"center","node":13690,"targets":[25,27,29,31,97,99,101,103,161,163,165,167,217,219,221,223,274,275,278,279,282,283,286,287,290,291,294,295,298,299,302,303,306,307,310,311,314,315,318,319,457,459,461,463,521,523,525,527,577,579,581,583,634,635,638,639,642,643,646,647,650,651,654,655,658,659,662,663,666,667,670,671,674,675,678,679,809,811,813,815,865,867,869,871,922,923,926,927,930,931,934,935,938,939,942,943,946,947,950,951,954,955,958,959,962,963,966,967,1089,1091,1093,1095,1146,1147,1150,1151,1154,1155,1158,1159,1162,1163,1166,1167,1170,1171,1174,1175,1178,1179,1182,1183,1186,1187,1190,1191,1314,1315,1318,1319,1322,1323,1326,1327,1330,1331,1334,1335,1338,1339,1342,1343,1346,1347,1350,1351,1354,1355,1358,1359,1484,1485,1486,1487,1492,1493,1494,1495,1500,1501,1502,1503,1508,1509,1510,1511,1516,1517,1518,1519,1524,1525,1526,1527,1532,1533,1534,1535,1540,1541,1542,1543,1548,1549,1550,1551,1556,1557,1558,1559,1564,1565,1566,1567,1572,1573,1574,1575,1580,1581,1582,1583,1588,1589,1590,1591,1596,1597,1598,1599]},{"coefficient":1,"coordinate":12,"kind":"center","node":14153,"targets":[32,34,36,38,104,106,108,110,168,170,172,174,224,226,228,230,272,274,276,278,320,321,324,325,328,329,332,333,336,337,340,341,344,345,348,349,352,353,356,357,464,466,468,470,528,530,532,534,584,586,588,590,632,634,636,638,680,681,684,685,688,689,692,693,696,697,700,701,704,705,708,709,712,713,716,717,816,818,820,822,872,874,876,878,920,922,924,926,968,969,972,973,976,977,980,981,984,985,988,989,992,993,996,997,1000,1001,1004,1005,1096,1098,1100,1102,1144,1146,1148,1150,1192,1193,1196,1197,1200,1201,1204,1205,1208,1209,1212,1213,1216,1217,1220,1221,1224,1225,1228,1229,1312,1314,1316,1318,1360,1361,1364,1365,1368,1369,1372,1373,1376,1377,1380,1381,1384,1385,1388,1389,1392,1393,1396,1397,1480,1481,1484,1485,1488,1489,1492,1493,1496,1497,1500,1501,1504,1505,1508,1509,1512,1513,1516,1517,1600,1601,1602,1603,1608,1609,1610,1611,1616,1617,1618,1619,1624,1625,1626,1627,1632,1633,1634,1635,1640,1641,1642,1643,1648,1649,1650,1651,1656,1657,1658,1659,1664,1665,1666,1667,1672,1673,1674,1675]},{"coefficient":1,"coordinate":13,"kind":"center","node":14616,"targets":[33,35,37,39,105,107,109,111,169,171,173,175,225,227,229,231,273,275,277,279,322,323,326,327,330,331,334,335,338,339,342,343,346,347,350,351,354,355,358,359,465,467,469,471,529,531,533,535,585,587,589,591,633,635,637,639,682,683,686,687,690,691,694,695,698,699,702,703,706,707,710,711,714,715,718,719,817,819,821,823,873,875,877,879,921,923,925,927,970,971,974,975,978,979,982,983,986,987,990,991,994,995,998,999,1002,1003,1006,1007,1097,1099,1101,1103,1145,1147,1149,1151,1194,1195,1198,1199,1202,1203,1206,1207,1210,1211,1214,1215,1218,1219,1222,1223,1226,1227,1230,1231,1313,1315,1317,1319,1362,1363,1366,1367,1370,1371,1374,1375,1378,1379,1382,1383,1386,1387,1390,1391,1394,1395,1398,1399,1482,1483,1486,1487,1490,1491,1494,1495,1498,1499,1502,1503,1506,1507,1510,1511,1514,1515,1518,1519,1604,1605,1606,1607,1612,1613,1614,1615,1620,1621,1622,1623,1628,1629,1630,1631,1636,1637,1638,1639,1644,1645,1646,1647,1652,1653,1654,1655,1660,1661,1662,1663,1668,1669,1670,1671,1676,1677,1678,1679]},{"coefficient":1,"coordinate":14,"kind":"center","node":15079,"targets":[40,42,44,46,112,114,116,118,176,178,180,182,232,234,236,238,280,282,284,286,320,322,324,326,360,361,364,365,368,369,372,373,376,377,380,381,384,385,388,389,472,474,476,478,536,538,540,542,592,594,596,598,640,642,644,646,680,682,684,686,720,721,724,725,728,729,732,733,736,737,740,741,744,745,748,749,824,826,828,830,880,882,884,886,928,930,932,934,968,970,972,974,1008,1009,1012,1013,1016,1017,1020,1021,1024,1025,1028,1029,1032,1033,1036,1037,1104,1106,1108,1110,1152,1154,1156,1158,1192,1194,1196,1198,1232,1233,1236,1237,1240,1241,1244,1245,1248,1249,1252,1253,1256,1257,1260,1261,1320,1322,1324,1326,1360,1362,1364,1366,1400,1401,1404,1405,1408,1409,1412,1413,1416,1417,1420,1421,1424,1425,1428,1429,1480,1482,1484,1486,1520,1521,1524,1525,1528,1529,1532,1533,1536,1537,1540,1541,1544,1545,1548,1549,1600,1601,1604,1605,1608,1609,1612,1613,1616,1617,1620,1621,1624,1625,1628,1629,1680,1681,1682,1683,1688,1689,1690,1691,1696,1697,1698,1699,1704,1705,1706,1707,1712,1713,1714,1715,1720,1721,1722,1723]},{"coefficient":1,"coordinate":15,"kind":"center","node":15542,"targets":[41,43,45,47,113,115,117,119,177,179,181,183,233,235,237,239,281,283,285,287,321,323,325,327,362,363,366,367,370,371,374,375,378,379,382,383,386,387,390,391,473,475,477,479,537,539,541,543,593,595,597,599,641,643,645,647,681,683,685,687,722,723,726,727,730,731,734,735,738,739,742,743,746,747,750,751,825,827,829,831,881,883,885,887,929,931,933,935,969,971,973,975,1010,1011,1014,1015,1018,1019,1022,1023,1026,1027,1030,1031,1034,1035,1038,1039,1105,1107,1109,1111,1153,1155,1157,1159,1193,1195,1197,1199,1234,1235,1238,1239,1242,1243,1246,1247,1250,1251,1254,1255,1258,1259,1262,1263,1321,1323,1325,1327,1361,1363,1365,1367,1402,1403,1406,1407,1410,1411,1414,1415,1418,1419,1422,1423,1426,1427,1430,1431,1481,1483,1485,1487,1522,1523,1526,1527,1530,1531,1534,1535,1538,1539,1542,1543,1546,1547,1550,1551,1602,1603,1606,1607,1610,1611,1614,1615,1618,1619,1622,1623,1626,1627,1630,1631,1684,1685,1686,1687,1692,1693,1694,1695,1700,1701,1702,1703,1708,1709,1710,1711,1716,1717,1718,1719,1724,1725,1726,1727]},{"coefficient":1,"coordinate":16,"kind":"center","node":16005,"targets":[48,50,52,54,120,122,124,126,184,186,188,190,240,242,244,246,288,290,292,294,328,330,332,334,360,362,364,366,392,393,396,397,400,401,404,405,408,409,412,413,480,482,484,486,544,546,548,550,600,602,604,606,648,650,652,654,688,690,692,694,720,722,724,726,752,753,756,757,760,761,764,765,768,769,772,773,832,834,836,838,888,890,892,894,936,938,940,942,976,978,980,982,1008,1010,1012,1014,1040,1041,1044,1045,1048,1049,1052,1053,1056,1057,1060,1061,1112,1114,1116,1118,1160,1162,1164,1166,1200,1202,1204,1206,1232,1234,1236,1238,1264,1265,1268,1269,1272,1273,1276,1277,1280,1281,1284,1285,1328,1330,1332,1334,1368,1370,1372,1374,1400,1402,1404,1406,1432,1433,1436,1437,1440,1441,1444,1445,1448,1449,1452,1453,1488,1490,1492,1494,1520,1522,1524,1526,1552,1553,1556,1557,1560,1561,1564,1565,1568,1569,1572,1573,1600,1602,1604,1606,1632,1633,1636,1637,1640,1641,1644,1645,1648,1649,1652,1653,1680,1681,1684,1685,1688,1689,1692,1693,1696,1697,1700,1701,1728,1729,1730,1731,1736,1737,1738,1739,1744,1745,1746,1747]},{"coefficient":1,"coordinate":17,"kind":"center","node":16468,"targets":[49,51,53,55,121,123,125,127,185,187,189,191,241,243,245,247,289,291,293,295,329,331,333,335,361,363,365,367,394,395,398,399,402,403,406,407,410,411,414,415,481,483,485,487,545,547,549,551,601,603,605,607,649,651,653,655,689,691,693,695,721,723,725,727,754,755,758,759,762,763,766,767,770,771,774,775,833,835,837,839,889,891,893,895,937,939,941,943,977,979,981,983,1009,1011,1013,1015,1042,1043,1046,1047,1050,1051,1054,1055,1058,1059,1062,1063,1113,1115,1117,1119,1161,1163,1165,1167,1201,1203,1205,1207,1233,1235,1237,1239,1266,1267,1270,1271,1274,1275,1278,1279,1282,1283,1286,1287,1329,1331,1333,1335,1369,1371,1373,1375,1401,1403,1405,1407,1434,1435,1438,1439,1442,1443,1446,1447,1450,1451,1454,1455,1489,1491,1493,1495,1521,1523,1525,1527,1554,1555,1558,1559,1562,1563,1566,1567,1570,1571,1574,1575,1601,1603,1605,1607,1634,1635,1638,1639,1642,1643,1646,1647,1650,1651,1654,1655,1682,1683,1686,1687,1690,1691,1694,1695,1698,1699,1702,1703,1732,1733,1734,1735,1740,1741,1742,1743,1748,1749,1750,1751]},{"coefficient":1,"coordinate":18,"kind":"center","node":16931,"targets":[56,58,60,62,128,130,132,134,192,194,196,198,248,250,252,254,296,298,300,302,336,338,340,342,368,370,372,374,392,394,396,398,416,417,420,421,424,425,428,429,488,490,492,494,552,554,556,558,608,610,612,614,656,658,660,662,696,698,700,702,728,730,732,734,752,754,756,758,776,777,780,781,784,785,788,789,840,842,844,846,896,898,900,902,944,946,948,950,984,986,988,990,1016,1018,1020,1022,1040,1042,1044,1046,1064,1065,1068,1069,1072,1073,1076,1077,1120,1122,1124,1126,1168,1170,1172,1174,1208,1210,1212,1214,1240,1242,1244,1246,1264,1266,1268,1270,1288,1289,1292,1293,1296,1297,1300,1301,1336,1338,1340,1342,1376,1378,1380,1382,1408,1410,1412,1414,1432,1434,1436,1438,1456,1457,1460,1461,1464,1465,1468,1469,1496,1498,1500,1502,1528,1530,1532,1534,1552,1554,1556,1558,1576,1577,1580,1581,1584,1585,1588,1589,1608,1610,1612,1614,1632,1634,1636,1638,1656,1657,1660,1661,1664,1665,1668,1669,1680,1682,1684,1686,1704,1705,1708,1709,1712,1713,1716,1717,1728,1729,1732,1733,1736,1737,1740,1741,1752,1753,1754,1755]},{"coefficient":1,"coordinate":19,"kind":"center","node":17394,"targets":[57,59,61,63,129,131,133,135,193,195,197,199,249,251,253,255,297,299,301,303,337,339,341,343,369,371,373,375,393,395,397,399,418,419,422,423,426,427,430,431,489,491,493,495,553,555,557,559,609,611,613,615,657,659,661,663,697,699,701,703,729,731,733,735,753,755,757,759,778,779,782,783,786,787,790,791,841,843,845,847,897,899,901,903,945,947,949,951,985,987,989,991,1017,1019,1021,1023,1041,1043,1045,1047,1066,1067,1070,1071,1074,1075,1078,1079,1121,1123,1125,1127,1169,1171,1173,1175,1209,1211,1213,1215,1241,1243,1245,1247,1265,1267,1269,1271,1290,1291,1294,1295,1298,1299,1302,1303,1337,1339,1341,1343,1377,1379,1381,1383,1409,1411,1413,1415,1433,1435,1437,1439,1458,1459,1462,1463,1466,1467,1470,1471,1497,1499,1501,1503,1529,1531,1533,1535,1553,1555,1557,1559,1578,1579,1582,1583,1586,1587,1590,1591,1609,1611,1613,1615,1633,1635,1637,1639,1658,1659,1662,1663,1666,1667,1670,1671,1681,1683,1685,1687,1706,1707,1710,1711,1714,1715,1718,1719,1730,1731,1734,1735,1738,1739,1742,1743,1756,1757,1758,1759]},{"coefficient":1,"coordinate":20,"kind":"center","node":17857,"targets":[64,66,68,70,136,138,140,142,200,202,204,206,256,258,260,262,304,306,308,310,344,346,348,350,376,378,380,382,400,402,404,406,416,418,420,422,432,433,436,437,496,498,500,502,560,562,564,566,616,618,620,622,664,666,668,670,704,706,708,710,736,738,740,742,760,762,764,766,776,778,780,782,792,793,796,797,848,850,852,854,904,906,908,910,952,954,956,958,992,994,996,998,1024,1026,1028,1030,1048,1050,1052,1054,1064,1066,1068,1070,1080,1081,1084,1085,1128,1130,1132,1134,1176,1178,1180,1182,1216,1218,1220,1222,1248,1250,1252,1254,1272,1274,1276,1278,1288,1290,1292,1294,1304,1305,1308,1309,1344,1346,1348,1350,1384,1386,1388,1390,1416,1418,1420,1422,1440,1442,1444,1446,1456,1458,1460,1462,1472,1473,1476,1477,1504,1506,1508,1510,1536,1538,1540,1542,1560,1562,1564,1566,1576,1578,1580,1582,1592,1593,1596,1597,1616,1618,1620,1622,1640,1642,1644,1646,1656,1658,1660,1662,1672,1673,1676,1677,1688,1690,1692,1694,1704,1706,1708,1710,1720,1721,1724,1725,1728,1730,1732,1734,1744,1745,1748,1749,1752,1753,1756,1757]},{"coefficient":1,"coordinate":21,"kind":"center","node":18320,"targets":[65,67,69,71,137,139,141,143,201,203,205,207,257,259,261,263,305,307,309,311,345,347,349,351,377,379,381,383,401,403,405,407,417,419,421,423,434,435,438,439,497,499,501,503,561,563,565,567,617,619,621,623,665,667,669,671,705,707,709,711,737,739,741,743,761,763,765,767,777,779,781,783,794,795,798,799,849,851,853,855,905,907,909,911,953,955,957,959,993,995,997,999,1025,1027,1029,1031,1049,1051,1053,1055,1065,1067,1069,1071,1082,1083,1086,1087,1129,1131,1133,1135,1177,1179,1181,1183,1217,1219,1221,1223,1249,1251,1253,1255,1273,1275,1277,1279,1289,1291,1293,1295,1306,1307,1310,1311,1345,1347,1349,1351,1385,1387,1389,1391,1417,1419,1421,1423,1441,1443,1445,1447,1457,1459,1461,1463,1474,1475,1478,1479,1505,1507,1509,1511,1537,1539,1541,1543,1561,1563,1565,1567,1577,1579,1581,1583,1594,1595,1598,1599,1617,1619,1621,1623,1641,1643,1645,1647,1657,1659,1661,1663,1674,1675,1678,1679,1689,1691,1693,1695,1705,1707,1709,1711,1722,1723,1726,1727,1729,1731,1733,1735,1746,1747,1750,1751,1754,1755,1758,1759]},{"coefficient":1,"coordinate":22,"kind":"center","node":18783,"targets":[72,74,76,78,144,146,148,150,208,210,212,214,264,266,268,270,312,314,316,318,352,354,356,358,384,386,388,390,408,410,412,414,424,426,428,430,432,434,436,438,504,506,508,510,568,570,572,574,624,626,628,630,672,674,676,678,712,714,716,718,744,746,748,750,768,770,772,774,784,786,788,790,792,794,796,798,856,858,860,862,912,914,916,918,960,962,964,966,1000,1002,1004,1006,1032,1034,1036,1038,1056,1058,1060,1062,1072,1074,1076,1078,1080,1082,1084,1086,1136,1138,1140,1142,1184,1186,1188,1190,1224,1226,1228,1230,1256,1258,1260,1262,1280,1282,1284,1286,1296,1298,1300,1302,1304,1306,1308,1310,1352,1354,1356,1358,1392,1394,1396,1398,1424,1426,1428,1430,1448,1450,1452,1454,1464,1466,1468,1470,1472,1474,1476,1478,1512,1514,1516,1518,1544,1546,1548,1550,1568,1570,1572,1574,1584,1586,1588,1590,1592,1594,1596,1598,1624,1626,1628,1630,1648,1650,1652,1654,1664,1666,1668,1670,1672,1674,1676,1678,1696,1698,1700,1702,1712,1714,1716,1718,1720,1722,1724,1726,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758]},{"coefficient":1,"coordinate":23,"kind":"center","node":19246,"targets":[73,75,77,79,145,147,149,151,209,211,213,215,265,267,269,271,313,315,317,319,353,355,357,359,385,387,389,391,409,411,413,415,425,427,429,431,433,435,437,439,505,507,509,511,569,571,573,575,625,627,629,631,673,675,677,679,713,715,717,719,745,747,749,751,769,771,773,775,785,787,789,791,793,795,797,799,857,859,861,863,913,915,917,919,961,963,965,967,1001,1003,1005,1007,1033,1035,1037,1039,1057,1059,1061,1063,1073,1075,1077,1079,1081,1083,1085,1087,1137,1139,1141,1143,1185,1187,1189,1191,1225,1227,1229,1231,1257,1259,1261,1263,1281,1283,1285,1287,1297,1299,1301,1303,1305,1307,1309,1311,1353,1355,1357,1359,1393,1395,1397,1399,1425,1427,1429,1431,1449,1451,1453,1455,1465,1467,1469,1471,1473,1475,1477,1479,1513,1515,1517,1519,1545,1547,1549,1551,1569,1571,1573,1575,1585,1587,1589,1591,1593,1595,1597,1599,1625,1627,1629,1631,1649,1651,1653,1655,1665,1667,1669,1671,1673,1675,1677,1679,1697,1699,1701,1703,1713,1715,1717,1719,1721,1723,1725,1727,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759]}],"v":1760} diff --git a/research/five-stage-gen5-banks/gen5bit/selected/bit/kchron_p12.json b/research/five-stage-gen5-banks/gen5bit/selected/bit/kchron_p12.json new file mode 100644 index 0000000000..5966c8c67a --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/selected/bit/kchron_p12.json @@ -0,0 +1 @@ +{"conventions":{"frame_ids":"frame id = id of the canonical annihilator; record \"a\" lists integer annihilator rows (frame = common kernel), record \"b\" lists integer basis rows; id 0 (empty \"a\") is the full space Q^h","gram":"G = I - J/9 on Q^h (H0 = G/2, H0(chi_S,chi_T) = (|S cap T|-1)/2); nondegeneracy tested for G","nodes":"zero-based graph nodes; nodes < v are the source leaves (port index)","ops":"[dest, control, node]: dest ^= control at the frame of node (copies: dest is the fresh role)","target_covector":"3*chi_T - 1 (target cap = {u : (3 chi_T - 1).u = 0} = H0-orthogonal complement of chi_T)"},"entries":[{"carrier":0,"carrier_chain":[94680,123566,23129,0],"carrier_ranks":[1,20,2],"deliver_after_root":5,"deliver_frame":23129,"mix_frame":123566,"passive":3,"passive_chain":[94677,123566,0],"passive_ranks":[1,22],"receivers":[5,6],"undo_frame":0},{"carrier":5,"carrier_chain":[94675,123568,23123,0],"carrier_ranks":[1,20,2],"deliver_after_root":2,"deliver_frame":23123,"mix_frame":123568,"passive":6,"passive_chain":[94674,123568,0],"passive_ranks":[1,22],"receivers":[0,3],"undo_frame":0},{"carrier":1,"carrier_chain":[94679,123570,23127,0],"carrier_ranks":[1,20,2],"deliver_after_root":4,"deliver_frame":23127,"mix_frame":123570,"passive":2,"passive_chain":[94678,123570,0],"passive_ranks":[1,22],"receivers":[4,7],"undo_frame":0},{"carrier":4,"carrier_chain":[94676,123572,23125,0],"carrier_ranks":[1,20,2],"deliver_after_root":3,"deliver_frame":23125,"mix_frame":123572,"passive":7,"passive_chain":[94673,123572,0],"passive_ranks":[1,22],"receivers":[1,2],"undo_frame":0},{"carrier":8,"carrier_chain":[94672,123574,23151,0],"carrier_ranks":[1,20,2],"deliver_after_root":35,"deliver_frame":23151,"mix_frame":123574,"passive":11,"passive_chain":[94669,123574,0],"passive_ranks":[1,22],"receivers":[13,14],"undo_frame":0},{"carrier":13,"carrier_chain":[94667,123576,23145,0],"carrier_ranks":[1,20,2],"deliver_after_root":32,"deliver_frame":23145,"mix_frame":123576,"passive":14,"passive_chain":[94666,123576,0],"passive_ranks":[1,22],"receivers":[8,11],"undo_frame":0},{"carrier":9,"carrier_chain":[94671,123578,23149,0],"carrier_ranks":[1,20,2],"deliver_after_root":34,"deliver_frame":23149,"mix_frame":123578,"passive":10,"passive_chain":[94670,123578,0],"passive_ranks":[1,22],"receivers":[12,15],"undo_frame":0},{"carrier":12,"carrier_chain":[94668,123580,23147,0],"carrier_ranks":[1,20,2],"deliver_after_root":33,"deliver_frame":23147,"mix_frame":123580,"passive":15,"passive_chain":[94665,123580,0],"passive_ranks":[1,22],"receivers":[9,10],"undo_frame":0},{"carrier":16,"carrier_chain":[94664,123582,23173,0],"carrier_ranks":[1,20,2],"deliver_after_root":65,"deliver_frame":23173,"mix_frame":123582,"passive":19,"passive_chain":[94661,123582,0],"passive_ranks":[1,22],"receivers":[21,22],"undo_frame":0},{"carrier":21,"carrier_chain":[94659,123584,23167,0],"carrier_ranks":[1,20,2],"deliver_after_root":62,"deliver_frame":23167,"mix_frame":123584,"passive":22,"passive_chain":[94658,123584,0],"passive_ranks":[1,22],"receivers":[16,19],"undo_frame":0},{"carrier":17,"carrier_chain":[94663,123586,23171,0],"carrier_ranks":[1,20,2],"deliver_after_root":64,"deliver_frame":23171,"mix_frame":123586,"passive":18,"passive_chain":[94662,123586,0],"passive_ranks":[1,22],"receivers":[20,23],"undo_frame":0},{"carrier":20,"carrier_chain":[94660,123588,23169,0],"carrier_ranks":[1,20,2],"deliver_after_root":63,"deliver_frame":23169,"mix_frame":123588,"passive":23,"passive_chain":[94657,123588,0],"passive_ranks":[1,22],"receivers":[17,18],"undo_frame":0},{"carrier":24,"carrier_chain":[94656,123590,23195,0],"carrier_ranks":[1,20,2],"deliver_after_root":95,"deliver_frame":23195,"mix_frame":123590,"passive":27,"passive_chain":[94653,123590,0],"passive_ranks":[1,22],"receivers":[29,30],"undo_frame":0},{"carrier":29,"carrier_chain":[94651,123592,23189,0],"carrier_ranks":[1,20,2],"deliver_after_root":92,"deliver_frame":23189,"mix_frame":123592,"passive":30,"passive_chain":[94650,123592,0],"passive_ranks":[1,22],"receivers":[24,27],"undo_frame":0},{"carrier":25,"carrier_chain":[94655,123594,23193,0],"carrier_ranks":[1,20,2],"deliver_after_root":94,"deliver_frame":23193,"mix_frame":123594,"passive":26,"passive_chain":[94654,123594,0],"passive_ranks":[1,22],"receivers":[28,31],"undo_frame":0},{"carrier":28,"carrier_chain":[94652,123596,23191,0],"carrier_ranks":[1,20,2],"deliver_after_root":93,"deliver_frame":23191,"mix_frame":123596,"passive":31,"passive_chain":[94649,123596,0],"passive_ranks":[1,22],"receivers":[25,26],"undo_frame":0},{"carrier":32,"carrier_chain":[94648,123598,23217,0],"carrier_ranks":[1,20,2],"deliver_after_root":125,"deliver_frame":23217,"mix_frame":123598,"passive":35,"passive_chain":[94645,123598,0],"passive_ranks":[1,22],"receivers":[37,38],"undo_frame":0},{"carrier":37,"carrier_chain":[94643,123600,23211,0],"carrier_ranks":[1,20,2],"deliver_after_root":122,"deliver_frame":23211,"mix_frame":123600,"passive":38,"passive_chain":[94642,123600,0],"passive_ranks":[1,22],"receivers":[32,35],"undo_frame":0},{"carrier":33,"carrier_chain":[94647,123602,23215,0],"carrier_ranks":[1,20,2],"deliver_after_root":124,"deliver_frame":23215,"mix_frame":123602,"passive":34,"passive_chain":[94646,123602,0],"passive_ranks":[1,22],"receivers":[36,39],"undo_frame":0},{"carrier":36,"carrier_chain":[94644,123604,23213,0],"carrier_ranks":[1,20,2],"deliver_after_root":123,"deliver_frame":23213,"mix_frame":123604,"passive":39,"passive_chain":[94641,123604,0],"passive_ranks":[1,22],"receivers":[33,34],"undo_frame":0},{"carrier":40,"carrier_chain":[94640,123606,23239,0],"carrier_ranks":[1,20,2],"deliver_after_root":155,"deliver_frame":23239,"mix_frame":123606,"passive":43,"passive_chain":[94637,123606,0],"passive_ranks":[1,22],"receivers":[45,46],"undo_frame":0},{"carrier":45,"carrier_chain":[94635,123608,23233,0],"carrier_ranks":[1,20,2],"deliver_after_root":152,"deliver_frame":23233,"mix_frame":123608,"passive":46,"passive_chain":[94634,123608,0],"passive_ranks":[1,22],"receivers":[40,43],"undo_frame":0},{"carrier":41,"carrier_chain":[94639,123610,23237,0],"carrier_ranks":[1,20,2],"deliver_after_root":154,"deliver_frame":23237,"mix_frame":123610,"passive":42,"passive_chain":[94638,123610,0],"passive_ranks":[1,22],"receivers":[44,47],"undo_frame":0},{"carrier":44,"carrier_chain":[94636,123612,23235,0],"carrier_ranks":[1,20,2],"deliver_after_root":153,"deliver_frame":23235,"mix_frame":123612,"passive":47,"passive_chain":[94633,123612,0],"passive_ranks":[1,22],"receivers":[41,42],"undo_frame":0},{"carrier":48,"carrier_chain":[94632,123614,23261,0],"carrier_ranks":[1,20,2],"deliver_after_root":185,"deliver_frame":23261,"mix_frame":123614,"passive":51,"passive_chain":[94629,123614,0],"passive_ranks":[1,22],"receivers":[53,54],"undo_frame":0},{"carrier":53,"carrier_chain":[94627,123616,23255,0],"carrier_ranks":[1,20,2],"deliver_after_root":182,"deliver_frame":23255,"mix_frame":123616,"passive":54,"passive_chain":[94626,123616,0],"passive_ranks":[1,22],"receivers":[48,51],"undo_frame":0},{"carrier":49,"carrier_chain":[94631,123618,23259,0],"carrier_ranks":[1,20,2],"deliver_after_root":184,"deliver_frame":23259,"mix_frame":123618,"passive":50,"passive_chain":[94630,123618,0],"passive_ranks":[1,22],"receivers":[52,55],"undo_frame":0},{"carrier":52,"carrier_chain":[94628,123620,23257,0],"carrier_ranks":[1,20,2],"deliver_after_root":183,"deliver_frame":23257,"mix_frame":123620,"passive":55,"passive_chain":[94625,123620,0],"passive_ranks":[1,22],"receivers":[49,50],"undo_frame":0},{"carrier":56,"carrier_chain":[94624,123622,23283,0],"carrier_ranks":[1,20,2],"deliver_after_root":215,"deliver_frame":23283,"mix_frame":123622,"passive":59,"passive_chain":[94621,123622,0],"passive_ranks":[1,22],"receivers":[61,62],"undo_frame":0},{"carrier":61,"carrier_chain":[94619,123624,23277,0],"carrier_ranks":[1,20,2],"deliver_after_root":212,"deliver_frame":23277,"mix_frame":123624,"passive":62,"passive_chain":[94618,123624,0],"passive_ranks":[1,22],"receivers":[56,59],"undo_frame":0},{"carrier":57,"carrier_chain":[94623,123626,23281,0],"carrier_ranks":[1,20,2],"deliver_after_root":214,"deliver_frame":23281,"mix_frame":123626,"passive":58,"passive_chain":[94622,123626,0],"passive_ranks":[1,22],"receivers":[60,63],"undo_frame":0},{"carrier":60,"carrier_chain":[94620,123628,23279,0],"carrier_ranks":[1,20,2],"deliver_after_root":213,"deliver_frame":23279,"mix_frame":123628,"passive":63,"passive_chain":[94617,123628,0],"passive_ranks":[1,22],"receivers":[57,58],"undo_frame":0},{"carrier":64,"carrier_chain":[94616,123630,23305,0],"carrier_ranks":[1,20,2],"deliver_after_root":245,"deliver_frame":23305,"mix_frame":123630,"passive":67,"passive_chain":[94613,123630,0],"passive_ranks":[1,22],"receivers":[69,70],"undo_frame":0},{"carrier":69,"carrier_chain":[94611,123632,23299,0],"carrier_ranks":[1,20,2],"deliver_after_root":242,"deliver_frame":23299,"mix_frame":123632,"passive":70,"passive_chain":[94610,123632,0],"passive_ranks":[1,22],"receivers":[64,67],"undo_frame":0},{"carrier":65,"carrier_chain":[94615,123634,23303,0],"carrier_ranks":[1,20,2],"deliver_after_root":244,"deliver_frame":23303,"mix_frame":123634,"passive":66,"passive_chain":[94614,123634,0],"passive_ranks":[1,22],"receivers":[68,71],"undo_frame":0},{"carrier":68,"carrier_chain":[94612,123636,23301,0],"carrier_ranks":[1,20,2],"deliver_after_root":243,"deliver_frame":23301,"mix_frame":123636,"passive":71,"passive_chain":[94609,123636,0],"passive_ranks":[1,22],"receivers":[65,66],"undo_frame":0},{"carrier":72,"carrier_chain":[94608,123638,23327,0],"carrier_ranks":[1,20,2],"deliver_after_root":275,"deliver_frame":23327,"mix_frame":123638,"passive":75,"passive_chain":[94605,123638,0],"passive_ranks":[1,22],"receivers":[77,78],"undo_frame":0},{"carrier":77,"carrier_chain":[94603,123640,23321,0],"carrier_ranks":[1,20,2],"deliver_after_root":272,"deliver_frame":23321,"mix_frame":123640,"passive":78,"passive_chain":[94602,123640,0],"passive_ranks":[1,22],"receivers":[72,75],"undo_frame":0},{"carrier":73,"carrier_chain":[94607,123642,23325,0],"carrier_ranks":[1,20,2],"deliver_after_root":274,"deliver_frame":23325,"mix_frame":123642,"passive":74,"passive_chain":[94606,123642,0],"passive_ranks":[1,22],"receivers":[76,79],"undo_frame":0},{"carrier":76,"carrier_chain":[94604,123644,23323,0],"carrier_ranks":[1,20,2],"deliver_after_root":273,"deliver_frame":23323,"mix_frame":123644,"passive":79,"passive_chain":[94601,123644,0],"passive_ranks":[1,22],"receivers":[73,74],"undo_frame":0},{"carrier":80,"carrier_chain":[94600,123646,23349,0],"carrier_ranks":[1,20,2],"deliver_after_root":305,"deliver_frame":23349,"mix_frame":123646,"passive":83,"passive_chain":[94597,123646,0],"passive_ranks":[1,22],"receivers":[85,86],"undo_frame":0},{"carrier":85,"carrier_chain":[94595,123648,23343,0],"carrier_ranks":[1,20,2],"deliver_after_root":302,"deliver_frame":23343,"mix_frame":123648,"passive":86,"passive_chain":[94594,123648,0],"passive_ranks":[1,22],"receivers":[80,83],"undo_frame":0},{"carrier":81,"carrier_chain":[94599,123650,23347,0],"carrier_ranks":[1,20,2],"deliver_after_root":304,"deliver_frame":23347,"mix_frame":123650,"passive":82,"passive_chain":[94598,123650,0],"passive_ranks":[1,22],"receivers":[84,87],"undo_frame":0},{"carrier":84,"carrier_chain":[94596,123652,23345,0],"carrier_ranks":[1,20,2],"deliver_after_root":303,"deliver_frame":23345,"mix_frame":123652,"passive":87,"passive_chain":[94593,123652,0],"passive_ranks":[1,22],"receivers":[81,82],"undo_frame":0},{"carrier":88,"carrier_chain":[94592,123654,23371,0],"carrier_ranks":[1,20,2],"deliver_after_root":335,"deliver_frame":23371,"mix_frame":123654,"passive":91,"passive_chain":[94589,123654,0],"passive_ranks":[1,22],"receivers":[93,94],"undo_frame":0},{"carrier":93,"carrier_chain":[94587,123656,23365,0],"carrier_ranks":[1,20,2],"deliver_after_root":332,"deliver_frame":23365,"mix_frame":123656,"passive":94,"passive_chain":[94586,123656,0],"passive_ranks":[1,22],"receivers":[88,91],"undo_frame":0},{"carrier":89,"carrier_chain":[94591,123658,23369,0],"carrier_ranks":[1,20,2],"deliver_after_root":334,"deliver_frame":23369,"mix_frame":123658,"passive":90,"passive_chain":[94590,123658,0],"passive_ranks":[1,22],"receivers":[92,95],"undo_frame":0},{"carrier":92,"carrier_chain":[94588,123660,23367,0],"carrier_ranks":[1,20,2],"deliver_after_root":333,"deliver_frame":23367,"mix_frame":123660,"passive":95,"passive_chain":[94585,123660,0],"passive_ranks":[1,22],"receivers":[89,90],"undo_frame":0},{"carrier":96,"carrier_chain":[94584,123662,23393,0],"carrier_ranks":[1,20,2],"deliver_after_root":365,"deliver_frame":23393,"mix_frame":123662,"passive":99,"passive_chain":[94581,123662,0],"passive_ranks":[1,22],"receivers":[101,102],"undo_frame":0},{"carrier":101,"carrier_chain":[94579,123664,23387,0],"carrier_ranks":[1,20,2],"deliver_after_root":362,"deliver_frame":23387,"mix_frame":123664,"passive":102,"passive_chain":[94578,123664,0],"passive_ranks":[1,22],"receivers":[96,99],"undo_frame":0},{"carrier":97,"carrier_chain":[94583,123666,23391,0],"carrier_ranks":[1,20,2],"deliver_after_root":364,"deliver_frame":23391,"mix_frame":123666,"passive":98,"passive_chain":[94582,123666,0],"passive_ranks":[1,22],"receivers":[100,103],"undo_frame":0},{"carrier":100,"carrier_chain":[94580,123668,23389,0],"carrier_ranks":[1,20,2],"deliver_after_root":363,"deliver_frame":23389,"mix_frame":123668,"passive":103,"passive_chain":[94577,123668,0],"passive_ranks":[1,22],"receivers":[97,98],"undo_frame":0},{"carrier":104,"carrier_chain":[94576,123670,23415,0],"carrier_ranks":[1,20,2],"deliver_after_root":395,"deliver_frame":23415,"mix_frame":123670,"passive":107,"passive_chain":[94573,123670,0],"passive_ranks":[1,22],"receivers":[109,110],"undo_frame":0},{"carrier":109,"carrier_chain":[94571,123672,23409,0],"carrier_ranks":[1,20,2],"deliver_after_root":392,"deliver_frame":23409,"mix_frame":123672,"passive":110,"passive_chain":[94570,123672,0],"passive_ranks":[1,22],"receivers":[104,107],"undo_frame":0},{"carrier":105,"carrier_chain":[94575,123674,23413,0],"carrier_ranks":[1,20,2],"deliver_after_root":394,"deliver_frame":23413,"mix_frame":123674,"passive":106,"passive_chain":[94574,123674,0],"passive_ranks":[1,22],"receivers":[108,111],"undo_frame":0},{"carrier":108,"carrier_chain":[94572,123676,23411,0],"carrier_ranks":[1,20,2],"deliver_after_root":393,"deliver_frame":23411,"mix_frame":123676,"passive":111,"passive_chain":[94569,123676,0],"passive_ranks":[1,22],"receivers":[105,106],"undo_frame":0},{"carrier":112,"carrier_chain":[94568,123678,23437,0],"carrier_ranks":[1,20,2],"deliver_after_root":425,"deliver_frame":23437,"mix_frame":123678,"passive":115,"passive_chain":[94565,123678,0],"passive_ranks":[1,22],"receivers":[117,118],"undo_frame":0},{"carrier":117,"carrier_chain":[94563,123680,23431,0],"carrier_ranks":[1,20,2],"deliver_after_root":422,"deliver_frame":23431,"mix_frame":123680,"passive":118,"passive_chain":[94562,123680,0],"passive_ranks":[1,22],"receivers":[112,115],"undo_frame":0},{"carrier":113,"carrier_chain":[94567,123682,23435,0],"carrier_ranks":[1,20,2],"deliver_after_root":424,"deliver_frame":23435,"mix_frame":123682,"passive":114,"passive_chain":[94566,123682,0],"passive_ranks":[1,22],"receivers":[116,119],"undo_frame":0},{"carrier":116,"carrier_chain":[94564,123684,23433,0],"carrier_ranks":[1,20,2],"deliver_after_root":423,"deliver_frame":23433,"mix_frame":123684,"passive":119,"passive_chain":[94561,123684,0],"passive_ranks":[1,22],"receivers":[113,114],"undo_frame":0},{"carrier":120,"carrier_chain":[94560,123686,23459,0],"carrier_ranks":[1,20,2],"deliver_after_root":455,"deliver_frame":23459,"mix_frame":123686,"passive":123,"passive_chain":[94557,123686,0],"passive_ranks":[1,22],"receivers":[125,126],"undo_frame":0},{"carrier":125,"carrier_chain":[94555,123688,23453,0],"carrier_ranks":[1,20,2],"deliver_after_root":452,"deliver_frame":23453,"mix_frame":123688,"passive":126,"passive_chain":[94554,123688,0],"passive_ranks":[1,22],"receivers":[120,123],"undo_frame":0},{"carrier":121,"carrier_chain":[94559,123690,23457,0],"carrier_ranks":[1,20,2],"deliver_after_root":454,"deliver_frame":23457,"mix_frame":123690,"passive":122,"passive_chain":[94558,123690,0],"passive_ranks":[1,22],"receivers":[124,127],"undo_frame":0},{"carrier":124,"carrier_chain":[94556,123692,23455,0],"carrier_ranks":[1,20,2],"deliver_after_root":453,"deliver_frame":23455,"mix_frame":123692,"passive":127,"passive_chain":[94553,123692,0],"passive_ranks":[1,22],"receivers":[121,122],"undo_frame":0},{"carrier":128,"carrier_chain":[94552,123694,23481,0],"carrier_ranks":[1,20,2],"deliver_after_root":485,"deliver_frame":23481,"mix_frame":123694,"passive":131,"passive_chain":[94549,123694,0],"passive_ranks":[1,22],"receivers":[133,134],"undo_frame":0},{"carrier":133,"carrier_chain":[94547,123696,23475,0],"carrier_ranks":[1,20,2],"deliver_after_root":482,"deliver_frame":23475,"mix_frame":123696,"passive":134,"passive_chain":[94546,123696,0],"passive_ranks":[1,22],"receivers":[128,131],"undo_frame":0},{"carrier":129,"carrier_chain":[94551,123698,23479,0],"carrier_ranks":[1,20,2],"deliver_after_root":484,"deliver_frame":23479,"mix_frame":123698,"passive":130,"passive_chain":[94550,123698,0],"passive_ranks":[1,22],"receivers":[132,135],"undo_frame":0},{"carrier":132,"carrier_chain":[94548,123700,23477,0],"carrier_ranks":[1,20,2],"deliver_after_root":483,"deliver_frame":23477,"mix_frame":123700,"passive":135,"passive_chain":[94545,123700,0],"passive_ranks":[1,22],"receivers":[129,130],"undo_frame":0},{"carrier":136,"carrier_chain":[94544,123702,23503,0],"carrier_ranks":[1,20,2],"deliver_after_root":515,"deliver_frame":23503,"mix_frame":123702,"passive":139,"passive_chain":[94541,123702,0],"passive_ranks":[1,22],"receivers":[141,142],"undo_frame":0},{"carrier":141,"carrier_chain":[94539,123704,23497,0],"carrier_ranks":[1,20,2],"deliver_after_root":512,"deliver_frame":23497,"mix_frame":123704,"passive":142,"passive_chain":[94538,123704,0],"passive_ranks":[1,22],"receivers":[136,139],"undo_frame":0},{"carrier":137,"carrier_chain":[94543,123706,23501,0],"carrier_ranks":[1,20,2],"deliver_after_root":514,"deliver_frame":23501,"mix_frame":123706,"passive":138,"passive_chain":[94542,123706,0],"passive_ranks":[1,22],"receivers":[140,143],"undo_frame":0},{"carrier":140,"carrier_chain":[94540,123708,23499,0],"carrier_ranks":[1,20,2],"deliver_after_root":513,"deliver_frame":23499,"mix_frame":123708,"passive":143,"passive_chain":[94537,123708,0],"passive_ranks":[1,22],"receivers":[137,138],"undo_frame":0},{"carrier":144,"carrier_chain":[94536,123710,23525,0],"carrier_ranks":[1,20,2],"deliver_after_root":545,"deliver_frame":23525,"mix_frame":123710,"passive":147,"passive_chain":[94533,123710,0],"passive_ranks":[1,22],"receivers":[149,150],"undo_frame":0},{"carrier":149,"carrier_chain":[94531,123712,23519,0],"carrier_ranks":[1,20,2],"deliver_after_root":542,"deliver_frame":23519,"mix_frame":123712,"passive":150,"passive_chain":[94530,123712,0],"passive_ranks":[1,22],"receivers":[144,147],"undo_frame":0},{"carrier":145,"carrier_chain":[94535,123714,23523,0],"carrier_ranks":[1,20,2],"deliver_after_root":544,"deliver_frame":23523,"mix_frame":123714,"passive":146,"passive_chain":[94534,123714,0],"passive_ranks":[1,22],"receivers":[148,151],"undo_frame":0},{"carrier":148,"carrier_chain":[94532,123716,23521,0],"carrier_ranks":[1,20,2],"deliver_after_root":543,"deliver_frame":23521,"mix_frame":123716,"passive":151,"passive_chain":[94529,123716,0],"passive_ranks":[1,22],"receivers":[145,146],"undo_frame":0},{"carrier":152,"carrier_chain":[94528,123718,23547,0],"carrier_ranks":[1,20,2],"deliver_after_root":575,"deliver_frame":23547,"mix_frame":123718,"passive":155,"passive_chain":[94525,123718,0],"passive_ranks":[1,22],"receivers":[157,158],"undo_frame":0},{"carrier":157,"carrier_chain":[94523,123720,23541,0],"carrier_ranks":[1,20,2],"deliver_after_root":572,"deliver_frame":23541,"mix_frame":123720,"passive":158,"passive_chain":[94522,123720,0],"passive_ranks":[1,22],"receivers":[152,155],"undo_frame":0},{"carrier":153,"carrier_chain":[94527,123722,23545,0],"carrier_ranks":[1,20,2],"deliver_after_root":574,"deliver_frame":23545,"mix_frame":123722,"passive":154,"passive_chain":[94526,123722,0],"passive_ranks":[1,22],"receivers":[156,159],"undo_frame":0},{"carrier":156,"carrier_chain":[94524,123724,23543,0],"carrier_ranks":[1,20,2],"deliver_after_root":573,"deliver_frame":23543,"mix_frame":123724,"passive":159,"passive_chain":[94521,123724,0],"passive_ranks":[1,22],"receivers":[153,154],"undo_frame":0},{"carrier":160,"carrier_chain":[94520,123726,23569,0],"carrier_ranks":[1,20,2],"deliver_after_root":605,"deliver_frame":23569,"mix_frame":123726,"passive":163,"passive_chain":[94517,123726,0],"passive_ranks":[1,22],"receivers":[165,166],"undo_frame":0},{"carrier":165,"carrier_chain":[94515,123728,23563,0],"carrier_ranks":[1,20,2],"deliver_after_root":602,"deliver_frame":23563,"mix_frame":123728,"passive":166,"passive_chain":[94514,123728,0],"passive_ranks":[1,22],"receivers":[160,163],"undo_frame":0},{"carrier":161,"carrier_chain":[94519,123730,23567,0],"carrier_ranks":[1,20,2],"deliver_after_root":604,"deliver_frame":23567,"mix_frame":123730,"passive":162,"passive_chain":[94518,123730,0],"passive_ranks":[1,22],"receivers":[164,167],"undo_frame":0},{"carrier":164,"carrier_chain":[94516,123732,23565,0],"carrier_ranks":[1,20,2],"deliver_after_root":603,"deliver_frame":23565,"mix_frame":123732,"passive":167,"passive_chain":[94513,123732,0],"passive_ranks":[1,22],"receivers":[161,162],"undo_frame":0},{"carrier":168,"carrier_chain":[94512,123734,23591,0],"carrier_ranks":[1,20,2],"deliver_after_root":635,"deliver_frame":23591,"mix_frame":123734,"passive":171,"passive_chain":[94509,123734,0],"passive_ranks":[1,22],"receivers":[173,174],"undo_frame":0},{"carrier":173,"carrier_chain":[94507,123736,23585,0],"carrier_ranks":[1,20,2],"deliver_after_root":632,"deliver_frame":23585,"mix_frame":123736,"passive":174,"passive_chain":[94506,123736,0],"passive_ranks":[1,22],"receivers":[168,171],"undo_frame":0},{"carrier":169,"carrier_chain":[94511,123738,23589,0],"carrier_ranks":[1,20,2],"deliver_after_root":634,"deliver_frame":23589,"mix_frame":123738,"passive":170,"passive_chain":[94510,123738,0],"passive_ranks":[1,22],"receivers":[172,175],"undo_frame":0},{"carrier":172,"carrier_chain":[94508,123740,23587,0],"carrier_ranks":[1,20,2],"deliver_after_root":633,"deliver_frame":23587,"mix_frame":123740,"passive":175,"passive_chain":[94505,123740,0],"passive_ranks":[1,22],"receivers":[169,170],"undo_frame":0},{"carrier":176,"carrier_chain":[94504,123742,23613,0],"carrier_ranks":[1,20,2],"deliver_after_root":665,"deliver_frame":23613,"mix_frame":123742,"passive":179,"passive_chain":[94501,123742,0],"passive_ranks":[1,22],"receivers":[181,182],"undo_frame":0},{"carrier":181,"carrier_chain":[94499,123744,23607,0],"carrier_ranks":[1,20,2],"deliver_after_root":662,"deliver_frame":23607,"mix_frame":123744,"passive":182,"passive_chain":[94498,123744,0],"passive_ranks":[1,22],"receivers":[176,179],"undo_frame":0},{"carrier":177,"carrier_chain":[94503,123746,23611,0],"carrier_ranks":[1,20,2],"deliver_after_root":664,"deliver_frame":23611,"mix_frame":123746,"passive":178,"passive_chain":[94502,123746,0],"passive_ranks":[1,22],"receivers":[180,183],"undo_frame":0},{"carrier":180,"carrier_chain":[94500,123748,23609,0],"carrier_ranks":[1,20,2],"deliver_after_root":663,"deliver_frame":23609,"mix_frame":123748,"passive":183,"passive_chain":[94497,123748,0],"passive_ranks":[1,22],"receivers":[177,178],"undo_frame":0},{"carrier":184,"carrier_chain":[94496,123750,23635,0],"carrier_ranks":[1,20,2],"deliver_after_root":695,"deliver_frame":23635,"mix_frame":123750,"passive":187,"passive_chain":[94493,123750,0],"passive_ranks":[1,22],"receivers":[189,190],"undo_frame":0},{"carrier":189,"carrier_chain":[94491,123752,23629,0],"carrier_ranks":[1,20,2],"deliver_after_root":692,"deliver_frame":23629,"mix_frame":123752,"passive":190,"passive_chain":[94490,123752,0],"passive_ranks":[1,22],"receivers":[184,187],"undo_frame":0},{"carrier":185,"carrier_chain":[94495,123754,23633,0],"carrier_ranks":[1,20,2],"deliver_after_root":694,"deliver_frame":23633,"mix_frame":123754,"passive":186,"passive_chain":[94494,123754,0],"passive_ranks":[1,22],"receivers":[188,191],"undo_frame":0},{"carrier":188,"carrier_chain":[94492,123756,23631,0],"carrier_ranks":[1,20,2],"deliver_after_root":693,"deliver_frame":23631,"mix_frame":123756,"passive":191,"passive_chain":[94489,123756,0],"passive_ranks":[1,22],"receivers":[185,186],"undo_frame":0},{"carrier":192,"carrier_chain":[94488,123758,23657,0],"carrier_ranks":[1,20,2],"deliver_after_root":725,"deliver_frame":23657,"mix_frame":123758,"passive":195,"passive_chain":[94485,123758,0],"passive_ranks":[1,22],"receivers":[197,198],"undo_frame":0},{"carrier":197,"carrier_chain":[94483,123760,23651,0],"carrier_ranks":[1,20,2],"deliver_after_root":722,"deliver_frame":23651,"mix_frame":123760,"passive":198,"passive_chain":[94482,123760,0],"passive_ranks":[1,22],"receivers":[192,195],"undo_frame":0},{"carrier":193,"carrier_chain":[94487,123762,23655,0],"carrier_ranks":[1,20,2],"deliver_after_root":724,"deliver_frame":23655,"mix_frame":123762,"passive":194,"passive_chain":[94486,123762,0],"passive_ranks":[1,22],"receivers":[196,199],"undo_frame":0},{"carrier":196,"carrier_chain":[94484,123764,23653,0],"carrier_ranks":[1,20,2],"deliver_after_root":723,"deliver_frame":23653,"mix_frame":123764,"passive":199,"passive_chain":[94481,123764,0],"passive_ranks":[1,22],"receivers":[193,194],"undo_frame":0},{"carrier":200,"carrier_chain":[94480,123766,23679,0],"carrier_ranks":[1,20,2],"deliver_after_root":755,"deliver_frame":23679,"mix_frame":123766,"passive":203,"passive_chain":[94477,123766,0],"passive_ranks":[1,22],"receivers":[205,206],"undo_frame":0},{"carrier":205,"carrier_chain":[94475,123768,23673,0],"carrier_ranks":[1,20,2],"deliver_after_root":752,"deliver_frame":23673,"mix_frame":123768,"passive":206,"passive_chain":[94474,123768,0],"passive_ranks":[1,22],"receivers":[200,203],"undo_frame":0},{"carrier":201,"carrier_chain":[94479,123770,23677,0],"carrier_ranks":[1,20,2],"deliver_after_root":754,"deliver_frame":23677,"mix_frame":123770,"passive":202,"passive_chain":[94478,123770,0],"passive_ranks":[1,22],"receivers":[204,207],"undo_frame":0},{"carrier":204,"carrier_chain":[94476,123772,23675,0],"carrier_ranks":[1,20,2],"deliver_after_root":753,"deliver_frame":23675,"mix_frame":123772,"passive":207,"passive_chain":[94473,123772,0],"passive_ranks":[1,22],"receivers":[201,202],"undo_frame":0},{"carrier":208,"carrier_chain":[94472,123774,23701,0],"carrier_ranks":[1,20,2],"deliver_after_root":785,"deliver_frame":23701,"mix_frame":123774,"passive":211,"passive_chain":[94469,123774,0],"passive_ranks":[1,22],"receivers":[213,214],"undo_frame":0},{"carrier":213,"carrier_chain":[94467,123776,23695,0],"carrier_ranks":[1,20,2],"deliver_after_root":782,"deliver_frame":23695,"mix_frame":123776,"passive":214,"passive_chain":[94466,123776,0],"passive_ranks":[1,22],"receivers":[208,211],"undo_frame":0},{"carrier":209,"carrier_chain":[94471,123778,23699,0],"carrier_ranks":[1,20,2],"deliver_after_root":784,"deliver_frame":23699,"mix_frame":123778,"passive":210,"passive_chain":[94470,123778,0],"passive_ranks":[1,22],"receivers":[212,215],"undo_frame":0},{"carrier":212,"carrier_chain":[94468,123780,23697,0],"carrier_ranks":[1,20,2],"deliver_after_root":783,"deliver_frame":23697,"mix_frame":123780,"passive":215,"passive_chain":[94465,123780,0],"passive_ranks":[1,22],"receivers":[209,210],"undo_frame":0},{"carrier":216,"carrier_chain":[94464,123782,23723,0],"carrier_ranks":[1,20,2],"deliver_after_root":815,"deliver_frame":23723,"mix_frame":123782,"passive":219,"passive_chain":[94461,123782,0],"passive_ranks":[1,22],"receivers":[221,222],"undo_frame":0},{"carrier":221,"carrier_chain":[94459,123784,23717,0],"carrier_ranks":[1,20,2],"deliver_after_root":812,"deliver_frame":23717,"mix_frame":123784,"passive":222,"passive_chain":[94458,123784,0],"passive_ranks":[1,22],"receivers":[216,219],"undo_frame":0},{"carrier":217,"carrier_chain":[94463,123786,23721,0],"carrier_ranks":[1,20,2],"deliver_after_root":814,"deliver_frame":23721,"mix_frame":123786,"passive":218,"passive_chain":[94462,123786,0],"passive_ranks":[1,22],"receivers":[220,223],"undo_frame":0},{"carrier":220,"carrier_chain":[94460,123788,23719,0],"carrier_ranks":[1,20,2],"deliver_after_root":813,"deliver_frame":23719,"mix_frame":123788,"passive":223,"passive_chain":[94457,123788,0],"passive_ranks":[1,22],"receivers":[217,218],"undo_frame":0},{"carrier":224,"carrier_chain":[94456,123790,23745,0],"carrier_ranks":[1,20,2],"deliver_after_root":845,"deliver_frame":23745,"mix_frame":123790,"passive":227,"passive_chain":[94453,123790,0],"passive_ranks":[1,22],"receivers":[229,230],"undo_frame":0},{"carrier":229,"carrier_chain":[94451,123792,23739,0],"carrier_ranks":[1,20,2],"deliver_after_root":842,"deliver_frame":23739,"mix_frame":123792,"passive":230,"passive_chain":[94450,123792,0],"passive_ranks":[1,22],"receivers":[224,227],"undo_frame":0},{"carrier":225,"carrier_chain":[94455,123794,23743,0],"carrier_ranks":[1,20,2],"deliver_after_root":844,"deliver_frame":23743,"mix_frame":123794,"passive":226,"passive_chain":[94454,123794,0],"passive_ranks":[1,22],"receivers":[228,231],"undo_frame":0},{"carrier":228,"carrier_chain":[94452,123796,23741,0],"carrier_ranks":[1,20,2],"deliver_after_root":843,"deliver_frame":23741,"mix_frame":123796,"passive":231,"passive_chain":[94449,123796,0],"passive_ranks":[1,22],"receivers":[225,226],"undo_frame":0},{"carrier":232,"carrier_chain":[94448,123798,23767,0],"carrier_ranks":[1,20,2],"deliver_after_root":875,"deliver_frame":23767,"mix_frame":123798,"passive":235,"passive_chain":[94445,123798,0],"passive_ranks":[1,22],"receivers":[237,238],"undo_frame":0},{"carrier":237,"carrier_chain":[94443,123800,23761,0],"carrier_ranks":[1,20,2],"deliver_after_root":872,"deliver_frame":23761,"mix_frame":123800,"passive":238,"passive_chain":[94442,123800,0],"passive_ranks":[1,22],"receivers":[232,235],"undo_frame":0},{"carrier":233,"carrier_chain":[94447,123802,23765,0],"carrier_ranks":[1,20,2],"deliver_after_root":874,"deliver_frame":23765,"mix_frame":123802,"passive":234,"passive_chain":[94446,123802,0],"passive_ranks":[1,22],"receivers":[236,239],"undo_frame":0},{"carrier":236,"carrier_chain":[94444,123804,23763,0],"carrier_ranks":[1,20,2],"deliver_after_root":873,"deliver_frame":23763,"mix_frame":123804,"passive":239,"passive_chain":[94441,123804,0],"passive_ranks":[1,22],"receivers":[233,234],"undo_frame":0},{"carrier":240,"carrier_chain":[94440,123806,23789,0],"carrier_ranks":[1,20,2],"deliver_after_root":905,"deliver_frame":23789,"mix_frame":123806,"passive":243,"passive_chain":[94437,123806,0],"passive_ranks":[1,22],"receivers":[245,246],"undo_frame":0},{"carrier":245,"carrier_chain":[94435,123808,23783,0],"carrier_ranks":[1,20,2],"deliver_after_root":902,"deliver_frame":23783,"mix_frame":123808,"passive":246,"passive_chain":[94434,123808,0],"passive_ranks":[1,22],"receivers":[240,243],"undo_frame":0},{"carrier":241,"carrier_chain":[94439,123810,23787,0],"carrier_ranks":[1,20,2],"deliver_after_root":904,"deliver_frame":23787,"mix_frame":123810,"passive":242,"passive_chain":[94438,123810,0],"passive_ranks":[1,22],"receivers":[244,247],"undo_frame":0},{"carrier":244,"carrier_chain":[94436,123812,23785,0],"carrier_ranks":[1,20,2],"deliver_after_root":903,"deliver_frame":23785,"mix_frame":123812,"passive":247,"passive_chain":[94433,123812,0],"passive_ranks":[1,22],"receivers":[241,242],"undo_frame":0},{"carrier":248,"carrier_chain":[94432,123814,23811,0],"carrier_ranks":[1,20,2],"deliver_after_root":935,"deliver_frame":23811,"mix_frame":123814,"passive":251,"passive_chain":[94429,123814,0],"passive_ranks":[1,22],"receivers":[253,254],"undo_frame":0},{"carrier":253,"carrier_chain":[94427,123816,23805,0],"carrier_ranks":[1,20,2],"deliver_after_root":932,"deliver_frame":23805,"mix_frame":123816,"passive":254,"passive_chain":[94426,123816,0],"passive_ranks":[1,22],"receivers":[248,251],"undo_frame":0},{"carrier":249,"carrier_chain":[94431,123818,23809,0],"carrier_ranks":[1,20,2],"deliver_after_root":934,"deliver_frame":23809,"mix_frame":123818,"passive":250,"passive_chain":[94430,123818,0],"passive_ranks":[1,22],"receivers":[252,255],"undo_frame":0},{"carrier":252,"carrier_chain":[94428,123820,23807,0],"carrier_ranks":[1,20,2],"deliver_after_root":933,"deliver_frame":23807,"mix_frame":123820,"passive":255,"passive_chain":[94425,123820,0],"passive_ranks":[1,22],"receivers":[249,250],"undo_frame":0},{"carrier":256,"carrier_chain":[94424,123822,23833,0],"carrier_ranks":[1,20,2],"deliver_after_root":965,"deliver_frame":23833,"mix_frame":123822,"passive":259,"passive_chain":[94421,123822,0],"passive_ranks":[1,22],"receivers":[261,262],"undo_frame":0},{"carrier":261,"carrier_chain":[94419,123824,23827,0],"carrier_ranks":[1,20,2],"deliver_after_root":962,"deliver_frame":23827,"mix_frame":123824,"passive":262,"passive_chain":[94418,123824,0],"passive_ranks":[1,22],"receivers":[256,259],"undo_frame":0},{"carrier":257,"carrier_chain":[94423,123826,23831,0],"carrier_ranks":[1,20,2],"deliver_after_root":964,"deliver_frame":23831,"mix_frame":123826,"passive":258,"passive_chain":[94422,123826,0],"passive_ranks":[1,22],"receivers":[260,263],"undo_frame":0},{"carrier":260,"carrier_chain":[94420,123828,23829,0],"carrier_ranks":[1,20,2],"deliver_after_root":963,"deliver_frame":23829,"mix_frame":123828,"passive":263,"passive_chain":[94417,123828,0],"passive_ranks":[1,22],"receivers":[257,258],"undo_frame":0},{"carrier":264,"carrier_chain":[94416,123830,23855,0],"carrier_ranks":[1,20,2],"deliver_after_root":995,"deliver_frame":23855,"mix_frame":123830,"passive":267,"passive_chain":[94413,123830,0],"passive_ranks":[1,22],"receivers":[269,270],"undo_frame":0},{"carrier":269,"carrier_chain":[94411,123832,23849,0],"carrier_ranks":[1,20,2],"deliver_after_root":992,"deliver_frame":23849,"mix_frame":123832,"passive":270,"passive_chain":[94410,123832,0],"passive_ranks":[1,22],"receivers":[264,267],"undo_frame":0},{"carrier":265,"carrier_chain":[94415,123834,23853,0],"carrier_ranks":[1,20,2],"deliver_after_root":994,"deliver_frame":23853,"mix_frame":123834,"passive":266,"passive_chain":[94414,123834,0],"passive_ranks":[1,22],"receivers":[268,271],"undo_frame":0},{"carrier":268,"carrier_chain":[94412,123836,23851,0],"carrier_ranks":[1,20,2],"deliver_after_root":993,"deliver_frame":23851,"mix_frame":123836,"passive":271,"passive_chain":[94409,123836,0],"passive_ranks":[1,22],"receivers":[265,266],"undo_frame":0},{"carrier":272,"carrier_chain":[94408,123838,23877,0],"carrier_ranks":[1,20,2],"deliver_after_root":1025,"deliver_frame":23877,"mix_frame":123838,"passive":275,"passive_chain":[94405,123838,0],"passive_ranks":[1,22],"receivers":[277,278],"undo_frame":0},{"carrier":277,"carrier_chain":[94403,123840,23871,0],"carrier_ranks":[1,20,2],"deliver_after_root":1022,"deliver_frame":23871,"mix_frame":123840,"passive":278,"passive_chain":[94402,123840,0],"passive_ranks":[1,22],"receivers":[272,275],"undo_frame":0},{"carrier":273,"carrier_chain":[94407,123842,23875,0],"carrier_ranks":[1,20,2],"deliver_after_root":1024,"deliver_frame":23875,"mix_frame":123842,"passive":274,"passive_chain":[94406,123842,0],"passive_ranks":[1,22],"receivers":[276,279],"undo_frame":0},{"carrier":276,"carrier_chain":[94404,123844,23873,0],"carrier_ranks":[1,20,2],"deliver_after_root":1023,"deliver_frame":23873,"mix_frame":123844,"passive":279,"passive_chain":[94401,123844,0],"passive_ranks":[1,22],"receivers":[273,274],"undo_frame":0},{"carrier":280,"carrier_chain":[94400,123846,23899,0],"carrier_ranks":[1,20,2],"deliver_after_root":1055,"deliver_frame":23899,"mix_frame":123846,"passive":283,"passive_chain":[94397,123846,0],"passive_ranks":[1,22],"receivers":[285,286],"undo_frame":0},{"carrier":285,"carrier_chain":[94395,123848,23893,0],"carrier_ranks":[1,20,2],"deliver_after_root":1052,"deliver_frame":23893,"mix_frame":123848,"passive":286,"passive_chain":[94394,123848,0],"passive_ranks":[1,22],"receivers":[280,283],"undo_frame":0},{"carrier":281,"carrier_chain":[94399,123850,23897,0],"carrier_ranks":[1,20,2],"deliver_after_root":1054,"deliver_frame":23897,"mix_frame":123850,"passive":282,"passive_chain":[94398,123850,0],"passive_ranks":[1,22],"receivers":[284,287],"undo_frame":0},{"carrier":284,"carrier_chain":[94396,123852,23895,0],"carrier_ranks":[1,20,2],"deliver_after_root":1053,"deliver_frame":23895,"mix_frame":123852,"passive":287,"passive_chain":[94393,123852,0],"passive_ranks":[1,22],"receivers":[281,282],"undo_frame":0},{"carrier":288,"carrier_chain":[94392,123854,23921,0],"carrier_ranks":[1,20,2],"deliver_after_root":1085,"deliver_frame":23921,"mix_frame":123854,"passive":291,"passive_chain":[94389,123854,0],"passive_ranks":[1,22],"receivers":[293,294],"undo_frame":0},{"carrier":293,"carrier_chain":[94387,123856,23915,0],"carrier_ranks":[1,20,2],"deliver_after_root":1082,"deliver_frame":23915,"mix_frame":123856,"passive":294,"passive_chain":[94386,123856,0],"passive_ranks":[1,22],"receivers":[288,291],"undo_frame":0},{"carrier":289,"carrier_chain":[94391,123858,23919,0],"carrier_ranks":[1,20,2],"deliver_after_root":1084,"deliver_frame":23919,"mix_frame":123858,"passive":290,"passive_chain":[94390,123858,0],"passive_ranks":[1,22],"receivers":[292,295],"undo_frame":0},{"carrier":292,"carrier_chain":[94388,123860,23917,0],"carrier_ranks":[1,20,2],"deliver_after_root":1083,"deliver_frame":23917,"mix_frame":123860,"passive":295,"passive_chain":[94385,123860,0],"passive_ranks":[1,22],"receivers":[289,290],"undo_frame":0},{"carrier":296,"carrier_chain":[94384,123862,23943,0],"carrier_ranks":[1,20,2],"deliver_after_root":1115,"deliver_frame":23943,"mix_frame":123862,"passive":299,"passive_chain":[94381,123862,0],"passive_ranks":[1,22],"receivers":[301,302],"undo_frame":0},{"carrier":301,"carrier_chain":[94379,123864,23937,0],"carrier_ranks":[1,20,2],"deliver_after_root":1112,"deliver_frame":23937,"mix_frame":123864,"passive":302,"passive_chain":[94378,123864,0],"passive_ranks":[1,22],"receivers":[296,299],"undo_frame":0},{"carrier":297,"carrier_chain":[94383,123866,23941,0],"carrier_ranks":[1,20,2],"deliver_after_root":1114,"deliver_frame":23941,"mix_frame":123866,"passive":298,"passive_chain":[94382,123866,0],"passive_ranks":[1,22],"receivers":[300,303],"undo_frame":0},{"carrier":300,"carrier_chain":[94380,123868,23939,0],"carrier_ranks":[1,20,2],"deliver_after_root":1113,"deliver_frame":23939,"mix_frame":123868,"passive":303,"passive_chain":[94377,123868,0],"passive_ranks":[1,22],"receivers":[297,298],"undo_frame":0},{"carrier":304,"carrier_chain":[94376,123870,23965,0],"carrier_ranks":[1,20,2],"deliver_after_root":1145,"deliver_frame":23965,"mix_frame":123870,"passive":307,"passive_chain":[94373,123870,0],"passive_ranks":[1,22],"receivers":[309,310],"undo_frame":0},{"carrier":309,"carrier_chain":[94371,123872,23959,0],"carrier_ranks":[1,20,2],"deliver_after_root":1142,"deliver_frame":23959,"mix_frame":123872,"passive":310,"passive_chain":[94370,123872,0],"passive_ranks":[1,22],"receivers":[304,307],"undo_frame":0},{"carrier":305,"carrier_chain":[94375,123874,23963,0],"carrier_ranks":[1,20,2],"deliver_after_root":1144,"deliver_frame":23963,"mix_frame":123874,"passive":306,"passive_chain":[94374,123874,0],"passive_ranks":[1,22],"receivers":[308,311],"undo_frame":0},{"carrier":308,"carrier_chain":[94372,123876,23961,0],"carrier_ranks":[1,20,2],"deliver_after_root":1143,"deliver_frame":23961,"mix_frame":123876,"passive":311,"passive_chain":[94369,123876,0],"passive_ranks":[1,22],"receivers":[305,306],"undo_frame":0},{"carrier":312,"carrier_chain":[94368,123878,23987,0],"carrier_ranks":[1,20,2],"deliver_after_root":1175,"deliver_frame":23987,"mix_frame":123878,"passive":315,"passive_chain":[94365,123878,0],"passive_ranks":[1,22],"receivers":[317,318],"undo_frame":0},{"carrier":317,"carrier_chain":[94363,123880,23981,0],"carrier_ranks":[1,20,2],"deliver_after_root":1172,"deliver_frame":23981,"mix_frame":123880,"passive":318,"passive_chain":[94362,123880,0],"passive_ranks":[1,22],"receivers":[312,315],"undo_frame":0},{"carrier":313,"carrier_chain":[94367,123882,23985,0],"carrier_ranks":[1,20,2],"deliver_after_root":1174,"deliver_frame":23985,"mix_frame":123882,"passive":314,"passive_chain":[94366,123882,0],"passive_ranks":[1,22],"receivers":[316,319],"undo_frame":0},{"carrier":316,"carrier_chain":[94364,123884,23983,0],"carrier_ranks":[1,20,2],"deliver_after_root":1173,"deliver_frame":23983,"mix_frame":123884,"passive":319,"passive_chain":[94361,123884,0],"passive_ranks":[1,22],"receivers":[313,314],"undo_frame":0},{"carrier":320,"carrier_chain":[94360,123886,24009,0],"carrier_ranks":[1,20,2],"deliver_after_root":1205,"deliver_frame":24009,"mix_frame":123886,"passive":323,"passive_chain":[94357,123886,0],"passive_ranks":[1,22],"receivers":[325,326],"undo_frame":0},{"carrier":325,"carrier_chain":[94355,123888,24003,0],"carrier_ranks":[1,20,2],"deliver_after_root":1202,"deliver_frame":24003,"mix_frame":123888,"passive":326,"passive_chain":[94354,123888,0],"passive_ranks":[1,22],"receivers":[320,323],"undo_frame":0},{"carrier":321,"carrier_chain":[94359,123890,24007,0],"carrier_ranks":[1,20,2],"deliver_after_root":1204,"deliver_frame":24007,"mix_frame":123890,"passive":322,"passive_chain":[94358,123890,0],"passive_ranks":[1,22],"receivers":[324,327],"undo_frame":0},{"carrier":324,"carrier_chain":[94356,123892,24005,0],"carrier_ranks":[1,20,2],"deliver_after_root":1203,"deliver_frame":24005,"mix_frame":123892,"passive":327,"passive_chain":[94353,123892,0],"passive_ranks":[1,22],"receivers":[321,322],"undo_frame":0},{"carrier":328,"carrier_chain":[94352,123894,24031,0],"carrier_ranks":[1,20,2],"deliver_after_root":1235,"deliver_frame":24031,"mix_frame":123894,"passive":331,"passive_chain":[94349,123894,0],"passive_ranks":[1,22],"receivers":[333,334],"undo_frame":0},{"carrier":333,"carrier_chain":[94347,123896,24025,0],"carrier_ranks":[1,20,2],"deliver_after_root":1232,"deliver_frame":24025,"mix_frame":123896,"passive":334,"passive_chain":[94346,123896,0],"passive_ranks":[1,22],"receivers":[328,331],"undo_frame":0},{"carrier":329,"carrier_chain":[94351,123898,24029,0],"carrier_ranks":[1,20,2],"deliver_after_root":1234,"deliver_frame":24029,"mix_frame":123898,"passive":330,"passive_chain":[94350,123898,0],"passive_ranks":[1,22],"receivers":[332,335],"undo_frame":0},{"carrier":332,"carrier_chain":[94348,123900,24027,0],"carrier_ranks":[1,20,2],"deliver_after_root":1233,"deliver_frame":24027,"mix_frame":123900,"passive":335,"passive_chain":[94345,123900,0],"passive_ranks":[1,22],"receivers":[329,330],"undo_frame":0},{"carrier":336,"carrier_chain":[94344,123902,24053,0],"carrier_ranks":[1,20,2],"deliver_after_root":1265,"deliver_frame":24053,"mix_frame":123902,"passive":339,"passive_chain":[94341,123902,0],"passive_ranks":[1,22],"receivers":[341,342],"undo_frame":0},{"carrier":341,"carrier_chain":[94339,123904,24047,0],"carrier_ranks":[1,20,2],"deliver_after_root":1262,"deliver_frame":24047,"mix_frame":123904,"passive":342,"passive_chain":[94338,123904,0],"passive_ranks":[1,22],"receivers":[336,339],"undo_frame":0},{"carrier":337,"carrier_chain":[94343,123906,24051,0],"carrier_ranks":[1,20,2],"deliver_after_root":1264,"deliver_frame":24051,"mix_frame":123906,"passive":338,"passive_chain":[94342,123906,0],"passive_ranks":[1,22],"receivers":[340,343],"undo_frame":0},{"carrier":340,"carrier_chain":[94340,123908,24049,0],"carrier_ranks":[1,20,2],"deliver_after_root":1263,"deliver_frame":24049,"mix_frame":123908,"passive":343,"passive_chain":[94337,123908,0],"passive_ranks":[1,22],"receivers":[337,338],"undo_frame":0},{"carrier":344,"carrier_chain":[94336,123910,24075,0],"carrier_ranks":[1,20,2],"deliver_after_root":1295,"deliver_frame":24075,"mix_frame":123910,"passive":347,"passive_chain":[94333,123910,0],"passive_ranks":[1,22],"receivers":[349,350],"undo_frame":0},{"carrier":349,"carrier_chain":[94331,123912,24069,0],"carrier_ranks":[1,20,2],"deliver_after_root":1292,"deliver_frame":24069,"mix_frame":123912,"passive":350,"passive_chain":[94330,123912,0],"passive_ranks":[1,22],"receivers":[344,347],"undo_frame":0},{"carrier":345,"carrier_chain":[94335,123914,24073,0],"carrier_ranks":[1,20,2],"deliver_after_root":1294,"deliver_frame":24073,"mix_frame":123914,"passive":346,"passive_chain":[94334,123914,0],"passive_ranks":[1,22],"receivers":[348,351],"undo_frame":0},{"carrier":348,"carrier_chain":[94332,123916,24071,0],"carrier_ranks":[1,20,2],"deliver_after_root":1293,"deliver_frame":24071,"mix_frame":123916,"passive":351,"passive_chain":[94329,123916,0],"passive_ranks":[1,22],"receivers":[345,346],"undo_frame":0},{"carrier":352,"carrier_chain":[94328,123918,24097,0],"carrier_ranks":[1,20,2],"deliver_after_root":1325,"deliver_frame":24097,"mix_frame":123918,"passive":355,"passive_chain":[94325,123918,0],"passive_ranks":[1,22],"receivers":[357,358],"undo_frame":0},{"carrier":357,"carrier_chain":[94323,123920,24091,0],"carrier_ranks":[1,20,2],"deliver_after_root":1322,"deliver_frame":24091,"mix_frame":123920,"passive":358,"passive_chain":[94322,123920,0],"passive_ranks":[1,22],"receivers":[352,355],"undo_frame":0},{"carrier":353,"carrier_chain":[94327,123922,24095,0],"carrier_ranks":[1,20,2],"deliver_after_root":1324,"deliver_frame":24095,"mix_frame":123922,"passive":354,"passive_chain":[94326,123922,0],"passive_ranks":[1,22],"receivers":[356,359],"undo_frame":0},{"carrier":356,"carrier_chain":[94324,123924,24093,0],"carrier_ranks":[1,20,2],"deliver_after_root":1323,"deliver_frame":24093,"mix_frame":123924,"passive":359,"passive_chain":[94321,123924,0],"passive_ranks":[1,22],"receivers":[353,354],"undo_frame":0},{"carrier":360,"carrier_chain":[94320,123926,24119,0],"carrier_ranks":[1,20,2],"deliver_after_root":1355,"deliver_frame":24119,"mix_frame":123926,"passive":363,"passive_chain":[94317,123926,0],"passive_ranks":[1,22],"receivers":[365,366],"undo_frame":0},{"carrier":365,"carrier_chain":[94315,123928,24113,0],"carrier_ranks":[1,20,2],"deliver_after_root":1352,"deliver_frame":24113,"mix_frame":123928,"passive":366,"passive_chain":[94314,123928,0],"passive_ranks":[1,22],"receivers":[360,363],"undo_frame":0},{"carrier":361,"carrier_chain":[94319,123930,24117,0],"carrier_ranks":[1,20,2],"deliver_after_root":1354,"deliver_frame":24117,"mix_frame":123930,"passive":362,"passive_chain":[94318,123930,0],"passive_ranks":[1,22],"receivers":[364,367],"undo_frame":0},{"carrier":364,"carrier_chain":[94316,123932,24115,0],"carrier_ranks":[1,20,2],"deliver_after_root":1353,"deliver_frame":24115,"mix_frame":123932,"passive":367,"passive_chain":[94313,123932,0],"passive_ranks":[1,22],"receivers":[361,362],"undo_frame":0},{"carrier":368,"carrier_chain":[94312,123934,24141,0],"carrier_ranks":[1,20,2],"deliver_after_root":1385,"deliver_frame":24141,"mix_frame":123934,"passive":371,"passive_chain":[94309,123934,0],"passive_ranks":[1,22],"receivers":[373,374],"undo_frame":0},{"carrier":373,"carrier_chain":[94307,123936,24135,0],"carrier_ranks":[1,20,2],"deliver_after_root":1382,"deliver_frame":24135,"mix_frame":123936,"passive":374,"passive_chain":[94306,123936,0],"passive_ranks":[1,22],"receivers":[368,371],"undo_frame":0},{"carrier":369,"carrier_chain":[94311,123938,24139,0],"carrier_ranks":[1,20,2],"deliver_after_root":1384,"deliver_frame":24139,"mix_frame":123938,"passive":370,"passive_chain":[94310,123938,0],"passive_ranks":[1,22],"receivers":[372,375],"undo_frame":0},{"carrier":372,"carrier_chain":[94308,123940,24137,0],"carrier_ranks":[1,20,2],"deliver_after_root":1383,"deliver_frame":24137,"mix_frame":123940,"passive":375,"passive_chain":[94305,123940,0],"passive_ranks":[1,22],"receivers":[369,370],"undo_frame":0},{"carrier":376,"carrier_chain":[94304,123942,24163,0],"carrier_ranks":[1,20,2],"deliver_after_root":1415,"deliver_frame":24163,"mix_frame":123942,"passive":379,"passive_chain":[94301,123942,0],"passive_ranks":[1,22],"receivers":[381,382],"undo_frame":0},{"carrier":381,"carrier_chain":[94299,123944,24157,0],"carrier_ranks":[1,20,2],"deliver_after_root":1412,"deliver_frame":24157,"mix_frame":123944,"passive":382,"passive_chain":[94298,123944,0],"passive_ranks":[1,22],"receivers":[376,379],"undo_frame":0},{"carrier":377,"carrier_chain":[94303,123946,24161,0],"carrier_ranks":[1,20,2],"deliver_after_root":1414,"deliver_frame":24161,"mix_frame":123946,"passive":378,"passive_chain":[94302,123946,0],"passive_ranks":[1,22],"receivers":[380,383],"undo_frame":0},{"carrier":380,"carrier_chain":[94300,123948,24159,0],"carrier_ranks":[1,20,2],"deliver_after_root":1413,"deliver_frame":24159,"mix_frame":123948,"passive":383,"passive_chain":[94297,123948,0],"passive_ranks":[1,22],"receivers":[377,378],"undo_frame":0},{"carrier":384,"carrier_chain":[94296,123950,24185,0],"carrier_ranks":[1,20,2],"deliver_after_root":1445,"deliver_frame":24185,"mix_frame":123950,"passive":387,"passive_chain":[94293,123950,0],"passive_ranks":[1,22],"receivers":[389,390],"undo_frame":0},{"carrier":389,"carrier_chain":[94291,123952,24179,0],"carrier_ranks":[1,20,2],"deliver_after_root":1442,"deliver_frame":24179,"mix_frame":123952,"passive":390,"passive_chain":[94290,123952,0],"passive_ranks":[1,22],"receivers":[384,387],"undo_frame":0},{"carrier":385,"carrier_chain":[94295,123954,24183,0],"carrier_ranks":[1,20,2],"deliver_after_root":1444,"deliver_frame":24183,"mix_frame":123954,"passive":386,"passive_chain":[94294,123954,0],"passive_ranks":[1,22],"receivers":[388,391],"undo_frame":0},{"carrier":388,"carrier_chain":[94292,123956,24181,0],"carrier_ranks":[1,20,2],"deliver_after_root":1443,"deliver_frame":24181,"mix_frame":123956,"passive":391,"passive_chain":[94289,123956,0],"passive_ranks":[1,22],"receivers":[385,386],"undo_frame":0},{"carrier":392,"carrier_chain":[94288,123958,24207,0],"carrier_ranks":[1,20,2],"deliver_after_root":1475,"deliver_frame":24207,"mix_frame":123958,"passive":395,"passive_chain":[94285,123958,0],"passive_ranks":[1,22],"receivers":[397,398],"undo_frame":0},{"carrier":397,"carrier_chain":[94283,123960,24201,0],"carrier_ranks":[1,20,2],"deliver_after_root":1472,"deliver_frame":24201,"mix_frame":123960,"passive":398,"passive_chain":[94282,123960,0],"passive_ranks":[1,22],"receivers":[392,395],"undo_frame":0},{"carrier":393,"carrier_chain":[94287,123962,24205,0],"carrier_ranks":[1,20,2],"deliver_after_root":1474,"deliver_frame":24205,"mix_frame":123962,"passive":394,"passive_chain":[94286,123962,0],"passive_ranks":[1,22],"receivers":[396,399],"undo_frame":0},{"carrier":396,"carrier_chain":[94284,123964,24203,0],"carrier_ranks":[1,20,2],"deliver_after_root":1473,"deliver_frame":24203,"mix_frame":123964,"passive":399,"passive_chain":[94281,123964,0],"passive_ranks":[1,22],"receivers":[393,394],"undo_frame":0},{"carrier":400,"carrier_chain":[94280,123966,24229,0],"carrier_ranks":[1,20,2],"deliver_after_root":1505,"deliver_frame":24229,"mix_frame":123966,"passive":403,"passive_chain":[94277,123966,0],"passive_ranks":[1,22],"receivers":[405,406],"undo_frame":0},{"carrier":405,"carrier_chain":[94275,123968,24223,0],"carrier_ranks":[1,20,2],"deliver_after_root":1502,"deliver_frame":24223,"mix_frame":123968,"passive":406,"passive_chain":[94274,123968,0],"passive_ranks":[1,22],"receivers":[400,403],"undo_frame":0},{"carrier":401,"carrier_chain":[94279,123970,24227,0],"carrier_ranks":[1,20,2],"deliver_after_root":1504,"deliver_frame":24227,"mix_frame":123970,"passive":402,"passive_chain":[94278,123970,0],"passive_ranks":[1,22],"receivers":[404,407],"undo_frame":0},{"carrier":404,"carrier_chain":[94276,123972,24225,0],"carrier_ranks":[1,20,2],"deliver_after_root":1503,"deliver_frame":24225,"mix_frame":123972,"passive":407,"passive_chain":[94273,123972,0],"passive_ranks":[1,22],"receivers":[401,402],"undo_frame":0},{"carrier":408,"carrier_chain":[94272,123974,24251,0],"carrier_ranks":[1,20,2],"deliver_after_root":1535,"deliver_frame":24251,"mix_frame":123974,"passive":411,"passive_chain":[94269,123974,0],"passive_ranks":[1,22],"receivers":[413,414],"undo_frame":0},{"carrier":413,"carrier_chain":[94267,123976,24245,0],"carrier_ranks":[1,20,2],"deliver_after_root":1532,"deliver_frame":24245,"mix_frame":123976,"passive":414,"passive_chain":[94266,123976,0],"passive_ranks":[1,22],"receivers":[408,411],"undo_frame":0},{"carrier":409,"carrier_chain":[94271,123978,24249,0],"carrier_ranks":[1,20,2],"deliver_after_root":1534,"deliver_frame":24249,"mix_frame":123978,"passive":410,"passive_chain":[94270,123978,0],"passive_ranks":[1,22],"receivers":[412,415],"undo_frame":0},{"carrier":412,"carrier_chain":[94268,123980,24247,0],"carrier_ranks":[1,20,2],"deliver_after_root":1533,"deliver_frame":24247,"mix_frame":123980,"passive":415,"passive_chain":[94265,123980,0],"passive_ranks":[1,22],"receivers":[409,410],"undo_frame":0},{"carrier":416,"carrier_chain":[94264,123982,24273,0],"carrier_ranks":[1,20,2],"deliver_after_root":1565,"deliver_frame":24273,"mix_frame":123982,"passive":419,"passive_chain":[94261,123982,0],"passive_ranks":[1,22],"receivers":[421,422],"undo_frame":0},{"carrier":421,"carrier_chain":[94259,123984,24267,0],"carrier_ranks":[1,20,2],"deliver_after_root":1562,"deliver_frame":24267,"mix_frame":123984,"passive":422,"passive_chain":[94258,123984,0],"passive_ranks":[1,22],"receivers":[416,419],"undo_frame":0},{"carrier":417,"carrier_chain":[94263,123986,24271,0],"carrier_ranks":[1,20,2],"deliver_after_root":1564,"deliver_frame":24271,"mix_frame":123986,"passive":418,"passive_chain":[94262,123986,0],"passive_ranks":[1,22],"receivers":[420,423],"undo_frame":0},{"carrier":420,"carrier_chain":[94260,123988,24269,0],"carrier_ranks":[1,20,2],"deliver_after_root":1563,"deliver_frame":24269,"mix_frame":123988,"passive":423,"passive_chain":[94257,123988,0],"passive_ranks":[1,22],"receivers":[417,418],"undo_frame":0},{"carrier":424,"carrier_chain":[94256,123990,24295,0],"carrier_ranks":[1,20,2],"deliver_after_root":1595,"deliver_frame":24295,"mix_frame":123990,"passive":427,"passive_chain":[94253,123990,0],"passive_ranks":[1,22],"receivers":[429,430],"undo_frame":0},{"carrier":429,"carrier_chain":[94251,123992,24289,0],"carrier_ranks":[1,20,2],"deliver_after_root":1592,"deliver_frame":24289,"mix_frame":123992,"passive":430,"passive_chain":[94250,123992,0],"passive_ranks":[1,22],"receivers":[424,427],"undo_frame":0},{"carrier":425,"carrier_chain":[94255,123994,24293,0],"carrier_ranks":[1,20,2],"deliver_after_root":1594,"deliver_frame":24293,"mix_frame":123994,"passive":426,"passive_chain":[94254,123994,0],"passive_ranks":[1,22],"receivers":[428,431],"undo_frame":0},{"carrier":428,"carrier_chain":[94252,123996,24291,0],"carrier_ranks":[1,20,2],"deliver_after_root":1593,"deliver_frame":24291,"mix_frame":123996,"passive":431,"passive_chain":[94249,123996,0],"passive_ranks":[1,22],"receivers":[425,426],"undo_frame":0},{"carrier":432,"carrier_chain":[94248,123998,24317,0],"carrier_ranks":[1,20,2],"deliver_after_root":1625,"deliver_frame":24317,"mix_frame":123998,"passive":435,"passive_chain":[94245,123998,0],"passive_ranks":[1,22],"receivers":[437,438],"undo_frame":0},{"carrier":437,"carrier_chain":[94243,124000,24311,0],"carrier_ranks":[1,20,2],"deliver_after_root":1622,"deliver_frame":24311,"mix_frame":124000,"passive":438,"passive_chain":[94242,124000,0],"passive_ranks":[1,22],"receivers":[432,435],"undo_frame":0},{"carrier":433,"carrier_chain":[94247,124002,24315,0],"carrier_ranks":[1,20,2],"deliver_after_root":1624,"deliver_frame":24315,"mix_frame":124002,"passive":434,"passive_chain":[94246,124002,0],"passive_ranks":[1,22],"receivers":[436,439],"undo_frame":0},{"carrier":436,"carrier_chain":[94244,124004,24313,0],"carrier_ranks":[1,20,2],"deliver_after_root":1623,"deliver_frame":24313,"mix_frame":124004,"passive":439,"passive_chain":[94241,124004,0],"passive_ranks":[1,22],"receivers":[433,434],"undo_frame":0},{"carrier":440,"carrier_chain":[94240,124006,24339,0],"carrier_ranks":[1,20,2],"deliver_after_root":1655,"deliver_frame":24339,"mix_frame":124006,"passive":443,"passive_chain":[94237,124006,0],"passive_ranks":[1,22],"receivers":[445,446],"undo_frame":0},{"carrier":445,"carrier_chain":[94235,124008,24333,0],"carrier_ranks":[1,20,2],"deliver_after_root":1652,"deliver_frame":24333,"mix_frame":124008,"passive":446,"passive_chain":[94234,124008,0],"passive_ranks":[1,22],"receivers":[440,443],"undo_frame":0},{"carrier":441,"carrier_chain":[94239,124010,24337,0],"carrier_ranks":[1,20,2],"deliver_after_root":1654,"deliver_frame":24337,"mix_frame":124010,"passive":442,"passive_chain":[94238,124010,0],"passive_ranks":[1,22],"receivers":[444,447],"undo_frame":0},{"carrier":444,"carrier_chain":[94236,124012,24335,0],"carrier_ranks":[1,20,2],"deliver_after_root":1653,"deliver_frame":24335,"mix_frame":124012,"passive":447,"passive_chain":[94233,124012,0],"passive_ranks":[1,22],"receivers":[441,442],"undo_frame":0},{"carrier":448,"carrier_chain":[94232,124014,24361,0],"carrier_ranks":[1,20,2],"deliver_after_root":1685,"deliver_frame":24361,"mix_frame":124014,"passive":451,"passive_chain":[94229,124014,0],"passive_ranks":[1,22],"receivers":[453,454],"undo_frame":0},{"carrier":453,"carrier_chain":[94227,124016,24355,0],"carrier_ranks":[1,20,2],"deliver_after_root":1682,"deliver_frame":24355,"mix_frame":124016,"passive":454,"passive_chain":[94226,124016,0],"passive_ranks":[1,22],"receivers":[448,451],"undo_frame":0},{"carrier":449,"carrier_chain":[94231,124018,24359,0],"carrier_ranks":[1,20,2],"deliver_after_root":1684,"deliver_frame":24359,"mix_frame":124018,"passive":450,"passive_chain":[94230,124018,0],"passive_ranks":[1,22],"receivers":[452,455],"undo_frame":0},{"carrier":452,"carrier_chain":[94228,124020,24357,0],"carrier_ranks":[1,20,2],"deliver_after_root":1683,"deliver_frame":24357,"mix_frame":124020,"passive":455,"passive_chain":[94225,124020,0],"passive_ranks":[1,22],"receivers":[449,450],"undo_frame":0},{"carrier":456,"carrier_chain":[94224,124022,24383,0],"carrier_ranks":[1,20,2],"deliver_after_root":1715,"deliver_frame":24383,"mix_frame":124022,"passive":459,"passive_chain":[94221,124022,0],"passive_ranks":[1,22],"receivers":[461,462],"undo_frame":0},{"carrier":461,"carrier_chain":[94219,124024,24377,0],"carrier_ranks":[1,20,2],"deliver_after_root":1712,"deliver_frame":24377,"mix_frame":124024,"passive":462,"passive_chain":[94218,124024,0],"passive_ranks":[1,22],"receivers":[456,459],"undo_frame":0},{"carrier":457,"carrier_chain":[94223,124026,24381,0],"carrier_ranks":[1,20,2],"deliver_after_root":1714,"deliver_frame":24381,"mix_frame":124026,"passive":458,"passive_chain":[94222,124026,0],"passive_ranks":[1,22],"receivers":[460,463],"undo_frame":0},{"carrier":460,"carrier_chain":[94220,124028,24379,0],"carrier_ranks":[1,20,2],"deliver_after_root":1713,"deliver_frame":24379,"mix_frame":124028,"passive":463,"passive_chain":[94217,124028,0],"passive_ranks":[1,22],"receivers":[457,458],"undo_frame":0},{"carrier":464,"carrier_chain":[94216,124030,24405,0],"carrier_ranks":[1,20,2],"deliver_after_root":1745,"deliver_frame":24405,"mix_frame":124030,"passive":467,"passive_chain":[94213,124030,0],"passive_ranks":[1,22],"receivers":[469,470],"undo_frame":0},{"carrier":469,"carrier_chain":[94211,124032,24399,0],"carrier_ranks":[1,20,2],"deliver_after_root":1742,"deliver_frame":24399,"mix_frame":124032,"passive":470,"passive_chain":[94210,124032,0],"passive_ranks":[1,22],"receivers":[464,467],"undo_frame":0},{"carrier":465,"carrier_chain":[94215,124034,24403,0],"carrier_ranks":[1,20,2],"deliver_after_root":1744,"deliver_frame":24403,"mix_frame":124034,"passive":466,"passive_chain":[94214,124034,0],"passive_ranks":[1,22],"receivers":[468,471],"undo_frame":0},{"carrier":468,"carrier_chain":[94212,124036,24401,0],"carrier_ranks":[1,20,2],"deliver_after_root":1743,"deliver_frame":24401,"mix_frame":124036,"passive":471,"passive_chain":[94209,124036,0],"passive_ranks":[1,22],"receivers":[465,466],"undo_frame":0},{"carrier":472,"carrier_chain":[94208,124038,24427,0],"carrier_ranks":[1,20,2],"deliver_after_root":1775,"deliver_frame":24427,"mix_frame":124038,"passive":475,"passive_chain":[94205,124038,0],"passive_ranks":[1,22],"receivers":[477,478],"undo_frame":0},{"carrier":477,"carrier_chain":[94203,124040,24421,0],"carrier_ranks":[1,20,2],"deliver_after_root":1772,"deliver_frame":24421,"mix_frame":124040,"passive":478,"passive_chain":[94202,124040,0],"passive_ranks":[1,22],"receivers":[472,475],"undo_frame":0},{"carrier":473,"carrier_chain":[94207,124042,24425,0],"carrier_ranks":[1,20,2],"deliver_after_root":1774,"deliver_frame":24425,"mix_frame":124042,"passive":474,"passive_chain":[94206,124042,0],"passive_ranks":[1,22],"receivers":[476,479],"undo_frame":0},{"carrier":476,"carrier_chain":[94204,124044,24423,0],"carrier_ranks":[1,20,2],"deliver_after_root":1773,"deliver_frame":24423,"mix_frame":124044,"passive":479,"passive_chain":[94201,124044,0],"passive_ranks":[1,22],"receivers":[473,474],"undo_frame":0},{"carrier":480,"carrier_chain":[94200,124046,24449,0],"carrier_ranks":[1,20,2],"deliver_after_root":1805,"deliver_frame":24449,"mix_frame":124046,"passive":483,"passive_chain":[94197,124046,0],"passive_ranks":[1,22],"receivers":[485,486],"undo_frame":0},{"carrier":485,"carrier_chain":[94195,124048,24443,0],"carrier_ranks":[1,20,2],"deliver_after_root":1802,"deliver_frame":24443,"mix_frame":124048,"passive":486,"passive_chain":[94194,124048,0],"passive_ranks":[1,22],"receivers":[480,483],"undo_frame":0},{"carrier":481,"carrier_chain":[94199,124050,24447,0],"carrier_ranks":[1,20,2],"deliver_after_root":1804,"deliver_frame":24447,"mix_frame":124050,"passive":482,"passive_chain":[94198,124050,0],"passive_ranks":[1,22],"receivers":[484,487],"undo_frame":0},{"carrier":484,"carrier_chain":[94196,124052,24445,0],"carrier_ranks":[1,20,2],"deliver_after_root":1803,"deliver_frame":24445,"mix_frame":124052,"passive":487,"passive_chain":[94193,124052,0],"passive_ranks":[1,22],"receivers":[481,482],"undo_frame":0},{"carrier":488,"carrier_chain":[94192,124054,24471,0],"carrier_ranks":[1,20,2],"deliver_after_root":1835,"deliver_frame":24471,"mix_frame":124054,"passive":491,"passive_chain":[94189,124054,0],"passive_ranks":[1,22],"receivers":[493,494],"undo_frame":0},{"carrier":493,"carrier_chain":[94187,124056,24465,0],"carrier_ranks":[1,20,2],"deliver_after_root":1832,"deliver_frame":24465,"mix_frame":124056,"passive":494,"passive_chain":[94186,124056,0],"passive_ranks":[1,22],"receivers":[488,491],"undo_frame":0},{"carrier":489,"carrier_chain":[94191,124058,24469,0],"carrier_ranks":[1,20,2],"deliver_after_root":1834,"deliver_frame":24469,"mix_frame":124058,"passive":490,"passive_chain":[94190,124058,0],"passive_ranks":[1,22],"receivers":[492,495],"undo_frame":0},{"carrier":492,"carrier_chain":[94188,124060,24467,0],"carrier_ranks":[1,20,2],"deliver_after_root":1833,"deliver_frame":24467,"mix_frame":124060,"passive":495,"passive_chain":[94185,124060,0],"passive_ranks":[1,22],"receivers":[489,490],"undo_frame":0},{"carrier":496,"carrier_chain":[94184,124062,24493,0],"carrier_ranks":[1,20,2],"deliver_after_root":1865,"deliver_frame":24493,"mix_frame":124062,"passive":499,"passive_chain":[94181,124062,0],"passive_ranks":[1,22],"receivers":[501,502],"undo_frame":0},{"carrier":501,"carrier_chain":[94179,124064,24487,0],"carrier_ranks":[1,20,2],"deliver_after_root":1862,"deliver_frame":24487,"mix_frame":124064,"passive":502,"passive_chain":[94178,124064,0],"passive_ranks":[1,22],"receivers":[496,499],"undo_frame":0},{"carrier":497,"carrier_chain":[94183,124066,24491,0],"carrier_ranks":[1,20,2],"deliver_after_root":1864,"deliver_frame":24491,"mix_frame":124066,"passive":498,"passive_chain":[94182,124066,0],"passive_ranks":[1,22],"receivers":[500,503],"undo_frame":0},{"carrier":500,"carrier_chain":[94180,124068,24489,0],"carrier_ranks":[1,20,2],"deliver_after_root":1863,"deliver_frame":24489,"mix_frame":124068,"passive":503,"passive_chain":[94177,124068,0],"passive_ranks":[1,22],"receivers":[497,498],"undo_frame":0},{"carrier":504,"carrier_chain":[94176,124070,24515,0],"carrier_ranks":[1,20,2],"deliver_after_root":1895,"deliver_frame":24515,"mix_frame":124070,"passive":507,"passive_chain":[94173,124070,0],"passive_ranks":[1,22],"receivers":[509,510],"undo_frame":0},{"carrier":509,"carrier_chain":[94171,124072,24509,0],"carrier_ranks":[1,20,2],"deliver_after_root":1892,"deliver_frame":24509,"mix_frame":124072,"passive":510,"passive_chain":[94170,124072,0],"passive_ranks":[1,22],"receivers":[504,507],"undo_frame":0},{"carrier":505,"carrier_chain":[94175,124074,24513,0],"carrier_ranks":[1,20,2],"deliver_after_root":1894,"deliver_frame":24513,"mix_frame":124074,"passive":506,"passive_chain":[94174,124074,0],"passive_ranks":[1,22],"receivers":[508,511],"undo_frame":0},{"carrier":508,"carrier_chain":[94172,124076,24511,0],"carrier_ranks":[1,20,2],"deliver_after_root":1893,"deliver_frame":24511,"mix_frame":124076,"passive":511,"passive_chain":[94169,124076,0],"passive_ranks":[1,22],"receivers":[505,506],"undo_frame":0},{"carrier":512,"carrier_chain":[94168,124078,24537,0],"carrier_ranks":[1,20,2],"deliver_after_root":1925,"deliver_frame":24537,"mix_frame":124078,"passive":515,"passive_chain":[94165,124078,0],"passive_ranks":[1,22],"receivers":[517,518],"undo_frame":0},{"carrier":517,"carrier_chain":[94163,124080,24531,0],"carrier_ranks":[1,20,2],"deliver_after_root":1922,"deliver_frame":24531,"mix_frame":124080,"passive":518,"passive_chain":[94162,124080,0],"passive_ranks":[1,22],"receivers":[512,515],"undo_frame":0},{"carrier":513,"carrier_chain":[94167,124082,24535,0],"carrier_ranks":[1,20,2],"deliver_after_root":1924,"deliver_frame":24535,"mix_frame":124082,"passive":514,"passive_chain":[94166,124082,0],"passive_ranks":[1,22],"receivers":[516,519],"undo_frame":0},{"carrier":516,"carrier_chain":[94164,124084,24533,0],"carrier_ranks":[1,20,2],"deliver_after_root":1923,"deliver_frame":24533,"mix_frame":124084,"passive":519,"passive_chain":[94161,124084,0],"passive_ranks":[1,22],"receivers":[513,514],"undo_frame":0},{"carrier":520,"carrier_chain":[94160,124086,24559,0],"carrier_ranks":[1,20,2],"deliver_after_root":1955,"deliver_frame":24559,"mix_frame":124086,"passive":523,"passive_chain":[94157,124086,0],"passive_ranks":[1,22],"receivers":[525,526],"undo_frame":0},{"carrier":525,"carrier_chain":[94155,124088,24553,0],"carrier_ranks":[1,20,2],"deliver_after_root":1952,"deliver_frame":24553,"mix_frame":124088,"passive":526,"passive_chain":[94154,124088,0],"passive_ranks":[1,22],"receivers":[520,523],"undo_frame":0},{"carrier":521,"carrier_chain":[94159,124090,24557,0],"carrier_ranks":[1,20,2],"deliver_after_root":1954,"deliver_frame":24557,"mix_frame":124090,"passive":522,"passive_chain":[94158,124090,0],"passive_ranks":[1,22],"receivers":[524,527],"undo_frame":0},{"carrier":524,"carrier_chain":[94156,124092,24555,0],"carrier_ranks":[1,20,2],"deliver_after_root":1953,"deliver_frame":24555,"mix_frame":124092,"passive":527,"passive_chain":[94153,124092,0],"passive_ranks":[1,22],"receivers":[521,522],"undo_frame":0},{"carrier":528,"carrier_chain":[94152,124094,24581,0],"carrier_ranks":[1,20,2],"deliver_after_root":1985,"deliver_frame":24581,"mix_frame":124094,"passive":531,"passive_chain":[94149,124094,0],"passive_ranks":[1,22],"receivers":[533,534],"undo_frame":0},{"carrier":533,"carrier_chain":[94147,124096,24575,0],"carrier_ranks":[1,20,2],"deliver_after_root":1982,"deliver_frame":24575,"mix_frame":124096,"passive":534,"passive_chain":[94146,124096,0],"passive_ranks":[1,22],"receivers":[528,531],"undo_frame":0},{"carrier":529,"carrier_chain":[94151,124098,24579,0],"carrier_ranks":[1,20,2],"deliver_after_root":1984,"deliver_frame":24579,"mix_frame":124098,"passive":530,"passive_chain":[94150,124098,0],"passive_ranks":[1,22],"receivers":[532,535],"undo_frame":0},{"carrier":532,"carrier_chain":[94148,124100,24577,0],"carrier_ranks":[1,20,2],"deliver_after_root":1983,"deliver_frame":24577,"mix_frame":124100,"passive":535,"passive_chain":[94145,124100,0],"passive_ranks":[1,22],"receivers":[529,530],"undo_frame":0},{"carrier":536,"carrier_chain":[94144,124102,24603,0],"carrier_ranks":[1,20,2],"deliver_after_root":2015,"deliver_frame":24603,"mix_frame":124102,"passive":539,"passive_chain":[94141,124102,0],"passive_ranks":[1,22],"receivers":[541,542],"undo_frame":0},{"carrier":541,"carrier_chain":[94139,124104,24597,0],"carrier_ranks":[1,20,2],"deliver_after_root":2012,"deliver_frame":24597,"mix_frame":124104,"passive":542,"passive_chain":[94138,124104,0],"passive_ranks":[1,22],"receivers":[536,539],"undo_frame":0},{"carrier":537,"carrier_chain":[94143,124106,24601,0],"carrier_ranks":[1,20,2],"deliver_after_root":2014,"deliver_frame":24601,"mix_frame":124106,"passive":538,"passive_chain":[94142,124106,0],"passive_ranks":[1,22],"receivers":[540,543],"undo_frame":0},{"carrier":540,"carrier_chain":[94140,124108,24599,0],"carrier_ranks":[1,20,2],"deliver_after_root":2013,"deliver_frame":24599,"mix_frame":124108,"passive":543,"passive_chain":[94137,124108,0],"passive_ranks":[1,22],"receivers":[537,538],"undo_frame":0},{"carrier":544,"carrier_chain":[94136,124110,24625,0],"carrier_ranks":[1,20,2],"deliver_after_root":2045,"deliver_frame":24625,"mix_frame":124110,"passive":547,"passive_chain":[94133,124110,0],"passive_ranks":[1,22],"receivers":[549,550],"undo_frame":0},{"carrier":549,"carrier_chain":[94131,124112,24619,0],"carrier_ranks":[1,20,2],"deliver_after_root":2042,"deliver_frame":24619,"mix_frame":124112,"passive":550,"passive_chain":[94130,124112,0],"passive_ranks":[1,22],"receivers":[544,547],"undo_frame":0},{"carrier":545,"carrier_chain":[94135,124114,24623,0],"carrier_ranks":[1,20,2],"deliver_after_root":2044,"deliver_frame":24623,"mix_frame":124114,"passive":546,"passive_chain":[94134,124114,0],"passive_ranks":[1,22],"receivers":[548,551],"undo_frame":0},{"carrier":548,"carrier_chain":[94132,124116,24621,0],"carrier_ranks":[1,20,2],"deliver_after_root":2043,"deliver_frame":24621,"mix_frame":124116,"passive":551,"passive_chain":[94129,124116,0],"passive_ranks":[1,22],"receivers":[545,546],"undo_frame":0},{"carrier":552,"carrier_chain":[94128,124118,24647,0],"carrier_ranks":[1,20,2],"deliver_after_root":2075,"deliver_frame":24647,"mix_frame":124118,"passive":555,"passive_chain":[94125,124118,0],"passive_ranks":[1,22],"receivers":[557,558],"undo_frame":0},{"carrier":557,"carrier_chain":[94123,124120,24641,0],"carrier_ranks":[1,20,2],"deliver_after_root":2072,"deliver_frame":24641,"mix_frame":124120,"passive":558,"passive_chain":[94122,124120,0],"passive_ranks":[1,22],"receivers":[552,555],"undo_frame":0},{"carrier":553,"carrier_chain":[94127,124122,24645,0],"carrier_ranks":[1,20,2],"deliver_after_root":2074,"deliver_frame":24645,"mix_frame":124122,"passive":554,"passive_chain":[94126,124122,0],"passive_ranks":[1,22],"receivers":[556,559],"undo_frame":0},{"carrier":556,"carrier_chain":[94124,124124,24643,0],"carrier_ranks":[1,20,2],"deliver_after_root":2073,"deliver_frame":24643,"mix_frame":124124,"passive":559,"passive_chain":[94121,124124,0],"passive_ranks":[1,22],"receivers":[553,554],"undo_frame":0},{"carrier":560,"carrier_chain":[94120,124126,24669,0],"carrier_ranks":[1,20,2],"deliver_after_root":2105,"deliver_frame":24669,"mix_frame":124126,"passive":563,"passive_chain":[94117,124126,0],"passive_ranks":[1,22],"receivers":[565,566],"undo_frame":0},{"carrier":565,"carrier_chain":[94115,124128,24663,0],"carrier_ranks":[1,20,2],"deliver_after_root":2102,"deliver_frame":24663,"mix_frame":124128,"passive":566,"passive_chain":[94114,124128,0],"passive_ranks":[1,22],"receivers":[560,563],"undo_frame":0},{"carrier":561,"carrier_chain":[94119,124130,24667,0],"carrier_ranks":[1,20,2],"deliver_after_root":2104,"deliver_frame":24667,"mix_frame":124130,"passive":562,"passive_chain":[94118,124130,0],"passive_ranks":[1,22],"receivers":[564,567],"undo_frame":0},{"carrier":564,"carrier_chain":[94116,124132,24665,0],"carrier_ranks":[1,20,2],"deliver_after_root":2103,"deliver_frame":24665,"mix_frame":124132,"passive":567,"passive_chain":[94113,124132,0],"passive_ranks":[1,22],"receivers":[561,562],"undo_frame":0},{"carrier":568,"carrier_chain":[94112,124134,24691,0],"carrier_ranks":[1,20,2],"deliver_after_root":2135,"deliver_frame":24691,"mix_frame":124134,"passive":571,"passive_chain":[94109,124134,0],"passive_ranks":[1,22],"receivers":[573,574],"undo_frame":0},{"carrier":573,"carrier_chain":[94107,124136,24685,0],"carrier_ranks":[1,20,2],"deliver_after_root":2132,"deliver_frame":24685,"mix_frame":124136,"passive":574,"passive_chain":[94106,124136,0],"passive_ranks":[1,22],"receivers":[568,571],"undo_frame":0},{"carrier":569,"carrier_chain":[94111,124138,24689,0],"carrier_ranks":[1,20,2],"deliver_after_root":2134,"deliver_frame":24689,"mix_frame":124138,"passive":570,"passive_chain":[94110,124138,0],"passive_ranks":[1,22],"receivers":[572,575],"undo_frame":0},{"carrier":572,"carrier_chain":[94108,124140,24687,0],"carrier_ranks":[1,20,2],"deliver_after_root":2133,"deliver_frame":24687,"mix_frame":124140,"passive":575,"passive_chain":[94105,124140,0],"passive_ranks":[1,22],"receivers":[569,570],"undo_frame":0},{"carrier":576,"carrier_chain":[94104,124142,24713,0],"carrier_ranks":[1,20,2],"deliver_after_root":2165,"deliver_frame":24713,"mix_frame":124142,"passive":579,"passive_chain":[94101,124142,0],"passive_ranks":[1,22],"receivers":[581,582],"undo_frame":0},{"carrier":581,"carrier_chain":[94099,124144,24707,0],"carrier_ranks":[1,20,2],"deliver_after_root":2162,"deliver_frame":24707,"mix_frame":124144,"passive":582,"passive_chain":[94098,124144,0],"passive_ranks":[1,22],"receivers":[576,579],"undo_frame":0},{"carrier":577,"carrier_chain":[94103,124146,24711,0],"carrier_ranks":[1,20,2],"deliver_after_root":2164,"deliver_frame":24711,"mix_frame":124146,"passive":578,"passive_chain":[94102,124146,0],"passive_ranks":[1,22],"receivers":[580,583],"undo_frame":0},{"carrier":580,"carrier_chain":[94100,124148,24709,0],"carrier_ranks":[1,20,2],"deliver_after_root":2163,"deliver_frame":24709,"mix_frame":124148,"passive":583,"passive_chain":[94097,124148,0],"passive_ranks":[1,22],"receivers":[577,578],"undo_frame":0},{"carrier":584,"carrier_chain":[94096,124150,24735,0],"carrier_ranks":[1,20,2],"deliver_after_root":2195,"deliver_frame":24735,"mix_frame":124150,"passive":587,"passive_chain":[94093,124150,0],"passive_ranks":[1,22],"receivers":[589,590],"undo_frame":0},{"carrier":589,"carrier_chain":[94091,124152,24729,0],"carrier_ranks":[1,20,2],"deliver_after_root":2192,"deliver_frame":24729,"mix_frame":124152,"passive":590,"passive_chain":[94090,124152,0],"passive_ranks":[1,22],"receivers":[584,587],"undo_frame":0},{"carrier":585,"carrier_chain":[94095,124154,24733,0],"carrier_ranks":[1,20,2],"deliver_after_root":2194,"deliver_frame":24733,"mix_frame":124154,"passive":586,"passive_chain":[94094,124154,0],"passive_ranks":[1,22],"receivers":[588,591],"undo_frame":0},{"carrier":588,"carrier_chain":[94092,124156,24731,0],"carrier_ranks":[1,20,2],"deliver_after_root":2193,"deliver_frame":24731,"mix_frame":124156,"passive":591,"passive_chain":[94089,124156,0],"passive_ranks":[1,22],"receivers":[585,586],"undo_frame":0},{"carrier":592,"carrier_chain":[94088,124158,24757,0],"carrier_ranks":[1,20,2],"deliver_after_root":2225,"deliver_frame":24757,"mix_frame":124158,"passive":595,"passive_chain":[94085,124158,0],"passive_ranks":[1,22],"receivers":[597,598],"undo_frame":0},{"carrier":597,"carrier_chain":[94083,124160,24751,0],"carrier_ranks":[1,20,2],"deliver_after_root":2222,"deliver_frame":24751,"mix_frame":124160,"passive":598,"passive_chain":[94082,124160,0],"passive_ranks":[1,22],"receivers":[592,595],"undo_frame":0},{"carrier":593,"carrier_chain":[94087,124162,24755,0],"carrier_ranks":[1,20,2],"deliver_after_root":2224,"deliver_frame":24755,"mix_frame":124162,"passive":594,"passive_chain":[94086,124162,0],"passive_ranks":[1,22],"receivers":[596,599],"undo_frame":0},{"carrier":596,"carrier_chain":[94084,124164,24753,0],"carrier_ranks":[1,20,2],"deliver_after_root":2223,"deliver_frame":24753,"mix_frame":124164,"passive":599,"passive_chain":[94081,124164,0],"passive_ranks":[1,22],"receivers":[593,594],"undo_frame":0},{"carrier":600,"carrier_chain":[94080,124166,24779,0],"carrier_ranks":[1,20,2],"deliver_after_root":2255,"deliver_frame":24779,"mix_frame":124166,"passive":603,"passive_chain":[94077,124166,0],"passive_ranks":[1,22],"receivers":[605,606],"undo_frame":0},{"carrier":605,"carrier_chain":[94075,124168,24773,0],"carrier_ranks":[1,20,2],"deliver_after_root":2252,"deliver_frame":24773,"mix_frame":124168,"passive":606,"passive_chain":[94074,124168,0],"passive_ranks":[1,22],"receivers":[600,603],"undo_frame":0},{"carrier":601,"carrier_chain":[94079,124170,24777,0],"carrier_ranks":[1,20,2],"deliver_after_root":2254,"deliver_frame":24777,"mix_frame":124170,"passive":602,"passive_chain":[94078,124170,0],"passive_ranks":[1,22],"receivers":[604,607],"undo_frame":0},{"carrier":604,"carrier_chain":[94076,124172,24775,0],"carrier_ranks":[1,20,2],"deliver_after_root":2253,"deliver_frame":24775,"mix_frame":124172,"passive":607,"passive_chain":[94073,124172,0],"passive_ranks":[1,22],"receivers":[601,602],"undo_frame":0},{"carrier":608,"carrier_chain":[94072,124174,24801,0],"carrier_ranks":[1,20,2],"deliver_after_root":2285,"deliver_frame":24801,"mix_frame":124174,"passive":611,"passive_chain":[94069,124174,0],"passive_ranks":[1,22],"receivers":[613,614],"undo_frame":0},{"carrier":613,"carrier_chain":[94067,124176,24795,0],"carrier_ranks":[1,20,2],"deliver_after_root":2282,"deliver_frame":24795,"mix_frame":124176,"passive":614,"passive_chain":[94066,124176,0],"passive_ranks":[1,22],"receivers":[608,611],"undo_frame":0},{"carrier":609,"carrier_chain":[94071,124178,24799,0],"carrier_ranks":[1,20,2],"deliver_after_root":2284,"deliver_frame":24799,"mix_frame":124178,"passive":610,"passive_chain":[94070,124178,0],"passive_ranks":[1,22],"receivers":[612,615],"undo_frame":0},{"carrier":612,"carrier_chain":[94068,124180,24797,0],"carrier_ranks":[1,20,2],"deliver_after_root":2283,"deliver_frame":24797,"mix_frame":124180,"passive":615,"passive_chain":[94065,124180,0],"passive_ranks":[1,22],"receivers":[609,610],"undo_frame":0},{"carrier":616,"carrier_chain":[94064,124182,24823,0],"carrier_ranks":[1,20,2],"deliver_after_root":2315,"deliver_frame":24823,"mix_frame":124182,"passive":619,"passive_chain":[94061,124182,0],"passive_ranks":[1,22],"receivers":[621,622],"undo_frame":0},{"carrier":621,"carrier_chain":[94059,124184,24817,0],"carrier_ranks":[1,20,2],"deliver_after_root":2312,"deliver_frame":24817,"mix_frame":124184,"passive":622,"passive_chain":[94058,124184,0],"passive_ranks":[1,22],"receivers":[616,619],"undo_frame":0},{"carrier":617,"carrier_chain":[94063,124186,24821,0],"carrier_ranks":[1,20,2],"deliver_after_root":2314,"deliver_frame":24821,"mix_frame":124186,"passive":618,"passive_chain":[94062,124186,0],"passive_ranks":[1,22],"receivers":[620,623],"undo_frame":0},{"carrier":620,"carrier_chain":[94060,124188,24819,0],"carrier_ranks":[1,20,2],"deliver_after_root":2313,"deliver_frame":24819,"mix_frame":124188,"passive":623,"passive_chain":[94057,124188,0],"passive_ranks":[1,22],"receivers":[617,618],"undo_frame":0},{"carrier":624,"carrier_chain":[94056,124190,24845,0],"carrier_ranks":[1,20,2],"deliver_after_root":2345,"deliver_frame":24845,"mix_frame":124190,"passive":627,"passive_chain":[94053,124190,0],"passive_ranks":[1,22],"receivers":[629,630],"undo_frame":0},{"carrier":629,"carrier_chain":[94051,124192,24839,0],"carrier_ranks":[1,20,2],"deliver_after_root":2342,"deliver_frame":24839,"mix_frame":124192,"passive":630,"passive_chain":[94050,124192,0],"passive_ranks":[1,22],"receivers":[624,627],"undo_frame":0},{"carrier":625,"carrier_chain":[94055,124194,24843,0],"carrier_ranks":[1,20,2],"deliver_after_root":2344,"deliver_frame":24843,"mix_frame":124194,"passive":626,"passive_chain":[94054,124194,0],"passive_ranks":[1,22],"receivers":[628,631],"undo_frame":0},{"carrier":628,"carrier_chain":[94052,124196,24841,0],"carrier_ranks":[1,20,2],"deliver_after_root":2343,"deliver_frame":24841,"mix_frame":124196,"passive":631,"passive_chain":[94049,124196,0],"passive_ranks":[1,22],"receivers":[625,626],"undo_frame":0},{"carrier":632,"carrier_chain":[94048,124198,24867,0],"carrier_ranks":[1,20,2],"deliver_after_root":2375,"deliver_frame":24867,"mix_frame":124198,"passive":635,"passive_chain":[94045,124198,0],"passive_ranks":[1,22],"receivers":[637,638],"undo_frame":0},{"carrier":637,"carrier_chain":[94043,124200,24861,0],"carrier_ranks":[1,20,2],"deliver_after_root":2372,"deliver_frame":24861,"mix_frame":124200,"passive":638,"passive_chain":[94042,124200,0],"passive_ranks":[1,22],"receivers":[632,635],"undo_frame":0},{"carrier":633,"carrier_chain":[94047,124202,24865,0],"carrier_ranks":[1,20,2],"deliver_after_root":2374,"deliver_frame":24865,"mix_frame":124202,"passive":634,"passive_chain":[94046,124202,0],"passive_ranks":[1,22],"receivers":[636,639],"undo_frame":0},{"carrier":636,"carrier_chain":[94044,124204,24863,0],"carrier_ranks":[1,20,2],"deliver_after_root":2373,"deliver_frame":24863,"mix_frame":124204,"passive":639,"passive_chain":[94041,124204,0],"passive_ranks":[1,22],"receivers":[633,634],"undo_frame":0},{"carrier":640,"carrier_chain":[94040,124206,24889,0],"carrier_ranks":[1,20,2],"deliver_after_root":2405,"deliver_frame":24889,"mix_frame":124206,"passive":643,"passive_chain":[94037,124206,0],"passive_ranks":[1,22],"receivers":[645,646],"undo_frame":0},{"carrier":645,"carrier_chain":[94035,124208,24883,0],"carrier_ranks":[1,20,2],"deliver_after_root":2402,"deliver_frame":24883,"mix_frame":124208,"passive":646,"passive_chain":[94034,124208,0],"passive_ranks":[1,22],"receivers":[640,643],"undo_frame":0},{"carrier":641,"carrier_chain":[94039,124210,24887,0],"carrier_ranks":[1,20,2],"deliver_after_root":2404,"deliver_frame":24887,"mix_frame":124210,"passive":642,"passive_chain":[94038,124210,0],"passive_ranks":[1,22],"receivers":[644,647],"undo_frame":0},{"carrier":644,"carrier_chain":[94036,124212,24885,0],"carrier_ranks":[1,20,2],"deliver_after_root":2403,"deliver_frame":24885,"mix_frame":124212,"passive":647,"passive_chain":[94033,124212,0],"passive_ranks":[1,22],"receivers":[641,642],"undo_frame":0},{"carrier":648,"carrier_chain":[94032,124214,24911,0],"carrier_ranks":[1,20,2],"deliver_after_root":2435,"deliver_frame":24911,"mix_frame":124214,"passive":651,"passive_chain":[94029,124214,0],"passive_ranks":[1,22],"receivers":[653,654],"undo_frame":0},{"carrier":653,"carrier_chain":[94027,124216,24905,0],"carrier_ranks":[1,20,2],"deliver_after_root":2432,"deliver_frame":24905,"mix_frame":124216,"passive":654,"passive_chain":[94026,124216,0],"passive_ranks":[1,22],"receivers":[648,651],"undo_frame":0},{"carrier":649,"carrier_chain":[94031,124218,24909,0],"carrier_ranks":[1,20,2],"deliver_after_root":2434,"deliver_frame":24909,"mix_frame":124218,"passive":650,"passive_chain":[94030,124218,0],"passive_ranks":[1,22],"receivers":[652,655],"undo_frame":0},{"carrier":652,"carrier_chain":[94028,124220,24907,0],"carrier_ranks":[1,20,2],"deliver_after_root":2433,"deliver_frame":24907,"mix_frame":124220,"passive":655,"passive_chain":[94025,124220,0],"passive_ranks":[1,22],"receivers":[649,650],"undo_frame":0},{"carrier":656,"carrier_chain":[94024,124222,24933,0],"carrier_ranks":[1,20,2],"deliver_after_root":2465,"deliver_frame":24933,"mix_frame":124222,"passive":659,"passive_chain":[94021,124222,0],"passive_ranks":[1,22],"receivers":[661,662],"undo_frame":0},{"carrier":661,"carrier_chain":[94019,124224,24927,0],"carrier_ranks":[1,20,2],"deliver_after_root":2462,"deliver_frame":24927,"mix_frame":124224,"passive":662,"passive_chain":[94018,124224,0],"passive_ranks":[1,22],"receivers":[656,659],"undo_frame":0},{"carrier":657,"carrier_chain":[94023,124226,24931,0],"carrier_ranks":[1,20,2],"deliver_after_root":2464,"deliver_frame":24931,"mix_frame":124226,"passive":658,"passive_chain":[94022,124226,0],"passive_ranks":[1,22],"receivers":[660,663],"undo_frame":0},{"carrier":660,"carrier_chain":[94020,124228,24929,0],"carrier_ranks":[1,20,2],"deliver_after_root":2463,"deliver_frame":24929,"mix_frame":124228,"passive":663,"passive_chain":[94017,124228,0],"passive_ranks":[1,22],"receivers":[657,658],"undo_frame":0},{"carrier":664,"carrier_chain":[94016,124230,24955,0],"carrier_ranks":[1,20,2],"deliver_after_root":2495,"deliver_frame":24955,"mix_frame":124230,"passive":667,"passive_chain":[94013,124230,0],"passive_ranks":[1,22],"receivers":[669,670],"undo_frame":0},{"carrier":669,"carrier_chain":[94011,124232,24949,0],"carrier_ranks":[1,20,2],"deliver_after_root":2492,"deliver_frame":24949,"mix_frame":124232,"passive":670,"passive_chain":[94010,124232,0],"passive_ranks":[1,22],"receivers":[664,667],"undo_frame":0},{"carrier":665,"carrier_chain":[94015,124234,24953,0],"carrier_ranks":[1,20,2],"deliver_after_root":2494,"deliver_frame":24953,"mix_frame":124234,"passive":666,"passive_chain":[94014,124234,0],"passive_ranks":[1,22],"receivers":[668,671],"undo_frame":0},{"carrier":668,"carrier_chain":[94012,124236,24951,0],"carrier_ranks":[1,20,2],"deliver_after_root":2493,"deliver_frame":24951,"mix_frame":124236,"passive":671,"passive_chain":[94009,124236,0],"passive_ranks":[1,22],"receivers":[665,666],"undo_frame":0},{"carrier":672,"carrier_chain":[94008,124238,24977,0],"carrier_ranks":[1,20,2],"deliver_after_root":2525,"deliver_frame":24977,"mix_frame":124238,"passive":675,"passive_chain":[94005,124238,0],"passive_ranks":[1,22],"receivers":[677,678],"undo_frame":0},{"carrier":677,"carrier_chain":[94003,124240,24971,0],"carrier_ranks":[1,20,2],"deliver_after_root":2522,"deliver_frame":24971,"mix_frame":124240,"passive":678,"passive_chain":[94002,124240,0],"passive_ranks":[1,22],"receivers":[672,675],"undo_frame":0},{"carrier":673,"carrier_chain":[94007,124242,24975,0],"carrier_ranks":[1,20,2],"deliver_after_root":2524,"deliver_frame":24975,"mix_frame":124242,"passive":674,"passive_chain":[94006,124242,0],"passive_ranks":[1,22],"receivers":[676,679],"undo_frame":0},{"carrier":676,"carrier_chain":[94004,124244,24973,0],"carrier_ranks":[1,20,2],"deliver_after_root":2523,"deliver_frame":24973,"mix_frame":124244,"passive":679,"passive_chain":[94001,124244,0],"passive_ranks":[1,22],"receivers":[673,674],"undo_frame":0},{"carrier":680,"carrier_chain":[94000,124246,24999,0],"carrier_ranks":[1,20,2],"deliver_after_root":2555,"deliver_frame":24999,"mix_frame":124246,"passive":683,"passive_chain":[93997,124246,0],"passive_ranks":[1,22],"receivers":[685,686],"undo_frame":0},{"carrier":685,"carrier_chain":[93995,124248,24993,0],"carrier_ranks":[1,20,2],"deliver_after_root":2552,"deliver_frame":24993,"mix_frame":124248,"passive":686,"passive_chain":[93994,124248,0],"passive_ranks":[1,22],"receivers":[680,683],"undo_frame":0},{"carrier":681,"carrier_chain":[93999,124250,24997,0],"carrier_ranks":[1,20,2],"deliver_after_root":2554,"deliver_frame":24997,"mix_frame":124250,"passive":682,"passive_chain":[93998,124250,0],"passive_ranks":[1,22],"receivers":[684,687],"undo_frame":0},{"carrier":684,"carrier_chain":[93996,124252,24995,0],"carrier_ranks":[1,20,2],"deliver_after_root":2553,"deliver_frame":24995,"mix_frame":124252,"passive":687,"passive_chain":[93993,124252,0],"passive_ranks":[1,22],"receivers":[681,682],"undo_frame":0},{"carrier":688,"carrier_chain":[93992,124254,25021,0],"carrier_ranks":[1,20,2],"deliver_after_root":2585,"deliver_frame":25021,"mix_frame":124254,"passive":691,"passive_chain":[93989,124254,0],"passive_ranks":[1,22],"receivers":[693,694],"undo_frame":0},{"carrier":693,"carrier_chain":[93987,124256,25015,0],"carrier_ranks":[1,20,2],"deliver_after_root":2582,"deliver_frame":25015,"mix_frame":124256,"passive":694,"passive_chain":[93986,124256,0],"passive_ranks":[1,22],"receivers":[688,691],"undo_frame":0},{"carrier":689,"carrier_chain":[93991,124258,25019,0],"carrier_ranks":[1,20,2],"deliver_after_root":2584,"deliver_frame":25019,"mix_frame":124258,"passive":690,"passive_chain":[93990,124258,0],"passive_ranks":[1,22],"receivers":[692,695],"undo_frame":0},{"carrier":692,"carrier_chain":[93988,124260,25017,0],"carrier_ranks":[1,20,2],"deliver_after_root":2583,"deliver_frame":25017,"mix_frame":124260,"passive":695,"passive_chain":[93985,124260,0],"passive_ranks":[1,22],"receivers":[689,690],"undo_frame":0},{"carrier":696,"carrier_chain":[93984,124262,25043,0],"carrier_ranks":[1,20,2],"deliver_after_root":2615,"deliver_frame":25043,"mix_frame":124262,"passive":699,"passive_chain":[93981,124262,0],"passive_ranks":[1,22],"receivers":[701,702],"undo_frame":0},{"carrier":701,"carrier_chain":[93979,124264,25037,0],"carrier_ranks":[1,20,2],"deliver_after_root":2612,"deliver_frame":25037,"mix_frame":124264,"passive":702,"passive_chain":[93978,124264,0],"passive_ranks":[1,22],"receivers":[696,699],"undo_frame":0},{"carrier":697,"carrier_chain":[93983,124266,25041,0],"carrier_ranks":[1,20,2],"deliver_after_root":2614,"deliver_frame":25041,"mix_frame":124266,"passive":698,"passive_chain":[93982,124266,0],"passive_ranks":[1,22],"receivers":[700,703],"undo_frame":0},{"carrier":700,"carrier_chain":[93980,124268,25039,0],"carrier_ranks":[1,20,2],"deliver_after_root":2613,"deliver_frame":25039,"mix_frame":124268,"passive":703,"passive_chain":[93977,124268,0],"passive_ranks":[1,22],"receivers":[697,698],"undo_frame":0},{"carrier":704,"carrier_chain":[93976,124270,25065,0],"carrier_ranks":[1,20,2],"deliver_after_root":2645,"deliver_frame":25065,"mix_frame":124270,"passive":707,"passive_chain":[93973,124270,0],"passive_ranks":[1,22],"receivers":[709,710],"undo_frame":0},{"carrier":709,"carrier_chain":[93971,124272,25059,0],"carrier_ranks":[1,20,2],"deliver_after_root":2642,"deliver_frame":25059,"mix_frame":124272,"passive":710,"passive_chain":[93970,124272,0],"passive_ranks":[1,22],"receivers":[704,707],"undo_frame":0},{"carrier":705,"carrier_chain":[93975,124274,25063,0],"carrier_ranks":[1,20,2],"deliver_after_root":2644,"deliver_frame":25063,"mix_frame":124274,"passive":706,"passive_chain":[93974,124274,0],"passive_ranks":[1,22],"receivers":[708,711],"undo_frame":0},{"carrier":708,"carrier_chain":[93972,124276,25061,0],"carrier_ranks":[1,20,2],"deliver_after_root":2643,"deliver_frame":25061,"mix_frame":124276,"passive":711,"passive_chain":[93969,124276,0],"passive_ranks":[1,22],"receivers":[705,706],"undo_frame":0},{"carrier":712,"carrier_chain":[93968,124278,25087,0],"carrier_ranks":[1,20,2],"deliver_after_root":2675,"deliver_frame":25087,"mix_frame":124278,"passive":715,"passive_chain":[93965,124278,0],"passive_ranks":[1,22],"receivers":[717,718],"undo_frame":0},{"carrier":717,"carrier_chain":[93963,124280,25081,0],"carrier_ranks":[1,20,2],"deliver_after_root":2672,"deliver_frame":25081,"mix_frame":124280,"passive":718,"passive_chain":[93962,124280,0],"passive_ranks":[1,22],"receivers":[712,715],"undo_frame":0},{"carrier":713,"carrier_chain":[93967,124282,25085,0],"carrier_ranks":[1,20,2],"deliver_after_root":2674,"deliver_frame":25085,"mix_frame":124282,"passive":714,"passive_chain":[93966,124282,0],"passive_ranks":[1,22],"receivers":[716,719],"undo_frame":0},{"carrier":716,"carrier_chain":[93964,124284,25083,0],"carrier_ranks":[1,20,2],"deliver_after_root":2673,"deliver_frame":25083,"mix_frame":124284,"passive":719,"passive_chain":[93961,124284,0],"passive_ranks":[1,22],"receivers":[713,714],"undo_frame":0},{"carrier":720,"carrier_chain":[93960,124286,25109,0],"carrier_ranks":[1,20,2],"deliver_after_root":2705,"deliver_frame":25109,"mix_frame":124286,"passive":723,"passive_chain":[93957,124286,0],"passive_ranks":[1,22],"receivers":[725,726],"undo_frame":0},{"carrier":725,"carrier_chain":[93955,124288,25103,0],"carrier_ranks":[1,20,2],"deliver_after_root":2702,"deliver_frame":25103,"mix_frame":124288,"passive":726,"passive_chain":[93954,124288,0],"passive_ranks":[1,22],"receivers":[720,723],"undo_frame":0},{"carrier":721,"carrier_chain":[93959,124290,25107,0],"carrier_ranks":[1,20,2],"deliver_after_root":2704,"deliver_frame":25107,"mix_frame":124290,"passive":722,"passive_chain":[93958,124290,0],"passive_ranks":[1,22],"receivers":[724,727],"undo_frame":0},{"carrier":724,"carrier_chain":[93956,124292,25105,0],"carrier_ranks":[1,20,2],"deliver_after_root":2703,"deliver_frame":25105,"mix_frame":124292,"passive":727,"passive_chain":[93953,124292,0],"passive_ranks":[1,22],"receivers":[721,722],"undo_frame":0},{"carrier":728,"carrier_chain":[93952,124294,25131,0],"carrier_ranks":[1,20,2],"deliver_after_root":2735,"deliver_frame":25131,"mix_frame":124294,"passive":731,"passive_chain":[93949,124294,0],"passive_ranks":[1,22],"receivers":[733,734],"undo_frame":0},{"carrier":733,"carrier_chain":[93947,124296,25125,0],"carrier_ranks":[1,20,2],"deliver_after_root":2732,"deliver_frame":25125,"mix_frame":124296,"passive":734,"passive_chain":[93946,124296,0],"passive_ranks":[1,22],"receivers":[728,731],"undo_frame":0},{"carrier":729,"carrier_chain":[93951,124298,25129,0],"carrier_ranks":[1,20,2],"deliver_after_root":2734,"deliver_frame":25129,"mix_frame":124298,"passive":730,"passive_chain":[93950,124298,0],"passive_ranks":[1,22],"receivers":[732,735],"undo_frame":0},{"carrier":732,"carrier_chain":[93948,124300,25127,0],"carrier_ranks":[1,20,2],"deliver_after_root":2733,"deliver_frame":25127,"mix_frame":124300,"passive":735,"passive_chain":[93945,124300,0],"passive_ranks":[1,22],"receivers":[729,730],"undo_frame":0},{"carrier":736,"carrier_chain":[93944,124302,25153,0],"carrier_ranks":[1,20,2],"deliver_after_root":2765,"deliver_frame":25153,"mix_frame":124302,"passive":739,"passive_chain":[93941,124302,0],"passive_ranks":[1,22],"receivers":[741,742],"undo_frame":0},{"carrier":741,"carrier_chain":[93939,124304,25147,0],"carrier_ranks":[1,20,2],"deliver_after_root":2762,"deliver_frame":25147,"mix_frame":124304,"passive":742,"passive_chain":[93938,124304,0],"passive_ranks":[1,22],"receivers":[736,739],"undo_frame":0},{"carrier":737,"carrier_chain":[93943,124306,25151,0],"carrier_ranks":[1,20,2],"deliver_after_root":2764,"deliver_frame":25151,"mix_frame":124306,"passive":738,"passive_chain":[93942,124306,0],"passive_ranks":[1,22],"receivers":[740,743],"undo_frame":0},{"carrier":740,"carrier_chain":[93940,124308,25149,0],"carrier_ranks":[1,20,2],"deliver_after_root":2763,"deliver_frame":25149,"mix_frame":124308,"passive":743,"passive_chain":[93937,124308,0],"passive_ranks":[1,22],"receivers":[737,738],"undo_frame":0},{"carrier":744,"carrier_chain":[93936,124310,25175,0],"carrier_ranks":[1,20,2],"deliver_after_root":2795,"deliver_frame":25175,"mix_frame":124310,"passive":747,"passive_chain":[93933,124310,0],"passive_ranks":[1,22],"receivers":[749,750],"undo_frame":0},{"carrier":749,"carrier_chain":[93931,124312,25169,0],"carrier_ranks":[1,20,2],"deliver_after_root":2792,"deliver_frame":25169,"mix_frame":124312,"passive":750,"passive_chain":[93930,124312,0],"passive_ranks":[1,22],"receivers":[744,747],"undo_frame":0},{"carrier":745,"carrier_chain":[93935,124314,25173,0],"carrier_ranks":[1,20,2],"deliver_after_root":2794,"deliver_frame":25173,"mix_frame":124314,"passive":746,"passive_chain":[93934,124314,0],"passive_ranks":[1,22],"receivers":[748,751],"undo_frame":0},{"carrier":748,"carrier_chain":[93932,124316,25171,0],"carrier_ranks":[1,20,2],"deliver_after_root":2793,"deliver_frame":25171,"mix_frame":124316,"passive":751,"passive_chain":[93929,124316,0],"passive_ranks":[1,22],"receivers":[745,746],"undo_frame":0},{"carrier":752,"carrier_chain":[93928,124318,25197,0],"carrier_ranks":[1,20,2],"deliver_after_root":2825,"deliver_frame":25197,"mix_frame":124318,"passive":755,"passive_chain":[93925,124318,0],"passive_ranks":[1,22],"receivers":[757,758],"undo_frame":0},{"carrier":757,"carrier_chain":[93923,124320,25191,0],"carrier_ranks":[1,20,2],"deliver_after_root":2822,"deliver_frame":25191,"mix_frame":124320,"passive":758,"passive_chain":[93922,124320,0],"passive_ranks":[1,22],"receivers":[752,755],"undo_frame":0},{"carrier":753,"carrier_chain":[93927,124322,25195,0],"carrier_ranks":[1,20,2],"deliver_after_root":2824,"deliver_frame":25195,"mix_frame":124322,"passive":754,"passive_chain":[93926,124322,0],"passive_ranks":[1,22],"receivers":[756,759],"undo_frame":0},{"carrier":756,"carrier_chain":[93924,124324,25193,0],"carrier_ranks":[1,20,2],"deliver_after_root":2823,"deliver_frame":25193,"mix_frame":124324,"passive":759,"passive_chain":[93921,124324,0],"passive_ranks":[1,22],"receivers":[753,754],"undo_frame":0},{"carrier":760,"carrier_chain":[93920,124326,25219,0],"carrier_ranks":[1,20,2],"deliver_after_root":2855,"deliver_frame":25219,"mix_frame":124326,"passive":763,"passive_chain":[93917,124326,0],"passive_ranks":[1,22],"receivers":[765,766],"undo_frame":0},{"carrier":765,"carrier_chain":[93915,124328,25213,0],"carrier_ranks":[1,20,2],"deliver_after_root":2852,"deliver_frame":25213,"mix_frame":124328,"passive":766,"passive_chain":[93914,124328,0],"passive_ranks":[1,22],"receivers":[760,763],"undo_frame":0},{"carrier":761,"carrier_chain":[93919,124330,25217,0],"carrier_ranks":[1,20,2],"deliver_after_root":2854,"deliver_frame":25217,"mix_frame":124330,"passive":762,"passive_chain":[93918,124330,0],"passive_ranks":[1,22],"receivers":[764,767],"undo_frame":0},{"carrier":764,"carrier_chain":[93916,124332,25215,0],"carrier_ranks":[1,20,2],"deliver_after_root":2853,"deliver_frame":25215,"mix_frame":124332,"passive":767,"passive_chain":[93913,124332,0],"passive_ranks":[1,22],"receivers":[761,762],"undo_frame":0},{"carrier":768,"carrier_chain":[93912,124334,25241,0],"carrier_ranks":[1,20,2],"deliver_after_root":2885,"deliver_frame":25241,"mix_frame":124334,"passive":771,"passive_chain":[93909,124334,0],"passive_ranks":[1,22],"receivers":[773,774],"undo_frame":0},{"carrier":773,"carrier_chain":[93907,124336,25235,0],"carrier_ranks":[1,20,2],"deliver_after_root":2882,"deliver_frame":25235,"mix_frame":124336,"passive":774,"passive_chain":[93906,124336,0],"passive_ranks":[1,22],"receivers":[768,771],"undo_frame":0},{"carrier":769,"carrier_chain":[93911,124338,25239,0],"carrier_ranks":[1,20,2],"deliver_after_root":2884,"deliver_frame":25239,"mix_frame":124338,"passive":770,"passive_chain":[93910,124338,0],"passive_ranks":[1,22],"receivers":[772,775],"undo_frame":0},{"carrier":772,"carrier_chain":[93908,124340,25237,0],"carrier_ranks":[1,20,2],"deliver_after_root":2883,"deliver_frame":25237,"mix_frame":124340,"passive":775,"passive_chain":[93905,124340,0],"passive_ranks":[1,22],"receivers":[769,770],"undo_frame":0},{"carrier":776,"carrier_chain":[93904,124342,25263,0],"carrier_ranks":[1,20,2],"deliver_after_root":2915,"deliver_frame":25263,"mix_frame":124342,"passive":779,"passive_chain":[93901,124342,0],"passive_ranks":[1,22],"receivers":[781,782],"undo_frame":0},{"carrier":781,"carrier_chain":[93899,124344,25257,0],"carrier_ranks":[1,20,2],"deliver_after_root":2912,"deliver_frame":25257,"mix_frame":124344,"passive":782,"passive_chain":[93898,124344,0],"passive_ranks":[1,22],"receivers":[776,779],"undo_frame":0},{"carrier":777,"carrier_chain":[93903,124346,25261,0],"carrier_ranks":[1,20,2],"deliver_after_root":2914,"deliver_frame":25261,"mix_frame":124346,"passive":778,"passive_chain":[93902,124346,0],"passive_ranks":[1,22],"receivers":[780,783],"undo_frame":0},{"carrier":780,"carrier_chain":[93900,124348,25259,0],"carrier_ranks":[1,20,2],"deliver_after_root":2913,"deliver_frame":25259,"mix_frame":124348,"passive":783,"passive_chain":[93897,124348,0],"passive_ranks":[1,22],"receivers":[777,778],"undo_frame":0},{"carrier":784,"carrier_chain":[93896,124350,25285,0],"carrier_ranks":[1,20,2],"deliver_after_root":2945,"deliver_frame":25285,"mix_frame":124350,"passive":787,"passive_chain":[93893,124350,0],"passive_ranks":[1,22],"receivers":[789,790],"undo_frame":0},{"carrier":789,"carrier_chain":[93891,124352,25279,0],"carrier_ranks":[1,20,2],"deliver_after_root":2942,"deliver_frame":25279,"mix_frame":124352,"passive":790,"passive_chain":[93890,124352,0],"passive_ranks":[1,22],"receivers":[784,787],"undo_frame":0},{"carrier":785,"carrier_chain":[93895,124354,25283,0],"carrier_ranks":[1,20,2],"deliver_after_root":2944,"deliver_frame":25283,"mix_frame":124354,"passive":786,"passive_chain":[93894,124354,0],"passive_ranks":[1,22],"receivers":[788,791],"undo_frame":0},{"carrier":788,"carrier_chain":[93892,124356,25281,0],"carrier_ranks":[1,20,2],"deliver_after_root":2943,"deliver_frame":25281,"mix_frame":124356,"passive":791,"passive_chain":[93889,124356,0],"passive_ranks":[1,22],"receivers":[785,786],"undo_frame":0},{"carrier":792,"carrier_chain":[93888,124358,25307,0],"carrier_ranks":[1,20,2],"deliver_after_root":2975,"deliver_frame":25307,"mix_frame":124358,"passive":795,"passive_chain":[93885,124358,0],"passive_ranks":[1,22],"receivers":[797,798],"undo_frame":0},{"carrier":797,"carrier_chain":[93883,124360,25301,0],"carrier_ranks":[1,20,2],"deliver_after_root":2972,"deliver_frame":25301,"mix_frame":124360,"passive":798,"passive_chain":[93882,124360,0],"passive_ranks":[1,22],"receivers":[792,795],"undo_frame":0},{"carrier":793,"carrier_chain":[93887,124362,25305,0],"carrier_ranks":[1,20,2],"deliver_after_root":2974,"deliver_frame":25305,"mix_frame":124362,"passive":794,"passive_chain":[93886,124362,0],"passive_ranks":[1,22],"receivers":[796,799],"undo_frame":0},{"carrier":796,"carrier_chain":[93884,124364,25303,0],"carrier_ranks":[1,20,2],"deliver_after_root":2973,"deliver_frame":25303,"mix_frame":124364,"passive":799,"passive_chain":[93881,124364,0],"passive_ranks":[1,22],"receivers":[793,794],"undo_frame":0},{"carrier":800,"carrier_chain":[93880,124366,25329,0],"carrier_ranks":[1,20,2],"deliver_after_root":3005,"deliver_frame":25329,"mix_frame":124366,"passive":803,"passive_chain":[93877,124366,0],"passive_ranks":[1,22],"receivers":[805,806],"undo_frame":0},{"carrier":805,"carrier_chain":[93875,124368,25323,0],"carrier_ranks":[1,20,2],"deliver_after_root":3002,"deliver_frame":25323,"mix_frame":124368,"passive":806,"passive_chain":[93874,124368,0],"passive_ranks":[1,22],"receivers":[800,803],"undo_frame":0},{"carrier":801,"carrier_chain":[93879,124370,25327,0],"carrier_ranks":[1,20,2],"deliver_after_root":3004,"deliver_frame":25327,"mix_frame":124370,"passive":802,"passive_chain":[93878,124370,0],"passive_ranks":[1,22],"receivers":[804,807],"undo_frame":0},{"carrier":804,"carrier_chain":[93876,124372,25325,0],"carrier_ranks":[1,20,2],"deliver_after_root":3003,"deliver_frame":25325,"mix_frame":124372,"passive":807,"passive_chain":[93873,124372,0],"passive_ranks":[1,22],"receivers":[801,802],"undo_frame":0},{"carrier":808,"carrier_chain":[93872,124374,25351,0],"carrier_ranks":[1,20,2],"deliver_after_root":3035,"deliver_frame":25351,"mix_frame":124374,"passive":811,"passive_chain":[93869,124374,0],"passive_ranks":[1,22],"receivers":[813,814],"undo_frame":0},{"carrier":813,"carrier_chain":[93867,124376,25345,0],"carrier_ranks":[1,20,2],"deliver_after_root":3032,"deliver_frame":25345,"mix_frame":124376,"passive":814,"passive_chain":[93866,124376,0],"passive_ranks":[1,22],"receivers":[808,811],"undo_frame":0},{"carrier":809,"carrier_chain":[93871,124378,25349,0],"carrier_ranks":[1,20,2],"deliver_after_root":3034,"deliver_frame":25349,"mix_frame":124378,"passive":810,"passive_chain":[93870,124378,0],"passive_ranks":[1,22],"receivers":[812,815],"undo_frame":0},{"carrier":812,"carrier_chain":[93868,124380,25347,0],"carrier_ranks":[1,20,2],"deliver_after_root":3033,"deliver_frame":25347,"mix_frame":124380,"passive":815,"passive_chain":[93865,124380,0],"passive_ranks":[1,22],"receivers":[809,810],"undo_frame":0},{"carrier":816,"carrier_chain":[93864,124382,25373,0],"carrier_ranks":[1,20,2],"deliver_after_root":3065,"deliver_frame":25373,"mix_frame":124382,"passive":819,"passive_chain":[93861,124382,0],"passive_ranks":[1,22],"receivers":[821,822],"undo_frame":0},{"carrier":821,"carrier_chain":[93859,124384,25367,0],"carrier_ranks":[1,20,2],"deliver_after_root":3062,"deliver_frame":25367,"mix_frame":124384,"passive":822,"passive_chain":[93858,124384,0],"passive_ranks":[1,22],"receivers":[816,819],"undo_frame":0},{"carrier":817,"carrier_chain":[93863,124386,25371,0],"carrier_ranks":[1,20,2],"deliver_after_root":3064,"deliver_frame":25371,"mix_frame":124386,"passive":818,"passive_chain":[93862,124386,0],"passive_ranks":[1,22],"receivers":[820,823],"undo_frame":0},{"carrier":820,"carrier_chain":[93860,124388,25369,0],"carrier_ranks":[1,20,2],"deliver_after_root":3063,"deliver_frame":25369,"mix_frame":124388,"passive":823,"passive_chain":[93857,124388,0],"passive_ranks":[1,22],"receivers":[817,818],"undo_frame":0},{"carrier":824,"carrier_chain":[93856,124390,25395,0],"carrier_ranks":[1,20,2],"deliver_after_root":3095,"deliver_frame":25395,"mix_frame":124390,"passive":827,"passive_chain":[93853,124390,0],"passive_ranks":[1,22],"receivers":[829,830],"undo_frame":0},{"carrier":829,"carrier_chain":[93851,124392,25389,0],"carrier_ranks":[1,20,2],"deliver_after_root":3092,"deliver_frame":25389,"mix_frame":124392,"passive":830,"passive_chain":[93850,124392,0],"passive_ranks":[1,22],"receivers":[824,827],"undo_frame":0},{"carrier":825,"carrier_chain":[93855,124394,25393,0],"carrier_ranks":[1,20,2],"deliver_after_root":3094,"deliver_frame":25393,"mix_frame":124394,"passive":826,"passive_chain":[93854,124394,0],"passive_ranks":[1,22],"receivers":[828,831],"undo_frame":0},{"carrier":828,"carrier_chain":[93852,124396,25391,0],"carrier_ranks":[1,20,2],"deliver_after_root":3093,"deliver_frame":25391,"mix_frame":124396,"passive":831,"passive_chain":[93849,124396,0],"passive_ranks":[1,22],"receivers":[825,826],"undo_frame":0},{"carrier":832,"carrier_chain":[93848,124398,25417,0],"carrier_ranks":[1,20,2],"deliver_after_root":3125,"deliver_frame":25417,"mix_frame":124398,"passive":835,"passive_chain":[93845,124398,0],"passive_ranks":[1,22],"receivers":[837,838],"undo_frame":0},{"carrier":837,"carrier_chain":[93843,124400,25411,0],"carrier_ranks":[1,20,2],"deliver_after_root":3122,"deliver_frame":25411,"mix_frame":124400,"passive":838,"passive_chain":[93842,124400,0],"passive_ranks":[1,22],"receivers":[832,835],"undo_frame":0},{"carrier":833,"carrier_chain":[93847,124402,25415,0],"carrier_ranks":[1,20,2],"deliver_after_root":3124,"deliver_frame":25415,"mix_frame":124402,"passive":834,"passive_chain":[93846,124402,0],"passive_ranks":[1,22],"receivers":[836,839],"undo_frame":0},{"carrier":836,"carrier_chain":[93844,124404,25413,0],"carrier_ranks":[1,20,2],"deliver_after_root":3123,"deliver_frame":25413,"mix_frame":124404,"passive":839,"passive_chain":[93841,124404,0],"passive_ranks":[1,22],"receivers":[833,834],"undo_frame":0},{"carrier":840,"carrier_chain":[93840,124406,25439,0],"carrier_ranks":[1,20,2],"deliver_after_root":3155,"deliver_frame":25439,"mix_frame":124406,"passive":843,"passive_chain":[93837,124406,0],"passive_ranks":[1,22],"receivers":[845,846],"undo_frame":0},{"carrier":845,"carrier_chain":[93835,124408,25433,0],"carrier_ranks":[1,20,2],"deliver_after_root":3152,"deliver_frame":25433,"mix_frame":124408,"passive":846,"passive_chain":[93834,124408,0],"passive_ranks":[1,22],"receivers":[840,843],"undo_frame":0},{"carrier":841,"carrier_chain":[93839,124410,25437,0],"carrier_ranks":[1,20,2],"deliver_after_root":3154,"deliver_frame":25437,"mix_frame":124410,"passive":842,"passive_chain":[93838,124410,0],"passive_ranks":[1,22],"receivers":[844,847],"undo_frame":0},{"carrier":844,"carrier_chain":[93836,124412,25435,0],"carrier_ranks":[1,20,2],"deliver_after_root":3153,"deliver_frame":25435,"mix_frame":124412,"passive":847,"passive_chain":[93833,124412,0],"passive_ranks":[1,22],"receivers":[841,842],"undo_frame":0},{"carrier":848,"carrier_chain":[93832,124414,25461,0],"carrier_ranks":[1,20,2],"deliver_after_root":3185,"deliver_frame":25461,"mix_frame":124414,"passive":851,"passive_chain":[93829,124414,0],"passive_ranks":[1,22],"receivers":[853,854],"undo_frame":0},{"carrier":853,"carrier_chain":[93827,124416,25455,0],"carrier_ranks":[1,20,2],"deliver_after_root":3182,"deliver_frame":25455,"mix_frame":124416,"passive":854,"passive_chain":[93826,124416,0],"passive_ranks":[1,22],"receivers":[848,851],"undo_frame":0},{"carrier":849,"carrier_chain":[93831,124418,25459,0],"carrier_ranks":[1,20,2],"deliver_after_root":3184,"deliver_frame":25459,"mix_frame":124418,"passive":850,"passive_chain":[93830,124418,0],"passive_ranks":[1,22],"receivers":[852,855],"undo_frame":0},{"carrier":852,"carrier_chain":[93828,124420,25457,0],"carrier_ranks":[1,20,2],"deliver_after_root":3183,"deliver_frame":25457,"mix_frame":124420,"passive":855,"passive_chain":[93825,124420,0],"passive_ranks":[1,22],"receivers":[849,850],"undo_frame":0},{"carrier":856,"carrier_chain":[93824,124422,25483,0],"carrier_ranks":[1,20,2],"deliver_after_root":3215,"deliver_frame":25483,"mix_frame":124422,"passive":859,"passive_chain":[93821,124422,0],"passive_ranks":[1,22],"receivers":[861,862],"undo_frame":0},{"carrier":861,"carrier_chain":[93819,124424,25477,0],"carrier_ranks":[1,20,2],"deliver_after_root":3212,"deliver_frame":25477,"mix_frame":124424,"passive":862,"passive_chain":[93818,124424,0],"passive_ranks":[1,22],"receivers":[856,859],"undo_frame":0},{"carrier":857,"carrier_chain":[93823,124426,25481,0],"carrier_ranks":[1,20,2],"deliver_after_root":3214,"deliver_frame":25481,"mix_frame":124426,"passive":858,"passive_chain":[93822,124426,0],"passive_ranks":[1,22],"receivers":[860,863],"undo_frame":0},{"carrier":860,"carrier_chain":[93820,124428,25479,0],"carrier_ranks":[1,20,2],"deliver_after_root":3213,"deliver_frame":25479,"mix_frame":124428,"passive":863,"passive_chain":[93817,124428,0],"passive_ranks":[1,22],"receivers":[857,858],"undo_frame":0},{"carrier":864,"carrier_chain":[93816,124430,25505,0],"carrier_ranks":[1,20,2],"deliver_after_root":3245,"deliver_frame":25505,"mix_frame":124430,"passive":867,"passive_chain":[93813,124430,0],"passive_ranks":[1,22],"receivers":[869,870],"undo_frame":0},{"carrier":869,"carrier_chain":[93811,124432,25499,0],"carrier_ranks":[1,20,2],"deliver_after_root":3242,"deliver_frame":25499,"mix_frame":124432,"passive":870,"passive_chain":[93810,124432,0],"passive_ranks":[1,22],"receivers":[864,867],"undo_frame":0},{"carrier":865,"carrier_chain":[93815,124434,25503,0],"carrier_ranks":[1,20,2],"deliver_after_root":3244,"deliver_frame":25503,"mix_frame":124434,"passive":866,"passive_chain":[93814,124434,0],"passive_ranks":[1,22],"receivers":[868,871],"undo_frame":0},{"carrier":868,"carrier_chain":[93812,124436,25501,0],"carrier_ranks":[1,20,2],"deliver_after_root":3243,"deliver_frame":25501,"mix_frame":124436,"passive":871,"passive_chain":[93809,124436,0],"passive_ranks":[1,22],"receivers":[865,866],"undo_frame":0},{"carrier":872,"carrier_chain":[93808,124438,25527,0],"carrier_ranks":[1,20,2],"deliver_after_root":3275,"deliver_frame":25527,"mix_frame":124438,"passive":875,"passive_chain":[93805,124438,0],"passive_ranks":[1,22],"receivers":[877,878],"undo_frame":0},{"carrier":877,"carrier_chain":[93803,124440,25521,0],"carrier_ranks":[1,20,2],"deliver_after_root":3272,"deliver_frame":25521,"mix_frame":124440,"passive":878,"passive_chain":[93802,124440,0],"passive_ranks":[1,22],"receivers":[872,875],"undo_frame":0},{"carrier":873,"carrier_chain":[93807,124442,25525,0],"carrier_ranks":[1,20,2],"deliver_after_root":3274,"deliver_frame":25525,"mix_frame":124442,"passive":874,"passive_chain":[93806,124442,0],"passive_ranks":[1,22],"receivers":[876,879],"undo_frame":0},{"carrier":876,"carrier_chain":[93804,124444,25523,0],"carrier_ranks":[1,20,2],"deliver_after_root":3273,"deliver_frame":25523,"mix_frame":124444,"passive":879,"passive_chain":[93801,124444,0],"passive_ranks":[1,22],"receivers":[873,874],"undo_frame":0},{"carrier":880,"carrier_chain":[93800,124446,25549,0],"carrier_ranks":[1,20,2],"deliver_after_root":3305,"deliver_frame":25549,"mix_frame":124446,"passive":883,"passive_chain":[93797,124446,0],"passive_ranks":[1,22],"receivers":[885,886],"undo_frame":0},{"carrier":885,"carrier_chain":[93795,124448,25543,0],"carrier_ranks":[1,20,2],"deliver_after_root":3302,"deliver_frame":25543,"mix_frame":124448,"passive":886,"passive_chain":[93794,124448,0],"passive_ranks":[1,22],"receivers":[880,883],"undo_frame":0},{"carrier":881,"carrier_chain":[93799,124450,25547,0],"carrier_ranks":[1,20,2],"deliver_after_root":3304,"deliver_frame":25547,"mix_frame":124450,"passive":882,"passive_chain":[93798,124450,0],"passive_ranks":[1,22],"receivers":[884,887],"undo_frame":0},{"carrier":884,"carrier_chain":[93796,124452,25545,0],"carrier_ranks":[1,20,2],"deliver_after_root":3303,"deliver_frame":25545,"mix_frame":124452,"passive":887,"passive_chain":[93793,124452,0],"passive_ranks":[1,22],"receivers":[881,882],"undo_frame":0},{"carrier":888,"carrier_chain":[93792,124454,25571,0],"carrier_ranks":[1,20,2],"deliver_after_root":3335,"deliver_frame":25571,"mix_frame":124454,"passive":891,"passive_chain":[93789,124454,0],"passive_ranks":[1,22],"receivers":[893,894],"undo_frame":0},{"carrier":893,"carrier_chain":[93787,124456,25565,0],"carrier_ranks":[1,20,2],"deliver_after_root":3332,"deliver_frame":25565,"mix_frame":124456,"passive":894,"passive_chain":[93786,124456,0],"passive_ranks":[1,22],"receivers":[888,891],"undo_frame":0},{"carrier":889,"carrier_chain":[93791,124458,25569,0],"carrier_ranks":[1,20,2],"deliver_after_root":3334,"deliver_frame":25569,"mix_frame":124458,"passive":890,"passive_chain":[93790,124458,0],"passive_ranks":[1,22],"receivers":[892,895],"undo_frame":0},{"carrier":892,"carrier_chain":[93788,124460,25567,0],"carrier_ranks":[1,20,2],"deliver_after_root":3333,"deliver_frame":25567,"mix_frame":124460,"passive":895,"passive_chain":[93785,124460,0],"passive_ranks":[1,22],"receivers":[889,890],"undo_frame":0},{"carrier":896,"carrier_chain":[93784,124462,25593,0],"carrier_ranks":[1,20,2],"deliver_after_root":3365,"deliver_frame":25593,"mix_frame":124462,"passive":899,"passive_chain":[93781,124462,0],"passive_ranks":[1,22],"receivers":[901,902],"undo_frame":0},{"carrier":901,"carrier_chain":[93779,124464,25587,0],"carrier_ranks":[1,20,2],"deliver_after_root":3362,"deliver_frame":25587,"mix_frame":124464,"passive":902,"passive_chain":[93778,124464,0],"passive_ranks":[1,22],"receivers":[896,899],"undo_frame":0},{"carrier":897,"carrier_chain":[93783,124466,25591,0],"carrier_ranks":[1,20,2],"deliver_after_root":3364,"deliver_frame":25591,"mix_frame":124466,"passive":898,"passive_chain":[93782,124466,0],"passive_ranks":[1,22],"receivers":[900,903],"undo_frame":0},{"carrier":900,"carrier_chain":[93780,124468,25589,0],"carrier_ranks":[1,20,2],"deliver_after_root":3363,"deliver_frame":25589,"mix_frame":124468,"passive":903,"passive_chain":[93777,124468,0],"passive_ranks":[1,22],"receivers":[897,898],"undo_frame":0},{"carrier":904,"carrier_chain":[93776,124470,25615,0],"carrier_ranks":[1,20,2],"deliver_after_root":3395,"deliver_frame":25615,"mix_frame":124470,"passive":907,"passive_chain":[93773,124470,0],"passive_ranks":[1,22],"receivers":[909,910],"undo_frame":0},{"carrier":909,"carrier_chain":[93771,124472,25609,0],"carrier_ranks":[1,20,2],"deliver_after_root":3392,"deliver_frame":25609,"mix_frame":124472,"passive":910,"passive_chain":[93770,124472,0],"passive_ranks":[1,22],"receivers":[904,907],"undo_frame":0},{"carrier":905,"carrier_chain":[93775,124474,25613,0],"carrier_ranks":[1,20,2],"deliver_after_root":3394,"deliver_frame":25613,"mix_frame":124474,"passive":906,"passive_chain":[93774,124474,0],"passive_ranks":[1,22],"receivers":[908,911],"undo_frame":0},{"carrier":908,"carrier_chain":[93772,124476,25611,0],"carrier_ranks":[1,20,2],"deliver_after_root":3393,"deliver_frame":25611,"mix_frame":124476,"passive":911,"passive_chain":[93769,124476,0],"passive_ranks":[1,22],"receivers":[905,906],"undo_frame":0},{"carrier":912,"carrier_chain":[93768,124478,25637,0],"carrier_ranks":[1,20,2],"deliver_after_root":3425,"deliver_frame":25637,"mix_frame":124478,"passive":915,"passive_chain":[93765,124478,0],"passive_ranks":[1,22],"receivers":[917,918],"undo_frame":0},{"carrier":917,"carrier_chain":[93763,124480,25631,0],"carrier_ranks":[1,20,2],"deliver_after_root":3422,"deliver_frame":25631,"mix_frame":124480,"passive":918,"passive_chain":[93762,124480,0],"passive_ranks":[1,22],"receivers":[912,915],"undo_frame":0},{"carrier":913,"carrier_chain":[93767,124482,25635,0],"carrier_ranks":[1,20,2],"deliver_after_root":3424,"deliver_frame":25635,"mix_frame":124482,"passive":914,"passive_chain":[93766,124482,0],"passive_ranks":[1,22],"receivers":[916,919],"undo_frame":0},{"carrier":916,"carrier_chain":[93764,124484,25633,0],"carrier_ranks":[1,20,2],"deliver_after_root":3423,"deliver_frame":25633,"mix_frame":124484,"passive":919,"passive_chain":[93761,124484,0],"passive_ranks":[1,22],"receivers":[913,914],"undo_frame":0},{"carrier":920,"carrier_chain":[93760,124486,25659,0],"carrier_ranks":[1,20,2],"deliver_after_root":3455,"deliver_frame":25659,"mix_frame":124486,"passive":923,"passive_chain":[93757,124486,0],"passive_ranks":[1,22],"receivers":[925,926],"undo_frame":0},{"carrier":925,"carrier_chain":[93755,124488,25653,0],"carrier_ranks":[1,20,2],"deliver_after_root":3452,"deliver_frame":25653,"mix_frame":124488,"passive":926,"passive_chain":[93754,124488,0],"passive_ranks":[1,22],"receivers":[920,923],"undo_frame":0},{"carrier":921,"carrier_chain":[93759,124490,25657,0],"carrier_ranks":[1,20,2],"deliver_after_root":3454,"deliver_frame":25657,"mix_frame":124490,"passive":922,"passive_chain":[93758,124490,0],"passive_ranks":[1,22],"receivers":[924,927],"undo_frame":0},{"carrier":924,"carrier_chain":[93756,124492,25655,0],"carrier_ranks":[1,20,2],"deliver_after_root":3453,"deliver_frame":25655,"mix_frame":124492,"passive":927,"passive_chain":[93753,124492,0],"passive_ranks":[1,22],"receivers":[921,922],"undo_frame":0},{"carrier":928,"carrier_chain":[93752,124494,25681,0],"carrier_ranks":[1,20,2],"deliver_after_root":3485,"deliver_frame":25681,"mix_frame":124494,"passive":931,"passive_chain":[93749,124494,0],"passive_ranks":[1,22],"receivers":[933,934],"undo_frame":0},{"carrier":933,"carrier_chain":[93747,124496,25675,0],"carrier_ranks":[1,20,2],"deliver_after_root":3482,"deliver_frame":25675,"mix_frame":124496,"passive":934,"passive_chain":[93746,124496,0],"passive_ranks":[1,22],"receivers":[928,931],"undo_frame":0},{"carrier":929,"carrier_chain":[93751,124498,25679,0],"carrier_ranks":[1,20,2],"deliver_after_root":3484,"deliver_frame":25679,"mix_frame":124498,"passive":930,"passive_chain":[93750,124498,0],"passive_ranks":[1,22],"receivers":[932,935],"undo_frame":0},{"carrier":932,"carrier_chain":[93748,124500,25677,0],"carrier_ranks":[1,20,2],"deliver_after_root":3483,"deliver_frame":25677,"mix_frame":124500,"passive":935,"passive_chain":[93745,124500,0],"passive_ranks":[1,22],"receivers":[929,930],"undo_frame":0},{"carrier":936,"carrier_chain":[93744,124502,25703,0],"carrier_ranks":[1,20,2],"deliver_after_root":3515,"deliver_frame":25703,"mix_frame":124502,"passive":939,"passive_chain":[93741,124502,0],"passive_ranks":[1,22],"receivers":[941,942],"undo_frame":0},{"carrier":941,"carrier_chain":[93739,124504,25697,0],"carrier_ranks":[1,20,2],"deliver_after_root":3512,"deliver_frame":25697,"mix_frame":124504,"passive":942,"passive_chain":[93738,124504,0],"passive_ranks":[1,22],"receivers":[936,939],"undo_frame":0},{"carrier":937,"carrier_chain":[93743,124506,25701,0],"carrier_ranks":[1,20,2],"deliver_after_root":3514,"deliver_frame":25701,"mix_frame":124506,"passive":938,"passive_chain":[93742,124506,0],"passive_ranks":[1,22],"receivers":[940,943],"undo_frame":0},{"carrier":940,"carrier_chain":[93740,124508,25699,0],"carrier_ranks":[1,20,2],"deliver_after_root":3513,"deliver_frame":25699,"mix_frame":124508,"passive":943,"passive_chain":[93737,124508,0],"passive_ranks":[1,22],"receivers":[937,938],"undo_frame":0},{"carrier":944,"carrier_chain":[93736,124510,25725,0],"carrier_ranks":[1,20,2],"deliver_after_root":3545,"deliver_frame":25725,"mix_frame":124510,"passive":947,"passive_chain":[93733,124510,0],"passive_ranks":[1,22],"receivers":[949,950],"undo_frame":0},{"carrier":949,"carrier_chain":[93731,124512,25719,0],"carrier_ranks":[1,20,2],"deliver_after_root":3542,"deliver_frame":25719,"mix_frame":124512,"passive":950,"passive_chain":[93730,124512,0],"passive_ranks":[1,22],"receivers":[944,947],"undo_frame":0},{"carrier":945,"carrier_chain":[93735,124514,25723,0],"carrier_ranks":[1,20,2],"deliver_after_root":3544,"deliver_frame":25723,"mix_frame":124514,"passive":946,"passive_chain":[93734,124514,0],"passive_ranks":[1,22],"receivers":[948,951],"undo_frame":0},{"carrier":948,"carrier_chain":[93732,124516,25721,0],"carrier_ranks":[1,20,2],"deliver_after_root":3543,"deliver_frame":25721,"mix_frame":124516,"passive":951,"passive_chain":[93729,124516,0],"passive_ranks":[1,22],"receivers":[945,946],"undo_frame":0},{"carrier":952,"carrier_chain":[93728,124518,25747,0],"carrier_ranks":[1,20,2],"deliver_after_root":3575,"deliver_frame":25747,"mix_frame":124518,"passive":955,"passive_chain":[93725,124518,0],"passive_ranks":[1,22],"receivers":[957,958],"undo_frame":0},{"carrier":957,"carrier_chain":[93723,124520,25741,0],"carrier_ranks":[1,20,2],"deliver_after_root":3572,"deliver_frame":25741,"mix_frame":124520,"passive":958,"passive_chain":[93722,124520,0],"passive_ranks":[1,22],"receivers":[952,955],"undo_frame":0},{"carrier":953,"carrier_chain":[93727,124522,25745,0],"carrier_ranks":[1,20,2],"deliver_after_root":3574,"deliver_frame":25745,"mix_frame":124522,"passive":954,"passive_chain":[93726,124522,0],"passive_ranks":[1,22],"receivers":[956,959],"undo_frame":0},{"carrier":956,"carrier_chain":[93724,124524,25743,0],"carrier_ranks":[1,20,2],"deliver_after_root":3573,"deliver_frame":25743,"mix_frame":124524,"passive":959,"passive_chain":[93721,124524,0],"passive_ranks":[1,22],"receivers":[953,954],"undo_frame":0},{"carrier":960,"carrier_chain":[93720,124526,25769,0],"carrier_ranks":[1,20,2],"deliver_after_root":3605,"deliver_frame":25769,"mix_frame":124526,"passive":963,"passive_chain":[93717,124526,0],"passive_ranks":[1,22],"receivers":[965,966],"undo_frame":0},{"carrier":965,"carrier_chain":[93715,124528,25763,0],"carrier_ranks":[1,20,2],"deliver_after_root":3602,"deliver_frame":25763,"mix_frame":124528,"passive":966,"passive_chain":[93714,124528,0],"passive_ranks":[1,22],"receivers":[960,963],"undo_frame":0},{"carrier":961,"carrier_chain":[93719,124530,25767,0],"carrier_ranks":[1,20,2],"deliver_after_root":3604,"deliver_frame":25767,"mix_frame":124530,"passive":962,"passive_chain":[93718,124530,0],"passive_ranks":[1,22],"receivers":[964,967],"undo_frame":0},{"carrier":964,"carrier_chain":[93716,124532,25765,0],"carrier_ranks":[1,20,2],"deliver_after_root":3603,"deliver_frame":25765,"mix_frame":124532,"passive":967,"passive_chain":[93713,124532,0],"passive_ranks":[1,22],"receivers":[961,962],"undo_frame":0},{"carrier":968,"carrier_chain":[93712,124534,25791,0],"carrier_ranks":[1,20,2],"deliver_after_root":3635,"deliver_frame":25791,"mix_frame":124534,"passive":971,"passive_chain":[93709,124534,0],"passive_ranks":[1,22],"receivers":[973,974],"undo_frame":0},{"carrier":973,"carrier_chain":[93707,124536,25785,0],"carrier_ranks":[1,20,2],"deliver_after_root":3632,"deliver_frame":25785,"mix_frame":124536,"passive":974,"passive_chain":[93706,124536,0],"passive_ranks":[1,22],"receivers":[968,971],"undo_frame":0},{"carrier":969,"carrier_chain":[93711,124538,25789,0],"carrier_ranks":[1,20,2],"deliver_after_root":3634,"deliver_frame":25789,"mix_frame":124538,"passive":970,"passive_chain":[93710,124538,0],"passive_ranks":[1,22],"receivers":[972,975],"undo_frame":0},{"carrier":972,"carrier_chain":[93708,124540,25787,0],"carrier_ranks":[1,20,2],"deliver_after_root":3633,"deliver_frame":25787,"mix_frame":124540,"passive":975,"passive_chain":[93705,124540,0],"passive_ranks":[1,22],"receivers":[969,970],"undo_frame":0},{"carrier":976,"carrier_chain":[93704,124542,25813,0],"carrier_ranks":[1,20,2],"deliver_after_root":3665,"deliver_frame":25813,"mix_frame":124542,"passive":979,"passive_chain":[93701,124542,0],"passive_ranks":[1,22],"receivers":[981,982],"undo_frame":0},{"carrier":981,"carrier_chain":[93699,124544,25807,0],"carrier_ranks":[1,20,2],"deliver_after_root":3662,"deliver_frame":25807,"mix_frame":124544,"passive":982,"passive_chain":[93698,124544,0],"passive_ranks":[1,22],"receivers":[976,979],"undo_frame":0},{"carrier":977,"carrier_chain":[93703,124546,25811,0],"carrier_ranks":[1,20,2],"deliver_after_root":3664,"deliver_frame":25811,"mix_frame":124546,"passive":978,"passive_chain":[93702,124546,0],"passive_ranks":[1,22],"receivers":[980,983],"undo_frame":0},{"carrier":980,"carrier_chain":[93700,124548,25809,0],"carrier_ranks":[1,20,2],"deliver_after_root":3663,"deliver_frame":25809,"mix_frame":124548,"passive":983,"passive_chain":[93697,124548,0],"passive_ranks":[1,22],"receivers":[977,978],"undo_frame":0},{"carrier":984,"carrier_chain":[93696,124550,25835,0],"carrier_ranks":[1,20,2],"deliver_after_root":3695,"deliver_frame":25835,"mix_frame":124550,"passive":987,"passive_chain":[93693,124550,0],"passive_ranks":[1,22],"receivers":[989,990],"undo_frame":0},{"carrier":989,"carrier_chain":[93691,124552,25829,0],"carrier_ranks":[1,20,2],"deliver_after_root":3692,"deliver_frame":25829,"mix_frame":124552,"passive":990,"passive_chain":[93690,124552,0],"passive_ranks":[1,22],"receivers":[984,987],"undo_frame":0},{"carrier":985,"carrier_chain":[93695,124554,25833,0],"carrier_ranks":[1,20,2],"deliver_after_root":3694,"deliver_frame":25833,"mix_frame":124554,"passive":986,"passive_chain":[93694,124554,0],"passive_ranks":[1,22],"receivers":[988,991],"undo_frame":0},{"carrier":988,"carrier_chain":[93692,124556,25831,0],"carrier_ranks":[1,20,2],"deliver_after_root":3693,"deliver_frame":25831,"mix_frame":124556,"passive":991,"passive_chain":[93689,124556,0],"passive_ranks":[1,22],"receivers":[985,986],"undo_frame":0},{"carrier":992,"carrier_chain":[93688,124558,25857,0],"carrier_ranks":[1,20,2],"deliver_after_root":3725,"deliver_frame":25857,"mix_frame":124558,"passive":995,"passive_chain":[93685,124558,0],"passive_ranks":[1,22],"receivers":[997,998],"undo_frame":0},{"carrier":997,"carrier_chain":[93683,124560,25851,0],"carrier_ranks":[1,20,2],"deliver_after_root":3722,"deliver_frame":25851,"mix_frame":124560,"passive":998,"passive_chain":[93682,124560,0],"passive_ranks":[1,22],"receivers":[992,995],"undo_frame":0},{"carrier":993,"carrier_chain":[93687,124562,25855,0],"carrier_ranks":[1,20,2],"deliver_after_root":3724,"deliver_frame":25855,"mix_frame":124562,"passive":994,"passive_chain":[93686,124562,0],"passive_ranks":[1,22],"receivers":[996,999],"undo_frame":0},{"carrier":996,"carrier_chain":[93684,124564,25853,0],"carrier_ranks":[1,20,2],"deliver_after_root":3723,"deliver_frame":25853,"mix_frame":124564,"passive":999,"passive_chain":[93681,124564,0],"passive_ranks":[1,22],"receivers":[993,994],"undo_frame":0},{"carrier":1000,"carrier_chain":[93680,124566,25879,0],"carrier_ranks":[1,20,2],"deliver_after_root":3755,"deliver_frame":25879,"mix_frame":124566,"passive":1003,"passive_chain":[93677,124566,0],"passive_ranks":[1,22],"receivers":[1005,1006],"undo_frame":0},{"carrier":1005,"carrier_chain":[93675,124568,25873,0],"carrier_ranks":[1,20,2],"deliver_after_root":3752,"deliver_frame":25873,"mix_frame":124568,"passive":1006,"passive_chain":[93674,124568,0],"passive_ranks":[1,22],"receivers":[1000,1003],"undo_frame":0},{"carrier":1001,"carrier_chain":[93679,124570,25877,0],"carrier_ranks":[1,20,2],"deliver_after_root":3754,"deliver_frame":25877,"mix_frame":124570,"passive":1002,"passive_chain":[93678,124570,0],"passive_ranks":[1,22],"receivers":[1004,1007],"undo_frame":0},{"carrier":1004,"carrier_chain":[93676,124572,25875,0],"carrier_ranks":[1,20,2],"deliver_after_root":3753,"deliver_frame":25875,"mix_frame":124572,"passive":1007,"passive_chain":[93673,124572,0],"passive_ranks":[1,22],"receivers":[1001,1002],"undo_frame":0},{"carrier":1008,"carrier_chain":[93672,124574,25901,0],"carrier_ranks":[1,20,2],"deliver_after_root":3785,"deliver_frame":25901,"mix_frame":124574,"passive":1011,"passive_chain":[93669,124574,0],"passive_ranks":[1,22],"receivers":[1013,1014],"undo_frame":0},{"carrier":1013,"carrier_chain":[93667,124576,25895,0],"carrier_ranks":[1,20,2],"deliver_after_root":3782,"deliver_frame":25895,"mix_frame":124576,"passive":1014,"passive_chain":[93666,124576,0],"passive_ranks":[1,22],"receivers":[1008,1011],"undo_frame":0},{"carrier":1009,"carrier_chain":[93671,124578,25899,0],"carrier_ranks":[1,20,2],"deliver_after_root":3784,"deliver_frame":25899,"mix_frame":124578,"passive":1010,"passive_chain":[93670,124578,0],"passive_ranks":[1,22],"receivers":[1012,1015],"undo_frame":0},{"carrier":1012,"carrier_chain":[93668,124580,25897,0],"carrier_ranks":[1,20,2],"deliver_after_root":3783,"deliver_frame":25897,"mix_frame":124580,"passive":1015,"passive_chain":[93665,124580,0],"passive_ranks":[1,22],"receivers":[1009,1010],"undo_frame":0},{"carrier":1016,"carrier_chain":[93664,124582,25923,0],"carrier_ranks":[1,20,2],"deliver_after_root":3815,"deliver_frame":25923,"mix_frame":124582,"passive":1019,"passive_chain":[93661,124582,0],"passive_ranks":[1,22],"receivers":[1021,1022],"undo_frame":0},{"carrier":1021,"carrier_chain":[93659,124584,25917,0],"carrier_ranks":[1,20,2],"deliver_after_root":3812,"deliver_frame":25917,"mix_frame":124584,"passive":1022,"passive_chain":[93658,124584,0],"passive_ranks":[1,22],"receivers":[1016,1019],"undo_frame":0},{"carrier":1017,"carrier_chain":[93663,124586,25921,0],"carrier_ranks":[1,20,2],"deliver_after_root":3814,"deliver_frame":25921,"mix_frame":124586,"passive":1018,"passive_chain":[93662,124586,0],"passive_ranks":[1,22],"receivers":[1020,1023],"undo_frame":0},{"carrier":1020,"carrier_chain":[93660,124588,25919,0],"carrier_ranks":[1,20,2],"deliver_after_root":3813,"deliver_frame":25919,"mix_frame":124588,"passive":1023,"passive_chain":[93657,124588,0],"passive_ranks":[1,22],"receivers":[1017,1018],"undo_frame":0},{"carrier":1024,"carrier_chain":[93656,124590,25945,0],"carrier_ranks":[1,20,2],"deliver_after_root":3845,"deliver_frame":25945,"mix_frame":124590,"passive":1027,"passive_chain":[93653,124590,0],"passive_ranks":[1,22],"receivers":[1029,1030],"undo_frame":0},{"carrier":1029,"carrier_chain":[93651,124592,25939,0],"carrier_ranks":[1,20,2],"deliver_after_root":3842,"deliver_frame":25939,"mix_frame":124592,"passive":1030,"passive_chain":[93650,124592,0],"passive_ranks":[1,22],"receivers":[1024,1027],"undo_frame":0},{"carrier":1025,"carrier_chain":[93655,124594,25943,0],"carrier_ranks":[1,20,2],"deliver_after_root":3844,"deliver_frame":25943,"mix_frame":124594,"passive":1026,"passive_chain":[93654,124594,0],"passive_ranks":[1,22],"receivers":[1028,1031],"undo_frame":0},{"carrier":1028,"carrier_chain":[93652,124596,25941,0],"carrier_ranks":[1,20,2],"deliver_after_root":3843,"deliver_frame":25941,"mix_frame":124596,"passive":1031,"passive_chain":[93649,124596,0],"passive_ranks":[1,22],"receivers":[1025,1026],"undo_frame":0},{"carrier":1032,"carrier_chain":[93648,124598,25967,0],"carrier_ranks":[1,20,2],"deliver_after_root":3875,"deliver_frame":25967,"mix_frame":124598,"passive":1035,"passive_chain":[93645,124598,0],"passive_ranks":[1,22],"receivers":[1037,1038],"undo_frame":0},{"carrier":1037,"carrier_chain":[93643,124600,25961,0],"carrier_ranks":[1,20,2],"deliver_after_root":3872,"deliver_frame":25961,"mix_frame":124600,"passive":1038,"passive_chain":[93642,124600,0],"passive_ranks":[1,22],"receivers":[1032,1035],"undo_frame":0},{"carrier":1033,"carrier_chain":[93647,124602,25965,0],"carrier_ranks":[1,20,2],"deliver_after_root":3874,"deliver_frame":25965,"mix_frame":124602,"passive":1034,"passive_chain":[93646,124602,0],"passive_ranks":[1,22],"receivers":[1036,1039],"undo_frame":0},{"carrier":1036,"carrier_chain":[93644,124604,25963,0],"carrier_ranks":[1,20,2],"deliver_after_root":3873,"deliver_frame":25963,"mix_frame":124604,"passive":1039,"passive_chain":[93641,124604,0],"passive_ranks":[1,22],"receivers":[1033,1034],"undo_frame":0},{"carrier":1040,"carrier_chain":[93640,124606,25989,0],"carrier_ranks":[1,20,2],"deliver_after_root":3905,"deliver_frame":25989,"mix_frame":124606,"passive":1043,"passive_chain":[93637,124606,0],"passive_ranks":[1,22],"receivers":[1045,1046],"undo_frame":0},{"carrier":1045,"carrier_chain":[93635,124608,25983,0],"carrier_ranks":[1,20,2],"deliver_after_root":3902,"deliver_frame":25983,"mix_frame":124608,"passive":1046,"passive_chain":[93634,124608,0],"passive_ranks":[1,22],"receivers":[1040,1043],"undo_frame":0},{"carrier":1041,"carrier_chain":[93639,124610,25987,0],"carrier_ranks":[1,20,2],"deliver_after_root":3904,"deliver_frame":25987,"mix_frame":124610,"passive":1042,"passive_chain":[93638,124610,0],"passive_ranks":[1,22],"receivers":[1044,1047],"undo_frame":0},{"carrier":1044,"carrier_chain":[93636,124612,25985,0],"carrier_ranks":[1,20,2],"deliver_after_root":3903,"deliver_frame":25985,"mix_frame":124612,"passive":1047,"passive_chain":[93633,124612,0],"passive_ranks":[1,22],"receivers":[1041,1042],"undo_frame":0},{"carrier":1048,"carrier_chain":[93632,124614,26011,0],"carrier_ranks":[1,20,2],"deliver_after_root":3935,"deliver_frame":26011,"mix_frame":124614,"passive":1051,"passive_chain":[93629,124614,0],"passive_ranks":[1,22],"receivers":[1053,1054],"undo_frame":0},{"carrier":1053,"carrier_chain":[93627,124616,26005,0],"carrier_ranks":[1,20,2],"deliver_after_root":3932,"deliver_frame":26005,"mix_frame":124616,"passive":1054,"passive_chain":[93626,124616,0],"passive_ranks":[1,22],"receivers":[1048,1051],"undo_frame":0},{"carrier":1049,"carrier_chain":[93631,124618,26009,0],"carrier_ranks":[1,20,2],"deliver_after_root":3934,"deliver_frame":26009,"mix_frame":124618,"passive":1050,"passive_chain":[93630,124618,0],"passive_ranks":[1,22],"receivers":[1052,1055],"undo_frame":0},{"carrier":1052,"carrier_chain":[93628,124620,26007,0],"carrier_ranks":[1,20,2],"deliver_after_root":3933,"deliver_frame":26007,"mix_frame":124620,"passive":1055,"passive_chain":[93625,124620,0],"passive_ranks":[1,22],"receivers":[1049,1050],"undo_frame":0},{"carrier":1056,"carrier_chain":[93624,124622,26033,0],"carrier_ranks":[1,20,2],"deliver_after_root":3965,"deliver_frame":26033,"mix_frame":124622,"passive":1059,"passive_chain":[93621,124622,0],"passive_ranks":[1,22],"receivers":[1061,1062],"undo_frame":0},{"carrier":1061,"carrier_chain":[93619,124624,26027,0],"carrier_ranks":[1,20,2],"deliver_after_root":3962,"deliver_frame":26027,"mix_frame":124624,"passive":1062,"passive_chain":[93618,124624,0],"passive_ranks":[1,22],"receivers":[1056,1059],"undo_frame":0},{"carrier":1057,"carrier_chain":[93623,124626,26031,0],"carrier_ranks":[1,20,2],"deliver_after_root":3964,"deliver_frame":26031,"mix_frame":124626,"passive":1058,"passive_chain":[93622,124626,0],"passive_ranks":[1,22],"receivers":[1060,1063],"undo_frame":0},{"carrier":1060,"carrier_chain":[93620,124628,26029,0],"carrier_ranks":[1,20,2],"deliver_after_root":3963,"deliver_frame":26029,"mix_frame":124628,"passive":1063,"passive_chain":[93617,124628,0],"passive_ranks":[1,22],"receivers":[1057,1058],"undo_frame":0},{"carrier":1064,"carrier_chain":[93616,124630,26055,0],"carrier_ranks":[1,20,2],"deliver_after_root":3995,"deliver_frame":26055,"mix_frame":124630,"passive":1067,"passive_chain":[93613,124630,0],"passive_ranks":[1,22],"receivers":[1069,1070],"undo_frame":0},{"carrier":1069,"carrier_chain":[93611,124632,26049,0],"carrier_ranks":[1,20,2],"deliver_after_root":3992,"deliver_frame":26049,"mix_frame":124632,"passive":1070,"passive_chain":[93610,124632,0],"passive_ranks":[1,22],"receivers":[1064,1067],"undo_frame":0},{"carrier":1065,"carrier_chain":[93615,124634,26053,0],"carrier_ranks":[1,20,2],"deliver_after_root":3994,"deliver_frame":26053,"mix_frame":124634,"passive":1066,"passive_chain":[93614,124634,0],"passive_ranks":[1,22],"receivers":[1068,1071],"undo_frame":0},{"carrier":1068,"carrier_chain":[93612,124636,26051,0],"carrier_ranks":[1,20,2],"deliver_after_root":3993,"deliver_frame":26051,"mix_frame":124636,"passive":1071,"passive_chain":[93609,124636,0],"passive_ranks":[1,22],"receivers":[1065,1066],"undo_frame":0},{"carrier":1072,"carrier_chain":[93608,124638,26077,0],"carrier_ranks":[1,20,2],"deliver_after_root":4025,"deliver_frame":26077,"mix_frame":124638,"passive":1075,"passive_chain":[93605,124638,0],"passive_ranks":[1,22],"receivers":[1077,1078],"undo_frame":0},{"carrier":1077,"carrier_chain":[93603,124640,26071,0],"carrier_ranks":[1,20,2],"deliver_after_root":4022,"deliver_frame":26071,"mix_frame":124640,"passive":1078,"passive_chain":[93602,124640,0],"passive_ranks":[1,22],"receivers":[1072,1075],"undo_frame":0},{"carrier":1073,"carrier_chain":[93607,124642,26075,0],"carrier_ranks":[1,20,2],"deliver_after_root":4024,"deliver_frame":26075,"mix_frame":124642,"passive":1074,"passive_chain":[93606,124642,0],"passive_ranks":[1,22],"receivers":[1076,1079],"undo_frame":0},{"carrier":1076,"carrier_chain":[93604,124644,26073,0],"carrier_ranks":[1,20,2],"deliver_after_root":4023,"deliver_frame":26073,"mix_frame":124644,"passive":1079,"passive_chain":[93601,124644,0],"passive_ranks":[1,22],"receivers":[1073,1074],"undo_frame":0},{"carrier":1080,"carrier_chain":[93600,124646,26099,0],"carrier_ranks":[1,20,2],"deliver_after_root":4055,"deliver_frame":26099,"mix_frame":124646,"passive":1083,"passive_chain":[93597,124646,0],"passive_ranks":[1,22],"receivers":[1085,1086],"undo_frame":0},{"carrier":1085,"carrier_chain":[93595,124648,26093,0],"carrier_ranks":[1,20,2],"deliver_after_root":4052,"deliver_frame":26093,"mix_frame":124648,"passive":1086,"passive_chain":[93594,124648,0],"passive_ranks":[1,22],"receivers":[1080,1083],"undo_frame":0},{"carrier":1081,"carrier_chain":[93599,124650,26097,0],"carrier_ranks":[1,20,2],"deliver_after_root":4054,"deliver_frame":26097,"mix_frame":124650,"passive":1082,"passive_chain":[93598,124650,0],"passive_ranks":[1,22],"receivers":[1084,1087],"undo_frame":0},{"carrier":1084,"carrier_chain":[93596,124652,26095,0],"carrier_ranks":[1,20,2],"deliver_after_root":4053,"deliver_frame":26095,"mix_frame":124652,"passive":1087,"passive_chain":[93593,124652,0],"passive_ranks":[1,22],"receivers":[1081,1082],"undo_frame":0},{"carrier":1088,"carrier_chain":[93592,124654,26121,0],"carrier_ranks":[1,20,2],"deliver_after_root":4085,"deliver_frame":26121,"mix_frame":124654,"passive":1091,"passive_chain":[93589,124654,0],"passive_ranks":[1,22],"receivers":[1093,1094],"undo_frame":0},{"carrier":1093,"carrier_chain":[93587,124656,26115,0],"carrier_ranks":[1,20,2],"deliver_after_root":4082,"deliver_frame":26115,"mix_frame":124656,"passive":1094,"passive_chain":[93586,124656,0],"passive_ranks":[1,22],"receivers":[1088,1091],"undo_frame":0},{"carrier":1089,"carrier_chain":[93591,124658,26119,0],"carrier_ranks":[1,20,2],"deliver_after_root":4084,"deliver_frame":26119,"mix_frame":124658,"passive":1090,"passive_chain":[93590,124658,0],"passive_ranks":[1,22],"receivers":[1092,1095],"undo_frame":0},{"carrier":1092,"carrier_chain":[93588,124660,26117,0],"carrier_ranks":[1,20,2],"deliver_after_root":4083,"deliver_frame":26117,"mix_frame":124660,"passive":1095,"passive_chain":[93585,124660,0],"passive_ranks":[1,22],"receivers":[1089,1090],"undo_frame":0},{"carrier":1096,"carrier_chain":[93584,124662,26143,0],"carrier_ranks":[1,20,2],"deliver_after_root":4115,"deliver_frame":26143,"mix_frame":124662,"passive":1099,"passive_chain":[93581,124662,0],"passive_ranks":[1,22],"receivers":[1101,1102],"undo_frame":0},{"carrier":1101,"carrier_chain":[93579,124664,26137,0],"carrier_ranks":[1,20,2],"deliver_after_root":4112,"deliver_frame":26137,"mix_frame":124664,"passive":1102,"passive_chain":[93578,124664,0],"passive_ranks":[1,22],"receivers":[1096,1099],"undo_frame":0},{"carrier":1097,"carrier_chain":[93583,124666,26141,0],"carrier_ranks":[1,20,2],"deliver_after_root":4114,"deliver_frame":26141,"mix_frame":124666,"passive":1098,"passive_chain":[93582,124666,0],"passive_ranks":[1,22],"receivers":[1100,1103],"undo_frame":0},{"carrier":1100,"carrier_chain":[93580,124668,26139,0],"carrier_ranks":[1,20,2],"deliver_after_root":4113,"deliver_frame":26139,"mix_frame":124668,"passive":1103,"passive_chain":[93577,124668,0],"passive_ranks":[1,22],"receivers":[1097,1098],"undo_frame":0},{"carrier":1104,"carrier_chain":[93576,124670,26165,0],"carrier_ranks":[1,20,2],"deliver_after_root":4145,"deliver_frame":26165,"mix_frame":124670,"passive":1107,"passive_chain":[93573,124670,0],"passive_ranks":[1,22],"receivers":[1109,1110],"undo_frame":0},{"carrier":1109,"carrier_chain":[93571,124672,26159,0],"carrier_ranks":[1,20,2],"deliver_after_root":4142,"deliver_frame":26159,"mix_frame":124672,"passive":1110,"passive_chain":[93570,124672,0],"passive_ranks":[1,22],"receivers":[1104,1107],"undo_frame":0},{"carrier":1105,"carrier_chain":[93575,124674,26163,0],"carrier_ranks":[1,20,2],"deliver_after_root":4144,"deliver_frame":26163,"mix_frame":124674,"passive":1106,"passive_chain":[93574,124674,0],"passive_ranks":[1,22],"receivers":[1108,1111],"undo_frame":0},{"carrier":1108,"carrier_chain":[93572,124676,26161,0],"carrier_ranks":[1,20,2],"deliver_after_root":4143,"deliver_frame":26161,"mix_frame":124676,"passive":1111,"passive_chain":[93569,124676,0],"passive_ranks":[1,22],"receivers":[1105,1106],"undo_frame":0},{"carrier":1112,"carrier_chain":[93568,124678,26187,0],"carrier_ranks":[1,20,2],"deliver_after_root":4175,"deliver_frame":26187,"mix_frame":124678,"passive":1115,"passive_chain":[93565,124678,0],"passive_ranks":[1,22],"receivers":[1117,1118],"undo_frame":0},{"carrier":1117,"carrier_chain":[93563,124680,26181,0],"carrier_ranks":[1,20,2],"deliver_after_root":4172,"deliver_frame":26181,"mix_frame":124680,"passive":1118,"passive_chain":[93562,124680,0],"passive_ranks":[1,22],"receivers":[1112,1115],"undo_frame":0},{"carrier":1113,"carrier_chain":[93567,124682,26185,0],"carrier_ranks":[1,20,2],"deliver_after_root":4174,"deliver_frame":26185,"mix_frame":124682,"passive":1114,"passive_chain":[93566,124682,0],"passive_ranks":[1,22],"receivers":[1116,1119],"undo_frame":0},{"carrier":1116,"carrier_chain":[93564,124684,26183,0],"carrier_ranks":[1,20,2],"deliver_after_root":4173,"deliver_frame":26183,"mix_frame":124684,"passive":1119,"passive_chain":[93561,124684,0],"passive_ranks":[1,22],"receivers":[1113,1114],"undo_frame":0},{"carrier":1120,"carrier_chain":[93560,124686,26209,0],"carrier_ranks":[1,20,2],"deliver_after_root":4205,"deliver_frame":26209,"mix_frame":124686,"passive":1123,"passive_chain":[93557,124686,0],"passive_ranks":[1,22],"receivers":[1125,1126],"undo_frame":0},{"carrier":1125,"carrier_chain":[93555,124688,26203,0],"carrier_ranks":[1,20,2],"deliver_after_root":4202,"deliver_frame":26203,"mix_frame":124688,"passive":1126,"passive_chain":[93554,124688,0],"passive_ranks":[1,22],"receivers":[1120,1123],"undo_frame":0},{"carrier":1121,"carrier_chain":[93559,124690,26207,0],"carrier_ranks":[1,20,2],"deliver_after_root":4204,"deliver_frame":26207,"mix_frame":124690,"passive":1122,"passive_chain":[93558,124690,0],"passive_ranks":[1,22],"receivers":[1124,1127],"undo_frame":0},{"carrier":1124,"carrier_chain":[93556,124692,26205,0],"carrier_ranks":[1,20,2],"deliver_after_root":4203,"deliver_frame":26205,"mix_frame":124692,"passive":1127,"passive_chain":[93553,124692,0],"passive_ranks":[1,22],"receivers":[1121,1122],"undo_frame":0},{"carrier":1128,"carrier_chain":[93552,124694,26231,0],"carrier_ranks":[1,20,2],"deliver_after_root":4235,"deliver_frame":26231,"mix_frame":124694,"passive":1131,"passive_chain":[93549,124694,0],"passive_ranks":[1,22],"receivers":[1133,1134],"undo_frame":0},{"carrier":1133,"carrier_chain":[93547,124696,26225,0],"carrier_ranks":[1,20,2],"deliver_after_root":4232,"deliver_frame":26225,"mix_frame":124696,"passive":1134,"passive_chain":[93546,124696,0],"passive_ranks":[1,22],"receivers":[1128,1131],"undo_frame":0},{"carrier":1129,"carrier_chain":[93551,124698,26229,0],"carrier_ranks":[1,20,2],"deliver_after_root":4234,"deliver_frame":26229,"mix_frame":124698,"passive":1130,"passive_chain":[93550,124698,0],"passive_ranks":[1,22],"receivers":[1132,1135],"undo_frame":0},{"carrier":1132,"carrier_chain":[93548,124700,26227,0],"carrier_ranks":[1,20,2],"deliver_after_root":4233,"deliver_frame":26227,"mix_frame":124700,"passive":1135,"passive_chain":[93545,124700,0],"passive_ranks":[1,22],"receivers":[1129,1130],"undo_frame":0},{"carrier":1136,"carrier_chain":[93544,124702,26253,0],"carrier_ranks":[1,20,2],"deliver_after_root":4265,"deliver_frame":26253,"mix_frame":124702,"passive":1139,"passive_chain":[93541,124702,0],"passive_ranks":[1,22],"receivers":[1141,1142],"undo_frame":0},{"carrier":1141,"carrier_chain":[93539,124704,26247,0],"carrier_ranks":[1,20,2],"deliver_after_root":4262,"deliver_frame":26247,"mix_frame":124704,"passive":1142,"passive_chain":[93538,124704,0],"passive_ranks":[1,22],"receivers":[1136,1139],"undo_frame":0},{"carrier":1137,"carrier_chain":[93543,124706,26251,0],"carrier_ranks":[1,20,2],"deliver_after_root":4264,"deliver_frame":26251,"mix_frame":124706,"passive":1138,"passive_chain":[93542,124706,0],"passive_ranks":[1,22],"receivers":[1140,1143],"undo_frame":0},{"carrier":1140,"carrier_chain":[93540,124708,26249,0],"carrier_ranks":[1,20,2],"deliver_after_root":4263,"deliver_frame":26249,"mix_frame":124708,"passive":1143,"passive_chain":[93537,124708,0],"passive_ranks":[1,22],"receivers":[1137,1138],"undo_frame":0},{"carrier":1144,"carrier_chain":[93536,124710,26275,0],"carrier_ranks":[1,20,2],"deliver_after_root":4295,"deliver_frame":26275,"mix_frame":124710,"passive":1147,"passive_chain":[93533,124710,0],"passive_ranks":[1,22],"receivers":[1149,1150],"undo_frame":0},{"carrier":1149,"carrier_chain":[93531,124712,26269,0],"carrier_ranks":[1,20,2],"deliver_after_root":4292,"deliver_frame":26269,"mix_frame":124712,"passive":1150,"passive_chain":[93530,124712,0],"passive_ranks":[1,22],"receivers":[1144,1147],"undo_frame":0},{"carrier":1145,"carrier_chain":[93535,124714,26273,0],"carrier_ranks":[1,20,2],"deliver_after_root":4294,"deliver_frame":26273,"mix_frame":124714,"passive":1146,"passive_chain":[93534,124714,0],"passive_ranks":[1,22],"receivers":[1148,1151],"undo_frame":0},{"carrier":1148,"carrier_chain":[93532,124716,26271,0],"carrier_ranks":[1,20,2],"deliver_after_root":4293,"deliver_frame":26271,"mix_frame":124716,"passive":1151,"passive_chain":[93529,124716,0],"passive_ranks":[1,22],"receivers":[1145,1146],"undo_frame":0},{"carrier":1152,"carrier_chain":[93528,124718,26297,0],"carrier_ranks":[1,20,2],"deliver_after_root":4325,"deliver_frame":26297,"mix_frame":124718,"passive":1155,"passive_chain":[93525,124718,0],"passive_ranks":[1,22],"receivers":[1157,1158],"undo_frame":0},{"carrier":1157,"carrier_chain":[93523,124720,26291,0],"carrier_ranks":[1,20,2],"deliver_after_root":4322,"deliver_frame":26291,"mix_frame":124720,"passive":1158,"passive_chain":[93522,124720,0],"passive_ranks":[1,22],"receivers":[1152,1155],"undo_frame":0},{"carrier":1153,"carrier_chain":[93527,124722,26295,0],"carrier_ranks":[1,20,2],"deliver_after_root":4324,"deliver_frame":26295,"mix_frame":124722,"passive":1154,"passive_chain":[93526,124722,0],"passive_ranks":[1,22],"receivers":[1156,1159],"undo_frame":0},{"carrier":1156,"carrier_chain":[93524,124724,26293,0],"carrier_ranks":[1,20,2],"deliver_after_root":4323,"deliver_frame":26293,"mix_frame":124724,"passive":1159,"passive_chain":[93521,124724,0],"passive_ranks":[1,22],"receivers":[1153,1154],"undo_frame":0},{"carrier":1160,"carrier_chain":[93520,124726,26319,0],"carrier_ranks":[1,20,2],"deliver_after_root":4355,"deliver_frame":26319,"mix_frame":124726,"passive":1163,"passive_chain":[93517,124726,0],"passive_ranks":[1,22],"receivers":[1165,1166],"undo_frame":0},{"carrier":1165,"carrier_chain":[93515,124728,26313,0],"carrier_ranks":[1,20,2],"deliver_after_root":4352,"deliver_frame":26313,"mix_frame":124728,"passive":1166,"passive_chain":[93514,124728,0],"passive_ranks":[1,22],"receivers":[1160,1163],"undo_frame":0},{"carrier":1161,"carrier_chain":[93519,124730,26317,0],"carrier_ranks":[1,20,2],"deliver_after_root":4354,"deliver_frame":26317,"mix_frame":124730,"passive":1162,"passive_chain":[93518,124730,0],"passive_ranks":[1,22],"receivers":[1164,1167],"undo_frame":0},{"carrier":1164,"carrier_chain":[93516,124732,26315,0],"carrier_ranks":[1,20,2],"deliver_after_root":4353,"deliver_frame":26315,"mix_frame":124732,"passive":1167,"passive_chain":[93513,124732,0],"passive_ranks":[1,22],"receivers":[1161,1162],"undo_frame":0},{"carrier":1168,"carrier_chain":[93512,124734,26341,0],"carrier_ranks":[1,20,2],"deliver_after_root":4385,"deliver_frame":26341,"mix_frame":124734,"passive":1171,"passive_chain":[93509,124734,0],"passive_ranks":[1,22],"receivers":[1173,1174],"undo_frame":0},{"carrier":1173,"carrier_chain":[93507,124736,26335,0],"carrier_ranks":[1,20,2],"deliver_after_root":4382,"deliver_frame":26335,"mix_frame":124736,"passive":1174,"passive_chain":[93506,124736,0],"passive_ranks":[1,22],"receivers":[1168,1171],"undo_frame":0},{"carrier":1169,"carrier_chain":[93511,124738,26339,0],"carrier_ranks":[1,20,2],"deliver_after_root":4384,"deliver_frame":26339,"mix_frame":124738,"passive":1170,"passive_chain":[93510,124738,0],"passive_ranks":[1,22],"receivers":[1172,1175],"undo_frame":0},{"carrier":1172,"carrier_chain":[93508,124740,26337,0],"carrier_ranks":[1,20,2],"deliver_after_root":4383,"deliver_frame":26337,"mix_frame":124740,"passive":1175,"passive_chain":[93505,124740,0],"passive_ranks":[1,22],"receivers":[1169,1170],"undo_frame":0},{"carrier":1176,"carrier_chain":[93504,124742,26363,0],"carrier_ranks":[1,20,2],"deliver_after_root":4415,"deliver_frame":26363,"mix_frame":124742,"passive":1179,"passive_chain":[93501,124742,0],"passive_ranks":[1,22],"receivers":[1181,1182],"undo_frame":0},{"carrier":1181,"carrier_chain":[93499,124744,26357,0],"carrier_ranks":[1,20,2],"deliver_after_root":4412,"deliver_frame":26357,"mix_frame":124744,"passive":1182,"passive_chain":[93498,124744,0],"passive_ranks":[1,22],"receivers":[1176,1179],"undo_frame":0},{"carrier":1177,"carrier_chain":[93503,124746,26361,0],"carrier_ranks":[1,20,2],"deliver_after_root":4414,"deliver_frame":26361,"mix_frame":124746,"passive":1178,"passive_chain":[93502,124746,0],"passive_ranks":[1,22],"receivers":[1180,1183],"undo_frame":0},{"carrier":1180,"carrier_chain":[93500,124748,26359,0],"carrier_ranks":[1,20,2],"deliver_after_root":4413,"deliver_frame":26359,"mix_frame":124748,"passive":1183,"passive_chain":[93497,124748,0],"passive_ranks":[1,22],"receivers":[1177,1178],"undo_frame":0},{"carrier":1184,"carrier_chain":[93496,124750,26385,0],"carrier_ranks":[1,20,2],"deliver_after_root":4445,"deliver_frame":26385,"mix_frame":124750,"passive":1187,"passive_chain":[93493,124750,0],"passive_ranks":[1,22],"receivers":[1189,1190],"undo_frame":0},{"carrier":1189,"carrier_chain":[93491,124752,26379,0],"carrier_ranks":[1,20,2],"deliver_after_root":4442,"deliver_frame":26379,"mix_frame":124752,"passive":1190,"passive_chain":[93490,124752,0],"passive_ranks":[1,22],"receivers":[1184,1187],"undo_frame":0},{"carrier":1185,"carrier_chain":[93495,124754,26383,0],"carrier_ranks":[1,20,2],"deliver_after_root":4444,"deliver_frame":26383,"mix_frame":124754,"passive":1186,"passive_chain":[93494,124754,0],"passive_ranks":[1,22],"receivers":[1188,1191],"undo_frame":0},{"carrier":1188,"carrier_chain":[93492,124756,26381,0],"carrier_ranks":[1,20,2],"deliver_after_root":4443,"deliver_frame":26381,"mix_frame":124756,"passive":1191,"passive_chain":[93489,124756,0],"passive_ranks":[1,22],"receivers":[1185,1186],"undo_frame":0},{"carrier":1192,"carrier_chain":[93488,124758,26407,0],"carrier_ranks":[1,20,2],"deliver_after_root":4475,"deliver_frame":26407,"mix_frame":124758,"passive":1195,"passive_chain":[93485,124758,0],"passive_ranks":[1,22],"receivers":[1197,1198],"undo_frame":0},{"carrier":1197,"carrier_chain":[93483,124760,26401,0],"carrier_ranks":[1,20,2],"deliver_after_root":4472,"deliver_frame":26401,"mix_frame":124760,"passive":1198,"passive_chain":[93482,124760,0],"passive_ranks":[1,22],"receivers":[1192,1195],"undo_frame":0},{"carrier":1193,"carrier_chain":[93487,124762,26405,0],"carrier_ranks":[1,20,2],"deliver_after_root":4474,"deliver_frame":26405,"mix_frame":124762,"passive":1194,"passive_chain":[93486,124762,0],"passive_ranks":[1,22],"receivers":[1196,1199],"undo_frame":0},{"carrier":1196,"carrier_chain":[93484,124764,26403,0],"carrier_ranks":[1,20,2],"deliver_after_root":4473,"deliver_frame":26403,"mix_frame":124764,"passive":1199,"passive_chain":[93481,124764,0],"passive_ranks":[1,22],"receivers":[1193,1194],"undo_frame":0},{"carrier":1200,"carrier_chain":[93480,124766,26429,0],"carrier_ranks":[1,20,2],"deliver_after_root":4505,"deliver_frame":26429,"mix_frame":124766,"passive":1203,"passive_chain":[93477,124766,0],"passive_ranks":[1,22],"receivers":[1205,1206],"undo_frame":0},{"carrier":1205,"carrier_chain":[93475,124768,26423,0],"carrier_ranks":[1,20,2],"deliver_after_root":4502,"deliver_frame":26423,"mix_frame":124768,"passive":1206,"passive_chain":[93474,124768,0],"passive_ranks":[1,22],"receivers":[1200,1203],"undo_frame":0},{"carrier":1201,"carrier_chain":[93479,124770,26427,0],"carrier_ranks":[1,20,2],"deliver_after_root":4504,"deliver_frame":26427,"mix_frame":124770,"passive":1202,"passive_chain":[93478,124770,0],"passive_ranks":[1,22],"receivers":[1204,1207],"undo_frame":0},{"carrier":1204,"carrier_chain":[93476,124772,26425,0],"carrier_ranks":[1,20,2],"deliver_after_root":4503,"deliver_frame":26425,"mix_frame":124772,"passive":1207,"passive_chain":[93473,124772,0],"passive_ranks":[1,22],"receivers":[1201,1202],"undo_frame":0},{"carrier":1208,"carrier_chain":[93472,124774,26451,0],"carrier_ranks":[1,20,2],"deliver_after_root":4535,"deliver_frame":26451,"mix_frame":124774,"passive":1211,"passive_chain":[93469,124774,0],"passive_ranks":[1,22],"receivers":[1213,1214],"undo_frame":0},{"carrier":1213,"carrier_chain":[93467,124776,26445,0],"carrier_ranks":[1,20,2],"deliver_after_root":4532,"deliver_frame":26445,"mix_frame":124776,"passive":1214,"passive_chain":[93466,124776,0],"passive_ranks":[1,22],"receivers":[1208,1211],"undo_frame":0},{"carrier":1209,"carrier_chain":[93471,124778,26449,0],"carrier_ranks":[1,20,2],"deliver_after_root":4534,"deliver_frame":26449,"mix_frame":124778,"passive":1210,"passive_chain":[93470,124778,0],"passive_ranks":[1,22],"receivers":[1212,1215],"undo_frame":0},{"carrier":1212,"carrier_chain":[93468,124780,26447,0],"carrier_ranks":[1,20,2],"deliver_after_root":4533,"deliver_frame":26447,"mix_frame":124780,"passive":1215,"passive_chain":[93465,124780,0],"passive_ranks":[1,22],"receivers":[1209,1210],"undo_frame":0},{"carrier":1216,"carrier_chain":[93464,124782,26473,0],"carrier_ranks":[1,20,2],"deliver_after_root":4565,"deliver_frame":26473,"mix_frame":124782,"passive":1219,"passive_chain":[93461,124782,0],"passive_ranks":[1,22],"receivers":[1221,1222],"undo_frame":0},{"carrier":1221,"carrier_chain":[93459,124784,26467,0],"carrier_ranks":[1,20,2],"deliver_after_root":4562,"deliver_frame":26467,"mix_frame":124784,"passive":1222,"passive_chain":[93458,124784,0],"passive_ranks":[1,22],"receivers":[1216,1219],"undo_frame":0},{"carrier":1217,"carrier_chain":[93463,124786,26471,0],"carrier_ranks":[1,20,2],"deliver_after_root":4564,"deliver_frame":26471,"mix_frame":124786,"passive":1218,"passive_chain":[93462,124786,0],"passive_ranks":[1,22],"receivers":[1220,1223],"undo_frame":0},{"carrier":1220,"carrier_chain":[93460,124788,26469,0],"carrier_ranks":[1,20,2],"deliver_after_root":4563,"deliver_frame":26469,"mix_frame":124788,"passive":1223,"passive_chain":[93457,124788,0],"passive_ranks":[1,22],"receivers":[1217,1218],"undo_frame":0},{"carrier":1224,"carrier_chain":[93456,124790,26495,0],"carrier_ranks":[1,20,2],"deliver_after_root":4595,"deliver_frame":26495,"mix_frame":124790,"passive":1227,"passive_chain":[93453,124790,0],"passive_ranks":[1,22],"receivers":[1229,1230],"undo_frame":0},{"carrier":1229,"carrier_chain":[93451,124792,26489,0],"carrier_ranks":[1,20,2],"deliver_after_root":4592,"deliver_frame":26489,"mix_frame":124792,"passive":1230,"passive_chain":[93450,124792,0],"passive_ranks":[1,22],"receivers":[1224,1227],"undo_frame":0},{"carrier":1225,"carrier_chain":[93455,124794,26493,0],"carrier_ranks":[1,20,2],"deliver_after_root":4594,"deliver_frame":26493,"mix_frame":124794,"passive":1226,"passive_chain":[93454,124794,0],"passive_ranks":[1,22],"receivers":[1228,1231],"undo_frame":0},{"carrier":1228,"carrier_chain":[93452,124796,26491,0],"carrier_ranks":[1,20,2],"deliver_after_root":4593,"deliver_frame":26491,"mix_frame":124796,"passive":1231,"passive_chain":[93449,124796,0],"passive_ranks":[1,22],"receivers":[1225,1226],"undo_frame":0},{"carrier":1232,"carrier_chain":[93448,124798,26517,0],"carrier_ranks":[1,20,2],"deliver_after_root":4625,"deliver_frame":26517,"mix_frame":124798,"passive":1235,"passive_chain":[93445,124798,0],"passive_ranks":[1,22],"receivers":[1237,1238],"undo_frame":0},{"carrier":1237,"carrier_chain":[93443,124800,26511,0],"carrier_ranks":[1,20,2],"deliver_after_root":4622,"deliver_frame":26511,"mix_frame":124800,"passive":1238,"passive_chain":[93442,124800,0],"passive_ranks":[1,22],"receivers":[1232,1235],"undo_frame":0},{"carrier":1233,"carrier_chain":[93447,124802,26515,0],"carrier_ranks":[1,20,2],"deliver_after_root":4624,"deliver_frame":26515,"mix_frame":124802,"passive":1234,"passive_chain":[93446,124802,0],"passive_ranks":[1,22],"receivers":[1236,1239],"undo_frame":0},{"carrier":1236,"carrier_chain":[93444,124804,26513,0],"carrier_ranks":[1,20,2],"deliver_after_root":4623,"deliver_frame":26513,"mix_frame":124804,"passive":1239,"passive_chain":[93441,124804,0],"passive_ranks":[1,22],"receivers":[1233,1234],"undo_frame":0},{"carrier":1240,"carrier_chain":[93440,124806,26539,0],"carrier_ranks":[1,20,2],"deliver_after_root":4655,"deliver_frame":26539,"mix_frame":124806,"passive":1243,"passive_chain":[93437,124806,0],"passive_ranks":[1,22],"receivers":[1245,1246],"undo_frame":0},{"carrier":1245,"carrier_chain":[93435,124808,26533,0],"carrier_ranks":[1,20,2],"deliver_after_root":4652,"deliver_frame":26533,"mix_frame":124808,"passive":1246,"passive_chain":[93434,124808,0],"passive_ranks":[1,22],"receivers":[1240,1243],"undo_frame":0},{"carrier":1241,"carrier_chain":[93439,124810,26537,0],"carrier_ranks":[1,20,2],"deliver_after_root":4654,"deliver_frame":26537,"mix_frame":124810,"passive":1242,"passive_chain":[93438,124810,0],"passive_ranks":[1,22],"receivers":[1244,1247],"undo_frame":0},{"carrier":1244,"carrier_chain":[93436,124812,26535,0],"carrier_ranks":[1,20,2],"deliver_after_root":4653,"deliver_frame":26535,"mix_frame":124812,"passive":1247,"passive_chain":[93433,124812,0],"passive_ranks":[1,22],"receivers":[1241,1242],"undo_frame":0},{"carrier":1248,"carrier_chain":[93432,124814,26561,0],"carrier_ranks":[1,20,2],"deliver_after_root":4685,"deliver_frame":26561,"mix_frame":124814,"passive":1251,"passive_chain":[93429,124814,0],"passive_ranks":[1,22],"receivers":[1253,1254],"undo_frame":0},{"carrier":1253,"carrier_chain":[93427,124816,26555,0],"carrier_ranks":[1,20,2],"deliver_after_root":4682,"deliver_frame":26555,"mix_frame":124816,"passive":1254,"passive_chain":[93426,124816,0],"passive_ranks":[1,22],"receivers":[1248,1251],"undo_frame":0},{"carrier":1249,"carrier_chain":[93431,124818,26559,0],"carrier_ranks":[1,20,2],"deliver_after_root":4684,"deliver_frame":26559,"mix_frame":124818,"passive":1250,"passive_chain":[93430,124818,0],"passive_ranks":[1,22],"receivers":[1252,1255],"undo_frame":0},{"carrier":1252,"carrier_chain":[93428,124820,26557,0],"carrier_ranks":[1,20,2],"deliver_after_root":4683,"deliver_frame":26557,"mix_frame":124820,"passive":1255,"passive_chain":[93425,124820,0],"passive_ranks":[1,22],"receivers":[1249,1250],"undo_frame":0},{"carrier":1256,"carrier_chain":[93424,124822,26583,0],"carrier_ranks":[1,20,2],"deliver_after_root":4715,"deliver_frame":26583,"mix_frame":124822,"passive":1259,"passive_chain":[93421,124822,0],"passive_ranks":[1,22],"receivers":[1261,1262],"undo_frame":0},{"carrier":1261,"carrier_chain":[93419,124824,26577,0],"carrier_ranks":[1,20,2],"deliver_after_root":4712,"deliver_frame":26577,"mix_frame":124824,"passive":1262,"passive_chain":[93418,124824,0],"passive_ranks":[1,22],"receivers":[1256,1259],"undo_frame":0},{"carrier":1257,"carrier_chain":[93423,124826,26581,0],"carrier_ranks":[1,20,2],"deliver_after_root":4714,"deliver_frame":26581,"mix_frame":124826,"passive":1258,"passive_chain":[93422,124826,0],"passive_ranks":[1,22],"receivers":[1260,1263],"undo_frame":0},{"carrier":1260,"carrier_chain":[93420,124828,26579,0],"carrier_ranks":[1,20,2],"deliver_after_root":4713,"deliver_frame":26579,"mix_frame":124828,"passive":1263,"passive_chain":[93417,124828,0],"passive_ranks":[1,22],"receivers":[1257,1258],"undo_frame":0},{"carrier":1264,"carrier_chain":[93416,124830,26605,0],"carrier_ranks":[1,20,2],"deliver_after_root":4745,"deliver_frame":26605,"mix_frame":124830,"passive":1267,"passive_chain":[93413,124830,0],"passive_ranks":[1,22],"receivers":[1269,1270],"undo_frame":0},{"carrier":1269,"carrier_chain":[93411,124832,26599,0],"carrier_ranks":[1,20,2],"deliver_after_root":4742,"deliver_frame":26599,"mix_frame":124832,"passive":1270,"passive_chain":[93410,124832,0],"passive_ranks":[1,22],"receivers":[1264,1267],"undo_frame":0},{"carrier":1265,"carrier_chain":[93415,124834,26603,0],"carrier_ranks":[1,20,2],"deliver_after_root":4744,"deliver_frame":26603,"mix_frame":124834,"passive":1266,"passive_chain":[93414,124834,0],"passive_ranks":[1,22],"receivers":[1268,1271],"undo_frame":0},{"carrier":1268,"carrier_chain":[93412,124836,26601,0],"carrier_ranks":[1,20,2],"deliver_after_root":4743,"deliver_frame":26601,"mix_frame":124836,"passive":1271,"passive_chain":[93409,124836,0],"passive_ranks":[1,22],"receivers":[1265,1266],"undo_frame":0},{"carrier":1272,"carrier_chain":[93408,124838,26627,0],"carrier_ranks":[1,20,2],"deliver_after_root":4775,"deliver_frame":26627,"mix_frame":124838,"passive":1275,"passive_chain":[93405,124838,0],"passive_ranks":[1,22],"receivers":[1277,1278],"undo_frame":0},{"carrier":1277,"carrier_chain":[93403,124840,26621,0],"carrier_ranks":[1,20,2],"deliver_after_root":4772,"deliver_frame":26621,"mix_frame":124840,"passive":1278,"passive_chain":[93402,124840,0],"passive_ranks":[1,22],"receivers":[1272,1275],"undo_frame":0},{"carrier":1273,"carrier_chain":[93407,124842,26625,0],"carrier_ranks":[1,20,2],"deliver_after_root":4774,"deliver_frame":26625,"mix_frame":124842,"passive":1274,"passive_chain":[93406,124842,0],"passive_ranks":[1,22],"receivers":[1276,1279],"undo_frame":0},{"carrier":1276,"carrier_chain":[93404,124844,26623,0],"carrier_ranks":[1,20,2],"deliver_after_root":4773,"deliver_frame":26623,"mix_frame":124844,"passive":1279,"passive_chain":[93401,124844,0],"passive_ranks":[1,22],"receivers":[1273,1274],"undo_frame":0},{"carrier":1280,"carrier_chain":[93400,124846,26649,0],"carrier_ranks":[1,20,2],"deliver_after_root":4805,"deliver_frame":26649,"mix_frame":124846,"passive":1283,"passive_chain":[93397,124846,0],"passive_ranks":[1,22],"receivers":[1285,1286],"undo_frame":0},{"carrier":1285,"carrier_chain":[93395,124848,26643,0],"carrier_ranks":[1,20,2],"deliver_after_root":4802,"deliver_frame":26643,"mix_frame":124848,"passive":1286,"passive_chain":[93394,124848,0],"passive_ranks":[1,22],"receivers":[1280,1283],"undo_frame":0},{"carrier":1281,"carrier_chain":[93399,124850,26647,0],"carrier_ranks":[1,20,2],"deliver_after_root":4804,"deliver_frame":26647,"mix_frame":124850,"passive":1282,"passive_chain":[93398,124850,0],"passive_ranks":[1,22],"receivers":[1284,1287],"undo_frame":0},{"carrier":1284,"carrier_chain":[93396,124852,26645,0],"carrier_ranks":[1,20,2],"deliver_after_root":4803,"deliver_frame":26645,"mix_frame":124852,"passive":1287,"passive_chain":[93393,124852,0],"passive_ranks":[1,22],"receivers":[1281,1282],"undo_frame":0},{"carrier":1288,"carrier_chain":[93392,124854,26671,0],"carrier_ranks":[1,20,2],"deliver_after_root":4835,"deliver_frame":26671,"mix_frame":124854,"passive":1291,"passive_chain":[93389,124854,0],"passive_ranks":[1,22],"receivers":[1293,1294],"undo_frame":0},{"carrier":1293,"carrier_chain":[93387,124856,26665,0],"carrier_ranks":[1,20,2],"deliver_after_root":4832,"deliver_frame":26665,"mix_frame":124856,"passive":1294,"passive_chain":[93386,124856,0],"passive_ranks":[1,22],"receivers":[1288,1291],"undo_frame":0},{"carrier":1289,"carrier_chain":[93391,124858,26669,0],"carrier_ranks":[1,20,2],"deliver_after_root":4834,"deliver_frame":26669,"mix_frame":124858,"passive":1290,"passive_chain":[93390,124858,0],"passive_ranks":[1,22],"receivers":[1292,1295],"undo_frame":0},{"carrier":1292,"carrier_chain":[93388,124860,26667,0],"carrier_ranks":[1,20,2],"deliver_after_root":4833,"deliver_frame":26667,"mix_frame":124860,"passive":1295,"passive_chain":[93385,124860,0],"passive_ranks":[1,22],"receivers":[1289,1290],"undo_frame":0},{"carrier":1296,"carrier_chain":[93384,124862,26693,0],"carrier_ranks":[1,20,2],"deliver_after_root":4865,"deliver_frame":26693,"mix_frame":124862,"passive":1299,"passive_chain":[93381,124862,0],"passive_ranks":[1,22],"receivers":[1301,1302],"undo_frame":0},{"carrier":1301,"carrier_chain":[93379,124864,26687,0],"carrier_ranks":[1,20,2],"deliver_after_root":4862,"deliver_frame":26687,"mix_frame":124864,"passive":1302,"passive_chain":[93378,124864,0],"passive_ranks":[1,22],"receivers":[1296,1299],"undo_frame":0},{"carrier":1297,"carrier_chain":[93383,124866,26691,0],"carrier_ranks":[1,20,2],"deliver_after_root":4864,"deliver_frame":26691,"mix_frame":124866,"passive":1298,"passive_chain":[93382,124866,0],"passive_ranks":[1,22],"receivers":[1300,1303],"undo_frame":0},{"carrier":1300,"carrier_chain":[93380,124868,26689,0],"carrier_ranks":[1,20,2],"deliver_after_root":4863,"deliver_frame":26689,"mix_frame":124868,"passive":1303,"passive_chain":[93377,124868,0],"passive_ranks":[1,22],"receivers":[1297,1298],"undo_frame":0},{"carrier":1304,"carrier_chain":[93376,124870,26715,0],"carrier_ranks":[1,20,2],"deliver_after_root":4895,"deliver_frame":26715,"mix_frame":124870,"passive":1307,"passive_chain":[93373,124870,0],"passive_ranks":[1,22],"receivers":[1309,1310],"undo_frame":0},{"carrier":1309,"carrier_chain":[93371,124872,26709,0],"carrier_ranks":[1,20,2],"deliver_after_root":4892,"deliver_frame":26709,"mix_frame":124872,"passive":1310,"passive_chain":[93370,124872,0],"passive_ranks":[1,22],"receivers":[1304,1307],"undo_frame":0},{"carrier":1305,"carrier_chain":[93375,124874,26713,0],"carrier_ranks":[1,20,2],"deliver_after_root":4894,"deliver_frame":26713,"mix_frame":124874,"passive":1306,"passive_chain":[93374,124874,0],"passive_ranks":[1,22],"receivers":[1308,1311],"undo_frame":0},{"carrier":1308,"carrier_chain":[93372,124876,26711,0],"carrier_ranks":[1,20,2],"deliver_after_root":4893,"deliver_frame":26711,"mix_frame":124876,"passive":1311,"passive_chain":[93369,124876,0],"passive_ranks":[1,22],"receivers":[1305,1306],"undo_frame":0},{"carrier":1312,"carrier_chain":[93368,124878,26737,0],"carrier_ranks":[1,20,2],"deliver_after_root":4925,"deliver_frame":26737,"mix_frame":124878,"passive":1315,"passive_chain":[93365,124878,0],"passive_ranks":[1,22],"receivers":[1317,1318],"undo_frame":0},{"carrier":1317,"carrier_chain":[93363,124880,26731,0],"carrier_ranks":[1,20,2],"deliver_after_root":4922,"deliver_frame":26731,"mix_frame":124880,"passive":1318,"passive_chain":[93362,124880,0],"passive_ranks":[1,22],"receivers":[1312,1315],"undo_frame":0},{"carrier":1313,"carrier_chain":[93367,124882,26735,0],"carrier_ranks":[1,20,2],"deliver_after_root":4924,"deliver_frame":26735,"mix_frame":124882,"passive":1314,"passive_chain":[93366,124882,0],"passive_ranks":[1,22],"receivers":[1316,1319],"undo_frame":0},{"carrier":1316,"carrier_chain":[93364,124884,26733,0],"carrier_ranks":[1,20,2],"deliver_after_root":4923,"deliver_frame":26733,"mix_frame":124884,"passive":1319,"passive_chain":[93361,124884,0],"passive_ranks":[1,22],"receivers":[1313,1314],"undo_frame":0},{"carrier":1320,"carrier_chain":[93360,124886,26759,0],"carrier_ranks":[1,20,2],"deliver_after_root":4955,"deliver_frame":26759,"mix_frame":124886,"passive":1323,"passive_chain":[93357,124886,0],"passive_ranks":[1,22],"receivers":[1325,1326],"undo_frame":0},{"carrier":1325,"carrier_chain":[93355,124888,26753,0],"carrier_ranks":[1,20,2],"deliver_after_root":4952,"deliver_frame":26753,"mix_frame":124888,"passive":1326,"passive_chain":[93354,124888,0],"passive_ranks":[1,22],"receivers":[1320,1323],"undo_frame":0},{"carrier":1321,"carrier_chain":[93359,124890,26757,0],"carrier_ranks":[1,20,2],"deliver_after_root":4954,"deliver_frame":26757,"mix_frame":124890,"passive":1322,"passive_chain":[93358,124890,0],"passive_ranks":[1,22],"receivers":[1324,1327],"undo_frame":0},{"carrier":1324,"carrier_chain":[93356,124892,26755,0],"carrier_ranks":[1,20,2],"deliver_after_root":4953,"deliver_frame":26755,"mix_frame":124892,"passive":1327,"passive_chain":[93353,124892,0],"passive_ranks":[1,22],"receivers":[1321,1322],"undo_frame":0},{"carrier":1328,"carrier_chain":[93352,124894,26781,0],"carrier_ranks":[1,20,2],"deliver_after_root":4985,"deliver_frame":26781,"mix_frame":124894,"passive":1331,"passive_chain":[93349,124894,0],"passive_ranks":[1,22],"receivers":[1333,1334],"undo_frame":0},{"carrier":1333,"carrier_chain":[93347,124896,26775,0],"carrier_ranks":[1,20,2],"deliver_after_root":4982,"deliver_frame":26775,"mix_frame":124896,"passive":1334,"passive_chain":[93346,124896,0],"passive_ranks":[1,22],"receivers":[1328,1331],"undo_frame":0},{"carrier":1329,"carrier_chain":[93351,124898,26779,0],"carrier_ranks":[1,20,2],"deliver_after_root":4984,"deliver_frame":26779,"mix_frame":124898,"passive":1330,"passive_chain":[93350,124898,0],"passive_ranks":[1,22],"receivers":[1332,1335],"undo_frame":0},{"carrier":1332,"carrier_chain":[93348,124900,26777,0],"carrier_ranks":[1,20,2],"deliver_after_root":4983,"deliver_frame":26777,"mix_frame":124900,"passive":1335,"passive_chain":[93345,124900,0],"passive_ranks":[1,22],"receivers":[1329,1330],"undo_frame":0},{"carrier":1336,"carrier_chain":[93344,124902,26803,0],"carrier_ranks":[1,20,2],"deliver_after_root":5015,"deliver_frame":26803,"mix_frame":124902,"passive":1339,"passive_chain":[93341,124902,0],"passive_ranks":[1,22],"receivers":[1341,1342],"undo_frame":0},{"carrier":1341,"carrier_chain":[93339,124904,26797,0],"carrier_ranks":[1,20,2],"deliver_after_root":5012,"deliver_frame":26797,"mix_frame":124904,"passive":1342,"passive_chain":[93338,124904,0],"passive_ranks":[1,22],"receivers":[1336,1339],"undo_frame":0},{"carrier":1337,"carrier_chain":[93343,124906,26801,0],"carrier_ranks":[1,20,2],"deliver_after_root":5014,"deliver_frame":26801,"mix_frame":124906,"passive":1338,"passive_chain":[93342,124906,0],"passive_ranks":[1,22],"receivers":[1340,1343],"undo_frame":0},{"carrier":1340,"carrier_chain":[93340,124908,26799,0],"carrier_ranks":[1,20,2],"deliver_after_root":5013,"deliver_frame":26799,"mix_frame":124908,"passive":1343,"passive_chain":[93337,124908,0],"passive_ranks":[1,22],"receivers":[1337,1338],"undo_frame":0},{"carrier":1344,"carrier_chain":[93336,124910,26825,0],"carrier_ranks":[1,20,2],"deliver_after_root":5045,"deliver_frame":26825,"mix_frame":124910,"passive":1347,"passive_chain":[93333,124910,0],"passive_ranks":[1,22],"receivers":[1349,1350],"undo_frame":0},{"carrier":1349,"carrier_chain":[93331,124912,26819,0],"carrier_ranks":[1,20,2],"deliver_after_root":5042,"deliver_frame":26819,"mix_frame":124912,"passive":1350,"passive_chain":[93330,124912,0],"passive_ranks":[1,22],"receivers":[1344,1347],"undo_frame":0},{"carrier":1345,"carrier_chain":[93335,124914,26823,0],"carrier_ranks":[1,20,2],"deliver_after_root":5044,"deliver_frame":26823,"mix_frame":124914,"passive":1346,"passive_chain":[93334,124914,0],"passive_ranks":[1,22],"receivers":[1348,1351],"undo_frame":0},{"carrier":1348,"carrier_chain":[93332,124916,26821,0],"carrier_ranks":[1,20,2],"deliver_after_root":5043,"deliver_frame":26821,"mix_frame":124916,"passive":1351,"passive_chain":[93329,124916,0],"passive_ranks":[1,22],"receivers":[1345,1346],"undo_frame":0},{"carrier":1352,"carrier_chain":[93328,124918,26847,0],"carrier_ranks":[1,20,2],"deliver_after_root":5075,"deliver_frame":26847,"mix_frame":124918,"passive":1355,"passive_chain":[93325,124918,0],"passive_ranks":[1,22],"receivers":[1357,1358],"undo_frame":0},{"carrier":1357,"carrier_chain":[93323,124920,26841,0],"carrier_ranks":[1,20,2],"deliver_after_root":5072,"deliver_frame":26841,"mix_frame":124920,"passive":1358,"passive_chain":[93322,124920,0],"passive_ranks":[1,22],"receivers":[1352,1355],"undo_frame":0},{"carrier":1353,"carrier_chain":[93327,124922,26845,0],"carrier_ranks":[1,20,2],"deliver_after_root":5074,"deliver_frame":26845,"mix_frame":124922,"passive":1354,"passive_chain":[93326,124922,0],"passive_ranks":[1,22],"receivers":[1356,1359],"undo_frame":0},{"carrier":1356,"carrier_chain":[93324,124924,26843,0],"carrier_ranks":[1,20,2],"deliver_after_root":5073,"deliver_frame":26843,"mix_frame":124924,"passive":1359,"passive_chain":[93321,124924,0],"passive_ranks":[1,22],"receivers":[1353,1354],"undo_frame":0},{"carrier":1360,"carrier_chain":[93320,124926,26869,0],"carrier_ranks":[1,20,2],"deliver_after_root":5105,"deliver_frame":26869,"mix_frame":124926,"passive":1363,"passive_chain":[93317,124926,0],"passive_ranks":[1,22],"receivers":[1365,1366],"undo_frame":0},{"carrier":1365,"carrier_chain":[93315,124928,26863,0],"carrier_ranks":[1,20,2],"deliver_after_root":5102,"deliver_frame":26863,"mix_frame":124928,"passive":1366,"passive_chain":[93314,124928,0],"passive_ranks":[1,22],"receivers":[1360,1363],"undo_frame":0},{"carrier":1361,"carrier_chain":[93319,124930,26867,0],"carrier_ranks":[1,20,2],"deliver_after_root":5104,"deliver_frame":26867,"mix_frame":124930,"passive":1362,"passive_chain":[93318,124930,0],"passive_ranks":[1,22],"receivers":[1364,1367],"undo_frame":0},{"carrier":1364,"carrier_chain":[93316,124932,26865,0],"carrier_ranks":[1,20,2],"deliver_after_root":5103,"deliver_frame":26865,"mix_frame":124932,"passive":1367,"passive_chain":[93313,124932,0],"passive_ranks":[1,22],"receivers":[1361,1362],"undo_frame":0},{"carrier":1368,"carrier_chain":[93312,124934,26891,0],"carrier_ranks":[1,20,2],"deliver_after_root":5135,"deliver_frame":26891,"mix_frame":124934,"passive":1371,"passive_chain":[93309,124934,0],"passive_ranks":[1,22],"receivers":[1373,1374],"undo_frame":0},{"carrier":1373,"carrier_chain":[93307,124936,26885,0],"carrier_ranks":[1,20,2],"deliver_after_root":5132,"deliver_frame":26885,"mix_frame":124936,"passive":1374,"passive_chain":[93306,124936,0],"passive_ranks":[1,22],"receivers":[1368,1371],"undo_frame":0},{"carrier":1369,"carrier_chain":[93311,124938,26889,0],"carrier_ranks":[1,20,2],"deliver_after_root":5134,"deliver_frame":26889,"mix_frame":124938,"passive":1370,"passive_chain":[93310,124938,0],"passive_ranks":[1,22],"receivers":[1372,1375],"undo_frame":0},{"carrier":1372,"carrier_chain":[93308,124940,26887,0],"carrier_ranks":[1,20,2],"deliver_after_root":5133,"deliver_frame":26887,"mix_frame":124940,"passive":1375,"passive_chain":[93305,124940,0],"passive_ranks":[1,22],"receivers":[1369,1370],"undo_frame":0},{"carrier":1376,"carrier_chain":[93304,124942,26913,0],"carrier_ranks":[1,20,2],"deliver_after_root":5165,"deliver_frame":26913,"mix_frame":124942,"passive":1379,"passive_chain":[93301,124942,0],"passive_ranks":[1,22],"receivers":[1381,1382],"undo_frame":0},{"carrier":1381,"carrier_chain":[93299,124944,26907,0],"carrier_ranks":[1,20,2],"deliver_after_root":5162,"deliver_frame":26907,"mix_frame":124944,"passive":1382,"passive_chain":[93298,124944,0],"passive_ranks":[1,22],"receivers":[1376,1379],"undo_frame":0},{"carrier":1377,"carrier_chain":[93303,124946,26911,0],"carrier_ranks":[1,20,2],"deliver_after_root":5164,"deliver_frame":26911,"mix_frame":124946,"passive":1378,"passive_chain":[93302,124946,0],"passive_ranks":[1,22],"receivers":[1380,1383],"undo_frame":0},{"carrier":1380,"carrier_chain":[93300,124948,26909,0],"carrier_ranks":[1,20,2],"deliver_after_root":5163,"deliver_frame":26909,"mix_frame":124948,"passive":1383,"passive_chain":[93297,124948,0],"passive_ranks":[1,22],"receivers":[1377,1378],"undo_frame":0},{"carrier":1384,"carrier_chain":[93296,124950,26935,0],"carrier_ranks":[1,20,2],"deliver_after_root":5195,"deliver_frame":26935,"mix_frame":124950,"passive":1387,"passive_chain":[93293,124950,0],"passive_ranks":[1,22],"receivers":[1389,1390],"undo_frame":0},{"carrier":1389,"carrier_chain":[93291,124952,26929,0],"carrier_ranks":[1,20,2],"deliver_after_root":5192,"deliver_frame":26929,"mix_frame":124952,"passive":1390,"passive_chain":[93290,124952,0],"passive_ranks":[1,22],"receivers":[1384,1387],"undo_frame":0},{"carrier":1385,"carrier_chain":[93295,124954,26933,0],"carrier_ranks":[1,20,2],"deliver_after_root":5194,"deliver_frame":26933,"mix_frame":124954,"passive":1386,"passive_chain":[93294,124954,0],"passive_ranks":[1,22],"receivers":[1388,1391],"undo_frame":0},{"carrier":1388,"carrier_chain":[93292,124956,26931,0],"carrier_ranks":[1,20,2],"deliver_after_root":5193,"deliver_frame":26931,"mix_frame":124956,"passive":1391,"passive_chain":[93289,124956,0],"passive_ranks":[1,22],"receivers":[1385,1386],"undo_frame":0},{"carrier":1392,"carrier_chain":[93288,124958,26957,0],"carrier_ranks":[1,20,2],"deliver_after_root":5225,"deliver_frame":26957,"mix_frame":124958,"passive":1395,"passive_chain":[93285,124958,0],"passive_ranks":[1,22],"receivers":[1397,1398],"undo_frame":0},{"carrier":1397,"carrier_chain":[93283,124960,26951,0],"carrier_ranks":[1,20,2],"deliver_after_root":5222,"deliver_frame":26951,"mix_frame":124960,"passive":1398,"passive_chain":[93282,124960,0],"passive_ranks":[1,22],"receivers":[1392,1395],"undo_frame":0},{"carrier":1393,"carrier_chain":[93287,124962,26955,0],"carrier_ranks":[1,20,2],"deliver_after_root":5224,"deliver_frame":26955,"mix_frame":124962,"passive":1394,"passive_chain":[93286,124962,0],"passive_ranks":[1,22],"receivers":[1396,1399],"undo_frame":0},{"carrier":1396,"carrier_chain":[93284,124964,26953,0],"carrier_ranks":[1,20,2],"deliver_after_root":5223,"deliver_frame":26953,"mix_frame":124964,"passive":1399,"passive_chain":[93281,124964,0],"passive_ranks":[1,22],"receivers":[1393,1394],"undo_frame":0},{"carrier":1400,"carrier_chain":[93280,124966,26979,0],"carrier_ranks":[1,20,2],"deliver_after_root":5255,"deliver_frame":26979,"mix_frame":124966,"passive":1403,"passive_chain":[93277,124966,0],"passive_ranks":[1,22],"receivers":[1405,1406],"undo_frame":0},{"carrier":1405,"carrier_chain":[93275,124968,26973,0],"carrier_ranks":[1,20,2],"deliver_after_root":5252,"deliver_frame":26973,"mix_frame":124968,"passive":1406,"passive_chain":[93274,124968,0],"passive_ranks":[1,22],"receivers":[1400,1403],"undo_frame":0},{"carrier":1401,"carrier_chain":[93279,124970,26977,0],"carrier_ranks":[1,20,2],"deliver_after_root":5254,"deliver_frame":26977,"mix_frame":124970,"passive":1402,"passive_chain":[93278,124970,0],"passive_ranks":[1,22],"receivers":[1404,1407],"undo_frame":0},{"carrier":1404,"carrier_chain":[93276,124972,26975,0],"carrier_ranks":[1,20,2],"deliver_after_root":5253,"deliver_frame":26975,"mix_frame":124972,"passive":1407,"passive_chain":[93273,124972,0],"passive_ranks":[1,22],"receivers":[1401,1402],"undo_frame":0},{"carrier":1408,"carrier_chain":[93272,124974,27001,0],"carrier_ranks":[1,20,2],"deliver_after_root":5285,"deliver_frame":27001,"mix_frame":124974,"passive":1411,"passive_chain":[93269,124974,0],"passive_ranks":[1,22],"receivers":[1413,1414],"undo_frame":0},{"carrier":1413,"carrier_chain":[93267,124976,26995,0],"carrier_ranks":[1,20,2],"deliver_after_root":5282,"deliver_frame":26995,"mix_frame":124976,"passive":1414,"passive_chain":[93266,124976,0],"passive_ranks":[1,22],"receivers":[1408,1411],"undo_frame":0},{"carrier":1409,"carrier_chain":[93271,124978,26999,0],"carrier_ranks":[1,20,2],"deliver_after_root":5284,"deliver_frame":26999,"mix_frame":124978,"passive":1410,"passive_chain":[93270,124978,0],"passive_ranks":[1,22],"receivers":[1412,1415],"undo_frame":0},{"carrier":1412,"carrier_chain":[93268,124980,26997,0],"carrier_ranks":[1,20,2],"deliver_after_root":5283,"deliver_frame":26997,"mix_frame":124980,"passive":1415,"passive_chain":[93265,124980,0],"passive_ranks":[1,22],"receivers":[1409,1410],"undo_frame":0},{"carrier":1416,"carrier_chain":[93264,124982,27023,0],"carrier_ranks":[1,20,2],"deliver_after_root":5315,"deliver_frame":27023,"mix_frame":124982,"passive":1419,"passive_chain":[93261,124982,0],"passive_ranks":[1,22],"receivers":[1421,1422],"undo_frame":0},{"carrier":1421,"carrier_chain":[93259,124984,27017,0],"carrier_ranks":[1,20,2],"deliver_after_root":5312,"deliver_frame":27017,"mix_frame":124984,"passive":1422,"passive_chain":[93258,124984,0],"passive_ranks":[1,22],"receivers":[1416,1419],"undo_frame":0},{"carrier":1417,"carrier_chain":[93263,124986,27021,0],"carrier_ranks":[1,20,2],"deliver_after_root":5314,"deliver_frame":27021,"mix_frame":124986,"passive":1418,"passive_chain":[93262,124986,0],"passive_ranks":[1,22],"receivers":[1420,1423],"undo_frame":0},{"carrier":1420,"carrier_chain":[93260,124988,27019,0],"carrier_ranks":[1,20,2],"deliver_after_root":5313,"deliver_frame":27019,"mix_frame":124988,"passive":1423,"passive_chain":[93257,124988,0],"passive_ranks":[1,22],"receivers":[1417,1418],"undo_frame":0},{"carrier":1424,"carrier_chain":[93256,124990,27045,0],"carrier_ranks":[1,20,2],"deliver_after_root":5345,"deliver_frame":27045,"mix_frame":124990,"passive":1427,"passive_chain":[93253,124990,0],"passive_ranks":[1,22],"receivers":[1429,1430],"undo_frame":0},{"carrier":1429,"carrier_chain":[93251,124992,27039,0],"carrier_ranks":[1,20,2],"deliver_after_root":5342,"deliver_frame":27039,"mix_frame":124992,"passive":1430,"passive_chain":[93250,124992,0],"passive_ranks":[1,22],"receivers":[1424,1427],"undo_frame":0},{"carrier":1425,"carrier_chain":[93255,124994,27043,0],"carrier_ranks":[1,20,2],"deliver_after_root":5344,"deliver_frame":27043,"mix_frame":124994,"passive":1426,"passive_chain":[93254,124994,0],"passive_ranks":[1,22],"receivers":[1428,1431],"undo_frame":0},{"carrier":1428,"carrier_chain":[93252,124996,27041,0],"carrier_ranks":[1,20,2],"deliver_after_root":5343,"deliver_frame":27041,"mix_frame":124996,"passive":1431,"passive_chain":[93249,124996,0],"passive_ranks":[1,22],"receivers":[1425,1426],"undo_frame":0},{"carrier":1432,"carrier_chain":[93248,124998,27067,0],"carrier_ranks":[1,20,2],"deliver_after_root":5375,"deliver_frame":27067,"mix_frame":124998,"passive":1435,"passive_chain":[93245,124998,0],"passive_ranks":[1,22],"receivers":[1437,1438],"undo_frame":0},{"carrier":1437,"carrier_chain":[93243,125000,27061,0],"carrier_ranks":[1,20,2],"deliver_after_root":5372,"deliver_frame":27061,"mix_frame":125000,"passive":1438,"passive_chain":[93242,125000,0],"passive_ranks":[1,22],"receivers":[1432,1435],"undo_frame":0},{"carrier":1433,"carrier_chain":[93247,125002,27065,0],"carrier_ranks":[1,20,2],"deliver_after_root":5374,"deliver_frame":27065,"mix_frame":125002,"passive":1434,"passive_chain":[93246,125002,0],"passive_ranks":[1,22],"receivers":[1436,1439],"undo_frame":0},{"carrier":1436,"carrier_chain":[93244,125004,27063,0],"carrier_ranks":[1,20,2],"deliver_after_root":5373,"deliver_frame":27063,"mix_frame":125004,"passive":1439,"passive_chain":[93241,125004,0],"passive_ranks":[1,22],"receivers":[1433,1434],"undo_frame":0},{"carrier":1440,"carrier_chain":[93240,125006,27089,0],"carrier_ranks":[1,20,2],"deliver_after_root":5405,"deliver_frame":27089,"mix_frame":125006,"passive":1443,"passive_chain":[93237,125006,0],"passive_ranks":[1,22],"receivers":[1445,1446],"undo_frame":0},{"carrier":1445,"carrier_chain":[93235,125008,27083,0],"carrier_ranks":[1,20,2],"deliver_after_root":5402,"deliver_frame":27083,"mix_frame":125008,"passive":1446,"passive_chain":[93234,125008,0],"passive_ranks":[1,22],"receivers":[1440,1443],"undo_frame":0},{"carrier":1441,"carrier_chain":[93239,125010,27087,0],"carrier_ranks":[1,20,2],"deliver_after_root":5404,"deliver_frame":27087,"mix_frame":125010,"passive":1442,"passive_chain":[93238,125010,0],"passive_ranks":[1,22],"receivers":[1444,1447],"undo_frame":0},{"carrier":1444,"carrier_chain":[93236,125012,27085,0],"carrier_ranks":[1,20,2],"deliver_after_root":5403,"deliver_frame":27085,"mix_frame":125012,"passive":1447,"passive_chain":[93233,125012,0],"passive_ranks":[1,22],"receivers":[1441,1442],"undo_frame":0},{"carrier":1448,"carrier_chain":[93232,125014,27111,0],"carrier_ranks":[1,20,2],"deliver_after_root":5435,"deliver_frame":27111,"mix_frame":125014,"passive":1451,"passive_chain":[93229,125014,0],"passive_ranks":[1,22],"receivers":[1453,1454],"undo_frame":0},{"carrier":1453,"carrier_chain":[93227,125016,27105,0],"carrier_ranks":[1,20,2],"deliver_after_root":5432,"deliver_frame":27105,"mix_frame":125016,"passive":1454,"passive_chain":[93226,125016,0],"passive_ranks":[1,22],"receivers":[1448,1451],"undo_frame":0},{"carrier":1449,"carrier_chain":[93231,125018,27109,0],"carrier_ranks":[1,20,2],"deliver_after_root":5434,"deliver_frame":27109,"mix_frame":125018,"passive":1450,"passive_chain":[93230,125018,0],"passive_ranks":[1,22],"receivers":[1452,1455],"undo_frame":0},{"carrier":1452,"carrier_chain":[93228,125020,27107,0],"carrier_ranks":[1,20,2],"deliver_after_root":5433,"deliver_frame":27107,"mix_frame":125020,"passive":1455,"passive_chain":[93225,125020,0],"passive_ranks":[1,22],"receivers":[1449,1450],"undo_frame":0},{"carrier":1456,"carrier_chain":[93224,125022,27133,0],"carrier_ranks":[1,20,2],"deliver_after_root":5465,"deliver_frame":27133,"mix_frame":125022,"passive":1459,"passive_chain":[93221,125022,0],"passive_ranks":[1,22],"receivers":[1461,1462],"undo_frame":0},{"carrier":1461,"carrier_chain":[93219,125024,27127,0],"carrier_ranks":[1,20,2],"deliver_after_root":5462,"deliver_frame":27127,"mix_frame":125024,"passive":1462,"passive_chain":[93218,125024,0],"passive_ranks":[1,22],"receivers":[1456,1459],"undo_frame":0},{"carrier":1457,"carrier_chain":[93223,125026,27131,0],"carrier_ranks":[1,20,2],"deliver_after_root":5464,"deliver_frame":27131,"mix_frame":125026,"passive":1458,"passive_chain":[93222,125026,0],"passive_ranks":[1,22],"receivers":[1460,1463],"undo_frame":0},{"carrier":1460,"carrier_chain":[93220,125028,27129,0],"carrier_ranks":[1,20,2],"deliver_after_root":5463,"deliver_frame":27129,"mix_frame":125028,"passive":1463,"passive_chain":[93217,125028,0],"passive_ranks":[1,22],"receivers":[1457,1458],"undo_frame":0},{"carrier":1464,"carrier_chain":[93216,125030,27155,0],"carrier_ranks":[1,20,2],"deliver_after_root":5495,"deliver_frame":27155,"mix_frame":125030,"passive":1467,"passive_chain":[93213,125030,0],"passive_ranks":[1,22],"receivers":[1469,1470],"undo_frame":0},{"carrier":1469,"carrier_chain":[93211,125032,27149,0],"carrier_ranks":[1,20,2],"deliver_after_root":5492,"deliver_frame":27149,"mix_frame":125032,"passive":1470,"passive_chain":[93210,125032,0],"passive_ranks":[1,22],"receivers":[1464,1467],"undo_frame":0},{"carrier":1465,"carrier_chain":[93215,125034,27153,0],"carrier_ranks":[1,20,2],"deliver_after_root":5494,"deliver_frame":27153,"mix_frame":125034,"passive":1466,"passive_chain":[93214,125034,0],"passive_ranks":[1,22],"receivers":[1468,1471],"undo_frame":0},{"carrier":1468,"carrier_chain":[93212,125036,27151,0],"carrier_ranks":[1,20,2],"deliver_after_root":5493,"deliver_frame":27151,"mix_frame":125036,"passive":1471,"passive_chain":[93209,125036,0],"passive_ranks":[1,22],"receivers":[1465,1466],"undo_frame":0},{"carrier":1472,"carrier_chain":[93208,125038,27177,0],"carrier_ranks":[1,20,2],"deliver_after_root":5525,"deliver_frame":27177,"mix_frame":125038,"passive":1475,"passive_chain":[93205,125038,0],"passive_ranks":[1,22],"receivers":[1477,1478],"undo_frame":0},{"carrier":1477,"carrier_chain":[93203,125040,27171,0],"carrier_ranks":[1,20,2],"deliver_after_root":5522,"deliver_frame":27171,"mix_frame":125040,"passive":1478,"passive_chain":[93202,125040,0],"passive_ranks":[1,22],"receivers":[1472,1475],"undo_frame":0},{"carrier":1473,"carrier_chain":[93207,125042,27175,0],"carrier_ranks":[1,20,2],"deliver_after_root":5524,"deliver_frame":27175,"mix_frame":125042,"passive":1474,"passive_chain":[93206,125042,0],"passive_ranks":[1,22],"receivers":[1476,1479],"undo_frame":0},{"carrier":1476,"carrier_chain":[93204,125044,27173,0],"carrier_ranks":[1,20,2],"deliver_after_root":5523,"deliver_frame":27173,"mix_frame":125044,"passive":1479,"passive_chain":[93201,125044,0],"passive_ranks":[1,22],"receivers":[1473,1474],"undo_frame":0},{"carrier":1480,"carrier_chain":[93200,125046,27199,0],"carrier_ranks":[1,20,2],"deliver_after_root":5555,"deliver_frame":27199,"mix_frame":125046,"passive":1483,"passive_chain":[93197,125046,0],"passive_ranks":[1,22],"receivers":[1485,1486],"undo_frame":0},{"carrier":1485,"carrier_chain":[93195,125048,27193,0],"carrier_ranks":[1,20,2],"deliver_after_root":5552,"deliver_frame":27193,"mix_frame":125048,"passive":1486,"passive_chain":[93194,125048,0],"passive_ranks":[1,22],"receivers":[1480,1483],"undo_frame":0},{"carrier":1481,"carrier_chain":[93199,125050,27197,0],"carrier_ranks":[1,20,2],"deliver_after_root":5554,"deliver_frame":27197,"mix_frame":125050,"passive":1482,"passive_chain":[93198,125050,0],"passive_ranks":[1,22],"receivers":[1484,1487],"undo_frame":0},{"carrier":1484,"carrier_chain":[93196,125052,27195,0],"carrier_ranks":[1,20,2],"deliver_after_root":5553,"deliver_frame":27195,"mix_frame":125052,"passive":1487,"passive_chain":[93193,125052,0],"passive_ranks":[1,22],"receivers":[1481,1482],"undo_frame":0},{"carrier":1488,"carrier_chain":[93192,125054,27221,0],"carrier_ranks":[1,20,2],"deliver_after_root":5585,"deliver_frame":27221,"mix_frame":125054,"passive":1491,"passive_chain":[93189,125054,0],"passive_ranks":[1,22],"receivers":[1493,1494],"undo_frame":0},{"carrier":1493,"carrier_chain":[93187,125056,27215,0],"carrier_ranks":[1,20,2],"deliver_after_root":5582,"deliver_frame":27215,"mix_frame":125056,"passive":1494,"passive_chain":[93186,125056,0],"passive_ranks":[1,22],"receivers":[1488,1491],"undo_frame":0},{"carrier":1489,"carrier_chain":[93191,125058,27219,0],"carrier_ranks":[1,20,2],"deliver_after_root":5584,"deliver_frame":27219,"mix_frame":125058,"passive":1490,"passive_chain":[93190,125058,0],"passive_ranks":[1,22],"receivers":[1492,1495],"undo_frame":0},{"carrier":1492,"carrier_chain":[93188,125060,27217,0],"carrier_ranks":[1,20,2],"deliver_after_root":5583,"deliver_frame":27217,"mix_frame":125060,"passive":1495,"passive_chain":[93185,125060,0],"passive_ranks":[1,22],"receivers":[1489,1490],"undo_frame":0},{"carrier":1496,"carrier_chain":[93184,125062,27243,0],"carrier_ranks":[1,20,2],"deliver_after_root":5615,"deliver_frame":27243,"mix_frame":125062,"passive":1499,"passive_chain":[93181,125062,0],"passive_ranks":[1,22],"receivers":[1501,1502],"undo_frame":0},{"carrier":1501,"carrier_chain":[93179,125064,27237,0],"carrier_ranks":[1,20,2],"deliver_after_root":5612,"deliver_frame":27237,"mix_frame":125064,"passive":1502,"passive_chain":[93178,125064,0],"passive_ranks":[1,22],"receivers":[1496,1499],"undo_frame":0},{"carrier":1497,"carrier_chain":[93183,125066,27241,0],"carrier_ranks":[1,20,2],"deliver_after_root":5614,"deliver_frame":27241,"mix_frame":125066,"passive":1498,"passive_chain":[93182,125066,0],"passive_ranks":[1,22],"receivers":[1500,1503],"undo_frame":0},{"carrier":1500,"carrier_chain":[93180,125068,27239,0],"carrier_ranks":[1,20,2],"deliver_after_root":5613,"deliver_frame":27239,"mix_frame":125068,"passive":1503,"passive_chain":[93177,125068,0],"passive_ranks":[1,22],"receivers":[1497,1498],"undo_frame":0},{"carrier":1504,"carrier_chain":[93176,125070,27265,0],"carrier_ranks":[1,20,2],"deliver_after_root":5645,"deliver_frame":27265,"mix_frame":125070,"passive":1507,"passive_chain":[93173,125070,0],"passive_ranks":[1,22],"receivers":[1509,1510],"undo_frame":0},{"carrier":1509,"carrier_chain":[93171,125072,27259,0],"carrier_ranks":[1,20,2],"deliver_after_root":5642,"deliver_frame":27259,"mix_frame":125072,"passive":1510,"passive_chain":[93170,125072,0],"passive_ranks":[1,22],"receivers":[1504,1507],"undo_frame":0},{"carrier":1505,"carrier_chain":[93175,125074,27263,0],"carrier_ranks":[1,20,2],"deliver_after_root":5644,"deliver_frame":27263,"mix_frame":125074,"passive":1506,"passive_chain":[93174,125074,0],"passive_ranks":[1,22],"receivers":[1508,1511],"undo_frame":0},{"carrier":1508,"carrier_chain":[93172,125076,27261,0],"carrier_ranks":[1,20,2],"deliver_after_root":5643,"deliver_frame":27261,"mix_frame":125076,"passive":1511,"passive_chain":[93169,125076,0],"passive_ranks":[1,22],"receivers":[1505,1506],"undo_frame":0},{"carrier":1512,"carrier_chain":[93168,125078,27287,0],"carrier_ranks":[1,20,2],"deliver_after_root":5675,"deliver_frame":27287,"mix_frame":125078,"passive":1515,"passive_chain":[93165,125078,0],"passive_ranks":[1,22],"receivers":[1517,1518],"undo_frame":0},{"carrier":1517,"carrier_chain":[93163,125080,27281,0],"carrier_ranks":[1,20,2],"deliver_after_root":5672,"deliver_frame":27281,"mix_frame":125080,"passive":1518,"passive_chain":[93162,125080,0],"passive_ranks":[1,22],"receivers":[1512,1515],"undo_frame":0},{"carrier":1513,"carrier_chain":[93167,125082,27285,0],"carrier_ranks":[1,20,2],"deliver_after_root":5674,"deliver_frame":27285,"mix_frame":125082,"passive":1514,"passive_chain":[93166,125082,0],"passive_ranks":[1,22],"receivers":[1516,1519],"undo_frame":0},{"carrier":1516,"carrier_chain":[93164,125084,27283,0],"carrier_ranks":[1,20,2],"deliver_after_root":5673,"deliver_frame":27283,"mix_frame":125084,"passive":1519,"passive_chain":[93161,125084,0],"passive_ranks":[1,22],"receivers":[1513,1514],"undo_frame":0},{"carrier":1520,"carrier_chain":[93160,125086,27309,0],"carrier_ranks":[1,20,2],"deliver_after_root":5705,"deliver_frame":27309,"mix_frame":125086,"passive":1523,"passive_chain":[93157,125086,0],"passive_ranks":[1,22],"receivers":[1525,1526],"undo_frame":0},{"carrier":1525,"carrier_chain":[93155,125088,27303,0],"carrier_ranks":[1,20,2],"deliver_after_root":5702,"deliver_frame":27303,"mix_frame":125088,"passive":1526,"passive_chain":[93154,125088,0],"passive_ranks":[1,22],"receivers":[1520,1523],"undo_frame":0},{"carrier":1521,"carrier_chain":[93159,125090,27307,0],"carrier_ranks":[1,20,2],"deliver_after_root":5704,"deliver_frame":27307,"mix_frame":125090,"passive":1522,"passive_chain":[93158,125090,0],"passive_ranks":[1,22],"receivers":[1524,1527],"undo_frame":0},{"carrier":1524,"carrier_chain":[93156,125092,27305,0],"carrier_ranks":[1,20,2],"deliver_after_root":5703,"deliver_frame":27305,"mix_frame":125092,"passive":1527,"passive_chain":[93153,125092,0],"passive_ranks":[1,22],"receivers":[1521,1522],"undo_frame":0},{"carrier":1528,"carrier_chain":[93152,125094,27331,0],"carrier_ranks":[1,20,2],"deliver_after_root":5735,"deliver_frame":27331,"mix_frame":125094,"passive":1531,"passive_chain":[93149,125094,0],"passive_ranks":[1,22],"receivers":[1533,1534],"undo_frame":0},{"carrier":1533,"carrier_chain":[93147,125096,27325,0],"carrier_ranks":[1,20,2],"deliver_after_root":5732,"deliver_frame":27325,"mix_frame":125096,"passive":1534,"passive_chain":[93146,125096,0],"passive_ranks":[1,22],"receivers":[1528,1531],"undo_frame":0},{"carrier":1529,"carrier_chain":[93151,125098,27329,0],"carrier_ranks":[1,20,2],"deliver_after_root":5734,"deliver_frame":27329,"mix_frame":125098,"passive":1530,"passive_chain":[93150,125098,0],"passive_ranks":[1,22],"receivers":[1532,1535],"undo_frame":0},{"carrier":1532,"carrier_chain":[93148,125100,27327,0],"carrier_ranks":[1,20,2],"deliver_after_root":5733,"deliver_frame":27327,"mix_frame":125100,"passive":1535,"passive_chain":[93145,125100,0],"passive_ranks":[1,22],"receivers":[1529,1530],"undo_frame":0},{"carrier":1536,"carrier_chain":[93144,125102,27353,0],"carrier_ranks":[1,20,2],"deliver_after_root":5765,"deliver_frame":27353,"mix_frame":125102,"passive":1539,"passive_chain":[93141,125102,0],"passive_ranks":[1,22],"receivers":[1541,1542],"undo_frame":0},{"carrier":1541,"carrier_chain":[93139,125104,27347,0],"carrier_ranks":[1,20,2],"deliver_after_root":5762,"deliver_frame":27347,"mix_frame":125104,"passive":1542,"passive_chain":[93138,125104,0],"passive_ranks":[1,22],"receivers":[1536,1539],"undo_frame":0},{"carrier":1537,"carrier_chain":[93143,125106,27351,0],"carrier_ranks":[1,20,2],"deliver_after_root":5764,"deliver_frame":27351,"mix_frame":125106,"passive":1538,"passive_chain":[93142,125106,0],"passive_ranks":[1,22],"receivers":[1540,1543],"undo_frame":0},{"carrier":1540,"carrier_chain":[93140,125108,27349,0],"carrier_ranks":[1,20,2],"deliver_after_root":5763,"deliver_frame":27349,"mix_frame":125108,"passive":1543,"passive_chain":[93137,125108,0],"passive_ranks":[1,22],"receivers":[1537,1538],"undo_frame":0},{"carrier":1544,"carrier_chain":[93136,125110,27375,0],"carrier_ranks":[1,20,2],"deliver_after_root":5795,"deliver_frame":27375,"mix_frame":125110,"passive":1547,"passive_chain":[93133,125110,0],"passive_ranks":[1,22],"receivers":[1549,1550],"undo_frame":0},{"carrier":1549,"carrier_chain":[93131,125112,27369,0],"carrier_ranks":[1,20,2],"deliver_after_root":5792,"deliver_frame":27369,"mix_frame":125112,"passive":1550,"passive_chain":[93130,125112,0],"passive_ranks":[1,22],"receivers":[1544,1547],"undo_frame":0},{"carrier":1545,"carrier_chain":[93135,125114,27373,0],"carrier_ranks":[1,20,2],"deliver_after_root":5794,"deliver_frame":27373,"mix_frame":125114,"passive":1546,"passive_chain":[93134,125114,0],"passive_ranks":[1,22],"receivers":[1548,1551],"undo_frame":0},{"carrier":1548,"carrier_chain":[93132,125116,27371,0],"carrier_ranks":[1,20,2],"deliver_after_root":5793,"deliver_frame":27371,"mix_frame":125116,"passive":1551,"passive_chain":[93129,125116,0],"passive_ranks":[1,22],"receivers":[1545,1546],"undo_frame":0},{"carrier":1552,"carrier_chain":[93128,125118,27397,0],"carrier_ranks":[1,20,2],"deliver_after_root":5825,"deliver_frame":27397,"mix_frame":125118,"passive":1555,"passive_chain":[93125,125118,0],"passive_ranks":[1,22],"receivers":[1557,1558],"undo_frame":0},{"carrier":1557,"carrier_chain":[93123,125120,27391,0],"carrier_ranks":[1,20,2],"deliver_after_root":5822,"deliver_frame":27391,"mix_frame":125120,"passive":1558,"passive_chain":[93122,125120,0],"passive_ranks":[1,22],"receivers":[1552,1555],"undo_frame":0},{"carrier":1553,"carrier_chain":[93127,125122,27395,0],"carrier_ranks":[1,20,2],"deliver_after_root":5824,"deliver_frame":27395,"mix_frame":125122,"passive":1554,"passive_chain":[93126,125122,0],"passive_ranks":[1,22],"receivers":[1556,1559],"undo_frame":0},{"carrier":1556,"carrier_chain":[93124,125124,27393,0],"carrier_ranks":[1,20,2],"deliver_after_root":5823,"deliver_frame":27393,"mix_frame":125124,"passive":1559,"passive_chain":[93121,125124,0],"passive_ranks":[1,22],"receivers":[1553,1554],"undo_frame":0},{"carrier":1560,"carrier_chain":[93120,125126,27419,0],"carrier_ranks":[1,20,2],"deliver_after_root":5855,"deliver_frame":27419,"mix_frame":125126,"passive":1563,"passive_chain":[93117,125126,0],"passive_ranks":[1,22],"receivers":[1565,1566],"undo_frame":0},{"carrier":1565,"carrier_chain":[93115,125128,27413,0],"carrier_ranks":[1,20,2],"deliver_after_root":5852,"deliver_frame":27413,"mix_frame":125128,"passive":1566,"passive_chain":[93114,125128,0],"passive_ranks":[1,22],"receivers":[1560,1563],"undo_frame":0},{"carrier":1561,"carrier_chain":[93119,125130,27417,0],"carrier_ranks":[1,20,2],"deliver_after_root":5854,"deliver_frame":27417,"mix_frame":125130,"passive":1562,"passive_chain":[93118,125130,0],"passive_ranks":[1,22],"receivers":[1564,1567],"undo_frame":0},{"carrier":1564,"carrier_chain":[93116,125132,27415,0],"carrier_ranks":[1,20,2],"deliver_after_root":5853,"deliver_frame":27415,"mix_frame":125132,"passive":1567,"passive_chain":[93113,125132,0],"passive_ranks":[1,22],"receivers":[1561,1562],"undo_frame":0},{"carrier":1568,"carrier_chain":[93112,125134,27441,0],"carrier_ranks":[1,20,2],"deliver_after_root":5885,"deliver_frame":27441,"mix_frame":125134,"passive":1571,"passive_chain":[93109,125134,0],"passive_ranks":[1,22],"receivers":[1573,1574],"undo_frame":0},{"carrier":1573,"carrier_chain":[93107,125136,27435,0],"carrier_ranks":[1,20,2],"deliver_after_root":5882,"deliver_frame":27435,"mix_frame":125136,"passive":1574,"passive_chain":[93106,125136,0],"passive_ranks":[1,22],"receivers":[1568,1571],"undo_frame":0},{"carrier":1569,"carrier_chain":[93111,125138,27439,0],"carrier_ranks":[1,20,2],"deliver_after_root":5884,"deliver_frame":27439,"mix_frame":125138,"passive":1570,"passive_chain":[93110,125138,0],"passive_ranks":[1,22],"receivers":[1572,1575],"undo_frame":0},{"carrier":1572,"carrier_chain":[93108,125140,27437,0],"carrier_ranks":[1,20,2],"deliver_after_root":5883,"deliver_frame":27437,"mix_frame":125140,"passive":1575,"passive_chain":[93105,125140,0],"passive_ranks":[1,22],"receivers":[1569,1570],"undo_frame":0},{"carrier":1576,"carrier_chain":[93104,125142,27463,0],"carrier_ranks":[1,20,2],"deliver_after_root":5915,"deliver_frame":27463,"mix_frame":125142,"passive":1579,"passive_chain":[93101,125142,0],"passive_ranks":[1,22],"receivers":[1581,1582],"undo_frame":0},{"carrier":1581,"carrier_chain":[93099,125144,27457,0],"carrier_ranks":[1,20,2],"deliver_after_root":5912,"deliver_frame":27457,"mix_frame":125144,"passive":1582,"passive_chain":[93098,125144,0],"passive_ranks":[1,22],"receivers":[1576,1579],"undo_frame":0},{"carrier":1577,"carrier_chain":[93103,125146,27461,0],"carrier_ranks":[1,20,2],"deliver_after_root":5914,"deliver_frame":27461,"mix_frame":125146,"passive":1578,"passive_chain":[93102,125146,0],"passive_ranks":[1,22],"receivers":[1580,1583],"undo_frame":0},{"carrier":1580,"carrier_chain":[93100,125148,27459,0],"carrier_ranks":[1,20,2],"deliver_after_root":5913,"deliver_frame":27459,"mix_frame":125148,"passive":1583,"passive_chain":[93097,125148,0],"passive_ranks":[1,22],"receivers":[1577,1578],"undo_frame":0},{"carrier":1584,"carrier_chain":[93096,125150,27485,0],"carrier_ranks":[1,20,2],"deliver_after_root":5945,"deliver_frame":27485,"mix_frame":125150,"passive":1587,"passive_chain":[93093,125150,0],"passive_ranks":[1,22],"receivers":[1589,1590],"undo_frame":0},{"carrier":1589,"carrier_chain":[93091,125152,27479,0],"carrier_ranks":[1,20,2],"deliver_after_root":5942,"deliver_frame":27479,"mix_frame":125152,"passive":1590,"passive_chain":[93090,125152,0],"passive_ranks":[1,22],"receivers":[1584,1587],"undo_frame":0},{"carrier":1585,"carrier_chain":[93095,125154,27483,0],"carrier_ranks":[1,20,2],"deliver_after_root":5944,"deliver_frame":27483,"mix_frame":125154,"passive":1586,"passive_chain":[93094,125154,0],"passive_ranks":[1,22],"receivers":[1588,1591],"undo_frame":0},{"carrier":1588,"carrier_chain":[93092,125156,27481,0],"carrier_ranks":[1,20,2],"deliver_after_root":5943,"deliver_frame":27481,"mix_frame":125156,"passive":1591,"passive_chain":[93089,125156,0],"passive_ranks":[1,22],"receivers":[1585,1586],"undo_frame":0},{"carrier":1592,"carrier_chain":[93088,125158,27507,0],"carrier_ranks":[1,20,2],"deliver_after_root":5975,"deliver_frame":27507,"mix_frame":125158,"passive":1595,"passive_chain":[93085,125158,0],"passive_ranks":[1,22],"receivers":[1597,1598],"undo_frame":0},{"carrier":1597,"carrier_chain":[93083,125160,27501,0],"carrier_ranks":[1,20,2],"deliver_after_root":5972,"deliver_frame":27501,"mix_frame":125160,"passive":1598,"passive_chain":[93082,125160,0],"passive_ranks":[1,22],"receivers":[1592,1595],"undo_frame":0},{"carrier":1593,"carrier_chain":[93087,125162,27505,0],"carrier_ranks":[1,20,2],"deliver_after_root":5974,"deliver_frame":27505,"mix_frame":125162,"passive":1594,"passive_chain":[93086,125162,0],"passive_ranks":[1,22],"receivers":[1596,1599],"undo_frame":0},{"carrier":1596,"carrier_chain":[93084,125164,27503,0],"carrier_ranks":[1,20,2],"deliver_after_root":5973,"deliver_frame":27503,"mix_frame":125164,"passive":1599,"passive_chain":[93081,125164,0],"passive_ranks":[1,22],"receivers":[1593,1594],"undo_frame":0},{"carrier":1600,"carrier_chain":[93080,125166,27529,0],"carrier_ranks":[1,20,2],"deliver_after_root":6005,"deliver_frame":27529,"mix_frame":125166,"passive":1603,"passive_chain":[93077,125166,0],"passive_ranks":[1,22],"receivers":[1605,1606],"undo_frame":0},{"carrier":1605,"carrier_chain":[93075,125168,27523,0],"carrier_ranks":[1,20,2],"deliver_after_root":6002,"deliver_frame":27523,"mix_frame":125168,"passive":1606,"passive_chain":[93074,125168,0],"passive_ranks":[1,22],"receivers":[1600,1603],"undo_frame":0},{"carrier":1601,"carrier_chain":[93079,125170,27527,0],"carrier_ranks":[1,20,2],"deliver_after_root":6004,"deliver_frame":27527,"mix_frame":125170,"passive":1602,"passive_chain":[93078,125170,0],"passive_ranks":[1,22],"receivers":[1604,1607],"undo_frame":0},{"carrier":1604,"carrier_chain":[93076,125172,27525,0],"carrier_ranks":[1,20,2],"deliver_after_root":6003,"deliver_frame":27525,"mix_frame":125172,"passive":1607,"passive_chain":[93073,125172,0],"passive_ranks":[1,22],"receivers":[1601,1602],"undo_frame":0},{"carrier":1608,"carrier_chain":[93072,125174,27551,0],"carrier_ranks":[1,20,2],"deliver_after_root":6035,"deliver_frame":27551,"mix_frame":125174,"passive":1611,"passive_chain":[93069,125174,0],"passive_ranks":[1,22],"receivers":[1613,1614],"undo_frame":0},{"carrier":1613,"carrier_chain":[93067,125176,27545,0],"carrier_ranks":[1,20,2],"deliver_after_root":6032,"deliver_frame":27545,"mix_frame":125176,"passive":1614,"passive_chain":[93066,125176,0],"passive_ranks":[1,22],"receivers":[1608,1611],"undo_frame":0},{"carrier":1609,"carrier_chain":[93071,125178,27549,0],"carrier_ranks":[1,20,2],"deliver_after_root":6034,"deliver_frame":27549,"mix_frame":125178,"passive":1610,"passive_chain":[93070,125178,0],"passive_ranks":[1,22],"receivers":[1612,1615],"undo_frame":0},{"carrier":1612,"carrier_chain":[93068,125180,27547,0],"carrier_ranks":[1,20,2],"deliver_after_root":6033,"deliver_frame":27547,"mix_frame":125180,"passive":1615,"passive_chain":[93065,125180,0],"passive_ranks":[1,22],"receivers":[1609,1610],"undo_frame":0},{"carrier":1616,"carrier_chain":[93064,125182,27573,0],"carrier_ranks":[1,20,2],"deliver_after_root":6065,"deliver_frame":27573,"mix_frame":125182,"passive":1619,"passive_chain":[93061,125182,0],"passive_ranks":[1,22],"receivers":[1621,1622],"undo_frame":0},{"carrier":1621,"carrier_chain":[93059,125184,27567,0],"carrier_ranks":[1,20,2],"deliver_after_root":6062,"deliver_frame":27567,"mix_frame":125184,"passive":1622,"passive_chain":[93058,125184,0],"passive_ranks":[1,22],"receivers":[1616,1619],"undo_frame":0},{"carrier":1617,"carrier_chain":[93063,125186,27571,0],"carrier_ranks":[1,20,2],"deliver_after_root":6064,"deliver_frame":27571,"mix_frame":125186,"passive":1618,"passive_chain":[93062,125186,0],"passive_ranks":[1,22],"receivers":[1620,1623],"undo_frame":0},{"carrier":1620,"carrier_chain":[93060,125188,27569,0],"carrier_ranks":[1,20,2],"deliver_after_root":6063,"deliver_frame":27569,"mix_frame":125188,"passive":1623,"passive_chain":[93057,125188,0],"passive_ranks":[1,22],"receivers":[1617,1618],"undo_frame":0},{"carrier":1624,"carrier_chain":[93056,125190,27595,0],"carrier_ranks":[1,20,2],"deliver_after_root":6095,"deliver_frame":27595,"mix_frame":125190,"passive":1627,"passive_chain":[93053,125190,0],"passive_ranks":[1,22],"receivers":[1629,1630],"undo_frame":0},{"carrier":1629,"carrier_chain":[93051,125192,27589,0],"carrier_ranks":[1,20,2],"deliver_after_root":6092,"deliver_frame":27589,"mix_frame":125192,"passive":1630,"passive_chain":[93050,125192,0],"passive_ranks":[1,22],"receivers":[1624,1627],"undo_frame":0},{"carrier":1625,"carrier_chain":[93055,125194,27593,0],"carrier_ranks":[1,20,2],"deliver_after_root":6094,"deliver_frame":27593,"mix_frame":125194,"passive":1626,"passive_chain":[93054,125194,0],"passive_ranks":[1,22],"receivers":[1628,1631],"undo_frame":0},{"carrier":1628,"carrier_chain":[93052,125196,27591,0],"carrier_ranks":[1,20,2],"deliver_after_root":6093,"deliver_frame":27591,"mix_frame":125196,"passive":1631,"passive_chain":[93049,125196,0],"passive_ranks":[1,22],"receivers":[1625,1626],"undo_frame":0},{"carrier":1632,"carrier_chain":[93048,125198,27617,0],"carrier_ranks":[1,20,2],"deliver_after_root":6125,"deliver_frame":27617,"mix_frame":125198,"passive":1635,"passive_chain":[93045,125198,0],"passive_ranks":[1,22],"receivers":[1637,1638],"undo_frame":0},{"carrier":1637,"carrier_chain":[93043,125200,27611,0],"carrier_ranks":[1,20,2],"deliver_after_root":6122,"deliver_frame":27611,"mix_frame":125200,"passive":1638,"passive_chain":[93042,125200,0],"passive_ranks":[1,22],"receivers":[1632,1635],"undo_frame":0},{"carrier":1633,"carrier_chain":[93047,125202,27615,0],"carrier_ranks":[1,20,2],"deliver_after_root":6124,"deliver_frame":27615,"mix_frame":125202,"passive":1634,"passive_chain":[93046,125202,0],"passive_ranks":[1,22],"receivers":[1636,1639],"undo_frame":0},{"carrier":1636,"carrier_chain":[93044,125204,27613,0],"carrier_ranks":[1,20,2],"deliver_after_root":6123,"deliver_frame":27613,"mix_frame":125204,"passive":1639,"passive_chain":[93041,125204,0],"passive_ranks":[1,22],"receivers":[1633,1634],"undo_frame":0},{"carrier":1640,"carrier_chain":[93040,125206,27639,0],"carrier_ranks":[1,20,2],"deliver_after_root":6155,"deliver_frame":27639,"mix_frame":125206,"passive":1643,"passive_chain":[93037,125206,0],"passive_ranks":[1,22],"receivers":[1645,1646],"undo_frame":0},{"carrier":1645,"carrier_chain":[93035,125208,27633,0],"carrier_ranks":[1,20,2],"deliver_after_root":6152,"deliver_frame":27633,"mix_frame":125208,"passive":1646,"passive_chain":[93034,125208,0],"passive_ranks":[1,22],"receivers":[1640,1643],"undo_frame":0},{"carrier":1641,"carrier_chain":[93039,125210,27637,0],"carrier_ranks":[1,20,2],"deliver_after_root":6154,"deliver_frame":27637,"mix_frame":125210,"passive":1642,"passive_chain":[93038,125210,0],"passive_ranks":[1,22],"receivers":[1644,1647],"undo_frame":0},{"carrier":1644,"carrier_chain":[93036,125212,27635,0],"carrier_ranks":[1,20,2],"deliver_after_root":6153,"deliver_frame":27635,"mix_frame":125212,"passive":1647,"passive_chain":[93033,125212,0],"passive_ranks":[1,22],"receivers":[1641,1642],"undo_frame":0},{"carrier":1648,"carrier_chain":[93032,125214,27661,0],"carrier_ranks":[1,20,2],"deliver_after_root":6185,"deliver_frame":27661,"mix_frame":125214,"passive":1651,"passive_chain":[93029,125214,0],"passive_ranks":[1,22],"receivers":[1653,1654],"undo_frame":0},{"carrier":1653,"carrier_chain":[93027,125216,27655,0],"carrier_ranks":[1,20,2],"deliver_after_root":6182,"deliver_frame":27655,"mix_frame":125216,"passive":1654,"passive_chain":[93026,125216,0],"passive_ranks":[1,22],"receivers":[1648,1651],"undo_frame":0},{"carrier":1649,"carrier_chain":[93031,125218,27659,0],"carrier_ranks":[1,20,2],"deliver_after_root":6184,"deliver_frame":27659,"mix_frame":125218,"passive":1650,"passive_chain":[93030,125218,0],"passive_ranks":[1,22],"receivers":[1652,1655],"undo_frame":0},{"carrier":1652,"carrier_chain":[93028,125220,27657,0],"carrier_ranks":[1,20,2],"deliver_after_root":6183,"deliver_frame":27657,"mix_frame":125220,"passive":1655,"passive_chain":[93025,125220,0],"passive_ranks":[1,22],"receivers":[1649,1650],"undo_frame":0},{"carrier":1656,"carrier_chain":[93024,125222,27683,0],"carrier_ranks":[1,20,2],"deliver_after_root":6215,"deliver_frame":27683,"mix_frame":125222,"passive":1659,"passive_chain":[93021,125222,0],"passive_ranks":[1,22],"receivers":[1661,1662],"undo_frame":0},{"carrier":1661,"carrier_chain":[93019,125224,27677,0],"carrier_ranks":[1,20,2],"deliver_after_root":6212,"deliver_frame":27677,"mix_frame":125224,"passive":1662,"passive_chain":[93018,125224,0],"passive_ranks":[1,22],"receivers":[1656,1659],"undo_frame":0},{"carrier":1657,"carrier_chain":[93023,125226,27681,0],"carrier_ranks":[1,20,2],"deliver_after_root":6214,"deliver_frame":27681,"mix_frame":125226,"passive":1658,"passive_chain":[93022,125226,0],"passive_ranks":[1,22],"receivers":[1660,1663],"undo_frame":0},{"carrier":1660,"carrier_chain":[93020,125228,27679,0],"carrier_ranks":[1,20,2],"deliver_after_root":6213,"deliver_frame":27679,"mix_frame":125228,"passive":1663,"passive_chain":[93017,125228,0],"passive_ranks":[1,22],"receivers":[1657,1658],"undo_frame":0},{"carrier":1664,"carrier_chain":[93016,125230,27705,0],"carrier_ranks":[1,20,2],"deliver_after_root":6245,"deliver_frame":27705,"mix_frame":125230,"passive":1667,"passive_chain":[93013,125230,0],"passive_ranks":[1,22],"receivers":[1669,1670],"undo_frame":0},{"carrier":1669,"carrier_chain":[93011,125232,27699,0],"carrier_ranks":[1,20,2],"deliver_after_root":6242,"deliver_frame":27699,"mix_frame":125232,"passive":1670,"passive_chain":[93010,125232,0],"passive_ranks":[1,22],"receivers":[1664,1667],"undo_frame":0},{"carrier":1665,"carrier_chain":[93015,125234,27703,0],"carrier_ranks":[1,20,2],"deliver_after_root":6244,"deliver_frame":27703,"mix_frame":125234,"passive":1666,"passive_chain":[93014,125234,0],"passive_ranks":[1,22],"receivers":[1668,1671],"undo_frame":0},{"carrier":1668,"carrier_chain":[93012,125236,27701,0],"carrier_ranks":[1,20,2],"deliver_after_root":6243,"deliver_frame":27701,"mix_frame":125236,"passive":1671,"passive_chain":[93009,125236,0],"passive_ranks":[1,22],"receivers":[1665,1666],"undo_frame":0},{"carrier":1672,"carrier_chain":[93008,125238,27727,0],"carrier_ranks":[1,20,2],"deliver_after_root":6275,"deliver_frame":27727,"mix_frame":125238,"passive":1675,"passive_chain":[93005,125238,0],"passive_ranks":[1,22],"receivers":[1677,1678],"undo_frame":0},{"carrier":1677,"carrier_chain":[93003,125240,27721,0],"carrier_ranks":[1,20,2],"deliver_after_root":6272,"deliver_frame":27721,"mix_frame":125240,"passive":1678,"passive_chain":[93002,125240,0],"passive_ranks":[1,22],"receivers":[1672,1675],"undo_frame":0},{"carrier":1673,"carrier_chain":[93007,125242,27725,0],"carrier_ranks":[1,20,2],"deliver_after_root":6274,"deliver_frame":27725,"mix_frame":125242,"passive":1674,"passive_chain":[93006,125242,0],"passive_ranks":[1,22],"receivers":[1676,1679],"undo_frame":0},{"carrier":1676,"carrier_chain":[93004,125244,27723,0],"carrier_ranks":[1,20,2],"deliver_after_root":6273,"deliver_frame":27723,"mix_frame":125244,"passive":1679,"passive_chain":[93001,125244,0],"passive_ranks":[1,22],"receivers":[1673,1674],"undo_frame":0},{"carrier":1680,"carrier_chain":[93000,125246,27749,0],"carrier_ranks":[1,20,2],"deliver_after_root":6305,"deliver_frame":27749,"mix_frame":125246,"passive":1683,"passive_chain":[92997,125246,0],"passive_ranks":[1,22],"receivers":[1685,1686],"undo_frame":0},{"carrier":1685,"carrier_chain":[92995,125248,27743,0],"carrier_ranks":[1,20,2],"deliver_after_root":6302,"deliver_frame":27743,"mix_frame":125248,"passive":1686,"passive_chain":[92994,125248,0],"passive_ranks":[1,22],"receivers":[1680,1683],"undo_frame":0},{"carrier":1681,"carrier_chain":[92999,125250,27747,0],"carrier_ranks":[1,20,2],"deliver_after_root":6304,"deliver_frame":27747,"mix_frame":125250,"passive":1682,"passive_chain":[92998,125250,0],"passive_ranks":[1,22],"receivers":[1684,1687],"undo_frame":0},{"carrier":1684,"carrier_chain":[92996,125252,27745,0],"carrier_ranks":[1,20,2],"deliver_after_root":6303,"deliver_frame":27745,"mix_frame":125252,"passive":1687,"passive_chain":[92993,125252,0],"passive_ranks":[1,22],"receivers":[1681,1682],"undo_frame":0},{"carrier":1688,"carrier_chain":[92992,125254,27771,0],"carrier_ranks":[1,20,2],"deliver_after_root":6335,"deliver_frame":27771,"mix_frame":125254,"passive":1691,"passive_chain":[92989,125254,0],"passive_ranks":[1,22],"receivers":[1693,1694],"undo_frame":0},{"carrier":1693,"carrier_chain":[92987,125256,27765,0],"carrier_ranks":[1,20,2],"deliver_after_root":6332,"deliver_frame":27765,"mix_frame":125256,"passive":1694,"passive_chain":[92986,125256,0],"passive_ranks":[1,22],"receivers":[1688,1691],"undo_frame":0},{"carrier":1689,"carrier_chain":[92991,125258,27769,0],"carrier_ranks":[1,20,2],"deliver_after_root":6334,"deliver_frame":27769,"mix_frame":125258,"passive":1690,"passive_chain":[92990,125258,0],"passive_ranks":[1,22],"receivers":[1692,1695],"undo_frame":0},{"carrier":1692,"carrier_chain":[92988,125260,27767,0],"carrier_ranks":[1,20,2],"deliver_after_root":6333,"deliver_frame":27767,"mix_frame":125260,"passive":1695,"passive_chain":[92985,125260,0],"passive_ranks":[1,22],"receivers":[1689,1690],"undo_frame":0},{"carrier":1696,"carrier_chain":[92984,125262,27793,0],"carrier_ranks":[1,20,2],"deliver_after_root":6365,"deliver_frame":27793,"mix_frame":125262,"passive":1699,"passive_chain":[92981,125262,0],"passive_ranks":[1,22],"receivers":[1701,1702],"undo_frame":0},{"carrier":1701,"carrier_chain":[92979,125264,27787,0],"carrier_ranks":[1,20,2],"deliver_after_root":6362,"deliver_frame":27787,"mix_frame":125264,"passive":1702,"passive_chain":[92978,125264,0],"passive_ranks":[1,22],"receivers":[1696,1699],"undo_frame":0},{"carrier":1697,"carrier_chain":[92983,125266,27791,0],"carrier_ranks":[1,20,2],"deliver_after_root":6364,"deliver_frame":27791,"mix_frame":125266,"passive":1698,"passive_chain":[92982,125266,0],"passive_ranks":[1,22],"receivers":[1700,1703],"undo_frame":0},{"carrier":1700,"carrier_chain":[92980,125268,27789,0],"carrier_ranks":[1,20,2],"deliver_after_root":6363,"deliver_frame":27789,"mix_frame":125268,"passive":1703,"passive_chain":[92977,125268,0],"passive_ranks":[1,22],"receivers":[1697,1698],"undo_frame":0},{"carrier":1704,"carrier_chain":[92976,125270,27815,0],"carrier_ranks":[1,20,2],"deliver_after_root":6395,"deliver_frame":27815,"mix_frame":125270,"passive":1707,"passive_chain":[92973,125270,0],"passive_ranks":[1,22],"receivers":[1709,1710],"undo_frame":0},{"carrier":1709,"carrier_chain":[92971,125272,27809,0],"carrier_ranks":[1,20,2],"deliver_after_root":6392,"deliver_frame":27809,"mix_frame":125272,"passive":1710,"passive_chain":[92970,125272,0],"passive_ranks":[1,22],"receivers":[1704,1707],"undo_frame":0},{"carrier":1705,"carrier_chain":[92975,125274,27813,0],"carrier_ranks":[1,20,2],"deliver_after_root":6394,"deliver_frame":27813,"mix_frame":125274,"passive":1706,"passive_chain":[92974,125274,0],"passive_ranks":[1,22],"receivers":[1708,1711],"undo_frame":0},{"carrier":1708,"carrier_chain":[92972,125276,27811,0],"carrier_ranks":[1,20,2],"deliver_after_root":6393,"deliver_frame":27811,"mix_frame":125276,"passive":1711,"passive_chain":[92969,125276,0],"passive_ranks":[1,22],"receivers":[1705,1706],"undo_frame":0},{"carrier":1712,"carrier_chain":[92968,125278,27837,0],"carrier_ranks":[1,20,2],"deliver_after_root":6425,"deliver_frame":27837,"mix_frame":125278,"passive":1715,"passive_chain":[92965,125278,0],"passive_ranks":[1,22],"receivers":[1717,1718],"undo_frame":0},{"carrier":1717,"carrier_chain":[92963,125280,27831,0],"carrier_ranks":[1,20,2],"deliver_after_root":6422,"deliver_frame":27831,"mix_frame":125280,"passive":1718,"passive_chain":[92962,125280,0],"passive_ranks":[1,22],"receivers":[1712,1715],"undo_frame":0},{"carrier":1713,"carrier_chain":[92967,125282,27835,0],"carrier_ranks":[1,20,2],"deliver_after_root":6424,"deliver_frame":27835,"mix_frame":125282,"passive":1714,"passive_chain":[92966,125282,0],"passive_ranks":[1,22],"receivers":[1716,1719],"undo_frame":0},{"carrier":1716,"carrier_chain":[92964,125284,27833,0],"carrier_ranks":[1,20,2],"deliver_after_root":6423,"deliver_frame":27833,"mix_frame":125284,"passive":1719,"passive_chain":[92961,125284,0],"passive_ranks":[1,22],"receivers":[1713,1714],"undo_frame":0},{"carrier":1720,"carrier_chain":[92960,125286,27859,0],"carrier_ranks":[1,20,2],"deliver_after_root":6455,"deliver_frame":27859,"mix_frame":125286,"passive":1723,"passive_chain":[92957,125286,0],"passive_ranks":[1,22],"receivers":[1725,1726],"undo_frame":0},{"carrier":1725,"carrier_chain":[92955,125288,27853,0],"carrier_ranks":[1,20,2],"deliver_after_root":6452,"deliver_frame":27853,"mix_frame":125288,"passive":1726,"passive_chain":[92954,125288,0],"passive_ranks":[1,22],"receivers":[1720,1723],"undo_frame":0},{"carrier":1721,"carrier_chain":[92959,125290,27857,0],"carrier_ranks":[1,20,2],"deliver_after_root":6454,"deliver_frame":27857,"mix_frame":125290,"passive":1722,"passive_chain":[92958,125290,0],"passive_ranks":[1,22],"receivers":[1724,1727],"undo_frame":0},{"carrier":1724,"carrier_chain":[92956,125292,27855,0],"carrier_ranks":[1,20,2],"deliver_after_root":6453,"deliver_frame":27855,"mix_frame":125292,"passive":1727,"passive_chain":[92953,125292,0],"passive_ranks":[1,22],"receivers":[1721,1722],"undo_frame":0},{"carrier":1728,"carrier_chain":[92952,125294,27881,0],"carrier_ranks":[1,20,2],"deliver_after_root":6485,"deliver_frame":27881,"mix_frame":125294,"passive":1731,"passive_chain":[92949,125294,0],"passive_ranks":[1,22],"receivers":[1733,1734],"undo_frame":0},{"carrier":1733,"carrier_chain":[92947,125296,27875,0],"carrier_ranks":[1,20,2],"deliver_after_root":6482,"deliver_frame":27875,"mix_frame":125296,"passive":1734,"passive_chain":[92946,125296,0],"passive_ranks":[1,22],"receivers":[1728,1731],"undo_frame":0},{"carrier":1729,"carrier_chain":[92951,125298,27879,0],"carrier_ranks":[1,20,2],"deliver_after_root":6484,"deliver_frame":27879,"mix_frame":125298,"passive":1730,"passive_chain":[92950,125298,0],"passive_ranks":[1,22],"receivers":[1732,1735],"undo_frame":0},{"carrier":1732,"carrier_chain":[92948,125300,27877,0],"carrier_ranks":[1,20,2],"deliver_after_root":6483,"deliver_frame":27877,"mix_frame":125300,"passive":1735,"passive_chain":[92945,125300,0],"passive_ranks":[1,22],"receivers":[1729,1730],"undo_frame":0},{"carrier":1736,"carrier_chain":[92944,125302,27903,0],"carrier_ranks":[1,20,2],"deliver_after_root":6515,"deliver_frame":27903,"mix_frame":125302,"passive":1739,"passive_chain":[92941,125302,0],"passive_ranks":[1,22],"receivers":[1741,1742],"undo_frame":0},{"carrier":1741,"carrier_chain":[92939,125304,27897,0],"carrier_ranks":[1,20,2],"deliver_after_root":6512,"deliver_frame":27897,"mix_frame":125304,"passive":1742,"passive_chain":[92938,125304,0],"passive_ranks":[1,22],"receivers":[1736,1739],"undo_frame":0},{"carrier":1737,"carrier_chain":[92943,125306,27901,0],"carrier_ranks":[1,20,2],"deliver_after_root":6514,"deliver_frame":27901,"mix_frame":125306,"passive":1738,"passive_chain":[92942,125306,0],"passive_ranks":[1,22],"receivers":[1740,1743],"undo_frame":0},{"carrier":1740,"carrier_chain":[92940,125308,27899,0],"carrier_ranks":[1,20,2],"deliver_after_root":6513,"deliver_frame":27899,"mix_frame":125308,"passive":1743,"passive_chain":[92937,125308,0],"passive_ranks":[1,22],"receivers":[1737,1738],"undo_frame":0},{"carrier":1744,"carrier_chain":[92936,125310,27925,0],"carrier_ranks":[1,20,2],"deliver_after_root":6545,"deliver_frame":27925,"mix_frame":125310,"passive":1747,"passive_chain":[92933,125310,0],"passive_ranks":[1,22],"receivers":[1749,1750],"undo_frame":0},{"carrier":1749,"carrier_chain":[92931,125312,27919,0],"carrier_ranks":[1,20,2],"deliver_after_root":6542,"deliver_frame":27919,"mix_frame":125312,"passive":1750,"passive_chain":[92930,125312,0],"passive_ranks":[1,22],"receivers":[1744,1747],"undo_frame":0},{"carrier":1745,"carrier_chain":[92935,125314,27923,0],"carrier_ranks":[1,20,2],"deliver_after_root":6544,"deliver_frame":27923,"mix_frame":125314,"passive":1746,"passive_chain":[92934,125314,0],"passive_ranks":[1,22],"receivers":[1748,1751],"undo_frame":0},{"carrier":1748,"carrier_chain":[92932,125316,27921,0],"carrier_ranks":[1,20,2],"deliver_after_root":6543,"deliver_frame":27921,"mix_frame":125316,"passive":1751,"passive_chain":[92929,125316,0],"passive_ranks":[1,22],"receivers":[1745,1746],"undo_frame":0},{"carrier":1752,"carrier_chain":[92928,125318,27947,0],"carrier_ranks":[1,20,2],"deliver_after_root":6575,"deliver_frame":27947,"mix_frame":125318,"passive":1755,"passive_chain":[92925,125318,0],"passive_ranks":[1,22],"receivers":[1757,1758],"undo_frame":0},{"carrier":1757,"carrier_chain":[92923,125320,27941,0],"carrier_ranks":[1,20,2],"deliver_after_root":6572,"deliver_frame":27941,"mix_frame":125320,"passive":1758,"passive_chain":[92922,125320,0],"passive_ranks":[1,22],"receivers":[1752,1755],"undo_frame":0},{"carrier":1753,"carrier_chain":[92927,125322,27945,0],"carrier_ranks":[1,20,2],"deliver_after_root":6574,"deliver_frame":27945,"mix_frame":125322,"passive":1754,"passive_chain":[92926,125322,0],"passive_ranks":[1,22],"receivers":[1756,1759],"undo_frame":0},{"carrier":1756,"carrier_chain":[92924,125324,27943,0],"carrier_ranks":[1,20,2],"deliver_after_root":6573,"deliver_frame":27943,"mix_frame":125324,"passive":1759,"passive_chain":[92921,125324,0],"passive_ranks":[1,22],"receivers":[1753,1754],"undo_frame":0}],"h":24} diff --git a/research/five-stage-gen5-banks/gen5bit/selected/bit/profile_p12.json b/research/five-stage-gen5-banks/gen5bit/selected/bit/profile_p12.json new file mode 100644 index 0000000000..44a6800656 --- /dev/null +++ b/research/five-stage-gen5-banks/gen5bit/selected/bit/profile_p12.json @@ -0,0 +1 @@ +{"R":17292,"W_per_vertex":20812,"c":23476,"child_histogram":{"1":127086,"10":2088,"11":1980,"12":3528,"13":900,"14":3240,"15":144,"16":2988,"17":372,"18":300,"19":216,"2":56800,"20":5184,"21":16500,"22":4692,"3":30300,"4":9864,"5":7128,"51":2,"54":16,"6":4140,"60":2182,"63":1760,"7":2448,"8":3132,"9":2088},"deficit_per_vertex":1936,"h":24,"loss":528,"m":72,"matched":12808,"maxchild":63,"plain_frames":11692,"q":6624,"rank_per_vertex":1496528,"remaining_internal_histogram":{"0":6650,"1":36198,"10":696,"11":660,"12":1176,"13":300,"14":1080,"15":48,"16":996,"17":120,"18":72,"19":72,"2":16848,"21":4620,"22":684,"3":10100,"4":3288,"5":2376,"6":1380,"7":816,"8":1044,"9":696},"selected_rank_histogram":{"17":2,"18":16,"20":2182,"21":1760},"selected_roles":3960,"source_data_histogram":{"1":1760,"2":880,"20":880,"22":880},"target_data_histogram":{"0":10524,"1":4404,"17":4,"18":28,"2":32,"20":848,"21":880},"v":1760} diff --git a/research/five-stage-gen5-banks/gen5bit/selected/bit/word_p12.json.gz b/research/five-stage-gen5-banks/gen5bit/selected/bit/word_p12.json.gz new file mode 100644 index 0000000000..67dbeaf485 Binary files /dev/null and b/research/five-stage-gen5-banks/gen5bit/selected/bit/word_p12.json.gz differ diff --git a/research/five-stage-gen5-banks/inputs/complex/LICENSE b/research/five-stage-gen5-banks/inputs/complex/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/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/five-stage-gen5-banks/inputs/complex/NOTICE b/research/five-stage-gen5-banks/inputs/complex/NOTICE new file mode 100644 index 0000000000..63aa295646 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/NOTICE @@ -0,0 +1,290 @@ +Walsh-Hadamard power saving (wht-power-saving-lean) +Copyright 2026 Jacob Sussman + +Repository: https://github.com/jacobalansussman/wht-power-saving-lean + +This repository is not a project of OpenAI. OpenAI did not write, review or +endorse it. The package name "OAI" and the namespace "OAI.PowerSaving" are +those of openai/math and are kept only because the new files extend that +development. + +This repository is not a project of CrocSwap/integer-mult-bounds either. Its +authors did not write, review or endorse it. Section 6 says what is taken +from their repository. + +This repository contains files from, and files derived from, the repository +"openai/math" (https://github.com/openai/math), family 130, "Exact Fourier +transforms below n log n", at commit fd4aeeb2ee4fc729c18d98444fed42fd0529eeeb. +That repository is published under the Apache License, Version 2.0. A copy of +the licence is in the file LICENSE. The upstream repository has no NOTICE file +and its licence text names no copyright holder; the files are attributed here +to the authors of openai/math (OpenAI). + +1. Unmodified upstream files. + The 89 files under OAI/Computability/ are byte-for-byte copies of the files + with the same paths under lean/ in openai/math at the commit above. They + have not been changed. Modified copies of some of them are under + Work/Fourier/ and are listed in section 7. + One more file of openai/math is here unchanged, outside the Lean build: + third-party/openai-math/lean/ComparatorChallenges/UniformFourier.lean is a + byte-for-byte copy of lean/ComparatorChallenges/UniformFourier.lean at the + commit above (the statement of OpenAI's Fourier challenge). It is included + so that the modified copy named in section 2 can be compared with it. + +2. Files that contain upstream text. + - Work/CarrierCheck/ChallengeB2Ke16x.lean, + Work/CarrierCheck/ChallengeB2Ke16xR.lean, + Work/GCert/Data/ChallengeB2Gp193x.lean and the text template + tools/gen/templates/ChallengeB2L16x.lean.txt each contain, as their + lines 22-270, lines 9-257 of + lean/ComparatorChallenges/UniformFourier.lean of openai/math (the RAM cost + model), unchanged. Everything else in these files was written for this + repository. + - Work/Fourier/UniformFourierChallenge.lean is a modified copy of + lean/ComparatorChallenges/UniformFourier.lean of openai/math (the + statement of OpenAI's Fourier challenge, 336 lines). Changes: a comment + was added at the top; the exponent 1 - 1/(10^(13:ℕ)) was replaced by + 1 - 7474546/(10^(10:ℕ)); seven names received the suffix "Z" + (decimalExponent, decimalTime, TimeBounds, DFTGoal, ConvGoal, + transform_main, convolution_main). Everything else in the file is the + upstream text, unchanged. See section 7. + - Work/Scratch/Engine.lean and Work/Block/Engine.lean contain copies of + proofs of openai/math, changed for this repository: sections 1, 2 and 5 + of Work/Scratch/Engine.lean are upstream proofs with the batch layout + renamed, and both files contain a copy of the private upstream theorem + "hills_project" (lean/OAI/Computability/FourierTransform/ + TensorProgram.lean) with its envelope generalised. The comments in the + two files mark these places. + - lakefile.lean is adapted from lean/lakefile.lean of openai/math: the same + package name, toolchain, package option and Mathlib pin; every other + dependency was removed and the libraries of this repository were added. + lean-toolchain is a byte-for-byte copy of lean/lean-toolchain. + lake-manifest.json lists Mathlib and its dependencies at the revisions of + lean/lake-manifest.json. + - RELATED-WORK.md reproduces the BibTeX entries of two manuscripts of + openai/math. + +3. New files that build on upstream proofs. + The other files under WHTCheck/ and Work/ were written for this + repository. They import the upstream files, and several of them generalise + or adapt proofs of upstream files (for example Work/Block/Recursion.lean, + which says so in its header). They are changes and additions made for this + repository and are not part of openai/math. + +4. How the new files were made. + Jacob Sussman made the new files on 2026-10-08 and 2026-10-09 by directing + a team of AI agents (Claude). The agents wrote the new Lean files, the + certificate data and the generator scripts. See README.md, section 4. + +5. Ideas taken from other public work. + The network of the first result uses ideas published by others, among them + the helper circuit "NStar3" (Swapnil-jain/integer-mult-kappa, which credits + CrocSwap pull request #36 and Paureel for parts of it), its transfer to + family 130 (shea256/fourier-transform-below-nlogn), and "carrier links" and + "whole-residual batching" (pull requests to CrocSwap/integer-mult-bounds). + No file of Swapnil-jain/integer-mult-kappa or of + shea256/fourier-transform-below-nlogn is included here. One comment in + Work/Scratch/Engine.lean quotes three counts reported in + Swapnil-jain/integer-mult-kappa and names that source. The general frame + lemma that Work/GFrame proves is stated in + notes/general-clifford-frames.tex of CrocSwap/integer-mult-bounds; its Lean + proof was written for this repository. The credits, with links, are in + RELATED-WORK.md. + +6. Data derived from CrocSwap/integer-mult-bounds (second result). + The helper circuit of the second result is the paired-cube circuit of the + repository "CrocSwap/integer-mult-bounds" + (https://github.com/CrocSwap/integer-mult-bounds), in the state of its pull + request #193. It is the design of that community: icekylinx (pull requests + #144 and #184), eumemic (#168, and #117 behind its modules), ikeboy / + Avi Eisenberg (#191 and #193), with an664 (#128) credited there for the + workspace-sharing principle. That repository is published under the Apache + License, Version 2.0 (the same licence text as the file LICENSE). Its + NOTICE file begins "A sharper exponent for integer multiplication / + Copyright 2026 Douglas Colkitt" and says that the community release "is + not solely Douglas Colkitt's work". A complete copy of that NOTICE file, as + it is at the head of pull request #193, is in + third-party/CrocSwap-integer-mult-bounds/NOTICE. + + The data were taken from these files of that repository. They were loaded + as data by programs written for this repository; no program of that + repository was run, and none is included here. + - at the head of pull request #168 (eumemic), + 4a3c769e5c5430e7114c4d3e099ff34664677f17: + references/paired-cube/sources/local_L1.json + references/paired-cube/sources/tmod_TE_TD_TB3_1_1_4_full_6.0617964e-4.json + references/paired-cube/sources/pmod_J0_full_6.0666810e-4.json + references/paired-cube/sources/qmod_climb3u_best.json + references/paired-cube/selected-module/matching-arcs.json + references/paired-cube/physical/frames.json + - at the head of pull request #193 (ikeboy), + 187e1010ac8b259af8e9b5166f68b64bc27b4b47: + research/source-assisted-v4/data/physical-pairs.json + + Files of this repository that contain data derived from them: + tools/certificate/gcert1-p11-pr193.json.gz and the Lean data modules + generated from it, Work/GCert/Data/Gen/P193*.lean and the files they import + from Work/GCert/Data/Gen/P193/; its block counts are also in the generated + modules Work/GCert/Data/P193Price.lean, RateB2Gp193.lean, RateB2Gp193x.lean + and InstB2Gp193.lean. + Changes made: the circuit was rebuilt from those data as one explicit, + renumbered list of additions with a table of frames, in the certificate + format "gcert/1" of this repository; its 1,980 in-place steps were written + as pairs of additions with rescaled coefficients; the Lean data modules + were generated from that list. No file of that repository is included + unchanged, except the copy of its NOTICE file named above. + + Notices of that NOTICE file that pertain to these data, quoted: + + Paired-cube and shared-core extension, 9 October 2026 + Copyright 2026 icekylinx + + Source-assisted common-frame extension (2026-10-09) + Copyright 2026 icekylinx. Apache-2.0. + Substantial dependency: eumemic PR168, + fd25adb7fbaa12ee761d02c733c54d1d2a7687ee + + The full text of both notices, and the notices of the work they build on, + are in the copy named above. The credits, with links and with the words of + pull request #193 about its own sources, are in README.md ("Whose circuit + this is") and in RELATED-WORK.md, section 1. + +7. Modified copies of upstream files (third result). + The files listed below are copies of files of openai/math at the commit + above, changed for this repository. Each begins with a comment that names + the upstream file it is derived from and states what was changed. The + upstream originals under lean/OAI/Computability/ are in this repository + as well, unchanged (section 1), and the copies import them. The upstream + challenge file lean/ComparatorChallenges/UniformFourier.lean is in this + repository in both forms: unchanged under third-party/openai-math/ + (section 1) and modified (section 2). + + - Work/Fourier/ArbitraryLength.lean: modified copy of + lean/OAI/Computability/FourierTransform/ArbitraryLength.lean (224 + lines; 159 of them unchanged in the copy). Changes: identifiers renamed + on 64 lines (18 names: 15 with the suffix Z, 3 with Z inserted); 1 + import line replaced by 1; 15 comment lines added; no other change to + the code. + - Work/Fourier/Asymptotics.lean: modified copy of + lean/OAI/Computability/FourierTransform/Asymptotics.lean (187 lines; + 112 of them unchanged in the copy). Changes: identifiers renamed on 74 + lines (32 names: 26 with the suffix Z, 6 with Z inserted); 1 import + line replaced by 1; 15 comment lines added; no other change to the + code. + - Work/Fourier/Axioms.lean: written for this repository (not a copy of an + upstream file). + - Work/Fourier/ConvolutionProgram.lean: modified copy of + lean/OAI/Computability/FourierTransform/ConvolutionProgram.lean (100 + lines; 77 of them unchanged in the copy). Changes: identifiers renamed + on 22 lines (10 names: 9 with the suffix Z, 1 with Z inserted); 1 + import line replaced by 1; 15 comment lines added; no other change to + the code. + - Work/Fourier/Goal.lean: written for this repository; contains lines of + upstream files: of its 7 code lines, 6 are lines of + lean/OAI/Computability/FourierTransform/Goal.lean (original lines 35, + 75-77, 79, 81): unchanged: its lines 25; with identifiers renamed: its + lines 21, 24, 26, 28, 30. + - Work/Fourier/Main.lean: modified copy of + lean/OAI/Computability/FourierTransform/Main.lean (151 lines; 90 of + them unchanged in the copy). Changes: identifiers renamed on 59 lines + (40 names: 35 with the suffix Z, 5 with Z inserted); 1 import line + replaced by 2; 24 comment lines added; other code lines changed: 1 of + the original, 1 of the copy (copy line 59). + - Work/Fourier/Seam.lean: written for this repository; contains lines of + upstream files: of its 122 code lines, 15 are lines of + lean/OAI/Computability/FourierTransform/TensorProgram.lean (original + lines 36-37, 95-96): unchanged: its lines 93-94, 113-114, 141-142, + 163-164, 185-187, 194-196; with identifiers renamed: its lines 184; 3 + are lines of lean/OAI/Computability/FourierTransform/TensorSaving.lean + (original lines 83-84, 114): with identifiers renamed: its lines 45-46, + 59; 1 is a line of lean/OAI/Computability/FourierTransform/Main.lean + (original line 60): with identifiers renamed: its lines 213. + - Work/Fourier/SectorAlgorithm.lean: modified copy of + lean/OAI/Computability/FourierTransform/SectorAlgorithm.lean (224 + lines; 162 of them unchanged in the copy). Changes: identifiers renamed + on 61 lines (17 names: 13 with the suffix Z, 4 with Z inserted); 1 + import line replaced by 1; 15 comment lines added; no other change to + the code. + - Work/Fourier/SynchronizedAlgorithm.lean: modified copy of + lean/OAI/Computability/FourierTransform/SynchronizedAlgorithm.lean (126 + lines; 94 of them unchanged in the copy). Changes: identifiers renamed + on 31 lines (12 names: 10 with the suffix Z, 1 with Z inserted, 1 + other), the other being "canopy" to "Grove.canopy" (5 lines); 1 import + line replaced by 1; 16 comment lines added; no other change to the + code. + - Work/Fourier/TransformProgram.lean: modified copy of + lean/OAI/Computability/FourierTransform/TransformProgram.lean (146 + lines; 94 of them unchanged in the copy). Changes: identifiers renamed + on 51 lines (21 names: 19 with the suffix Z, 2 with Z inserted); 1 + import line replaced by 1; 15 comment lines added; no other change to + the code. + - Work/Fourier/UniformBounds.lean: modified copy of + lean/OAI/Computability/FourierTransform/UniformBounds.lean (183 lines; + 115 of them unchanged in the copy). Changes: identifiers renamed on 67 + lines (29 names: 25 with the suffix Z, 4 with Z inserted); 1 import + line replaced by 1; 15 comment lines added; no other change to the + code. + - Work/Fourier/UniformFourierChallenge.lean: modified copy of + lean/ComparatorChallenges/UniformFourier.lean (336 lines; 328 of them + unchanged in the copy). Changes: identifiers renamed on 7 lines (7 + names: 7 with the suffix Z); 12 comment lines added; other code lines + changed: 1 of the original, 1 of the copy (copy line 281). + - Work/Fourier/WorkingCompiler.lean: modified copy of + lean/OAI/Computability/FourierTransform/WorkingCompiler.lean (153 + lines; 104 of them unchanged in the copy). Changes: identifiers renamed + on 48 lines (14 names: 14 with the suffix Z); 1 import line replaced by + 1; 15 comment lines added; no other change to the code. + - Work/Fourier/WorkingPreparation.lean: modified copy of + lean/OAI/Computability/FourierTransform/WorkingPreparation.lean (212 + lines; 156 of them unchanged in the copy). Changes: identifiers renamed + on 55 lines (30 names: 28 with the suffix Z, 2 with Z inserted); 1 + import line replaced by 1; 15 comment lines added; no other change to + the code. + - Work/Fourier/WorkingTransform.lean: modified copy of + lean/OAI/Computability/FourierTransform/WorkingTransform.lean (119 + lines; 91 of them unchanged in the copy). Changes: identifiers renamed + on 27 lines (9 names: 8 with the suffix Z, 1 with Z inserted); 1 import + line replaced by 1; 15 comment lines added; no other change to the + code. + + Changes made to the eleven copied proof files: every declaration received + the letter "Z" in its name (as a suffix of its own name, or of the name + of the declaration it belongs to), so that it does not collide with the + upstream declaration of the same name; the upstream exponent "alpha" + (1 - 2/10^11) and the bound "hills" defined from it were replaced by + "alphaZ" (1 - 7474547/10^10) and "hillsZ", which are defined in + Work/Fourier/Seam.lean, and the single use of the upstream theorem + "hills_program" by "hillsZ_program"; the five definitions of the upstream + statement that contain its exponent (decimalExponent, decimalTime, + TimeBounds, DFTGoal, ConvGoal) were replaced by the versions of + Work/Fourier/Goal.lean, whose exponent is 1 - 7474546/(10^(10:ℕ)); + the import lines point to the copies; a header comment was added. + Two further changes: in the copy of Main.lean the same constant stands + once as the literal 2/10^11 and was replaced there too, and the two + final theorems of that copy received a documentation comment; in the + copy of SynchronizedAlgorithm.lean the name "canopy" was written out as + "Grove.canopy" in 5 places, because the short name is shadowed in the + larger environment of the copy. The script also renamed three names + inside upstream comments; the comments are otherwise the upstream ones + and describe the upstream network. + The proofs are those of openai/math. The copies were made by the script + tools/fourier/mkchain.py of this repository. + + Work/Fourier/Goal.lean contains copies of those five definitions of + lean/OAI/Computability/FourierTransform/Goal.lean, with the exponent + replaced and the suffix "Z" on the five names. + + Work/Fourier/Seam.lean was written for this repository. It repeats the + statement of the upstream theorem "hills_program" (TensorProgram.lean) and + the definition of "hills" (TensorSaving.lean) with the two names replaced; + its header says so. + + The work of others that the third result follows (danadran01, shea256, + eumemic) is credited in README.md ("Whose reduction this is") and in + RELATED-WORK.md, section 1. No file of their repositories is included + here. + +Not included in this repository and fetched by the build: Mathlib +(https://github.com/leanprover-community/mathlib4, Apache License 2.0) and its +dependencies. The comparator (https://github.com/leanprover/comparator) is a +separate tool and is not included. diff --git a/research/five-stage-gen5-banks/inputs/complex/gcert1-p11-pr193.json.gz b/research/five-stage-gen5-banks/inputs/complex/gcert1-p11-pr193.json.gz new file mode 100644 index 0000000000..a98026a72f Binary files /dev/null and b/research/five-stage-gen5-banks/inputs/complex/gcert1-p11-pr193.json.gz differ diff --git a/research/five-stage-gen5-banks/inputs/complex/retained/FINITE_BRIDGE.txt b/research/five-stage-gen5-banks/inputs/complex/retained/FINITE_BRIDGE.txt new file mode 100644 index 0000000000..c1a8843611 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/retained/FINITE_BRIDGE.txt @@ -0,0 +1,141 @@ +FINITE ROUTER, ROW-STOCK, AND SEMANTIC BRIDGE FOR ROUND 13 + +Prepared for icekylinx by GPT-6 Astra, 9 October 2026. Apache-2.0. + +This bridge applies to a completed, physically proved round-13 profile. +It cannot make a numerically attractive but unconstructed profile valid. +The local source/target flags, controlled injections, old-response +subtraction, inverse cleanup, and retained alias boundaries are separate +construction obligations. assemble_profiles.py records their role as +proof dependencies and independently checks the exact arithmetic. + +1. The inherited uniform interfaces + +Retain the three completed-core cover of PR144/PR168 and all of its +analytic and fixed-tape assumptions. The complex cover is O(m,2), m<=72, +with order V<2^(m*m)<=2^5184. No new independent cover coordinates are +introduced by common-frame scalar lifts or source-controlled local +rewrites. Every stage still uses one completed invocation at each vertex. + +For a supplied profile with W0<10^7 roles per cover vertex, the full +physical stock W=V W0 is less than2^5208. Its total rank s is less +than mW<2^5215. The profile's actual proper-child maximum is retained; +the selected complex maximum must be less than m/2. The script checks +these inequalities rather than assuming that fewer auxiliary rows imply +a better contraction or a shorter recursion. + +The bit word uses the same weighted q-adic frame interface and the same +internally borrowed selectors as its pinned parent. New source controls +must use existing nondegenerate source-meeting planes or separately +certified new frames. All zero-rank adapters remain charged scalar work. +The group-size factor is not omitted and is not inserted into an external +polynomial row reserve. The inherited ordinary leaf saving is exactly +384599/10^10. The bad-row allowance is1/10^16; the charged fallback per +edge is32m^2. Its inequality2m^3/2^80<1/10^16 is checked explicitly. + +2. A deliberately loose finite scalar bound + +The pinned words and round-13 modifications are finite straight-line +programs with fewer than2^40 stored nodes, roles, coefficients, and +boundary entries. Scalar sum/difference lifts use actual invertible +matrices and are executed pointwise at common frame representatives. +For the selected dyadic rewrite, new elementary coefficients are +dyadic; the inherited center scatters retain their fixed odd divisor3. +No unrecorded new odd denominator may be included under this bridge. + +Fixed integer multipliers can be expanded into scalar doublings and +additions; dyadic divisions can be expanded into halvings. The explicit +low words and full-frame inverses are much smaller than2^4096 primitive +scalar/movement groups per invocation. Even constructing their fixed +old-response matrices by exact elimination is dominated by this bound: +matrix order is below2^40, original finite-word coefficient bit lengths +are below2^80, and the elementary elimination and coefficient expansion +bounds are below2^1024. No input-size-dependent dense elimination is +being performed. These are constants of the chosen finite construction. + +Consequently all3V invocation words, endpoint adapters, and finite role +bookkeeping fit within K<2^9300 logical groups. The retained universal +router is overcharged by a full W-role permutation for every group: + + 64 (m+1)^3 (K+1) (W+1)^2 < 2^20000. + +Choose the exact dominating scalar/router budget G=2^30000. This also +dominates the primitive arithmetic required to realize the fixed scalar +coefficients and source-controlled inverse cleanup. The router still +uses a fixed number of tapes, with sequential reuse of row stock. + +3. Explicit semantic constants + +Choose the exact integer E=2^100000 and put B=s+E. Then + + 2 G W^2 + 8s + 4W + 4 + 32m < 2^40500 < E, + E <= B < 2^100001. + +For the actual maximum child r= s+E >= 1. + +Choose C0=2^210000 and C1=1. These dominate both the retained semantic +requirement32m B^2 and2B+18. The reported strict_literal_gap=1 and +induction_gap_lower=1 are proved lower bounds on the positive actual +integer gaps; they are not claims that those gaps equal one. + +Use the inherited common dyadic grid with fixed3^(-K') exposure and +retain its precision/rounding contract. No child receives an independent +rounding allowance and no source-controlled injection is treated as an +unpaid numerical operation. + +4. External rows and stopping + +The complex child maximum below m/2 gives halving degree1, while +log2 W<5208<10000. Keep the deliberately conservative inherited bit +coarse reserve9909 and ordinary-leaf reserve252. Thus the external +row coefficient is bounded by + + A=10000+9909+252=20161. + +Choose degree D=1000000 and suffix slope4D. The exact row gap is + + D - (51/25)A > 0. + +The q-adic selector fields and source-control labels remain internally +borrowed and restored. Increasing these finite overcharges changes +constants and the all-size bridge, not the selected exponent saving. + +5. Exact supplier moments and balanced assembly + +For each actual histogram, assemble_profiles.py proves + + sum_r n_r r exp(a log(m/r))/(mW0) + bad_allowance < 1 + +using rational upper bounds, with upward rounding on the2^120 grid. +The bit atom stop is the first10^(-12) grid point above +a/(1+a-old), which implies both required strict toll inequalities. +Its effective saving is(1-beta)a+beta*old. This stopping rule is the +already reviewed PR158 edge rule, not a new local-word contribution. + +The final assembly uses the substantial PR168 balanced-prefix adapter, +with eta=10^(-8) and phase stop10^(-9), retaining all47 strict +constraints and all7 margins. The selected final kappa is rounded +down on the10^(-10) grid below the minimum complete margin. The +script checks every constraint exactly and reports whether the fixed +target0.0009218338 is reached. + +This is a conditional bound of the retained theorem form + + T(n)=O(n (log n)^(1-kappa)). + +The improvement ratio refers to kappa, the logarithmic exponent saving. +It is not a measurement of practical multiplication throughput. + +Credits + +The base supplier, scalar/frame verification, and actual profiles are +pinned to PR168 fd25adb7fbaa12ee761d02c733c54d1d2a7687ee, eumemic +(Anthropic Claude assistance), building on icekylinx's PR144. The +balanced prefix is RaD/hipotures; the semantic constraints are retained +from the reviewed PR23 line; completed-core sharing is credited to +an664 PR128; the atom-edge stop is credited to geckods PR158. Existing +source notices retain their more detailed upstream attributions. +The new source-controlled boundary construction, this conservative +bridge, and its integration are GPT-6 Astra's round-13 work. diff --git a/research/five-stage-gen5-banks/inputs/complex/retained/compact-control-layout.tex b/research/five-stage-gen5-banks/inputs/complex/retained/compact-control-layout.tex new file mode 100644 index 0000000000..16f4d23347 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/retained/compact-control-layout.tex @@ -0,0 +1,118 @@ +\paragraph{Rows and complete compact fields.} +Let $m,W,s$ denote the complex network constants and keep the layer's global +$p,d,K$ at every node. Put +\[ + G=4\lceil\log_2p\rceil+6,\quad H=dG,\quad + q_F=\left\lceil\frac{2H}{K}\right\rceil,\quad + q_B=\left\lceil\frac{H}{K}\right\rceil, +\] +\[ + q_0=\lceil\log_2W\rceil\lceil\log_m(2d)\rceil, + \quad k_0=\lceil\log_m d\rceil,\quad Q_0=q_0+q_F+q_B. +\] +If $D\le Q_0$, apply all $D$ selected kernels individually. Otherwise, +process individually the first $q_0+q_F$ and last $q_B$ selected axes. +This uses existing coordinates only. The remaining active axes are a +consecutive middle block of length $D-Q_0$. + +Regard the first $q_0$ chunks as the row index. Immediately after it, the +next $q_F$ chunks have at least $2H$ bits. Reinterpret these consecutive +bits as two $H$-bit front fields and a spectator remainder; a remainder +of length zero is omitted. The last $q_B$ chunks similarly supply one +$H$-bit back field and a spectator remainder. These reinterpretations move +no records and preserve the total address space. For a call with $f$ axes +per slot, carve $nG=(f-1)G\le H$ consecutive bits from each of these +fields; collapse their unused bits into spectators. The resulting field +list has a fixed number of entries. Both front fields precede all active +slots and the back field follows them, so the compact-control proposition +applies to every ordered pair of slots. For $f=1$ no compact fields are used. + +The original row range has length $R_{\rm row}=2^{q_0K}\ge W^{k_0}$. +For each original prefix, pad this row range to the next multiple of +$W^{k_0}$ by adding zero rows. A row includes the entire complete front +fields, active middle block, back field, all spectator coordinates and +polynomial record suffix. Padding adds whole such rows, so increases total +volume by at most two and does not change any within-row range. + +At a node write the row index as $u=Wg+w$, $0\le w2r_j^{t_j}$ for largest children $r_b=529,r_c=756$. +At width $e$ reserve the product +$Q=W_c^{D_c(e)}W_b^{D_b(e)}$, with +$D_j(e)=t_j\lceil\log_2e\rceil$. Its coefficient is +$9\cdot28+20\cdot30=852$, and +\[ + 2000>\frac{51}{25}\,852. +\] +The sufficient stock is therefore $p^{2000}$, supplied by the retained +physically preceding transformed prefix and a single complete-row +padding. Nested bit stock is restored before another complex child. +Sequential copies introduce no independent row field. The supplementary +suffix condition $b_{\rm in}^{1-\epsilon}>8000(\log_2b_{\rm in}+8)$ +is eventual for fixed $\epsilon<1$. + +\subsection{Exact conditional assembly} +Use the analytic proof map in +\path{notes/structured-bulk-assembly.tex}: arbitrary-source routing +with active masking and paid repair scans; one rounded phase-cell +matrix with preserved period cuts and downward-weight error bounds; +persistent target halos, sequential overlap tapes and factor pages; +Baker--Harman--Pintz prime packing; and the retained exact-recovery +interface. Their full costs are unchanged. In particular the bulk +bound retains the terms +\[ + O\!\left(Tp\left[p^\tau\operatorname{polylog}p+ + d\operatorname{polylog}p+dp^\delta+w^2p^\delta+ + dw^2p^\delta/L\right]\right)+n^{o(1)}, +\] +with $L=2^{\lceil8\log_2p\rceil}$, +$w^2=O(p^{1-r})$, and normalization exponent requiring +$\epsilon+r<1$. These arguments, not a change of arithmetic model, +justify the seven margins below. + +\begin{theorem}[Conditional fixed-tape multiplication bound] +Under the retained analytic and fixed-tape interfaces of PR23/PR29 +and the preceding proof map, the selected copied-center networks give +\[ + T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad + \boxed{\kappa=\frac{384569}{10000000000}=3.84569\times10^{-5}}. +\] +\end{theorem} +\begin{proof} +Take the strict finite savings $a=a_b=384599/10^{10}$ and +$b=a_c=717/10^7$, with $\tau=1-a$, $\sigma=1-b$, and put +\[ +\begin{gathered} + \eta=10^{-8},\quad\beta=\tfrac14,\quad q=a(1-2\eta),\quad + c=q(1+\eta),\quad\epsilon=\frac{1-\eta}{1+c+q},\\ + \lambda'=1-q,\quad\lambda=(\tau+\lambda')/2,\quad + g=\epsilon q,\quad r=(g+1-\epsilon)/2,\quad\delta=\eta/8. +\end{gathered} +\] +The stopped complex leaf saving $(1-\beta)b=53.775\times10^{-6}$ +is strictly above $a$, so paid internal adapters use exponent $\tau$ +and both layer exponents lie below $\lambda'$. The exact certificate +checks all 47 strict constraints of the retained semantic/bulk +composition, using the new literal scalar charge and product-row gap. +These include compact reservations, geometry, the linear guard, +$\epsilon+r<1$, phase-cell/band separation, prime packing, short-record +fallback and artificial-boundary allowances. + +The seven final savings are +\[ + 1-\epsilon(1+c),\quad a,\quad g,\quad a,\quad + \min(1-\epsilon-\delta,r-\delta),\quad + 1-\epsilon-\delta,\quad\epsilon. +\] +Their minimum is exactly $g$ and the prefix margin equals $g+\eta$. +Exact rational comparison gives +\[ + g-\frac{384569}{10^{10}}>4.0746056580\times10^{-11}>0. +\] +These positive gaps absorb fixed logarithms. The all-size conclusion +retains constructive finite setup, descriptor and catalogue domination, +prime existence and analytic recovery as eventual thresholds. The +strict bit and complex moments, copied-stream recurrence contracts and +these assembly inequalities prove the claimed conditional bound. +\end{proof} diff --git a/research/five-stage-gen5-banks/inputs/complex/retained/copied-centers-lemma.tex b/research/five-stage-gen5-banks/inputs/complex/retained/copied-centers-lemma.tex new file mode 100644 index 0000000000..8933aaf508 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/retained/copied-centers-lemma.tex @@ -0,0 +1,103 @@ +\subsection{Scalar, frame and temporary-stream contracts} +The retained source-copy, reversible mixer and scatter maps satisfy +$JLV=I$. Over $\mathbb F_2$ the chronological word +\[ + L,\ J,\ L^{-1},\ V,\ L,\ J,\ L^{-1},\ V +\] +adds the input to the target and restores every arbitrary auxiliary. +Over Gaussian dyadics use its corresponding old-value subtraction and +new-value addition. A designated retained output has a distinct terminal +output-use carrier: a matching may feed that carrier, but cannot merge +two designated terminals or append a later middle-producer consumer. +Its remaining uses before cleanup are its scatter reads, all of which +leave its scalar value unchanged. + +Within one tensor invocation suppress the fixed future line and put +\[ + D_0=B\otimes F_h,\quad D_1=A\otimes F_h,\quad + A=B\mathbin{\perp}P,\quad D_U=D_0\mathbin{\perp}(P\otimes U), +\] +where $P$ and the suppressed future factor are one-dimensional and +$U$ is a nondegenerate retained-center space of dimension $r$. +Thus a local change of rank $d$ has ambient rank $d$. +Write $\mathcal F_Q$ for the address frame: it is the rational partial +swap $D_Q$ in the bit construction, and the binary phase $C_Q$ in the +complex construction. Changing a copy from frame $Q_1$ to $Q_2$ means +applying $\mathcal F_{Q_2}\mathcal F_{Q_1}^{-1}$ to its physical stream. +Orthogonal backgrounds cancel in this quotient. + +Copies use Paureel's retained copy/transform/read/discard interface +\cite{paureel,pr29}. A copy has precisely the original complete role +stream, including all control and spectator ranges, and volume $V/W$. +It is processed while inactive original streams are parked on the fixed +depth-first stack tapes. Copying, pointwise reads and erasure are linear +in that stream's volume. Sequential processing needs one additional +fixed work stream, not an independently varying row coordinate. + +\begin{lemma}[Copied retained-center schedule] +In either invocation orientation a designated retained center's +physical rank profile can be changed from $z^r+z^h$ to +$z^r+z^{h-r}$, with the same scalar action, original role endpoints, +and arbitrary-scratch restoration. The rank-$r$ transform on the copy +is included in the recursive call list. +\end{lemma} +\begin{proof} +In the forward orientation the original center has scalar value $w$ +at frame $D_U$ after the middle mixer. Its old sequence was +$D_U\to D_0\to D_1$: scatter at $D_0$, then cleanup at $D_1$, +with ranks $r,h$. +Keep the original at $D_U$, copy its physical stream, and transform +only the copy to $D_0$, paying rank $r$. Supply every scatter read +from that transformed copy while its data targets remain at their +unchanged common frame $D_0$, then erase the temporary. The reads +are exactly those of $w$ in the old schedule. Since they do not change +$w$, move the original directly from $D_U$ to $D_1$ before its first +cleanup incidence; this costs $h-r$. Every subsequent original gate +therefore receives the same scalar value at its required frame. + +In the reverse complementary orientation the old sequence was +$D_0\to D_1\to D_{U^\perp}$, with ranks $h,r$ and scatter at $D_1$. +After the preceding all-$D_0$ operations, advance the original directly +to $D_{U^\perp}=D_0\mathbin{\perp}(P\otimes U^\perp)$, paying +$h-r$. Copy it and transform the copy to $D_1$, paying $r$. +Use that copy for all early scatter reads, then erase it. The original +already has the exact frame and unchanged scalar value required by the +following inverse mixer. Terminal output-use separation ensures no +intervening producer consumer has been bypassed. + +For partial swaps either direction of the rank-$r$ change is the same +involution. For complex phases the forward copy uses $C_U^{-1}$, +the direct original growth uses $C_{U^\perp}$, and the reverse copy +uses $C_FC_{U^\perp}^{-1}=C_U$. These are the same charged ranks, +implemented by the retained forward/inverse residual interface. +All tensor backgrounds cancel as stated. Every original scalar +incidence, final source-copy cancellation and auxiliary source/sink +operator is unchanged. Thus the scalar identity and all endpoints +remain exact on arbitrary initial auxiliary values. +\end{proof} + +For the selected centers $r=h-1$, and there are $h$ distinct retained +output uses per invocation. Their old histogram has rank mass +$hR_h+2\ell_h$, where $\ell_h=h(h-1)$. The new histogram is exactly +\[ + H'_{h,1}=H_{h,1}+h,\qquad H'_{h,h}=H_{h,h}-h, + \qquad H'_{h,r}=H_{h,r}\quad(r\ne1,h), +\] +and hence $\sum_r rH'_{h,r}=hR_h+\ell_h$. +Every old rank-$(h-1)$ residual remains as a paid transform of a copy; +its projector and ordinary bit pivot profile are unchanged. Only the +full-rank original transition becomes the rank-one complement. +The physical role count $R_h$ is unchanged. + +For two factors, put $N=v_av_b$, $B_a=v_bR_a$, $B_b=v_aR_b$, +$W=2N+B_a+B_b$ and $L=v_b\ell_a+v_a\ell_b$. +All exterior, data-front and endpoint-correction calls remain in place. +The resulting complete rank mass is +\[ + s=Wm-N+L,\qquad Wm-s=N-L. +\] +This follows by subtracting exactly $L$ from the retained two-stage +physical mass $Wm-N+2L$. The $N$ rank-one endpoint-copy calls are +separate and remain fully charged. Because center copies retain the +same complete role-volume fraction $1/W$, the existing complete-row, +integer-width remainder and fixed-tape recurrence proofs apply. diff --git a/research/five-stage-gen5-banks/inputs/complex/retained/endpoint-gauge-complex.tex b/research/five-stage-gen5-banks/inputs/complex/retained/endpoint-gauge-complex.tex new file mode 100644 index 0000000000..907a0ceda8 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/retained/endpoint-gauge-complex.tex @@ -0,0 +1,225 @@ +\subsection{A normal form for every nondegenerate binary residual} +Let $E$ have binary basis matrix $V$ and nonsingular Gram matrix +$G=V^tV$. In dual Fourier coordinates put +$q(z)=\operatorname{wt}(VG^{-1}z)\pmod4$. +Its polarization is $2z^tG^{-1}w$. The same argument applies to mixed +signs on orthogonal summands, since reversing a sign preserves this +polarization. Write $S_q=\sum_z i^{q(z)}$. Completing the square gives +\[ +\begin{aligned} +K(x,y)&=2^{-r}\sum_z i^{q(z)}(-1)^{z^t(x+y)}\\ + &=2^{-r}S_q\,i^{-q(Gx)}(-1)^{x^tGy}i^{-q(Gy)}. +\end{aligned} +\] +The scaled Walsh kernel in the middle is a binary permutation of +$H_0^{\otimes r}$, where +\[ + H_0=\tfrac12\begin{pmatrix}1&1\\1&-1\end{pmatrix} + =bSCS,\qquad b=(1-i)/2,\quad S=\operatorname{diag}(1,i). +\] +The remaining scalar $S_qb^r$ is a fourth root of unity. To verify +this, decompose the nondegenerate quadratic module into odd +one-dimensional and alternating two-dimensional blocks. Their Gauss +sums are $1\pm i$ and $\pm2$, respectively; multiplying by $b$ and +$b^2$ gives a fourth root in each case. This is a proof device, not +an orthonormal-basis assumption on $E$. + +Consequently one rank-$r$ child suffices, with binary address changes, +diagonal fourth-root phases, and one scalar fourth-root phase. +On $f$ parallel columns it is one $C^{\otimes rf}$ child, the scalar +raised to power $f$, and columnwise quadratic phases modulo four. +The retained packed address operations evaluate these fixed formulas. +These wrappers have modulus one and introduce no denominator loss. + +\subsection{The selected Gaussian-dyadic producer} +Use paired triple exclusion with base threshold two, complete unsplit +disjoint and pair-star sums, and sharing by actual ordinary support. +For an ordinary support with at least two common points use the span +of its triple indicators; these form an orthonormal common-pair star. +Otherwise use the coordinate space of its union. Support inclusion +preserves these labels: losing the common pair enters a containing +coordinate space. Source lines use ordinary triple containment. + +Retain every full pair-star $P_{uv}=\sum_{w\ne u,v}X_{uvw}$ and form +$B_u=\sum_{v\ne u}P_{uv}=2\sum_{T\ni u}X_T$. +For even $h$ label these central additions by the nondegenerate +hyperplane $E_u=\{x:\sum_{j\ne u}x_j=0\}$; every contributing star +lies in it. Retain the global total $T$ with full-space label. +The central correction at target $S$ is +\[ + \frac14\sum_{u\in S}B_u-\frac12T + =\sum_U\frac{|S\cap U|-1}{2}X_U. +\] +Adding half the disjoint sum and subtracting half the intersection-two +sum gives exactly $X_S$. All coefficients are Gaussian dyadic. +The transparent retained-output wrapper and oriented carrier compiler +apply to these nested nondegenerate labels. The $h$ hyperplane centers +lose $h(h-1)$ and the global center loses $h$, so loss is $h^2$. +The selected counts, including all point centers, are +\[ +\begin{array}{c|rrrrrr} +h&v_h&c_h&q_h&|\mathcal M_h|&R_h&\text{loss}\\\hline +32&4960&122512&19873&19241&123144&1024\\ +30&4060&99153&16271&15873&99551&900\\ +40&9880&252023&39561&37642&253942&1600 +\end{array} +\] +Their internal histograms satisfy $\sum_r rH_{h,r}=hR_h+2h^2$. +They are distinct from the bit histograms. + +\subsection{Endpoint normalization and the complex characteristic} +For nondegenerate $U$, Fourier phases give +\[ + C_U^2=X_{P_U\mathbf1},\qquad + C_{U^\perp}C_U^{-1}=C_FX_{P_U\mathbf1}. +\] +Put $v=P_U\mathbf1$. On coordinates in $v$, this endpoint has +$C^{-1}$ instead of $C$. The identity $C^{-1}=-iZCZ$ shows that +conjugating by $Z_v$ and multiplying by $i^{\operatorname{wt}(v)}$ +normalizes it to $C_F$; for $f$ columns the exponent is +$f\operatorname{wt}(v)$. These are diagonal wrappers without a child. + +Choose stage-two source $C_{D_0}$ and sink $C_{D_0^\perp}$, where +$D_1=D_0\mathbin{\perp} A$ and $\dim A=b$. The same refined copy +schedule removes the entrance on every auxiliary role. With +$R=D_1^\perp$, the exit is $C_RC_{D_0}^{-1}$ on +$E=R\mathbin{\perp}D_0=A^\perp$. Its rank is $m-b$ and its +nondegenerate polar form is unchanged by the mixed signs. The normal +form above executes it as one child. Arbitrary auxiliary restoration +justifies the endpoint normalization on the entire $B_2$ bank. + +Use the complex counts to define $B_i=NR_{h_i}/v_{h_i}$, and now +\[ +\begin{aligned} +W&=2N+B_2+B_3=10390178240000,\\ +L&=\sum_i(N/v_{h_i})h_i^2=117399987200,\\ +s&=Wm-2N+2L=398982681296998400. +\end{aligned} +\] +The whole-residual macro list is +\[ +\begin{array}{c|rrrrr} +t&38328&38360&38370&37401&899\\\hline +n_t&B_1&B_3-B_1&B_2&2N&2N. +\end{array} +\] +Add $(N/v_h)H_{h,r}$ rank-$r$ children for each positive internal rank. +Leave the remaining physical-data rank, 39393978624000, as singleton +calls. The resulting list has weighted rank exactly $s$. +For $a_c=3/125000$ and $\sigma=1-a_c$, the rational logarithm bounds +above and $e^u\le(1-u)^{-1}$, $0\le u<1$, give +\[ + \Psi_c(\sigma)\le\sum_t\frac{n_tt}{Wm(1-a_c\ell_t)} + <1-\frac{792981575160764}{10^{23}}. +\] + +\subsection{The dependency-path guard} +Before gauging, nested producer labels telescope along every arithmetic +path, including wire switches at common-frame scalar gates. Retained +center drops occur on one return frontier per stage, crossed at most +once by a path, and each costs at most that axis dimension. Carrier +reuse adds only increasing continuations. This gives +$q_0=m+2(a+b+k)$. Gauging removes an early edge and adds $ab-b$ at +a late stage-two edge. A path meets at most one such edge, since it +terminates that stage-two role, which is not shared across stages. +Thus the conservative total rank budget is +\[ + q=m+2(a+b+k)+ab=39564. +\] +Every child except the four large macros is at most 899; two large +macros cannot fit within $q$. Set $\rho=19/10$, $\gamma=9997/10000$. +The integer comparisons $m^{19}>500000000^{10}$ and +$899^9<460^{10}$ give $m^\rho>500000000$ and +$899^{\rho-1}<460$. +If a path has one large child $t$, its moment is at most +\[ + (t/m)^\rho+(q-t)899^{\rho-1}/m^\rho. +\] +This expression increases over the large-child range, since its +numerator derivative is $\rho t^{\rho-1}-899^{\rho-1}>0$. +Use $t=m-b$ and the concavity bound +$(1-x)^{19/10}\le1-19x/10+9x^2/10$ to obtain +\[ + \sum_{\rm path}(r/m)^\rho + <1-\frac{19}{12800}+\frac9{10\cdot1280^2} + +\frac{1194\cdot460}{500000000} + =\frac{51180270301}{51200000000}<\gamma. +\] +Without a large macro the bound is $227493/6250000<\gamma$. + +For coefficient-depth accounting take $E_0=128(W+m+1)^3$. +There are at most $s$ positive-rank residual calls and $W$ endpoint +normalizations. Combining the quadratic phases with the $S$ factors, +each uses at most two diagonal phase passes and one scalar phase. +The inherited gate and remainder count is therefore bounded conservatively by +\[ + 36W^3+16s+16W+8m+4 card Γ * N.unit φ) + +Scalar chain of one class (`x1 y1 x2 y2` on `X1 Y1 X2 Y2`), as in `bridged-word.md`: + + stage 0 F on pair 1 Y1 = y1 + x1 + stage 1 B on pair 1 X1 = -y1 + gates A X1 += X2, Y2 -= Y1 + stage 2 F on pair 1 Y1 = x1 + x2 + gates B Y2 += Y1, X1 -= X2 (X1 = -y1, Y2 = y2 - y1 + x2) + stage 3 B on pair 2 X2 = y1 - y2 + stage 4 F on pair 2 Y2 = x2 + gates C Y1 -= Y2, X2 += X1 (X1 = -y1, X2 = -y2, Y1 = x1, Y2 = x2) + exchange X_i := Y_i, Y_i := -X_i +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace BR +open Binary Matrix Finset RAM SS CB RF +noncomputable section + +section Gates +variable {Γ T Sl C : Type} + +/-- source of the gates of the layers A and B: `X1 ← X2`, `Y2 ← Y1`. -/ +def pAB : BRole Γ T Sl C → BRole Γ T Sl C := + mkB (fun g t => kX2 (g,t)) (fun g t => kY1 (g,t)) (fun g t => kX2 (g,t)) + (fun g t => kY1 (g,t)) (fun g q => kS (g,q)) (fun g c => kC (g,c)) + +/-- layer A: `X1 += X2`, `Y2 -= Y1`. -/ +def kA : BRole Γ T Sl C → ℚ := + mkB (fun _ _ => 1) (fun _ _ => 0) (fun _ _ => 0) (fun _ _ => -1) (fun _ _ => 0) (fun _ _ => 0) + +/-- layer B: `X1 -= X2`, `Y2 += Y1`. -/ +def kB : BRole Γ T Sl C → ℚ := + mkB (fun _ _ => -1) (fun _ _ => 0) (fun _ _ => 0) (fun _ _ => 1) (fun _ _ => 0) (fun _ _ => 0) + +/-- source of the gates of the layer C: `Y1 ← Y2`, `X2 ← X1`. -/ +def pC : BRole Γ T Sl C → BRole Γ T Sl C := + mkB (fun g t => kX1 (g,t)) (fun g t => kY2 (g,t)) (fun g t => kX1 (g,t)) + (fun g t => kY2 (g,t)) (fun g q => kS (g,q)) (fun g c => kC (g,c)) + +/-- layer C: `Y1 -= Y2`, `X2 += X1`. -/ +def kCc : BRole Γ T Sl C → ℚ := + mkB (fun _ _ => 0) (fun _ _ => -1) (fun _ _ => 1) (fun _ _ => 0) (fun _ _ => 0) (fun _ _ => 0) + +/-- scalar map of a gate layer. -/ +def gsc (p : BRole Γ T Sl C → BRole Γ T Sl C) (k : BRole Γ T Sl C → ℚ) + (x : BRole Γ T Sl C → ℂ) : BRole Γ T Sl C → ℂ := fun i => x i + (k i : ℂ) * x (p i) + +/-- the signed exchange `X_i := Y_i`, `Y_i := -X_i` on both pairs. -/ +def bpull : BRole Γ T Sl C → BRole Γ T Sl C := + mkB (fun g t => kY1 (g,t)) (fun g t => kX1 (g,t)) (fun g t => kY2 (g,t)) + (fun g t => kX2 (g,t)) (fun g q => kS (g,q)) (fun g c => kC (g,c)) + +def bsgn : BRole Γ T Sl C → ℚ := + mkB (fun _ _ => 1) (fun _ _ => -1) (fun _ _ => 1) (fun _ _ => -1) (fun _ _ => 1) (fun _ _ => 1) + +variable [Fintype Γ] [DecidableEq Γ] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] + +def brecM : Matrix (BRole Γ T Sl C) (BRole Γ T Sl C) ℚ := + fun i j => if j = bpull i then bsgn i else 0 + +lemma actPoint_brecM (x : BRole Γ T Sl C → ℂ) (i : BRole Γ T Sl C) : + actPoint brecM x i = (bsgn i : ℂ) * x (bpull i) := by + unfold actPoint + rw [sum_eq_single (bpull i)] + · simp [brecM] + · intro j _ hj; simp [brecM, hj] + · simp + +/-- the scalar map of the whole network before the exchange, on one class. -/ +def chain (x : BRole Γ T Sl C → ℂ) : BRole Γ T Sl C → ℂ := + gsc pC kCc (lift2 GF (lift2 GB (gsc pAB kB (lift1 GF (gsc pAB kA (lift1 GB (lift1 GF x))))))) + +/-- **The scalar identity of the bridged chain**: `X_i = -y_i`, `Y_i = x_i` on both pairs, +helper slots unchanged. -/ +lemma chain_eq (x : BRole Γ T Sl C → ℂ) (l : BLive Γ T Sl) : + chain x (Sum.inl l) = mkB (fun g t => -x (kY1 (g,t))) (fun g t => x (kX1 (g,t))) + (fun g t => -x (kY2 (g,t))) (fun g t => x (kX2 (g,t))) + (fun g q => x (kS (g,q))) (fun g c => x (kC (g,c))) (Sum.inl l) := by + rcases l with (((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩) + all_goals + simp only [chain, gsc, lift1, lift2, GF, GB, mkB, mkS, pAB, pC, kA, kB, kCc, pos1, pos2, + kX1, kY1, kX2, kY2, kS, kC, jX, jY, jS, jC, Function.comp_apply] + first + | (push_cast; ring) + | (push_cast; done) + | ring + +end Gates + +section Net +variable {H T Sl C α Γ : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] + [Fintype Γ] [DecidableEq Γ] +variable (N : Bridge2 H T Sl C α Γ) + +/-- gate layer A, after stage 1 and the first idle climb of pair 2: twins have equal frames. -/ +lemma Bridge2.gateA : XRoute N.S3 N.S3 (gsc pAB kA) (fun _ => 0) := by + refine gateP pAB kA N.S3 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- gate layer B, after stage 2 and the second idle climb of pair 2. -/ +lemma Bridge2.gateB : XRoute N.S5 N.S5 (gsc pAB kB) (fun _ => 0) := by + refine gateP pAB kB N.S5 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · exact N.x23 g t + · exact (hk rfl).elim + · exact (hk rfl).elim + · exact (N.y23 g t).symm + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- gate layer C, after the final climbs. -/ +lemma Bridge2.gateC : XRoute N.S8 N.S8 (gsc pC kCc) (fun _ => 0) := by + refine gateP pC kCc N.S8 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · exact (hk rfl).elim + · rfl + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- the free shifts at the end. -/ +def Bridge2.corr : BRole Γ T Sl C → Space α := + mkB (fun _ _ => 0) (fun g t => N.u g t) (fun _ _ => 0) (fun g t => N.u g t) + (fun _ _ => 0) (fun _ _ => 0) + +def Bridge2.S9 : BRole Γ T Sl C → CMat α := fun r => shift (N.corr r) * N.S8 r + +/-- the whole word before the exchange: five stages, three idle-climb layers, three gate +layers. -/ +lemma Bridge2.route : + XRoute N.S0 N.S8 chain (fun φ => (Fintype.card Γ : ℝ) * N.unit φ) := by + have R := ((((((((((N.stage0.trans N.stage1).trans N.climbA).trans N.gateA).trans + N.stage2).trans N.climbB).trans N.gateB).trans N.stage3).trans N.stage4).trans + N.fin).trans N.gateC) + refine (R.castg ?_).cast (fun φ => ?_) + · rfl + · simp only [Bridge2.unit] + ring + +/-- **The scratch certificate of the bridged five-stage network with shared helper sets**, +in whole blocks, with its exact price for every price list. -/ +theorem bridge2_certificate : + BCert α (Sum.inl : BLive Γ T Sl → BRole Γ T Sl C) + (fun φ => (Fintype.card Γ : ℝ) * N.unit φ) := by + have R2 : XRoute N.S8 N.S9 id (fun _ => 0) := XRoute.shifts N.hm N.S8 N.corr + have R3 : XRoute N.S9 (fun r => N.S9 (bpull r)) (actPoint brecM) (fun _ => 0) := + XRoute.gate brecM N.S9 _ (fun i j h => by + have hj : j = bpull i := by + by_contra hne + exact h (by simp [brecM, hne]) + rw [hj]) + have Rt := ((N.route.trans R2).trans R3).cast (c' := fun φ => (Fintype.card Γ : ℝ) * N.unit φ) + (fun φ => by first | ring | simp) + have hSinv : ∀ r, ∃ M, N.S0 r * M = 1 := by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact N.inv0 g t + · refine ⟨1, ?_⟩ + show (N.M0 g).Φ 0 * 1 = 1 + rw [N.z0, Matrix.mul_one] + · exact N.inv0 g t + · refine ⟨1, ?_⟩ + show (N.M0 g).Φ 0 * 1 = 1 + rw [N.z0, Matrix.mul_one] + · exact ⟨1, Matrix.mul_one _⟩ + · exact ⟨1, Matrix.mul_one _⟩ + choose S' hS' using hSinv + have hT : ∀ l : BLive Γ T Sl, N.S9 (bpull (Sum.inl l)) = kernel α * N.S0 (Sum.inl l) := by + rintro (((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩) + · show shift (N.u g t) * N.YF g t = kernel α * (N.M0 g).Φ (tt (N.I.tv t)) + exact (N.term g t).symm + · show shift (0 : Space α) * kernel α = kernel α * (N.M0 g).Φ 0 + rw [shift_zero, Matrix.one_mul, N.z0, Matrix.mul_one] + · show shift (N.u g t) * N.YF g t = kernel α * (N.M0 g).Φ (tt (N.I.tv t)) + exact (N.term g t).symm + · show shift (0 : Space α) * kernel α = kernel α * (N.M0 g).Φ 0 + rw [shift_zero, Matrix.one_mul, N.z0, Matrix.mul_one] + · show shift (0 : Space α) * kernel α = kernel α * 1 + rw [shift_zero, Matrix.one_mul, Matrix.mul_one] + have hg : ∀ x : BRole Γ T Sl C → ℂ, + (∀ s, (∀ l : BLive Γ T Sl, (Sum.inl l : BRole Γ T Sl C) ≠ s) → x s = 0) → + ∀ l : BLive Γ T Sl, + (actPoint brecM ∘ (id ∘ chain)) x (Sum.inl l) = x (Sum.inl l) := by + intro x _ l + change actPoint brecM (chain x) (Sum.inl l) = _ + rw [actPoint_brecM] + rcases l with (((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩) + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inl (Sum.inr (g,t))))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kX1 (g,t)) = x (kX1 (g,t)) + first | (push_cast; ring) | simp + · show ((-1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inl (Sum.inl (g,t))))) = _ + rw [chain_eq] + show ((-1:ℚ):ℂ) * (-x (kY1 (g,t))) = x (kY1 (g,t)) + first | (push_cast; ring) | simp + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inr (Sum.inr (g,t))))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kX2 (g,t)) = x (kX2 (g,t)) + first | (push_cast; ring) | simp + · show ((-1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inr (Sum.inl (g,t))))) = _ + rw [chain_eq] + show ((-1:ℚ):ℂ) * (-x (kY2 (g,t))) = x (kY2 (g,t)) + first | (push_cast; ring) | simp + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inr (g,q))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kS (g,q)) = x (kS (g,q)) + first | (push_cast; ring) | simp + exact XRoute.liveKernel (Sum.inl : BLive Γ T Sl → BRole Γ T Sl C) N.S0 S' + (fun r => N.S9 (bpull r)) hS' _ _ Rt hg hT + +end Net +end +end BR +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.BR.chain_eq +#print axioms OAI.PowerSaving.BR.Bridge2.route +#print axioms OAI.PowerSaving.BR.bridge2_certificate diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__Bridge__Net.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Bridge__Net.lean new file mode 100644 index 0000000000..204f6d9cf9 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Bridge__Net.lean @@ -0,0 +1,345 @@ +import Work.Bridge.Inv + +/-! +# (key: bridge-net) The BRIDGED five-stage network B_2 with shared helper sets, abstract form + +Generalises `RF.Fold3S` / `RF.fold3s_certificate` (`Work.Reframe.SCert`) to the bridged word +of PLAN2.md B1: every class `(g,t)` has TWO bank pairs `(X1,Y1)`, `(X2,Y2)` with the same +line; five stages of invocations + + stage 0 forward on pair 1 invocation of the class (g,t): g + stage 1 backward on pair 1 r1 t g + stage 2 forward on pair 1 r2 t g + stage 3 backward on pair 2 r3 t g + stage 4 forward on pair 2 r4 t g + +and three layers of FREE gates between twins at equal frames: + + after stage 1 (pair 2 has climbed to the frames of pair 1): X1 += X2, Y2 -= Y1 + after stage 2 (pair 2 has climbed one more window): Y2 += Y1, X1 -= X2 + after the final climbs (all four roles at their end frames): Y1 -= Y2, X2 += X1 + +Result on both pairs: `X_i = -y_i`, `Y_i = x_i`; then the usual signed exchange. + +The idle pair does not move during a stage. Its climbs are ONE block per role: +`aX2`, `aY2` (pair 2 before the first gate layer, prices `caX`, `caY`; in B_2 ONE block of +rank `2h-2` each), +the window of stage 2 (pair 2 before the second gate layer, rank `card H - 1`, from the +package: `Inv.climbX`, `Inv.climbY`), `fX1`, `fY1` (pair 1 at the end, prices `cX1`, `cY1`; +in B_2 ONE block of rank `2h+2` each), `fX2`, `fY2` (pair 2 at the end, prices `cX2`, `cY2`; +in B_2 one block of rank `4` each). The prices are arbitrary functions of the price list, so +a geometry that makes an idle climb in several blocks can be plugged in as well. + +`Bridge2 H T Sl C α Γ` is everything the wiring needs to know about the geometry; +`bridge2_certificate`: a `BCert` on the live roles `BLive Γ T Sl` +(`card Γ * (4 card T + card Sl)` of them, `BR.card_BLive`) whose price, for EVERY price +list, is `card Γ * N.unit φ`, + + N.unit φ = 5 * N.I.cost φ + card T * ((caX φ + caY φ) + 2 * bcost φ (card H - 1) + + (cX1 φ + cY1 φ) + (cX2 φ + cY2 φ)). +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace BR +open Binary Matrix Finset RAM SS CB RF +noncomputable section + +/-- See the file header. Fields in the style of `RF.Fold3S`; stages are numbered 0 to 4. -/ +structure Bridge2 (H T Sl C α Γ : Type) [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] where + /-- the invocation (for a block circuit `X`: `X.inv`). -/ + I : Inv H T Sl C + /-- frame maps of the invocations of the five stages. -/ + M0 : Γ → XMap H α + M1 : Γ → XMap H α + M2 : Γ → XMap H α + M3 : Γ → XMap H α + M4 : Γ → XMap H α + /-- the class `(g,t)` is served by the invocation `g` in stage 0 and `r_l t g` in stage `l`. -/ + r1 : T → Γ ≃ Γ + r2 : T → Γ ≃ Γ + r3 : T → Γ ≃ Γ + r4 : T → Γ ≃ Γ + /-- the invocation `d` of stage `l` uses the helper set (and the copies) `s_l d`. -/ + s1 : Γ ≃ Γ + s2 : Γ ≃ Γ + s3 : Γ ≃ Γ + s4 : Γ ≃ Γ + /-- inverse of the frame of the base, and frame of the window, of every invocation. -/ + N1 : Γ → CMat α + W1 : Γ → CMat α + N2 : Γ → CMat α + W2 : Γ → CMat α + N3 : Γ → CMat α + W3 : Γ → CMat α + N4 : Γ → CMat α + W4 : Γ → CMat α + u : Γ → T → Space α + YF : Γ → T → CMat α + hm : 2 ≤ Fintype.card α + /-- prices of the idle climbs, for every price list. B_2 with merged climbs: + `caX = caY = fun φ => bcost φ (2h-2)`, `cX1 = cY1 = fun φ => bcost φ (2h+2)`, + `cX2 = cY2 = fun φ => bcost φ 4`. -/ + caX : (ℕ → ℝ) → ℝ + caY : (ℕ → ℝ) → ℝ + cX1 : (ℕ → ℝ) → ℝ + cY1 : (ℕ → ℝ) → ℝ + cX2 : (ℕ → ℝ) → ℝ + cY2 : (ℕ → ℝ) → ℝ + inv0 : ∀ g t, ∃ N : CMat α, (M0 g).Φ (tt (I.tv t)) * N = 1 + z0 : ∀ g, (M0 g).Φ 0 = 1 + hN1 : ∀ d, (M1 d).Φ 0 * N1 d = 1 + hW1 : ∀ d, (M1 d).Φ 1 = W1 d * (M1 d).Φ 0 + hN2 : ∀ d, (M2 d).Φ 0 * N2 d = 1 + hW2 : ∀ d, (M2 d).Φ 1 = W2 d * (M2 d).Φ 0 + hN3 : ∀ d, (M3 d).Φ 0 * N3 d = 1 + hW3 : ∀ d, (M3 d).Φ 1 = W3 d * (M3 d).Φ 0 + hN4 : ∀ d, (M4 d).Φ 0 * N4 d = 1 + hW4 : ∀ d, (M4 d).Φ 1 = W4 d * (M4 d).Φ 0 + /-- the bank frames a stage leaves are the bank frames the next stage starts from. -/ + x01 : ∀ g t, (M0 g).Φ 1 = (M1 (r1 t g)).Φ (tt (I.tv t)) + y01 : ∀ g t, (M0 g).Φ (1 + tt (I.tv t)) = (M1 (r1 t g)).Φ 0 + x12 : ∀ g t, (M1 (r1 t g)).Φ 1 = (M2 (r2 t g)).Φ (tt (I.tv t)) + y12 : ∀ g t, (M1 (r1 t g)).Φ (1 + tt (I.tv t)) = (M2 (r2 t g)).Φ 0 + x23 : ∀ g t, (M2 (r2 t g)).Φ 1 = (M3 (r3 t g)).Φ (tt (I.tv t)) + y23 : ∀ g t, (M2 (r2 t g)).Φ (1 + tt (I.tv t)) = (M3 (r3 t g)).Φ 0 + x34 : ∀ g t, (M3 (r3 t g)).Φ 1 = (M4 (r4 t g)).Φ (tt (I.tv t)) + y34 : ∀ g t, (M3 (r3 t g)).Φ (1 + tt (I.tv t)) = (M4 (r4 t g)).Φ 0 + /-- the five windows of a helper set make up the kernel. -/ + sfin : ∀ g, W4 (s4.symm g) * (W3 (s3.symm g) * (W2 (s2.symm g) * + (W1 (s1.symm g) * (M0 g).Φ 1))) = kernel α + /-- pair 2, idle in stages 0 and 1: ONE block from its start frame to the frame of its + twin after stage 1. -/ + aX2 : ∀ g t, XReach ((M0 g).Φ (tt (I.tv t))) ((M1 (r1 t g)).Φ 1) caX + aY2 : ∀ g t, XReach ((M0 g).Φ 0) ((M1 (r1 t g)).Φ (1 + tt (I.tv t))) caY + /-- pair 1, idle in stages 3 and 4: ONE block from its frame after stage 2 to the end. -/ + fX1 : ∀ g t, XReach ((M2 (r2 t g)).Φ 1) (kernel α) cX1 + fY1 : ∀ g t, XReach ((M2 (r2 t g)).Φ (1 + tt (I.tv t))) (YF g t) cY1 + /-- pair 2 after stage 4: ONE final block. -/ + fX2 : ∀ g t, XReach ((M4 (r4 t g)).Φ 1) (kernel α) cX2 + fY2 : ∀ g t, XReach ((M4 (r4 t g)).Φ (1 + tt (I.tv t))) (YF g t) cY2 + term : ∀ g t, kernel α * (M0 g).Φ (tt (I.tv t)) = shift (u g t) * YF g t + +section Net +variable {H T Sl C α Γ : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] + [Fintype Γ] [DecidableEq Γ] +variable (N : Bridge2 H T Sl C α Γ) + +/-- price of the blocks of one unit (one element of `Γ`): five invocations and the idle +climbs of the four bank roles of every class. -/ +def Bridge2.unit (φ : ℕ → ℝ) : ℝ := + 5 * N.I.cost φ + (Fintype.card T : ℝ) * ((N.caX φ + N.caY φ) + + 2 * bcost φ (Fintype.card H - 1) + + (N.cX1 φ + N.cY1 φ) + (N.cX2 φ + N.cY2 φ)) + +/-- scratch copies always enter and leave with the matrix `1` (also: the helper slots at the +start, with `C := Sl`). -/ +def cOne (Γ C α : Type) [Fintype α] [DecidableEq α] : Γ → C → CMat α := fun _ _ => 1 + +/-- the bank index of stage 0: the class `(g,t)` belongs to the invocation `g`. -/ +abbrev bid (Γ T : Type) : T → Γ ≃ Γ := fun _ => Equiv.refl Γ + +/-! bank frames of the class `(g,t)`: `xi l`, `yi l` at the START of stage `l`; `xo l`, +`yo l` at the END of stage `l` (only where no next stage follows on that pair). -/ +def Bridge2.xi0 (g : Γ) (t : T) : CMat α := (N.M0 g).Φ (tt (N.I.tv t)) +def Bridge2.yi0 (g : Γ) (t : T) : CMat α := (N.M0 g).Φ 0 +def Bridge2.xi1 (g : Γ) (t : T) : CMat α := (N.M1 (N.r1 t g)).Φ (tt (N.I.tv t)) +def Bridge2.yi1 (g : Γ) (t : T) : CMat α := (N.M1 (N.r1 t g)).Φ 0 +def Bridge2.xi2 (g : Γ) (t : T) : CMat α := (N.M2 (N.r2 t g)).Φ (tt (N.I.tv t)) +def Bridge2.yi2 (g : Γ) (t : T) : CMat α := (N.M2 (N.r2 t g)).Φ 0 +def Bridge2.xo2 (g : Γ) (t : T) : CMat α := (N.M2 (N.r2 t g)).Φ 1 +def Bridge2.yo2 (g : Γ) (t : T) : CMat α := (N.M2 (N.r2 t g)).Φ (1 + tt (N.I.tv t)) +def Bridge2.xi3 (g : Γ) (t : T) : CMat α := (N.M3 (N.r3 t g)).Φ (tt (N.I.tv t)) +def Bridge2.yi3 (g : Γ) (t : T) : CMat α := (N.M3 (N.r3 t g)).Φ 0 +def Bridge2.xi4 (g : Γ) (t : T) : CMat α := (N.M4 (N.r4 t g)).Φ (tt (N.I.tv t)) +def Bridge2.yi4 (g : Γ) (t : T) : CMat α := (N.M4 (N.r4 t g)).Φ 0 +def Bridge2.xo4 (g : Γ) (t : T) : CMat α := (N.M4 (N.r4 t g)).Φ 1 +def Bridge2.yo4 (g : Γ) (t : T) : CMat α := (N.M4 (N.r4 t g)).Φ (1 + tt (N.I.tv t)) + +/-- helper slots after the stages 0, 1, 2, 3, 4 (at the start: `cOne Γ Sl α`). -/ +def Bridge2.Z1 : Γ → Sl → CMat α := fun g _ => (N.M0 g).Φ 1 +def Bridge2.Z2 : Γ → Sl → CMat α := fun g q => N.W1 (N.s1.symm g) * N.Z1 g q +def Bridge2.Z3 : Γ → Sl → CMat α := fun g q => N.W2 (N.s2.symm g) * N.Z2 g q +def Bridge2.Z4 : Γ → Sl → CMat α := fun g q => N.W3 (N.s3.symm g) * N.Z3 g q +def Bridge2.Z5 : Γ → Sl → CMat α := fun g q => N.W4 (N.s4.symm g) * N.Z4 g q + +/-- frames: at the start; after stage 0; after stage 1; after the first idle climb of pair 2 +(first gate layer here); after stage 2; after the second idle climb of pair 2 (second gate +layer here); after stage 3; after stage 4; after the final climbs (third gate layer here). -/ +def Bridge2.S0 : BRole Γ T Sl C → CMat α := mkB N.xi0 N.yi0 N.xi0 N.yi0 (cOne Γ Sl α) (cOne Γ C α) +def Bridge2.S1 : BRole Γ T Sl C → CMat α := mkB N.xi1 N.yi1 N.xi0 N.yi0 N.Z1 (cOne Γ C α) +def Bridge2.S2 : BRole Γ T Sl C → CMat α := mkB N.xi2 N.yi2 N.xi0 N.yi0 N.Z2 (cOne Γ C α) +def Bridge2.S3 : BRole Γ T Sl C → CMat α := mkB N.xi2 N.yi2 N.xi2 N.yi2 N.Z2 (cOne Γ C α) +def Bridge2.S4 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi2 N.yi2 N.Z3 (cOne Γ C α) +def Bridge2.S5 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi3 N.yi3 N.Z3 (cOne Γ C α) +def Bridge2.S6 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi4 N.yi4 N.Z4 (cOne Γ C α) +def Bridge2.S7 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xo4 N.yo4 N.Z5 (cOne Γ C α) +def Bridge2.S8 : BRole Γ T Sl C → CMat α := + mkB (fun _ _ => kernel α) N.YF (fun _ _ => kernel α) N.YF (fun _ _ => kernel α) (cOne Γ C α) + +/-- stage 0: forward on pair 1, every helper set starts at the matrix `1`. -/ +lemma Bridge2.stage0 : + XRoute N.S0 N.S1 (lift1 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := istage_fwd N.I (bid Γ T) (Equiv.refl Γ) N.M0 (fun _ => 1) (fun g => (N.M0 g).Φ 1) + (fun d => by rw [N.z0, Matrix.mul_one]) (fun d => by rw [N.z0, Matrix.mul_one]) + (cOne Γ Sl α) (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv (bid Γ T) N.M0 + (fun g (q : Sl) => (N.M0 ((Equiv.refl Γ).symm g)).Φ 1 * cOne Γ Sl α g q) (cOne Γ C α) + = mkS N.xi1 N.yi1 N.Z1 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x01 g t + · exact N.y01 g t + · show (N.M0 g).Φ 1 * 1 = (N.M0 g).Φ 1 + rw [Matrix.mul_one] + · rfl + have h' : XRoute (bIn N.I.tv (bid Γ T) N.M0 (cOne Γ Sl α) (cOne Γ C α)) + (mkS N.xi1 N.yi1 N.Z1 (cOne Γ C α)) GF (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact blift1 N.xi0 N.yi0 h' + +/-- stage 1: backward on pair 1; the helper set `g` serves the invocation `s1⁻¹ g`. -/ +lemma Bridge2.stage1 : + XRoute N.S1 N.S2 (lift1 GB) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := istage_bwd N.I N.r1 N.s1 N.M1 N.N1 N.W1 N.hN1 N.hW1 N.Z1 (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv N.r1 N.M1 (fun g q => N.W1 (N.s1.symm g) * N.Z1 g q) (cOne Γ C α) + = mkS N.xi2 N.yi2 N.Z2 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x12 g t + · exact N.y12 g t + · rfl + · rfl + have h' : XRoute (bIn N.I.tv N.r1 N.M1 N.Z1 (cOne Γ C α)) + (mkS N.xi2 N.yi2 N.Z2 (cOne Γ C α)) GB (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact blift1 N.xi0 N.yi0 h' + +/-- stage 2: forward on pair 1. -/ +lemma Bridge2.stage2 : + XRoute N.S3 N.S4 (lift1 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := + blift1 N.xi2 N.yi2 + (istage_fwd N.I N.r2 N.s2 N.M2 N.N2 N.W2 N.hN2 N.hW2 N.Z2 (cOne Γ C α) (cOne Γ C α)) + +/-- stage 3: backward on pair 2. -/ +lemma Bridge2.stage3 : + XRoute N.S5 N.S6 (lift2 GB) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := istage_bwd N.I N.r3 N.s3 N.M3 N.N3 N.W3 N.hN3 N.hW3 N.Z3 (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv N.r3 N.M3 (fun g q => N.W3 (N.s3.symm g) * N.Z3 g q) (cOne Γ C α) + = mkS N.xi4 N.yi4 N.Z4 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x34 g t + · exact N.y34 g t + · rfl + · rfl + have h' : XRoute (bIn N.I.tv N.r3 N.M3 N.Z3 (cOne Γ C α)) + (mkS N.xi4 N.yi4 N.Z4 (cOne Γ C α)) GB (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact blift2 N.xo2 N.yo2 h' + +/-- stage 4: forward on pair 2. -/ +lemma Bridge2.stage4 : + XRoute N.S6 N.S7 (lift2 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := + blift2 N.xo2 N.yo2 + (istage_fwd N.I N.r4 N.s4 N.M4 N.N4 N.W4 N.hN4 N.hW4 N.Z4 (cOne Γ C α) (cOne Γ C α)) + +/-- first idle climb of pair 2 (stages 0 and 1 in ONE block per role), to the frames of +pair 1 after stage 1. -/ +lemma Bridge2.climbA : + XRoute N.S2 N.S3 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * (N.caX φ + N.caY φ))) := by + have H1 := XRoute.reach_all N.S2 N.S3 + (mkB (fun _ _ _ => 0) (fun _ _ _ => 0) (fun _ _ => N.caX) + (fun _ _ => N.caY) (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact XReach.refl _ + · exact XReach.refl _ + · show XReach ((N.M0 g).Φ (tt (N.I.tv t))) ((N.M2 (N.r2 t g)).Φ (tt (N.I.tv t))) N.caX + rw [← N.x12 g t] + exact N.aX2 g t + · show XReach ((N.M0 g).Φ 0) ((N.M2 (N.r2 t g)).Φ 0) N.caY + rw [← N.y12 g t] + exact N.aY2 g t + · exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +/-- second idle climb of pair 2: the window of stage 2, ONE block of rank `card H - 1` per +role, to the frames of pair 1 after stage 2. -/ +lemma Bridge2.climbB : + XRoute N.S4 N.S5 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * (2 * bcost φ (Fintype.card H - 1)))) := by + have H1 := XRoute.reach_all N.S4 N.S5 + (mkB (fun _ _ _ => 0) (fun _ _ _ => 0) (fun _ _ φ => bcost φ (Fintype.card H - 1)) + (fun _ _ φ => bcost φ (Fintype.card H - 1)) (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact XReach.refl _ + · exact XReach.refl _ + · show XReach ((N.M2 (N.r2 t g)).Φ (tt (N.I.tv t))) ((N.M3 (N.r3 t g)).Φ (tt (N.I.tv t))) + (fun φ => bcost φ (Fintype.card H - 1)) + rw [← N.x23 g t] + exact N.I.climbX (N.M2 (N.r2 t g)) t + · show XReach ((N.M2 (N.r2 t g)).Φ 0) ((N.M3 (N.r3 t g)).Φ 0) + (fun φ => bcost φ (Fintype.card H - 1)) + rw [← N.y23 g t] + exact N.I.climbY (N.M2 (N.r2 t g)) t + · exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +/-- the final climbs: pair 1 from its frames after stage 2 (ONE block per role for the +stages 3, 4 and the rest), pair 2 from its frames after stage 4; the helper slots are +already at the kernel. -/ +lemma Bridge2.fin : + XRoute N.S7 N.S8 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * ((N.cX1 φ + N.cY1 φ) + (N.cX2 φ + N.cY2 φ)))) := by + have H1 := XRoute.reach_all N.S7 N.S8 + (mkB (fun _ _ => N.cX1) (fun _ _ => N.cY1) (fun _ _ => N.cX2) (fun _ _ => N.cY2) + (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact N.fX1 g t + · exact N.fY1 g t + · exact N.fX2 g t + · exact N.fY2 g t + · show XReach (N.W4 (N.s4.symm g) * (N.W3 (N.s3.symm g) * (N.W2 (N.s2.symm g) * + (N.W1 (N.s1.symm g) * (N.M0 g).Φ 1)))) (kernel α) (fun _ => 0) + rw [N.sfin g] + exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +end Net +end +end BR +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.BR.Bridge2.stage0 +#print axioms OAI.PowerSaving.BR.Bridge2.stage1 +#print axioms OAI.PowerSaving.BR.Bridge2.stage2 +#print axioms OAI.PowerSaving.BR.Bridge2.stage3 +#print axioms OAI.PowerSaving.BR.Bridge2.stage4 +#print axioms OAI.PowerSaving.BR.Bridge2.climbA +#print axioms OAI.PowerSaving.BR.Bridge2.climbB +#print axioms OAI.PowerSaving.BR.Bridge2.fin diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Live.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Live.lean new file mode 100644 index 0000000000..b8306527d6 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Live.lean @@ -0,0 +1,232 @@ +import Work.Carrier.Pack +import Work.Carrier.Ring + +/-! +# (key: carrier-thm) The live roles of an invocation, and the four dirt gates as matrices + +`L3 T Sl = (T ⊕ T) ⊕ Sl`: the bank roles `x` (`lX`), `y` (`lY`) and the helper slots (`lS`), all +on the same footing (no scratch copies). `PX`, `PY`: the coordinate projectors. + +For the matrix `M` of all gates of the main phase and its inverse `Mi`: + + g1 M = 1 - PY * M * PS `y -= K s` g1i M = 1 + PY * M * PS (its inverse) + g8 Mi = PX + PY + PS * Mi slot rows of `M⁻¹` h8 M = PX + PY + PS * M (its inverse) + +(`PS = 1 - PX - PY`). This file: unit rows / columns of these gates (hence between which roles +their entries can be nonzero), the scatter with the copies eliminated (`scatM`), and the scalar +maps of `1 + PY * M * PX` and of the transpose of `1 - PY * M * PX`. + +No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace CR +open Binary Matrix Finset RAM SS CB BR +noncomputable section + +section Diag +variable {ρ : Type*} [Fintype ρ] [DecidableEq ρ] + +lemma col_zero_of {d : ρ → ℚ} {G : Matrix ρ ρ ℚ} + (h : G * Matrix.diagonal d = Matrix.diagonal d) {i j : ρ} (hj : d j = 1) (hij : i ≠ j) : + G i j = 0 := by + have e := congrFun (congrFun h i) j + rw [Matrix.mul_diagonal, Matrix.diagonal_apply_ne _ hij, hj, mul_one] at e + exact e + +lemma row_zero_of {d : ρ → ℚ} {G : Matrix ρ ρ ℚ} + (h : Matrix.diagonal d * G = Matrix.diagonal d) {i j : ρ} (hi : d i = 1) (hij : i ≠ j) : + G i j = 0 := by + have e := congrFun (congrFun h i) j + rw [Matrix.diagonal_mul, Matrix.diagonal_apply_ne _ hij, hi, one_mul] at e + exact e + +lemma diag_mul_of_rows {d : ρ → ℚ} {G : Matrix ρ ρ ℚ} + (h : ∀ i j, d i ≠ 0 → G i j = if i = j then 1 else 0) : + Matrix.diagonal d * G = Matrix.diagonal d := by + ext i j + rw [Matrix.diagonal_mul] + by_cases hd : d i = 0 + · rw [hd, zero_mul] + by_cases hij : i = j + · subst hij; rw [Matrix.diagonal_apply_eq, hd] + · rw [Matrix.diagonal_apply_ne _ hij] + · rw [h i j hd] + by_cases hij : i = j + · subst hij; rw [if_pos rfl, mul_one, Matrix.diagonal_apply_eq] + · rw [if_neg hij, mul_zero, Matrix.diagonal_apply_ne _ hij] + +lemma mul_diag_of_cols {d : ρ → ℚ} {G : Matrix ρ ρ ℚ} + (h : ∀ i j, d j ≠ 0 → G i j = if i = j then 1 else 0) : + G * Matrix.diagonal d = Matrix.diagonal d := by + ext i j + rw [Matrix.mul_diagonal] + by_cases hd : d j = 0 + · rw [hd, mul_zero] + by_cases hij : i = j + · subst hij; rw [Matrix.diagonal_apply_eq, hd] + · rw [Matrix.diagonal_apply_ne _ hij] + · rw [h i j hd] + by_cases hij : i = j + · subst hij; rw [if_pos rfl, one_mul, Matrix.diagonal_apply_eq] + · rw [if_neg hij, zero_mul, Matrix.diagonal_apply_ne _ hij] + +/-- scalar map of a diagonal gate matrix. -/ +lemma act_diag (d : ρ → ℚ) (u : ρ → ℂ) : + actPoint (Matrix.diagonal d) u = fun i => ((d i : ℚ) : ℂ) * u i := by + funext i + show ∑ j, ((Matrix.diagonal d i j : ℚ) : ℂ) * u j = ((d i : ℚ) : ℂ) * u i + rw [Finset.sum_eq_single i] + · rw [Matrix.diagonal_apply_eq] + · intro j _ hj + rw [Matrix.diagonal_apply_ne _ (Ne.symm hj), Rat.cast_zero, zero_mul] + · intro h + exact absurd (Finset.mem_univ i) h + +lemma actPoint_mul (A B : Matrix ρ ρ ℚ) (u : ρ → ℂ) : + actPoint (A * B) u = actPoint A (actPoint B u) := + ap_mul A B u + +end Diag + +section Live +variable {T Sl : Type} [Fintype T] [DecidableEq T] [Fintype Sl] [DecidableEq Sl] + +/-- live roles of one invocation: `x`, `y`, helper slots. -/ +abbrev L3 (T Sl : Type) := (T ⊕ T) ⊕ Sl +abbrev lX (t : T) : L3 T Sl := Sum.inl (Sum.inl t) +abbrev lY (t : T) : L3 T Sl := Sum.inl (Sum.inr t) +abbrev lS (q : Sl) : L3 T Sl := Sum.inr q + +/-- indicator of the x roles. -/ +def iX : L3 T Sl → ℚ := Sum.elim (Sum.elim (fun _ => 1) (fun _ => 0)) (fun _ => 0) +/-- indicator of the y roles. -/ +def iY : L3 T Sl → ℚ := Sum.elim (Sum.elim (fun _ => 0) (fun _ => 1)) (fun _ => 0) + +def PX : Matrix (L3 T Sl) (L3 T Sl) ℚ := Matrix.diagonal iX +def PY : Matrix (L3 T Sl) (L3 T Sl) ℚ := Matrix.diagonal iY + +lemma iX_cases (i : L3 T Sl) : iX i = 0 ∨ iX i = 1 := by + rcases i with ((t|t)|q) + · exact Or.inr rfl + · exact Or.inl rfl + · exact Or.inl rfl + +lemma iY_cases (i : L3 T Sl) : iY i = 0 ∨ iY i = 1 := by + rcases i with ((t|t)|q) + · exact Or.inl rfl + · exact Or.inr rfl + · exact Or.inl rfl + +lemma PX_sq : (PX : Matrix (L3 T Sl) (L3 T Sl) ℚ) * PX = PX := by + unfold PX + have e : (fun i : L3 T Sl => iX i * iX i) = iX := by + funext i + rcases i with ((t|t)|q) <;> simp [iX] + rw [Matrix.diagonal_mul_diagonal, e] + +lemma PY_sq : (PY : Matrix (L3 T Sl) (L3 T Sl) ℚ) * PY = PY := by + unfold PY + have e : (fun i : L3 T Sl => iY i * iY i) = iY := by + funext i + rcases i with ((t|t)|q) <;> simp [iY] + rw [Matrix.diagonal_mul_diagonal, e] + +lemma PX_PY : (PX : Matrix (L3 T Sl) (L3 T Sl) ℚ) * PY = 0 := by + unfold PX PY + rw [Matrix.diagonal_mul_diagonal] + have e : (fun i : L3 T Sl => iX i * iY i) = fun _ => 0 := by + funext i + rcases i with ((t|t)|q) <;> simp [iX, iY] + rw [e] + exact Matrix.diagonal_zero + +lemma PY_PX : (PY : Matrix (L3 T Sl) (L3 T Sl) ℚ) * PX = 0 := by + unfold PX PY + rw [Matrix.diagonal_mul_diagonal] + have e : (fun i : L3 T Sl => iY i * iX i) = fun _ => 0 := by + funext i + rcases i with ((t|t)|q) <;> simp [iX, iY] + rw [e] + exact Matrix.diagonal_zero + +lemma PX_T : (PX : Matrix (L3 T Sl) (L3 T Sl) ℚ)ᵀ = PX := Matrix.diagonal_transpose _ +lemma PY_T : (PY : Matrix (L3 T Sl) (L3 T Sl) ℚ)ᵀ = PY := Matrix.diagonal_transpose _ + +/-- "no gate into an x role": the x rows are unit rows. -/ +lemma PX_mul_of {M : Matrix (L3 T Sl) (L3 T Sl) ℚ} + (hx : ∀ t j, M (lX t) j = if lX t = j then 1 else 0) : PX * M = PX := by + unfold PX + apply diag_mul_of_rows + intro i j hi + rcases i with ((t|t)|q) + · exact hx t j + · exact absurd rfl hi + · exact absurd rfl hi + +/-- "no gate reads a y role": the y columns are unit columns. -/ +lemma mul_PY_of {M : Matrix (L3 T Sl) (L3 T Sl) ℚ} + (hy : ∀ i t, M i (lY t) = if i = lY t then 1 else 0) : M * PY = PY := by + unfold PY + apply mul_diag_of_cols + intro i j hj + rcases j with ((t|t)|q) + · exact absurd rfl hj + · exact hy i t + · exact absurd rfl hj + +/-! ### the four dirt gates -/ + +def g1 (M : Matrix (L3 T Sl) (L3 T Sl) ℚ) : Matrix (L3 T Sl) (L3 T Sl) ℚ := + 1 - PY * M * (1 - PX - PY) +def g1i (M : Matrix (L3 T Sl) (L3 T Sl) ℚ) : Matrix (L3 T Sl) (L3 T Sl) ℚ := + 1 + PY * M * (1 - PX - PY) +def g8 (Mi : Matrix (L3 T Sl) (L3 T Sl) ℚ) : Matrix (L3 T Sl) (L3 T Sl) ℚ := + PX + PY + (1 - PX - PY) * Mi +def h8 (M : Matrix (L3 T Sl) (L3 T Sl) ℚ) : Matrix (L3 T Sl) (L3 T Sl) ℚ := + PX + PY + (1 - PX - PY) * M + +/-- a gate with unit x rows and unit x columns joins two different roles only if neither is an +x role. -/ +lemma offdiag_x {G : Matrix (L3 T Sl) (L3 T Sl) ℚ} (h1 : G * PX = PX) (h2 : PX * G = PX) + {i j : L3 T Sl} (hij : G i j ≠ 0) (e : i ≠ j) : iX i = 0 ∧ iX j = 0 := by + constructor + · by_contra h + exact hij (row_zero_of h2 ((iX_cases i).resolve_left h) e) + · by_contra h + exact hij (col_zero_of h1 ((iX_cases j).resolve_left h) e) + +/-- a gate with unit x rows, unit y rows and unit y columns: a nonzero entry off the diagonal +is in a slot row and not in a y column. -/ +lemma offdiag_s {G : Matrix (L3 T Sl) (L3 T Sl) ℚ} (hx : PX * G = PX) (hy : PY * G = PY) + (hyc : G * PY = PY) {i j : L3 T Sl} (hij : G i j ≠ 0) (e : i ≠ j) : + iX i = 0 ∧ iY i = 0 ∧ iY j = 0 := by + refine ⟨?_, ?_, ?_⟩ + · by_contra h + exact hij (row_zero_of hx ((iX_cases i).resolve_left h) e) + · by_contra h + exact hij (row_zero_of hy ((iY_cases i).resolve_left h) e) + · by_contra h + exact hij (col_zero_of hyc ((iY_cases j).resolve_left h) e) + +lemma g1_x (M : Matrix (L3 T Sl) (L3 T Sl) ℚ) : g1 M * PX = PX ∧ PX * g1 M = PX := by + unfold g1 + constructor + · rw [sub_mul, one_mul, side_n_right (PX_sq (T := T) (Sl := Sl)) PY_PX, sub_zero] + · rw [mul_sub, mul_one, side_n_left (PX_PY (T := T) (Sl := Sl)), sub_zero] + +lemma g1i_x (M : Matrix (L3 T Sl) (L3 T Sl) ℚ) : g1i M * PX = PX ∧ PX * g1i M = PX := by + unfold g1i + constructor + · rw [add_mul, one_mul, side_n_right (PX_sq (T := T) (Sl := Sl)) PY_PX, add_zero] + · rw [mul_add, mul_one, side_n_left (PX_PY (T := T) (Sl := Sl)), add_zero] + +end Live +end +end CR +end PowerSaving +end OAI diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Phases.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Phases.lean new file mode 100644 index 0000000000..305da15b5d --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Phases.lean @@ -0,0 +1,192 @@ +import Work.Carrier.Glue + +/-! +# (key: carrier-thm) A carrier circuit given by its phases: hypotheses and scalar identities + +`Phased H T Sl C` is the hypothesis structure of the carrier invocation theorem in the general +scope (any ordered mix of gates `(x, slot)`, `(slot, slot)`, `(x, y)`, `(slot, y)`): + +* phase A (before the scatter), phase B (after it) and the final climbs F are exact block routes + on the LIVE roles `L3 T Sl` (`x`, `y`, slots: all on the same footing), for every block frame + map, with the gate products `MA`, `MB` (and the transposed inverses for the backward word); +* the scatter goes through the scratch copies: `c += Cc s` at the labels `cen`, the copies come + down, `y += Jr c` at 0; +* `hx`: no gate INTO an x role, `hy`: no gate READS a y role, `hid`: the y roles receive exactly + the x roles — three facts about the ONE matrix `Mt = MB * scatM (Jr * Cc) * MA`. + +This file: `Mt`, its inverse `Mti`, and the scalar identities of the forward and of the backward +word (`fwd_scalar`, `bwd_scalar`): with the two dirt gates `g1`, `g8` (resp. the transposes of +`g1i`, `h8`) the word does `y += x` (resp. `x -= y`) for ARBITRARY slot contents. + +No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace CR +open Binary Matrix Finset RAM SS CB BR +noncomputable section + +/-- labels of the live roles at the START of an invocation. -/ +def lab3 {H T Sl : Type} (tv : T → Space H) : L3 T Sl → Lbl H := + Sum.elim (Sum.elim (fun t => lineL (tv t)) (fun _ => zeroL)) (fun _ => zeroL) + +/-- **The hypotheses of the carrier invocation theorem, by phases.** See the file header. -/ +structure Phased (H T Sl C : Type) [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] where + tv : T → Space H + kx : ∀ t, Climb (lineL (tv t)) fullL + ky : ∀ t, Climb zeroL (perpL (tv t)) + cen : C → Lbl H + kc : ∀ k, Climb zeroL (cen k) + Cc : Matrix C Sl ℚ + Jr : Matrix T C ℚ + labA : L3 T Sl → Lbl H + labB : L3 T Sl → Lbl H + labF : L3 T Sl → Lbl H + hAy : ∀ t, (labA (lY t)).P = 0 + hAc : ∀ k q, Cc k q ≠ 0 → (cen k).P = (labA (lS q)).P + hFx : ∀ t, (labF (lX t)).P = 1 + hFy : ∀ t, (labF (lY t)).P = 1 + tt (tv t) + hFs : ∀ q, (labF (lS q)).P = 1 + MA : Matrix (L3 T Sl) (L3 T Sl) ℚ + MAi : Matrix (L3 T Sl) (L3 T Sl) ℚ + MB : Matrix (L3 T Sl) (L3 T Sl) ℚ + MBi : Matrix (L3 T Sl) (L3 T Sl) ℚ + hAi : MAi * MA = 1 + hBi : MBi * MB = 1 + hx : ∀ t j, (MB * scatM (Jr * Cc) * MA) (lX t) j = if lX t = j then 1 else 0 + hy : ∀ i t, (MB * scatM (Jr * Cc) * MA) i (lY t) = if i = lY t then 1 else 0 + hid : ∀ S t, (MB * scatM (Jr * Cc) * MA) (lY S) (lX t) = if S = t then 1 else 0 + rA : List ℕ + rB : List ℕ + rF : List ℕ + pA : ∀ {α : Type} [Fintype α] [DecidableEq α] (Xm : XMap H α), + XRoute (fun r => Xm.Φ (lab3 tv r).P) (fun r => Xm.Φ (labA r).P) (actPoint MA) + (fun φ => rcost φ rA) ∧ + XRoute (fun r => Xm.Φ (lab3 tv r).P) (fun r => Xm.Φ (labA r).P) (actPoint MAiᵀ) + (fun φ => rcost φ rA) + pB : ∀ {α : Type} [Fintype α] [DecidableEq α] (Xm : XMap H α), + XRoute (fun r => Xm.Φ (labA r).P) (fun r => Xm.Φ (labB r).P) (actPoint MB) + (fun φ => rcost φ rB) ∧ + XRoute (fun r => Xm.Φ (labA r).P) (fun r => Xm.Φ (labB r).P) (actPoint MBiᵀ) + (fun φ => rcost φ rB) + pF : ∀ {α : Type} [Fintype α] [DecidableEq α] (Xm : XMap H α), + XRoute (fun r => Xm.Φ (labB r).P) (fun r => Xm.Φ (labF r).P) id (fun φ => rcost φ rF) + +section Alg +variable {H T Sl C : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] + +namespace Phased +variable (K : Phased H T Sl C) + +/-- the product of ALL gates of the main phase (scatter with the copies eliminated). -/ +def Mt : Matrix (L3 T Sl) (L3 T Sl) ℚ := K.MB * scatM (K.Jr * K.Cc) * K.MA +/-- its inverse. -/ +def Mti : Matrix (L3 T Sl) (L3 T Sl) ℚ := K.MAi * scatMi (K.Jr * K.Cc) * K.MBi + +/-- price of one invocation: the blocks of the three phases and one block per copy. -/ +def cost (φ : ℕ → ℝ) : ℝ := + rcost φ K.rA + (∑ k, bcost φ (K.cen k).d) + rcost φ K.rB + rcost φ K.rF + +lemma im : K.Mti * K.Mt = 1 := by + unfold Mti Mt + have hB : ∀ X : Matrix (L3 T Sl) (L3 T Sl) ℚ, K.MBi * (K.MB * X) = X := fun X => by + rw [← Matrix.mul_assoc, K.hBi, Matrix.one_mul] + have hS : ∀ X : Matrix (L3 T Sl) (L3 T Sl) ℚ, + scatMi (K.Jr * K.Cc) * (scatM (K.Jr * K.Cc) * X) = X := fun X => by + rw [← Matrix.mul_assoc, scat_inv, Matrix.one_mul] + rw [Matrix.mul_assoc, Matrix.mul_assoc, Matrix.mul_assoc, hB, hS, K.hAi] + +lemma mi : K.Mt * K.Mti = 1 := mul_eq_one_comm.mp K.im + +lemma hxm : PX * K.Mt = PX := PX_mul_of (M := K.Mt) K.hx +lemma hmy : K.Mt * PY = PY := mul_PY_of (M := K.Mt) K.hy +lemma hiy : K.Mti * PY = PY := dirt_iy K.hmy K.im + +/-- **the dirt rule, forward**, for the matrices of the circuit. -/ +lemma hF : g8 K.Mti * K.Mt * g1 K.Mt = 1 + PY * K.Mt * PX := by + unfold g8 g1 + exact dirt_fwd PX_sq PY_sq PX_PY PY_PX K.hxm K.hmy K.im K.mi + +/-- **the dirt rule, backward.** -/ +lemma hB : g1i K.Mt * K.Mti * h8 K.Mt = 1 - PY * K.Mt * PX := by + unfold g1i h8 + exact dirt_bwd PX_sq PY_sq PX_PY PY_PX K.hxm K.hmy K.im K.mi + +/-- live part of the forward word before the scatter: `y -= K s`, then phase A. -/ +def f1 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint K.MA (actPoint (g1 K.Mt) u) +/-- after the scatter: phase B, then the slot rows of the inverse. -/ +def f2 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint (g8 K.Mti) (actPoint K.MB u) +/-- the same for the backward word (transposed inverses). -/ +def b1 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint K.MAiᵀ (actPoint (g1i K.Mt)ᵀ u) +def b2 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint (h8 K.Mt)ᵀ (actPoint K.MBiᵀ u) + +lemma fwd_live (u : L3 T Sl → ℂ) : + K.f2 (actPoint (scatM (K.Jr * K.Cc)) (K.f1 u)) = actPoint (1 + PY * K.Mt * PX) u := by + rw [← K.hF] + show actPoint (g8 K.Mti) (actPoint K.MB (actPoint (scatM (K.Jr * K.Cc)) + (actPoint K.MA (actPoint (g1 K.Mt) u)))) + = actPoint (g8 K.Mti * (K.MB * scatM (K.Jr * K.Cc) * K.MA) * g1 K.Mt) u + rw [actPoint_mul, actPoint_mul, actPoint_mul, actPoint_mul] + +lemma bwd_live (u : L3 T Sl → ℂ) : + K.b2 (actPoint ((scatMi (K.Jr * K.Cc))ᵀ) (K.b1 u)) + = actPoint ((1 - PY * K.Mt * PX)ᵀ) u := by + rw [← K.hB] + show actPoint (h8 K.Mt)ᵀ (actPoint K.MBiᵀ (actPoint (scatMi (K.Jr * K.Cc))ᵀ + (actPoint K.MAiᵀ (actPoint (g1i K.Mt)ᵀ u)))) + = actPoint ((g1i K.Mt * (K.MAi * scatMi (K.Jr * K.Cc) * K.MBi) * h8 K.Mt)ᵀ) u + rw [Matrix.transpose_mul, Matrix.transpose_mul, Matrix.transpose_mul, Matrix.transpose_mul, + actPoint_mul, actPoint_mul, actPoint_mul, actPoint_mul] + +lemma liveAct_glue (φ : (L3 T Sl → ℂ) → (L3 T Sl → ℂ)) (u : L3 T Sl → ℂ) (c : C → ℂ) : + liveAct φ (glue u c) = glue (φ u) c := + congrArg (fun v => glue (φ v) c) (glue_up u c) + +/-- **Scalar identity of the forward word**: `y += x`, slots restored, for ARBITRARY slot +contents (the copies are erased before and after). -/ +theorem fwd_scalar (z : Box T Sl C → ℂ) : + eraseC (liveAct K.f2 (gateS bY bC K.Jr (gateS bC bS K.Cc (liveAct K.f1 (eraseC z))))) + = shearF z := by + have h1 : liveAct K.f1 (eraseC z) = glue (K.f1 (z ∘ upE)) (fun _ => 0) := by + rw [erase_glue z, liveAct_glue] + have hs : gateS bY bC K.Jr (gateS bC bS K.Cc (glue (K.f1 (z ∘ upE)) (fun _ => 0))) ∘ upE + = actPoint (scatM (K.Jr * K.Cc)) (K.f1 (z ∘ upE)) := by + have h := scat_glue K.Jr K.Cc (glue (K.f1 (z ∘ upE)) (fun _ => 0)) rfl + rw [glue_up] at h + exact h + rw [h1] + unfold liveAct + rw [erase_of_glue, hs, K.fwd_live, act_shear K.Mt K.hid] + exact glue_shearF z + +/-- **Scalar identity of the backward word**: `x -= y`, slots restored. -/ +theorem bwd_scalar (z : Box T Sl C → ℂ) : + eraseC (liveAct K.b2 (gateS bS bC (-K.Ccᵀ) (gateS bC bY K.Jrᵀ (liveAct K.b1 (eraseC z))))) + = shearB z := by + have h1 : liveAct K.b1 (eraseC z) = glue (K.b1 (z ∘ upE)) (fun _ => 0) := by + rw [erase_glue z, liveAct_glue] + have hs : gateS bS bC (-K.Ccᵀ) (gateS bC bY K.Jrᵀ (glue (K.b1 (z ∘ upE)) (fun _ => 0))) ∘ upE + = actPoint ((scatMi (K.Jr * K.Cc))ᵀ) (K.b1 (z ∘ upE)) := by + have h := scat_glueT K.Jr K.Cc (glue (K.b1 (z ∘ upE)) (fun _ => 0)) rfl + rw [glue_up] at h + exact h + rw [h1] + unfold liveAct + rw [erase_of_glue, hs, K.bwd_live, act_shearT K.Mt K.hid] + exact glue_shearB z + +end Phased +end Alg +end +end CR +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.CR.Phased.fwd_scalar +#print axioms OAI.PowerSaving.CR.Phased.bwd_scalar diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__Fourier__Main.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Fourier__Main.lean new file mode 100644 index 0000000000..9aa06b5bf2 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__Fourier__Main.lean @@ -0,0 +1,176 @@ +import Work.Fourier.Asymptotics +import OAI.Computability.FourierTransform.RegisterBounds +import Work.Fourier.Goal + +/- +Modified copy of lean/OAI/Computability/FourierTransform/Main.lean of github.com/openai/math +(commit fd4aeeb, Apache-2.0), generated by `tools/fourier/mkchain.py`. OpenAI's file itself is +unmodified in this repository and still imported. Changed for this repository, all mechanically: + * every declaration of this file (and of the other 10 copied files) has the suffix `Z` + on its name, so that it does not collide with OpenAI's original; + * OpenAI's exponent `alpha = 1 - 2/10^11` and envelope `hills` are replaced by + `alphaZ = 1 - 7474547/10^10` and `hillsZ` (Work/Fourier/Seam.lean), and the single use of + OpenAI's `hills_program` by `hillsZ_program`; + * `decimalExponent`, `decimalTime`, `TimeBounds`, `DFTGoal`, `ConvGoal` are replaced by their + `Z` versions from Work/Fourier/Goal.lean (exponent `1 - 7474546/10^10`); + * imports point to the copies. + * literal `let d : ℝ := 2/(10:ℝ)^11` -> `let d : ℝ := 7474547/(10:ℝ)^10` (alpha_thetaZ: the local constant d must equal 1 - alphaZ) + * `theorem transform_mainZ : DFTGoalZ :=`: docstring added + * `theorem convolution_mainZ : ConvGoalZ :=`: docstring added +Comments and docstrings below are OpenAI's and describe OpenAI's network, not ours. +-/ + +namespace OAI + +/-! +Exact uniform Fourier transforms and convolution. + +The construction formalizes the exact arithmetic algorithms of +*An explicit power saving for the exact discrete Fourier transform* (OpenAI). +The finite phase network originates in the complex construction of +*Integer multiplication below n log n*. + +`transform_mainZ` and `convolution_mainZ` give fixed finite RAM programs, including +preparation and index work, polynomial storage bounds, and a canonical root whose +order is computed from the input length. Each includes the paper exponent, decimal +power saving, and little-o bound. The `_order` variants also specify the root order. + +The implementation uses a smaller concrete tensor network (32 binary coordinates +per factor, 4060 triples, and a `2^50` role envelope) with a stronger saving that +implies the stated paper constants. The general rational-algebra extraction, +symbolic certificate search, circuit printer, and bounded-printer uniformization +from the synthesis appendix are outside this formalization. +-/ +namespace PowerSaving +open RAM Bench Selection Filter Asymptotics Real +noncomputable section +namespace Skies + +lemma multiplier_rangeZ : 1 < paperMultiplier ∧ paperMultiplier < paperM := by + norm_num [paperMultiplier,paperM,paperDelta,paperW] + +lemma theta_ltZ : theta < 1 := by + have h := multiplier_rangeZ + have hg : 0 by rw [speedZ,Real.rpow_one]; rfl + rw [h] at H; exact H + +lemma speed_paperZ : speedZ theta =O[atTop] paperTime := by + rw [isBigO_iff] + refine ⟨1,?_⟩ + filter_upwards [TtopZ.eventually_ge_atTop 1,QtopZ.eventually_ge_atTop 1] with n hn hh + have he : 0 (lunchZ a b N n:ℝ)) =O[atTop] decimalTimeZ := hd.isBigO + exact ⟨hp.isBigO.trans speed_paperZ,ht,ht.trans_isLittleO decimal_littleZ⟩ + +end Skies + +/-! Main results. Provide formula for the order besides the existential specification. -/ +theorem transform_main_orderZ : ∃ order solve W, + DFTProgram order solve W ∧ TimeBoundsZ W ∧ + ∀ n, 0 ⟨le_rfl,by dsimp; omega⟩) + a b,fun n hn => ⟨ho n hn,(ho n hn).symm ▸ (receipt_bound n hn).2⟩⟩ + +theorem convolution_main_orderZ : ∃ order solve W, + ConvProgram order solve W ∧ TimeBoundsZ W ∧ + ∀ n, 0 + ⟨ho n hn,(ho n hn).symm ▸ (receipt_bound _ (stretch_posZ hn)).2⟩⟩ + +/-- **The discrete Fourier transform of every length in `O(n (log n)^(1 - 7474546/10^10))`.** +OpenAI's `transform_main` (one fixed program, OpenAI's own `DFTProgram`, `paperTime` and `nlogn`) +with the decimal exponent `1 - 1/10^13` replaced by `decimalExponentZ = 1 - 7474546/10^10` +(Work/Fourier/Goal.lean). Sibling of the Walsh-Hadamard theorem `wht_main_block_B2Gp193x`: both +follow from one kernel program, `RAM.hillsZ_program` (Work/Fourier/Seam.lean). -/ +theorem transform_mainZ : DFTGoalZ := + let ⟨o,s,W,h,g,_⟩ := transform_main_orderZ + ⟨o,s,W,h,g⟩ + +/-- **Convolution of every length with the same bounds** (OpenAI's `convolution_main`, same change). -/ +theorem convolution_mainZ : ConvGoalZ := + let ⟨o,s,W,h,g,_⟩ := convolution_main_orderZ + ⟨o,s,W,h,g⟩ + +lemma matrix_definitionZ (n : ℕ) (x : Vec n) : dft n x = Matrix.mulVec (dftMatrix n) x := + rfl + +end +end PowerSaving + +end OAI diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Geom.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Geom.lean new file mode 100644 index 0000000000..eb4490af8b --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Geom.lean @@ -0,0 +1,210 @@ +import Work.GCert.Chain.NetCert +import Work.GCert.Chain.WinB +import Work.BridgeGeom.B2 + +/-! +# (key: gx-chain) THE NETWORK LEMMA (spec statement 6): the bridged word B_2 delivers a `GCert` + +GENERATED by checks/wht26/gx-chain/py/netgen.py from Work/BridgeGeom/Net.lean (section Net): +the geometry of `BG.geomBridge2`, word for word, with the windows `gwinB` (`.Xm = BG.fmapB`). + +`bridge2_gcert I hH`: for every generalised invocation package, a `GCert` on +`card Γ * (4 card T + card Sl)` live roles, label dimension `5h`, unit price +`5 * I.cost φ + card T * BG.bankPrice h φ` (unchanged). No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB RF BR GF BG +noncomputable section + +section Net +variable {H T Sl C : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] +variable (I : GInv H T Sl C) (base : T → OBase H) (l : H) + (hbase : ∀ t, I.tv t = (base t).v l) (hH : 1 ≤ Fintype.card H) +include hbase + +lemma ggeom_x01 (g : Orth (L5 H)) (t : T) : + PhiB g ∅ 1 = PhiB (RrB (base t) l (0 : Fin 4) g) (qS bs1 l) (tt (I.tv t)) := by + rw [hbase t] + exact bankT_x0 (base t) l (0 : Fin 4) g + +lemma ggeom_y01 (g : Orth (L5 H)) (t : T) : + PhiB g ∅ (1 + tt (I.tv t)) = PhiB (RrB (base t) l (0 : Fin 4) g) (qS bs1 l) 0 := by + rw [hbase t] + exact bankT_y0 (base t) l (0 : Fin 4) g + +/-- consecutive stages `c ∈ bs`, `c' ∉ bs`: `X` leaves where it enters. -/ +lemma ggeom_xx (bs : Finset (Fin 4)) (c c' : Fin 4) (hc : c ∈ bs) (hc' : c' ∉ bs) + (g : Orth (L5 H)) (t : T) : + PhiB (RrB (base t) l c g) (qS bs l) 1 + = PhiB (RrB (base t) l c' g) (qS (insert c' bs) l) (tt (I.tv t)) := by + rw [hbase t] + exact bankT_xx (base t) l bs c c' hc hc' g + +/-- consecutive stages: `Y` leaves where it enters. -/ +lemma ggeom_yy (bs : Finset (Fin 4)) (c c' : Fin 4) (hc : c ∈ bs) (hc' : c' ∉ bs) + (g : Orth (L5 H)) (t : T) : + PhiB (RrB (base t) l c g) (qS bs l) (1 + tt (I.tv t)) + = PhiB (RrB (base t) l c' g) (qS (insert c' bs) l) 0 := by + rw [hbase t] + exact bankT_yy (base t) l bs c c' hc hc' g + +/-- terminal identity of the bank pairs of the class `(g,t)`. -/ +lemma ggeom_term5 (g : Orth (L5 H)) (t : T) : + kernel (L5 H) * PhiB g ∅ (tt (I.tv t)) + = shift ((BBB (base t) g).v (Sum.inl l)) + * frame (BBB (base t) g) (univ \ {Sum.inl l}) := by + rw [hbase t] + exact class_term (base t) l g + +include hH + +/-- pair 2 before the first gate layer, `X`: ONE block of rank `2h-2`. -/ +lemma ggeom_aX2 (g : Orth (L5 H)) (t : T) : + XReach (PhiB g ∅ (tt (I.tv t))) (PhiB (RrB (base t) l (0 : Fin 4) g) (qS bs1 l) 1) + (fun φ => bcost φ (2 * Fintype.card H - 2)) := by + rw [hbase t] + exact idle_X0 (base t) l hB4 hH (0 : Fin 4) g _ (by omega) + +/-- pair 2 before the first gate layer, `Y`: ONE block of rank `2h-2`. -/ +lemma ggeom_aY2 (g : Orth (L5 H)) (t : T) : + XReach (PhiB g ∅ 0) (PhiB (RrB (base t) l (0 : Fin 4) g) (qS bs1 l) (1 + tt (I.tv t))) + (fun φ => bcost φ (2 * Fintype.card H - 2)) := by + rw [hbase t] + exact idle_Y0 (base t) l hB4 hH (0 : Fin 4) g _ (by omega) + +/-- pair 1 at the end (idle in stages 3, 4, then the last four moves), `X`: ONE block `2h+2`. -/ +lemma ggeom_fX1 (g : Orth (L5 H)) (t : T) : + XReach (PhiB (RrB (base t) l (1 : Fin 4) g) (qS bs2 l) 1) (kernel (L5 H)) + (fun φ => bcost φ (2 * Fintype.card H + 2)) := + idle_Xend (base t) l hB4 hH bs2 (1 : Fin 4) (Finset.mem_insert_self _ _) g _ + (by rw [card_bs2, Fintype.card_fin]; omega) + +/-- pair 1 at the end, `Y`: ONE block of rank `2h+2`. -/ +lemma ggeom_fY1 (g : Orth (L5 H)) (t : T) : + XReach (PhiB (RrB (base t) l (1 : Fin 4) g) (qS bs2 l) (1 + tt (I.tv t))) + (frame (BBB (base t) g) (univ \ {Sum.inl l})) + (fun φ => bcost φ (2 * Fintype.card H + 2)) := by + rw [hbase t] + exact idle_Yend (base t) l hB4 hH bs2 (1 : Fin 4) (Finset.mem_insert_self _ _) g _ + (by rw [card_bs2, Fintype.card_fin]; omega) + +/-- pair 2 after stage 4, `X`: ONE block of rank `4`. -/ +lemma ggeom_fX2 (g : Orth (L5 H)) (t : T) : + XReach (PhiB (RrB (base t) l (3 : Fin 4) g) (qS bs4 l) 1) (kernel (L5 H)) + (fun φ => bcost φ 4) := + idle_Xend (base t) l hB4 hH bs4 (3 : Fin 4) (Finset.mem_insert_self _ _) g _ + (by rw [card_bs4, Fintype.card_fin]; omega) + +/-- pair 2 after stage 4, `Y`: ONE block of rank `4`. -/ +lemma ggeom_fY2 (g : Orth (L5 H)) (t : T) : + XReach (PhiB (RrB (base t) l (3 : Fin 4) g) (qS bs4 l) (1 + tt (I.tv t))) + (frame (BBB (base t) g) (univ \ {Sum.inl l})) (fun φ => bcost φ 4) := by + rw [hbase t] + exact idle_Yend (base t) l hB4 hH bs4 (3 : Fin 4) (Finset.mem_insert_self _ _) g _ + (by rw [card_bs4, Fintype.card_fin]; omega) + +/-- **The bridged word B_2 as a term of `BR.Bridge2`**: five stages on the label space +`H ⊕ (Fin 4 × H)`, for any invocation package whose lines are the vectors of index `l` of +orthonormal bases. -/ +def ggeomBridge2 : GBridge2 H T Sl C (L5 H) (Orth (L5 H)) where + I := I + G0 := fun g => gwinB hB4 hH g ∅ + G1 := fun d => gwinB hB4 hH d (qS bs1 l) + G2 := fun d => gwinB hB4 hH d (qS bs2 l) + G3 := fun d => gwinB hB4 hH d (qS bs3 l) + G4 := fun d => gwinB hB4 hH d (qS bs4 l) + r1 := fun t => RrB (base t) l (0 : Fin 4) + r2 := fun t => RrB (base t) l (1 : Fin 4) + r3 := fun t => RrB (base t) l (2 : Fin 4) + r4 := fun t => RrB (base t) l (3 : Fin 4) + s1 := (Orth.colPerm (tauB (0 : Fin 4))).symm + s2 := (Orth.colPerm (tauB (1 : Fin 4))).symm + s3 := (Orth.colPerm (tauB (2 : Fin 4))).symm + s4 := (Orth.colPerm (tauB (3 : Fin 4))).symm + N1 := fun d => unframeM (d.1 * Matrix.fromBlocks 0 0 0 (diagI (qS bs1 l)) * d.1ᵀ) + W1 := fun d => frameM (d.1 * diagI (JB univ ∅) * d.1ᵀ) + N2 := fun d => unframeM (d.1 * Matrix.fromBlocks 0 0 0 (diagI (qS bs2 l)) * d.1ᵀ) + W2 := fun d => frameM (d.1 * diagI (JB univ ∅) * d.1ᵀ) + N3 := fun d => unframeM (d.1 * Matrix.fromBlocks 0 0 0 (diagI (qS bs3 l)) * d.1ᵀ) + W3 := fun d => frameM (d.1 * diagI (JB univ ∅) * d.1ᵀ) + N4 := fun d => unframeM (d.1 * Matrix.fromBlocks 0 0 0 (diagI (qS bs4 l)) * d.1ᵀ) + W4 := fun d => frameM (d.1 * diagI (JB univ ∅) * d.1ᵀ) + u := fun g t => (BBB (base t) g).v (Sum.inl l) + YF := fun g t => frame (BBB (base t) g) (univ \ {Sum.inl l}) + hm := two_le_card_LB hB4 hH + caX := fun φ => bcost φ (2 * Fintype.card H - 2) + caY := fun φ => bcost φ (2 * Fintype.card H - 2) + cX1 := fun φ => bcost φ (2 * Fintype.card H + 2) + cY1 := fun φ => bcost φ (2 * Fintype.card H + 2) + cX2 := fun φ => bcost φ 4 + cY2 := fun φ => bcost φ 4 + inv0 := fun g t => ⟨unframeM (g.1 * Matrix.fromBlocks (tt (I.tv t)) 0 0 (diagI ∅) * g.1ᵀ), + frameM_unframeM _⟩ + z0 := fun g => PhiB_zero_empty g + hN1 := fun d => frameM_unframeM _ + hW1 := fun d => PhiB_one d (qS bs1 l) + hN2 := fun d => frameM_unframeM _ + hW2 := fun d => PhiB_one d (qS bs2 l) + hN3 := fun d => frameM_unframeM _ + hW3 := fun d => PhiB_one d (qS bs3 l) + hN4 := fun d => frameM_unframeM _ + hW4 := fun d => PhiB_one d (qS bs4 l) + x01 := fun g t => ggeom_x01 I base l hbase g t + y01 := fun g t => ggeom_y01 I base l hbase g t + x12 := fun g t => ggeom_xx I base l hbase bs1 0 1 (Finset.mem_singleton_self _) mem1 g t + y12 := fun g t => ggeom_yy I base l hbase bs1 0 1 (Finset.mem_singleton_self _) mem1 g t + x23 := fun g t => ggeom_xx I base l hbase bs2 1 2 (Finset.mem_insert_self _ _) mem2 g t + y23 := fun g t => ggeom_yy I base l hbase bs2 1 2 (Finset.mem_insert_self _ _) mem2 g t + x34 := fun g t => ggeom_xx I base l hbase bs3 2 3 (Finset.mem_insert_self _ _) mem3 g t + y34 := fun g t => ggeom_yy I base l hbase bs3 2 3 (Finset.mem_insert_self _ _) mem3 g t + sfin := fun g => helper_fin5 g + aX2 := fun g t => ggeom_aX2 I base l hbase hH g t + aY2 := fun g t => ggeom_aY2 I base l hbase hH g t + fX1 := fun g t => ggeom_fX1 I base l hbase hH g t + fY1 := fun g t => ggeom_fY1 I base l hbase hH g t + fX2 := fun g t => ggeom_fX2 I base l hbase hH g t + fY2 := fun g t => ggeom_fY2 I base l hbase hH g t + term := fun g t => ggeom_term5 I base l hbase g t + +end Net + +section End +variable {H T Sl C : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] + +/-- an orthonormal basis through a unit vector with a zero coordinate, at any index. -/ +theorem base_ex (z : Space H) (hz : dot z z = 1) (hg : ∃ p, z p = 0) (l : H) : + ∃ A : OBase H, z = A.v l := by + obtain ⟨p, hp⟩ := hg + obtain ⟨A, k, hA⟩ := exists_base_one z hz p hp + refine ⟨reindex A (Equiv.swap k l), ?_⟩ + rw [← hA] + show A.v k = A.v (Equiv.swap k l l) + rw [Equiv.swap_apply_right] + +/-- **Generalised certificate of the bridged word B_2** for a generalised invocation package. -/ +theorem bridge2_gcert (I : GInv H T Sl C) (hH : 1 ≤ Fintype.card H) : + GCert (L5 H) (Sum.inl : BLive (Orth (L5 H)) T Sl → BRole (Orth (L5 H)) T Sl C) + (fun φ => (Fintype.card (Orth (L5 H)) : ℝ) + * (5 * I.cost φ + (Fintype.card T : ℝ) * bankPrice (Fintype.card H) φ)) := by + obtain ⟨l⟩ : Nonempty H := Fintype.card_pos_iff.mp (by omega) + have hb : ∀ t, ∃ A : OBase H, I.tv t = A.v l := + fun t => base_ex (I.tv t) (I.hunit t) (I.hgap t) l + choose base hbase using hb + exact gbridge2_certificate (ggeomBridge2 I base l hbase hH) + +end End +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.ggeomBridge2 +#print axioms OAI.PowerSaving.GX.bridge2_gcert diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__InvThm.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__InvThm.lean new file mode 100644 index 0000000000..d69fcb4992 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__InvThm.lean @@ -0,0 +1,164 @@ +import Work.GCert.Chain.Inv + +/-! +# (key: gx-chain) THE CARRIER INVOCATION THEOREM on the generalised engine: `Lab.inv` + +`CR.Phased.inv` (`Work/Carrier/PhasedInv.lean`) with subspace labels and `GRoute`. Forward word: + + erase | y -= K s (old frame 0) | free adapters to the labels of the certificate | phase A | + c += Cc s | copies down | y += Jr c | phase B | final climbs | free adapters to the old + frames | slots := slot rows of the inverse (old frame 1) | erase + +The backward word is the transposed inverse, gate by gate, on the same labels. The scalar +identities are `Scal.fwd_scalar` / `Scal.bwd_scalar` (those of `CR.Phased`). + +No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB BR CR GF RF +noncomputable section + +section Thm +variable {H T Sl C : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] +variable {α : Type} [Fintype α] [DecidableEq α] +variable {S : Scal T Sl C} (L : Lab H S) (W : GWin H α) + +/-- **Forward word on clean frames.** -/ +theorem Lab.fwd_erased (c0 c1 : C → CMat α) : + GRoute (iin W.Xm L.tv (fun _ : Sl => W.Xm.Φ 0) c0) + (iout W.Xm L.tv (fun _ : Sl => W.Xm.Φ 1) c1) shearF L.cost := by + have a1 : GRoute (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) + (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) + (actPoint (g1 S.Mt)) (fun _ => 0) := + GRoute.gate (g1 S.Mt) _ _ (fun i j hij => by + by_cases e : i = j + · subst e; rfl + · obtain ⟨h1, h2⟩ := offdiag_x (g1_x S.Mt).1 (g1_x S.Mt).2 hij e + exact start_frames W.Xm L.tv i j h1 h2) + have b3 : GRoute (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + (actPoint (g8 S.Mti)) (fun _ => 0) := + GRoute.gate (g8 S.Mti) _ _ (fun i j hij => by + by_cases e : i = j + · subst e; rfl + · have f := g8_facts S.hiy + obtain ⟨h1, h2, h3⟩ := offdiag_s f.1 f.2.1 f.2.2 hij e + exact end_old W.Xm L.tv i j h1 h2 h3) + have seg1 : GRoute (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) (fun r => W.X.Φ (L.labA r)) + S.f1 (fun φ => rcost φ L.rA) := + ((a1.trans (L.ad0 W)).trans (L.pA W.X W.big).1).cast (fun φ => by simp) + have seg2 : GRoute (fun r => W.X.Φ (L.labA r)) (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + S.f2 (fun φ => rcost φ L.rB + rcost φ L.rF) := + ((((L.pB W.X W.big).1.trans (L.pF W.X W.big)).trans (L.adF W)).trans b3).cast + (fun φ => by simp) + have e0 : GRoute (iin W.Xm L.tv (fun _ : Sl => W.Xm.Φ 0) c0) + (glue (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) (fun k => W.X.Φ (L.cen k))) + eraseC (fun _ => 0) := + GRoute.ofX (xerase (fun t => rfl) (fun t => rfl) (fun q => rfl)) + have L1 := glift_live (fun k => W.X.Φ (L.cen k)) seg1 + have m1 : GRoute (glue (fun r => W.X.Φ (L.labA r)) (fun k => W.X.Φ (L.cen k))) + (glue (fun r => W.X.Φ (L.labA r)) (fun k => W.X.Φ (L.cen k))) + (fun z => addBlk bC (ap S.Cc (z ∘ bS)) z) (fun _ => 0) := + GRoute.ofX (xgate_shear bC bS bS_inj S.Cc (fun k q h => congrArg W.X.Φ (L.hAc k q h))) + have m2 := L.cdown W (fun r => W.X.Φ (L.labA r)) + have m3 : GRoute (glue (fun r => W.X.Φ (L.labA r)) (fun _ : C => W.X.Φ L.z0)) + (glue (fun r => W.X.Φ (L.labA r)) (fun _ : C => W.X.Φ L.z0)) + (fun z => addBlk bY (ap S.Jr (z ∘ bC)) z) (fun _ => 0) := + GRoute.ofX (xgate_shear bY bC bC_inj S.Jr (fun t k _ => congrArg W.X.Φ (L.hAy t))) + have L2 := glift_live (fun _ : C => W.X.Φ L.z0) seg2 + have e1 : GRoute (glue (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) (fun _ : C => W.X.Φ L.z0)) + (iout W.Xm L.tv (fun _ : Sl => W.Xm.Φ 1) c1) eraseC (fun _ => 0) := + GRoute.ofX (xerase (fun t => rfl) (fun t => rfl) (fun q => rfl)) + have tot := (((((e0.trans L1).trans m1).trans m2).trans m3).trans L2).trans e1 + refine (tot.castg (g' := shearF) (funext fun z => S.fwd_scalar z)).cast (fun φ => ?_) + simp only [Lab.cost, zero_add, add_zero] + ring + +/-- **Backward word on clean frames**: the transposed inverse gates, same labels; the copies +start at the zero frame and climb. -/ +theorem Lab.bwd_erased (c0 c1 : C → CMat α) : + GRoute (iin W.Xm L.tv (fun _ : Sl => W.Xm.Φ 0) c0) + (iout W.Xm L.tv (fun _ : Sl => W.Xm.Φ 1) c1) shearB L.cost := by + have a1 : GRoute (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) + (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) + (actPoint (g1i S.Mt)ᵀ) (fun _ => 0) := + GRoute.gate (g1i S.Mt)ᵀ _ _ (fun i j hij => by + by_cases e : i = j + · subst e; rfl + · have hij' : g1i S.Mt j i ≠ 0 := hij + obtain ⟨h1, h2⟩ := offdiag_x (g1i_x S.Mt).1 (g1i_x S.Mt).2 hij' (Ne.symm e) + exact start_frames W.Xm L.tv i j h2 h1) + have b3 : GRoute (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + (actPoint (h8 S.Mt)ᵀ) (fun _ => 0) := + GRoute.gate (h8 S.Mt)ᵀ _ _ (fun i j hij => by + by_cases e : i = j + · subst e; rfl + · have hij' : h8 S.Mt j i ≠ 0 := hij + have f := h8_facts S.hmy + obtain ⟨h1, h2, h3⟩ := offdiag_s f.1 f.2.1 f.2.2 hij' (Ne.symm e) + exact (end_old W.Xm L.tv j i h1 h2 h3).symm) + have seg1 : GRoute (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) (fun r => W.X.Φ (L.labA r)) + S.b1 (fun φ => rcost φ L.rA) := + ((a1.trans (L.ad0 W)).trans (L.pA W.X W.big).2).cast (fun φ => by simp) + have seg2 : GRoute (fun r => W.X.Φ (L.labA r)) (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) + S.b2 (fun φ => rcost φ L.rB + rcost φ L.rF) := + ((((L.pB W.X W.big).2.trans (L.pF W.X W.big)).trans (L.adF W)).trans b3).cast + (fun φ => by simp) + have e0 : GRoute (iin W.Xm L.tv (fun _ : Sl => W.Xm.Φ 0) c0) + (glue (fun r : L3 T Sl => W.Xm.Φ (lab3 L.tv r).P) (fun _ : C => W.X.Φ L.z0)) + eraseC (fun _ => 0) := + GRoute.ofX (xerase (fun t => rfl) (fun t => rfl) (fun q => rfl)) + have L1 := glift_live (fun _ : C => W.X.Φ L.z0) seg1 + have m1 : GRoute (glue (fun r => W.X.Φ (L.labA r)) (fun _ : C => W.X.Φ L.z0)) + (glue (fun r => W.X.Φ (L.labA r)) (fun _ : C => W.X.Φ L.z0)) + (fun z => addBlk bC (ap S.Jrᵀ (z ∘ bY)) z) (fun _ => 0) := + GRoute.ofX (xgate_shear bC bY bY_inj S.Jrᵀ (fun k t _ => (congrArg W.X.Φ (L.hAy t)).symm)) + have m2 := L.cup W (fun r => W.X.Φ (L.labA r)) + have m3 : GRoute (glue (fun r => W.X.Φ (L.labA r)) (fun k => W.X.Φ (L.cen k))) + (glue (fun r => W.X.Φ (L.labA r)) (fun k => W.X.Φ (L.cen k))) + (fun z => addBlk bS (ap (-S.Ccᵀ) (z ∘ bC)) z) (fun _ => 0) := + GRoute.ofX (xgate_shear bS bC bC_inj (-S.Ccᵀ) + (fun q k h => (congrArg W.X.Φ (L.hAc k q (ne_of_negT S.Cc h))).symm)) + have L2 := glift_live (fun k => W.X.Φ (L.cen k)) seg2 + have e1 : GRoute (glue (fun r : L3 T Sl => W.Xm.Φ (labE L.tv r)) (fun k => W.X.Φ (L.cen k))) + (iout W.Xm L.tv (fun _ : Sl => W.Xm.Φ 1) c1) eraseC (fun _ => 0) := + GRoute.ofX (xerase (fun t => rfl) (fun t => rfl) (fun q => rfl)) + have tot := (((((e0.trans L1).trans m1).trans m2).trans m3).trans L2).trans e1 + refine (tot.castg (g' := shearB) (funext fun z => S.bwd_scalar z)).cast (fun φ => ?_) + simp only [Lab.cost, zero_add, add_zero] + ring + +/-- **THE CARRIER INVOCATION THEOREM on the generalised engine.** The two halves of a +certificate are an invocation package for the bridged network, with the price `L.cost`. -/ +def Lab.inv : GInv H T Sl C where + tv := L.tv + hunit := L.hunit + hgap := L.hgap + cost := L.cost + fwd := fun W N0 Wn hN hW Z c0 c1 => + gdirty_of_erased W.Xm L.tv N0 Wn hN hW Z c0 c1 (L.fwd_erased W c0 c1) + (shearF_comm (fun _ => 1) (fun q => N0 * Z q) (fun _ => 1)) + bwd := fun W N0 Wn hN hW Z c0 c1 => + gdirty_of_erased W.Xm L.tv N0 Wn hN hW Z c0 c1 (L.bwd_erased W c0 c1) + (shearB_comm (fun _ => 1) (fun q => N0 * Z q) (fun _ => 1)) + +@[simp] lemma Lab.inv_cost (φ : ℕ → ℝ) : L.inv.cost φ = L.cost φ := rfl +@[simp] lemma Lab.inv_tv : L.inv.tv = L.tv := rfl + +end Thm +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.Lab.fwd_erased +#print axioms OAI.PowerSaving.GX.Lab.bwd_erased +#print axioms OAI.PowerSaving.GX.Lab.inv diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetCert.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetCert.lean new file mode 100644 index 0000000000..6336ba0766 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetCert.lean @@ -0,0 +1,157 @@ +import Work.GCert.Chain.NetStage +import Work.GFrame.Top.Assemble + +/-! +# (key: gx-chain) The bridged word B_2 on the generalised engine: the certificate `GCert` + +GENERATED by checks/wht26/gx-chain/py/netgen.py from Work/Bridge/Cert.lean (section Net). +`gbridge2_certificate`: a `GCert` on the live roles `BLive Γ T Sl` with price `card Γ * N.unit φ`. +The gate layers, the idle climbs and the exchange are the old routes (`GRoute.ofX`). No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB RF BR GF +noncomputable section + +section Net +variable {H T Sl C α Γ : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] + [Fintype Γ] [DecidableEq Γ] +variable (N : GBridge2 H T Sl C α Γ) + +/-- gate layer A, after stage 1 and the first idle climb of pair 2: twins have equal frames. -/ +lemma GBridge2.gateA : XRoute N.S3 N.S3 (gsc pAB kA) (fun _ => 0) := by + refine gateP pAB kA N.S3 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- gate layer B, after stage 2 and the second idle climb of pair 2. -/ +lemma GBridge2.gateB : XRoute N.S5 N.S5 (gsc pAB kB) (fun _ => 0) := by + refine gateP pAB kB N.S5 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · exact N.x23 g t + · exact (hk rfl).elim + · exact (hk rfl).elim + · exact (N.y23 g t).symm + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- gate layer C, after the final climbs. -/ +lemma GBridge2.gateC : XRoute N.S8 N.S8 (gsc pC kCc) (fun _ => 0) := by + refine gateP pC kCc N.S8 ?_ + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) hk + · exact (hk rfl).elim + · rfl + · rfl + · exact (hk rfl).elim + · exact (hk rfl).elim + · exact (hk rfl).elim + +/-- the free shifts at the end. -/ +def GBridge2.corr : BRole Γ T Sl C → Space α := + mkB (fun _ _ => 0) (fun g t => N.u g t) (fun _ _ => 0) (fun g t => N.u g t) + (fun _ _ => 0) (fun _ _ => 0) + +def GBridge2.S9 : BRole Γ T Sl C → CMat α := fun r => shift (N.corr r) * N.S8 r + +/-- the whole word before the exchange: five stages, three idle-climb layers, three gate +layers. -/ +lemma GBridge2.route : + GRoute N.S0 N.S8 chain (fun φ => (Fintype.card Γ : ℝ) * N.unit φ) := by + have R := ((((((((((N.stage0.trans N.stage1).trans (GRoute.ofX N.climbA)).trans + (GRoute.ofX N.gateA)).trans N.stage2).trans (GRoute.ofX N.climbB)).trans + (GRoute.ofX N.gateB)).trans N.stage3).trans N.stage4).trans + (GRoute.ofX N.fin)).trans (GRoute.ofX N.gateC)) + refine (R.castg ?_).cast (fun φ => ?_) + · rfl + · simp only [GBridge2.unit] + ring + +/-- **The scratch certificate of the bridged five-stage network with shared helper sets**, +in whole blocks, with its exact price for every price list. -/ +theorem gbridge2_certificate : + GCert α (Sum.inl : BLive Γ T Sl → BRole Γ T Sl C) + (fun φ => (Fintype.card Γ : ℝ) * N.unit φ) := by + have R2 : GRoute N.S8 N.S9 id (fun _ => 0) := GRoute.shifts N.hm N.S8 N.corr + have R3 : GRoute N.S9 (fun r => N.S9 (bpull r)) (actPoint brecM) (fun _ => 0) := + GRoute.gate brecM N.S9 _ (fun i j h => by + have hj : j = bpull i := by + by_contra hne + exact h (by simp [brecM, hne]) + rw [hj]) + have Rt := ((N.route.trans R2).trans R3).cast (c' := fun φ => (Fintype.card Γ : ℝ) * N.unit φ) + (fun φ => by first | ring | simp) + have hSinv : ∀ r, ∃ M, N.S0 r * M = 1 := by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact N.inv0 g t + · refine ⟨1, ?_⟩ + show (N.G0 g).Xm.Φ 0 * 1 = 1 + rw [N.z0, Matrix.mul_one] + · exact N.inv0 g t + · refine ⟨1, ?_⟩ + show (N.G0 g).Xm.Φ 0 * 1 = 1 + rw [N.z0, Matrix.mul_one] + · exact ⟨1, Matrix.mul_one _⟩ + · exact ⟨1, Matrix.mul_one _⟩ + have hT : ∀ l : BLive Γ T Sl, N.S9 (bpull (Sum.inl l)) = kernel α * N.S0 (Sum.inl l) := by + rintro (((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩) + · show shift (N.u g t) * N.YF g t = kernel α * (N.G0 g).Xm.Φ (tt (N.I.tv t)) + exact (N.term g t).symm + · show shift (0 : Space α) * kernel α = kernel α * (N.G0 g).Xm.Φ 0 + rw [shift_zero, Matrix.one_mul, N.z0, Matrix.mul_one] + · show shift (N.u g t) * N.YF g t = kernel α * (N.G0 g).Xm.Φ (tt (N.I.tv t)) + exact (N.term g t).symm + · show shift (0 : Space α) * kernel α = kernel α * (N.G0 g).Xm.Φ 0 + rw [shift_zero, Matrix.one_mul, N.z0, Matrix.mul_one] + · show shift (0 : Space α) * kernel α = kernel α * 1 + rw [shift_zero, Matrix.one_mul, Matrix.mul_one] + have hg : ∀ x : BRole Γ T Sl C → ℂ, + (∀ s, (∀ l : BLive Γ T Sl, (Sum.inl l : BRole Γ T Sl C) ≠ s) → x s = 0) → + ∀ l : BLive Γ T Sl, + (actPoint brecM ∘ (id ∘ chain)) x (Sum.inl l) = x (Sum.inl l) := by + intro x _ l + change actPoint brecM (chain x) (Sum.inl l) = _ + rw [actPoint_brecM] + rcases l with (((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩) + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inl (Sum.inr (g,t))))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kX1 (g,t)) = x (kX1 (g,t)) + first | (push_cast; ring) | simp + · show ((-1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inl (Sum.inl (g,t))))) = _ + rw [chain_eq] + show ((-1:ℚ):ℂ) * (-x (kY1 (g,t))) = x (kY1 (g,t)) + first | (push_cast; ring) | simp + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inr (Sum.inr (g,t))))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kX2 (g,t)) = x (kX2 (g,t)) + first | (push_cast; ring) | simp + · show ((-1:ℚ):ℂ) * chain x (Sum.inl (Sum.inl (Sum.inr (Sum.inl (g,t))))) = _ + rw [chain_eq] + show ((-1:ℚ):ℂ) * (-x (kY2 (g,t))) = x (kY2 (g,t)) + first | (push_cast; ring) | simp + · show ((1:ℚ):ℂ) * chain x (Sum.inl (Sum.inr (g,q))) = _ + rw [chain_eq] + show ((1:ℚ):ℂ) * x (kS (g,q)) = x (kS (g,q)) + first | (push_cast; ring) | simp + exact gcert_of_groute (Sum.inl : BLive Γ T Sl → BRole Γ T Sl C) N.S0 + (fun r => N.S9 (bpull r)) _ _ Rt hSinv hg hT + +end Net + +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.GBridge2.route +#print axioms OAI.PowerSaving.GX.gbridge2_certificate diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetDef.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetDef.lean new file mode 100644 index 0000000000..c13042eb43 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetDef.lean @@ -0,0 +1,157 @@ +import Work.GCert.Chain.Stage + +/-! +# (key: gx-chain) The bridged five-stage word B_2 on the generalised engine: data and frames + +GENERATED by checks/wht26/gx-chain/py/netgen.py from Work/Bridge/Net.lean (`BR.Bridge2`): the +invocation is a `GInv`, the frame maps of the stages are windows `GWin` (`G0 .. G4`; the old +frame map of a window is `.Xm`). Everything else word for word. No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB RF BR GF +noncomputable section + +/-- See the file header. Fields in the style of `RF.Fold3S`; stages are numbered 0 to 4. -/ +structure GBridge2 (H T Sl C α Γ : Type) [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] where + /-- the invocation (for a block circuit `X`: `X.inv`). -/ + I : GInv H T Sl C + /-- frame maps of the invocations of the five stages. -/ + G0 : Γ → GWin H α + G1 : Γ → GWin H α + G2 : Γ → GWin H α + G3 : Γ → GWin H α + G4 : Γ → GWin H α + /-- the class `(g,t)` is served by the invocation `g` in stage 0 and `r_l t g` in stage `l`. -/ + r1 : T → Γ ≃ Γ + r2 : T → Γ ≃ Γ + r3 : T → Γ ≃ Γ + r4 : T → Γ ≃ Γ + /-- the invocation `d` of stage `l` uses the helper set (and the copies) `s_l d`. -/ + s1 : Γ ≃ Γ + s2 : Γ ≃ Γ + s3 : Γ ≃ Γ + s4 : Γ ≃ Γ + /-- inverse of the frame of the base, and frame of the window, of every invocation. -/ + N1 : Γ → CMat α + W1 : Γ → CMat α + N2 : Γ → CMat α + W2 : Γ → CMat α + N3 : Γ → CMat α + W3 : Γ → CMat α + N4 : Γ → CMat α + W4 : Γ → CMat α + u : Γ → T → Space α + YF : Γ → T → CMat α + hm : 2 ≤ Fintype.card α + /-- prices of the idle climbs, for every price list. B_2 with merged climbs: + `caX = caY = fun φ => bcost φ (2h-2)`, `cX1 = cY1 = fun φ => bcost φ (2h+2)`, + `cX2 = cY2 = fun φ => bcost φ 4`. -/ + caX : (ℕ → ℝ) → ℝ + caY : (ℕ → ℝ) → ℝ + cX1 : (ℕ → ℝ) → ℝ + cY1 : (ℕ → ℝ) → ℝ + cX2 : (ℕ → ℝ) → ℝ + cY2 : (ℕ → ℝ) → ℝ + inv0 : ∀ g t, ∃ N : CMat α, (G0 g).Xm.Φ (tt (I.tv t)) * N = 1 + z0 : ∀ g, (G0 g).Xm.Φ 0 = 1 + hN1 : ∀ d, (G1 d).Xm.Φ 0 * N1 d = 1 + hW1 : ∀ d, (G1 d).Xm.Φ 1 = W1 d * (G1 d).Xm.Φ 0 + hN2 : ∀ d, (G2 d).Xm.Φ 0 * N2 d = 1 + hW2 : ∀ d, (G2 d).Xm.Φ 1 = W2 d * (G2 d).Xm.Φ 0 + hN3 : ∀ d, (G3 d).Xm.Φ 0 * N3 d = 1 + hW3 : ∀ d, (G3 d).Xm.Φ 1 = W3 d * (G3 d).Xm.Φ 0 + hN4 : ∀ d, (G4 d).Xm.Φ 0 * N4 d = 1 + hW4 : ∀ d, (G4 d).Xm.Φ 1 = W4 d * (G4 d).Xm.Φ 0 + /-- the bank frames a stage leaves are the bank frames the next stage starts from. -/ + x01 : ∀ g t, (G0 g).Xm.Φ 1 = (G1 (r1 t g)).Xm.Φ (tt (I.tv t)) + y01 : ∀ g t, (G0 g).Xm.Φ (1 + tt (I.tv t)) = (G1 (r1 t g)).Xm.Φ 0 + x12 : ∀ g t, (G1 (r1 t g)).Xm.Φ 1 = (G2 (r2 t g)).Xm.Φ (tt (I.tv t)) + y12 : ∀ g t, (G1 (r1 t g)).Xm.Φ (1 + tt (I.tv t)) = (G2 (r2 t g)).Xm.Φ 0 + x23 : ∀ g t, (G2 (r2 t g)).Xm.Φ 1 = (G3 (r3 t g)).Xm.Φ (tt (I.tv t)) + y23 : ∀ g t, (G2 (r2 t g)).Xm.Φ (1 + tt (I.tv t)) = (G3 (r3 t g)).Xm.Φ 0 + x34 : ∀ g t, (G3 (r3 t g)).Xm.Φ 1 = (G4 (r4 t g)).Xm.Φ (tt (I.tv t)) + y34 : ∀ g t, (G3 (r3 t g)).Xm.Φ (1 + tt (I.tv t)) = (G4 (r4 t g)).Xm.Φ 0 + /-- the five windows of a helper set make up the kernel. -/ + sfin : ∀ g, W4 (s4.symm g) * (W3 (s3.symm g) * (W2 (s2.symm g) * + (W1 (s1.symm g) * (G0 g).Xm.Φ 1))) = kernel α + /-- pair 2, idle in stages 0 and 1: ONE block from its start frame to the frame of its + twin after stage 1. -/ + aX2 : ∀ g t, XReach ((G0 g).Xm.Φ (tt (I.tv t))) ((G1 (r1 t g)).Xm.Φ 1) caX + aY2 : ∀ g t, XReach ((G0 g).Xm.Φ 0) ((G1 (r1 t g)).Xm.Φ (1 + tt (I.tv t))) caY + /-- pair 1, idle in stages 3 and 4: ONE block from its frame after stage 2 to the end. -/ + fX1 : ∀ g t, XReach ((G2 (r2 t g)).Xm.Φ 1) (kernel α) cX1 + fY1 : ∀ g t, XReach ((G2 (r2 t g)).Xm.Φ (1 + tt (I.tv t))) (YF g t) cY1 + /-- pair 2 after stage 4: ONE final block. -/ + fX2 : ∀ g t, XReach ((G4 (r4 t g)).Xm.Φ 1) (kernel α) cX2 + fY2 : ∀ g t, XReach ((G4 (r4 t g)).Xm.Φ (1 + tt (I.tv t))) (YF g t) cY2 + term : ∀ g t, kernel α * (G0 g).Xm.Φ (tt (I.tv t)) = shift (u g t) * YF g t + +section Net +variable {H T Sl C α Γ : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] + [Fintype Γ] [DecidableEq Γ] +variable (N : GBridge2 H T Sl C α Γ) + +/-- price of the blocks of one unit (one element of `Γ`): five invocations and the idle +climbs of the four bank roles of every class. -/ +def GBridge2.unit (φ : ℕ → ℝ) : ℝ := + 5 * N.I.cost φ + (Fintype.card T : ℝ) * ((N.caX φ + N.caY φ) + + 2 * bcost φ (Fintype.card H - 1) + + (N.cX1 φ + N.cY1 φ) + (N.cX2 φ + N.cY2 φ)) + +/-- the bank index of stage 0: the class `(g,t)` belongs to the invocation `g`. -/ +abbrev bid (Γ T : Type) : T → Γ ≃ Γ := fun _ => Equiv.refl Γ + +/-! bank frames of the class `(g,t)`: `xi l`, `yi l` at the START of stage `l`; `xo l`, +`yo l` at the END of stage `l` (only where no next stage follows on that pair). -/ +def GBridge2.xi0 (g : Γ) (t : T) : CMat α := (N.G0 g).Xm.Φ (tt (N.I.tv t)) +def GBridge2.yi0 (g : Γ) (t : T) : CMat α := (N.G0 g).Xm.Φ 0 +def GBridge2.xi1 (g : Γ) (t : T) : CMat α := (N.G1 (N.r1 t g)).Xm.Φ (tt (N.I.tv t)) +def GBridge2.yi1 (g : Γ) (t : T) : CMat α := (N.G1 (N.r1 t g)).Xm.Φ 0 +def GBridge2.xi2 (g : Γ) (t : T) : CMat α := (N.G2 (N.r2 t g)).Xm.Φ (tt (N.I.tv t)) +def GBridge2.yi2 (g : Γ) (t : T) : CMat α := (N.G2 (N.r2 t g)).Xm.Φ 0 +def GBridge2.xo2 (g : Γ) (t : T) : CMat α := (N.G2 (N.r2 t g)).Xm.Φ 1 +def GBridge2.yo2 (g : Γ) (t : T) : CMat α := (N.G2 (N.r2 t g)).Xm.Φ (1 + tt (N.I.tv t)) +def GBridge2.xi3 (g : Γ) (t : T) : CMat α := (N.G3 (N.r3 t g)).Xm.Φ (tt (N.I.tv t)) +def GBridge2.yi3 (g : Γ) (t : T) : CMat α := (N.G3 (N.r3 t g)).Xm.Φ 0 +def GBridge2.xi4 (g : Γ) (t : T) : CMat α := (N.G4 (N.r4 t g)).Xm.Φ (tt (N.I.tv t)) +def GBridge2.yi4 (g : Γ) (t : T) : CMat α := (N.G4 (N.r4 t g)).Xm.Φ 0 +def GBridge2.xo4 (g : Γ) (t : T) : CMat α := (N.G4 (N.r4 t g)).Xm.Φ 1 +def GBridge2.yo4 (g : Γ) (t : T) : CMat α := (N.G4 (N.r4 t g)).Xm.Φ (1 + tt (N.I.tv t)) + +/-- helper slots after the stages 0, 1, 2, 3, 4 (at the start: `cOne Γ Sl α`). -/ +def GBridge2.Z1 : Γ → Sl → CMat α := fun g _ => (N.G0 g).Xm.Φ 1 +def GBridge2.Z2 : Γ → Sl → CMat α := fun g q => N.W1 (N.s1.symm g) * N.Z1 g q +def GBridge2.Z3 : Γ → Sl → CMat α := fun g q => N.W2 (N.s2.symm g) * N.Z2 g q +def GBridge2.Z4 : Γ → Sl → CMat α := fun g q => N.W3 (N.s3.symm g) * N.Z3 g q +def GBridge2.Z5 : Γ → Sl → CMat α := fun g q => N.W4 (N.s4.symm g) * N.Z4 g q + +/-- frames: at the start; after stage 0; after stage 1; after the first idle climb of pair 2 +(first gate layer here); after stage 2; after the second idle climb of pair 2 (second gate +layer here); after stage 3; after stage 4; after the final climbs (third gate layer here). -/ +def GBridge2.S0 : BRole Γ T Sl C → CMat α := mkB N.xi0 N.yi0 N.xi0 N.yi0 (cOne Γ Sl α) (cOne Γ C α) +def GBridge2.S1 : BRole Γ T Sl C → CMat α := mkB N.xi1 N.yi1 N.xi0 N.yi0 N.Z1 (cOne Γ C α) +def GBridge2.S2 : BRole Γ T Sl C → CMat α := mkB N.xi2 N.yi2 N.xi0 N.yi0 N.Z2 (cOne Γ C α) +def GBridge2.S3 : BRole Γ T Sl C → CMat α := mkB N.xi2 N.yi2 N.xi2 N.yi2 N.Z2 (cOne Γ C α) +def GBridge2.S4 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi2 N.yi2 N.Z3 (cOne Γ C α) +def GBridge2.S5 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi3 N.yi3 N.Z3 (cOne Γ C α) +def GBridge2.S6 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xi4 N.yi4 N.Z4 (cOne Γ C α) +def GBridge2.S7 : BRole Γ T Sl C → CMat α := mkB N.xo2 N.yo2 N.xo4 N.yo4 N.Z5 (cOne Γ C α) +def GBridge2.S8 : BRole Γ T Sl C → CMat α := + mkB (fun _ _ => kernel α) N.YF (fun _ _ => kernel α) N.YF (fun _ _ => kernel α) (cOne Γ C α) + + +end Net +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.GBridge2.unit diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetStage.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetStage.lean new file mode 100644 index 0000000000..670f4c6a84 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetStage.lean @@ -0,0 +1,186 @@ +import Work.GCert.Chain.NetDef + +/-! +# (key: gx-chain) The bridged word B_2 on the generalised engine: the five stages and the idle climbs + +GENERATED by checks/wht26/gx-chain/py/netgen.py from Work/Bridge/Net.lean. The stages are +`GRoute`s (`gistage_fwd` / `gistage_bwd`, `gblift1` / `gblift2`); the idle climbs of the bank +roles are the OLD block routes, unchanged. No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB RF BR GF +noncomputable section + +section Net +variable {H T Sl C α Γ : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] [Fintype α] [DecidableEq α] + [Fintype Γ] [DecidableEq Γ] +variable (N : GBridge2 H T Sl C α Γ) + +/-- stage 0: forward on pair 1, every helper set starts at the matrix `1`. -/ +lemma GBridge2.stage0 : + GRoute N.S0 N.S1 (lift1 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := gistage_fwd N.I (bid Γ T) (Equiv.refl Γ) N.G0 (fun _ => 1) (fun g => (N.G0 g).Xm.Φ 1) + (fun d => by rw [N.z0, Matrix.mul_one]) (fun d => by rw [N.z0, Matrix.mul_one]) + (cOne Γ Sl α) (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv (bid Γ T) (fun d => (N.G0 d).Xm) + (fun g (q : Sl) => (N.G0 ((Equiv.refl Γ).symm g)).Xm.Φ 1 * cOne Γ Sl α g q) (cOne Γ C α) + = mkS N.xi1 N.yi1 N.Z1 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x01 g t + · exact N.y01 g t + · show (N.G0 g).Xm.Φ 1 * 1 = (N.G0 g).Xm.Φ 1 + rw [Matrix.mul_one] + · rfl + have h' : GRoute (bIn N.I.tv (bid Γ T) (fun d => (N.G0 d).Xm) (cOne Γ Sl α) (cOne Γ C α)) + (mkS N.xi1 N.yi1 N.Z1 (cOne Γ C α)) GF (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact gblift1 N.xi0 N.yi0 h' + +/-- stage 1: backward on pair 1; the helper set `g` serves the invocation `s1⁻¹ g`. -/ +lemma GBridge2.stage1 : + GRoute N.S1 N.S2 (lift1 GB) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := gistage_bwd N.I N.r1 N.s1 N.G1 N.N1 N.W1 N.hN1 N.hW1 N.Z1 (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv N.r1 (fun d => (N.G1 d).Xm) (fun g q => N.W1 (N.s1.symm g) * N.Z1 g q) (cOne Γ C α) + = mkS N.xi2 N.yi2 N.Z2 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x12 g t + · exact N.y12 g t + · rfl + · rfl + have h' : GRoute (bIn N.I.tv N.r1 (fun d => (N.G1 d).Xm) N.Z1 (cOne Γ C α)) + (mkS N.xi2 N.yi2 N.Z2 (cOne Γ C α)) GB (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact gblift1 N.xi0 N.yi0 h' + +/-- stage 2: forward on pair 1. -/ +lemma GBridge2.stage2 : + GRoute N.S3 N.S4 (lift1 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := + gblift1 N.xi2 N.yi2 + (gistage_fwd N.I N.r2 N.s2 N.G2 N.N2 N.W2 N.hN2 N.hW2 N.Z2 (cOne Γ C α) (cOne Γ C α)) + +/-- stage 3: backward on pair 2. -/ +lemma GBridge2.stage3 : + GRoute N.S5 N.S6 (lift2 GB) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + have h := gistage_bwd N.I N.r3 N.s3 N.G3 N.N3 N.W3 N.hN3 N.hW3 N.Z3 (cOne Γ C α) (cOne Γ C α) + have e : bOut N.I.tv N.r3 (fun d => (N.G3 d).Xm) (fun g q => N.W3 (N.s3.symm g) * N.Z3 g q) (cOne Γ C α) + = mkS N.xi4 N.yi4 N.Z4 (cOne Γ C α) := by + funext r + rcases r with (((⟨g,t⟩|⟨g,t⟩)|⟨g,q⟩)|⟨g,c⟩) + · exact N.x34 g t + · exact N.y34 g t + · rfl + · rfl + have h' : GRoute (bIn N.I.tv N.r3 (fun d => (N.G3 d).Xm) N.Z3 (cOne Γ C α)) + (mkS N.xi4 N.yi4 N.Z4 (cOne Γ C α)) GB (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := by + rw [← e] + exact h + exact gblift2 N.xo2 N.yo2 h' + +/-- stage 4: forward on pair 2. -/ +lemma GBridge2.stage4 : + GRoute N.S6 N.S7 (lift2 GF) (fun φ => (Fintype.card Γ : ℝ) * N.I.cost φ) := + gblift2 N.xo2 N.yo2 + (gistage_fwd N.I N.r4 N.s4 N.G4 N.N4 N.W4 N.hN4 N.hW4 N.Z4 (cOne Γ C α) (cOne Γ C α)) + +/-- first idle climb of pair 2 (stages 0 and 1 in ONE block per role), to the frames of +pair 1 after stage 1. -/ +lemma GBridge2.climbA : + XRoute N.S2 N.S3 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * (N.caX φ + N.caY φ))) := by + have H1 := XRoute.reach_all N.S2 N.S3 + (mkB (fun _ _ _ => 0) (fun _ _ _ => 0) (fun _ _ => N.caX) + (fun _ _ => N.caY) (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact XReach.refl _ + · exact XReach.refl _ + · show XReach ((N.G0 g).Xm.Φ (tt (N.I.tv t))) ((N.G2 (N.r2 t g)).Xm.Φ (tt (N.I.tv t))) N.caX + rw [← N.x12 g t] + exact N.aX2 g t + · show XReach ((N.G0 g).Xm.Φ 0) ((N.G2 (N.r2 t g)).Xm.Φ 0) N.caY + rw [← N.y12 g t] + exact N.aY2 g t + · exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +/-- second idle climb of pair 2: the window of stage 2, ONE block of rank `card H - 1` per +role, to the frames of pair 1 after stage 2. -/ +lemma GBridge2.climbB : + XRoute N.S4 N.S5 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * (2 * bcost φ (Fintype.card H - 1)))) := by + have H1 := XRoute.reach_all N.S4 N.S5 + (mkB (fun _ _ _ => 0) (fun _ _ _ => 0) (fun _ _ φ => bcost φ (Fintype.card H - 1)) + (fun _ _ φ => bcost φ (Fintype.card H - 1)) (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact XReach.refl _ + · exact XReach.refl _ + · show XReach ((N.G2 (N.r2 t g)).Xm.Φ (tt (N.I.tv t))) ((N.G3 (N.r3 t g)).Xm.Φ (tt (N.I.tv t))) + (fun φ => bcost φ (Fintype.card H - 1)) + rw [← N.x23 g t] + exact N.I.climbX (N.G2 (N.r2 t g)).Xm t + · show XReach ((N.G2 (N.r2 t g)).Xm.Φ 0) ((N.G3 (N.r3 t g)).Xm.Φ 0) + (fun φ => bcost φ (Fintype.card H - 1)) + rw [← N.y23 g t] + exact N.I.climbY (N.G2 (N.r2 t g)).Xm t + · exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +/-- the final climbs: pair 1 from its frames after stage 2 (ONE block per role for the +stages 3, 4 and the rest), pair 2 from its frames after stage 4; the helper slots are +already at the kernel. -/ +lemma GBridge2.fin : + XRoute N.S7 N.S8 id (fun φ => (Fintype.card Γ : ℝ) * + ((Fintype.card T : ℝ) * ((N.cX1 φ + N.cY1 φ) + (N.cX2 φ + N.cY2 φ)))) := by + have H1 := XRoute.reach_all N.S7 N.S8 + (mkB (fun _ _ => N.cX1) (fun _ _ => N.cY1) (fun _ _ => N.cX2) (fun _ _ => N.cY2) + (fun _ _ _ => 0) (fun _ _ _ => 0)) (by + rintro ((((⟨g,t⟩|⟨g,t⟩)|(⟨g,t⟩|⟨g,t⟩))|⟨g,q⟩)|⟨g,c⟩) + · exact N.fX1 g t + · exact N.fY1 g t + · exact N.fX2 g t + · exact N.fY2 g t + · show XReach (N.W4 (N.s4.symm g) * (N.W3 (N.s3.symm g) * (N.W2 (N.s2.symm g) * + (N.W1 (N.s1.symm g) * (N.G0 g).Xm.Φ 1)))) (kernel α) (fun _ => 0) + rw [N.sfin g] + exact XReach.refl _ + · exact XReach.refl _) + refine H1.cast (fun φ => ?_) + simp_rw [mkB_map (fun c : (ℕ → ℝ) → ℝ => c φ)] + rw [sum_mkB] + simp only [sum_const, card_univ, nsmul_eq_mul, mul_zero, add_zero, zero_add] + ring + +end Net +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.GBridge2.stage0 +#print axioms OAI.PowerSaving.GX.GBridge2.stage1 +#print axioms OAI.PowerSaving.GX.GBridge2.stage2 +#print axioms OAI.PowerSaving.GX.GBridge2.stage3 +#print axioms OAI.PowerSaving.GX.GBridge2.stage4 +#print axioms OAI.PowerSaving.GX.GBridge2.climbA +#print axioms OAI.PowerSaving.GX.GBridge2.climbB +#print axioms OAI.PowerSaving.GX.GBridge2.fin diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Phased.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Phased.lean new file mode 100644 index 0000000000..e68c42377f --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Phased.lean @@ -0,0 +1,199 @@ +import Work.Carrier.Phases +import Work.GFrame.Labels.All + +/-! +# (key: gx-chain) The certificate as two halves: `Scal` (scalar half) and `Lab` (label half) + +`Scal T Sl C`: the scalar fields of `CR.Phased` (three facts about ONE matrix +`Mt = MB * scatM (Jr * Cc) * MA`). The scalar identities of the forward and of the backward +word (`fwd_scalar`, `bwd_scalar`) are those of `Work/Carrier/Phases.lean`, word for word. + +`Lab H S`: subspace labels (`GF.SLbl H`), routes of the three phases on the generalised engine +(`GF.GRoute`) through every stage-B frame map (`GF.BXMap H α`), and facts about dimensions at +the two ends. No projector, no `Climb`. + +No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB BR CR GF +noncomputable section + +/-- **The scalar half.** -/ +structure Scal (T Sl C : Type) [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] where + Cc : Matrix C Sl ℚ + Jr : Matrix T C ℚ + MA : Matrix (L3 T Sl) (L3 T Sl) ℚ + MAi : Matrix (L3 T Sl) (L3 T Sl) ℚ + MB : Matrix (L3 T Sl) (L3 T Sl) ℚ + MBi : Matrix (L3 T Sl) (L3 T Sl) ℚ + hAi : MAi * MA = 1 + hBi : MBi * MB = 1 + hx : ∀ t j, (MB * scatM (Jr * Cc) * MA) (lX t) j = if lX t = j then 1 else 0 + hy : ∀ i t, (MB * scatM (Jr * Cc) * MA) i (lY t) = if i = lY t then 1 else 0 + hid : ∀ S t, (MB * scatM (Jr * Cc) * MA) (lY S) (lX t) = if S = t then 1 else 0 + +/-- **The label half.** See `checks/wht26/shared/gcert-interface.md`, section CHAIN. -/ +structure Lab (H : Type) [Fintype H] [DecidableEq H] {T Sl C : Type} [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] (S : Scal T Sl C) where + tv : T → Space H + hunit : ∀ t, dot (tv t) (tv t) = 1 + hgap : ∀ t, ∃ p, tv t p = 0 + lab0 : L3 T Sl → SLbl H + labA : L3 T Sl → SLbl H + labB : L3 T Sl → SLbl H + labF : L3 T Sl → SLbl H + cen : C → SLbl H + z0 : SLbl H + hz0 : z0.dim = 0 + h0x : ∀ t, (lab0 (lX t)).dim = 1 ∧ (lab0 (lX t)).Mem (tv t) + h0y : ∀ t, (lab0 (lY t)).dim = 0 + h0s : ∀ q, (lab0 (lS q)).dim = 0 + hAy : ∀ t, labA (lY t) = z0 + hAc : ∀ k q, S.Cc k q ≠ 0 → cen k = labA (lS q) + hcen : ∀ k, 0 < (cen k).dim + hFx : ∀ t, (labF (lX t)).dim = Fintype.card H + hFs : ∀ q, (labF (lS q)).dim = Fintype.card H + hFy : ∀ t, (labF (lY t)).dim + 1 = Fintype.card H ∧ + ∀ x, (labF (lY t)).Mem x → dot (tv t) x = 0 + rA : List ℕ + rB : List ℕ + rF : List ℕ + pA : ∀ {α : Type} [Fintype α] [DecidableEq α] (X : BXMap H α), + Fintype.card H < Fintype.card α → + GRoute (fun r => X.Φ (lab0 r)) (fun r => X.Φ (labA r)) (actPoint S.MA) + (fun φ => rcost φ rA) ∧ + GRoute (fun r => X.Φ (lab0 r)) (fun r => X.Φ (labA r)) (actPoint S.MAiᵀ) + (fun φ => rcost φ rA) + pB : ∀ {α : Type} [Fintype α] [DecidableEq α] (X : BXMap H α), + Fintype.card H < Fintype.card α → + GRoute (fun r => X.Φ (labA r)) (fun r => X.Φ (labB r)) (actPoint S.MB) + (fun φ => rcost φ rB) ∧ + GRoute (fun r => X.Φ (labA r)) (fun r => X.Φ (labB r)) (actPoint S.MBiᵀ) + (fun φ => rcost φ rB) + pF : ∀ {α : Type} [Fintype α] [DecidableEq α] (X : BXMap H α), + Fintype.card H < Fintype.card α → + GRoute (fun r => X.Φ (labB r)) (fun r => X.Φ (labF r)) id (fun φ => rcost φ rF) + +/-- price of one invocation: the blocks of the three phases and one block per copy. -/ +def Lab.cost {H : Type} [Fintype H] [DecidableEq H] {T Sl C : Type} [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] {S : Scal T Sl C} (L : Lab H S) + (φ : ℕ → ℝ) : ℝ := + rcost φ L.rA + (∑ k, bcost φ (L.cen k).dim) + rcost φ L.rB + rcost φ L.rF + +section Alg +variable {H T Sl C : Type} [Fintype H] [DecidableEq H] [Fintype T] [DecidableEq T] + [Fintype Sl] [DecidableEq Sl] [Fintype C] [DecidableEq C] + +namespace Scal +variable (K : Scal T Sl C) + +/-- the product of ALL gates of the main phase (scatter with the copies eliminated). -/ +def Mt : Matrix (L3 T Sl) (L3 T Sl) ℚ := K.MB * scatM (K.Jr * K.Cc) * K.MA +/-- its inverse. -/ +def Mti : Matrix (L3 T Sl) (L3 T Sl) ℚ := K.MAi * scatMi (K.Jr * K.Cc) * K.MBi + + +lemma im : K.Mti * K.Mt = 1 := by + unfold Mti Mt + have hB : ∀ X : Matrix (L3 T Sl) (L3 T Sl) ℚ, K.MBi * (K.MB * X) = X := fun X => by + rw [← Matrix.mul_assoc, K.hBi, Matrix.one_mul] + have hS : ∀ X : Matrix (L3 T Sl) (L3 T Sl) ℚ, + scatMi (K.Jr * K.Cc) * (scatM (K.Jr * K.Cc) * X) = X := fun X => by + rw [← Matrix.mul_assoc, scat_inv, Matrix.one_mul] + rw [Matrix.mul_assoc, Matrix.mul_assoc, Matrix.mul_assoc, hB, hS, K.hAi] + +lemma mi : K.Mt * K.Mti = 1 := mul_eq_one_comm.mp K.im + +lemma hxm : PX * K.Mt = PX := PX_mul_of (M := K.Mt) K.hx +lemma hmy : K.Mt * PY = PY := mul_PY_of (M := K.Mt) K.hy +lemma hiy : K.Mti * PY = PY := dirt_iy K.hmy K.im + +/-- **the dirt rule, forward**, for the matrices of the circuit. -/ +lemma hF : g8 K.Mti * K.Mt * g1 K.Mt = 1 + PY * K.Mt * PX := by + unfold g8 g1 + exact dirt_fwd PX_sq PY_sq PX_PY PY_PX K.hxm K.hmy K.im K.mi + +/-- **the dirt rule, backward.** -/ +lemma hB : g1i K.Mt * K.Mti * h8 K.Mt = 1 - PY * K.Mt * PX := by + unfold g1i h8 + exact dirt_bwd PX_sq PY_sq PX_PY PY_PX K.hxm K.hmy K.im K.mi + +/-- live part of the forward word before the scatter: `y -= K s`, then phase A. -/ +def f1 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint K.MA (actPoint (g1 K.Mt) u) +/-- after the scatter: phase B, then the slot rows of the inverse. -/ +def f2 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint (g8 K.Mti) (actPoint K.MB u) +/-- the same for the backward word (transposed inverses). -/ +def b1 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint K.MAiᵀ (actPoint (g1i K.Mt)ᵀ u) +def b2 (u : L3 T Sl → ℂ) : L3 T Sl → ℂ := actPoint (h8 K.Mt)ᵀ (actPoint K.MBiᵀ u) + +lemma fwd_live (u : L3 T Sl → ℂ) : + K.f2 (actPoint (scatM (K.Jr * K.Cc)) (K.f1 u)) = actPoint (1 + PY * K.Mt * PX) u := by + rw [← K.hF] + show actPoint (g8 K.Mti) (actPoint K.MB (actPoint (scatM (K.Jr * K.Cc)) + (actPoint K.MA (actPoint (g1 K.Mt) u)))) + = actPoint (g8 K.Mti * (K.MB * scatM (K.Jr * K.Cc) * K.MA) * g1 K.Mt) u + rw [actPoint_mul, actPoint_mul, actPoint_mul, actPoint_mul] + +lemma bwd_live (u : L3 T Sl → ℂ) : + K.b2 (actPoint ((scatMi (K.Jr * K.Cc))ᵀ) (K.b1 u)) + = actPoint ((1 - PY * K.Mt * PX)ᵀ) u := by + rw [← K.hB] + show actPoint (h8 K.Mt)ᵀ (actPoint K.MBiᵀ (actPoint (scatMi (K.Jr * K.Cc))ᵀ + (actPoint K.MAiᵀ (actPoint (g1i K.Mt)ᵀ u)))) + = actPoint ((g1i K.Mt * (K.MAi * scatMi (K.Jr * K.Cc) * K.MBi) * h8 K.Mt)ᵀ) u + rw [Matrix.transpose_mul, Matrix.transpose_mul, Matrix.transpose_mul, Matrix.transpose_mul, + actPoint_mul, actPoint_mul, actPoint_mul, actPoint_mul] + +lemma liveAct_glue (φ : (L3 T Sl → ℂ) → (L3 T Sl → ℂ)) (u : L3 T Sl → ℂ) (c : C → ℂ) : + liveAct φ (glue u c) = glue (φ u) c := + congrArg (fun v => glue (φ v) c) (glue_up u c) + +/-- **Scalar identity of the forward word**: `y += x`, slots restored, for ARBITRARY slot +contents (the copies are erased before and after). -/ +theorem fwd_scalar (z : Box T Sl C → ℂ) : + eraseC (liveAct K.f2 (gateS bY bC K.Jr (gateS bC bS K.Cc (liveAct K.f1 (eraseC z))))) + = shearF z := by + have h1 : liveAct K.f1 (eraseC z) = glue (K.f1 (z ∘ upE)) (fun _ => 0) := by + rw [erase_glue z, liveAct_glue] + have hs : gateS bY bC K.Jr (gateS bC bS K.Cc (glue (K.f1 (z ∘ upE)) (fun _ => 0))) ∘ upE + = actPoint (scatM (K.Jr * K.Cc)) (K.f1 (z ∘ upE)) := by + have h := scat_glue K.Jr K.Cc (glue (K.f1 (z ∘ upE)) (fun _ => 0)) rfl + rw [glue_up] at h + exact h + rw [h1] + unfold liveAct + rw [erase_of_glue, hs, K.fwd_live, act_shear K.Mt K.hid] + exact glue_shearF z + +/-- **Scalar identity of the backward word**: `x -= y`, slots restored. -/ +theorem bwd_scalar (z : Box T Sl C → ℂ) : + eraseC (liveAct K.b2 (gateS bS bC (-K.Ccᵀ) (gateS bC bY K.Jrᵀ (liveAct K.b1 (eraseC z))))) + = shearB z := by + have h1 : liveAct K.b1 (eraseC z) = glue (K.b1 (z ∘ upE)) (fun _ => 0) := by + rw [erase_glue z, liveAct_glue] + have hs : gateS bS bC (-K.Ccᵀ) (gateS bC bY K.Jrᵀ (glue (K.b1 (z ∘ upE)) (fun _ => 0))) ∘ upE + = actPoint ((scatMi (K.Jr * K.Cc))ᵀ) (K.b1 (z ∘ upE)) := by + have h := scat_glueT K.Jr K.Cc (glue (K.b1 (z ∘ upE)) (fun _ => 0)) rfl + rw [glue_up] at h + exact h + rw [h1] + unfold liveAct + rw [erase_of_glue, hs, K.bwd_live, act_shearT K.Mt K.hid] + exact glue_shearB z + +end Scal +end Alg +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.Scal.fwd_scalar +#print axioms OAI.PowerSaving.GX.Scal.bwd_scalar diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__WinB.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__WinB.lean new file mode 100644 index 0000000000..951edde5cf --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__WinB.lean @@ -0,0 +1,132 @@ +import Work.GCert.Chain.Win +import Work.BridgeGeom.Stage + +/-! +# (key: gx-chain) THE WINDOW LIFT (spec statement 3): the windows of the bridged geometry + +For the block frame map `BG.fmapB hB hH d q` of a stage of the bridged word (label space +`LB B H = H ⊕ (B × H)`, old frame of the projector `P`: `PhiB d q P`) the stage-B frame map is +`BXMap.ofConj d q` (`U ↦ d (U ⊕ span q)`, arbitrary subspaces `U` of `H`). At a coordinate +subspace of an orthonormal basis `A` of `H` the two name the SAME subspace of the address space +(`insub_old_new`), so the old frame and the representative of any label of that subspace +differ by a free factor (`frame_core_free`, `rep_change`): `old_to_new`, `new_to_old`. + +`gwinB hB hH d q : GWin H (LB B H)` with `(gwinB hB hH d q).Xm = fmapB hB hH d q` (`rfl`). + +No `sorry`. +-/ + +set_option linter.unusedSectionVars false +set_option linter.unusedVariables false + +namespace OAI +namespace PowerSaving +namespace GX +open Binary Matrix Finset RAM SS CB RF BR BG GF +noncomputable section + +section +variable {B H : Type} [Fintype B] [DecidableEq B] [Fintype H] [DecidableEq H] + +lemma blkT_mulVec (A : OBase H) (z : Space (LB B H)) (k : LB B H) : + ((blkB B A)ᵀ *ᵥ z) k = Sum.elim (fun i => dot (A.v i) (fun j => z (Sum.inl j))) + (fun b => z (Sum.inr b)) k := by + cases k with + | inl i => + simp [blkB, Matrix.fromBlocks_transpose, Matrix.mulVec, dotProduct, Fintype.sum_sum_type, + cmat, dot] + | inr b => + simp [blkB, Matrix.fromBlocks_transpose, Matrix.mulVec, dotProduct, Fintype.sum_sum_type, + Matrix.one_apply] + +/-- coordinates of `y` in the basis `d (A ⊕ std)`. -/ +lemma dot_cols (d : Orth (LB B H)) (A : OBase H) (y : Space (LB B H)) (k : LB B H) : + dot ((ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A))).v k) y + = Sum.elim (fun i => dot (A.v i) (fun j => (d.1ᵀ *ᵥ y) (Sum.inl j))) + (fun b => (d.1ᵀ *ᵥ y) (Sum.inr b)) k := by + rw [← blkT_mulVec A (d.1ᵀ *ᵥ y) k, Matrix.mulVec_mulVec, ← Matrix.transpose_mul] + rfl + +/-- **the old frame and the lifted label name the same subspace of the address space.** -/ +theorem insub_old_new (d : Orth (LB B H)) (q : Finset (B × H)) (A : OBase H) (s : Finset H) + (U : SLbl H) (h : ∀ x, U.Mem x ↔ InSub (coordPerm A) s x) (y : Space (LB B H)) : + InSub (coordPerm (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A)))) (JB s q) y ↔ + InSub (conjPerm d.1 d.2 (Orth.orth' d) U.G) (U.s.disjSum q) y := by + rw [insub_conj, insub_coordPerm] + have hU := h (fun i => (d.1ᵀ *ᵥ y) (Sum.inl i)) + constructor + · intro hk + refine ⟨hU.mpr ((insub_coordPerm A s _).mpr (fun i hi => ?_)), fun b hb => ?_⟩ + · have h1 := hk (Sum.inl i) (fun hm => hi (Finset.inl_mem_disjSum.mp hm)) + rw [dot_cols] at h1 + exact h1 + · have h1 := hk (Sum.inr b) (fun hm => hb (Finset.inr_mem_disjSum.mp hm)) + rw [dot_cols] at h1 + exact h1 + · rintro ⟨h1, h2⟩ k hk + rw [dot_cols] + cases k with + | inl i => + exact (insub_coordPerm A s _).mp (hU.mp h1) i + (fun hm => hk (Finset.inl_mem_disjSum.mpr hm)) + | inr b => exact h2 b (fun hm => hk (Finset.inr_mem_disjSum.mpr hm)) + +/-- old frame of a coordinate subspace → representative of any label naming it: FREE. -/ +theorem old_to_new (d : Orth (LB B H)) (q : Finset (B × H)) (A : OBase H) (s : Finset H) + (U : SLbl H) (h : ∀ x, U.Mem x ↔ InSub (coordPerm A) s x) : + GReach (PhiB d q (A.mat s)) ((BXMap.ofConj d.1 d.2 (Orth.orth' d) q).Φ U) (fun _ => 0) := by + rw [PhiB_eq] + obtain ⟨N, hN, e⟩ := repChange (LB B H) _ _ _ _ (insub_old_new d q A s U h) + have a : GReach (frame (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A))) (JB s q)) + (core (coordPerm (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A)))) (JB s q)) + (fun φ => rcost φ []) := + GReach.ofReach (fmv_old_to_core _ _).reach + have b : GReach + (core (coordPerm (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A)))) (JB s q)) + (core (conjPerm d.1 d.2 (Orth.orth' d) U.G) (U.s.disjSum q)) (fun φ => rcost φ []) := + GReach.ofReach (fmv_of_free hN e).reach + exact (a.trans b).cast (fun φ => by simp [rcost]) + +/-- the same, backwards. -/ +theorem new_to_old (d : Orth (LB B H)) (q : Finset (B × H)) (A : OBase H) (s : Finset H) + (U : SLbl H) (h : ∀ x, U.Mem x ↔ InSub (coordPerm A) s x) : + GReach ((BXMap.ofConj d.1 d.2 (Orth.orth' d) q).Φ U) (PhiB d q (A.mat s)) (fun _ => 0) := by + rw [PhiB_eq] + obtain ⟨N, hN, e⟩ := repChange (LB B H) _ _ _ _ + (fun y => (insub_old_new d q A s U h y).symm) + have a : GReach (core (conjPerm d.1 d.2 (Orth.orth' d) U.G) (U.s.disjSum q)) + (core (coordPerm (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A)))) (JB s q)) + (fun φ => rcost φ []) := + GReach.ofReach (fmv_of_free hN e).reach + have b : GReach + (core (coordPerm (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A)))) (JB s q)) + (frame (ofCols (d.1 * blkB B A) (mul_orth d.2 (blkB_orth A))) (JB s q)) + (fun φ => rcost φ []) := + GReach.ofReach (fmv_core_to_old _ _).reach + exact (a.trans b).cast (fun φ => by simp [rcost]) + +/-- **The window of a stage of the bridged geometry.** -/ +def gwinB (hB : 1 ≤ Fintype.card B) (hH : 1 ≤ Fintype.card H) (d : Orth (LB B H)) + (q : Finset (B × H)) : GWin H (LB B H) where + Xm := fmapB hB hH d q + X := BXMap.ofConj d.1 d.2 (Orth.orth' d) q + big := by + rw [card_LB] + have := Nat.mul_le_mul_right (Fintype.card H) (show 2 ≤ Fintype.card B + 1 by omega) + omega + toNew := fun A s U h => old_to_new d q A s U h + toOld := fun A s U h => new_to_old d q A s U h + +@[simp] lemma gwinB_Xm (hB : 1 ≤ Fintype.card B) (hH : 1 ≤ Fintype.card H) (d : Orth (LB B H)) + (q : Finset (B × H)) : (gwinB hB hH d q).Xm = fmapB hB hH d q := rfl + +end +end +end GX +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.GX.insub_old_new +#print axioms OAI.PowerSaving.GX.old_to_new +#print axioms OAI.PowerSaving.GX.new_to_old +#print axioms OAI.PowerSaving.GX.gwinB diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__B2Gp193Main.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__B2Gp193Main.lean new file mode 100644 index 0000000000..d7ecfebcea --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__B2Gp193Main.lean @@ -0,0 +1,33 @@ +import Work.GCert.Scalar.Main +import Work.GCert.Data.P193ScalOK +import Work.GCert.Data.B2Gp193 + +/-! +# (key: gx-data) Bridged word B_2 with the gcert/1 circuit `P193`: THE CLOSED THEOREMS +GENERATED by checks/wht26/gx-data/py/gxrate.py. No `sorry`. +`wht_B2Gp193_of_ids` (label half, price, unit list, rate fact, gx-chain's end theorem) applied to the scalar half +`GXD.P193.scalOK : GS.ScalOK GXD.P193.raw` (kernel checks `scal_ok`, `ychk_ok`; soundness: gx-scalar). +-/ + +namespace OAI +namespace PowerSaving +namespace WHT +open BlockWHT + +/-- **Walsh-Hadamard transform in `O(n (log n)^(1 - 74745/10^8))`-type time bounds: whole-block recursion on the bridged +word B_2 with the kernel-checked gcert/1 circuit `P193`.** -/ +theorem wht_main_B2Gp193 : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - 74745/(10:ℝ)^8) W := + wht_B2Gp193_of_ids GXD.P193.scalOK.hv GXD.P193.scalOK.hAi GXD.P193.scalOK.hBi GXD.P193.scalOK.hx GXD.P193.scalOK.hy GXD.P193.scalOK.hid + +/-- **Walsh-Hadamard transform in `O(n (log n)^(1 - 7474547/10^10))`-type time bounds: whole-block recursion on the bridged +word B_2 with the kernel-checked gcert/1 circuit `P193`.** -/ +theorem wht_main_B2Gp193x : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - 7474547/(10:ℝ)^10) W := + wht_B2Gp193x_of_ids GXD.P193.scalOK.hv GXD.P193.scalOK.hAi GXD.P193.scalOK.hBi GXD.P193.scalOK.hx GXD.P193.scalOK.hy GXD.P193.scalOK.hid + +end WHT +end PowerSaving +end OAI +#print axioms OAI.PowerSaving.WHT.wht_main_B2Gp193 +#print axioms OAI.PowerSaving.WHT.wht_main_B2Gp193x diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Glue.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Glue.lean new file mode 100644 index 0000000000..c6cbac38e3 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Glue.lean @@ -0,0 +1,97 @@ +import Work.GCert.Scalar.Roles +import Work.GCert.Labels.Main + +/-! +# (key: gx-data) Glue between the scalar half (gx-scalar) and the label half (gx-labels) + +For ANY `c : GXD.Raw` (nothing is evaluated here): + +* `roles` gx-scalar's numbering `GS.emb` / `GS.unemb` is gx-labels' `GLab.Roles`; +* `scalOf` gx-chain's record `GX.Scal (Fin v) (Fin R) (Fin ret.length)` from the FIVE scalar + identities of the matrices `GS.MA`, `GS.MAi`, `GS.MB`, `GS.MBi`, `GS.Jrm`, `GS.Ccm`; +* `scalOf_MA .. scalOf_MBi` its gate matrices are the ordered products of the adds of `c`, in + the form asked by `GLab.Valid.lab` (`GLab.mic GS.toCoef`); +* `reg`, `reg_slot`, `reg_mem` copy `k` reads the retained register `(c.ret.getD k (0,0)).1`. + +So a generated instance needs from the scalar side exactly `hAi hBi hx hy hid` (see +`wht__of_ids` in `Work/GCert/Data/.lean`). No `sorry`. +-/ + +namespace GXD +open SSC OAI.PowerSaving OAI.PowerSaving.CR Matrix + +/-- the numbering of the roles: `x_t = t`, `y_t = v + t`, slot `q = 2 v + q` -/ +theorem roles (c : Raw) (hv : 0 < c.v) : GLab.Roles c.v c.R (GS.emb c) (GS.unemb c hv) where + hun := GS.unemb_emb hv + hin := GS.emb_unemb hv + hlt := fun q => by + rcases q with (t | S) | q + · have := t.isLt; show t.val < 2 * c.v + c.R; omega + · have := S.isLt; show c.v + S.val < 2 * c.v + c.R; omega + · have := q.isLt; show 2 * c.v + q.val < 2 * c.v + c.R; omega + eX := fun _ => rfl + eY := fun _ => rfl + eS := fun _ => rfl + +/-- **the scalar half as gx-chain's record**, from the five scalar identities -/ +noncomputable def scalOf (c : Raw) (hv : 0 < c.v) + (hAi : GS.MAi c hv * GS.MA c hv = 1) (hBi : GS.MBi c hv * GS.MB c hv = 1) + (hx : ∀ (t : Fin c.v) (j : GS.Rl c), (GS.MB c hv * scatM (GS.Jrm c * GS.Ccm c) * GS.MA c hv) + (lX t) j = if lX t = j then 1 else 0) + (hy : ∀ (i : GS.Rl c) (t : Fin c.v), (GS.MB c hv * scatM (GS.Jrm c * GS.Ccm c) * GS.MA c hv) + i (lY t) = if i = lY t then 1 else 0) + (hid : ∀ S t : Fin c.v, (GS.MB c hv * scatM (GS.Jrm c * GS.Ccm c) * GS.MA c hv) + (lY S) (lX t) = if S = t then 1 else 0) : + GX.Scal (Fin c.v) (Fin c.R) (Fin c.ret.length) where + Cc := GS.Ccm c + Jr := GS.Jrm c + MA := GS.MA c hv + MAi := GS.MAi c hv + MB := GS.MB c hv + MBi := GS.MBi c hv + hAi := hAi + hBi := hBi + hx := hx + hy := hy + hid := hid + +section +variable (c : Raw) (hv : 0 < c.v) (hAi) (hBi) (hx) (hy) (hid) + +theorem scalOf_MA : (scalOf c hv hAi hBi hx hy hid).MA + = matP (GS.unemb c hv) (GLab.mic GS.toCoef (c.gatesA.flatMap Gate.adds)) := rfl + +theorem scalOf_MAi : (scalOf c hv hAi hBi hx hy hid).MAi + = matPinv (GS.unemb c hv) (GLab.mic GS.toCoef (c.gatesA.flatMap Gate.adds)) := rfl + +theorem scalOf_MB : (scalOf c hv hAi hBi hx hy hid).MB + = matP (GS.unemb c hv) (GLab.mic GS.toCoef (c.gatesB.flatMap Gate.adds)) := rfl + +theorem scalOf_MBi : (scalOf c hv hAi hBi hx hy hid).MBi + = matPinv (GS.unemb c hv) (GLab.mic GS.toCoef (c.gatesB.flatMap Gate.adds)) := rfl + +end + +/-- the register read by copy `k` (the slot of the retained total `k`) -/ +def reg (c : Raw) (k : Fin c.ret.length) : Nat := (c.ret.getD k.val (0, 0)).1 + +theorem reg_slot (c : Raw) (hv : 0 < c.v) (hAi) (hBi) (hx) (hy) (hid) (k : Fin c.ret.length) + (q : Fin c.R) (h : (scalOf c hv hAi hBi hx hy hid).Cc k q ≠ 0) : + reg c k = 2 * c.v + q.val := by + have h' : (if 2 * c.v + q.val = (c.ret.getD k.val (0, 0)).1 then (1:ℚ) else 0) ≠ 0 := h + by_cases e : 2 * c.v + q.val = (c.ret.getD k.val (0, 0)).1 + · exact e.symm + · rw [if_neg e] at h'; exact absurd rfl h' + +theorem reg_mem (c : Raw) (k : Fin c.ret.length) : reg c k ∈ c.ret.map Prod.fst := by + unfold reg + rw [List.getD_eq_getElem _ _ k.isLt] + exact List.mem_map.mpr ⟨_, List.getElem_mem k.isLt, rfl⟩ + +end GXD + +#print axioms GXD.roles +#print axioms GXD.scalOf +#print axioms GXD.scalOf_MA +#print axioms GXD.reg_slot +#print axioms GXD.reg_mem diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__InstB2Gp193.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__InstB2Gp193.lean new file mode 100644 index 0000000000..9b9925ce26 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__InstB2Gp193.lean @@ -0,0 +1,55 @@ +import Work.BridgeGeom.B2 +import Work.FoldRate.Group +import Work.GCert.Data.RateB2Gp193 +import Work.GCert.Data.RateB2Gp193x + +/-! +# (key: gx-data) Bridged word B_2 with the gcert/1 circuit `P193`, h = 22: the unit price is the price of the block list + +GENERATED by checks/wht26/gx-data/py/gxrate.py. No `sorry`. Arithmetic only (no certificate is imported). + +One unit: `W = 14692` live roles (`4 v + R`, `v = 1320`, `R = 9412`), label dimension `m = 110`, deficit `D = 3080`. +`invPrice φ` = the price of the blocks of ONE invocation (the kernel-counted list `GXD.P193.hist`, by rank); +`unitPrice φ = 5 * invPrice φ + v * BG.bankPrice h φ = listCost φ BlockAccounting.blocksB2Gp193` (`unit_cost`). +Whole-block `1 - 74745/10^8` (fails at 74746), ten decimals `1 - 7474547/10^10` (fails at 7474550). +-/ + +namespace OAI +namespace PowerSaving +namespace BridgeRate +namespace B2Gp193 +open Finset Binary Matrix RAM CB FoldRate +noncomputable section + +/-- price of the blocks of ONE invocation of `P193` (all roles and scratch copies), by rank -/ +def invPrice (φ : ℕ → ℝ) : ℝ := 29178 * φ 1 + 12398 * φ 2 + 9923 * φ 3 + 4209 * φ 4 + 1950 * φ 5 + 1605 * φ 6 + 706 * φ 7 + 1531 * φ 8 + 429 * φ 9 + 930 * φ 10 + 354 * φ 11 + 1197 * φ 12 + 127 * φ 13 + 742 * φ 14 + 1879 * φ 15 + 88 * φ 16 + 81 * φ 17 + 2653 * φ 18 + 167 * φ 19 + 22 * φ 20 + +/-- price of ONE unit of the bridged word B_2 -/ +def unitPrice (φ : ℕ → ℝ) : ℝ := 5 * invPrice φ + ((1320:ℕ):ℝ) * BG.bankPrice 22 φ + +/-- **The unit price is the price of the unit block list.** -/ +theorem unit_cost (φ : ℕ → ℝ) : unitPrice φ = listCost φ BlockAccounting.blocksB2Gp193 := by + unfold unitPrice invPrice + simp only [BG.bankPrice, listCost, BlockAccounting.blocksB2Gp193, List.map_cons, List.map_nil, + List.sum_cons, List.sum_nil] + norm_num [bcost] + try ring + +theorem blocks_x : BlockAccounting.blocksB2Gp193 = BlockAccounting.blocksB2Gp193x := rfl + +theorem unit_cost_x (φ : ℕ → ℝ) : unitPrice φ = listCost φ BlockAccounting.blocksB2Gp193x := by + rw [unit_cost, blocks_x] + +/-- one unit stands for `W * m - D` unit moves -/ +theorem unit_tally : unitPrice (fun r => (r:ℝ)) = ((14692:ℕ):ℝ) * ((110:ℕ):ℝ) - ((3080:ℕ):ℝ) := by + rw [unit_cost] + exact BlockAccounting.blocksB2Gp193_tally + +end +end B2Gp193 +end BridgeRate +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.BridgeRate.B2Gp193.unit_cost +#print axioms OAI.PowerSaving.BridgeRate.B2Gp193.unit_tally diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Cert.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Cert.lean new file mode 100644 index 0000000000..3c3250279e --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Cert.lean @@ -0,0 +1,81 @@ +import Work.GCert.Labels.Main +import Work.GCert.Data.P193Price +import Work.GCert.Data.Gen.P193Tab0 +import Work.GCert.Data.Gen.P193Tab1 +import Work.GCert.Data.Gen.P193Tab2 +import Work.GCert.Data.Gen.P193Tab3 +import Work.GCert.Data.Gen.P193Seg0 +import Work.GCert.Data.Gen.P193Seg1 +import Work.GCert.Data.Gen.P193Seg2 +import Work.GCert.Data.Gen.P193Seg3 +import Work.GCert.Data.Gen.P193Seg4 +import Work.GCert.Data.Gen.P193SegF +import Work.GCert.Data.Gen.P193End +/-! # (key: gx-data) gcert/1 certificate `P193` (h = 22): THE LABEL HALF and its price +GENERATED by checks/wht26/gx-data/py/gxgen.py from gcert1-p11-pr193.json.gz. No `sorry`. +`v = 1320` ports, `R = 9412` slots, 22 scratch copies of rank 20, copy cost `cst = 440`, `N = 262944` unit moves. +* `aux : GLab.Aux`, `valid : GLab.Valid raw aux`: frame table (`tab_ok` composed by `tabK_node`), the replays of phase A + and phase B (`seg_ok` composed by `Run.append`), the final climbs (`segF_ok`, `fin_ok`), the ends (`end_ok`); +* `lab_cost`, `lab_price`: for ANY scalar half `S` the label half `valid.lab S ..` costs + `rcost rA + card C * bcost 20 + rcost rB + rcost rF` = `invPrice φ` = 29178 * φ 1 + 12398 * φ 2 + 9923 * φ 3 + 4209 * φ 4 + 1950 * φ 5 + 1605 * φ 6 + 706 * φ 7 + 1531 * φ 8 + 429 * φ 9 + 930 * φ 10 + 354 * φ 11 + 1197 * φ 12 + 127 * φ 13 + 742 * φ 14 + 1879 * φ 15 + 88 * φ 16 + 81 * φ 17 + 2653 * φ 18 + 167 * φ 19 + 22 * φ 20 + (`Gen.P193Hist`, `P193Price`) when there are 22 copies. -/ +set_option maxRecDepth 100000 +namespace GXD.P193 +open GXD OAI.PowerSaving OAI.PowerSaving.CB +theorem raw_h : raw.h = 22 := rfl +theorem raw_v : raw.v = 1320 := rfl +theorem raw_R : raw.R = 9412 := rfl +/-- what the label checks read next to `raw` -/ +noncomputable def aux : GLab.Aux := ⟨par, st0, st2, st5, st6, fins, rA, rB, rF⟩ +theorem fin_ok : GLab.noAdds fins = true := by decide +kernel +theorem cen_ok : (raw.ret.map Prod.fst).all (fun r => Nat.beq (GLab.cdim (par.tab.get (st2.get r))) 20) = true := by + decide +kernel +theorem tab_ok : GLab.tabK par.h par.tab = true := (GLab.tabK_node _ _ _ (GLab.tabK_node _ _ _ tab0_ok tab1_ok) (GLab.tabK_node _ _ _ tab2_ok tab3_ok)) +theorem gatesA_eq : raw.gatesA = seg0 ++ (seg1) := by + show List.flatten [seg0, seg1] = _ + simp only [List.flatten_cons, List.flatten_nil, List.append_nil] +/-- the replay of phase A, composed from its kernel-checked segments -/ +theorem runA : GLab.Run par st0 raw.gatesA st2 rA := by + rw [gatesA_eq] + exact GLab.Run.append (GLab.Run.of_seg seg0_ok) (GLab.Run.of_seg seg1_ok) +theorem gatesB_eq : raw.gatesB = seg2 ++ (seg3 ++ (seg4)) := by + show List.flatten [seg2, seg3, seg4] = _ + simp only [List.flatten_cons, List.flatten_nil, List.append_nil] +/-- the replay of phase B, composed from its kernel-checked segments -/ +theorem runB : GLab.Run par st2 raw.gatesB st5 rB := by + rw [gatesB_eq] + exact GLab.Run.append (GLab.Run.of_seg seg2_ok) (GLab.Run.append (GLab.Run.of_seg seg3_ok) (GLab.Run.of_seg seg4_ok)) +/-- **the kernel-checked label facts** of the certificate -/ +theorem valid : GLab.Valid raw aux where + hn := rfl + tab := tab_ok + runA := runA + runB := runB + runF := GLab.Run.of_seg segF_ok + fin := fin_ok + ends := end_ok +theorem cen_dim (r : Nat) (hr : r ∈ raw.ret.map Prod.fst) : GLab.cdim (par.tab.get (st2.get r)) = 20 := + Nat.eq_of_beq_eq_true (List.all_eq_true.mp cen_ok r hr) +/-- price of the label half over ANY scalar half -/ +theorem lab_cost {C : Type} [Fintype C] [DecidableEq C] (S : GX.Scal (Fin raw.v) (Fin raw.R) C) + {emb : CR.L3 (Fin raw.v) (Fin raw.R) → Nat} {un : Nat → CR.L3 (Fin raw.v) (Fin raw.R)} + (Ro : GLab.Roles raw.v raw.R emb un) (cf : Co → SSC.Coef) (hMA) (hMAi) (hMB) (hMBi) + (reg : C → Nat) (hCc) (hreg) (φ : ℕ → ℝ) : + (valid.lab S Ro cf hMA hMAi hMB hMBi reg hCc hreg).cost φ + = rcost φ rA + (Fintype.card C : ℝ) * bcost φ 20 + rcost φ rB + rcost φ rF := by + obtain ⟨h1, h2, h3, h4⟩ := valid.lab_ranks S Ro cf hMA hMAi hMB hMBi reg hCc hreg + have h5 : ∀ k, bcost φ (((valid.lab S Ro cf hMA hMAi hMB hMBi reg hCc hreg).cen k).dim) = bcost φ 20 := + fun k => by rw [h4 k]; exact congrArg (bcost φ) (cen_dim _ (hreg k)) + rw [GX.Lab.cost, h1, h2, h3, Finset.sum_congr rfl (fun k _ => h5 k), Finset.sum_const, Finset.card_univ, nsmul_eq_mul] + rfl +/-- **the label half costs one invocation price** (`invPrice`, by rank, from the kernel counts) -/ +theorem lab_price {C : Type} [Fintype C] [DecidableEq C] (S : GX.Scal (Fin raw.v) (Fin raw.R) C) + {emb : CR.L3 (Fin raw.v) (Fin raw.R) → Nat} {un : Nat → CR.L3 (Fin raw.v) (Fin raw.R)} + (Ro : GLab.Roles raw.v raw.R emb un) (cf : Co → SSC.Coef) (hMA) (hMAi) (hMB) (hMBi) + (reg : C → Nat) (hCc) (hreg) (hC : Fintype.card C = 22) (φ : ℕ → ℝ) : + (valid.lab S Ro cf hMA hMAi hMB hMBi reg hCc hreg).cost φ = invPrice φ := by + rw [lab_cost S Ro cf hMA hMAi hMB hMBi reg hCc hreg φ, hC, ← inv_cost φ] + norm_num [bcost] +end GXD.P193 +#print axioms GXD.P193.valid +#print axioms GXD.P193.lab_price diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Price.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Price.lean new file mode 100644 index 0000000000..eeed011d64 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Price.lean @@ -0,0 +1,54 @@ +import Work.GCert.Data.Price +import Work.GCert.Data.Gen.P193Hist + +/-! +# (key: gx-data) gcert/1 certificate `P193` (h = 22): the price of one invocation + +GENERATED by checks/wht26/gx-data/py/gxgen.py from gcert1-p11-pr193.json.gz. No `sorry`. +`rA_cost`, `rB_cost`, `rF_cost`: the price of the block rank lists of phase A, phase B and the final climbs +(lists `GXD.P193.rA / rB / rF`, counted by the kernel in `Gen.P193Hist`); +`inv_cost`: with the 22 scratch copies (22 * φ 20) the blocks of ONE invocation cost +`invPrice φ` = 29178 * φ 1 + 12398 * φ 2 + 9923 * φ 3 + 4209 * φ 4 + 1950 * φ 5 + 1605 * φ 6 + 706 * φ 7 + 1531 * φ 8 + 429 * φ 9 + 930 * φ 10 + 354 * φ 11 + 1197 * φ 12 + 127 * φ 13 + 742 * φ 14 + 1879 * φ 15 + 88 * φ 16 + 81 * φ 17 + 2653 * φ 18 + 167 * φ 19 + 22 * φ 20; `inv_moves`: they stand for `R h + 2 v (h - 1) + cst = 262944` unit moves. +-/ + +namespace GXD.P193 +open GXD OAI.PowerSaving.CB + +/-- price of the blocks of phase A, from the kernel counts -/ +theorem rA_cost (φ : ℕ → ℝ) : rcost φ rA = 9900 * φ 1 + 500 * φ 2 + 2402 * φ 3 + 82 * φ 4 + 242 * φ 5 + 175 * φ 6 + 88 * φ 7 + 68 * φ 8 + 110 * φ 9 + 132 * φ 10 + 10 * φ 11 + 67 * φ 12 + 3 * φ 13 + 19 * φ 15 := by + rw [GXD.rcost_wsumK φ rA 19 rankBoundA] + simp only [Finset.sum_range_succ, Finset.sum_range_zero, rankA0_ok, rankA1_ok, rankA2_ok, rankA3_ok, rankA4_ok, rankA5_ok, rankA6_ok, rankA7_ok, rankA8_ok, rankA9_ok, rankA10_ok, rankA11_ok, rankA12_ok, rankA13_ok, rankA14_ok, rankA15_ok, rankA16_ok, rankA17_ok, rankA18_ok, rankA19_ok] + norm_num [bcost] + +/-- price of the blocks of phase B, from the kernel counts -/ +theorem rB_cost (φ : ℕ → ℝ) : rcost φ rB = 16638 * φ 1 + 10380 * φ 2 + 4111 * φ 3 + 3476 * φ 4 + 1531 * φ 5 + 1137 * φ 6 + 531 * φ 7 + 1346 * φ 8 + 293 * φ 9 + 629 * φ 10 + 343 * φ 11 + 1067 * φ 12 + 123 * φ 13 + 712 * φ 14 + 1860 * φ 15 + 81 * φ 16 + 39 * φ 17 + 2640 * φ 18 := by + rw [GXD.rcost_wsumK φ rB 19 rankBoundB] + simp only [Finset.sum_range_succ, Finset.sum_range_zero, rankB0_ok, rankB1_ok, rankB2_ok, rankB3_ok, rankB4_ok, rankB5_ok, rankB6_ok, rankB7_ok, rankB8_ok, rankB9_ok, rankB10_ok, rankB11_ok, rankB12_ok, rankB13_ok, rankB14_ok, rankB15_ok, rankB16_ok, rankB17_ok, rankB18_ok, rankB19_ok] + norm_num [bcost] + +/-- price of the blocks of the final climbs, from the kernel counts -/ +theorem rF_cost (φ : ℕ → ℝ) : rcost φ rF = 2640 * φ 1 + 1518 * φ 2 + 3410 * φ 3 + 651 * φ 4 + 177 * φ 5 + 293 * φ 6 + 87 * φ 7 + 117 * φ 8 + 26 * φ 9 + 169 * φ 10 + 1 * φ 11 + 63 * φ 12 + 1 * φ 13 + 30 * φ 14 + 7 * φ 16 + 42 * φ 17 + 13 * φ 18 + 167 * φ 19 := by + rw [GXD.rcost_wsumK φ rF 19 rankBoundF] + simp only [Finset.sum_range_succ, Finset.sum_range_zero, rankF0_ok, rankF1_ok, rankF2_ok, rankF3_ok, rankF4_ok, rankF5_ok, rankF6_ok, rankF7_ok, rankF8_ok, rankF9_ok, rankF10_ok, rankF11_ok, rankF12_ok, rankF13_ok, rankF14_ok, rankF15_ok, rankF16_ok, rankF17_ok, rankF18_ok, rankF19_ok] + norm_num [bcost] + +/-- price of the blocks of ONE invocation (x roles, y roles, slots, scratch copies), by rank -/ +def invPrice (φ : ℕ → ℝ) : ℝ := 29178 * φ 1 + 12398 * φ 2 + 9923 * φ 3 + 4209 * φ 4 + 1950 * φ 5 + 1605 * φ 6 + 706 * φ 7 + 1531 * φ 8 + 429 * φ 9 + 930 * φ 10 + 354 * φ 11 + 1197 * φ 12 + 127 * φ 13 + 742 * φ 14 + 1879 * φ 15 + 88 * φ 16 + 81 * φ 17 + 2653 * φ 18 + 167 * φ 19 + 22 * φ 20 + +/-- **Price of ONE invocation** in the shape of `GX.Lab.cost`: phase A, the scratch copies, phase B, final climbs. -/ +theorem inv_cost (φ : ℕ → ℝ) : rcost φ rA + (22 * φ 20) + rcost φ rB + rcost φ rF = invPrice φ := by + rw [rA_cost, rB_cost, rF_cost] + unfold invPrice + ring + +theorem inv_moves : invPrice (fun r => (r:ℝ)) = 9412 * 22 + 2 * 1320 * (22 - 1) + 440 := by + unfold invPrice + norm_num + +theorem inv_count : invPrice (fun _ => (1:ℝ)) = 70169 := by + unfold invPrice + norm_num + +end GXD.P193 +#print axioms GXD.P193.inv_cost +#print axioms GXD.P193.inv_moves diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193ScalOK.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193ScalOK.lean new file mode 100644 index 0000000000..3539192ac1 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193ScalOK.lean @@ -0,0 +1,17 @@ +import Work.GCert.Scalar.Main +import Work.GCert.Data.Gen.P193Scal0 +import Work.GCert.Data.Gen.P193Scal1 +import Work.GCert.Data.Gen.P193YChk +/-! # (key: gx-data) gcert/1 certificate `P193` (h = 22): THE SCALAR HALF `scalOK : GS.ScalOK raw` +GENERATED by checks/wht26/gx-data/py/gxgen.py from gcert1-p11-pr193.json.gz. No `sorry`. +Kernel checks `scal_ok` (2 source batches) and `ychk_ok`. -/ +namespace GXD.P193 +open GXD +theorem scalOK : GS.ScalOK raw where + hv := by decide + hs := fun t ht => + if h0 : t < 660 then ⟨0, 660, Nat.zero_le t, h0, GS.XRun.of_check scal0_ok⟩ else + ⟨660, 660, Nat.le_of_not_lt h0, Nat.lt_of_lt_of_le ht (by decide), GS.XRun.of_check scal1_ok⟩ + hyc := fun t ht => ⟨0, 1320, Nat.zero_le t, Nat.lt_of_lt_of_le ht (by decide), GS.YRun.of_check ychk_ok⟩ +end GXD.P193 +#print axioms GXD.P193.scalOK diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__RateB2Gp193x.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__RateB2Gp193x.lean new file mode 100644 index 0000000000..df563cde73 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__RateB2Gp193x.lean @@ -0,0 +1,327 @@ +import Work.BlockAccounting.Moment +import Work.BlockAccounting.Sharp +import Work.FoldRate.RankTools + +/-! +# (key: gx-data) Rate lemmas for one unit of the bridged word B_2 with the gcert/1 circuit `P193` (h = 22) + +GENERATED by checks/wht26/gx-data/py/gxrate.py with the text generators of checks/wht9/bridge-rate/py +(used read-only). No `sorry`. Arithmetic only. + +One unit: `W = 14692` live roles, label dimension `m = 110`, deficit `D = 3080`. + +* `blocksB2Gp193x` the block list (rank, count) of ONE unit; +* `fold_B2Gp193x` whole-block fact at `1 - 7474547/10^10`, fill parameter `s = 40` (slack 2.37e-12); +* `fold_B2Gp193x_sharp` `W ≤ moment` at `1 - 7474550/10^10`: fails for every table (excess 1.40e-10); +* `foldRank_B2Gp193x` per-rank fact at `1 - 4058344/10^10`, `s = 40` (slack 1.10e-07); +* `foldRank_B2Gp193x_sharp` per-rank: fails for every table at `1 - 4058349/10^10`. + +That a Lean word has `G` times this list as its block histogram is NOT proved here. +-/ + +set_option maxRecDepth 4000 + +namespace OAI.PowerSaving.BlockAccounting +open Finset + +/-- Block list `(rank, count)` of ONE unit of the bridged five-stage word B_2 with the gcert/1 circuit `P193` (h = 22, m = 110): five invocations (ALL blocks of one invocation: x roles, y roles, slots, scratch copies; the kernel-counted list `GXD.P193.hist`), and for each of the v = 1320 ports the idle climbs of its two twins (2 blocks each of rank h-1, 2h-2, 2h+2, 4); R = 9412 slots shared by the five stages. -/ +def blocksB2Gp193x : List (ℕ × ℕ) := [(1, 145890), (2, 61990), (3, 49615), (4, 23685), (5, 9750), (6, 8025), (7, 3530), (8, 7655), (9, 2145), (10, 4650), (11, 1770), (12, 5985), (13, 635), (14, 3710), (15, 9395), (16, 440), (17, 405), (18, 13265), (19, 835), (20, 110), (21, 2640), (42, 2640), (46, 2640)] + +/-- total rank of one unit (= number of unit moves it stands for): `W * m - D` -/ +theorem blocksB2Gp193x_rank : (blocksB2Gp193x.map fun b => b.1 * b.2).sum = 14692 * 110 - 3080 := by + norm_num [blocksB2Gp193x] + +/-- the same as a price: the unit list at the price list `r ↦ r` (shape of `hPid` in `RAM.engine_program_group_perRank`) -/ +theorem blocksB2Gp193x_tally : (blocksB2Gp193x.map fun b => (b.2:ℝ) * ((b.1:ℕ):ℝ)).sum = ((14692:ℕ):ℝ) * ((110:ℕ):ℝ) - ((3080:ℕ):ℝ) := by + norm_num [blocksB2Gp193x] + +theorem blocksB2Gp193x_count : (blocksB2Gp193x.map fun b => b.2).sum = 361405 := by + norm_num [blocksB2Gp193x] + +theorem blocksB2Gp193x_proper : ∀ b ∈ blocksB2Gp193x, 1 ≤ b.1 ∧ b.1 < 110 := by + decide + +/-- **whole-block fact** of `blocksB2Gp193x` at exponent `1 - 7474547/10^10`, fill parameter `s = 40`: the hypothesis `hnum` of `RAM.engine_program_group_list` (u = 110, W = 14692). Relative slack of the rational certificate: 2.37e-12. -/ +theorem fold_B2Gp193x : + ((2:ℝ)^40 - 1) * moment 110 (1 - 7474547/(10:ℝ)^10) blocksB2Gp193x + + ((14692:ℕ):ℝ) * (T 110 (1 - 7474547/(10:ℝ)^10) (110 - 1) 1 + T 110 (1 - 7474547/(10:ℝ)^10) 1 1) + < (2:ℝ)^40 * ((14692:ℕ):ℝ) := by + have hsum : moment 110 (1 - 7474547/(10:ℝ)^10) blocksB2Gp193x + = T 110 (1 - 7474547/(10:ℝ)^10) 1 145890 + (T 110 (1 - 7474547/(10:ℝ)^10) 2 61990 + (T 110 (1 - 7474547/(10:ℝ)^10) 3 49615 + (T 110 (1 - 7474547/(10:ℝ)^10) 4 23685 + (T 110 (1 - 7474547/(10:ℝ)^10) 5 9750 + (T 110 (1 - 7474547/(10:ℝ)^10) 6 8025 + (T 110 (1 - 7474547/(10:ℝ)^10) 7 3530 + (T 110 (1 - 7474547/(10:ℝ)^10) 8 7655 + (T 110 (1 - 7474547/(10:ℝ)^10) 9 2145 + (T 110 (1 - 7474547/(10:ℝ)^10) 10 4650 + (T 110 (1 - 7474547/(10:ℝ)^10) 11 1770 + (T 110 (1 - 7474547/(10:ℝ)^10) 12 5985 + (T 110 (1 - 7474547/(10:ℝ)^10) 13 635 + (T 110 (1 - 7474547/(10:ℝ)^10) 14 3710 + (T 110 (1 - 7474547/(10:ℝ)^10) 15 9395 + (T 110 (1 - 7474547/(10:ℝ)^10) 16 440 + (T 110 (1 - 7474547/(10:ℝ)^10) 17 405 + (T 110 (1 - 7474547/(10:ℝ)^10) 18 13265 + (T 110 (1 - 7474547/(10:ℝ)^10) 19 835 + (T 110 (1 - 7474547/(10:ℝ)^10) 20 110 + (T 110 (1 - 7474547/(10:ℝ)^10) 21 2640 + (T 110 (1 - 7474547/(10:ℝ)^10) 42 2640 + (T 110 (1 - 7474547/(10:ℝ)^10) 46 2640 + 0)))))))))))))))))))))) := rfl + have b0 : T 110 (1 - 7474547/(10:ℝ)^10) 1 145890 ≤ ((16636758090767:ℝ)/12500000000) := + term_le 110 1 145890 (7474547/(10:ℝ)^10) ((2350240182897:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 27 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b1 : T 110 (1 - 7474547/(10:ℝ)^10) 2 61990 ≤ ((22609438945563:ℝ)/20000000000) := + term_le 110 2 61990 (7474547/(10:ℝ)^10) ((2003666592617:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 26 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b2 : T 110 (1 - 7474547/(10:ℝ)^10) 3 49615 ≤ ((135678423202471:ℝ)/100000000000) := + term_le 110 3 49615 (7474547/(10:ℝ)^10) ((1800934038563:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 24 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b3 : T 110 (1 - 7474547/(10:ℝ)^10) 4 23685 ≤ ((43170446048157:ℝ)/50000000000) := + term_le 110 4 23685 (7474547/(10:ℝ)^10) ((1657093002337:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 24 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b4 : T 110 (1 - 7474547/(10:ℝ)^10) 5 9750 ≤ ((44420693582197:ℝ)/100000000000) := + term_le 110 5 9750 (7474547/(10:ℝ)^10) ((38638030667:ℝ)/12500000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 23 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b5 : T 110 (1 - 7474547/(10:ℝ)^10) 6 8025 ≤ ((43867998737293:ℝ)/100000000000) := + term_le 110 6 8025 (7474547/(10:ℝ)^10) ((1454360448283:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 22 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b6 : T 110 (1 - 7474547/(10:ℝ)^10) 7 3530 ≤ ((2250993477097:ℝ)/10000000000) := + term_le 110 7 3530 (7474547/(10:ℝ)^10) ((2754570216739:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 22 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b7 : T 110 (1 - 7474547/(10:ℝ)^10) 8 7655 ≤ ((55781903078171:ℝ)/100000000000) := + term_le 110 8 7655 (7474547/(10:ℝ)^10) ((1310519412057:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 21 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b8 : T 110 (1 - 7474547/(10:ℝ)^10) 9 2145 ≤ ((17582868029823:ℝ)/100000000000) := + term_le 110 9 2145 (7474547/(10:ℝ)^10) ((1251627894229:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 21 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b9 : T 110 (1 - 7474547/(10:ℝ)^10) 10 4650 ≤ ((10587140349809:ℝ)/25000000000) := + term_le 110 10 4650 (7474547/(10:ℝ)^10) ((2997369091:ℝ)/1250000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 21 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b10 : T 110 (1 - 7474547/(10:ℝ)^10) 11 1770 ≤ ((17730489316207:ℝ)/100000000000) := + term_le 110 11 1770 (7474547/(10:ℝ)^10) ((575646273249:ℝ)/250000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 20 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b11 : T 110 (1 - 7474547/(10:ℝ)^10) 12 5985 ≤ ((65399123107589:ℝ)/100000000000) := + term_le 110 12 5985 (7474547/(10:ℝ)^10) ((1107786858003:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 20 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b12 : T 110 (1 - 7474547/(10:ℝ)^10) 13 635 ≤ ((3758266936203:ℝ)/50000000000) := + term_le 110 13 635 (7474547/(10:ℝ)^10) ((533882752083:ℝ)/250000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 20 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b13 : T 110 (1 - 7474547/(10:ℝ)^10) 14 3710 ≤ ((47290992642379:ℝ)/100000000000) := + term_le 110 14 3710 (7474547/(10:ℝ)^10) ((2061423036179:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 19 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b14 : T 110 (1 - 7474547/(10:ℝ)^10) 15 9395 ≤ ((128304571925681:ℝ)/100000000000) := + term_le 110 15 9395 (7474547/(10:ℝ)^10) ((498107541173:ℝ)/250000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 19 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b15 : T 110 (1 - 7474547/(10:ℝ)^10) 16 440 ≤ ((6409229123791:ℝ)/100000000000) := + term_le 110 16 440 (7474547/(10:ℝ)^10) ((963945821777:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 19 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b16 : T 110 (1 - 7474547/(10:ℝ)^10) 17 405 ≤ ((1253566561349:ℝ)/20000000000) := + term_le 110 17 405 (7474547/(10:ℝ)^10) ((933633510869:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 19 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b17 : T 110 (1 - 7474547/(10:ℝ)^10) 18 13265 ≤ ((217357516651669:ℝ)/100000000000) := + term_le 110 18 13265 (7474547/(10:ℝ)^10) ((905054303949:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 18 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b18 : T 110 (1 - 7474547/(10:ℝ)^10) 19 835 ≤ ((14441670418763:ℝ)/100000000000) := + term_le 110 19 835 (7474547/(10:ℝ)^10) ((1756041386627:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 18 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b19 : T 110 (1 - 7474547/(10:ℝ)^10) 20 110 ≤ ((2002550068509:ℝ)/100000000000) := + term_le 110 20 110 (7474547/(10:ℝ)^10) ((21309351153:ℝ)/12500000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 18 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b20 : T 110 (1 - 7474547/(10:ℝ)^10) 21 2640 ≤ ((25231210703361:ℝ)/50000000000) := + term_le 110 21 2640 (7474547/(10:ℝ)^10) ((165595792807:ℝ)/100000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 18 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b21 : T 110 (1 - 7474547/(10:ℝ)^10) 42 2640 ≤ ((100872567578631:ℝ)/100000000000) := + term_le 110 42 2640 (7474547/(10:ℝ)^10) ((962810747511:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 15 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b22 : T 110 (1 - 7474547/(10:ℝ)^10) 46 2640 ≤ ((22094393345401:ℝ)/20000000000) := + term_le 110 46 2640 (7474547/(10:ℝ)^10) ((174367793861:ℝ)/200000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 14 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b23 : T 110 (1 - 7474547/(10:ℝ)^10) 109 1 ≤ ((198183171:ℝ)/200000000) := + term_le 110 109 1 (7474547/(10:ℝ)^10) ((1826496713:ℝ)/200000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 5 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have b24 : T 110 (1 - 7474547/(10:ℝ)^10) 1 1 ≤ ((456145263:ℝ)/50000000000) := + term_le 110 1 1 (7474547/(10:ℝ)^10) ((2350240182897:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 27 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + have e1 : ((2:ℝ)^40 - 1) = 1099511627775 := by norm_num + have e2 : (2:ℝ)^40 = 1099511627776 := by norm_num + have e3 : ((14692:ℕ):ℝ) = 14692 := by norm_num + have e4 : T 110 (1 - 7474547/(10:ℝ)^10) (110 - 1) 1 = T 110 (1 - 7474547/(10:ℝ)^10) 109 1 := rfl + rw [e1, e2, e3, e4, hsum] + linarith + +/-- **sharpness**: at exponent `1 - 7474550/10^10` the moment of one unit is at least its number of live roles `14692`, so the moment criterion fails for EVERY table made of copies of the unit and idle roles (`FoldRate.block_fails`). Relative excess of the rational certificate: 1.40e-10. -/ +theorem fold_B2Gp193x_sharp : ((14692:ℕ):ℝ) ≤ moment 110 (1 - 7474550/(10:ℝ)^10) blocksB2Gp193x := by + have hsum : moment 110 (1 - 7474550/(10:ℝ)^10) blocksB2Gp193x + = T 110 (1 - 7474550/(10:ℝ)^10) 1 145890 + (T 110 (1 - 7474550/(10:ℝ)^10) 2 61990 + (T 110 (1 - 7474550/(10:ℝ)^10) 3 49615 + (T 110 (1 - 7474550/(10:ℝ)^10) 4 23685 + (T 110 (1 - 7474550/(10:ℝ)^10) 5 9750 + (T 110 (1 - 7474550/(10:ℝ)^10) 6 8025 + (T 110 (1 - 7474550/(10:ℝ)^10) 7 3530 + (T 110 (1 - 7474550/(10:ℝ)^10) 8 7655 + (T 110 (1 - 7474550/(10:ℝ)^10) 9 2145 + (T 110 (1 - 7474550/(10:ℝ)^10) 10 4650 + (T 110 (1 - 7474550/(10:ℝ)^10) 11 1770 + (T 110 (1 - 7474550/(10:ℝ)^10) 12 5985 + (T 110 (1 - 7474550/(10:ℝ)^10) 13 635 + (T 110 (1 - 7474550/(10:ℝ)^10) 14 3710 + (T 110 (1 - 7474550/(10:ℝ)^10) 15 9395 + (T 110 (1 - 7474550/(10:ℝ)^10) 16 440 + (T 110 (1 - 7474550/(10:ℝ)^10) 17 405 + (T 110 (1 - 7474550/(10:ℝ)^10) 18 13265 + (T 110 (1 - 7474550/(10:ℝ)^10) 19 835 + (T 110 (1 - 7474550/(10:ℝ)^10) 20 110 + (T 110 (1 - 7474550/(10:ℝ)^10) 21 2640 + (T 110 (1 - 7474550/(10:ℝ)^10) 42 2640 + (T 110 (1 - 7474550/(10:ℝ)^10) 46 2640 + 0)))))))))))))))))))))) := rfl + have c0 : ((665470322971:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 1 145890 := + term_ge 110 1 145890 (7474550/(10:ℝ)^10) ((4700480365791:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 4 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c1 : ((565235973477:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 2 61990 := + term_ge 110 2 61990 (7474550/(10:ℝ)^10) ((4007333185231:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 4 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c2 : ((1356784232023:ℝ)/1000000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 3 49615 := + term_ge 110 3 49615 (7474550/(10:ℝ)^10) ((3601868077123:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c3 : ((431704460547:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 4 23685 := + term_ge 110 4 23685 (7474550/(10:ℝ)^10) ((3314186004671:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c4 : ((44420693593:ℝ)/100000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 5 9750 := + term_ge 110 5 9750 (7474550/(10:ℝ)^10) ((3091042453357:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c5 : ((87735997501:ℝ)/200000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 6 8025 := + term_ge 110 6 8025 (7474550/(10:ℝ)^10) ((2908720896563:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c6 : ((112549673893:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 7 3530 := + term_ge 110 7 3530 (7474550/(10:ℝ)^10) ((86080319273:ℝ)/31250000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c7 : ((557819030987:ℝ)/1000000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 8 7655 := + term_ge 110 8 7655 (7474550/(10:ℝ)^10) ((2621038824111:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c8 : ((87914340183:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 9 2145 := + term_ge 110 9 2145 (7474550/(10:ℝ)^10) ((500651157691:ℝ)/200000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c9 : ((423485614161:ℝ)/1000000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 10 4650 := + term_ge 110 10 4650 (7474550/(10:ℝ)^10) ((2397895272797:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c10 : ((88652446617:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 11 1770 := + term_ge 110 11 1770 (7474550/(10:ℝ)^10) ((2302585092993:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c11 : ((130798246269:ℝ)/200000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 12 5985 := + term_ge 110 12 5985 (7474550/(10:ℝ)^10) ((2215573716003:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c12 : ((15033067751:ℝ)/200000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 13 635 := + term_ge 110 13 635 (7474550/(10:ℝ)^10) ((2135531008329:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c13 : ((23645496331:ℝ)/50000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 14 3710 := + term_ge 110 14 3710 (7474550/(10:ℝ)^10) ((128838939761:ℝ)/62500000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 3 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c14 : ((320761429947:ℝ)/250000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 15 9395 := + term_ge 110 15 9395 (7474550/(10:ℝ)^10) ((1992430164689:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 12 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c15 : ((1001442051:ℝ)/15625000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 16 440 := + term_ge 110 16 440 (7474550/(10:ℝ)^10) ((1927891643551:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c16 : ((62678328093:ℝ)/1000000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 17 405 := + term_ge 110 17 405 (7474550/(10:ℝ)^10) ((373453404347:ℝ)/200000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c17 : ((1086787583699:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 18 13265 := + term_ge 110 18 13265 (7474550/(10:ℝ)^10) ((362021721579:ℝ)/200000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c18 : ((28883340849:ℝ)/200000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 19 835 := + term_ge 110 19 835 (7474550/(10:ℝ)^10) ((13719073333:ℝ)/7812500000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c19 : ((20025500693:ℝ)/1000000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 20 110 := + term_ge 110 20 110 (7474550/(10:ℝ)^10) ((1704748092237:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c20 : ((63078026783:ℝ)/125000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 21 2640 := + term_ge 110 21 2640 (7474550/(10:ℝ)^10) ((1655957928067:ℝ)/1000000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 2 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c21 : ((126090709507:ℝ)/125000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 42 2640 := + term_ge 110 42 2640 (7474550/(10:ℝ)^10) ((240702686877:ℝ)/250000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 1 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have c22 : ((552359833771:ℝ)/500000000) ≤ T 110 (1 - 7474550/(10:ℝ)^10) 46 2640 := + term_ge 110 46 2640 (7474550/(10:ℝ)^10) ((435919484651:ℝ)/500000000000) _ (by norm_num) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 1 11 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) + have e3 : ((14692:ℕ):ℝ) = 14692 := by norm_num + rw [e3, hsum] + linarith + +/-- **per-rank fact** at exponent `1 - 4058344/10^10`, fill parameter `s = 40`: the hypothesis `hnum` of `RAM.engine_program_group_perRank` (u = 110, W = 14692, D = 3080). Relative slack: 1.10e-07. -/ +theorem foldRank_B2Gp193x : + (2:ℝ)^40 * ((14692:ℕ):ℝ) * (((110:ℕ):ℝ) - ((110:ℕ):ℝ)^(1 - 4058344/(10:ℝ)^10)) < ((2:ℝ)^40 - 1) * ((3080:ℕ):ℝ) := + FoldRate.rank_fact3 110 14692 3080 40 (4058344/(10:ℝ)^10) ((2350240182897:ℝ)/500000000000) (by norm_num) (by norm_num) (by norm_num) + (log_le_of_le_expsum _ _ 27 (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + +/-- **per-rank sharpness**: at exponent `1 - 4058349/10^10` the deficit of one unit is at most `W (m - m^z)`, so the per-rank inequality fails for EVERY table made of copies of the unit and idle roles (`FoldRate.rank_fails`). -/ +theorem foldRank_B2Gp193x_sharp : + ((3080:ℕ):ℝ) ≤ ((14692:ℕ):ℝ) * (((110:ℕ):ℝ) - ((110:ℕ):ℝ)^(1 - 4058349/(10:ℝ)^10)) := + FoldRate.rank_fact_sharp 110 14692 3080 (4058349/(10:ℝ)^10) ((4700480365791:ℝ)/1000000000000) (by norm_num) (by norm_num) (by norm_num) + (le_log_of_expbound _ _ 4 10 (by norm_num) (by norm_num) (by norm_num) + (by norm_num [Finset.sum_range_succ, Nat.factorial])) + (by norm_num) (by norm_num) + +end OAI.PowerSaving.BlockAccounting + +#print axioms OAI.PowerSaving.BlockAccounting.fold_B2Gp193x +#print axioms OAI.PowerSaving.BlockAccounting.fold_B2Gp193x_sharp +#print axioms OAI.PowerSaving.BlockAccounting.foldRank_B2Gp193x +#print axioms OAI.PowerSaving.BlockAccounting.foldRank_B2Gp193x_sharp diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Raw.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Raw.lean new file mode 100644 index 0000000000..499fa67e88 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Raw.lean @@ -0,0 +1,93 @@ +/-! +# (key: gx-data) Raw Lean form of a `gcert/1` file (EXTENDED-CERT-SPEC section 1) + +Core Lean only (no Mathlib): the generated data modules import nothing else, so they elaborate +cheaply. Field order and meaning are those of the JSON; `pairs` and `cuts` are DERIVED by the +generator (`checks/wht26/gx-data/py/gxgen.py`) and must be tested by the label check. + +Registers: `x_t = t`, `y_t = v + t`, slot `k = 2 v + k`. Vectors are bit masks. +-/ + +namespace GXD + +/-- the rational `(-1)^neg * num / den` (`den > 0`) -/ +structure Co where + neg : Bool + num : Nat + den : Nat + deriving DecidableEq, Repr + +/-- a gate: every register named (extras too) first moves to `frame`; then the adds happen in order -/ +inductive Gate where + /-- `tgt += co * src` for each `(tgt, co)` -/ + | out (frame src : Nat) (tgts : List (Nat × Co)) (extra : List Nat) + /-- `tgt += co * src` for each `(src, co)` -/ + | inn (frame tgt : Nat) (srcs : List (Nat × Co)) + deriving Repr + +/-- the scatter `y_t += sum over k of coef(t, k) * total k` -/ +inductive Scat where + /-- star rule: `inside` if coordinate `k` is in port `t`, else `outside` -/ + | star (inside outside : Co) + /-- explicit rows: row `t` = `[(total k, coef)]` -/ + | table (rows : List (List (Nat × Co))) + deriving Repr + +/-- a `gcert/1` file -/ +structure Raw where + h : Nat + v : Nat + R : Nat + N : Nat + cst : Nat + /-- `v` masks: the unit vectors of the ports -/ + ports : List Nat + /-- CHUNKED frame table (`flatten` = the table); an entry is a reduced echelon basis, leading bits descending -/ + frames : List (List (List Nat)) + /-- frame id per register at the start -/ + start : List Nat + /-- frame id per register at the end -/ + final : List Nat + /-- position `k` = retained total `k`: (slot REGISTER, frame id) -/ + ret : List (Nat × Nat) + scat : Scat + /-- CHUNKED gates before the scatter -/ + A : List (List Gate) + /-- CHUNKED gates after the scatter -/ + B : List (List Gate) + /-- CHUNKED, derived: the distinct climbs `(a, b)`, `a ≠ b`, in order of first use -/ + pairs : List (List (Nat × Nat)) + /-- derived: replay cut points `(gates of A ++ B before the cut, frame id per register there)` -/ + cuts : List (Nat × List Nat) + /-- slots that start off the zero frame `(slot REGISTER, frame id)` (rule 2); EMPTY on the path -/ + ext : List (Nat × Nat) + /-- derived (questions.md Q1): per port `h` masks, the first is the port, pairwise dots = delta + (an orthonormal basis of `F_2^h` through the port) -/ + obase : List (List Nat) + +/-- registers of a gate, in the order they are moved -/ +def Gate.regs : Gate → List Nat + | .out _ s ts ex => s :: (ts.map Prod.fst ++ ex) + | .inn _ t ss => t :: ss.map Prod.fst + +/-- frame of a gate -/ +def Gate.frame : Gate → Nat + | .out f _ _ _ => f + | .inn f _ _ => f + +/-- single adds `(tgt, src, co)` of a gate, in order -/ +def Gate.adds : Gate → List (Nat × Nat × Co) + | .out _ s ts _ => ts.map fun p => (p.1, s, p.2) + | .inn _ t ss => ss.map fun p => (t, p.1, p.2) + +/-- the frame table -/ +def Raw.frameTab (c : Raw) : List (List Nat) := c.frames.flatten + +/-- all gates of phase A / phase B -/ +def Raw.gatesA (c : Raw) : List Gate := c.A.flatten +def Raw.gatesB (c : Raw) : List Gate := c.B.flatten + +/-- number of registers -/ +def Raw.nreg (c : Raw) : Nat := 2 * c.v + c.R + +end GXD diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__SolutionB2Gp193x.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__SolutionB2Gp193x.lean new file mode 100644 index 0000000000..0392e1f05b --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__SolutionB2Gp193x.lean @@ -0,0 +1,38 @@ +import Work.GCert.Data.B2Gp193Main + +/-! +Comparator solution `Work.GCert.Data.SolutionB2Gp193x` (not part of github.com/openai/math). + +The whole proof is in `Work.GCert.Data.B2Gp193Main` (and its imports), which ends with + + theorem wht_main_B2Gp193x : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - 7474547/(10:ℝ)^10) W + +This module adds nothing mathematical: it defines `WHT.WHTTimeBoundsAt` with the text of the +challenge (the same definition as `BlockWHT.WHTTimeBoundsAt` of `Work.Block.WHT`) and restates +the theorem under the name the challenge uses. Its proof is that single term. +`WHTProgram`, `wht`, `whtInKind`, `whtOutKind` come from `WHTCheck.Solution`. +-/ + +namespace OAI +namespace PowerSaving +namespace WHT +open Filter Asymptotics + +/-- `W = O(2^k (k+1)^β)` and `W = o(2^k k)` (`WHTTimeBounds` is the case `β = 1 - 2/10^11`). -/ +def WHTTimeBoundsAt (β : ℝ) (W : ℕ → ℕ) : Prop := + let W' := fun k : ℕ => (W k : ℝ) + W' =O[atTop] (fun k : ℕ => (2:ℝ)^k * ((k:ℝ)+1)^β) ∧ + W' =o[atTop] (fun k : ℕ => (2:ℝ)^k * (k:ℝ)) + +/-- **Walsh-Hadamard transform with the improved exponent**: the statement `WHTGoal` of +`WHTCheck/Challenge.lean` with `1 - 2/10^11` replaced by `1 - 7474547/10^10`. -/ +theorem wht_main_block_B2Gp193x : + ∃ solve W, WHTProgram solve W ∧ WHTTimeBoundsAt (1 - 7474547/(10:ℝ)^10) W := + wht_main_B2Gp193x + +end WHT +end PowerSaving +end OAI + +#print axioms OAI.PowerSaving.WHT.wht_main_block_B2Gp193x diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Adapt.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Adapt.lean new file mode 100644 index 0000000000..24e261ad08 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Adapt.lean @@ -0,0 +1,183 @@ +import Work.GFrame.Engine.Letters + +/-! +# GFrame engine, part 2: the free adapter letters in the RAM (agent key: eng-ram) + +One free adapter on the array of one role is ONE linear pass, no recursive call: + +* `Gear.permuted` the address of `x ↦ G.π x` (columnwise), O(1) per entry with the XOR table + (as `Gear.shifted`, through `Gear.body_additive` of `Work/Block/Address.lean`); +* `Gear.phase_row` the `f`-bit row `(z·x_j + c)_j` of an entry, O(1); +* `GRig` a rig together with the table of `lum` over `Bits f` (`i^popcount`); +* `Rig.perm_cost`, `GRig.phase_cost` the two letters, work = length of the role table. +-/ + +set_option linter.unusedSectionVars false + +namespace OAI +namespace PowerSaving.GF +open Binary Matrix Finset +noncomputable section +section +variable {α : Type*} [Fintype α] [DecidableEq α] + +/-- An address permutation acts on an array with `f` columns by moving the address. -/ +lemma act_perm (G : APerm α) (f : ℕ) (x : Sky α f → ℂ) (j : Sky α f) : + matAct f (permMat G) x j = x (fun k => G.π (j k)) := by + change ∑ i, digitProd (fun _ : Fin f => permMat G) j i * x i = _ + have h (i : Sky α f) : digitProd (fun _ : Fin f => permMat G) j i = + if (fun k => G.π (j k)) = i then 1 else 0 := + prod_delta (κ:=fun _ : Fin f => Space α) _ _ + simp_rw [h] + simp [ite_mul] + +/-- A diagonal phase acts by the scalar `lum` of the row of phase bits. -/ +lemma act_phase (z : Space α) (c : F) (f : ℕ) (x : Sky α f → ℂ) (j : Sky α f) : + matAct f (phaseMat z c) x j = lum (fun k : Fin f => dot z (j k) + c) * x j := by + unfold matAct phaseMat + rw [digitProd_diagonal, Matrix.mulVec_diagonal] + rfl + +end +end +end PowerSaving.GF + +namespace PowerSaving.RAM +open Binary Ty Finset GF +noncomputable section +universe U V +variable {ι : Type U} + +namespace Gear +variable {m : Bool} {B f : ι → ℕ} {s t : Ty} {x : ι → T s} +variable (g : Gear m B f s x) +include g +variable {α : Type*} [Fintype α] [DecidableEq α] (X : Layout α) (r : ℕ) + +/-- Address moved by an additive bijection (across the `f` columns). -/ +lemma permuted (G : APerm α) (v : ∀ i, Grid α r (f i)) + (h : Knows m B s x (fun i => (book X r (f i)).loc (v i))) : + Knows m B s x (fun i => (book X r (f i)).loc ((v i).1, + fun j => G.π ((v i).2 j))) := by + obtain ⟨hg, hh⟩ := g.grid_fetch X r (v:=v) h + let K (i : ι) : Grid α r (f i) := ((v i).1, fun j => G.π ((v i).2 j)) + apply g.grid_combine X r (v:=K) hg (g.body_set X (fun i => (K i).2) _) + intro a + exact g.body_additive X (fun y => G.π y a) (fun p q => by rw [G.add]; rfl) + (fun i => (v i).2) hh + +/-- The row of phase bits `(z·x_j + c)_j` of an address. -/ +lemma phase_row (z : Space α) (c : F) (v : ∀ i, Grid α r (f i)) + (h : Knows m B s x (fun i => (book X r (f i)).loc (v i))) : + Knows m B s x (fun i => (bits (f i)).loc (fun l : Fin (f i) => dot z ((v i).2 l) + c)) := by + obtain ⟨_, hh⟩ := g.grid_fetch X r (v:=v) h + have hv := g.body_additive X (fun y => dot z y) (fun p q => dot_add_right z p q) + (fun i => (v i).2) hh + rcases bit_cases c with hc|hc + · refine hv.cong (fun _ => rfl) (fun i => ?_) + simp [hc] + · let q i : Bits (f i) × Bits (f i) := (fun l => dot z ((v i).2 l), fun _ => 1) + have hf : Knows m B s x (fun i => (bits (f i)).loc (q i).2) := + (g.power.minus (Can.wc 1) g.bound).cong (fun _ => rfl) (fun i => by + change 2^f i-1=(bits _).loc (fun _ => 1) + rw [← bits_lit] + simp) + refine (g.addr_xor q hv hf).cong (fun _ => rfl) (fun i => ?_) + apply congr_arg (bits (f i)).loc + ext k; simp [q,hc] + +end Gear + +/-- A rig together with the table of `lum` over `Bits f` (the fourth roots `i^popcount`). -/ +structure GRig {α ρ : Type*} (m : Bool) (B f : ι → ℕ) (s : Ty) (x : ι → T s) + (cl : Paint) (X : Layout α) (R : Layout ρ) (r : ℕ) (v : ∀ i, Grain α ρ r (f i)) : Prop where + rig : Rig m B f s x cl X R r v + lumT : Has m B s (a sc) x fun i => (bits (f i)).tape (fun y : Bits (f i) => lum y) + +section +variable {α ρ : Type*} [Fintype α] [DecidableEq α] [Fintype ρ] [DecidableEq ρ] +variable {m : Bool} {B f : ι → ℕ} {s t : Ty} {x : ι → T s} + {cl : Paint} {X : Layout α} {R : Layout ρ} {r : ℕ} {v : ∀ i, Grain α ρ r (f i)} + +omit [Fintype α] [DecidableEq α] [Fintype ρ] [DecidableEq ρ] in +lemma GRig.gather (h : GRig m B f s x cl X R r v) {κ : Type V} (j : κ → ι) (y : κ → T t) + (g : Has m (fun k => B (j k)) t s y (fun k => x (j k))) : + GRig m (fun k => B (j k)) (fun k => f (j k)) t y cl X R r (fun k => v (j k)) := + ⟨h.rig.gather j y g, g.then_do (h.lumT.reindex j)⟩ + +lemma Rig.ferry_perm (h : Rig m B f s x cl X R r v) (l : ρ) (G : APerm α) + (q : ∀ i, Beach α ρ r (f i)) + (g : Knows m B s x fun i => (fleet X R r (f i)).loc (q i)) : + Has m B s (c cl) x fun i => ferryM r (f i) l (permMat G) (v i) (q i) := by + obtain ⟨hl,hk⟩ := h.addrs q g + have hb := h.read q hl hk + let t i : Beach α ρ r (f i) := ((q i).1,(q i).2.1,fun j => G.π ((q i).2.2 j)) + have hh := h.read t hl (h.gear.permuted X r G _ hk) + apply Can.cases_code (q:=fun i => (q i).1) R hl + intro p + by_cases he : p=l + · refine (hh.reindex (fun i : {i // (q i).1=p} => i.1)).cong (fun _ => rfl) + (fun i => ?_) + have hql : (q i.val).1 = l := i.property.trans he + change v i.val ((q i.val).1,(q i.val).2.1,fun j => G.π ((q i.val).2.2 j)) = _ + simp only [ferryM, roleAct, hql, if_true, act_perm] + · refine (hb.reindex (fun i : {i // (q i).1=p} => i.1)).cong (fun _ => rfl) + (fun i => ?_) + have H : (q i.val).1≠l := fun hh => he (i.property.symm.trans hh) + simp only [ferryM, roleAct, H, ite_false, Prod.mk.eta] + +/-- **Free address permutation**: one pass over the role table. -/ +lemma Rig.perm_cost (h : Rig m B f s x cl X R r v) (l : ρ) (G : APerm α) : + Can m B s (a (c cl)) x + (fun i => (fleet X R r (f i)).tape (ferryM r (f i) l (permMat G) (v i))) + (fun i => (fleet X R r (f i)).n) := by + refine h.chart _ ?_ + let S := Σ i, Beach α ρ r (f i) + have hg := h.gather (fun d : S => d.1) + (fun d => ((x d.1, (fleet X R r (f d.1)).loc d.2):T (p s w))) (t:=p s w) Can.first + exact hg.ferry_perm l G (fun d => d.2) Can.second + +lemma GRig.ferry_phase (h : GRig m B f s x cl X R r v) (l : ρ) (z : Space α) (c' : F) + (q : ∀ i, Beach α ρ r (f i)) + (g : Knows m B s x fun i => (fleet X R r (f i)).loc (q i)) : + Has m B s (c cl) x fun i => ferryM r (f i) l (phaseMat z c') (v i) (q i) := by + obtain ⟨hl,hk⟩ := h.rig.addrs q g + have hb := h.rig.read q hl hk + have hrow := h.rig.gear.phase_row X r z c' (fun i => (q i).2) hk + have hs : Has m B s sc x + (fun i => lum (fun k : Fin (f i) => dot z ((q i).2.2 k) + c')) := + Can.fetch (t:=sc) (L:=fun i => bits (f i)) (v:=fun i (y : Bits (f i)) => lum y) + (i:=fun i => (fun k : Fin (f i) => dot z ((q i).2.2 k) + c')) h.lumT hrow + have hh := hs.mul hb + apply Can.cases_code (q:=fun i => (q i).1) R hl + intro p + by_cases he : p=l + · refine (hh.reindex (fun i : {i // (q i).1=p} => i.1)).cong (fun _ => rfl) + (fun i => ?_) + have hql : (q i.val).1 = l := i.property.trans he + change lum (fun k : Fin (f i.val) => dot z ((q i.val).2.2 k) + c') * + v i.val ((q i.val).1,(q i.val).2.1,(q i.val).2.2) = _ + simp only [ferryM, roleAct, hql, if_true, act_phase] + · refine (hb.reindex (fun i : {i // (q i).1=p} => i.1)).cong (fun _ => rfl) + (fun i => ?_) + have H : (q i.val).1≠l := fun hh => he (i.property.symm.trans hh) + simp only [ferryM, roleAct, H, ite_false, Prod.mk.eta] + +/-- **Free diagonal phase**: one pass over the role table (one table look-up per entry). -/ +lemma GRig.phase_cost (h : GRig m B f s x cl X R r v) (l : ρ) (z : Space α) (c' : F) : + Can m B s (a (c cl)) x + (fun i => (fleet X R r (f i)).tape (ferryM r (f i) l (phaseMat z c') (v i))) + (fun i => (fleet X R r (f i)).n) := by + refine h.rig.chart _ ?_ + let S := Σ i, Beach α ρ r (f i) + have hg := h.gather (fun d : S => d.1) + (fun d => ((x d.1, (fleet X R r (f d.1)).loc d.2):T (p s w))) (t:=p s w) Can.first + exact hg.ferry_phase l z c' (fun d => d.2) Can.second + +end +end +end PowerSaving.RAM +end OAI + +#print axioms OAI.PowerSaving.RAM.Rig.perm_cost +#print axioms OAI.PowerSaving.RAM.GRig.phase_cost diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Letters.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Letters.lean new file mode 100644 index 0000000000..2eca6e713b --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Letters.lean @@ -0,0 +1,199 @@ +import Work.Block.Bridge + +/-! +# GFrame engine, part 1: the generalised word language (agent key: eng-ram) + +Letters = the letters of `BWord` (`localM`, `shift`, `block`) plus TWO FREE ADAPTER letters on +one role: + +* `perm l G` address permutation by an additive bijection `G` of the label space + (matrix `permMat G`, `(permMat G) x y = 1` iff `G.π x = y`); +* `phase l z c` the diagonal phase `i^[z·x + c]` IN THE STANDARD BASIS + (matrix `phaseMat z c = diagonal (fun x => tint (dot z x + c))`). + +Products of `phaseMat` are exactly the diagonal matrices `i^Q(x)`, `Q` a `ℤ/4`-valued quadratic +form plus a constant; with the old free letter `shift` the free letters generate every affine +address permutation times such a phase. A "twisted block" is NOT a primitive letter: it is the +word `free adapters ++ [block] ++ free adapters` (see `Free.lean`, `gstep_of_factor`). + +The semantics is `gwalk` (no unit-move word behind it: the new letters are not Walsh-diagonal). +Old words embed by `GWord.ofB`, and `gwalk f (ofB w) = walk f w.flat`. +-/ + +set_option linter.unusedSectionVars false + +namespace OAI +namespace PowerSaving.GF +open Binary Matrix Finset +noncomputable section + +/-- An additive bijection of the label space. -/ +structure APerm (α : Type*) where + π : Space α ≃ Space α + add : ∀ x y, π (x + y) = π x + π y + +section Mats +variable {α : Type*} [Fintype α] [DecidableEq α] + +/-- Permutation matrix of an additive bijection: `(permMat G *ᵥ v) x = v (G.π x)`. -/ +def permMat (G : APerm α) : CMat α := fun x y => if G.π x = y then 1 else 0 + +/-- Elementary diagonal phase in the standard basis: `i^[z·x + c]`. -/ +def phaseMat (z : Space α) (c : F) : CMat α := Matrix.diagonal fun x => tint (dot z x + c) + +end Mats + +/-- Letters of the generalised word language. -/ +inductive GMove (α ρ : Type*) + | old (mv : BMove α ρ) + | perm (l : ρ) (G : APerm α) + | phase (l : ρ) (z : Space α) (c : F) + +abbrev GWord (α ρ : Type*) := List (GMove α ρ) + +namespace GMove +variable {α ρ : Type*} + +/-- The letter of `BWord` with the same price (free adapters ↦ a free letter). -/ +def shadow : GMove α ρ → BMove α ρ + | .old mv => mv + | .perm _ _ => .localM 0 + | .phase _ _ _ => .localM 0 + +/-- Rank paid by a letter (`none` = free). -/ +def rk? (mv : GMove α ρ) : Option ℕ := mv.shadow.rk? +def costR (φ : ℕ → ℝ) (mv : GMove α ρ) : ℝ := mv.shadow.costR φ +def Proper (u : ℕ) (mv : GMove α ρ) : Prop := mv.shadow.Proper u + +@[simp] lemma costR_perm (φ : ℕ → ℝ) (l : ρ) (G : APerm α) : + (GMove.perm l G : GMove α ρ).costR φ = 0 := rfl +@[simp] lemma costR_phase (φ : ℕ → ℝ) (l : ρ) (z : Space α) (c : F) : + (GMove.phase l z c : GMove α ρ).costR φ = 0 := rfl +@[simp] lemma costR_old (φ : ℕ → ℝ) (mv : BMove α ρ) : (GMove.old mv).costR φ = mv.costR φ := rfl +lemma proper_perm (u : ℕ) (l : ρ) (G : APerm α) : (GMove.perm l G : GMove α ρ).Proper u := + trivial +lemma proper_phase (u : ℕ) (l : ρ) (z : Space α) (c : F) : + (GMove.phase l z c : GMove α ρ).Proper u := trivial +@[simp] lemma proper_old (u : ℕ) (mv : BMove α ρ) : (GMove.old mv).Proper u ↔ mv.Proper u := + Iff.rfl + +end GMove + +namespace GWord +variable {α ρ : Type*} + +def shadow (w : GWord α ρ) : BWord α ρ := w.map GMove.shadow +def costR (φ : ℕ → ℝ) (w : GWord α ρ) : ℝ := (w.map (GMove.costR φ)).sum +def Proper (u : ℕ) (w : GWord α ρ) : Prop := ∀ mv ∈ w, mv.Proper u +def hist (w : GWord α ρ) (r : ℕ) : ℕ := w.shadow.hist r +/-- Natural-number cost when a block of rank `rk` costs `g rk`. -/ +def cost (g : ℕ → ℕ) (w : GWord α ρ) : ℕ := w.shadow.cost g +/-- An old block word as a generalised word. -/ +def ofB (w : BWord α ρ) : GWord α ρ := w.map GMove.old + +@[simp] lemma shadow_nil : shadow ([] : GWord α ρ) = [] := rfl +@[simp] lemma shadow_cons (mv : GMove α ρ) (w : GWord α ρ) : + shadow (mv :: w) = mv.shadow :: shadow w := rfl +@[simp] lemma shadow_ofB (w : BWord α ρ) : shadow (ofB w) = w := by + simp [shadow, ofB, List.map_map, Function.comp_def, GMove.shadow] + +lemma costR_shadow (φ : ℕ → ℝ) (w : GWord α ρ) : costR φ w = BWord.costR φ w.shadow := by + unfold costR BWord.costR shadow + rw [List.map_map] + rfl +@[simp] lemma costR_nil (φ : ℕ → ℝ) : costR φ ([] : GWord α ρ) = 0 := rfl +lemma costR_cons (φ : ℕ → ℝ) (mv : GMove α ρ) (w : GWord α ρ) : + costR φ (mv :: w) = mv.costR φ + costR φ w := by simp [costR] +lemma costR_append (φ : ℕ → ℝ) (w w' : GWord α ρ) : + costR φ (w ++ w') = costR φ w + costR φ w' := by simp [costR] +lemma costR_ofB (φ : ℕ → ℝ) (w : BWord α ρ) : costR φ (ofB w) = BWord.costR φ w := by + rw [costR_shadow, shadow_ofB] +@[simp] lemma cost_nil (g : ℕ → ℕ) : cost g ([] : GWord α ρ) = 0 := rfl +lemma cost_cons (g : ℕ → ℕ) (mv : GMove α ρ) (w : GWord α ρ) : + cost g (mv :: w) = mv.shadow.cost g + cost g w := BWord.cost_cons g _ _ + +lemma Proper.shadow {u : ℕ} {w : GWord α ρ} (h : Proper u w) : BWord.Proper u w.shadow := by + intro mv hmv + obtain ⟨g, hg, rfl⟩ := List.mem_map.mp hmv + exact h g hg +lemma Proper.tail {u : ℕ} {mv : GMove α ρ} {w : GWord α ρ} (h : Proper u (mv :: w)) : + Proper u w := fun x hx => h x (List.mem_cons_of_mem _ hx) +lemma Proper.head {u : ℕ} {mv : GMove α ρ} {w : GWord α ρ} (h : Proper u (mv :: w)) : + mv.Proper u := h mv List.mem_cons_self +lemma Proper.append {u : ℕ} {w w' : GWord α ρ} (h : Proper u w) (h' : Proper u w') : + Proper u (w ++ w') := by + intro mv hmv + rcases List.mem_append.mp hmv with h1|h1 + · exact h mv h1 + · exact h' mv h1 +lemma proper_nil (u : ℕ) : Proper u ([] : GWord α ρ) := fun _ h => by simp at h +lemma proper_ofB {u : ℕ} {w : BWord α ρ} (h : w.Proper u) : Proper u (ofB w) := by + intro mv hmv + obtain ⟨g, hg, rfl⟩ := List.mem_map.mp hmv + exact h g hg + +lemma costR_eq_sum (u : ℕ) (φ : ℕ → ℝ) (w : GWord α ρ) (hw : Proper u w) : + costR φ w = ∑ r : Fin u, (w.hist r:ℝ) * φ r := by + rw [costR_shadow]; exact BWord.costR_eq_sum u φ _ hw.shadow +lemma cost_eq_sum (u : ℕ) (g : ℕ → ℕ) (w : GWord α ρ) (hw : Proper u w) : + cost g w = ∑ r : Fin u, hist w r * g r := BWord.cost_eq_sum u g _ hw.shadow +lemma hist_zero (u : ℕ) (w : GWord α ρ) (hw : Proper u w) : hist w 0 = 0 := + BWord.hist_zero u _ hw.shadow +lemma hist_large (u : ℕ) (w : GWord α ρ) (hw : Proper u w) (r : ℕ) (hr : u ≤ r) : + hist w r = 0 := BWord.hist_large u _ hw.shadow r hr + +end GWord + +section Sem +variable {α ρ σ : Type*} [Fintype α] [DecidableEq α] [Fintype ρ] [DecidableEq ρ] + +/-- The action of one letter. -/ +def GMove.act (f : ℕ) : GMove α ρ → Data α ρ f → Data α ρ f + | .old mv => mv.act f + | .perm l G => roleAct f l (permMat G) + | .phase l z c => roleAct f l (phaseMat z c) + +/-- **Semantics of a generalised word.** -/ +def gwalk (f : ℕ) (w : GWord α ρ) (x : Data α ρ f) : Data α ρ f := + w.foldl (fun y mv => mv.act f y) x + +@[simp] lemma gwalk_nil (f : ℕ) (x : Data α ρ f) : gwalk f ([] : GWord α ρ) x = x := rfl +lemma gwalk_cons (f : ℕ) (mv : GMove α ρ) (w : GWord α ρ) (x : Data α ρ f) : + gwalk f (mv :: w) x = gwalk f w (mv.act f x) := rfl +lemma gwalk_append (f : ℕ) (p q : GWord α ρ) (x : Data α ρ f) : + gwalk f (p ++ q) x = gwalk f q (gwalk f p x) := by simp [gwalk] + +/-- Old words keep their meaning. -/ +lemma gwalk_ofB (f : ℕ) (w : BWord α ρ) (x : Data α ρ f) : + gwalk f (GWord.ofB w) x = walk f w.flat x := by + induction w generalizing x with + | nil => rfl + | cons mv w ih => + rw [walk_flat_cons, ← ih] + rfl + +/-- The scratch certificate for the generalised language (cf. `RAM.LiveKernel`). -/ +def GLiveKernel (e : σ → ρ) (w : GWord α ρ) : Prop := + ∀ (f : ℕ) (v : Data α ρ f), (∀ s, (∀ l, e l ≠ s) → v s = 0) → + ∀ l, gwalk f w v (e l) = matAct f (kernel α) (v (e l)) + +/-- Every old certificate is a generalised certificate. -/ +theorem GLiveKernel.ofB {e : σ → ρ} {w : BWord α ρ} (h : RAM.LiveKernel e w.flat) : + GLiveKernel e (GWord.ofB w) := by + intro f v hv l + rw [gwalk_ofB] + exact h f v hv l + +/-- One role goes from matrix `M` to `N` by a generalised word (cf. `XStep`). -/ +def GStep (l : ρ) (M N : CMat α) (c : (ℕ → ℝ) → ℝ) : Prop := + ∃ (w : GWord α ρ) (U : CMat α), w.Proper (Fintype.card α) ∧ (∀ φ, w.costR φ = c φ) ∧ + U * M = N ∧ ∀ (f : ℕ) (x : Data α ρ f), gwalk f w x = roleAct f l U x + +end Sem +end +end PowerSaving.GF +end OAI + +#print axioms OAI.PowerSaving.GF.gwalk_ofB +#print axioms OAI.PowerSaving.GF.GLiveKernel.ofB +#print axioms OAI.PowerSaving.GF.GWord.costR_eq_sum diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Level.lean b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Level.lean new file mode 100644 index 0000000000..6bd7cfa0c3 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Level.lean @@ -0,0 +1,163 @@ +import Work.GFrame.Engine.Sweep +import WHTCheck.Solution + +/-! +# GFrame engine, part 4: one level of the recursion for generalised words (agent key: eng-ram) + +Copy of `amplifyB` (`Work/Block/Recursion.lean`) with two changes: + +* the word is a `GWord` with certificate `GLiveKernel e w` (semantics `gwalk`); +* after the XOR table the level also builds the table of `lum` over `Bits f` + (`WHT.lum_tables`, doubling construction, `O(2^f)` work), which the free diagonal phases + read; it is part of the environment of the sweep (`GRig`). + +Cost: the same `2^k` linear term and the same recursive calls as `amplifyB`. +-/ + +set_option linter.unusedSectionVars false + +namespace OAI +namespace PowerSaving.RAM +open Binary Matrix Ty Finset GF +noncomputable section + +section +universe U +variable {α ρ σ : Type*} [Fintype α] [DecidableEq α] [Fintype ρ] [DecidableEq ρ] + [Fintype σ] [DecidableEq σ] +variable {ι : Type U} {m : Bool} + {k f : ι → ℕ} {cl : Paint} {b : Bank (hatch cl) ι} + {v : ∀ i, Sim σ (k i)→ℂ} + +/-- **One level of the recursion for a generalised word** (replaces `amplifyB`). -/ +lemma gamplify (m : Bool) (b : Bank (hatch cl) ι) (v : ∀ i, Sim σ (k i) → ℂ) + (X : Layout α) (R : Layout ρ) (Q : Layout σ) (e : σ → ρ) (he : Function.Injective e) + (r : ℕ) (hr : 3 ≤ X.n) (hq : ∀ i, X.n*f i+r=k i) (hd : r < X.n) (hQ : 0 rk * f i) (τ rk) Q) + (hB : Small b.B (fun i => 2^k i)) + (w : GWord α ρ) (hw : GLiveKernel e w) (hP : w.Proper X.n) : + Able m b (simIn cl) (bundle cl) (fun i => loaded cl Q (k i) (v i)) + (fun i => (sim Q (k i)).tape (whole (k i) (v i))) + (fun i => 2^k i) (fun i => w.cost (fun rk => n rk i * τ rk i)) := by + let W i := 2^k i + let s := simIn cl + let eQ (i : ι) := ebb X r (f i) (k i) (hq i) (v i) + let zQ (i : ι) : Grain α σ r (f i) := + fun j => chords r (f i) (fun l => eQ i (j.1,l)) j.2 + let Z (i : ι) : Grain α ρ r (f i) := crossAct r (f i) (embM e) (zQ i) + let O (i : ι) : Grain α σ r (f i) := + crossAct r (f i) (extM e) (gcoast r (f i) w (Z i)) + let szQ i := (fleet X Q r (f i)).n + let szR i := (fleet X R r (f i)).n + have hszQ : Dom W szQ := by + refine ⟨Q.n+1, fun i => ?_⟩ + unfold W szQ fleet + rw [Layout.pair_len, book_len,hq] + simp only [mul_add,add_mul,mul_one,one_mul] + gcongr <;> simp + have hszR : Dom W szR := by + refine ⟨R.n+1, fun i => ?_⟩ + unfold W szR fleet + rw [Layout.pair_len, book_len,hq] + simp only [mul_add,add_mul,mul_one,one_mul] + gcongr <;> simp + have hn (i : ι) : 0 < W i := pow_pos (by decide) _ + have hf (i) : f i ≤ k i := by + have g := hq i + have h := Nat.le_mul_of_pos_left (f i) (show 0 < X.n by omega) + omega + have hy (i) : k i ≤ W i := Nat.lt_two_pow_self.le + have sd := hB.mono hy + have sq := sd.mono hf + let p2 i := 2^f i + have hm : Small b.B p2 := + hB.mono (fun i => Nat.pow_le_pow_right (by omega) (hf i)) + have hcube (i) : p2 i ^ 3 ≤ W i := by + unfold p2 W + rw [← pow_mul] + apply Nat.pow_le_pow_right (by omega) + have hh : 3*f i ≤ X.n*f i := Nat.mul_le_mul_right _ hr + have hg := hq i + rw [mul_comm] + omega + let env (i : ι) := loaded cl Q (k i) (v i) + -- construct fields (f,p2) + have hmf : Can m b.B s Ty.w env f W := by + have ht : Can m b.B s Ty.w env k W := Can.first + refine (ht.dvdW (Can.wc X.n) sd).cong (fun _ => rfl) ?_ + intro i + rw [← hq,mul_comm X.n] + exact Layout.div_join hd + have hmp : Can m b.B s (Ty.p Ty.w Ty.w) env (fun i => (f i,p2 i)) W := + hmf.pair (hmf.wTwo sq hm (Dom.of_le (fun i => (hf i).trans (hy i)))) + let T1 := Ty.p s (Ty.p Ty.w Ty.w) + let Y (i : ι) : T T1 := (env i,f i,p2 i) + have hmx : Can m b.B T1 (Ty.a Ty.w) Y (fun i => xorTab (f i)) W := + (Can.xor_prepare (m:=m) (f:=f) (B:=b.B) (s:=T1) (x:=Y) + (Can.fst Can.second) (Can.snd Can.second) sq hm).mono hcube + let T2 := Ty.p T1 (Ty.a Ty.w) + let Y' (i : ι) : T T2 := (Y i,xorTab (f i)) + -- NEW: the table of `lum` over `Bits f` + have hE2 : Has m b.B T2 s Y' env := Can.fst Can.first + have hml : Can m b.B T2 (Ty.a sc) Y' + (fun i => (bits (f i)).tape (fun y : Bits (f i) => lum y)) W := + (WHT.lum_tables (k:=f) (Can.fst (Can.snd Can.first)) sq hm hE2.snd.fst).1.mono + (fun i => Nat.pow_le_pow_right (by omega) (hf i)) + let T2' := Ty.p T2 (Ty.a sc) + let Y'' (i : ι) : T T2' := (Y' i,(bits (f i)).tape (fun y : Bits (f i) => lum y)) + -- the input, read as a table on the slots + have hG0 : Rig m b.B f T2 Y' cl X Q r eQ := by + refine ⟨⟨?_,?_,Can.second,hm⟩,?_,?_⟩ + · exact Can.snd (Can.snd Can.first) + · exact Can.fst (Can.snd Can.first) + · exact hE2.snd.fst + · exact hE2.snd.snd.cong (fun _ => rfl) (fun i => (ebb_eq ..).symm) + have hG : Rig m b.B f T2' Y'' cl X Q r eQ := hG0.gather id Y'' (t:=T2') Can.first + -- leftover bits, still on the slots + have HH : Can m b.B T2' (bundle cl) Y'' (fun i => (fleet X Q r (f i)).tape (zQ i)) W := + hG.dots_cost.weaken hszQ + let T3 := Ty.p T2' (bundle cl) + let A (i) : T T3 := (Y'' i,(fleet X Q r (f i)).tape (zQ i)) + have Hg := hG.gather id A (t:=T3) Can.first + have G : Rig m b.B f T3 A cl X Q r zQ := ⟨Hg.gear,Hg.imag,Can.second⟩ + -- embed the slots into the table of roles; scratch roles are created as zero + have HE : Can m b.B T3 (bundle cl) A (fun i => (fleet X R r (f i)).tape (Z i)) W := + (G.cross_point R (embM e)).weaken hszR + let T4 := Ty.p T3 (bundle cl) + let A4 (i) : T T4 := (A i,(fleet X R r (f i)).tape (Z i)) + have Hg4 := G.gather id A4 (t:=T4) Can.first + have hL4 : Has m b.B T4 (Ty.a sc) A4 + (fun i => (bits (f i)).tape (fun y : Bits (f i) => lum y)) := + Can.snd (Can.fst Can.first) + have G4 : GRig m b.B f T4 A4 cl X R r Z := ⟨⟨Hg4.gear,Hg4.imag,Can.second⟩,hL4⟩ + -- the GENERALISED word on the table of roles + have Hy := G4.gsweep n τ Q hQ hk + (fun rk h1 h2 i => by rw [book_len,hq]; exact hc rk h1 h2 i) w hP + -- extract the slots; scratch roles are dropped + let T5 := Ty.p T4 (bundle cl) + let A5 (i) : T T5 := (A4 i,(fleet X R r (f i)).tape (gcoast r (f i) w (Z i))) + have Hg5 := G4.rig.gather id A5 (t:=T5) Can.first + have G5 : Rig m b.B f T5 A5 cl X R r (fun i => gcoast r (f i) w (Z i)) := + ⟨Hg5.gear,Hg5.imag,Can.second⟩ + have HX : Can m b.B T5 (bundle cl) A5 (fun i => (fleet X Q r (f i)).tape (O i)) W := + (G5.cross_point Q (extM e)).weaken hszQ + have heq (i) : O i = ebb X r (f i) (k i) (hq i) (whole (k i) (v i)) := + gamplifies X r (f i) (k i) (hq i) e he w hw (v i) + have ha (i) : (fleet X Q r (f i)).tape (O i) = + (sim Q (k i)).tape (whole (k i) (v i)) := by + rw [heq]; exact ebb_eq .. + have Ho := ((Hy.weaken hszR (fun _ => le_rfl)).save_keep + (Able.of_can (b:=b) HX)).cong (fun _ => rfl) ha + have Hx := (Able.of_can (b:=b) hmp).save_keep + ((Able.of_can (b:=b) hmx).save_keep ((Able.of_can (b:=b) hml).save_keep + ((Able.of_can (b:=b) HH).save_keep ((Able.of_can (b:=b) HE).save_keep Ho)))) + simpa only [Nat.zero_add,Nat.add_zero] using Hx + +end +end +end PowerSaving.RAM +end OAI + +#print axioms OAI.PowerSaving.RAM.gamplify diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__ORIGIN.md b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__ORIGIN.md new file mode 100644 index 0000000000..e28b355d0a --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__ORIGIN.md @@ -0,0 +1,64 @@ +# tools/gx/ and tools/certificate/gcert1-p11-pr193.json.gz: where they come from + +Everything in this directory is Python 3 (standard library only). No Lean is run by these scripts. +"The outside repository" means github.com/CrocSwap/integer-mult-bounds (Apache-2.0, `LICENSE` and `NOTICE` +of that repository; `NOTICE`: "A sharper exponent for integer multiplication, Copyright 2026 Douglas Colkitt"). + +## The scripts (this project) + +| file | what it is | +|---|---| +| `gxcore.py` | loads a certificate of format gcert/1, brings it to normal form, and is a Python mirror of both Lean checks (labels and scalars); cut points and label data for the generator | +| `gxunit.py` | split plan of the kernel evaluations, the unit of the word, expected exponents | +| `gxbind.py` | the texts of the generated Lean modules (check, histogram, price, certificate and final modules) | +| `gxgen.py` | certificate -> Lean data modules and one module per kernel evaluation | +| `gxrate.py` | rate lemmas, unit price list, final theorem modules, comparator challenge / solution / configuration | +| `gxdry.py`, `gxmut.py` | dry run (mirror, sizes, plan, exponents); mutants that the mirror must reject | +| `gxconv.py` | converts the earlier format gcert/0 to gcert/1 when a step scales its target (the in-place pair step of #193) | +| `gsmirror.py` | a second, separately written Python mirror of the scalar check `GS.scalCheck` / `GS.yCheck`; `gxbind.py` calls it for the check parameters | +| `gx.py`, `gxrun.py` | the reference checker of the format (`gx.check1`: labels and exact scalar identity) and its command line | +| `gxpaths.py`, `regen_check.py`, `refcheck.py` | written for this repository: relative paths; regenerate and compare; `gx.check1` on a gcert/1 file | + +The scripts are the working copies with path edits only (absolute paths of the author's machine replaced through +`gxpaths.py`; templates read from `tools/gen/templates/`; `foldlib.py` / `foldgen.py` taken from `tools/gen/`). +The sentences "Generated by checks/..." that the generators print into Lean files name the scripts by their +working paths; they are kept so that the generated modules come out byte for byte. +No script of the outside repository is included, imported or executed. + +## The certificate `tools/certificate/gcert1-p11-pr193.json.gz` + +sha256 of the file: `15251deb0c11e0504d7b297c9786818888a93f08b92b03c6c122784b70488633` +(gzip stores a time stamp; sha256 of the uncompressed JSON: `c64d2a95431c3cf24452de7391cce780bd71521da44ce23923ebb235f6c7962c`). + +It is ONE explicit program (numbered registers, every addition, every frame) for the helper circuit at +h = 22: 1,320 ports, 9,412 slots, 262,944 unit moves. **The design of that circuit is not this project's.** It is the +"paired-cube" circuit of the outside repository as of pull request #193 (which builds on #191, #184, #168 and #144). +The outside repository publishes the design as generator scripts, frozen data files and a ledger; it has no file +of this kind. This file was produced by this project's own code, which + +1. loaded the following files of the outside repository **as data** (JSON; nothing was executed): + - at pull request #168, commit `4a3c769e5c5430e7114c4d3e099ff34664677f17`: + `references/paired-cube/sources/local_L1.json`, + `references/paired-cube/sources/tmod_TE_TD_TB3_1_1_4_full_6.0617964e-4.json`, + `references/paired-cube/sources/pmod_J0_full_6.0666810e-4.json`, + `references/paired-cube/sources/qmod_climb3u_best.json` (the local modules), + `references/paired-cube/selected-module/matching-arcs.json` (carrier arcs), + `references/paired-cube/physical/frames.json` (moved frames); + - at pull request #193, commit `187e1010ac8b259af8e9b5166f68b64bc27b4b47`: + `research/source-assisted-v4/data/physical-pairs.json` (the hand-over pairs); +2. rebuilt the circuit from them step by step, following the algorithms of the outside scripts (read as text), + and checked the result exactly (every published count reproduced; the scalar identity as an identity of + linear maps with arbitrary contents of the helper registers); +3. converted it to gcert/1 with `gxconv.py` (tested by `gx.check1`). + +Step 1 and step 2 (the rebuild scripts and the outside inputs they read) are NOT part of this repository; +the inputs can be fetched from the outside repository at the two commits above. +What this repository proves about the file does not depend on how it was made: the Lean kernel checks the +generated modules (labels, scalar identity, price), and `regen_check.py` shows that those modules are exactly +what `gxgen.py` / `gxrate.py` produce from this file. + +## Check it yourself + + python3 tools/gx/regen_check.py # regenerates the Lean modules and compares + python3 tools/gx/gxdry.py tools/certificate/gcert1-p11-pr193.json.gz # Python mirror of both checks + python3 tools/gx/refcheck.py # the reference checker gx.check1 on the certificate diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxbind.py b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxbind.py new file mode 100644 index 0000000000..fcb625619c --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxbind.py @@ -0,0 +1,438 @@ +"""gxbind.py: THE BINDING of the generator to the Lean terms of gx-scalar / gx-labels / +gx-chain. Everything that names somebody else's definition is in this file (tables SCAL, LAB, CHAIN).""" +import os, re, subprocess +import gxpaths +ROOT = gxpaths.OUT +GSM = gxpaths.HERE + '/gsmirror.py' + +# gx-scalar (gcert-interface.md, SCALAR v1): GS.scalCheck c p lo n, GS.yCheck c p lo n, p : GS.SPar = +SCAL = dict(imports=['Work.GCert.Scalar.Seg'], scal='GS.scalCheck raw ⟨%(d)d, %(sw)d, %(ux)d, %(us)d, %(uy)d⟩ %(lo)d %(n)d', + ychk='GS.yCheck raw ⟨%(d)d, %(sw)d, %(ux)d, %(us)d, %(uy)d⟩ 0 %(v)d') +# gx-labels (gcert-interface.md LABELS v1 + questions.md N1): namespace GLab; frame = code, table and states = SSC.Trie, +# GLab.Par = . `end` = GLab.endK of Labels/EndDef.lean (questions.md N2; no obaseK: Q1 closed). +LAB = dict(imports=['Work.GCert.Labels.Def'], end_imports=['Work.GCert.Labels.EndDef'], par='⟨%(h)d, %(n)d, %(d)d, %(K)d, tab⟩', ns='GLab', + tab='GLab.tabK %(h)d %(sub)s', seg='GLab.segK par %(gs)s st%(i)d st%(j)d %(rs)s', + end='GLab.endK par %(v)d ports (raw.ret.map Prod.fst) st0 st%(a)d st%(f)d', noadds='GLab.noAdds fins') +# gx-chain (CHAIN v1): GX.wht_of_halves; the terms below are PLACEHOLDERS until Labels/Main and Scalar/Main compile +CHAIN = dict(imports=['Work.GCert.Chain.End', 'Work.GCert.Labels.Main'], scal='(GS.ScalOK.scal GXD.%(c)s.scalOK)', + lab='(GXD.%(c)s.valid.lab GXD.%(c)s.scalOK)', lab_cost='GXD.%(c)s.lab_cost') + + +def code(h, basis): + """gx-labels' code of a reduced echelon basis: dim + 2^8 M + 2^(8+h) P (M = pivot mask, vector of pivot p at digit p)""" + M = P = 0 + for b in basis: + p = b.bit_length() - 1 + M |= 1 << p + P |= b << (h * p) + return len(basis) + (M << 8) + (P << (8 + h)) + + +MOD = '''import %(imports)s +/-! Kernel check (%(doc)s) of the gcert/1 certificate `GXD.%(name)s.raw`. Source: %(src)s. +Generated by checks/wht26/gx-data/py/gxgen.py (do not edit). -/ +set_option maxRecDepth 100000 +namespace GXD.%(name)s +open GXD +theorem %(thm)s : %(stmt)s := by decide +kernel +end GXD.%(name)s +#print axioms GXD.%(name)s.%(thm)s +''' + + +def spar(D, path): + """scalar parameters: from gx-scalar's mirror when it exists, else from my own replay (sw is then a GUESS)""" + import gxcore as gc + n, d = 2 * D['v'] + D['R'], 0 + while (1 << d) < n: + d += 1 + dg = gc.digits(D) + S = dict(d=d, sw=16, ux=dg['x'][0], us=dg['s'][0], uy=dg['y'][0], source='gx-data replay; sw = 16 is a GUESS', digits=dg) + if os.path.exists(GSM): + try: + o = subprocess.run(['python3', '-B', GSM, path], capture_output=True, text=True, timeout=1800).stdout + m = re.search(r'SPar[^\d]*(\d+)[, ]+(\d+)[, ]+(\d+)[, ]+(\d+)[, ]+(\d+)', o) + if m: + S.update(zip(('d', 'sw', 'ux', 'us', 'uy'), map(int, m.groups())), source='gsmirror.py') + except Exception as e: + S['source'] += ' (gsmirror.py failed: %r)' % (e,) + return S + + +def write_checks(D, M, name, src, out, L, S, plan): + base = out[len(ROOT):].replace('/', '.') + raw = '%s.Gen.%s' % (base, name) + h, v, n = D['h'], D['v'], 2 * D['v'] + D['R'] + res = [] + + def mod(suffix, imports, thm, stmt, doc): + m = '%s.Gen.%s%s' % (base, name, suffix) + open('%s/Gen/%s%s.lean' % (out, name, suffix), 'w').write(MOD % dict( + imports='\nimport '.join(imports), doc=doc, name=name, src=src, thm=thm, stmt=stmt)) + res.append((m, thm, stmt)) + for i, (lo, hi) in enumerate(M['scal']['batches']): + mod('Scal%d' % i, SCAL['imports'] + [raw], 'scal%d_ok' % i, SCAL['scal'] % dict(S, lo=lo, n=hi - lo) + ' = true', + 'scalar identity E3 E5 for the sources %d .. %d' % (lo, hi - 1)) + mod('YChk', SCAL['imports'] + [raw], 'ychk_ok', SCAL['ychk'] % dict(S, v=v) + ' = true', 'the y -> y adds, E4') + par = '%s.Gen.%sPar' % (base, name) + open('%s/Gen/%sPar.lean' % (out, name), 'w').write( + 'import %s\nimport %s\n/-! Parameters `GLab.Par` of the label check of `GXD.%s.raw` (h, registers, trie depth, K, frame table).\n' + 'Generated by checks/wht26/gx-data/py/gxgen.py (do not edit). -/\nnamespace GXD.%s\nopen GXD\n' + 'noncomputable def par : GLab.Par := %s\nend GXD.%s\n' + % (LAB['imports'][0], raw, name, name, LAB['par'] % dict(h=h, n=n, d=L['d'], K=L['K']), name)) + paths = [format(i, '0%db' % L['ts']) for i in range(1 << L['ts'])] if L['ts'] else [''] + for i, pth in enumerate(paths): + mod('Tab%d' % i, LAB['imports'] + [raw], 'tab%d_ok' % i, + LAB['tab'] % dict(h=h, sub='tab_n' + pth if pth else 'tab') + ' = true', + 'E0: subtrie %d of %d of the frame table (codes of reduced echelon bases)' % (i, len(paths))) + for i in range(L['nseg']): + mod('Seg%d' % i, [par], 'seg%d_ok' % i, + LAB['seg'] % dict(gs='seg%d' % i, i=i, j=i + 1, rs='rs%d' % i) + ' = true', + 'E1: replay of the gates %d .. %d (phase %s) and their block ranks' % ( + M['cuts'][i], M['cuts'][i + 1] - 1, 'A' if i < L['nsegA'] else 'B')) + mod('SegF', [par], 'segF_ok', LAB['seg'] % dict(gs='fins', i=L['nseg'], j=L['nseg'] + 1, rs='rF') + ' = true', + 'E1: the final climbs and their block ranks') + if LAB['end']: + mod('End', LAB['end_imports'] + [par], 'end_ok', LAB['end'] % dict(v=v, a=L['nsegA'], f=L['nseg'] + 1) + ' = true', + 'E1 E2: frames at the start, at the scatter, at the end') + return res + + +def nest(xs): + return ' ++ ('.join(xs) + ')' * (len(xs) - 1) if xs else '[]' + + +def write_hist(D, M, name, src, out, L): + """kernel counts of the block ranks on the EXPLICIT rank lists rA, rB, rF (no replay)""" + base = out[len(ROOT):].replace('/', '.') + h, rs = D['h'], M['lab']['rs'] + ph = {'A': sum(rs[:L['nsegA']], []), 'B': sum(rs[L['nsegA']:], []), 'F': M['lab']['rF']} + top = max(max(x) if x else 0 for x in ph.values()) + cop = [M['dim'][f] for _, f in D['ret']] + tot = {r: sum(x.count(r) for x in ph.values()) + cop.count(r) for r in range(1, max(top, max(cop)) + 1)} + assert {r: c for r, c in tot.items() if c} == M['hist'], 'histogram of the rank lists differs from the mirror' + lines = ['/-- block ranks of phase A / phase B, in order (the lists of the replay segments) -/', + 'noncomputable def rA : List Nat := ' + nest(['rs%d' % i for i in range(L['nsegA'])]), + 'noncomputable def rB : List Nat := ' + nest(['rs%d' % i for i in range(L['nsegA'], L['nseg'])])] + names = [] + for X, lst in sorted(ph.items()): + l = 'r' + X + lines.append('theorem rankBound%s : wsumK (SSC.wGt %d) %s 0 = 0 := by decide +kernel' % (X, top, l)) + lines += ['theorem rank%s%d_ok : wsumK (SSC.wEq %d) %s 0 = %d := by decide +kernel' % (X, r, r, l, lst.count(r)) + for r in range(top + 1)] + names += ['rankBound' + X] + ['rank%s%d_ok' % (X, r) for r in range(top + 1)] + txt = ('import Work.GCert.Data.Count\nimport %s.Gen.%s\n' % (base, name) + + '/-! Kernel count of the BLOCK RANKS of the gcert/1 certificate `GXD.%s.raw` (h = %d) on the explicit rank lists\n' + '`rA`, `rB`, `rF` (phase A, phase B, final climbs): `wsumK (SSC.wEq r) l 0` blocks of rank `r`, none above %d\n' + '(`GXD.sum_of_wsumK` turns a count into `(l.map wt).sum` = `SSC.wsum wt l`).\n' + 'The %d scratch copies (ranks %s) are not in these lists. Whole invocation, by rank: %s.\n' + 'Source: %s. Generated by checks/wht26/gx-data/py/gxgen.py (do not edit). -/\n' + 'set_option maxRecDepth 100000\nnamespace GXD.%s\nopen GXD\n' % ( + name, h, top, len(cop), sorted(set(cop)), M['hist'], src, name) + '\n'.join(lines) + + '\nend GXD.%s\n' % name + '\n'.join('#print axioms GXD.%s.%s' % (name, x) for x in names[:2]) + '\n') + open('%s/Gen/%sHist.lean' % (out, name), 'w').write(txt) + return '%s.Gen.%sHist' % (base, name) + + +def write_price(D, M, name, src, out, L): + """Mathlib module: the price of the rank lists rA, rB, rF from the kernel counts, and of one whole invocation""" + base = out[len(ROOT):].replace('/', '.') + rs = M['lab']['rs'] + ph = {'A': sum(rs[:L['nsegA']], []), 'B': sum(rs[L['nsegA']:], []), 'F': M['lab']['rF']} + top = max(max(x) if x else 0 for x in ph.values()) + cop = [M['dim'][f] for _, f in D['ret']] + tm = lambda cnt: ' + '.join('%d * φ %d' % (n, r) for r, n in sorted(cnt.items()) if n) or '0' + thms = '' + for X in 'ABF': + cnt = {r: ph[X].count(r) for r in range(1, top + 1)} + thms += ''' +/-- price of the blocks of %s, from the kernel counts -/ +theorem r%s_cost (φ : ℕ → ℝ) : rcost φ r%s = %s := by + rw [GXD.rcost_wsumK φ r%s %d rankBound%s] + simp only [Finset.sum_range_succ, Finset.sum_range_zero, %s] + norm_num [bcost] +''' % ({'A': 'phase A', 'B': 'phase B', 'F': 'the final climbs'}[X], X, X, tm(cnt), X, top, X, + ', '.join('rank%s%d_ok' % (X, r) for r in range(top + 1))) + copies = tm({r: cop.count(r) for r in set(cop)}) + txt = '''import Work.GCert.Data.Price +import %(base)s.Gen.%(name)sHist + +/-! +# (key: gx-data) gcert/1 certificate `%(name)s` (h = %(h)d): the price of one invocation + +GENERATED by checks/wht26/gx-data/py/gxgen.py from %(src)s. No `sorry`. +`rA_cost`, `rB_cost`, `rF_cost`: the price of the block rank lists of phase A, phase B and the final climbs +(lists `GXD.%(name)s.rA / rB / rF`, counted by the kernel in `Gen.%(name)sHist`); +`inv_cost`: with the %(nc)d scratch copies (%(copies)s) the blocks of ONE invocation cost +`invPrice φ` = %(terms)s; `inv_moves`: they stand for `R h + 2 v (h - 1) + cst = %(N)d` unit moves. +-/ + +namespace GXD.%(name)s +open GXD OAI.PowerSaving.CB +%(thms)s +/-- price of the blocks of ONE invocation (x roles, y roles, slots, scratch copies), by rank -/ +def invPrice (φ : ℕ → ℝ) : ℝ := %(terms)s + +/-- **Price of ONE invocation** in the shape of `GX.Lab.cost`: phase A, the scratch copies, phase B, final climbs. -/ +theorem inv_cost (φ : ℕ → ℝ) : rcost φ rA + (%(copies)s) + rcost φ rB + rcost φ rF = invPrice φ := by + rw [rA_cost, rB_cost, rF_cost] + unfold invPrice + ring + +theorem inv_moves : invPrice (fun r => (r:ℝ)) = %(R)d * %(h)d + 2 * %(v)d * (%(h)d - 1) + %(cst)d := by + unfold invPrice + norm_num + +theorem inv_count : invPrice (fun _ => (1:ℝ)) = %(count)d := by + unfold invPrice + norm_num + +end GXD.%(name)s +#print axioms GXD.%(name)s.inv_cost +#print axioms GXD.%(name)s.inv_moves +''' % dict(base=base, name=name, h=D['h'], src=src, nc=len(cop), copies=copies, terms=tm(M['hist']), N=D['N'], thms=thms, + R=D['R'], v=D['v'], cst=D['cst'], count=sum(M['hist'].values())) + open('%s/%sPrice.lean' % (out, name), 'w').write(txt) + return '%s.%sPrice' % (base, name) + + +def write_cert(D, M, name, src, out, chk, L): + """Cert: THE LABEL HALF (aux, valid : GLab.Valid raw aux, lab_cost, lab_price) -- compiles without the scalar half; + ScalOK: the scalar half `scalOK : GS.ScalOK raw` (needs Work/GCert/Scalar/Main).""" + base = out[len(ROOT):].replace('/', '.') + bs = M['scal']['batches'] + hs = '' + for i, (lo, hi) in enumerate(bs): + lo_pf = 'Nat.zero_le t' if i == 0 else 'Nat.le_of_not_lt h%d' % (i - 1) + if i + 1 < len(bs): + hs += ' if h%d : t < %d then ⟨%d, %d, %s, h%d, GS.XRun.of_check scal%d_ok⟩ else\n' % (i, hi, lo, hi - lo, lo_pf, i, i) + else: + hs += ' ⟨%d, %d, %s, Nat.lt_of_lt_of_le ht (by decide), GS.XRun.of_check scal%d_ok⟩' % (lo, hi - lo, lo_pf, i) + terms = ' + '.join('%d * φ %d' % (n, r) for r, n in M['hist'].items()) + info = dict(base=base, name=name, h=D['h'], src=src, v=D['v'], R=D['R'], nc=len(D['ret']), cst=D['cst'], N=D['N'], + nb=len(bs), terms=terms, hs=hs) + txt = '''import Work.GCert.Scalar.Main +import %(imps)s +/-! # (key: gx-data) gcert/1 certificate `%(name)s` (h = %(h)d): THE SCALAR HALF `scalOK : GS.ScalOK raw` +GENERATED by checks/wht26/gx-data/py/gxgen.py from %(src)s. No `sorry`. +Kernel checks `scal_ok` (%(nb)d source batches) and `ychk_ok`. -/ +namespace GXD.%(name)s +open GXD +theorem scalOK : GS.ScalOK raw where + hv := by decide + hs := fun t ht => +%(hs)s + hyc := fun t ht => ⟨0, %(v)d, Nat.zero_le t, Nat.lt_of_lt_of_le ht (by decide), GS.YRun.of_check ychk_ok⟩ +end GXD.%(name)s +#print axioms GXD.%(name)s.scalOK +''' % dict(info, imps='\nimport '.join(c[0] for c in chk if 'Scal' in c[0] or 'YChk' in c[0])) + open('%s/%sScalOK.lean' % (out, name), 'w').write(txt) + # ---- the label half + nA, ns, ts = L['nsegA'], L['nseg'], L['ts'] + cop = sorted(set(M['dim'][f] for _, f in D['ret'])) + assert len(cop) == 1, 'scratch copies of several ranks %s: lab_cost of gxbind.py assumes one' % cop + + def tabpf(path): + if len(path) == ts: + return 'tab%d_ok' % (int(path, 2) if path else 0) + return '(GLab.tabK_node _ _ _ %s %s)' % (tabpf(path + '0'), tabpf(path + '1')) + + def runpf(a, b): + return 'GLab.Run.of_seg seg%d_ok' % a if a + 1 == b else 'GLab.Run.append (GLab.Run.of_seg seg%d_ok) (%s)' % (a, runpf(a + 1, b)) + + def run(X, a, b): + segs = ['seg%d' % i for i in range(a, b)] + return '''theorem gates%(X)s_eq : raw.gates%(X)s = %(cat)s := by + show List.flatten %(lst)s = _ + simp only [List.flatten_cons, List.flatten_nil, List.append_nil] +/-- the replay of phase %(X)s, composed from its kernel-checked segments -/ +theorem run%(X)s : GLab.Run par st%(a)d raw.gates%(X)s st%(b)d r%(X)s := by + rw [gates%(X)s_eq] + exact %(pf)s +''' % dict(X=X, cat=nest(segs), lst=ll_(segs), a=a, b=b, pf=runpf(a, b)) + lab = 'valid.lab S Ro cf hMA hMAi hMB hMBi reg hCc hreg' + txt = '''import Work.GCert.Labels.Main +import %(base)s.%(name)sPrice +import %(imps)s +/-! # (key: gx-data) gcert/1 certificate `%(name)s` (h = %(h)d): THE LABEL HALF and its price +GENERATED by checks/wht26/gx-data/py/gxgen.py from %(src)s. No `sorry`. +`v = %(v)d` ports, `R = %(R)d` slots, %(nc)d scratch copies of rank %(c)d, copy cost `cst = %(cst)d`, `N = %(N)d` unit moves. +* `aux : GLab.Aux`, `valid : GLab.Valid raw aux`: frame table (`tab_ok` composed by `tabK_node`), the replays of phase A + and phase B (`seg_ok` composed by `Run.append`), the final climbs (`segF_ok`, `fin_ok`), the ends (`end_ok`); +* `lab_cost`, `lab_price`: for ANY scalar half `S` the label half `valid.lab S ..` costs + `rcost rA + card C * bcost %(c)d + rcost rB + rcost rF` = `invPrice φ` = %(terms)s + (`Gen.%(name)sHist`, `%(name)sPrice`) when there are %(nc)d copies. -/ +set_option maxRecDepth 100000 +namespace GXD.%(name)s +open GXD OAI.PowerSaving OAI.PowerSaving.CB +theorem raw_h : raw.h = %(h)d := rfl +theorem raw_v : raw.v = %(v)d := rfl +theorem raw_R : raw.R = %(R)d := rfl +/-- what the label checks read next to `raw` -/ +noncomputable def aux : GLab.Aux := ⟨par, st0, st%(a)d, st%(n)d, st%(f)d, fins, rA, rB, rF⟩ +theorem fin_ok : GLab.noAdds fins = true := by decide +kernel +theorem cen_ok : (raw.ret.map Prod.fst).all (fun r => Nat.beq (GLab.cdim (par.tab.get (st%(a)d.get r))) %(c)d) = true := by + decide +kernel +theorem tab_ok : GLab.tabK par.h par.tab = true := %(tabpf)s +%(runA)s%(runB)s/-- **the kernel-checked label facts** of the certificate -/ +theorem valid : GLab.Valid raw aux where + hn := rfl + tab := tab_ok + runA := runA + runB := runB + runF := GLab.Run.of_seg segF_ok + fin := fin_ok + ends := end_ok +theorem cen_dim (r : Nat) (hr : r ∈ raw.ret.map Prod.fst) : GLab.cdim (par.tab.get (st%(a)d.get r)) = %(c)d := + Nat.eq_of_beq_eq_true (List.all_eq_true.mp cen_ok r hr) +/-- price of the label half over ANY scalar half -/ +theorem lab_cost {C : Type} [Fintype C] [DecidableEq C] (S : GX.Scal (Fin raw.v) (Fin raw.R) C) + {emb : CR.L3 (Fin raw.v) (Fin raw.R) → Nat} {un : Nat → CR.L3 (Fin raw.v) (Fin raw.R)} + (Ro : GLab.Roles raw.v raw.R emb un) (cf : Co → SSC.Coef) (hMA) (hMAi) (hMB) (hMBi) + (reg : C → Nat) (hCc) (hreg) (φ : ℕ → ℝ) : + (%(lab)s).cost φ + = rcost φ rA + (Fintype.card C : ℝ) * bcost φ %(c)d + rcost φ rB + rcost φ rF := by + obtain ⟨h1, h2, h3, h4⟩ := valid.lab_ranks S Ro cf hMA hMAi hMB hMBi reg hCc hreg + have h5 : ∀ k, bcost φ (((%(lab)s).cen k).dim) = bcost φ %(c)d := + fun k => by rw [h4 k]; exact congrArg (bcost φ) (cen_dim _ (hreg k)) + rw [GX.Lab.cost, h1, h2, h3, Finset.sum_congr rfl (fun k _ => h5 k), Finset.sum_const, Finset.card_univ, nsmul_eq_mul] + rfl +/-- **the label half costs one invocation price** (`invPrice`, by rank, from the kernel counts) -/ +theorem lab_price {C : Type} [Fintype C] [DecidableEq C] (S : GX.Scal (Fin raw.v) (Fin raw.R) C) + {emb : CR.L3 (Fin raw.v) (Fin raw.R) → Nat} {un : Nat → CR.L3 (Fin raw.v) (Fin raw.R)} + (Ro : GLab.Roles raw.v raw.R emb un) (cf : Co → SSC.Coef) (hMA) (hMAi) (hMB) (hMBi) + (reg : C → Nat) (hCc) (hreg) (hC : Fintype.card C = %(nc)d) (φ : ℕ → ℝ) : + (%(lab)s).cost φ = invPrice φ := by + rw [lab_cost S Ro cf hMA hMAi hMB hMBi reg hCc hreg φ, hC, ← inv_cost φ] + norm_num [bcost] +end GXD.%(name)s +#print axioms GXD.%(name)s.valid +#print axioms GXD.%(name)s.lab_price +''' % dict(info, imps='\nimport '.join(c[0] for c in chk if 'Scal' not in c[0] and 'YChk' not in c[0]), c=cop[0], a=nA, n=ns, + f=ns + 1, tabpf=tabpf(''), runA=run('A', 0, nA), runB=run('B', nA, ns), lab=lab) + open('%s/%sCert.lean' % (out, name), 'w').write(txt) + return ['%s.%sCert' % (base, name), '%s.%sScalOK' % (base, name)] + + +def ll_(xs): + return '[' + ', '.join(xs) + ']' + + +def final_module(name, cname, d, dx, g, out): + """.lean: the final theorems OVER ANY SCALAR HALF (compiles as soon as Cert does): label half, price, + unit list, rate fact and gx-chain's `GX.wht_of_halves` are all closed; what is left is `S : GX.Scal` with its + gate matrices = the ordered products of the adds of `raw` (gx-scalar).""" + h, v, R, W, m, nc = g['h'], g['v'], g['R'], d['W'], d['m'], g['nc'] + X = 'GXD.%s' % cname + args = 'S Ro cf hMA hMAi hMB hMBi reg hCc hreg' + + def thm(nm, rate, A, B, s, ux): + return f''' +/-- **Walsh-Hadamard transform, whole-block recursion on the bridged word B_2 with the gcert/1 circuit `{cname}`**, +over any scalar half of `{X}.raw`: the statement `WHTGoal` of `WHTCheck/Challenge.lean` with `1 - 2/10^11` +replaced by `1 - {A}/10^{B}`. -/ +theorem {nm} (Ro : GLab.Roles {X}.raw.v {X}.raw.R emb un) + (hMA : S.MA = SSC.matP un (GLab.mic cf ({X}.raw.gatesA.flatMap GXD.Gate.adds))) + (hMAi : S.MAi = SSC.matPinv un (GLab.mic cf ({X}.raw.gatesA.flatMap GXD.Gate.adds))) + (hMB : S.MB = SSC.matP un (GLab.mic cf ({X}.raw.gatesB.flatMap GXD.Gate.adds))) + (hMBi : S.MBi = SSC.matPinv un (GLab.mic cf ({X}.raw.gatesB.flatMap GXD.Gate.adds))) + (reg : C → Nat) (hCc : ∀ k (q : Fin {X}.raw.R), S.Cc k q ≠ 0 → reg k = 2 * {X}.raw.v + q.val) + (hreg : ∀ k, reg k ∈ {X}.raw.ret.map Prod.fst) (hC : Fintype.card C = {nc}) : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - {A}/(10:ℝ)^{B}) W := + GX.wht_of_halves S ({X}.valid.lab {args}) + (by rw [Fintype.card_fin]; decide) {m} {W} (by rw [Fintype.card_fin]; rfl) + (by rw [Fintype.card_fin, Fintype.card_fin]; rfl) (by norm_num) BlockAccounting.blocks{rate} + (fun φ => by + rw [{X}.lab_price {args} hC φ, Fintype.card_fin, Fintype.card_fin] + exact BridgeRate.{name}.unit_cost{ux} φ) + {s} (1 - {A}/(10:ℝ)^{B}) (by norm_num) (by norm_num) BlockAccounting.fold_{rate} + +/-- the same from the FIVE scalar identities of gx-scalar's matrices of `{X}.raw` (`Work/GCert/Data/Glue.lean`) -/ +theorem {nm.replace('_of_scal', '_of_ids')} (hv : 0 < {X}.raw.v) + (hAi : GS.MAi {X}.raw hv * GS.MA {X}.raw hv = 1) (hBi : GS.MBi {X}.raw hv * GS.MB {X}.raw hv = 1) + (hx : ∀ (t : Fin {X}.raw.v) (j : GS.Rl {X}.raw), (GS.MB {X}.raw hv * CR.scatM (GS.Jrm {X}.raw * GS.Ccm {X}.raw) + * GS.MA {X}.raw hv) (CR.lX t) j = if CR.lX t = j then 1 else 0) + (hy : ∀ (i : GS.Rl {X}.raw) (t : Fin {X}.raw.v), (GS.MB {X}.raw hv * CR.scatM (GS.Jrm {X}.raw * GS.Ccm {X}.raw) + * GS.MA {X}.raw hv) i (CR.lY t) = if i = CR.lY t then 1 else 0) + (hid : ∀ S t : Fin {X}.raw.v, (GS.MB {X}.raw hv * CR.scatM (GS.Jrm {X}.raw * GS.Ccm {X}.raw) + * GS.MA {X}.raw hv) (CR.lY S) (CR.lX t) = if S = t then 1 else 0) : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - {A}/(10:ℝ)^{B}) W := + {nm} (GXD.scalOf {X}.raw hv hAi hBi hx hy hid) GS.toCoef (GXD.roles {X}.raw hv) + (GXD.scalOf_MA _ hv hAi hBi hx hy hid) (GXD.scalOf_MAi _ hv hAi hBi hx hy hid) + (GXD.scalOf_MB _ hv hAi hBi hx hy hid) (GXD.scalOf_MBi _ hv hAi hBi hx hy hid) + (GXD.reg {X}.raw) (GXD.reg_slot {X}.raw hv hAi hBi hx hy hid) (GXD.reg_mem {X}.raw) + (by rw [Fintype.card_fin]; decide) +''' + txt = f'''import Work.GCert.Chain.End +import Work.GCert.Data.Glue +import Work.GCert.Data.{cname}Cert +import Work.GCert.Data.Inst{name} + +/-! +# (key: gx-data) Bridged word B_2 with the gcert/1 circuit `{cname}` (h = {h}, m = {m}): final theorems over a scalar half +GENERATED by checks/wht26/gx-data/py/gxrate.py. No `sorry`. +`GX.wht_of_halves` (gx-chain) on the label half `{X}.valid` (kernel checks of `Work/GCert/Data/Gen/{cname}*`), its +price `{X}.lab_price`, the unit list `BlockAccounting.blocks{name}` (`W = {W}` live roles) and the rate facts +`fold_{name}` (`1 - {d['A']}/10^{d['B']}`), `fold_{name}x` (`1 - {dx['A']}/10^{dx['B']}`). +The ONLY hypothesis left is the scalar half: `S : GX.Scal (Fin {v}) (Fin {R}) C` whose gate matrices are the ordered +products of the adds of `raw` (`hMA .. hMBi`), with `{nc}` copies read from the retained registers (`reg`, `hCc`, `hreg`, `hC`); +`wht_{name}_of_ids`, `wht_{name}x_of_ids`: the same from the five identities `hAi hBi hx hy hid` of gx-scalar's matrices +`GS.MA GS.MAi GS.MB GS.MBi GS.Jrm GS.Ccm` of `raw` (the fields of the planned `GS.ScalOK`). +-/ + +namespace OAI +namespace PowerSaving +namespace WHT +open BlockWHT + +variable {{C : Type}} [Fintype C] [DecidableEq C] (S : GX.Scal (Fin {X}.raw.v) (Fin {X}.raw.R) C) + {{emb : CR.L3 (Fin {X}.raw.v) (Fin {X}.raw.R) → Nat}} {{un : Nat → CR.L3 (Fin {X}.raw.v) (Fin {X}.raw.R)}} + (cf : GXD.Co → SSC.Coef) +''' + thm('wht_' + name + '_of_scal', name, d['A'], d['B'], d['s'], '') + thm('wht_' + name + 'x_of_scal', name + 'x', dx['A'], dx['B'], dx['s'], '_x') + f''' +end WHT +end PowerSaving +end OAI +#print axioms OAI.PowerSaving.WHT.wht_{name}_of_scal +#print axioms OAI.PowerSaving.WHT.wht_{name}x_of_scal +#print axioms OAI.PowerSaving.WHT.wht_{name}_of_ids +#print axioms OAI.PowerSaving.WHT.wht_{name}x_of_ids +''' + open(out + '%s.lean' % name, 'w').write(txt) + + +def main_module(name, cname, d, dx, out): + """Main.lean: the CLOSED theorems (what the comparator solution cites). WRITTEN against gx-scalar's planned + `GS.ScalOK` (fields / theorems hv hAi hBi hx hy hid, SCALAR v2); compiles when Work/GCert/Scalar/Main.lean exists.""" + K = 'GXD.%s.scalOK' % cname + + def thm(sfx, A, B): + return f''' +/-- **Walsh-Hadamard transform in `O(n (log n)^(1 - {A}/10^{B}))`-type time bounds: whole-block recursion on the bridged +word B_2 with the kernel-checked gcert/1 circuit `{cname}`.** -/ +theorem wht_main_{name}{sfx} : + ∃ solve W, WHTProgram solve W ∧ BlockWHT.WHTTimeBoundsAt (1 - {A}/(10:ℝ)^{B}) W := + wht_{name}{sfx}_of_ids {K}.hv {K}.hAi {K}.hBi {K}.hx {K}.hy {K}.hid +''' + txt = f'''import Work.GCert.Scalar.Main +import Work.GCert.Data.{cname}ScalOK +import Work.GCert.Data.{name} + +/-! +# (key: gx-data) Bridged word B_2 with the gcert/1 circuit `{cname}`: THE CLOSED THEOREMS +GENERATED by checks/wht26/gx-data/py/gxrate.py. No `sorry`. +`wht_{name}_of_ids` (label half, price, unit list, rate fact, gx-chain's end theorem) applied to the scalar half +`{K} : GS.ScalOK GXD.{cname}.raw` (kernel checks `scal_ok`, `ychk_ok`; soundness: gx-scalar). +-/ + +namespace OAI +namespace PowerSaving +namespace WHT +open BlockWHT +''' + thm('', d['A'], d['B']) + thm('x', dx['A'], dx['B']) + f''' +end WHT +end PowerSaving +end OAI +#print axioms OAI.PowerSaving.WHT.wht_main_{name} +#print axioms OAI.PowerSaving.WHT.wht_main_{name}x +''' + open(out + '%sMain.lean' % name, 'w').write(txt) diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxconv.py b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxconv.py new file mode 100644 index 0000000000..49ebb65973 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxconv.py @@ -0,0 +1,131 @@ +"""gxconv.py: gcert/0 -> gcert/1 for files whose in-place pair op SCALES its target +(`op dest ctrl ca cb`: dest := ca dest + cb ctrl with ca not in {1}; #193 has ca = -2), questions.md D2. +COPY of `convert` of gx.py with ONE change: a scaling is not a gate, it changes the +UNIT in which the register is stored. wanted(r) = lam[r] * stored(r), lam = 1 at the start; + op dest ctrl ca cb : lam[dest] *= ca ; stored(dest) += (cb lam[ctrl] / lam[dest]) stored(ctrl) + any other add t += k s : stored(t) += (k lam[s] / lam[t]) stored(s) + scatter y_t += coef(t, k) total_k : coefficient coef(t, k) * lam[slot of total k] (a TABLE if some lam != 1) +Only slots may be scaled (tested: lam = 1 on every x and y register, always), so the x / y rows and columns of +the product (E5: hx, hy, hid) are those of the unscaled circuit; frames, blocks and N are untouched. +The result is tested by the reference checker `gx.check1` (labels and scalars) before it is written. + +usage: gxconv.py out= [noext] +""" +import sys, time +from fractions import Fraction as Fr +import gxpaths +import gx +import gxrun +need = gx.need + + +def convert(c0): + need(c0["format"] == "gcert/0", "input is not gcert/0") + v, h, R = c0["v"], c0["h"], c0["R"] + ev = c0["events"] + cen = [n for n, e in enumerate(ev) if e[0] == "centre"] + need(cen == list(range(cen[0], cen[0] + len(cen))), "centres are not contiguous: no single scatter cut") + A, B, ret = [], [], [] + neg, openq, lam, nsc = set(), {}, {}, 0 + L = lambda r: lam.get(r, Fr(1)) + + def co(t, s, a, b=1): # stored coefficient of the wanted add t += (a/b) s + w = Fr(a, b) * L(s) / L(t) + return [w.numerator, w.denominator] + + def o(f, s, tg, ex=()): + return ["out", f, s, [[t] + co(t, s, a, b) for t, a, b in tg], list(ex)] + + def i(f, t, sr): + return ["in", f, t, [[s] + co(t, s, a, b) for s, a, b in sr]] + scat_lam = None + for n, e in enumerate(ev): + k = e[0] + out = A if n < cen[0] else B + if k in ("read0", "undo", "uninj"): + continue + if k == "inj": + need(e[2] not in neg, "inj reads a negated x register") + out.append(o(e[3], e[2], [[e[1], 1, 1]])) + elif k == "op": + if e[3] != 1: + need(e[3] != 0 and e[1] >= 2 * v, "op scales a register that is not a slot (or by 0)") + lam[e[1]] = L(e[1]) * e[3] + nsc += 1 + out.append(o(e[5], e[2], [[e[1], e[4], 1]])) + elif k == "centre": + ret.append([e[2], e[1], e[3]]) + if scat_lam is None: + scat_lam = dict(lam) + elif k == "gread": + hit = set(t for t, _, _ in e[3]) + out.append(o(e[2], e[1], [[v + t, a, b] for t, a, b in e[3]], [v + t for t in e[4] if t not in hit])) + elif k == "rread": + out.append(o(e[2], e[1], [[v + t, a, b] for t, a, b in e[3]])) + elif k == "ysh": + out.append(o(e[4], e[2], [[e[1], e[3], 1]])) + elif k == "yw": + out.append(o(e[4], e[2], [[e[1], e[3][0], e[3][1]]])) + elif k == "kd": + out.append(o(e[3], e[2], [[e[1], -1 if e[2] in neg else 1, 1]])) + elif k == "ktr": + q = tuple(e[1]) + need(e[2] == gx.KJ, "ktr matrix is not 1 - J/2") + x1, rest = q[0], list(q[1:]) + if q not in openq: + out.append(i(e[3], x1, [[r, 1, 1] for r in rest])) + out.append(o(e[3], x1, [[r, -1, 2] for r in rest])) + out.append(i(e[3], x1, [[r, 1, 1] for r in rest])) + openq[q] = n + neg.add(x1) + else: + out.append(i(e[3], x1, [[r, -1, 1] for r in rest])) + out.append(o(e[3], x1, [[r, 1, 2] for r in rest])) + out.append(i(e[3], x1, [[r, -1, 1] for r in rest])) + del openq[q] + neg.discard(x1) + else: + raise AssertionError("unknown event kind %r" % k) + need(all(r >= 2 * v for r, x in lam.items() if x != 1), "an x or y register is scaled") + need(not openq and not neg, "a K block is not closed") + ret = sorted(ret) + need([z[0] for z in ret] == list(range(len(ret))), "retained totals are not 0 .. n-1") + sin, sout = Fr(*c0["scat"]["inside"]), Fr(*c0["scat"]["outside"]) + sl = [(scat_lam or {}).get(z[1], Fr(1)) for z in ret] + if all(x == 1 for x in sl): + scat = dict(inside=c0["scat"]["inside"], outside=c0["scat"]["outside"]) + else: + need(len(ret) == h, "star rule with a number of totals other than h") + scat = dict(table=[[[kk, (w * sl[kk]).numerator, (w * sl[kk]).denominator] + for kk in range(h) for w in [sin if c0["ports"][t] >> kk & 1 else sout]] for t in range(v)]) + ext = sorted([z[3], z[1]] for z in c0["gauge"] if z[5]) + c1 = dict(format="gcert/1", derived_from=c0["name"] + " (gcert/0; %d scalings as units, gxconv.py)" % nsc, p=c0["p"], + h=h, v=v, R=R, cst=c0["cst"], N=c0["N"], ports=c0["ports"], frames=c0["frames"], start=c0["start"], + final=c0["final"], ext=ext, ret=ret, scat=scat, A=A, B=B, blocks=c0["blocks"]) + return c1, nsc, sorted(set(str(x) for x in lam.values())), sum(1 for x in sl if x != 1) + + +if __name__ == "__main__": + t0 = time.time() + opt = dict(a.split("=", 1) for a in sys.argv[2:] if "=" in a) + c0 = gxrun.load(sys.argv[1]) + c1, nsc, lams, nsl = convert(c0) + c1["two_hosts"] = sorted(2 * c0["v"] + i for i, hs in enumerate(c0["hosts"]) if len(hs) > 1) + if "noext" in sys.argv and c1["ext"]: # as gxrun.py: exterior gauges become first blocks + for r, f in c1["ext"]: + d = str(len(c1["frames"][f])) + c1["start"][r] = 0 + c1["blocks"]["s"][d] = c1["blocks"]["s"].get(d, 0) + 1 + c1["N"] += int(d) + c1["blocks"]["s"] = {k: c1["blocks"]["s"][k] for k in sorted(c1["blocks"]["s"], key=int)} + c1["derived_from"] += ", exterior gauges turned into first blocks" + c1["ext"] = [] + st = {} + gx.check1(c1, scalar=True, stats=st) + print("ACCEPTED by gx.check1: %s h=%d v=%d R=%d N=%d gates A=%d B=%d ext=%d; scalings %d, final units %s, scaled totals %d, " + "scatter %s, stats %s (%.1fs)" % (c0["name"], c1["h"], c1["v"], c1["R"], c1["N"], len(c1["A"]), len(c1["B"]), + len(c1["ext"]), nsc, lams, nsl, "table" if "table" in c1["scat"] else "star", st, + time.time() - t0)) + if "out" in opt: + gxrun.dump(c1, opt["out"]) + print("written", opt["out"]) diff --git a/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxcore.py b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxcore.py new file mode 100644 index 0000000000..3e3f0a3076 --- /dev/null +++ b/research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxcore.py @@ -0,0 +1,375 @@ +"""gxcore.py: gcert/1 JSON -> normal data D, PYTHON MIRROR of the two Lean checks +(label side: E0 frames, E1 pairs, E1/E2/E6 replay in segments; scalar side: E3 kinds, E4 bracket, E5 replay +in source batches, E7), derived data (distinct climbs, cut states, block histogram) and kernel sizes. +Own code; the reference is gx.py (check1), not imported. Python 3, standard library only.""" +import json, gzip +from collections import Counter +from math import gcd + + +class Reject(Exception): + pass + + +def need(c, msg): + if not c: + raise Reject(msg) + + +def load(path): + c = json.load(gzip.open(path, "rt") if path.endswith(".gz") else open(path)) + need(c.get("format") == "gcert/1", "E0: format is not gcert/1") + return c + + +def co(num, den): + need(den > 0, "E0: denominator") + return (num < 0, abs(num), den) + + +def normal(c): + """the Lean-facing data: gates as tuples, coefficients (neg, num, den), ret by total""" + def gate(g): + if g[0] == "out": + return ("out", g[1], g[2], [(t, co(a, b)) for t, a, b in g[3]], list(g[4])) + need(g[0] == "in", "E0: unknown gate kind %r" % (g[0],)) + return ("in", g[1], g[2], [(s, co(a, b)) for s, a, b in g[3]]) + ret = sorted(c["ret"]) + need([k for k, _, _ in ret] == list(range(len(ret))), "E2: retained totals numbered 0..") + sc = c["scat"] + scat = ("table", [[(k, co(a, b)) for k, a, b in row] for row in sc["table"]]) if "table" in sc else \ + ("star", co(*sc["inside"]), co(*sc["outside"])) + return dict(h=c["h"], v=c["v"], R=c["R"], N=c["N"], cst=c["cst"], ports=list(c["ports"]), + frames=[list(f) for f in c["frames"]], start=list(c["start"]), final=list(c["final"]), + ext=[tuple(e) for e in c.get("ext", [])], ret=[(s, f) for _, s, f in ret], scat=scat, + A=[gate(g) for g in c["A"]], B=[gate(g) for g in c["B"]], + blocks={k: {int(r): n for r, n in c["blocks"][k].items()} for k in "xysc"}) + + +def regs(g): + return [g[2]] + [t for t, _ in g[3]] + (g[4] if g[0] == "out" else []) + + +def adds(g): + """single adds (tgt, src, coef) in order""" + return [(t, g[2], k) for t, k in g[3]] if g[0] == "out" else [(g[2], s, k) for s, k in g[3]] + + +def reduce(u, basis): + for b in basis: + if u >> (b.bit_length() - 1) & 1: + u ^= b + return u + + +def echelon_ok(f): + piv = [b.bit_length() - 1 for b in f] + if any(b == 0 for b in f) or any(piv[i] <= piv[i + 1] for i in range(len(piv) - 1)): + return False + return all(not (b >> p & 1) for i, b in enumerate(f) for j, p in enumerate(piv) if i != j) + + +def par(x): + return bin(x).count("1") & 1 + + +def cls(D, r): + return "x" if r < D["v"] else "y" if r < 2 * D["v"] else "s" + + +# ---- label side ------------------------------------------------------------------------------------------ +def chk_frames(D): + """E0: ports; frame table reduced echelon, no repeats, zero first, full second""" + h, v, fr = D["h"], D["v"], D["frames"] + p = D["ports"] + need(len(p) == v == len(set(p)) and all(par(q) and 0 < q < 1 << h for q in p), "E0: ports") + need(len(fr) >= 2 and fr[0] == [] and fr[1] == [1 << i for i in range(h - 1, -1, -1)], "E0: frames 0 and 1") + need(all(echelon_ok(f) and all(b < 1 << h for b in f) for f in fr), "E0: frame table not reduced echelon") + need(len(set(map(tuple, fr))) == len(fr), "E0: frame table has repeats") + return [len(f) for f in fr] + + +def derive(D): + """distinct climbs in order of first use (NOT a check: plain replay of the frame ids)""" + cur, seen, pairs = list(D["start"]), set(), [] + + def go(r, f): + o = cur[r] + if o != f: + if (o, f) not in seen: + seen.add((o, f)) + pairs.append((o, f)) + cur[r] = f + for g in D["A"] + D["B"]: + for r in regs(g): + go(r, g[1]) + for r, f in enumerate(D["final"]): + go(r, f) + return pairs + + +def chk_pairs(D, dim, pairs): + """E1, level 2: every listed pair is a nested pair of the table; returns the mask-operation count""" + fr, n, work = D["frames"], len(D["frames"]), 0 + for a, b in pairs: + need(a < n and b < n and dim[a] < dim[b], "E1: pair (%d, %d) does not climb" % (a, b)) + need(all(reduce(u, fr[b]) == 0 for u in fr[a]), "E1: pair (%d, %d) is not nested" % (a, b)) + work += dim[a] * dim[b] + return work + + +def cut_points(D, gmax, wmax=210000): + """replay segments: each phase (A, B) is cut into k pieces of equal gate count, k = the least number with at + most `gmax` gates AND at most `wmax` work per piece on average (work = sum over gates of the dimension of the + gate's frame; measured at h = 22: about 1 ms of kernel time per unit, NOTES.md). + Cut points = gate counts in A ++ B (always 0, |A| and the end).""" + nA, nB = len(D["A"]), len(D["B"]) + cuts = [0] + for off, gs in ((0, D["A"]), (nA, D["B"])): + n = len(gs) + k = max(1, -(-n // gmax), -(-sum(len(D["frames"][g[1]]) for g in gs) // wmax)) + cuts += [off + (n * i) // k for i in range(1, k + 1)] + return sorted(set(cuts)) + + +def label_data(D, dim, cuts): + """for gx-labels (gcert-interface.md LABELS v1): ordered block ranks per replay segment, the final climbs as + gates without adds (same final frame, at most 32 registers, only registers that still climb), their ranks, + the largest number of registers named by one gate. Plain replay (the mirror has accepted the file).""" + cur, G = list(D["start"]), D["A"] + D["B"] + rs, most = [], 0 + for a, b in zip(cuts, cuts[1:]): + r = [] + for g in G[a:b]: + most = max(most, len(regs(g))) + for x in regs(g): + if cur[x] != g[1]: + r.append(dim[g[1]] - dim[cur[x]]) + cur[x] = g[1] + rs.append(r) + by = {} + for x, f in enumerate(D["final"]): + if cur[x] != f: + by.setdefault(f, []).append(x) + fins, rF = [], [] + for f in sorted(by): + for i in range(0, len(by[f]), 32): + xs = by[f][i:i + 32] + fins.append(("out", f, xs[0], [], xs[1:])) + rF += [dim[f] - dim[cur[x]] for x in xs] + return dict(rs=rs, fins=fins, rF=rF, most=max(most, 32 if fins else 0)) + + +def chk_replay(D, dim, pairs, cuts): + """E1 (labels), E2 (scatter cut), E6 (price), in the segments given by `cuts`. + Returns (states at the cuts, histogram by class, visits per segment).""" + h, v, R, fr = D["h"], D["v"], D["R"], D["frames"] + n = 2 * v + R + start, final, ext = D["start"], D["final"], dict(D["ext"]) + need(len(start) == len(final) == n, "E0: start / final") + for t in range(v): + need(fr[start[t]] == [D["ports"][t]] and final[t] == 1, "E1: x start / final") + f = fr[final[v + t]] + need(start[v + t] == 0 and len(f) == h - 1 and all(par(u & D["ports"][t]) == 0 for u in f), "E1: y start / final") + for r in range(2 * v, n): + need(start[r] == ext.get(r, 0) and final[r] == 1, "E1: slot start / final") + ok = set(pairs) + need(len(ok) == len(pairs), "E1: pair list has repeats") + cur = list(start) + H = {k: Counter() for k in "xysc"} + + def climb(r, f, where): + o = cur[r] + if o != f: + need((o, f) in ok, "E1: climb (%d, %d) is not a tested pair (%s, register %d)" % (o, f, where, r)) + H[cls(D, r)][dim[f] - dim[o]] += 1 + seg[dim[f] - dim[o]] += 1 + cur[r] = f + seg, segs = Counter(), [] + G, nA = D["A"] + D["B"], len(D["A"]) + states, visits = [], [] + need(cuts[0] == 0 and cuts[-1] == len(G) and cuts == sorted(cuts), "cut points") + for a, b in zip(cuts, cuts[1:]): + states.append(list(cur)) + vs = 0 + for i in range(a, b): + if i == nA: + scatter_cut(D, cur, dim, H, seg) + g = G[i] + rs = regs(g) + need(all(0 <= r < n for r in rs) and len(set(rs)) == len(rs), "E3: registers of gate %d" % i) + need(i >= nA or all(r < v or r >= 2 * v for r in rs), "E2: y role named in phase A (gate %d)" % i) + vs += len(rs) + for r in rs: + climb(r, g[1], "gate %d" % i) + visits.append(vs) + if b < len(G): + segs.append(seg) + seg = Counter() + if nA == len(G): + scatter_cut(D, cur, dim, H, seg) + states.append(list(cur)) + for r in range(n): + climb(r, final[r], "final") + segs.append(seg) + Hb = {k: dict(sorted(w.items())) for k, w in H.items()} + need(Hb == D["blocks"], "E6: block histogram differs from `blocks`") + N = sum(r * c for w in H.values() for r, c in w.items()) + need(N == D["N"] and N + sum(dim[f] for f in ext.values()) == R * h + 2 * v * (h - 1) + D["cst"], "E6: N") + need(sum(r * c for r, c in H["c"].items()) == D["cst"], "E6: cst") + return states, Hb, visits, [[w[r] for r in range(h + 1)] for w in segs] + + +def scatter_cut(D, cur, dim, H, seg): + v = D["v"] + if D["scat"][0] == "table": + need(len(D["scat"][1]) == v and all(k < len(D["ret"]) for row in D["scat"][1] for k, _ in row), "E2: scatter table") + else: + need(len(D["ret"]) == D["h"], "E2: one retained total per coordinate (star rule)") + for s, f in D["ret"]: + need(s >= 2 * v and cur[s] == f, "E2: retained slot %d is not at its frame" % s) + H["c"][dim[f]] += 1 + seg[dim[f]] += 1 + need(all(cur[v + t] == 0 for t in range(v)), "E2: a y role left frame 0 before the scatter") + + +# ---- scalar side ----------------------------------------------------------------------------------------- +SC = 6 # all scalar entries are kept as integers in units of 1/6 +KINDS = {("x", "s"), ("s", "s"), ("s", "y"), ("x", "y"), ("x", "x"), ("y", "y")} + + +def chk_shape(D): + """E3 kinds, E4 bracket""" + ysum, piv, ytg = Counter(), set(), set() + for ph in "AB": + for i, g in enumerate(D[ph]): + for t, s, (ng, a, b) in adds(g): + kd = (cls(D, s), cls(D, t)) + need(kd in KINDS and t != s, "E3: gate kind %s -> %s (gate %s%d)" % (kd + (ph, i))) + need(ph == "B" or kd in {("x", "s"), ("s", "s")}, "E3: bank gate before the scatter (gate A%d)" % i) + if kd == ("y", "y"): + need(SC % b == 0, "E4: denominator beyond sixths") + ysum[s, t] += (-a if ng else a) * (SC // b) + piv.add(s) + ytg.add(t) + need(not (piv & ytg), "E4: a pivot is the target of a gate reading y") + need(all(x == 0 for x in ysum.values()), "E4: y-reads of a (pivot, target) pair do not cancel") + return len(ysum) + + +def scat_row(D, t): + sc = D["scat"] + if sc[0] == "table": + return sc[1][t] + return [(k, sc[1] if D["ports"][t] >> k & 1 else sc[2]) for k in range(D["h"])] + + + +def replay(D, init, count=None): + """exact replay through A, scatter, B of sparse vectors with entries in sixths; `init` = register -> {key: 6}""" + v = D["v"] + reg = [dict(init.get(r, ())) for r in range(2 * v + D["R"])] + + def axpy(t, src, k): + ng, a, b = k + d = reg[t] + for key, u in src.items(): + w = u * a + need(w % b == 0, "E5: an entry needs a denominator beyond sixths (register %d)" % t) + w = w // b + w = d.get(key, 0) + (-w if ng else w) + if count is not None: + count[key] += 1 + if w: + d[key] = w + else: + d.pop(key, None) + + def run(gates): + for g in gates: + if g[0] == "out": + src = dict(reg[g[2]]) + for t, k in g[3]: + axpy(t, src, k) + else: + for s, k in g[3]: + axpy(g[2], reg[s], k) + run(D["A"]) + afterA = sum(len(d) for d in reg) + tot = [dict(reg[s]) for s, _ in D["ret"]] + for t in range(v): + for k, cf in scat_row(D, t): + if tot[k]: + axpy(v + t, tot[k], cf) + run(D["B"]) + return reg, afterA + + +def chk_scalar(D, batches=1): + """E5 (+ E7 when `ext` is non-empty). Returns stats: denominators and largest numerators per class in the + units of the spec (x halves, y sixths, slots integers), updates per source batch, entries after A.""" + v = D["v"] + count = Counter() + reg, afterA = replay(D, {t: {t: SC} for t in range(v)}, count) + need(all(reg[t] == {t: SC} for t in range(v)), "E5: an x role is not restored (X3)") + need(all(reg[v + t] == {t: SC} for t in range(v)), "E5: a target does not receive exactly its source (hid)") + if D["ext"]: + rg, _ = replay(D, {r: {r: SC} for r, _ in D["ext"]}) + need(all(not rg[v + t] for t in range(v)), "E7: the dirt of an exterior-gauged slot reaches a y role") + step = -(-v // batches) + per = [sum(count[k] for k in range(lo, min(lo + step, v))) for lo in range(0, v, step)] + return dict(updates=sum(count.values()), per_batch=per, afterA=afterA, + batches=[(lo, min(lo + step, v)) for lo in range(0, v, step)]) + + +def digits(D): + """largest |entry| met and denominators per class, by a second replay that watches every write (slow path + kept separate from the check): returns {class: (lcm of denominators, largest |numerator| in units 1/den)}""" + v = D["v"] + den = {"x": 1, "y": 1, "s": 1} + mx = {"x": 0, "y": 0, "s": 0} + reg = [({r: SC} if r < v else {}) for r in range(2 * v + D["R"])] + + def axpy(t, src, k): + ng, a, b = k + d, kk = reg[t], cls(D, t) + for key, u in src.items(): + w = d.get(key, 0) + (-(u * a // b) if ng else u * a // b) + if w: + d[key] = w + q = SC // gcd(w, SC) + if den[kk] % q: + den[kk] = den[kk] * q // gcd(den[kk], q) + if abs(w) > mx[kk]: + mx[kk] = abs(w) + else: + d.pop(key, None) + for g in D["A"]: + for t, s, k in adds(g): + axpy(t, reg[s], k) + tot = [dict(reg[s]) for s, _ in D["ret"]] + for t in range(v): + for k, cf in scat_row(D, t): + axpy(v + t, tot[k], cf) + for g in D["B"]: + for t, s, k in adds(g): + axpy(t, reg[s], k) + return {k: (den[k], mx[k] * den[k] // SC if (mx[k] * den[k]) % SC == 0 else "%d/6" % mx[k]) for k in "xys"} + + +def mirror(D, gmax=12000, batches=1, pairs=None, cuts=None): + """both checks; returns everything the generator and the dry run need""" + dim = chk_frames(D) + pairs = derive(D) if pairs is None else pairs + work = chk_pairs(D, dim, pairs) + cuts = cut_points(D, gmax) if cuts is None else cuts + states, H, visits, segH = chk_replay(D, dim, pairs, cuts) + ysh = chk_shape(D) + S = chk_scalar(D, batches) + hist = Counter() + for k in "xysc": + for r, n in H[k].items(): + hist[r] += n + return dict(dim=dim, pairs=pairs, pair_work=work, cuts=cuts, states=states, H=H, visits=visits, ysh=ysh, + scal=S, hist=dict(sorted(hist.items())), segH=segH, + lab=label_data(D, dim, cuts)) diff --git a/research/five-stage-gen5-banks/math_check.py b/research/five-stage-gen5-banks/math_check.py new file mode 100644 index 0000000000..888e46a169 --- /dev/null +++ b/research/five-stage-gen5-banks/math_check.py @@ -0,0 +1,57 @@ +"""Source-bound banked five-stage moments and all47outerconstraints. +Prepared with substantial OpenAI Codex assistance; Apache-2.0. +Uses PR234 five-stage architecture and complex baseline, the gen5 helper and +PR197-derived actual five-stage entrance banks. Inputs must be live verifier outputs. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import importlib.util +HERE=Path(__file__).resolve().parent + +def load(name): + p=HERE/(name+'.py');s=importlib.util.spec_from_file_location('banked527_'+name,p);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m + +def serial(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):serial(v)for k,v in x.items()} + if isinstance(x,(list,tuple)):return list(map(serial,x)) + return x + +def hist(x):return Counter({int(k):v for k,v in x.items()if v}) + +def run(raw,complex_histogram,banks,global_result): + cost=load('moment');other=load('base_two_moment');outer=load('outer') + assert raw['source_aliases']==0 and raw['physical_R']==15886 and raw['h']==24 and raw['v']==1760 + H=hist(raw['five_stage_profile']['histogram']);assert H==hist(global_result['paid_histogram']) + assert global_result['paid_rank_mass']==sum(k*n for k,n in H.items())==2746720 + gauges=hist(raw['auxiliary_entrance_rank_histogram']);assert gauges=={20:2182,21:354,18:16,17:2} + assert banks['assignments']==4765800 and banks['gen5_roles']==15886 and banks['physical_replicas']==60 + assert banks['literal_stock']==1247070 and banks['banks_total']==824670 and banks['charts']==411 + for a,n in gauges.items():assert H.pop(5*a)==n + assert len(H)>0 and min(H.values())>0 and max(H)==50 + literal={k:n*60 for k,n in H.items()};literal_mass=sum(k*n for k,n in literal.items());literal_W=banks['literal_stock'] + assert 120*literal_W-literal_mass==60*4400 + # Divide the literal profile by5 to an integer normalization. The executed + # realization is still60replicas, and finite accounting uses its literalstock. + assert literal_W%5==0 and all(n%5==0 for n in literal.values()) + normalized={k:n//5 for k,n in literal.items()};W=literal_W//5;m=120;mass=sum(k*n for k,n in normalized.items()) + bp=dict(m=m,W=W,histogram=normalized,calls=sum(normalized.values()),rank_mass=mass,deficit=m*W-mass,maxchild=max(normalized),normalization=12,physical_replicas=60,literal_stock=literal_W,literal_children=sum(literal.values()),literal_rank_mass=literal_mass) + root=cost.certify(normalized,m,W,True);c=Q(int(Q(root['lower'])*10**18),10**18);bm=cost.moment(normalized,m,W,c,True);nextbm=cost.moment(normalized,m,W,c+Q(1,10**18),True);assert bm[1]<10 + q=bit*(1-2*eta);minimum=(1-eta)*q/(1+q);ticks=minimum*10**18;k=Q((ticks.numerator-1)//ticks.denominator,10**18) + assembly=outer.assembly(bit,b,bridge,k,eta=eta,beta=beta);assert len(assembly['strict_constraints'])==47 and len(assembly['margins'])==7 and min(assembly['strict_constraints'].values())>0 + try:outer.assembly(bit,b,bridge,k+Q(1,10**18),eta=eta,beta=beta) + except AssertionError:pass + else:raise AssertionError('Adjacentkappaadmitted') + return serial(dict(status='PASS_BANKED_FIVE_STAGE_GEN5_EXACT_MOMENTS_AND_OUTER47',mathematics=dict(bit_profile=bp,complex_profile=cp,bit_coarse=c,complex_coarse=b,bit_moment_interval=bm,complex_moment_interval=cm,next_bit_grid_excluded=nextbm,independent_base_two_pass=True,ordinary_bootstrap_chain=chain,finite_bridge=bridge,assembly=assembly,kappa=k,kappa_decimal=cost.decimal(k),kappa_scientific=format(float(k),'.15e'),binding='bit'),adjacent_grid_point_rejected=True)) diff --git a/research/five-stage-gen5-banks/moment.py b/research/five-stage-gen5-banks/moment.py new file mode 100644 index 0000000000..1e43aaeaca --- /dev/null +++ b/research/five-stage-gen5-banks/moment.py @@ -0,0 +1,114 @@ +"""Independent prospective ordinary five-stage cost, never supplier admission. + +Consumes a raw one-invocation ledger made from the actual source/internal/target +paths. No packed profile is used as an input. Missing physical/finite/compiler +obligations must remain explicit in the accompanying report. +""" +from collections import Counter +from decimal import Decimal, localcontext, ROUND_FLOOR +from fractions import Fraction as F +from functools import lru_cache +from math import factorial +import hashlib, json, sys +from pathlib import Path + +DYAD = 1 << 224 + +def floor(x): return F(x.numerator*DYAD//x.denominator, DYAD) +def ceil(x): return -floor(-x) + +@lru_cache(None) +def logarithm(x): + """Mercator bounds after binary reduction; ln(2) via two Mercator sums. + + For 1 <= y < 2, log(y) is an alternating series in z=y-1. + We instead reduce to 1 <= y < 3/2, and bound log(3/2) and + log(2) by the same alternating series at z=1/2 and z=1/3, + using log(2)=log(3/2)+log(4/3). All sums are exact rationals. + """ + assert x >= 1 + k = 0 + while x >= 2: x /= 2; k += 1 + j = int(x >= F(3, 2)) + if j: x /= F(3, 2) + def mercator(y): + z=y-1 + assert 0 <= z <= F(1,2) + # An even partial sum is below log; the next term bounds its tail. + t=z; s=F(0) + for n in range(1, 225): + s += (t if n & 1 else -t)/n + t *= z + return s, s+t/225 + a,b=mercator(x); c,d=mercator(F(3,2)); e,f=mercator(F(4,3)) + return floor(a+(k+j)*c+k*e), ceil(b+(k+j)*d+k*f) + +def exponential(l,u): + assert 0 <= l <= u < F(1,10) + def poly(x): + s=t=F(1) + for j in range(1,25): t=t*x/j; s+=t + return s,t + lo,_=poly(l);hi,last=poly(u) + return floor(lo),ceil(hi+last*u/25/(1-u/26)) + +def moment(H,m,W,a,bad=False): + lo=hi=F(0) + for r,n in H.items(): + assert 0 < r < m and n > 0 + l,u=logarithm(F(m,r)); e,f=exponential(a*l,a*u) + p=F(r*n,m*W);lo+=p*e;hi+=p*f + if bad: + # Existing envelope shape, only conditionally portable to the new cover. + l,u=logarithm(F(m));e,f=exponential(a*l,a*u) + p=F(32*m*sum(H.values()),10**16*W) + lo+=p*e;hi+=p*f + return floor(lo),ceil(hi) + +def decimal(x): + with localcontext() as c: + c.prec=70 + return str(Decimal(x.numerator)/Decimal(x.denominator)) + +def certify(H,m,W,bad=False): + with localcontext() as c: + c.prec=70 + terms=[(Decimal(r*n)/Decimal(m*W),(Decimal(m)/Decimal(r)).ln()) for r,n in H.items()] + fallback=Decimal(32*m*sum(H.values()))/Decimal(10**16*W) if bad else Decimal(0) + lm=Decimal(m).ln();lo=Decimal(0);hi=Decimal('.003') + for _ in range(210): + a=(lo+hi)/2 + if sum(p*(a*l).exp() for p,l in terms)+fallback*(a*lm).exp()<1:lo=a + else:hi=a + q=int(((lo+hi)/2*10**24).to_integral_value(rounding=ROUND_FLOOR)) + lo=F(q,10**24);hi=lo+F(1,10**24) + lv=moment(H,m,W,lo,bad);hv=moment(H,m,W,hi,bad) + assert lv[1]<10 for v in slacks.values()),{k:str(v) for k,v in slacks.items() if v<=0} + assert min(margins.values())==minimum + assert margins['balanced_prefix']-minimum==eta and 1-eps-r==eta/2 + assert 1-eps*(1+c)==eta-eps*eta/4 + return dict(parameters=dict(a_bit=a,a_complex=b,tau=tau,sigma=sigma, + eta=eta,beta=beta,q=q,c=c,epsilon=eps,lambda_=lam, + lambda_prime=lp,alpha_squared_power=r,delta=delta, + C0=bridge['semantic']['C0'],C1=1,kappa=kappa), + strict_constraints=slacks,margins=margins,minimum_margin=minimum, + absorption_gap=minimum-kappa, + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c)) diff --git a/research/five-stage-gen5-banks/parity_transform.py b/research/five-stage-gen5-banks/parity_transform.py new file mode 100644 index 0000000000..5e630a9ef5 --- /dev/null +++ b/research/five-stage-gen5-banks/parity_transform.py @@ -0,0 +1,143 @@ +"""F2 payload identity elision and exact nested address-MOVE fusion. +The inherited signed source decoder is retained as producer evidence. +All odd-prime address projectors and routes remain unchanged. +Prepared with substantial OpenAI Codex assistance; Apache-2.0. +""" +from array import array +from collections import Counter +from pathlib import Path +import gzip,hashlib,json,time +if not __debug__:raise SystemExit('assertions required') + +def transform(records): + out = array('i') + pending = {} + chains = [] + removed = Counter() + hist = Counter() + merged = 0 + maxchain = 0 + uses = Counter() + + def flush(a): + nonlocal merged, maxchain + if a in pending: + old, new, rank, count, first, last = pending.pop(a) + if rank: + hist[rank] += 1 + out.extend((0, a, old, new, rank, 0)) + merged += count - 1 + maxchain = max(maxchain, count) + if count > 1: + chains.append(dict(stream=a, old=old, new=new, rank=rank, moves=count, first=first, last=last)) + for index in range(0, len(records), 6): + op, a, b, c, f, z = records[index:index + 6] + if op == 1 and c % 2 == 0: + removed[c] += 1 + continue + if op == 0: + assert z == 0 + if a in pending: + old, prev, rank, count, first, last = pending[a] + assert prev == b, ('disconnected movechain', a, prev, b) + pending[a] = (old, c, rank + f, count + 1, first, index // 6) + else: + pending[a] = (b, c, f, 1, index // 6, index // 6) + continue + assert op in (1, 2, 3) + flush(a) + flush(b) + if op == 1: + uses[a] += 1 + uses[b] += 1 + elif op == 2: + hist[z] += 1 + uses[a] += 1 + uses[b] += 1 + out.extend((op, a, b, c, f, z)) + for a in sorted(pending): + flush(a) + return (out, dict(removed_even_adds=dict(removed), removed_even_add_count=sum(removed.values()), merged_move_count=merged, max_chain=maxchain, fused_chains=len(chains), paid_histogram=dict(sorted(hist.items())), paid_calls=sum(hist.values()), paid_rank_mass=sum((r * n for r, n in hist.items())), surviving_additions=sum((out[k] == 1 for k in range(0, len(out), 6))), output_records=len(out) // 6, unused_streams=[i for i in range(19406) if not uses[i]], stream_use_counts=dict(uses)), chains) + +def run(producer,output_dir=None): + begun=time.monotonic();W,C=producer['W'],producer['C'];v=W.v;n=19406;assert n==2*v+len(producer['context']['regs']) + old=producer['records'];out,stats,chains=transform(old);oldmeta=producer['physical'] + assert stats['removed_even_add_count']==1500000 and stats['surviving_additions']==574832 + assert stats['paid_rank_mass']==411356 and stats['merged_move_count']==0 + initial=producer['initial_state'];ZERO,FULL=producer['ZERO'],producer['FULL'] + # Independent required-frame census: ignore all original MOVE instructions. + # Use only surviving gate operands, copy sources and mathematical endpoints. + needs={i:[] for i in initial};copies=Counter();copy=None + for k in range(0,len(old),6): + op,a,b,c,f,z=old[k:k+6] + if op==1 and c%2: + needs[a].append(f) + if b!=n:needs[b].append(f) + else:assert copy is not None + elif op==2: + assert copy is None;copy=(a,b,c);needs[a].append(c);copies[z]+=1 + elif op==3:assert copy==(a,b,c);copy=None + assert copy is None and copies=={22:24} + final={i:FULL for i in initial} + for t in range(v):final[v+t]=W.register(W.module.kernel([C.cov[t]],W.h)[0]) + census=Counter(copies);per_role={};pairs=set() + for i,oldf in initial.items(): + H=Counter() + for f in needs[i]+[final[i]]: + assert C.sub(oldf,f);rank=C.dimf[f]-C.dimf[oldf] + if rank:H[rank]+=1 + pairs.add((oldf,f));oldf=f + per_role[i]=H;census.update(H) + assert census==Counter({int(r):c for r,c in stats['paid_histogram'].items()}) + # Read back the actual annihilator rows as a separate reflected ledger. + # A(new) annihilating B(old) states new^perp <= old^perp exactly. + reflected_pairs=0;endpoint_frames={f for pair in pairs for f in pair};nondeg_bases=set() + for f in endpoint_frames: + assert len(C.B[f])==C.dimf[f] and len(C.A[f])+C.dimf[f]==24 + key=tuple(map(tuple,C.B[f])) + if key not in nondeg_bases: + assert C.nondeg(f),'singular required endpoint frame' + nondeg_bases.add(key) + for oldf,newf in sorted(pairs): + assert len(C.A[newf])<=len(C.A[oldf]) + assert all(W.module.dot(a,b)==0 for a in C.A[newf]for b in C.B[oldf]) + reflected_pairs+=1 + # Validate the actual transformed instruction stream against its own frames. + state=dict(initial);copy=None;used=set(initial.values());hist=Counter();cat=Counter();coeff=Counter();centers=[];count=0 + scalar=hashlib.sha256();tagged=hashlib.sha256();category_names=oldmeta['category_names'] + def event(d,row):d.update(json.dumps(row,separators=(',',':')).encode());d.update(b'\n') + for k in range(0,len(out),6): + op,a,b,c,f,z=out[k:k+6] + if op==0: + assert state[a]==b and C.sub(b,c) and C.dimf[c]-C.dimf[b]==f + # Complement reflection reverses containment and preserves the gap. + assert (24-C.dimf[b])-(24-C.dimf[c])==f + state[a]=c;used.update((b,c)) + if f:hist[f]+=1 + elif op==1: + assert c%2 and state[a]==state[b]==f and a!=b + kind=category_names[z];source=copy['source']if b==n else b + event(scalar,[a,source,c]);event(tagged,[a,b,c,f,kind]);count+=1;cat[kind]+=1;coeff[abs(c)]+=1;used.add(f) + elif op==2: + assert copy is None and b==n and state[a]==c and f==ZERO and z==22 + state[b]=f;hist[z]+=1;copy=dict(source=a,frame=c,rank=z,temporary=b,first_event=count,copy_output_frame=f) + else: + assert op==3 and copy is not None and (a,b,c)==(copy['source'],copy['temporary'],copy['frame']) and state[b]==f==ZERO + copy.update(after_event=count,scatter_reads=count-copy['first_event']);assert copy['scatter_reads']==220 + centers.append(copy);copy=None;del state[b] + assert copy is None and state==final and hist==census + assert count==574832 and coeff=={1:573072,3:1760} and len(centers)==24 + delta=Counter(hist);delta.subtract(Counter({int(r):c for r,c in oldmeta['paid_histogram'].items()}));delta={r:c for r,c in delta.items()if c} + assert delta=={} + sourceH=Counter();targetH=Counter();internalH=Counter(copies) + for i,H in per_role.items():(sourceH if i0,'row reserve gap') + need(2*(dim*(dim-1)+3*dim+dim+3*dim*(dim-1)//2+dim+1)+2*dim0,'factor shape';product*=p**exponent + assert product==abs(determinant),'factor identity' + +def run(context,physical,progress=lambda text:None): + started=time.monotonic();w,c=context['W'],context['C'] + p=HERE/'prime_witnesses.py';spec=importlib.util.spec_from_file_location('source527_exact_prime_validator',p);module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module) + required=set(w.opframe)|set(w.w['source_frame'])|set(w.w['root_frame'])|{w.w['full_frame'],w.register([])} + required.update(g['frame']for g in w.gauge.values()) + for e in w.k['entries']:required.update((e['mix_frame'],e['deliver_frame'])) + for t in range(w.v):required.add(w.register(w.module.kernel([c.cov[t]],w.h)[0])) + required.update(g['frame']for g in context['agg']+context['rankgroups']+context['echelon']) + required.update(r['mix_frame']for r in context['pair_selection']) + used=set();groups={} + for row in physical['used_frames']: + f=row['frame_id'];assert f not in used;used.add(f) + h=basis_hash(c.B[f]);assert h==row['basis_sha256'] and len(c.B[f])==c.dimf[f]==row['dimension'],'fresh physical basis identity' + groups.setdefault(h,f) + assert {basis_hash(c.B[f])for f in required}<=set(groups),'base and added transform coverage' + determinants={};largest=0;prime_factors=set();witnesses={} + for j,(h,f)in enumerate(sorted(groups.items())): + B=c.B[f];s=list(map(sum,B)) + gram=[[9*sum(a*b for a,b in zip(x,y))-s[i]*s[k]for k,y in enumerate(B)]for i,x in enumerate(B)] + det=module.det(gram);powers,residual=module.factor_witness(det) + row=dict(dimension=len(B),determinant=det,residual=residual,factors={p:e for p,e in powers.items()if e}) + validate_record(row,len(B),det,module.PRIMES);prime_factors.update(map(int,row['factors']));witnesses[h]=row + determinants[h]=det;largest=max(largest,abs(det).bit_length()) + if j and j%5000==0:progress('Validated '+str(j)+' exact basis determinants') + ranks=Counter();bundle_bases=set() + for role,g in w.gauge.items(): + if role in w.donor or role in context['borrow']:continue + a=g['dim'];h=basis_hash(c.B[g['frame']]);d=determinants[h] + assert 0<5*a<120 and d!=0;ranks[a]+=1;bundle_bases.add(h) + assert abs(d**5)==abs(d)**5 + assert ranks=={20:2182,21:354,18:16,17:2}and len(bundle_bases)==411 + assert 2*120**3*10**16<2**80 + from copy import deepcopy + controls=[] + def reject(name,call): + try:call() + except AssertionError:controls.append(name) + else:raise AssertionError('invalid witness accepted: '+name) + first=next(iter(groups));row=witnesses[first];det=determinants[first] + missing=dict(witnesses);missing.pop(first) + def coverage(actual,wanted):assert set(actual)==set(wanted),'complete current basis coverage' + reject('missing current basis',lambda:coverage(groups,missing)) + changed=deepcopy(row);changed['determinant']=det+1;reject('incorrect determinant',lambda:validate_record(changed,row['dimension'],det,module.PRIMES)) + changed_factor=deepcopy(row);changed_factor['residual']+=1;reject('incorrect factor identity',lambda:validate_record(changed_factor,row['dimension'],det,module.PRIMES)) + singular=deepcopy(row);singular['determinant']=0;reject('singular basis',lambda:validate_record(singular,row['dimension'],module.det([[1,2],[1,2]]),module.PRIMES)) + huge=deepcopy(row);huge['residual']=2**80;reject('residual at prime lower bound',lambda:validate_record(huge,row['dimension'],det,module.PRIMES)) + noninteger=deepcopy(row);noninteger['residual']=float(row['residual']);reject('noninteger residual',lambda:validate_record(noninteger,row['dimension'],det,module.PRIMES)) + return dict(status='PASS_FRESH_ALL_ACTUAL_GEN5_BASIS_DETERMINANTS_AND_FIVEFOLD_BUNDLES',unique_bases=len(groups),current_frame_ids=len(used),basis_inventory_sha256=hashlib.sha256(json.dumps(sorted(groups),separators=(',',':')).encode()).hexdigest(),maximum_determinant_bits=largest,prime_factors=sorted(prime_factors),all_remaining_factors_below_2_power_80=True,independent_entrances=sum(ranks.values()),bundled_unique_bases=len(bundle_bases),entrance_rank_counts=dict(ranks),controls=controls,physical_inventory_bound=True,seconds=time.monotonic()-started,scope='Every actual physical basis of the gen5 word is freshly evaluated over exact integers; all source, gauge, operation, root, partner-mix, delivery and cap frames are covered. Five disjoint copies inherit nondegeneracy; compiler and prime supply remain theorem dependencies.') diff --git a/research/five-stage-gen5-banks/prime_witnesses.py b/research/five-stage-gen5-banks/prime_witnesses.py new file mode 100644 index 0000000000..7f16d93030 --- /dev/null +++ b/research/five-stage-gen5-banks/prime_witnesses.py @@ -0,0 +1,99 @@ +"""Exact finite prime exclusions for the selected new rational bit frames. + +For integer basis B and G=I-J/9, det(9 B G B^t) is a nonzero integer. +Excluding its prime divisors and 2,3,5 makes the reduced frame nondegenerate +over every odd local ring Z/q^w. Projector denominators divide this determinant +times fixed powers of 3. Retained frames retain their old exclusion witnesses. +The selected q is an arbitrarily large fixed prime chosen after this finite +set; this is not verification at a preselected numeric q. +""" +from pathlib import Path +import argparse,gzip,hashlib,json,sys + +HERE=Path(__file__).resolve().parent + +def det(A): + A=[list(r) for r in A];n=len(A) + if not n:return 1 + sign=1;previous=1 + for k in range(n-1): + pivot=next((i for i in range(k,n) if A[i][k]),None) + if pivot is None:return 0 + if pivot!=k:A[k],A[pivot]=A[pivot],A[k];sign=-sign + p=A[k][k] + for i in range(k+1,n): + for j in range(k+1,n): + v=A[i][j]*p-A[i][k]*A[k][j] + assert v%previous==0 + A[i][j]=v//previous + A[i][k]=0 + previous=p + return sign*A[-1][-1] + +PRIMES=(2,3,5,7,11,13,17,19,23,29,31) + +def factor_witness(determinant): + assert type(determinant) is int and determinant != 0 + residual=abs(determinant);powers={} + for prime in PRIMES: + power=0 + while residual%prime==0:residual//=prime;power+=1 + powers[str(prime)]=power + validate_factor(determinant,powers,residual) + return powers,residual + +def validate_factor(determinant,powers,residual): + assert type(determinant) is int and determinant != 0 + assert set(powers)==set(map(str,PRIMES)) + assert all(type(x) is int and x>=0 for x in powers.values()) + assert type(residual) is int and 02^80 before the input widths +n,w are chosen. All represented determinant and route exclusions lie in +{2,3,5,7}. The primitive constant C may depend on q, the fixed source recipe, +the finite bootstrap level and the retained primitive implementations. It +does not depend on n,w, ancestor values or unrelated spectator widths except +through logical volume V. + +The three byte-pinned public sources supplied here are +`three-stage-cover-bit.tex`, `three-stage-cover-rows.tex`, and +`copied-centers-lemma.tex`. Their exact-tape, completed ordinary-leaf and +complete-stream hypotheses are retained. All high matrix fibers are batched; +prefix descriptor preparation has fixed polynomial cost in w and is paid +over the complete q^w target fiber. Unrelated spectators use ripple counters. +Fresh child role fields never enter the ancestor weight descriptor. Finite +low-type tables, initialization and sequential scans are charged in C. +There is no unit-cost random-access oracle or new numerical Turing-machine +constant requirement. + +## Actual finite recipe + +Let m=120, W=23,683, E=495,304, v=1,760, R=16,643, d=m^2 and +J=20v+10R+4v=208,670. The last 4v=7,040 families pay the explicit final +complete-stream exchange; they are not equal-frame payload shears. + +The check derives from the fresh word 12,858,690 weighted additions or +21,787,770 unit additions, including all six bridge families. Its +cancellation-free prefix lift is +64*37,623^3*9,430,154^2=303,094,329,841,208,644,962,256,113,408<2^98. +No old defining-integer endpoint is imposed on the F2 supplier. + +The actual rational 48-dimensional route is reconstructed, eliminated and +inversely replayed: 195 additions, 44 swaps and 27 scalings, with denominator +set {1,2,3,6}. A missing addition fails reconstruction. Coordinate +permutations and embedding give the other ports and stages. + +Per route, pay at most 23,707*|GL_120(F_q)| low-role transpositions and +16*(d+1)^2 high affine factors. Per good edge, pay at most 8m^2+8 elementary +normalizer wrappers. The same compiler pays all exterior completions. +There are 120 copied-center episodes. Their recursive rank-22 calls and +their scalar reads are already included in E and the scalar count; their +copy/erase and parking passes are separately paid by the complete-stream +primitive, using one additional work stream. + +For a bad edge with N=2m=240, the exact inherited Gaussian fallback uses at +most 6N(N-1)+3N+6(N-1)=346,314<32m^2=460,800 children. Keep the entire +larger allowance in the moment. Coefficient preparation uses only unit +pivot inversions. Allocate 128N^3 ring operations per edge per low class: +four 8N^3 elimination/inversion allocations and sixteen 2N^3 matrix products +give 64N^3; the remaining 64N^3 pays extraction, copying, generic tests, +factor output and the bad-branch elimination. Matrix bit costs and descriptor +arithmetic are paid by the inherited primitive theorem. Invertibility testing +of each candidate low matrix additionally gets 16m^3 operations. + +Overcharging every finite recipe item over every low matrix gives + + B(q) <= [unit+J*16(d+1)^2+J*(W+24)+E*(8m^2+8) + +E*128(2m)^3+16m^3+120+E+1]*q^14400 + = 1,568,901,757,016,837*q^14400 < q^14401. + +These are explicit ring/recipe counts, not single-step machine costs. All +fixed-tape, table, setup and selector constants stay in C_primitive, giving +the normalized toll C*n+C*w^(1-a_old) after increasing one finite C. +No recursive child is absorbed into this nonrecursive constant. + +## Weighted induction and rows + +Set c=704197288590873/10^18 and tau=1-c. Exact interval recomputation, +adding the entire 10^-16*32m^2 fallback envelope per edge, proves + + 1-mu_tau > 774/10^21, + 1-mu_1 = 107421874442783/69383789062500000 > 0. + +For the retained recurrence +T(n,w)<=sum_r c_r*T(r*floor(n/120),w)+C*n+C*w^(1-a_old), +take A=C*(1+1/(1-mu_1)+1/(1-mu_tau)). Induction bounds T by +A*(n+n^tau*w^(1-a_old)): the linear and stopped gaps separately pay the +two tolls; the leaves follow A>=C. Floors only decrease the child sizes. + +The maximum ratio is 5/6, so four levels halve. The depth bound +4*ceil(log2(max(2,n))) changes stock, not the one-level moment. Paying all +24 temporary roles gives per-level log_q stock below 14400w+1. Add the +inherited old-leaf reserve. The new contribution is at most +57,604w*ceil(log2(max(2,n))). Borrow and restore these complete high digits; +successive residuals and the two-call ordinary wrapper reuse the reserve. +One outer row padding factor is below two; binary-radix padding costs less +than q^2 in logical volume. The temporary roles never enter the denominator W. + +## Finite ordinary bootstrap and cutoff + +Starting with completed ordinary a0=384599/10^10, set beta=c and repeat +a_(j+1)=(1-c)c+c*a_j exactly three times. The finite result is + + a3=704197288358392787581160456097840009769165126434639147437106139267359/10^72. + +At each stage, the paid exponents are 1-c, 1-a_(j+1), c with a logarithm, +and c(1-a_j). The exact positive gaps are c-a_(j+1), +1-a_(j+1)-c, 1-a_(j+1)-c(1-a_j), and 1-c (for row fitting). + +Choose a finite integer C>=1 dominating that stage's already fixed primitive, +recurrence, wrapper, row, setup, padding and previous ordinary constants. +Let delta be the minimum positive gap and + + L=ceil(max(1,36/delta^2,2*(4+ceil(log2 C))/delta)), e0=2^L. + +For e>=e0, C(1+log2 e)e^(-delta)<=1/16. Indeed for t=log2 e, +log2(1+t)<=3sqrt(t)<=delta*t/2 and log2 C+4<=delta*t/2. +Thus every lower-order toll is covered and the borrowed high part fits. +Below e0 use the previously completed ordinary algorithm. A finite next +constant is C_large+C_old*2^(L*(a_(j+1)-a_j)). This choice is sequential, +not circular, and uniform in the input and complete spectators. + +This proves the finite-accounting and ordinary-bootstrap step at the same +conditional theorem level as the retained public baseline. It does not claim +an independent proof of those inherited primitives, a measured universal +machine constant, or execution at every input width. diff --git a/research/five-stage-gen5-banks/proof/INTEGRATED_PROOF.md b/research/five-stage-gen5-banks/proof/INTEGRATED_PROOF.md new file mode 100644 index 0000000000..c624da6c5c --- /dev/null +++ b/research/five-stage-gen5-banks/proof/INTEGRATED_PROOF.md @@ -0,0 +1,87 @@ +# Source-bound five-stage compositional candidate + +9 October 2026. This is an isolated research admission branch. Its executable checks immutable finite receipts and recomputes exact scalar moments, a finite ordinary bootstrap, and all 47 balanced outer inequalities. It additionally binds fresh public-source bit preparation, raw-ledger construction, and the complete globally lowered physical event stream. It does not repeat the exhaustive F2 column proof, run the Lean kernel or universal tape machine, or claim Mac qualification or publication. + +## 1. Meaning of admission here + +The branch is an explicit conjunction of constructive source theorems and finite source-bound evidence. It does not replace any proof with a numerical root or infer source correctness from a PASS string. The new family names are `new5stageF2` and `baseline5stageComplex`; the old dimension-72 entry point and written bounds are kept byte-identical. The branch has no general-purpose dimension override. + +The executable's semantic guards reject a wrong source, omitted copied centers, a rank-only complex frame contract, a work/live denominator substitution, omitted final climbs, incorrect reverse-copy lowering, and a one-level bit-halving substitution. The source lock identifies the exact evidence, code, and primary proof files consumed. The more detailed emitted-program verifiers exercise local chronology and addresses, beyond these top-level schema controls. + +## 2. Raw source471 provenance + +The saved raw helper ledger pins an older screen.py. The older screen bytes are unavailable; no byte-delta assertion is made. The rebind verifier reruns the current exact geometry/ledger construction with all writes suppressed and a hash-verified cached certificate in place of its redundant network fetch. Every semantic field, all 471 source paths, and all 1,760 target paths agree. The saved ledger is not rewritten. + +The apparent target-prefix duplication is resolved by the actual chronology: screen.py removes the two latest loan prefixes for its predecessor positive controls; raw_ledger.py puts those two prefixes back. There are exactly eight restored target reads. Current-source dependency hashes and the canonical semantic-payload digest make this equivalence independently inspectable. The sole historical pin exception is specifically this screen.py field and is allowed only with the exact rebind witness. + +## 3. Local bit helper and global lowering + +The source is PR210 df95878d11190518e45ef9717c9ee05011f88ace. The independently recorded local scalar word has 2,569,626 weighted events. Its projection is fixed by SHA256 e74e43692685ad5f716b41b363acb8b443c2c90096634a55f0e3728980713944. Both literal forward and signed inverse pass all 20,163 F2 columns, including arbitrary targets and 16,643 independent dirty helpers. The 471 borrowed sources are source aliases, never extra independent dirty coordinates. + +The tagged physical word has digest 614f19da4288021cd5c10a575ec7759c069962a6030bf30edb047573ed76edf6 and realizes the telescope Dout M Din^-1. Its input frames are X:Pq, Y:0, Z:sigma and output frames X:H, Y:H-Pq, Z:H. Thus a completed invocation has no data/helper cross blocks and each independent helper residual is D_(H-sigma). This is a full arbitrary-input operator identity, not just zero-dirt testing. + +The five-stage compiler maps every local live index through the stage owner injection, maps every local temporary to external family 23,683, and applies the stage's data or helper cover bijection. The active source/target pairs are (X1,Y1), (Y1,X1), (X1,Y1), (Y2,X2), (X2,Y2). The unused pair stays parked. A data route is right multiplication by the exact rational rho_i,S; a helper route is the whole-block exchange tau_i. Both are bijections of the eligible GL cover. They are charged address movements, not dense payload arithmetic. + +Cover expansion is strictly phase-major: complete every cover class in stage i before starting the next routed stage or boundary phase. The same rule applies separately to idle, bridge, completion and terminal-exchange phases. Running all five stages for one class before proceeding to another class would be incorrect because rho and tau refer to other classes. The callable stage and boundary iterators specify the phases; a flattened one-class-per-phase template is not a class-major execution schedule. The admission contract rejects that alternative loop ordering. + +For backward stages the compiler reverses the complete local event order, negates scalar coefficients, and replaces local P by H-P. A copied-center block is lowered afresh: copy the original at H-U, transform the copy to H, perform reverse signed scatter, and erase it. It is forbidden to invert an erased temporary. Every original center also retains its complementary live climb. Copy/live index injectivity is checked for all stage orientations. + +The global lowering artifact must emit bridges, idle children, independent gauge completions, and the final signed bank exchange. That exchange is an explicitly paid complete-stream role permutation, not a same-frame shear. A stage-descriptor string alone does not meet this obligation. + +## 4. Rational five-window geometry and prime eligibility + +Take H=Q^24, G=I-J/9 and a triple line q*. Its projector has denominator 6; coordinate permutations supply the port isometries. The two-block involution rho_i,S fixes the two port lines and exchanges their complementary spaces. With Q_i the direct sum of the first i copied complements, the frame is D_[g rho_i,S(P direct_sum Q_i)rho_i,S^-1 g^-1]. The four elementary two-block projector identities imply all eight bank boundary equalities. Rational complements are I-P. + +The exact rational partial swap is D_P=[[I-P,P],[P,I-P]]. It is involutory. Every same-frame scalar gate telescopes exactly, all idle transitions are nested actual projectors, and D_I D_Pq=D_(I-Pq) gives the terminal all-data address endpoint after the scalar exchange. No Pauli or Fourier phase claim is imported from the complex compiler into this bit proof. + +For each independent physical helper, the five routed residuals occupy different H_i. Their supported projectors have pairwise zero products. Their product is D_(I-sum_i sigma_i), so one paid child D_(sum_i sigma_i) completes D_I. This is one correction for each helper, not a packing of unrelated dirty rows. The 2,279 independent entrances have ranks {12:18,13:48,18:13,20:2200}; the 31 source-owned gauge entrances receive no extra completion. + +All 26,750 used physical frame IDs (26,380 distinct bases) have exact determinant witnesses. Their factors lie in {2,3,5,7}; the 231 distinct gauge-bundle bases use {2,3,5}. Window-map denominators also use {2,3,5}. Hence every retained q>2^80 preserves these ranks. General GL charts use gPg^-1, not a recomputed Euclidean orthogonal projection. + +The weighted generic normalizer allows every proper rank, including 60,65,90,100 in dimension120. Its cleared pivot-polynomial degree is at most m r(r+1)/2 < m^3. Thus the bad fraction is at most2m^3/q<10^-16. Each bad edge retains the full invertible local-ring residual and is paid 32m^2=460,800 rank-one fallback children. No field elimination at nonunit pivots is substituted. + +## 5. Exact bit ledger and ordinary finite recurrence + +One invocation has 95,789 positive-rank children and rank mass435,846. Its24 rank22 center copies are included once, as are each original center's live climbs. With H this histogram, + +n5 = 5H + 3520(delta4+delta23+delta46+delta50) + +18delta60+48delta65+13delta90+2200delta100. + +Thus m=120, W=23,683, calls495,304, mass2,837,560, deficit4,400. Work streams do not enlarge the live moment denominator. Five invocations retain all120 rank22 centers. + +The counted finite-bit adapter pays the literal scalar word, six bridge families, weighted good-edge wrappers, bad-class residuals, copy/read/erase, class routing, selector arithmetic, and fixed-tape movement. Its retained primitive theorem fixes the eligible prime and finite source recipe before varying width, so its finite constant may depend on that prime and recipe. It cannot depend on width, ancestor payload values or unrelated spectators except through complete volume. This is the correct quantifier order; an invented numerical Turing-machine constant is unnecessary. + +The largest child ratio is5/6. Three levels do not halve and four do: (5/6)^4=625/1296<1/2. The same one-level weighted moment induction remains valid; the factor4 is used only in depth/descriptor/borrowed-row bounds. Even paying24 simultaneous temporaries gives physical stock23,707 per GL cover vertex and log_q Wphysical(w)<14400w+1. The resulting internal log_q row charge is at most4ceil(log2(max(2,n)))(14400w+1), plus the old-leaf reserve. High digits are borrowed and restored internally; this is not a new external q-adic group factor. + +The defining-integer lift need not equal the older supplier's decoder endpoint. A safe cancellation-free prefix bound is64*37623^3*9430154^2<2^98. It uses neither signed integer restoration nor commutation between stage-dependent decoder channels. F2 payload exactness does not require complex floating precision. + +Let c=704197288590873/10^18. The freshly enclosed full bit moment, including all bad fallback charges, has a strictly positive gap. Start from the retained completed ordinary leaf a0=384599/10^10. Three finite levels with atom exponent beta=c give + +a_(j+1)=(1-c)c+c a_j, +a3=.000704197288358392787581160456097840009769165126434639147437106139267359. + +At every level a_j32mB^2. The complex half-shrink requirement is preserved:2*46<110. + +The physical row overcharge16,171 remains below20,161. Degree1,000,000 and suffix slope4,000,000 retain exact row gap23,971,789/25. These constants come from the changed stock and counted program, not from simply replacing72 by110 in the old guard. + +## 7. Fresh outer47 arithmetic and completion boundary + +Use complex saving747454944651775/10^18, strictly inside its freshly re-enclosed moment. The bit saving is the exact finite a3 above. Both moment gaps exceed7.7e-19. With eta=10^-12 and stopping fraction10^-9, the unchanged retained balanced assembly produces47 positive strict constraints and7 margins. + +The isolated candidate is kappa=703701743496697/10^18, or.000703701743496697. The minimum outer margin exceeds it by approximately7.3899e-19. This arithmetic value exceeds the retained frontier. Exact rational gaps, rather than printed decimals, are the evidence. + +The certificate remains a receipt-bound compositional research candidate with explicit source-theorem dependencies. The clean loader consumes 22 pinned public files and agrees in 23 exact semantic components with the audited context. Its fresh raw ledger and complete five-stage histogram agree; an empty-directory extraction passes all 10 focused tests. The clean-root global emitter regenerates all 12,858,690 weighted additions, 495,304 paid children, 120 fresh copies and erasures, 2,279 helper completions, and 3,520 final pair exchanges. Source-bound global lowering, exact h24 geometry, clean-loader qualification, and finite closure supplements are all mandatory before the entry point emits its PASS certificate. + +These fresh computations do not pretend that the inherited exhaustive F2 columns, exact determinant archive, or complex source theorems were independently reproved. Full portable packaging and Mac qualification remain separate delivery checks. The pinned comparison frontier is df95878's .000694782719690783; the subsequently reported public head31f4ccc1c16c538749845f9244b24747f1cf93dd claims .000695191451687307, which is a separate comparator pending independent validation and is not substituted into this source freeze. diff --git a/research/five-stage-gen5-banks/proof/PARITY-CONTRACT.md b/research/five-stage-gen5-banks/proof/PARITY-CONTRACT.md new file mode 100644 index 0000000000..fad6150b1f --- /dev/null +++ b/research/five-stage-gen5-banks/proof/PARITY-CONTRACT.md @@ -0,0 +1,45 @@ +# Parity-even payload gate removal: inherited contract audit + +Conclusion: removing an even-coefficient pointwise payload ADD is valid for the bit supplier. The odd-prime address arithmetic remains unchanged. A new paid profile still requires the actual filtered word and full frame schedule; this conclusion alone does not certify a new kappa value. + +## Primary source evidence + +The bundled, unmodified primary section [`primary/03-motifs.tex`](primary/03-motifs.tex) states the following. Its exact source, attribution, and file hashes are recorded in [`primary/PROVENANCE.md`](primary/PROVENANCE.md). + +* Line50: in the bit construction scalars lie in F2. +* Lines149–177: replace a scalar by an array in R^Omega, with R the scalar ring of the network. Common R-linear frames give the exact operator `D_out S_Omega D_in^-1`. +* Around line223: the scalar domain need not equal the label field. Bit labels are rational subspaces even though the payload scalars are binary. +* Lines483–493: rational-address frames are F2-linear permutations of array entries; the bit network uses pointwise XOR gates. + +The byte-pinned [`copied-centers-lemma.tex`](copied-centers-lemma.tex) in this package opens with its scalar restoration identity explicitly over F2. Its copy contract preserves the complete role stream, controls and spectators; each copy's frame change and erasure remain paid. + +The retained PR234 [`INTEGRATED_PROOF.md`](INTEGRATED_PROOF.md), line56, explicitly says: "The defining-integer lift need not equal the older supplier's decoder endpoint" and the majorant "uses neither signed integer restoration nor commutation between stage-dependent decoder channels." The package's signed integer decoder checks are stronger supplier evidence; the inherited bit interface does not impose their particular integer endpoint on a newly synthesized F2-equivalent word. + +The retained weighted bit theorem, [`three-stage-cover-bit.tex`](three-stage-cover-bit.tex), uses the odd-prime local ring Z/q^w for address fields and weighted address interchanges. Its rational projectors, unit-pivot tests, route matrices and fallback coefficients are address geometry. They are not the F2 payload ADD coefficients. + +## Operator proof + +Fix the finite complete address set Omega and let one stream be a vector in F2^Omega. A payload gate is `x_a <- x_a + (c mod2) x_b`. For even c this is the identity on every input, including arbitrary correlated dirty streams and spectators. Removing any number of these identity gates leaves the complete scalar operator S_Omega unchanged. Negative odd coefficients and coefficient3 also reduce to1, though the simplest experimental witness can retain their original signed integer representatives. + +Retain each original input/output frame and every remaining gate's original common frame. The common-frame identity then gives the same `D_out S_Omega D_in^-1` for the filtered word. In particular, every independent helper still has its required partial-swap residual and the existing completed-bank proof still applies. No integer identity of the new lift is needed to conclude this F2 operator identity. + +## Safe frame compression + +Deleting an ADD removes its operand-frame alignment requirement. For a given stream, collect successive MOVE operations between surviving uses. A use includes any surviving ADD, COPY read/write, ERASE or required phase/endpoint boundary. No use may be crossed merely because another stream is idle. + +Suppose the original local frames form a nested chain U0 <= U1 <= ... <= Uk. Their exact address changes telescope to `D_Uk D_U0^-1`. Their orthogonal increments are disjoint commuting projectors, so this is one allowed residual of rank dim(Uk)-dim(U0). In the reflected orientation the chain is the reversed complementary chain; the same endpoint difference and rank follow exactly. The ambient stage background cancels. Rebuild both ledgers from the actual surviving uses and actual basis inclusions; do not infer this from summed ranks alone. + +Keep every physical input/output family and its endpoint, all stage boundaries, all data routes/bridges, and every copied-center lifetime. For source527 the120 center copies in the five-stage construction have odd scatter coefficients, so parity filtering does not itself remove those episodes. The shared work stream cannot be used before COPY or after ERASE. A COPY is a barrier even if its original register has no intervening ADD. + +## Required finite admission + +1. Filter actual emitted ADD records by the literal coefficient modulo2; retain all odd-coefficient records in their original order. Check all20107 formal F2 source, target and dirty columns against the admitted shear. The expected local event counts before any further resynthesis are1,783,196 removed and786,621 retained. +2. Generate the actual complemented inverse schedule, with fresh reverse copies as before, and verify every formal F2 column again. Do not reverse an erasure. +3. Compute cancellation-free prefix bounds for the new literal signed forward/inverse projections. Recompute the five-stage bound and finite bill. Failure to reproduce the previous integer decoder is not itself a contract failure; a missing F2 dirty restoration is. +4. Regenerate exact monotone forward/reflected physical paths and the complete paid histogram. Every fused residual's actual endpoints must be checked. Keep all remaining recursive children, copied-center calls, fallback allowance, data idle edges and stock. +5. Rebind the completed banks and final global address lowering to the new word and tags. Their actual rational address projectors, odd-q routes and normalizers must not be reduced modulo2. +6. Rerun actual basis/prime coverage, finite ordinary-leaf assembly, both rational moment engines and all47 outer inequalities before claiming a result. + +For simple monotone MOVE fusion the paid rank mass and physical stock remain unchanged; combining positive increments can improve the concave moment while reducing the number of children. Any different deficit or stock must be explained by a separate exact endpoint change. The displayed bound is still conditional on the retained all-size compiler, selectors, common ancestor charts, restored rows, routing, prime and analytic interfaces. + +Prepared with OpenAI Codex assistance. This audit is independent of the physical parity-filter/fusion implementation owned by the complex research lane. diff --git a/research/five-stage-gen5-banks/proof/README.md b/research/five-stage-gen5-banks/proof/README.md new file mode 100644 index 0000000000..e4aac5132f --- /dev/null +++ b/research/five-stage-gen5-banks/proof/README.md @@ -0,0 +1,8 @@ +# Retained proof documents + +The `.tex` files are byte-pinned theorem sources. `finite_check.py` checks their hashes and phrases. + +`INTEGRATED_PROOF.md`, `FINITE_BIT_ACCOUNTING.md` and `PARITY-CONTRACT.md` are retained verbatim from the +PR234 and source527 packages. Their arguments apply to this package unchanged. Their numerical instances, +such as R, W, stock, bills and digests, describe the earlier source471 and source527 helpers, not gen5. +The gen5 values are recomputed by `verify.py` and stated in `../PROOF.md` and `../BANK-PROOF.md`. diff --git a/research/five-stage-gen5-banks/proof/copied-centers-lemma.tex b/research/five-stage-gen5-banks/proof/copied-centers-lemma.tex new file mode 100644 index 0000000000..8933aaf508 --- /dev/null +++ b/research/five-stage-gen5-banks/proof/copied-centers-lemma.tex @@ -0,0 +1,103 @@ +\subsection{Scalar, frame and temporary-stream contracts} +The retained source-copy, reversible mixer and scatter maps satisfy +$JLV=I$. Over $\mathbb F_2$ the chronological word +\[ + L,\ J,\ L^{-1},\ V,\ L,\ J,\ L^{-1},\ V +\] +adds the input to the target and restores every arbitrary auxiliary. +Over Gaussian dyadics use its corresponding old-value subtraction and +new-value addition. A designated retained output has a distinct terminal +output-use carrier: a matching may feed that carrier, but cannot merge +two designated terminals or append a later middle-producer consumer. +Its remaining uses before cleanup are its scatter reads, all of which +leave its scalar value unchanged. + +Within one tensor invocation suppress the fixed future line and put +\[ + D_0=B\otimes F_h,\quad D_1=A\otimes F_h,\quad + A=B\mathbin{\perp}P,\quad D_U=D_0\mathbin{\perp}(P\otimes U), +\] +where $P$ and the suppressed future factor are one-dimensional and +$U$ is a nondegenerate retained-center space of dimension $r$. +Thus a local change of rank $d$ has ambient rank $d$. +Write $\mathcal F_Q$ for the address frame: it is the rational partial +swap $D_Q$ in the bit construction, and the binary phase $C_Q$ in the +complex construction. Changing a copy from frame $Q_1$ to $Q_2$ means +applying $\mathcal F_{Q_2}\mathcal F_{Q_1}^{-1}$ to its physical stream. +Orthogonal backgrounds cancel in this quotient. + +Copies use Paureel's retained copy/transform/read/discard interface +\cite{paureel,pr29}. A copy has precisely the original complete role +stream, including all control and spectator ranges, and volume $V/W$. +It is processed while inactive original streams are parked on the fixed +depth-first stack tapes. Copying, pointwise reads and erasure are linear +in that stream's volume. Sequential processing needs one additional +fixed work stream, not an independently varying row coordinate. + +\begin{lemma}[Copied retained-center schedule] +In either invocation orientation a designated retained center's +physical rank profile can be changed from $z^r+z^h$ to +$z^r+z^{h-r}$, with the same scalar action, original role endpoints, +and arbitrary-scratch restoration. The rank-$r$ transform on the copy +is included in the recursive call list. +\end{lemma} +\begin{proof} +In the forward orientation the original center has scalar value $w$ +at frame $D_U$ after the middle mixer. Its old sequence was +$D_U\to D_0\to D_1$: scatter at $D_0$, then cleanup at $D_1$, +with ranks $r,h$. +Keep the original at $D_U$, copy its physical stream, and transform +only the copy to $D_0$, paying rank $r$. Supply every scatter read +from that transformed copy while its data targets remain at their +unchanged common frame $D_0$, then erase the temporary. The reads +are exactly those of $w$ in the old schedule. Since they do not change +$w$, move the original directly from $D_U$ to $D_1$ before its first +cleanup incidence; this costs $h-r$. Every subsequent original gate +therefore receives the same scalar value at its required frame. + +In the reverse complementary orientation the old sequence was +$D_0\to D_1\to D_{U^\perp}$, with ranks $h,r$ and scatter at $D_1$. +After the preceding all-$D_0$ operations, advance the original directly +to $D_{U^\perp}=D_0\mathbin{\perp}(P\otimes U^\perp)$, paying +$h-r$. Copy it and transform the copy to $D_1$, paying $r$. +Use that copy for all early scatter reads, then erase it. The original +already has the exact frame and unchanged scalar value required by the +following inverse mixer. Terminal output-use separation ensures no +intervening producer consumer has been bypassed. + +For partial swaps either direction of the rank-$r$ change is the same +involution. For complex phases the forward copy uses $C_U^{-1}$, +the direct original growth uses $C_{U^\perp}$, and the reverse copy +uses $C_FC_{U^\perp}^{-1}=C_U$. These are the same charged ranks, +implemented by the retained forward/inverse residual interface. +All tensor backgrounds cancel as stated. Every original scalar +incidence, final source-copy cancellation and auxiliary source/sink +operator is unchanged. Thus the scalar identity and all endpoints +remain exact on arbitrary initial auxiliary values. +\end{proof} + +For the selected centers $r=h-1$, and there are $h$ distinct retained +output uses per invocation. Their old histogram has rank mass +$hR_h+2\ell_h$, where $\ell_h=h(h-1)$. The new histogram is exactly +\[ + H'_{h,1}=H_{h,1}+h,\qquad H'_{h,h}=H_{h,h}-h, + \qquad H'_{h,r}=H_{h,r}\quad(r\ne1,h), +\] +and hence $\sum_r rH'_{h,r}=hR_h+\ell_h$. +Every old rank-$(h-1)$ residual remains as a paid transform of a copy; +its projector and ordinary bit pivot profile are unchanged. Only the +full-rank original transition becomes the rank-one complement. +The physical role count $R_h$ is unchanged. + +For two factors, put $N=v_av_b$, $B_a=v_bR_a$, $B_b=v_aR_b$, +$W=2N+B_a+B_b$ and $L=v_b\ell_a+v_a\ell_b$. +All exterior, data-front and endpoint-correction calls remain in place. +The resulting complete rank mass is +\[ + s=Wm-N+L,\qquad Wm-s=N-L. +\] +This follows by subtracting exactly $L$ from the retained two-stage +physical mass $Wm-N+2L$. The $N$ rank-one endpoint-copy calls are +separate and remain fully charged. Because center copies retain the +same complete role-volume fraction $1/W$, the existing complete-row, +integer-width remainder and fixed-tape recurrence proofs apply. diff --git a/research/five-stage-gen5-banks/proof/primary/03-motifs.tex b/research/five-stage-gen5-banks/proof/primary/03-motifs.tex new file mode 100644 index 0000000000..cdb0ba527a --- /dev/null +++ b/research/five-stage-gen5-banks/proof/primary/03-motifs.tex @@ -0,0 +1,700 @@ +\section{Two finite networks with a rank saving} +\label{sec:finite-networks} + +We construct two fixed linear networks that exchange two banks of values +while restoring every auxiliary value. When the values are replaced by +arrays, a common representation on all wires at a gate lets that gate act +pointwise without disturbing the representation. We explain this invariant +before constructing the subspace labels that make changes of representation +cheap. The first network uses bit values and rational subspaces; the second +uses Gaussian dyadic values and binary subspaces. The scalar domain specifies +the values combined at a gate, while the subspace labels are used to construct operators +on each wire's address-indexed array. + +Put +\[ + h=100,\qquad v=\binom h3=161700,\qquad + N=v^3=4227952113000000,\qquad m=h^3=1000000. +\] +Let $\mathcal T$ be the set of three-element subsets of $[h]$. +There are two data banks $X_a,Y_a$, indexed by +$a=(a_1,a_2,a_3)\in\mathcal T^3$. +A wire carries one scalar. A gate is a fixed linear map on a specified +set of wires; untouched wires retain their values. The vertices on a +wire are its source, the gates that touch it in time order, and its sink; +its edges join consecutive vertices. We call the name of a wire its +\emph{role}, so that we can distinguish a fixed place in the network +from the value currently carried there. + +\subsection{Scalar operations and restored auxiliary values} + +There are three stages. At stage $j$, fix the other two coordinates and +operate on the $v$ values in each bank obtained by varying coordinate $j$. Thus +there are $v^2$ separate invocations at each stage. +Each such invocation has its own auxiliary wires, distinct from all +other invocations, including those in other stages. There are +\[ + I=3v^2=78440670000 +\] +invocations. In a forward invocation, write $x_T$ for the data used as +controls and $y_S$ for the data to be updated; $S,T\in\mathcal T$ are +their varying $j$th coordinates. These are the logical source and +target banks of the invocation. For each ordered pair $(S,T)$ that is +neighboring under the rule below, there is an auxiliary wire $A_{ST}$. +There are also central wires $C_i$, $i\in[h]$, and in the second +construction a wire $C_\ast$. We call all these auxiliary wires +\emph{scratch wires}; their initial values may be arbitrary. + +The following maps specify the construction. +\begin{itemize} +\item In the bit construction, scalars lie in $\mathbb F_2$, and +$S,T$ are neighbors when $|S\cap T|=1$. +The copy map adds $x_T$ to $A_{ST}$ for each neighbor pair. +The side injection adds $\sum_{T:\,|S\cap T|=1}A_{ST}$ to $y_S$. +The gather adds $\sum_{T\ni i}x_T$ to $C_i$, and the scatter adds +$\sum_{i\in S}C_i$ to $y_S$. +\item In the complex construction, scalars lie in +$\mathbb Z[i,1/2]$, and neighbors are distinct triples with even +intersection. Copy is unchanged. Side injection adds +\[ + -\sum_{T\text{ neighboring }S}\frac{|S\cap T|-1}{2}A_{ST} +\] +to $y_S$. Gather adds $\sum_{T\ni i}x_T$ to $C_i$ and +$\sum_Tx_T$ to $C_\ast$. Scatter adds +$(\sum_{i\in S}C_i-C_\ast)/2$ to $y_S$. +\end{itemize} +Each update leaves its control wires unchanged. The first two rows of +the following schedule remove the effect of the old scratch values; +the next four introduce the source values and add their effect to the +target; the last two restore the scratch values. +This cancellation of arbitrary initial scratch values is a linear +instance of the restoration construction for transparent computation in +Buhrman, Cleve, Kouck\'y, Loff and Speelman~\cite[Section~3]{BuhrmanCleveKouckyLoffSpeelman2014}. +The forward schedule is +\begin{equation} +\begin{array}{c|l|l} +\text{row}&\text{operation}&\text{gate grouping}\\ \hline +0&\text{subtract side injection}&\text{one gate per target}\\ +1&\text{subtract scatter}&\text{one gate on targets and center}\\ +2&\text{copy}&\text{one gate per source}\\ +3&\text{gather}&\text{one gate on sources and center}\\ +4&\text{scatter}&\text{one gate on targets and center}\\ +5&\text{side injection}&\text{one gate per target}\\ +6&\text{undo gather}&\text{one gate on sources and center}\\ +7&\text{undo copy}&\text{one gate per source}. +\end{array} +\label{eq:motif-schedule} +\end{equation} + +\begin{lemma}\label{lem:scalar-motifs} +For arbitrary initial values of its auxiliary wires, a forward +invocation changes $y_S$ to $y_S+x_S$ and leaves every other value +unchanged. Performing a forward invocation from $X$ to $Y$ at stage 1, +the inverse forward schedule from $Y$ to $X$ at stage 2, and a forward +invocation from $X$ to $Y$ at stage 3 sends +\[ + (X_a,Y_a)\longmapsto(-Y_a,X_a) +\] +and restores every auxiliary value. In the bit construction this is the +permutation exchanging $X_a$ and $Y_a$. +\end{lemma} + +\begin{proof} +Write $\mathcal V$ for copy, $\mathcal G$ for gather, +$\mathcal J$ for side injection and $\mathcal R$ for scatter. +If the initial side and central vectors are $a,c$, the first two rows +subtract $\mathcal J a+\mathcal R c$ from $y$. Rows 2 and 3 change +them to $a+\mathcal Vx,c+\mathcal Gx$. Rows 4 and 5 therefore add +$\mathcal R(c+\mathcal Gx)+\mathcal J(a+\mathcal Vx)$. +Rows 6 and 7 restore $c,a$. The net target change is +$(\mathcal J\mathcal V+\mathcal R\mathcal G)x$, independently of +$a,c$. + +In the bit case, the central coefficient from $x_T$ to $y_S$ is +$|S\cap T|\bmod2$. The side contribution cancels exactly the +intersection-one cases; distinct triples with intersection zero or two +already have coefficient zero, and the self coefficient is one. +In the complex case, the central coefficient is $(|S\cap T|-1)/2$. +The side cancels it for distinct triples with intersection zero or two; +intersection one contributes zero, and the self coefficient is one. +Thus both net maps are $y\gets y+x$. + +The inverse schedule with logical source $Y$ and target $X$ effects +$X\gets X-Y$. Starting from $(x,y)$, the three stages give +$(x,y+x)$, then $(-y,y+x)$, then $(-y,x)$. +Each invocation restores its own auxiliary wires. +\end{proof} + +A fixed triple has +\[ + z_{\rm b}=3\binom{97}{2}=13968,\qquad + z_{\rm c}=\binom{97}{3}+3\cdot97=147731 +\] +neighbors in the two constructions, respectively. The second count +separates intersection zero and intersection two. Ordered pairs must +be counted: there are $vz$ side wires in each invocation, not $vz/2$. +With $c_{\rm b}=100$ and $c_{\rm c}=101$ central wires per invocation, +the total wire counts are +\begin{align} + W_{\rm b}&=2N+I(vz_{\rm b}+c_{\rm b}) + =177176569091445000000,\label{eq:bit-wire-count}\\ + W_{\rm c}&=2N+I(vz_{\rm c}+c_{\rm c}) + =1873807244643542670000.\label{eq:complex-wire-count} +\end{align} +All these numbers are fixed, independently of any eventual input length. + +\subsection{From scalar values to arrays} + +We record the representation principle before choosing the labels. Let +$R$ be the scalar ring of either network and let $\Omega$ be a finite address +set common to all wires. Replace each scalar by an array in $R^\Omega$, and +apply each scalar gate pointwise at every address. Write $\mathsf S_\Omega$ +for the resulting network on the vector of wire arrays. + +At each source, gate and sink $v$, assign an invertible $R$-linear operator +$D_v$ on $R^\Omega$, called its \emph{frame}. A frame acts on the values +indexed by addresses within one wire's array and may mix them; a gate instead +combines wire values at each fixed address. All incoming and outgoing +incidences of one gate use the same $D_v$. On an edge from $u$ to $v$, apply +$D_vD_u^{-1}$ to that wire's array. Define the operators on all input and +output roles by +\[ + D_{\rm in}=\bigoplus_w D_{\mathrm{source}(w)},\qquad + D_{\rm out}=\bigoplus_w D_{\mathrm{sink}(w)}. +\] +For a supplied physical input $f$, define its logical interpretation to be +$g=D_{\rm in}^{-1}f$; this definition requires no physical preprocessing. +At a vertex $v$, the invariant is that the stored array equals $D_v$ applied +to the logical array there. It holds at the sources by definition. On an +edge whose logical array is $\varphi$, the edge operator changes $D_u\varphi$ +to $D_v\varphi$. At a gate with logical input arrays $\varphi_j$, +$R$-linearity gives +$\sum_j c_jD_v\varphi_j=D_v(\sum_j c_j\varphi_j)$ for each output combination, with +$c_j\in R$. Thus the common frame commutes with the pointwise gate, and +the invariant continues to the sinks. The implemented operator is therefore +\begin{equation} + D_{\rm out}\,\mathsf S_\Omega\,D_{\rm in}^{-1}. + \label{eq:common-frame-identity} +\end{equation} +In particular, if the scalar network is a signed role permutation that +sends input role $w$ to output role $\rho(w)$ with scalar sign +$\varepsilon_w$, that route applies +$\varepsilon_wD_{\mathrm{sink}(\rho(w))} +D_{\mathrm{source}(w)}^{-1}$ to its input array. All roles, including +the auxiliary roles, enter this identity. Once the scalar routing is fixed, +the endpoint frames determine the array operator on each route; the +intermediate frames can then be chosen to make each edge change inexpensive. + +Figure~\ref{fig:frame-compatibility} summarizes this invariant. +\begin{figure}[ht] +\centering +\input{figures/proof-map.tex} +\caption{An edge changes the representation of one role's logical array +$g_w$. At the next gate $G$, all $t$ input arrays have the common frame +$D_v$, so the pointwise linear gate commutes with that frame. The same +$D_v$ acts on each output component.} +\label{fig:frame-compatibility} +\end{figure} + +\subsection{Subspaces attached to the gates} + +The scalar network already has the required signed exchange. We now +choose its intermediate labels to make the changes of frame inexpensive. +A label is a nondegenerate subspace of a fixed bilinear space. On every +edge one label will contain the other. For such an edge, the +\emph{orthogonal residual} is the orthogonal complement of the smaller label inside +the larger one; its dimension is the absolute change in label dimension. +The saving will come from keeping the total dimension lost on decreasing +edges small relative to $N$. + +For the bit network, let $F=\mathbb Q^h$ with bilinear form +\[ + \langle x,y\rangle=x^{\mathsf T}(I-J/9)y, +\] +where $J$ is the all-one matrix. This form has eigenvalues $1$ and +$1-h/9=-91/9$, so it is nondegenerate. For a triple $T$ let $t_T$ be +its indicator vector. Then +\[ + \langle t_S,t_T\rangle=|S\cap T|-1, + \qquad \langle t_T,t_T\rangle=2. +\] +For the complex network, take instead $F=\mathbb F_2^h$ with the +ordinary dot product; here $t_T\cdot t_T=1$. +Thus every triple line is nondegenerate, and neighboring triple lines +are orthogonal, in the label field belonging to either construction. +The scalar domain need not equal the label field. +These degree-one intersection formulas specialize the construction +described by Alon~\cite[Section~3, remark after Theorem~1.1]{Alon1998} +to the prime $2$, with the ground-set size changed to $h=100$. + +The ambient label space is $\mathcal F=F^{\otimes3}$ with its tensor +bilinear form. It has dimension $m$ and is nondegenerate. Write +\[ + u_a=t_{a_1}\otimes t_{a_2}\otimes t_{a_3},\qquad U_a=\langle u_a\rangle. +\] +The prescribed terminal labels are +\[ +\begin{array}{c|cc} +\text{role}&\text{source label}&\text{sink label}\\ \hline +X_a&U_a&\mathcal F\\ +Y_a&0&U_a^\perp\\ +\text{each scratch role}&0&\mathcal F. +\end{array} +\] +Write $W$ for the wire count in the construction under consideration. +The source dimensions sum to $N$ and the sink dimensions to $Wm-N$. +Thus the signed dimension changes will sum to $Wm-2N$, because the +contributions at gates cancel. If decreasing edges lose a total +dimension $L$, the sum of absolute changes is $Wm-2N+2L$. +We will obtain $L1$. +The same argument gives a unit vector in $Q^\perp$ when it is nonzero. +A triple complement, and the complement of two neighboring triple +lines, contain coordinate units outside supports of sizes at most +three and six, respectively. Full tensor spaces contain coordinate +units as well. In each nonzero tensor summand, tensoring these chosen +norm-one vectors gives a norm-one vector; placing it in that orthogonal +summand gives one in the whole residual. Each residual is nondegenerate +by the decompositions above. Thus every nonzero residual is nonalternating. + +For completeness, every nondegenerate nonalternating binary symmetric +space has an orthonormal basis. Split off unit lines until the +remaining space is alternating. A nonzero nondegenerate alternating +space splits into planes with bases $a,b$ satisfying +$a\cdot a=b\cdot b=0$, $a\cdot b=1$; this follows by choosing a +nonzero $a$, choosing $b$ with $a\cdot b=1$, and taking the orthogonal +complement of their nondegenerate plane. Retain one unit vector $w$ +from the lines already split off. A plane orthogonal to $w$ can be +absorbed into that line: the three vectors +\[ + w+a,\qquad w+b,\qquad w+a+b +\] +are independent, pairwise orthogonal, and have norm one. +Use one of these new unit vectors in place of $w$ for the next plane; +the remaining planes are still orthogonal to it. Repeating this +operation absorbs every alternating plane. +\end{proof} + +The loss ratios have the exact values +\[ + \frac{L_{\rm b}}{N}=\frac{100}{539},\qquad + \frac{L_{\rm c}}{N}=\frac{101}{539}. +\] +In particular, both are smaller than $1/2$. We now turn the dimension +count into the two interfaces needed later. + +\subsection{The rational matrix interface} + +For a nondegenerate rational subspace $U\subset\mathcal F$, write +$P_U$ for the projection onto $U$ along $U^\perp$. Assign $P_U$ to +each gate or sink with label $U$. Assign the source matrix $-P_{U_a}$ +to $X_a$ and zero to every other source. +These are fixed rational $m\times m$ matrices; write $M_v$ for the matrix +at vertex $v$. Define +$\rho(X_a)=Y_a$, $\rho(Y_a)=X_a$, and let $\rho$ fix every auxiliary +wire. + +In the tape application, two address chunks are written as vectors $H,D$ +of $m$ fields. For a matrix $M$, the frame $\Phi_M$ moves the array entry +at $(H,D)$ to $(H+MD,D)$, leaving the other address fields unchanged. +The fields use a radix coprime to the fixed denominators, and addition is +modulo their common range. Hence $\Phi_M$ is an invertible +$\mathbb F_2$-linear permutation of array entries, and +$\Phi_{M'}\Phi_M=\Phi_{M'+M}$. Using $D_v=\Phi_{M_v}$ +in \eqref{eq:common-frame-identity}, the endpoint matrix difference on each +routed role is exactly the shear applied to that role. The following identity +makes it the same shear $H\gets H+D$ on every role; +Section~\ref{sec:tape-interchange} turns that shear into a field interchange +and implements an edge change with one smaller interchange per unit of its +rational rank. + +\begin{proposition}\label{prop:bit-motif-interface} +The bit network has $W_{\rm b}$ wires, uses only pointwise XOR gates, +and sends its input vector to the permutation $\rho$ of that vector. +Its rational matrices are common to all incidences of a gate and obey +\[ + M_{\mathrm{sink}(\rho(w))}-M_{\mathrm{source}(w)}=I_m + \quad\text{for every input role }w. +\] +The sum of the rational ranks of all edge differences is +\begin{align} + s_{\rm b} + &=\sum_{e}\operatorname{rank}_{\mathbb Q} + (M_{\mathrm{head}(e)}-M_{\mathrm{tail}(e)})\\ + &=W_{\rm b}m-N+2L_{\rm b} + =1771765690887858612870000000$. + +For an input $X_a$ the endpoint difference is +$P_{U_a^\perp}-(-P_{U_a})=I_m$. Every other role has zero source +matrix and identity sink matrix. This proves the interface. +\end{proof} + +\subsection{The binary phase interface} + +Use the complex scalar network and binary labels. For a binary vector +$x$, let $\operatorname{wt}(x)$ denote its integer Hamming weight, and +write $[b]\in\{0,1\}$ for the integer representative of $b\in\mathbb F_2$. +For a label $U$, let +\[ + q_U(x)=\operatorname{wt}(P_Ux)\pmod4. +\] +The projection here is over $\mathbb F_2$. +Let +\[ + H=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix},\quad + C=H\begin{pmatrix}1&0\\0&i\end{pmatrix}H + =aI+bX,\qquad a=\frac{1+i}{2},\quad b=\frac{1-i}{2}, +\] +where $X$ interchanges the two coordinates. On functions of +$x\in\mathbb F_2^m$ define +\[ + \mathcal C_U=H^{\otimes m}\operatorname{diag}_x(i^{q_U(x)})H^{\otimes m}. +\] +The use of $H$ in this definition is an identity of matrices. Each entry +of $\mathcal C_U$ and its inverse is a Gaussian integer divided by $2^m$, +so both preserve arrays over $\mathbb Z[i,1/2]$. The kernels implemented +below have Gaussian dyadic coefficients. + +To apply the scalar network to these functions, replace the scalar on +each wire $w$ by an array +$f_w:\mathbb F_2^m\to\mathbb Z[i,1/2]$. At each address, a gate +applies its scalar linear map to the values on the wires it touches. +The frame in \eqref{eq:common-frame-identity} is $D_v=\mathcal C_U$ at a +vertex with label $U$. On an edge from label $U$ to label $V$, apply +$\mathcal C_V\mathcal C_U^{-1}$ to that wire's array. +All frames are diagonalized by the same matrix $H^{\otimes m}$. +For an integer $k\ge1$, an address for $k$ columns is +$(x^{(1)},\ldots,x^{(k)})\in(\mathbb F_2^m)^k$; every frame and edge +operator is then the tensor product of its one-column version over +these $k$ coordinates. Each scalar gate is still applied once at each +joint address, to the vector of values on the roles it touches. + +\begin{proposition}\label{prop:complex-motif-interface} +For each edge of the complex network, write $U,V$ for its tail and +head labels. Its phase-frame difference +$\mathcal C_V\mathcal C_U^{-1}$ is a product of one translation +kernel $aI+bX_v$, or its inverse, per vector in an orthonormal basis +of the edge residual. Here $(X_vf)(x)=f(x+v)$. +The sum of these basis lengths is +\[ + s_{\rm c}=W_{\rm c}m-2N+2L_{\rm c} + =18738072446366712673080000000$. + +For an edge $e$, write $\mathcal B_e$ for its residual basis and +$K_{e,v}$ for the forward or inverse translation kernel associated +with $v\in\mathcal B_e$. Taking tensor products preserves their +product, so on $k$ columns +\[ + \bigl(\mathcal C_V\mathcal C_U^{-1}\bigr)^{\otimes k} + =\prod_{v\in\mathcal B_e}K_{e,v}^{\otimes k}. +\] +Thus each residual vector contributes one factor acting on all $k$ +columns, and there are $s_{\rm c}$ such factors over the network. + +Let $\rho$ denote the underlying permutation of the complex roles: it +exchanges $X_a,Y_a$ and fixes each scratch role. +By Lemma~\ref{lem:scalar-motifs}, the pointwise scalar network sends an input array at +$X_a$ to $Y_a$ with sign $+1$, an input at $Y_a$ to $X_a$ with sign +$-1$, and each scratch input to its own output with sign $+1$. +Applying \eqref{eq:common-frame-identity} with $D_v=\mathcal C_{U_v}$, +where $U_v$ is the label at vertex $v$, shows that an input role $w$ reaches +output role $\rho(w)$ with that sign and with operator +$\mathcal C_{U_{\mathrm{sink}(\rho(w))}} + \mathcal C_{U_{\mathrm{source}(w)}}^{-1}$. +For $k$ columns, use $D_v=\mathcal C_{U_v}^{\otimes k}$ on the joint +address set in the same identity. The route operator is then the $k$th +tensor power of the displayed address operator, multiplied by its scalar +route sign once. +The zero label has frame $I$, while the full label has frame +$C^{\otimes m}$ because $q_{\mathcal F}(x)=\operatorname{wt}(x)$. +Every pair except $X_a\to Y_a$ has these zero and full labels. +For the remaining pair, write $u=u_a$. Its binary norm is one and +its weight is $3^3=27$. Orthogonal weight additivity yields +\begin{align*} + q_{U_a^\perp}(x)-q_{U_a}(x) + &=\operatorname{wt}(x)-2\operatorname{wt}(u)[u\cdot x]\\ + &=\operatorname{wt}(x)+2[u\cdot x]\pmod4. +\end{align*} +Since $2[u\cdot x]\equiv2\sum_{j\in\operatorname{supp}(u)}x_j +\pmod4$, the operator on $X_a\to Y_a$ is the tensor of $C^{-1}$ on the +27 coordinates of $\operatorname{supp}(u)$ and $C$ elsewhere. +Put $Z=\operatorname{diag}(1,-1)$. Direct multiplication gives +\[ + C=iZC^{-1}Z,\qquad C^{-1}=-iZCZ. +\] +For $k$ columns, let $Z_{a,k}$ be the tensor product of $Z$ on +those 27 coordinates in every column and the identity elsewhere. +Apply $Z_{a,k}$ before the network at $X_a$, and apply +$i^{27k}Z_{a,k}$ after the network at $Y_a$; the latter scalar is +applied once to the whole role. There are $27k$ inverse factors, so +the identity $C=iZC^{-1}Z$ turns each of them into $C$. The operator +on this pair is therefore $C^{\otimes mk}$ as well. +Only the physical $X$ outputs still carry the minus sign of the +scalar exchange. Negate those outputs and send output role $\rho(w)$ +back to role $w$. Every role, including every scratch role, now has +the required forward tensor product. +\end{proof} + +\subsection{Explicit rational bounds for the two recurrences} + +The relative rank deficits are +\[ + \eta_{\rm b}=\frac{W_{\rm b}m-s_{\rm b}}{W_{\rm b}m} + =\frac{339}{22587335000000},\qquad + \eta_{\rm c}=\frac{W_{\rm c}m-s_{\rm c}}{W_{\rm c}m} + =\frac{73}{19906842167500}. +\] +For both recurrences we may use the fixed rational exponent +\begin{equation} + \tau=\sigma=1-2^{-50}. + \label{eq:explicit-motif-exponents} +\end{equation} +Both exact deficits displayed above are greater than $20\cdot2^{-50}$. +Since $m<2^{20}$ and $\log 2<1$, we have $\log m<20$, whence +\[ + m^{1-2^{-50}} + =m\exp(-2^{-50}\log m) + >m(1-20\cdot2^{-50})>m(1-\eta) +\] +for either $\eta=\eta_{\rm b}$ or $\eta=\eta_{\rm c}$. +Consequently +\[ + \frac{s_{\rm b}}{W_{\rm b}}2^{80}$ avoiding all fixed rational denominators and rank witnesses. +At atom width $w$ use the finite cover $\operatorname{GL}_m(R_w)$ and its +right-multiplication edges $g\mapsto gR_s$. Every vertex has the unique chart +\[ + g=g_0+qG_1,\quad g_0\in\operatorname{GL}_m(\mathbb F_q), + \quad G_1\in(\mathbb Z/q^{w-1}\mathbb Z)^{m^2}, +\] +using fixed representatives for $g_0$. Right multiplication permutes $g_0$ +and acts affinely on $G_1$, with a carry determined by $g_0$. Its fixed +dimensional rational linear part factors into fixed scalings, ordered +shifts and a constant number of old width-$O(w)$ interchanges. Thus each +fixed port routing costs $O(Vw^{1-a_{\rm old}})$. + +Let $W_0=|\operatorname{GL}_m(\mathbb F_q)|(2v+3R_{\rm loc})$. +The full role count is $W(w)=W_0q^{m^2(w-1)}$. Split preceding rows into +low role type, high matrix and unused stock. Batch \emph{all} high matrices +for each low type in one stream. A frame edge is one child on this whole +batch, of volume $V/W_0$, and routing is executed once per fixed operation +type. Consequently neither the number of tapes nor the number of child +programs grows with $w$. High cardinality cancels in the normalized moment, +but its $m^2(w-1)$ digits are charged in the row reserve. + +For each fixed projector require the leading minors of sizes $1$ through +$r$ to be units. Each cleared minor polynomial in $g_0$ is nonzero: +similarity to $\operatorname{diag}(I_r,0)$ supplies a witness after the +fixed rank is preserved modulo $q$. Their total degree is at most $m^3$. +The polynomial zero bound and conditioning on invertibility (a factor at +most two) give bad fraction at most $2m^3/q<10^{-16}$ for each edge type. +No simultaneous union bound over edge types is needed, since their moments +are averaged separately. Good classes use the whole-rank child; bad +classes use the full $32m^2$-child fallback just proved. + +Let $H_r$ be the three-stage histogram described above and +$W=2v+3R_{\rm loc}=90140$. The retained ledger gives +\[ + \sum_r rH_r=6037356,\qquad Wm-\sum_r rH_r=2024=2v-3\ell, + \qquad \max\{r:H_r>0\}=66. +\] +For $a=747/2000000$, $\tau=1-a$, and $b=10^{-16}$ the conservative moment is +\[ + \mu_\tau\le + \sum_r\frac{H_r}{W}(r/m)^\tau+ + b\frac{32m^2\sum_rH_r}{W}(1/m)^\tau<1. +\] +The entire fallback is added; no displaced good contribution is subtracted. +The exact script \path{scripts/three_stage_cover_network.py} and certificate +\path{certificates/three-stage-cover-network.json}, from the retained axis +\path{certificates/three-stage-cover-bit-input.json}, give +$1-\mu_\tau>6.3397366396\cdot10^{-7}$. +The certificate uses the 32-term positive atanh logarithm series with its +geometric tail, $\exp(u)\le1+u+u^2/(2(1-u/3))$, and upward rounding to +the grid $2^{-120}$. All inputs have $0\le u<3$; these are rational upper +bounds, not floating-point root estimates. Since every child ratio is at +most one and $\tau<1$, this same strict bound implies $\mu_1<1$. + +With $T(n,w)$ denoting time divided by logical volume, the fixed low-type +profile $\{c_r\}$, including fallback classes, satisfies +\[ + T(n,w)\le\sum_rc_rT(r\lfloor n/m\rfloor,w)+Cn+Cw^{1-a_{\rm old}} + \quad(n\ge m),\qquad + T(n,w)\le Cw^{1-a_{\rm old}}\quad(na_{\rm bit}$ and $\beta<1-a_{\rm bit}$ make both +the atom-adapter and borrowing terms lower order. The remainder cost +$O(Vw^{1-a_{\rm old}})$ is also covered. Thus the ordinary radix-$q$ +interchange has cost $O(Ve^{1-a_{\rm bit}})$, without an externally supplied +superpolynomial stock of rows. + +For an original binary chunk range $[2^e]$, let +$t=\lceil e/\log_2q\rceil$ and embed it numerically into $[q^t]$. +Pad both exchanged ranges while retaining every spectator. The total +logical-volume increase is below $q^2$. Execute the completed ordinary +radix-$q$ interchange, then remove the padding. Its endpoint preserves the +rectangular genuine set $[2^e]\times[2^e]$; intermediate maps may mix genuine +and padded addresses, which does not affect this endpoint justification. +As $q$ is fixed and $t=\Theta(e)$, the binary interchange has the same +saving exponent. All schedules use a fixed number of finite-alphabet +tapes; low residue tables and port types are fixed independently of $w$. + +The conclusion retains the original local-producer, ordered-affine, +ordinary-leaf and multiplication-framework hypotheses. It adds no free +unit-scaling, dense chart transformation, or external row-stock primitive. diff --git a/research/five-stage-gen5-banks/raw_ledger.py b/research/five-stage-gen5-banks/raw_ledger.py new file mode 100644 index 0000000000..92c9103a0d --- /dev/null +++ b/research/five-stage-gen5-banks/raw_ledger.py @@ -0,0 +1,189 @@ +"""Independent fresh gen5 physical path census, including both reflections. +Derived from the source527 census (eumemic); constants rebound to the gen5 word. +Prepared with substantial OpenAI Codex assistance; Apache-2.0. +No saved receipt, search script, or historical profile is consumed. +""" +from collections import Counter,defaultdict +from types import SimpleNamespace + +def run(context): + m=SimpleNamespace(**context);W=m.W;C=m.C;chosen=m.pair_selection;fresh=m.fresh;pair_byalias=m.pair_byalias;pair_bydirty=m.pair_bydirty + compact=lambda h:{str(k):v for k,v in sorted(h.items())if v} + zero=W.register([]);compact=lambda h:{str(k):v for k,v in sorted(h.items())if v} + # Exact raw event sequence, with every actual extra source included. + events=[] + for j,op in enumerate(W.rest): + for s in m.at[j]:events.append(dict(kind='gauge',ref=s,frame=W.gauge[s]['frame'],targets=list(m.adj[s]))) + if op in m.bywrite:events.append(dict(kind='terminalwrite',ref=op,frame=W.opframe[op],targets=[m.bywrite[op]['pivot']])) + if op in m.afterwrite:events.append(dict(kind='terminalread',ref=op,frame=m.afterwrite[op]['root_frame'],targets=m.afterwrite[op]['targets'])) + for s in m.at[len(W.rest)]:events.append(dict(kind='gauge',ref=s,frame=W.gauge[s]['frame'],targets=list(m.adj[s]))) + endgauge=len(events) + for j,r in enumerate(W.g['roots']): + if r['kind']=='side'and j not in m.deletedroots:events.append(dict(kind='root',ref=j,frame=W.w['root_frame'][j],targets=r['targets'])) + for e in m.deliveries[j]:events.append(dict(kind='K',ref=e['passive'],frame=e['deliver_frame'],targets=e['receivers'])) + for t in range(W.v):events.append(dict(kind='endpoint',ref=t,frame=W.register(W.module.kernel([C.cov[t]],W.h)[0]),targets=[t])) + + def histogram(t,path): + h=Counter();rev=Counter();assert path[0]==zero and C.dimf[path[-1]]==W.h-1 + for f in path:assert C.nondeg(f)and all(W.module.dot(C.cov[t],b)==0 for b in C.B[f]),('cap/nondeg',t,f) + for a,b in zip(path,path[1:]): + assert C.sub(a,b),('forward inclusion',t,a,b) + d=C.dimf[b]-C.dimf[a];assert d>=0 + if d:h[d]+=1 + for a,b in zip(reversed(path),list(reversed(path))[1:]): + assert all(W.module.dot(x,y)==0 for x in C.A[a]for y in C.B[b]),('reflected inclusion',t,a,b) + d=len(C.A[b])-len(C.A[a]);assert d>=0 + if d:rev[d]+=1 + assert h==rev and sum(k*v for k,v in h.items())==W.h-1 + return h + + def paths(agg,readframes,echelon,rankgroups): + rankowner={t:k for k,g in enumerate(rankgroups)for t in g['targets']} + out=[[zero]for _ in range(W.v)];owner={t:k for k,g in enumerate(agg)for t in g['targets']};roles=defaultdict(list) + for k,g in enumerate(agg): + for s in g['roles']:roles[s].append(k) + active=set(range(len(agg)));rankactive=set(range(len(rankgroups)));echactive=set(range(len(echelon)));seen=[set()for _ in echelon];restores=[] + for j,e in enumerate(events): + if j>=endgauge:assert not active and not rankactive and not echactive + s=e['ref'];T=set(e['targets']) + if e['kind']=='gauge': + if s in pair_byalias:continue + if s in fresh: + for t,c in fresh[s]['transformed_response'].items(): + if c:out[int(t)].append(W.gauge[s]['frame']) + continue + skip=set() + for k,g in enumerate(echelon): + if k not in echactive:continue + if s not in g['roles']: + if T&set(g['targets']): + assert seen[k]==g['roles'];restores.append(dict(group=k,before_role=s,event=j)) + for t in g['targets']:out[t].append(g['frame']) + echactive.remove(k) + continue + seen[k].add(s);skip.update(g['targets']) + for t,a in g['response'].items(): + if a.get(s,0):out[t].append(W.gauge[s]['frame']) + for k in sorted({rankowner[t]for t in T if t in rankowner}): + if k in rankactive and s not in rankgroups[k]['roles']: + for t in rankgroups[k]['targets']:out[t].append(rankgroups[k]['frame']) + rankactive.remove(k) + for k in sorted({owner[t]for t in T if t in owner}): + if k in active and s not in agg[k]['roles']: + for t in agg[k]['targets']:out[t].append(agg[k]['frame']) + active.remove(k) + for k in roles[s]: + assert k in active;g=agg[k];out[g['pivot']].append(readframes[s,k]);skip.update(g['targets']) + for t in e['targets']: + if t in skip:continue + rk=rankowner.get(t) + if rk in rankactive and t in rankgroups[rk]['dependent']:continue + out[t].append(e['frame']) + else: + assert not(T&{t for k in active for t in agg[k]['targets']}) + assert not(T&{t for k in echactive for t in echelon[k]['targets']}) + for t in e['targets']:out[t].append(e['frame']) + H=Counter() + for t,p in enumerate(out):H.update(histogram(t,p)) + return out,H,restores + + newpaths,target,restores=paths(m.agg,m.read_frames,m.echelon,m.rankgroups) + # Recover raw literal adjoint independently, respecting all omitted copies. + adj=[{}for _ in range(W.R)] + for root,role in zip(W.g['roots'],W.w['rootroles']): + for t in root['targets']:adj[role][t]=adj[role].get(t,0)+1 + for i in reversed(W.phase1+W.rest): + if i in m.omitted:continue + a,b,_=W.ops[i] + for t,c in adj[a].items():adj[b][t]=adj[b].get(t,0)+c + assert adj==m.adj + oldused={r[k]for r in m.selection+m.gauge_selection if r['role']not in pair_byalias for k in('source','partner')} + assert len({r[k]for r in chosen for k in('source','partner')})==2*len(chosen)==0 and not oldused&{r[k]for r in chosen for k in('source','partner')} + for r in chosen: + b=r['aliased_role'];response=Counter(adj[b]) + for a,c in r['retained_dirty_coefficients'].items(): + for t,v in adj[a].items():response[t]+=c*v + assert not any(response.values()) + # Complete physical source and auxiliary census, including all alias handoffs. + recipient={d:b for b,d in W.pairs};roots=defaultdict(list) + for j,s in enumerate(W.w['rootroles']):roots[s].append(W.w['root_frame'][j]) + source_role={s:n for n,s in W.source.items()};plainborrow={r['role']:r for r in m.selection};gauges={r['role']:r for r in m.gauge_selection} + assert len(plainborrow)==0 and len(gauges)==0 and len(m.borrow)==0 + seq={s:[('op',i,W.opframe[i])for i in W.role_ops[s]]+[('root',j,f)for j,f in enumerate(roots[s])]for s in range(W.R)} + def physical_path(s): + a=list(seq[s]) + if s in pair_bydirty:a=[('paired-source-injection',s,pair_bydirty[s]['mix_frame'])]+a + if s in recipient: + b=recipient[s];a+=[('alias',b,W.gauge[b]['frame'])]+seq[b] + return a+[('full',s,W.w['full_frame'])] + count=0 + + def census_hist(start,events): + nonlocal count + count+=1;prev=start;dim=C.dimf[start]if start is not None else 0;out=Counter();chain=[]if start is None else[start] + for _,_,f in events: + assert C.nondeg(f)and(prev is None or C.sub(prev,f));d=C.dimf[f]-dim;assert d>=0 + if d:out[d]+=1 + prev=f;dim=C.dimf[f];chain.append(f) + assert dim==24;reflected=Counter() + for a,b in zip(reversed(chain),list(reversed(chain))[1:]): + assert all(W.module.dot(x,y)==0 for x in C.A[a]for y in C.B[b]);d=len(C.A[b])-len(C.A[a]);assert d>=0 + if d:reflected[d]+=1 + if start is None: + d=24-len(C.A[chain[0]]) + if d:reflected[d]+=1 + assert reflected==out + return out,chain + internal=Counter();sources=Counter();pathrows={};sourcepaths={};dirtypaths={} + for s in m.regs: + start=W.gauge[s]['frame']if s in W.gauge else W.w['source_frame'][source_role[s]]if s in source_role else None + H,chain=census_hist(start,physical_path(s)) + if s in source_role:H[1]+=1 + internal.update(H);pathrows['a'+str(s)]=compact(H) + if s in pair_bydirty:dirtypaths[str(s)]=[zero]+chain + for j,r in enumerate(W.g['roots']): + if r['kind']=='center':internal[C.dimf[W.w['root_frame'][j]]]+=1 + for entry in W.k['entries']: + carrier,n=entry['carrier'],entry['passive'];H,chain=census_hist(entry['carrier_chain'][0],[('carrier',j,f)for j,f in enumerate(entry['carrier_chain'][1:])]);sources.update(H) + if n not in m.by_source: + H,chain=census_hist(entry['passive_chain'][0],[('passive',j,f)for j,f in enumerate(entry['passive_chain'][1:])]);sources.update(H);pathrows['s'+str(n)]=compact(H);continue + r=m.by_source[n];s=r['role'];events=physical_path(s) + if s in plainborrow: + r=plainborrow[s];events=[x for x in events if not(x[0]=='op'and x[1]==r['omit_copy'])];at=next(i for i,x in enumerate(events)if x[0]=='op'and x[1]==r['early']);events.insert(at,('mix',n,entry['mix_frame'])) + else: + assert s in gauges;events=[('mix',n,entry['mix_frame']),('gauge',s,W.gauge[s]['frame'])]+events + H,chain=census_hist(W.w['source_frame'][n],events);sources.update(H);pathrows['s'+str(n)]=compact(H) + if s in m.extra_byrole:sourcepaths[str(s)]=chain + assert count==17646 and len(sourcepaths)==0 and len(dirtypaths)==0 and sum(k*v for k,v in sources.items())==1760*23 + gauges=Counter(z['dim']for s,z in W.gauge.items()if s not in W.donor and s not in m.borrow) + assert gauges=={20:2182,21:354,18:16,17:2} + copies=Counter(C.dimf[W.w['root_frame'][j]]for j,r in enumerate(W.g['roots'])if r['kind']=='center');assert copies=={22:24} + withoutcopies=internal.copy();withoutcopies.subtract(copies);assert min(withoutcopies.values())>=0 + helper=internal+sources+target;h=24;v=1760;R=len(m.regs);M=120;stock=4*v+R + assert R==15886 and len(m.borrow)==0 + assert sum(k*n for k,n in helper.items())==h*R+2*v*(h-1)+sum(k*n for k,n in copies.items())-sum(k*n for k,n in gauges.items()) + idle=Counter({r:2*v for r in (2*h-2,h-1,2*h+2,4)});five=Counter({r:5*n for r,n in helper.items()});five.update(idle) + for r,n in gauges.items():five[5*r]+=n + mass=sum(k*n for k,n in five.items());assert M*stock-mass==4400 + raw=dict(schema='gen5-fresh-raw-ledger/1',source_head=context.get('source_head','gen5'),h=h,v=v,physical_R=R,source_aliases=len(m.borrow),terminal_sinks=len(m.terminal),physical_donor_recipient_identifications=len(W.pairs),physical_internal_excluding_center_copies=compact(withoutcopies),paid_center_copy_histogram=compact(copies),physical_source_histogram=compact(sources),physical_target_histogram=compact(target),one_stage_helper_histogram_including_copies=compact(helper),auxiliary_entrance_rank_histogram=compact(gauges),auxiliary_entrance_count=sum(gauges.values()),helper_rank_mass=sum(k*n for k,n in helper.items()),five_stage_profile=dict(m=M,W=stock,histogram=compact(five),idle_histogram=compact(idle),calls=sum(five.values()),rank_mass=mass,deficit=M*stock-mass,maxchild=max(five)),source_aux_paths=count,target_paths=1760,extra_source_paths=len(sourcepaths),paired_dirty_paths=len(dirtypaths),all_reflected_ledgers=True,all_zero_response_relations=True,scope='Fresh complete gen5 raw physical source/internal/target and copied-center ledger. Both reflected chains checked; no saved execution receipt consumed.') + assert raw['five_stage_profile']['calls']==479144 and mass==2746720 + return raw + +def rebind_parity(raw,receipt): + """Bind the fresh required-use census to the retained producer source ledger.""" + from copy import deepcopy + def hist(x):return Counter({int(r):n for r,n in x.items()if n}) + assert receipt['status']=='PASS_FRESH_PARITY_FUSION_AND_INDEPENDENT_REQUIRED_FRAME_CENSUS' + assert receipt['both_reflected_ledgers']and receipt['unchanged_all_input_output_frames'] + source=hist(receipt['source_histogram']);target=hist(receipt['target_histogram']);internal=hist(receipt['internal_histogram_including_copies']);copies=hist(receipt['copied_center_histogram']) + assert source==hist(raw['physical_source_histogram']) + assert internal==hist(raw['physical_internal_excluding_center_copies'])+copies + delta=target.copy();delta.subtract(hist(raw['physical_target_histogram']));assert {r:n for r,n in delta.items()if n}=={} + producer=deepcopy(raw);helper=source+target+internal;five=Counter({r:5*n for r,n in helper.items()});five.update(hist(raw['five_stage_profile']['idle_histogram'])) + for a,n in hist(raw['auxiliary_entrance_rank_histogram']).items():five[5*a]+=n + assert sum(five.values())==479144 and sum(r*n for r,n in five.items())==2746720 + raw['schema']='gen5-parity-fused-fresh-raw-ledger/1';raw['producer_ledger']=producer + raw['physical_target_histogram']={str(r):n for r,n in sorted(target.items())};raw['one_stage_helper_histogram_including_copies']={str(r):n for r,n in sorted(helper.items())} + raw['five_stage_profile'].update(histogram={str(r):n for r,n in sorted(five.items())},calls=sum(five.values())) + raw['parity_transform']=receipt;raw['scope']='Fresh gen5 producer ledger plus independently rebuilt actual surviving-use ledger after F2 payload identity elision and same-stream nested MOVE fusion. Both reflected endpoint inclusions checked. No address arithmetic reduced modulo2.' + return raw diff --git a/research/five-stage-gen5-banks/requirements.txt b/research/five-stage-gen5-banks/requirements.txt new file mode 100644 index 0000000000..1ca5fd0616 --- /dev/null +++ b/research/five-stage-gen5-banks/requirements.txt @@ -0,0 +1 @@ +sympy==1.14.0 diff --git a/research/five-stage-gen5-banks/scalar/word.py b/research/five-stage-gen5-banks/scalar/word.py new file mode 100644 index 0000000000..95b9affd44 --- /dev/null +++ b/research/five-stage-gen5-banks/scalar/word.py @@ -0,0 +1,263 @@ +def replay(mode='F2',direction=1,bits=24,mutation=None): + major=mode=='bound';binary=mode=='F2';v=W.v + unit=(lambda i:1)if major else(lambda i:1<=0 + if d:target_hist[d]+=1 + target_frames[t]=f;target_paths[t].append(f) + X0=[unit(i)for i in range(v)];Y0=[unit(v+i)for i in range(v)];Z0={r:unit(idx[r])for r in regs};x=X0[:];y=Y0[:];z=Z0.copy();top=1;done=[] + def track(value): + nonlocal top + if major:top=max(top,value) + return value + def value(s): + s=W.phys[s];return x[borrow[s]]if s in borrow else z[s] + def assign(s,val): + s=W.phys[s] + if s in borrow:x[borrow[s]]=track(val) + else:z[s]=track(val) + source_paths={role:[W.w['source_frame'][r['source']],r['mix_frame']]for role,r in extra_byrole.items()} + pair_dirty_paths={r:[zero]for r in pair_bydirty} + def source_move(s,f): + role=W.phys[s] + if role in pair_dirty_paths: + assert C.sub(pair_dirty_paths[role][-1],f),('paired dirty chronology',role,pair_dirty_paths[role][-1],f) + pair_dirty_paths[role].append(f) + if role not in source_paths:return + assert C.sub(source_paths[role][-1],f),('orderedsource chronology',s,role,source_paths[role][-1],f) + source_paths[role].append(f) + responses=W.adjoint() if mutation=='old_adjoint' else adj + def aggregate_restore(k,trigger): + if not aggregation_active[k]:return + group=agg[k];pivot=group['pivot'];assert aggregation_read[k]==set(group['roles']),('early aggregation inverse',k,trigger,aggregation_read[k]) + for t in group['targets']:target_move(t,group['frame']) + if mutation!='omit_aggregation_inverse' or k!=39: + for t in group['targets']: + if t!=pivot:y[t]=track(add(y[t],1,y[pivot])) + aggregation_active[k]=False;aggregation_restores.append(dict(group=k,before_role=trigger,frame=group['frame'])) + def rank_restore(k,trigger): + group=rankgroups[k];assert k in rank_active and rank_seen[k]==group['roles'] + for t in group['targets']:target_move(t,group['frame']) + if mutation!='omit_rank_inverse'or k!=0: + for t,cs in group['dependent'].items(): + for p,c in cs.items():y[t]=track(add(y[t],c,y[p])) + rank_active.remove(k);rank_restores.append(dict(group=k,before_role=trigger,frame=group['frame'])) + def echelon_restore(k,trigger): + group=echelon[k];assert echelon_seen[k]==group['roles'] + for t in group['targets']:target_move(t,group['frame']) + if mutation!='omit_echelon_inverse'or k!=0: + for t,p,c in reversed(group['moves']):y[t]=track(add(y[t],-c,y[p])) + echelon_active.remove(k);echelon_restores.append(dict(group=k,before_role=trigger,frame=group['frame'])) + def read(s): + nonlocal aggregation_pivot_reads,rank_skipped,echelon_reads + if s in pair_byalias: + if mutation=='subtract_paired_alias'and s==next(iter(pair_byalias)): + for t,c in adj[s].items():y[t]=track(add(y[t],-direction*c,value(s))) + return + if s in fresh: + if mutation=='omit_transformed_source_read'and s==next(iter(fresh)):return + for t,c in fresh[s]['transformed_response'].items(): + t=int(t);source_move(s,W.gauge[s]['frame']);target_move(t,W.gauge[s]['frame']);y[t]=track(add(y[t],-direction*c,value(s))) + return + echelon_skip=set() + if s in W.gauge: + for k,group in enumerate(echelon): + if k not in echelon_active:continue + if s not in group['roles']: + if set(responses[s])&set(group['targets']):echelon_restore(k,s) + continue + echelon_seen[k].add(s);echelon_skip.update(group['targets']) + for t,a in group['response'].items(): + c=a.get(s,0) + if not c:continue + if mutation=='flip_echelon_sign'and k==0 and c<0:c=-c + source_move(s,W.gauge[s]['frame']);target_move(t,W.gauge[s]['frame']);y[t]=track(add(y[t],-direction*c,value(s)));echelon_reads+=1 + if s in W.gauge: + for k in sorted({rankowner[t]for t in responses[s]if t in rankowner}): + if k not in rank_active:continue + if s not in rankgroups[k]['roles']:rank_restore(k,s) + else:rank_seen[k].add(s) + if mutation=='omit_gauge_compensation'and s==new_gauge_selection[-1]['role']:return + if mutation=='omit_extra_compensation'and s==extra_selection[0]['role']:return + grouped=role_groups.get(s,[]) + for k in sorted({target_group[t]for t in responses[s]if t in target_group}) if s in W.gauge else []: + if k not in grouped:aggregate_restore(k,s) + skipped=set() + for k in grouped: + group=agg[k];pivot=group['pivot'];assert aggregation_active[k] + assert set(group['targets'])<=set(responses[s])and len({responses[s][t]for t in group['targets']})==1 + c=responses[s][pivot];source_move(s,read_frames[s,k]);target_move(pivot,read_frames[s,k]);y[pivot]=track(add(y[pivot],-direction*c,value(s))) + if mutation=='repeat_aggregation_read'and k==39: + t=next(t for t in group['targets']if t!=pivot);target_move(t,read_frames[s,k]);y[t]=track(add(y[t],-direction*c,value(s))) + skipped.update(group['targets']);aggregation_read[k].add(s);aggregation_pivot_reads+=1 + for t,c in responses[s].items(): + if t in skipped or t in echelon_skip:continue + rk=rankowner.get(t) + if s in W.gauge and rk in rank_active and t in rankgroups[rk]['dependent']: + rank_skipped+=1 + if mutation!='repeat_rank_read'or rk!=0:continue + if s in W.gauge:source_move(s,W.gauge[s]['frame']);target_move(t,W.gauge[s]['frame']) + else:assert target_frames[t]is None,'initial correction leaves target atD0' + y[t]=track(add(y[t],-direction*c,value(s))) + def gate(i,sign): + a,b,_=W.ops[i] + if sign==1: + source_move(a,W.opframe[i]);source_move(b,W.opframe[i]) + assign(a,add(value(a),sign,value(b))) + for s in range(W.R): + if s not in W.gauge and s not in borrow and s not in removed:read(s) + for n,s in W.source.items():assign(s,add(value(s),1,x[n])) + for r in gauge_selection: + if mutation=='omit_transformed_source_mix'and r is next(iter(fresh.values())):continue + if mutation=='omit_extra_mix'and r is extra_selection[0]:continue + if mutation!='omit_gauge_mix' or r is not new_gauge_selection[-1]:x[r['partner']]=track(add(x[r['partner']],1,x[r['source']])) + def forward(i): + if i not in omitted:gate(i,1);done.append(i) + for k in schedule['center_prefix_events']: + event=schedule['events'][k];i=event['op'] + if event['kind']=='early_mix': + r=early[i];a,b=r['partner'],r['source'] + if mutation!='omit_early_mix' or r is not selection[0]:x[a]=track(add(x[a],1,x[b])) + else:forward(i) + for r,s in zip(W.g['roots'],W.w['rootroles']): + if r['kind']=='center': + for t in r['targets']: + assert all(f is None for f in target_frames),'copied centers scatter before any nonzero target movement' + center_reads.append((s,t));y[t]=track(add(y[t],direction,value(s))) + for k,group in enumerate(echelon): + assert all(target_frames[t]is None for t in group['targets']) + if mutation!='omit_echelon_setup'or k!=0: + for t,p,c in group['moves']:y[t]=track(add(y[t],c,y[p])) + for k,group in enumerate(rankgroups): + assert all(target_frames[t]is None for t in group['targets']) + if mutation!='omit_rank_setup'or k!=0: + for t,cs in group['dependent'].items(): + for p,c in cs.items():y[t]=track(add(y[t],-c,y[p])) + for k,group in enumerate(agg): + assert all(target_frames[t]is None for t in group['targets']), 'aggregation setup after all D0 center scatters' + if mutation!='omit_aggregation_setup'or k!=39: + for t in group['targets']: + if t!=group['pivot']:y[t]=track(add(y[t],-1,y[group['pivot']])) + for e in terminal: + assert all(target_frames[t]is None for t in e['targets']),'terminal setup afterD0center scatter' + for t in e['targets']: + if t!=e['pivot']:y[t]=track(add(y[t],-1,y[e['pivot']])) + # Original dirty compensation happened at D0 before these source injections. + for r in pair_selection: + b,f=r['aliased_role'],r['mix_frame'] + for a,c in r['retained_dirty_coefficients'].items(): + source_move(a,f);source_move(b,f) + if mutation=='omit_sparse_anchor'and r is pair_selection[14]and a==next(iter(r['retained_dirty_coefficients'])):continue + if mutation=='wrong_sparse_sign'and r is pair_selection[14]and a==next(iter(r['retained_dirty_coefficients'])):c=-c + if mutation!='omit_pair_initialization'or r is not pair_selection[0]:assign(a,add(value(a),c,value(b))) + for j,i in enumerate(W.rest): + for s in at[j]: + if mutation!='late_phase1_gauge' or s not in new_phase_roles:read(s) + if mutation=='late_phase1_gauge'and j==168: + for s in sorted(new_phase_roles):read(s) + if i in bywrite: + e=bywrite[i];a,b,n=W.ops[i];source_move(b,W.opframe[i]);target_move(e['pivot'],W.opframe[i]);y[e['pivot']]=track(add(y[e['pivot']],direction,value(b))) + else:forward(i) + if i in afterwrite: + e=afterwrite[i] + for t in e['targets']: + target_move(t,e['root_frame']) + if t!=e['pivot']:y[t]=track(add(y[t],1,y[e['pivot']])) + for s in at[len(W.rest)]:read(s) + assert not any(aggregation_active),'all quotient inverses precede original side/K reads' + assert not rank_active,'rank quotient inverses precede side/K reads' + assert not echelon_active,'echelon inverses precede side/K reads' + for j,(r,s)in enumerate(zip(W.g['roots'],W.w['rootroles'])): + if r['kind']=='side' and j not in deletedroots: + for k in sorted({target_group[t]for t in r['targets']if t in target_group}):aggregate_restore(k,('root',j)) + source_move(s,W.w['root_frame'][j]) + for t in r['targets']:target_move(t,W.w['root_frame'][j]);y[t]=track(add(y[t],direction,value(s))) + for e in deliveries[j]: + a,b=e['carrier'],e['passive'] + if b not in by_source:x[a]=track(add(x[a],1,x[b])) + for k in sorted({target_group[t]for t in e['receivers']if t in target_group}):aggregate_restore(k,('K',j)) + for t in e['receivers']:target_move(t,e['deliver_frame']);y[t]=track(add(y[t],direction,x[a])) + assert not any(aggregation_active),'all target inverses completed beforecleanup' + for e in W.k['entries']: + if e['passive']not in by_source:x[e['carrier']]=track(add(x[e['carrier']],-1,x[e['passive']])) + if mutation=='undo_before_restore': + for e in W.k['entries']: + if e['passive']in by_source:x[e['carrier']]=track(add(x[e['carrier']],-1,x[e['passive']])) + for role in source_paths:source_move(role,W.w['full_frame']) + for role in pair_dirty_paths:source_move(role,W.w['full_frame']) + for i in reversed(done):gate(i,-1) + for r in reversed(pair_selection): + b=r['aliased_role'] + for a,c in reversed(list(r['retained_dirty_coefficients'].items())): + c=-c + if mutation=='wrong_pair_restore_sign'and r is pair_selection[0]:c=-c + if mutation!='omit_pair_restoration'or r is not pair_selection[0]:assign(a,add(value(a),c,value(b))) + if mutation!='undo_before_restore': + for e in W.k['entries']: + if e['passive']in by_source:x[e['carrier']]=track(add(x[e['carrier']],-1,x[e['passive']])) + for n,s in W.source.items():assign(s,add(value(s),-1,x[n])) + if binary:want=[Y0[t]^X0[t]for t in range(v)] + else: + want=Y0[:];cache={} + for root in W.g['roots']: + n=root['node'] + if n not in cache: + mask=C.sup[n];val=0 + while mask:low=mask&-mask;mask-=low;val=add(val,1,X0[low.bit_length()-1]) + cache[n]=val + for t in root['targets']:want[t]=add(want[t],direction,cache[n]) + for e in W.k['entries']: + val=add(X0[e['carrier']],1,X0[e['passive']]) + for t in e['receivers']:want[t]=add(want[t],direction,val) + # Finish every local target at its codimension-one cap, then reverse the exact + # annihilator stream. All copied-center scatters lie before these movements, + # hence atD0 forward and atD1 after the complementary movements reverse. + reflected=Counter() + for t,chain in enumerate(target_paths): + assert chain + d=W.h-1-C.dimf[chain[-1]];assert d>=0 + if d:target_hist[d]+=1 + previous=[C.cov[t]];dimension=1 + for f in reversed(chain): + assert all(W.module.dot(a,b)==0 for a in previous for b in C.B[f]) + basis=C.A[f];step=len(basis)-dimension;assert step>=0 + if step:reflected[step]+=1 + previous=basis;dimension=len(basis) + if W.h>dimension:reflected[W.h-dimension]+=1 + assert reflected==target_hist + assert len(center_reads)==sum(len(r['targets'])for r in W.g['roots']if r['kind']=='center') + assert sum(k*n for k,n in target_hist.items())==W.v*(W.h-1) + source_histogram=Counter();source_reflected=Counter() + for role,path in source_paths.items(): + assert C.dimf[path[0]]==1 and C.dimf[path[-1]]==W.h + for a,b in zip(path,path[1:]): + assert C.sub(a,b)and C.nondeg(a)and C.nondeg(b) + step=C.dimf[b]-C.dimf[a] + if step:source_histogram[step]+=1 + for a,b in zip(reversed(path),list(reversed(path))[1:]): + assert all(W.module.dot(x,y)==0 for x in C.A[a]for y in C.B[b]);step=len(C.A[b])-len(C.A[a]);assert step>=0 + if step:source_reflected[step]+=1 + assert source_histogram==source_reflected and sum(k*n for k,n in source_histogram.items())==len(source_paths)*(W.h-1) + paired_hist=Counter();paired_reflected=Counter() + for role,path in pair_dirty_paths.items(): + assert C.dimf[path[0]]==0 and C.dimf[path[-1]]==W.h + for a,b in zip(path,path[1:]): + assert C.sub(a,b)and C.nondeg(a)and C.nondeg(b) + d=C.dimf[b]-C.dimf[a] + if d:paired_hist[d]+=1 + for a,b in zip(reversed(path),list(reversed(path))[1:]): + assert all(W.module.dot(x,y)==0 for x in C.A[a]for y in C.B[b]);d=len(C.A[b])-len(C.A[a]) + if d:paired_reflected[d]+=1 + assert paired_hist==paired_reflected and sum(k*n for k,n in paired_hist.items())==len(pair_dirty_paths)*W.h + if major:return max(top,max(a+b for a,b in zip(y,want)),max(z[r]+Z0[r]for r in regs),max(a+b for a,b in zip(x,X0))) + assert y==want,('wrong targets',mode,[t for t in range(v)if y[t]!=want[t]][:10]) + assert x==X0,('source restoration',mode,[s for s in range(v)if x[s]!=X0[s]][:10]) + assert z==Z0,('dirty restoration',mode) + return dict(mode=mode,direction=direction,formal_columns=2*v+len(regs),sources=v,targets=v,dirty=len(regs),all_targets=True,all_source_and_dirty_restored=True,copied_center_target_reads=len(center_reads),all_forward_centers_at_D0=True,all_reflected_centers_at_D1=True,actual_target_histogram={str(k):n for k,n in sorted(target_hist.items())},actual_reflected_target_histogram={str(k):n for k,n in sorted(reflected.items())},aggregation_groups=len(agg),aggregation_pivot_reads=aggregation_pivot_reads,aggregation_restores=aggregation_restores,actual_extra_source_paths=source_paths,rank_groups=len(rankgroups),rank_targets=len(rankowner),rank_restores=rank_restores,rank_removed_reads=rank_skipped,actual_extra_source_histogram=dict(source_histogram),actual_extra_reflected_source_histogram=dict(source_reflected),echelon_restores=echelon_restores,echelon_reads=echelon_reads,paired_dirty_paths=pair_dirty_paths,paired_dirty_histogram=dict(paired_hist),paired_dirty_reflected_histogram=dict(paired_reflected)) diff --git a/research/five-stage-gen5-banks/scalar_check.py b/research/five-stage-gen5-banks/scalar_check.py new file mode 100644 index 0000000000..8d3c66d4f9 --- /dev/null +++ b/research/five-stage-gen5-banks/scalar_check.py @@ -0,0 +1,127 @@ +"""Fresh F2 source proof, independent literal projection/inverse and controls. +No saved execution receipt is accepted. Uses the actual clean source context +and freshly emitted local physical records. Assisted with ChatGPT (source527). +Rebound to the gen5 word: 19406 formal columns; the controls corrupt the actual +gen5 context (responses, read chronology, alias reads, gates, centres, partner +deliveries, injections and signs) instead of absent source527 selections. +Gen5 rebinding and controls by DreamingOfClouds with Anthropic Claude assistance. +""" +from collections import Counter,defaultdict +from copy import copy +import hashlib,json,time + +EXPECTED_EVENT='d3427c8539c342fc6fa1661ce9b23fb12a3270b3c710b5000aea66c4b3222b9e' +N=19406;V=1760;EVENTS=574832;COUNTS={1:573072,3:1760} + + +def events(records,reverse=False): + center=None + for k in (range(len(records)-6,-1,-6) if reverse else range(0,len(records),6)): + op,a,b,c,f,z=records[k:k+6] + if op==1: + if b==N: + assert center is not None + b=center + assert 0<=a2*bound + progress('Checking the signed integer source decoder and dirty restoration') + integer=[] + for direction in(1,-1):integer.append(ns['replay']('Z',direction,bits));gc.collect() + controls={} + for name,mode,changes in mutated_namespaces(context): + bad=dict(context);bad.update(changes);exec(compile(source,'retained source527 exact scalar word','exec'),bad) + try:bad['replay'](mode,bits=bits) + except AssertionError as error:controls[name]=dict(rejected=True,reason=str(error)[:200]) + else:raise AssertionError('invalid gen5 context mutation accepted: '+name) + assert len(controls)==11 + return dict(status='PASS_FRESH_GEN5_PRODUCER_SIGNED_DECODER_AND_PARITY_FUSED_F2_INVERSE_AND_CONTROLS',filtered_control=filtered_control,F2=exact,integer=integer,majorant=dict(residual_bound=bound,packing_bits=bits),forward=forward,inverse=inverse,controls=controls,source_sha256=hashlib.sha256(source.encode()).hexdigest(),seconds=time.monotonic()-started,scope='The retained source527 scalar program, run on the gen5 context, proves the signed defining-integer decoder in both directions and rejects11 actual-context corruptions. The emitted parity-filtered word is independently checked on all19406formal F2columns and literalreverse, with its own cancellation-free signed-lift prefix bounds. Its integer endpoint is not asserted equal to the producer decoder; F2payload identity supplies the bit contract. Odd-prime address arithmetic is unchanged.') diff --git a/research/five-stage-gen5-banks/verify.py b/research/five-stage-gen5-banks/verify.py new file mode 100644 index 0000000000..35c5b68e2f --- /dev/null +++ b/research/five-stage-gen5-banks/verify.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +"""Immutable gen5 five-stage banks: regenerate every mandatory finite stage. +Prepared with substantial OpenAI Codex assistance; Apache-2.0. +""" +import sys +if not __debug__:raise SystemExit('Assertions required; refusing-O') +sys.dont_write_bytecode=True +from pathlib import Path +from datetime import datetime,timezone +from fractions import Fraction +import argparse,hashlib,importlib.util,json,time,traceback +ROOT=Path(__file__).resolve().parent +REQUIRED={'virtual','raw','bit','scalar','primes','banks','complex','math','finite'} + +def progress(message):print(datetime.now(timezone.utc).strftime('%H:%M:%S UTC')+' '+message,flush=True) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def serial(x): + if isinstance(x,Fraction):return str(x) + if isinstance(x,dict):return {str(k):serial(v)for k,v in x.items()} + if isinstance(x,(list,tuple)):return list(map(serial,x)) + return x + +def load(name): + s=importlib.util.spec_from_file_location('source527_'+name,ROOT/(name+'.py'));m=importlib.util.module_from_spec(s);sys.modules[s.name]=m;s.loader.exec_module(m);return m + +def integrity(): + p=ROOT/'MANIFEST.json';m=json.loads(p.read_text());actual={} + for q in ROOT.rglob('*'): + assert not q.is_symlink(),'Symlink in package' + if q.is_file()and q.name!='MANIFEST.json':actual[q.relative_to(ROOT).as_posix()]=sha(q) + # Nested source manifests are also ordinary pinned inputs. + for q in ROOT.rglob('MANIFEST.json'): + if q!=p:actual[q.relative_to(ROOT).as_posix()]=sha(q) + assert actual==m['files'],'Missing, changed or unpinned package/source file' + return sha(p),len(actual) + +def validate_required(results): + assert set(results)==REQUIRED,'Missing mandatory proof stage' + assert all(isinstance(results[k],dict)and results[k]for k in REQUIRED) + +def controls(): + out=[];good={k:{'present':True}for k in REQUIRED} + for k in sorted(REQUIRED): + bad=good.copy();bad.pop(k) + try:validate_required(bad) + except AssertionError:out.append('omitted '+k+' stage') + else:raise AssertionError('Missingstageaccepted') + return out + +def main(): + ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--output',type=Path,required=True);args=ap.parse_args() + import sympy + assert sys.version_info>=(3,11)and sympy.__version__=='1.14.0' + digest,count=integrity();output=args.output.resolve();assert not output.is_relative_to(ROOT)and not output.exists(),'Output must be new and outside package';output.mkdir(parents=True) + results={};timings={};start=time.monotonic() + def save(name,value):(output/name).write_text(json.dumps(serial(value),sort_keys=True,indent=2)+'\n') + def stage(name,call): + t=time.monotonic();value=call();results[name]=value;timings[name]=time.monotonic()-t;save(name+'.json',value);progress(name+' PASS '+format(timings[name],'.1f')+'s');return value + try: + progress('Admitting the pinned gen5 physical bit word') + stage('virtual',lambda:load('virtual_check').run(output,progress)) + context=load('prepare').prepare() + raw=stage('raw',lambda:load('raw_ledger').run(context)) + portable=load('portable_bit');bit=portable.run(prepared_context=context,raw=raw,output_dir=output,run_geometry=True,package_root=ROOT);raw=bit['raw'];results['raw']=raw;save('raw.json',raw);results['bit']=portable.summary(bit);timings['bit']=bit['seconds'];save('bit.json',results['bit']);progress('bit physical/global/geometry PASS') + scalar=stage('scalar',lambda:load('scalar_check').run(context,bit['records'],progress)) + primes=stage('primes',lambda:load('prime_check').run(context,bit['physical'],progress)) + bankresult=stage('banks',lambda:load('bank_check').run(context,bit['global_result'],bit['lower'])) + banks=bankresult['banks'];banked=bankresult['banked_result'] + complex_result=stage('complex',lambda:load('portable_complex').run(package_root=ROOT,progress=progress)) + assert complex_result['precision_guard']['retained_row_coefficient']==20161 + math=stage('math',lambda:load('math_check').run(raw,complex_result['five_stage_histogram'],banks,bit['global_result'])) + finite=stage('finite',lambda:load('finite_check').run(raw,bit['physical'],scalar,primes,math,banks,banked,bit['global_result'])) + assert math['mathematics']['finite_bridge']['rows']['coefficient']==complex_result['precision_guard']['retained_row_coefficient']==finite['row_reserve']['external_complex_coefficient'] + validate_required(results);assert len(scalar['controls'])==11 and len(primes['controls'])==6 + assert math['mathematics']['kappa']=='148557132624107/200000000000000000' + after,_=integrity();assert after==digest,'Package changed during replay' + certificate=dict(schema='gen5-parity-fused-five-stage-banks/1',**math['mathematics'],scope='Conditionalfiniteconstruction; inheritedallsizecompiler,weightedselector,commonancestorchart,restoredrow,routing,prime,recovery,complexsymbolicandanalyticinterfacesremainassumptions.') + save('certificate.json',certificate) + report=dict(status='PASS_IMMUTABLE_PARITY_FUSED_GEN5_FIVE_STAGE_BANKED_CONSTRUCTION',manifest_sha256=digest,files=count,kappa=math['mathematics']['kappa'],kappa_scientific=math['mathematics']['kappa_scientific'],fresh_stages=sorted(REQUIRED),inputs_unchanged=True,timings=timings,seconds=time.monotonic()-start,negative_controls=controls()) + save('verification.json',report);print(json.dumps(report),flush=True) + except BaseException as exc: + save('failure.json',dict(status='FAIL',error=str(exc),completed_stages=sorted(results),timings=timings,traceback=traceback.format_exc()));raise +if __name__=='__main__':main() diff --git a/research/five-stage-gen5-banks/virtual_check.py b/research/five-stage-gen5-banks/virtual_check.py new file mode 100644 index 0000000000..f30e6392d0 --- /dev/null +++ b/research/five-stage-gen5-banks/virtual_check.py @@ -0,0 +1,63 @@ +"""Retained admissions of the gen5 bit word: PR168-v4 package checker and PR200 physical-word proof. + +1. eumemic's unmodified PR168-v4 check_paired_cube_bit.py on the virtual (node-frame, unaliased) word: + exact frames, mod-2 decoder with stars and side parts, geometry (source lines, root caps, operand + nesting, star spans), role and target chains, partner chronology, G-nondegeneracy, a literal F2 + dirty-scratch replay and the ledger recount, with its five mutation controls. +2. Chafik Boukhalfa's unmodified PR200 physical-word classes, run as PR200's bit/prove.py runs them: + exact changed operation frames and handoffs, the physical row (phase one = centre closure, actual + addition operands, gauge supports, partner chronology, nested physical role and target chains, + telescoping deficit), the physical word on every formal column over F2 and the defining integer + decoder, and its adverse controls (omitted compensation, missing partner delivery, stale recipient + read, zero operation frame). +Gen4 integration by DreamingOfClouds with Anthropic Claude assistance; Apache-2.0. +""" +from pathlib import Path +import gzip,hashlib,importlib.util,json,shutil,time +HERE=Path(__file__).resolve().parent + +def load(name,path): + spec=importlib.util.spec_from_file_location(name,path);mod=importlib.util.module_from_spec(spec);spec.loader.exec_module(mod);return mod + +def run(output_dir,progress=lambda text:None): + begun=time.monotonic();src=HERE/'gen5bit/selected/bit';d=Path(output_dir)/'virtual-bit';d.mkdir(parents=True) + for name in ('graph','kchron','profile'):shutil.copyfile(src/(name+'_p12.json'),d/(name+'_p12.json')) + for name in ('word','frames'):(d/(name+'_p12.json')).write_bytes(gzip.decompress((src/(name+'_p12.json.gz')).read_bytes())) + p=HERE/'gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py' + mod=load('gen5_pr168_v4_checker',p) + progress('Running the PR168-v4 package checker on the gen5 virtual word') + result=mod.Checker(d,12).run() + assert result==dict(frames=25637,roles=17292,W=20812,m=72,deficit=1936,children=289078) + controls={} + for m in ('broken_mix','outside_cap','below_level','dropped_star','non_nested'): + try:mod.Checker(d,12,mutate=m).run() + except mod.Fail as error:controls[m]=str(error) + else:raise AssertionError('PR168 mutation control accepted: '+m) + assert len(controls)==5 + progress('Running the PR200 physical-word proof on the gen5 physical word') + word=load('gen5_pr200_physical_word_admission',HERE/'gen5bit/bit/word.py').Candidate() + word.exact_frames();row=word.row() + reference=json.loads((src/'profile_p12.json').read_text()) + assert row['reused_registers']==len(word.pairs)==1406 and row['virtual_R']==reference['R']==17292 + assert row['R']==15886 and row['W_per_vertex']==19406 and row['deficit_per_vertex']==reference['deficit_per_vertex']==1936 and row['loss']==reference['loss']==528 + assert row['changed_operation_frames']==1710 and row['selected_roles']==2554 and row['selected_rank_histogram']=={20:2182,21:354,18:16,17:2} + formal=[word.formal(r) for r in (2,0)] + assert formal[0]['identity'] and all(f['defining_decoder'] and f['all_dirty_and_source_columns_restored'] and f['formal_variables']==19406 for f in formal) + physical_controls=[] + for tamper in ('omit_compensation','missing_partner','stale'): + try:word.formal(2,tamper) + except ValueError:physical_controls.append(tamper) + else:raise AssertionError('PR200 adverse word control accepted: '+tamper) + i=word.changed_frames[0];old=word.opframe[i];word.opframe[i]=word.register([]) + try:word.exact_frames() + except ValueError:physical_controls.append('zero_operation_frame') + else:raise AssertionError('zero operation frame accepted') + word.opframe[i]=old + assert len(physical_controls)==4 + row={k:(dict(v) if isinstance(v,dict) else v) for k,v in row.items()} + return dict(status='PASS_PR168_V4_VIRTUAL_AND_PR200_PHYSICAL_ADMISSION_OF_GEN5',virtual=result,virtual_controls_rejected=controls, + physical_row=row,physical_formal=formal,physical_controls_rejected=physical_controls, + checker_sha256=hashlib.sha256(p.read_bytes()).hexdigest(), + pr200_classes_sha256={n:hashlib.sha256((HERE/'gen5bit/bit'/n).read_bytes()).hexdigest() for n in ('word.py','base_word.py')}, + seconds=time.monotonic()-begun, + scope='The pinned word is admitted by both retained checkers exactly as PR200 admitted its own word (its terminal-sink and prime steps have no gen5 counterpart here; primes are rechecked by prime_check).')