From b40c1a3d8f40ee3764b9f13fe850f663f2d8c834 Mon Sep 17 00:00:00 2001 From: DreamingOfClouds Date: Sat, 10 Oct 2026 01:41:21 -0500 Subject: [PATCH] Conditional kappa = 148557132624107/(2*10^17): gen5 modules on the gen4 paired-cube bit word, five-stage completed banks New package research/five-stage-gen5-banks: #276's gen4 package with the bit word's pair module (debt 184 -> 164) and all-but-one module (12 -> 11) replaced by modules annealed on the exact one-instance compile cost. Virtual roles 17,292 (gen4 17,904), physical dirty registers 15,886. Full immutable verify.py: kappa = 7.42785663120535e-4, bit binds. Plus its own path-filtered CI workflow. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/five-stage-gen5-banks.yml | 39 + research/five-stage-gen5-banks/BANK-PROOF.md | 39 + research/five-stage-gen5-banks/LICENSE | 201 ++++ research/five-stage-gen5-banks/MANIFEST.json | 115 ++ research/five-stage-gen5-banks/NOTICE.md | 56 + .../five-stage-gen5-banks/PR-STATEMENT.md | 60 ++ research/five-stage-gen5-banks/PROOF.md | 153 +++ research/five-stage-gen5-banks/README.md | 60 ++ .../UPSTREAM-PR234-NOTICE.md | 13 + .../UPSTREAM-PR234-PROOF.md | 29 + research/five-stage-gen5-banks/bank_check.py | 254 +++++ .../five-stage-gen5-banks/bank_template.py | 183 ++++ .../five-stage-gen5-banks/base_two_moment.py | 63 ++ .../code/complex_basis.py | 35 + .../code/complex_labels.py | 176 +++ .../code/complex_scalars.py | 216 ++++ .../code/complex_splice.py | 277 +++++ .../five-stage-gen5-banks/code/geometry527.py | 106 ++ .../code/global_lowering.py | 315 ++++++ .../five-stage-gen5-banks/code/physical527.py | 102 ++ .../five-stage-gen5-banks/finite_check.py | 124 +++ .../gen5bit/NOTICE-PR200 | 60 ++ .../five-stage-gen5-banks/gen5bit/README.md | 72 ++ .../gen5bit/bit/base_word.py | 202 ++++ .../five-stage-gen5-banks/gen5bit/bit/word.py | 104 ++ .../gen5bit/producer/data/arcs_p12.json | 1 + .../producer/data/local_design_p12.json | 1 + .../producer/data/pair_module_p12.json | 1 + .../gen5bit/producer/data/qmod_p12.json | 1 + .../gen5bit/producer/descent.py | 259 +++++ .../gen5bit/producer/make_physical.py | 147 +++ .../gen5bit/producer/paired_cube_bit_word.py | 998 ++++++++++++++++++ .../gen5bit/producer/regenerate.py | 38 + .../gen5bit/references/pr168-v4/SOURCE.json | 20 + .../paired-cube-bit/check_paired_cube_bit.py | 465 ++++++++ .../gen5bit/selected/bit/frames_p12.json.gz | Bin 0 -> 307639 bytes .../gen5bit/selected/bit/graph_p12.json | 1 + .../gen5bit/selected/bit/kchron_p12.json | 1 + .../gen5bit/selected/bit/profile_p12.json | 1 + .../gen5bit/selected/bit/word_p12.json.gz | Bin 0 -> 720818 bytes .../inputs/complex/LICENSE | 201 ++++ .../inputs/complex/NOTICE | 290 +++++ .../inputs/complex/gcert1-p11-pr193.json.gz | Bin 0 -> 441023 bytes .../inputs/complex/retained/FINITE_BRIDGE.txt | 141 +++ .../retained/compact-control-layout.tex | 118 +++ .../retained/compact-control-movement.tex | 167 +++ .../retained/copied-centers-assembly.tex | 118 +++ .../complex/retained/copied-centers-lemma.tex | 103 ++ .../retained/endpoint-gauge-complex.tex | 225 ++++ .../retained/general-clifford-frames.tex | 102 ++ .../retained/stopped-product-complex.tex | 137 +++ .../inputs/complex/source-pins.json | 215 ++++ .../complex/sources/Work__Bridge__Cert.lean | 241 +++++ .../complex/sources/Work__Bridge__Net.lean | 345 ++++++ .../complex/sources/Work__Carrier__Live.lean | 232 ++++ .../sources/Work__Carrier__Phases.lean | 192 ++++ .../complex/sources/Work__Fourier__Main.lean | 176 +++ .../sources/Work__GCert__Chain__Geom.lean | 210 ++++ .../sources/Work__GCert__Chain__InvThm.lean | 164 +++ .../sources/Work__GCert__Chain__NetCert.lean | 157 +++ .../sources/Work__GCert__Chain__NetDef.lean | 157 +++ .../sources/Work__GCert__Chain__NetStage.lean | 186 ++++ .../sources/Work__GCert__Chain__Phased.lean | 199 ++++ .../sources/Work__GCert__Chain__WinB.lean | 132 +++ .../Work__GCert__Data__B2Gp193Main.lean | 33 + .../sources/Work__GCert__Data__Glue.lean | 97 ++ .../Work__GCert__Data__InstB2Gp193.lean | 55 + .../sources/Work__GCert__Data__P193Cert.lean | 81 ++ .../sources/Work__GCert__Data__P193Price.lean | 54 + .../Work__GCert__Data__P193ScalOK.lean | 17 + .../Work__GCert__Data__RateB2Gp193x.lean | 327 ++++++ .../sources/Work__GCert__Data__Raw.lean | 93 ++ .../Work__GCert__Data__SolutionB2Gp193x.lean | 38 + .../sources/Work__GFrame__Engine__Adapt.lean | 183 ++++ .../Work__GFrame__Engine__Letters.lean | 199 ++++ .../sources/Work__GFrame__Engine__Level.lean | 163 +++ .../complex/sources/tools__gx__ORIGIN.md | 64 ++ .../complex/sources/tools__gx__gxbind.py | 438 ++++++++ .../complex/sources/tools__gx__gxconv.py | 131 +++ .../complex/sources/tools__gx__gxcore.py | 375 +++++++ research/five-stage-gen5-banks/math_check.py | 57 + research/five-stage-gen5-banks/moment.py | 114 ++ .../PR210-coordinated-crossover-NOTICE | 431 ++++++++ .../notices/PR230-NOTICE | 441 ++++++++ .../notices/PR230-PROVENANCE.json | 27 + .../five-stage-gen5-banks/notices/README.md | 15 + .../notices/base-bit-PR200-PR202-NOTICE | 399 +++++++ .../notices/source527-loader-NOTICE.md | 11 + research/five-stage-gen5-banks/outer.py | 58 + .../five-stage-gen5-banks/parity_transform.py | 143 +++ .../five-stage-gen5-banks/portable_bit.py | 55 + .../five-stage-gen5-banks/portable_complex.py | 151 +++ research/five-stage-gen5-banks/prepare.py | 63 ++ research/five-stage-gen5-banks/prime_check.py | 67 ++ .../five-stage-gen5-banks/prime_witnesses.py | 99 ++ .../proof/FINITE_BIT_ACCOUNTING.md | 126 +++ .../proof/INTEGRATED_PROOF.md | 87 ++ .../proof/PARITY-CONTRACT.md | 45 + .../five-stage-gen5-banks/proof/README.md | 8 + .../proof/copied-centers-lemma.tex | 103 ++ .../proof/primary/03-motifs.tex | 700 ++++++++++++ .../proof/primary/LICENSE | 201 ++++ .../proof/primary/PROVENANCE.md | 23 + .../proof/primary/UPSTREAM-README.md | 17 + .../proof/three-stage-cover-bit.tex | 264 +++++ .../proof/three-stage-cover-rows.tex | 95 ++ research/five-stage-gen5-banks/raw_ledger.py | 189 ++++ .../five-stage-gen5-banks/requirements.txt | 1 + research/five-stage-gen5-banks/scalar/word.py | 263 +++++ .../five-stage-gen5-banks/scalar_check.py | 127 +++ research/five-stage-gen5-banks/verify.py | 83 ++ .../five-stage-gen5-banks/virtual_check.py | 63 ++ 112 files changed, 16070 insertions(+) create mode 100644 .github/workflows/five-stage-gen5-banks.yml create mode 100644 research/five-stage-gen5-banks/BANK-PROOF.md create mode 100644 research/five-stage-gen5-banks/LICENSE create mode 100644 research/five-stage-gen5-banks/MANIFEST.json create mode 100644 research/five-stage-gen5-banks/NOTICE.md create mode 100644 research/five-stage-gen5-banks/PR-STATEMENT.md create mode 100644 research/five-stage-gen5-banks/PROOF.md create mode 100644 research/five-stage-gen5-banks/README.md create mode 100644 research/five-stage-gen5-banks/UPSTREAM-PR234-NOTICE.md create mode 100644 research/five-stage-gen5-banks/UPSTREAM-PR234-PROOF.md create mode 100644 research/five-stage-gen5-banks/bank_check.py create mode 100644 research/five-stage-gen5-banks/bank_template.py create mode 100644 research/five-stage-gen5-banks/base_two_moment.py create mode 100644 research/five-stage-gen5-banks/code/complex_basis.py create mode 100644 research/five-stage-gen5-banks/code/complex_labels.py create mode 100644 research/five-stage-gen5-banks/code/complex_scalars.py create mode 100644 research/five-stage-gen5-banks/code/complex_splice.py create mode 100644 research/five-stage-gen5-banks/code/geometry527.py create mode 100644 research/five-stage-gen5-banks/code/global_lowering.py create mode 100644 research/five-stage-gen5-banks/code/physical527.py create mode 100644 research/five-stage-gen5-banks/finite_check.py create mode 100644 research/five-stage-gen5-banks/gen5bit/NOTICE-PR200 create mode 100644 research/five-stage-gen5-banks/gen5bit/README.md create mode 100644 research/five-stage-gen5-banks/gen5bit/bit/base_word.py create mode 100644 research/five-stage-gen5-banks/gen5bit/bit/word.py create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/data/arcs_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/data/local_design_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/data/pair_module_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/data/qmod_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/descent.py create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/make_physical.py create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/paired_cube_bit_word.py create mode 100644 research/five-stage-gen5-banks/gen5bit/producer/regenerate.py create mode 100644 research/five-stage-gen5-banks/gen5bit/references/pr168-v4/SOURCE.json create mode 100644 research/five-stage-gen5-banks/gen5bit/references/pr168-v4/research/paired-cube-bit/check_paired_cube_bit.py create mode 100644 research/five-stage-gen5-banks/gen5bit/selected/bit/frames_p12.json.gz create mode 100644 research/five-stage-gen5-banks/gen5bit/selected/bit/graph_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/selected/bit/kchron_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/selected/bit/profile_p12.json create mode 100644 research/five-stage-gen5-banks/gen5bit/selected/bit/word_p12.json.gz create mode 100644 research/five-stage-gen5-banks/inputs/complex/LICENSE create mode 100644 research/five-stage-gen5-banks/inputs/complex/NOTICE create mode 100644 research/five-stage-gen5-banks/inputs/complex/gcert1-p11-pr193.json.gz create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/FINITE_BRIDGE.txt create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/compact-control-layout.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/compact-control-movement.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/copied-centers-assembly.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/copied-centers-lemma.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/endpoint-gauge-complex.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/general-clifford-frames.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/retained/stopped-product-complex.tex create mode 100644 research/five-stage-gen5-banks/inputs/complex/source-pins.json create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__Bridge__Cert.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__Bridge__Net.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Live.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__Carrier__Phases.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__Fourier__Main.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Geom.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__InvThm.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetCert.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetDef.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__NetStage.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__Phased.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Chain__WinB.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__B2Gp193Main.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Glue.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__InstB2Gp193.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Cert.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193Price.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__P193ScalOK.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__RateB2Gp193x.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__Raw.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GCert__Data__SolutionB2Gp193x.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Adapt.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Letters.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/Work__GFrame__Engine__Level.lean create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__ORIGIN.md create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxbind.py create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxconv.py create mode 100644 research/five-stage-gen5-banks/inputs/complex/sources/tools__gx__gxcore.py create mode 100644 research/five-stage-gen5-banks/math_check.py create mode 100644 research/five-stage-gen5-banks/moment.py create mode 100644 research/five-stage-gen5-banks/notices/PR210-coordinated-crossover-NOTICE create mode 100644 research/five-stage-gen5-banks/notices/PR230-NOTICE create mode 100644 research/five-stage-gen5-banks/notices/PR230-PROVENANCE.json create mode 100644 research/five-stage-gen5-banks/notices/README.md create mode 100644 research/five-stage-gen5-banks/notices/base-bit-PR200-PR202-NOTICE create mode 100644 research/five-stage-gen5-banks/notices/source527-loader-NOTICE.md create mode 100644 research/five-stage-gen5-banks/outer.py create mode 100644 research/five-stage-gen5-banks/parity_transform.py create mode 100644 research/five-stage-gen5-banks/portable_bit.py create mode 100644 research/five-stage-gen5-banks/portable_complex.py create mode 100644 research/five-stage-gen5-banks/prepare.py create mode 100644 research/five-stage-gen5-banks/prime_check.py create mode 100644 research/five-stage-gen5-banks/prime_witnesses.py create mode 100644 research/five-stage-gen5-banks/proof/FINITE_BIT_ACCOUNTING.md create mode 100644 research/five-stage-gen5-banks/proof/INTEGRATED_PROOF.md create mode 100644 research/five-stage-gen5-banks/proof/PARITY-CONTRACT.md create mode 100644 research/five-stage-gen5-banks/proof/README.md create mode 100644 research/five-stage-gen5-banks/proof/copied-centers-lemma.tex create mode 100644 research/five-stage-gen5-banks/proof/primary/03-motifs.tex create mode 100644 research/five-stage-gen5-banks/proof/primary/LICENSE create mode 100644 research/five-stage-gen5-banks/proof/primary/PROVENANCE.md create mode 100644 research/five-stage-gen5-banks/proof/primary/UPSTREAM-README.md create mode 100644 research/five-stage-gen5-banks/proof/three-stage-cover-bit.tex create mode 100644 research/five-stage-gen5-banks/proof/three-stage-cover-rows.tex create mode 100644 research/five-stage-gen5-banks/raw_ledger.py create mode 100644 research/five-stage-gen5-banks/requirements.txt create mode 100644 research/five-stage-gen5-banks/scalar/word.py create mode 100644 research/five-stage-gen5-banks/scalar_check.py create mode 100644 research/five-stage-gen5-banks/verify.py create mode 100644 research/five-stage-gen5-banks/virtual_check.py 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 0000000000000000000000000000000000000000..183b8bcd56f26cdb3ec452ca2032b0e9e5aa95be GIT binary patch literal 307639 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≻~TVFLcn4QTd>? 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≤47SAPHWCeX z19w@5>4n|Pv78a`jH7I-ob?#C!qknk(~yA8G0~Gb#^Ps#W1B&pH{C!ua8`-THkxc` zIPtu2&bx5-lttEHZ(bp=Tf`!`>}SY;sg3=dCwFRFlbU^y+8NYfM<13LfJ3Zbp{0Um z2eoR<2<@0(c(PMuji%3dC+&lbZd$W1c*GiiJZswl6#Dz1lHf@8a6d()kUbv1ZS#dE|I=G_18% zytcchzRoy@E3!>dRM4mH)x^|R@)P8tN z0buA8fFZ}rR=OD4rjT+^ngvF1pxpw}7}ulEwckG9p8i_0b^W6@XwsR^*Q79j=Ax6= zyP>R_uJgLeGi%1$<&hQD=ozU1jl}3#*1yT1mty9~_o3#oeShbe);w1q8)HL0PxF54 zZ$zHICxQkf-lmRN5+**f2A)^2k{U~D9wL!=zD&th@ z9nL2h$QYW2HMtyjH77GhSwn#7zkF00j0nI0^i-pnFv6~OJ z!&nOQH+A9ley{KliXWFtQHh5zUXL;-4S{hGVVP1`%yAUMBAGSxBNjF z_M_EzR|Qxs$X+Db_p9q+vXM~ENKV~}_m1+skN+_cdT9dYH`>Wpfc#F^7Yd!44y+Ty3FflA34&;LU})hyR)j`E^r!KGqKiH*V{IYl*qK&m<|1C`XqHQ3~( z<;(%Ot0}2JE<2}~$mA$7y3})$kGNEn`+l}IPUyl(o$2!zW#jKo$B!P2lLzPeS9U9j z2?^>McbHM@RQd%~38uz;4TlcoupH&z-KGG4lp+mUp0$bP{GctFNoI<;Mab%d)mta*aQ=-j85vZ{;dS`7dgux!*zDkpsyUL)&;dK zjs2bPZ>H*yaR5ygW$Mbd%ksdwMs@IriCWuzJ3Vbr+jJT*=Z6qr&TS8_o#>|*87qSKqe9a_vYb-gO}E_gum4Qe0=AL&ByU!XW4cQ&V^_j}%r#!S5oS8CDU08n#@6x{ zzjUg#!h6K%YIFBy1@0qFE$NE?_EfA%VHI=jFY8#^ zh3vYaCJD!>t;M1TK4td02%D|_ta6y|=#%XCEUtN=MPMRhd;I*BUP7@TV&y3sSRPO# z!w*CXEPQHoULE1r2cexEu@6f;e2t&rTc~_MS{|;K=m8h_Md6^x4AE)V0(n~XXP?a0 zN5e?p1$F-6H5Qf)x3{?eWr4_CD!WvCvf2y(ln#xaBD=Z8U%CnZ58d?sAG%@vM>kKu z0dzCOBMXQelc1BARAPU!_M5YPaxXEh`>=X`|A%e@`$j?Wo1N5RNy9Jy{GE+01vvq; zF${|A{SfgQ!(MS1TQ62%2v}h;+3jDRO4V0nUwn-drKPfjLD~NzD`m>4Q#qAcA75*G zPx^V-bVjINx;a{2(h$IoG%2xB4 z^6ul272SOX2Aq>}nV{8Gw%NaI&{a~y9lu!pqP6kb_hVWO**>l)jCD|JZo$*1qnohD zko%@d?Wda@!xv2!G~EsQ&PNf*1qJ8#eGS|WoVxtQ)Y^kKZ5;p9j?0ohXI$hb9c-zMn^egNrp`vvC9QllgI4O6mO~UbO1cr(5dw)A*`qdMSMmECJjZKSqZkdf z={Ja4!@q;xU-99 zKL>Cp?S%b*PBer34f2n>F!5*iWSD(iZ1{TPYXO7iNhp(t>XKHmen(h2$ZKNjakBl7R#m zW9{3nVL$|vS(~i4SbdLjIlnui-l*@7?5%dq(Ta!utO+f~N?PK*X;Ni%Q2oWc(#nOsYGzj^{NWfGF>I*{avYpvV^+GFwTNtAcZLQg6 z!W8RR(*#RKJV352zdQm>I(#wZ$6*9k2m?74vL#h2u3rrR;818b z`SaZiF9lHEJ!>KN7F{|qXBA4sr6KA_uL~tr^1ADkJRi2+eK8#t;?1^yRdX>_MArzW z_0i}I0nS!Bdz0Fuv(OGUs|jyE_wwBmcS#QWV)(Nnpwl#zm>!1b-k(76?n@Qw8QSJA zj;Wd4?ip2EZjn25h(vOCbk#_7{CaqmTq(-u#7+Y_Q))Ywh!LqLG>~ z<*5dFxkjFm5B3*HIx}${sGjFuKx<}mieho!dy%JU(7yN5(o`RbSrC=X9kH6;tafku zR5g%y)>>8k6#Rb~W_Ca#ZYe$y(?zR~bStgYSo9I&`6FXea6ho0qvkC5qEWtpd>9mO zX%UG&{K7aPv6|8-c`F3Go)}+M zl&_s!;TyToJD>bI_AV@A(n2ldI`%KMhaV1YoI~@3(>|wg)+?;UhgK+5E~GM53ib|i zL(zhJ2$-IyQ0ynLN!tD;7F+F~GWV_Mw%TPMbE9Ypv)jq@ucl(1>XO(wc9I!%Mq9`k zQ<#O!BKZ_%a`Z+eAWH>muQ%%0)qXipWwt+~MC>wB;VaGNsQCa#H-Dx;3Ex+imb0@; z<+ej!g|!g}az!ZRRh$e9%JbAeU5PZ&yQBl2HmudCP(Wx~XJgW-kiXittV^x#M&2Sa z=fI3}@4J3nz_$9HB-N^MjQqumstH4;2VGp_#Jj`zGT;)q4X}OOT=~1L#qtmf&UZBc zrz9dcMMBv=;W42$gi()3V!rro_hhgU>Ug=0`4b1ylRtWRMdO5wuVi_jfh)rpsu;Pr zG={1#ItBjZzGuJ#?)d-a&hW8)S7u01QoL^GEGi_^Fweuk2H=zp)_makDzA*?(Y_B%TrWiCl)u#1 zGsK(Q*pN6EL=?#Sb@-S#;yPN=E@RmW_C(tJya)be^FckDfzO?aUcGe0vPBT*b*?KZ zRWB=W2K#<@>#mzKdIGD5|WI9_+^3J2RbQ>Z$WTbw z6Yd@>t@60o@-t}%6WNgxfRxI$@GnU$X{4;EtA=Y==0ox1X66&qvA67j0bA`&2znycIlfiJUDboqN;e{%mp#KGM3C9mD@6oSL_*dMm%XpK%Jo7BPYyb4G|{I3SeW)&r^fql`k^B9v1-;_e+CM%ud5<3CIf{*8y2g%fNchD%4ku^p_aFl zT3KZU`00sdnu7CrSnYD3AkRnc5KF_1$!uY~XPLEpBU6{%cWCLPE`|3dXg||NB=D?)2Gxh}@5kS$0c@B(?fEN?L0O1Z zh5eR0uA|zA${3oa2pV1Uu0&O_0z64-U5c?B3Z8vB>r)TH-ozaE zV7l1=kKSI2Y|damjb@>;dLU3%J)`&$6;Bo{$aH}PmMc{WLm2S0L(|HlTlq_lnWTq6bKzqy|c_x+jUoQ`gBD`!P zQecjIKIY(t69Y=(cC}CrhX%;Mv9jORi#t(BXoT>~8*!!$#(*}J30j7^lo+XX{etl( zv+Z%+MD&3|TDci$YBz;ZsH!E$Ohr?!IR>Qt=@*rBqC7hDu&7AE+QucNHEx|lB$ytU z_k#qxLQi$CQ+8|A7*-s}l0m=4U0~x(s%;LBNXf;Y zmUS$fe3jS<=>3uS{Sx^Ng}$I3&sf0M= zR`!E%;zo3x-G<@lRYqG~m#gN^4cIt4G0!&8d*EJp;8me_gzFpP?lVU7#lur(^fndu zVqBJbWwM0PDdC@>PRX8cxg~v)J+_|XKi`{uNaA2Q2nKm*^2$+|oIia@BVlr$MV=0& zNq6&7oFCyDpZNG**u$`_=w9CG!wt(TV&xt&-1Aw7NE|pQ>Ck;6C7eMe(Y-E2g9`Lk zV0KQ_IFH_^SoW1b(lV6qjI5~;3HQrV_mlVwWc`N1S0yntKRFh31ys&dn+oxC-@!rJ zcogG9*n#wYGT+cH6JHz-rh5-iaJXv5wRF53c%rzlEwFHh4j(x=JrM)FQ- zkaY8l#zGMVooOJ`kK3raB@Gh5K{4aQatpdY(Jo0Z=*F_!*ST5c@IQAyx{N-d>&02n zRlYY4_Kr9o&Zr(Y@A;~ZkcB;hA8GdE*>ulRz77cHv`3CVOTXMUf~ z1z@^!(Lou9IZd~Uqo!yq|Mx{n zmY$dC-Z;faba0R&5V}tnBLCpNRVQ_0pT8efeEbeCDKj*oiq7duYj^b>NE^ehrEGkz zL$*hI$ulolC1NciSjEzIEF>5Qc#pMwB!Pax`!Py#4k~gE&~U9`QS5F#4ldamWOj_a zL9At_*2bd4#C`driCW^KnKg$&1PYHzv$jw}lZJL#m)u5#@W99SZ!w`QzXjv$H(4TP zOU*^eTnRXSHD<+-&7Et3eS$(&(77hBhE$fOHnSONes#+AW~%sStqJjLmQm*&6Xf( zB&ILuD=}sKLLyaYKrAz-pe+Fz(aEb)r=mU`yM>*FE&oXiowXNaW)nF`BzJh&^~)+i`sB*lKiN2^8-XgZWg!dHkzq3B4L~6r zSeF9npZ)cgN>X{ufc&KZhumuV$wamvbH56Hx(<4P#MqclBFCzpv4@wmX7QtiN>af1 zw?fhr$tYjmsU&R&2*_%`YEUoc154BQ=4PmBm&CSzjoN?3M>_B`zo7N2PuLqt(U@lr zDrDywkIAU+^hwMHd=}GnHij(jCp5{z|Kq2mAFmx35;@u(Au)iP3iSS8H)*hyWm@Z& zJYC#4zW`ozt+`kmo?)w9B7c~iqc`g}gGYory5=A*&?wqdpvOx$cx}d_Lbg(}47zq` zj#>Wsd7p|_(Q#=<-#2aDUq@jS`8aZBSvMsGeeju`N>Yqw(J$Q+dAjLrJz{ulMn0#R zlk01iO3ngx=BQhLz0@LGTUnK)k0Kv_JbThI4|LIK1e(ZkOuv`N0o7KGjYe)%FV5Nf z2@TL;q3s2H+x=zs>eLS~u)_+E;a%$gq|E>$pkXl5QgDv~NV)N+0s>j6!u-Lb_$}h&}sd^AmxKr~@sf zfO+iP)gin<59FOV0hSyn(7T!}8r;bwjNq|oJZ5hTdSl^IGFfjS90EOk`TfD)oX)NN zSa9mW5!ytN&*-gJllRz^)W@U}tZxn09}esD5-J`@qw%Ny691b)pCL7rYPQ*&J!NQ! z&PRHF-4b{$f_*}Xgy2*uMvI?KgK)7**G}hW@sd@B^VCntm4reV^T^W_M9V5SSueSf zx~l<`!1~FO?8KM*{gi$)c^sv|d)U+3wP1bn!&5KsJZ1a4S#g@ZpB{{CWW_2cL)liF zw;xeWxz6(Bn!4X7lzieyQQzXr<2bSC&~;sQr|G;aOcn0wSJszk9^~B4i`BqFF8C@` z9HF0i#a*m2pvq+(FJL+{o>VE+WLeK@yveHnLA2GyLrcPRXPZ@@IOa*YTuJ;F5LjP= z9_oFFyO_t3=58CA$8l9td+n1@Qgf18j8>MehaM5eu3g5D-nl`fuWN8)QjaVrnk5jW zxA7=wFI{gVl6GS|ZTg`1Lf>1VtQwwWtCJKCb*0GTFt~qTRRz{hiCJEy|H-P)yKwsF zQ6THqpD_Pz^t4^Ly-re&5_niua)4F;YP?9zdF2YYmP~61%t-bkSJj5jV)v3~whBx{>g zF-|6Se%HmmdI_J4|5`yV#~A2573i(;@)P3aCb0hCV)dg`qQ%j4J#G|c>i znV)tqqmy%c4wKP%Zg?l|*i5hj#FseLL*Qo#4m49QZMFa3F@(h`Vy_?*q+?%+w!L0<2Y%#^MI)HLg&lxYL>|YEa@dnzIbJoNTBKXqSBEuVecDf(JzqNI3Ek86dcLdq z#|HFzCgM{>Bb(6|tKcAO3x2mp-qwP^X!E0$M4LC=ZYq7I-o(ZJVd+sXsRBk>Y(Xg@ zNxh`g1&z�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 (~dfNWJN>)Zn7clLu|dN-4Y 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 _`jJoNgmX}9K`u|&jD@%jQ=PON2r#IMe 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

+`xOtvr!$)Kt}_cs1OVn4W~7rrAeXIg5qV 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


G%nub<5F`u|&fvZX6 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

+#~+wMf~{i|-|c4A9=Ckcfc@YBFLG+BiF zY@ahH57p*%Nj|bq7=ktAL#kaCbq-$Pz;CN{@gM%hx<7^^)~K{#u8f%{dFxh5PPq!{ zmi!?VtyJ14?qxOlD+9A@+I6ru(dzv2?G$!M(8smNGY>tZgDG^(YpmzCCwY;=z4cTU zUqO>eg)9;md8CHv(aNE;$)vAr5>I#<2I#M9htlHSLaf@xO?9TK>96dTx|a1NSvHQO z*LJwQ0rB%S$#q6)}dYR&WmfBX}ga=%p2%(Ionky%mU$=x!JsVO67ds zkaEA{~l|`0#eExQ7&9u2z zT8H`K)DX4L9}|>PX(x}f6~}v2$9^<4b}22!wdO;4^K19wijTceIu2Z+zpJh~vu^*3 zS;b?pzs3>Eg+cnHME9{w+ERibLaMmV4}L&}1Aho5!uG#ngPSfYM}_apOo-`QsW{v8 z9e(dQgSv7h!DOX?TWv4^8W!VP#QCRstE7-h3=RTX!fL0sLku}^Z-*_}cV8v)iL z9MgAPFChx!|QBmSJXy}CTor|I)*^m76CG;J^OUJ#+)6%6y7rVRH%~ObFd6gM;E;p|3Kcyre ztsiP<2R;rhP}%Noi}y_M7mf&l9Kr){$0K2b53YLEsW`Gq*ycc%=?MWCSDrCQX>fm5CB9P^frcQE3q(4O~}^ z5{!4o*lCcR;BwZTk{7?O??6RV$Mi*4dc=Mi*Io>s%s$$-a4O@oa?yqG`1DKc>{5cU zUaj448S4~x#-+s3z#?}7!xC8;Y(cU%UKEMW<|QwDR%@lyflgfngE?iM9(#H~4rTV_v z6p89vNpT55>(DP4#G`(;7|a%I!vT7fgbI}6Q&+pi8lM0vNQl%YmlNa=Vm_Rjh22tL zCy#((ct8ugA+Pb16VwV7oA3Dy0Sa5j=B7eP29su_Qz$3Q%1HhMxQ zm8AmAQdt?m%8wHTZ`iDA%_dJdEj=2_@&5BJ`)7N5CsM1<3pblMzACy&!CaDG`>C~8 zU{Pio7=Al2`3oxpDAS%}l_Goo{_VEsNg+ien%UCt_P<5~hN&?S#2tZX+S8wg60?u! z?c2m;H#0&~yi=q8-}?Zu`98H)t($vki0O ztBXCk`lLwrUT2z80u&*Jlj$SL-~=g0Wb zG%6nqET2fzxY2n*-Bjkee%Hf>MhZq!_A5P?8xloG|FNcmAgkm~f=ulGvTlI{sy;i~ z__O5^LT-QD7er~R8g%<^`})|G;q1%YyNCU}CyT5$p}3wK z=W(r&?uu0@y(wkb3|Hh z30M}-m6=?tiwqIqi3)G)tX+z#-M(8H*}nDkkZa?fy;BwR`%(WMvIBy<6DDXow@MFE z?KnLjO!RvQM2PQonfu>YiBzxUDADvcbTu9Ur4={Z@+`QjKjv?^dae7=%udony*vkSyl)srpTD|R$si$|W1S_?a)IxTdE=&SZU$6nUQ%H*b@n%P!t-Y$6qs3kshXM_Qpw*9 zL&jNcy-5XsmViRXAcm}y4He6slH|l4a&(NX*(5y-G5evk1p$tFc(Jl8dCW6 z1p_vW1!VU{$7@2~^+XXN`l#^9&f0d3Y&S{Q8>-1CDq$X5UZ#_{{tlA*XyH2!2iNI^v&W(5d;@X(mFh@)|i z`~Aw;LuGtD->+r$lo8iBku||79{q#}VJVmm+qC3Oior~9d#WPIlcrDftb|%};O_8$ zbwwt@M03p>}{ERB+j{;+mq?)AFsuw%#?f_grQu z9B5!On=gN_+kI94XXB6&SEjHZ_>BhV(i|or5he8pu*kc z@h&!O)||9hz`vqBeiP#QiU}^r3Prv}K|%E0vQoD)KA+I*TZEhVq0>+6;}lFWUrr?4 zN7SZgSpKjkq9TvqYf?<#y(l>!`eKG{LxmE?AG-pIcTT~0%_6azJXkcA{aD#~rptc| zxP)4v3!(df3}C=gjiLUitATHo$GiHkw6inTv%tQqK?5zU+2B~y9(?}lKfJW2@bH)p zgc1j=u})e9&vVZ=vx4@ZW%JN$ax>pM84WTeN$RL2ImEVrAYy}mL4f%qrdNDZV=uJ2 zk6)#d0lW(ia~G!Mg7knj6*Fi1_XwD@6F*6SGR6H~<;J{O(J?nWf{3V&0eezWDn-0W zQln8*+YT%!VPyaxNJ{L~Pt18z&ODF?>}0oBr&hZh6v*Wom4-c}+xu0|^DKD6?6;g< z0v|$bp9@s~pp;X`KLRI0-g&&ruQ0QhHQHh-Xzf&ERFbXGBAHz3iEDU@L%Huam+D5D z?u1Aa}ja8aL!uZzb_DUio-S zc;q{Gu?Z;m@+;Ic65v?IYyt*=))-enu#j?%5xQ^^L0vH`0|N(cGROjBzMs!D5GF-_oghbpY!rxB)LE zZ~i5$ZA(Qy);)hv$9s2@GM~wSwH0aBtloyJ+24u^UaVW=irfc9*RC4*hZ09Nh{I@2 zFK!n!lY+Wg@MWpB`bi*`gMQa00e4uXXg8+SS`Rc{A^P)!?X*eG4FsiROngUSr)G8# zYg;EWK6!O^U1lXSh?Gn58B_i>vAcQ6Bbxw1cM#PM+!REafEH=7U{{{}(gxi$5lg|7 z6z-1rpr-Sm)*_|SR6PHkK4nprMKWn(LE=J;b9w3!usIfhG^Z+m*N=jR78&`1(#LCi zev0fxiS)QQV*EW=XgEdougc}nJ8^I9jMs8$7FyM$9~V|Y=5HSr>VMNtU8n zsYKtk{j!;#*t-zrgAxTGg7fB5lOqk2eh(>g1u^}cBNa^Z-;x)}v!k5x79aaSi|<-? zHTi3vFK{2*LamPw4yCx@${6AcDpEgi9;!f_v>@W_zjg1d>PlmQ8}~i8ydg#IppTdV z7OP&dDG?0_=|N;3_NO~h*K@DqKK9$nh;P-9QcvSGPLTxCZK2Aze}5$IKMi%Au8~mN zFHugOAOpHchUlfCA)X>MD>d7ae?~wXxGZ zXU?R!RkN*M=6xHgLQHU9q%OpQ1q$bFW^!gTM~q^?oW-=?SQ2`Nuc4d%aR#uonN3Dq zk<;?*5HHp?@kW}j9KLW$o4({(ye4}*(MppsFSEI7jM+ z&iG!JB#Qq40B8QH%$A!6Jo}1@QtNPxw}p@F4T=t`SvRA-%Do3?Pv$^kU}ywF)5G;u zEkkuZpO~ZvN4sLoXSU}5fz3_4N#aAq z@-(zJ&Z2b(6`v8$2@(-kjH`X|3wsRO3#YBky~sL1NBjTVR?NisKJ#eHT4Lux9l1nI zzazbVK5t`HW_I5+iS-0(zRyH}WbEg|JCbL+{k|FiF`McX-~4++hIV&EMQoINZc)nw zzesLbrzGPezNe+kTi^Na|BsS#gfv(7A3=hSOpf8p)bE&N9MtgJarll6XmWM?3(WMw zqH&*LF&Ggg@ZTdaWDY5$K62X{(X77><~}g|uOhDbfM9GZpm zb2D2|KX`Wd_m3wnLUEAG;eJ|Smz8Dx34ob`wM@^eC zu9$&=t%BWcw($em1v4kIKc(OomNmT)wHHBFy8FKx0cg0DF|SdL(k+{~G3ML^BNM~} zwGIeix@v?w#*j$iTN?mQ%zwjM8*co(H@mbBCR%4+&m}G_I;mdK0fgDD_#P7Eh2Hw3 zj{e!QonmRH43vQ;XI^X5#2~bx7G}SmvQb{3x^`k_^@mOaqCMD5$7BdyH_KM9+XCaN zj#Kr)B=V3-{XzO8B(N17o%O-nT*B8?dqb-e6fznv5ySa`7#n$ct)!@?y*0RdlBvZ^ zOqP$P=%3fcAqiR~U*Gprz^v|t^&V>~L+J3D3WoG0nA zt7x5v+BNgBLmzqp&2HZlrHG^b`ZcYo*MTQS5K`$%IJoC}1Myy+vaJze_8sL-!#VZA zQ}j!cpdYtre1hEr)7w6W`3S|t1hvPAJn)B3Wf5mq7Yg1|G)L{m*0x~Ixf8-N_SNxl zlH%!3aMSa8u3&>+uY$`T06Pe&)LUtdN(y6!MVU&C=zaS$H1BP}z_4NFY>k2AUu=e7 z>b;peYe*TH!u54K$g1Cvq9ai^6mAF2-5aNoX%o!l?crpjyUk0~rWt z;Rf!*0B?pnenH0fiEoNB75fKUh>tiH?Y$yHfx(cs7ub2cYBlRP>ILHI_a4mTDl6Rr z@5mi<95s$pM1C!3;3z9SfC661JX{*8Lx{g1Urs7H9JGE0+H#QQSEh66|4Jm%YGV2q zd~C!Fj3@(cT-B_o%d*lH#r|}q(g=nZ9l>qGf<9Y|5J1C>?+J@26- zKn87KBbGTLnR?ow%q|ws8!xOTVh9Z}s9n)ArnD|CV?FCkA4>-*{beD)4%}}r=~(*j zWJ-(8mtXOZA}Raaru0za4)iI4O{th=vTlulXf$RSM#dLO6D+{6G{!S!r_ThlOvpX) z>W}}(>~k%Eg;n}rq%PflLQH>3AqvOv$#uYp>XCf|R!FzIYp!H_$9>gLDT1r1 z%*)&a-=1)luN)GojH$DW)Hz5XP2kOXBFTEF@a-oF-e7yNNNGaT3!lJ)+7nr+TH74h zv8YSO4Q#AxVX~ZE=zg31gDi32rsRuv6c>$|O=AZ;mSjK|g( zknN&oB4z_3>nu|L_1Fu1uUlZ84aTK-P-T94{R#N|C7%J!&LvIpf$ef3`U86~DqSyG zpSmFhb7rrjG#plai+F9)G)S5J`+u$NwPY%&#!a;K3_GIjpMTKY7BSn<+hdfLMt!=Xb)a^X5@d&B)n@PZvq)QSTD?W;RpK6~y_DNQXx9*>EAHIKpkBlUk;XfEt3{Zs z4&iZn;a!x^qbhXw_NW0B*`loPh1-CfRN+uNR&XX6&t<0CJIt00RH}DByNXmR99c63 zFf?Rr`-H*=Gk1aO;lkLi(>Dw$cz(Mm1A34L*=QuRAvLi+@*ibvojJ|75p%SXlBz_b z=0{*ZzE0GDg6VaIiSeEC!$Fk(DB1^*Uc#8`;N>V%s6G`X7N_$XC)ZQx%(l<{4Yt@X z!+iVBrkUKiBUcL)woDbgstI$sK=Swg%9&_aHqu>x?zDZbYrX7`D+8B1h@4CQ;HZ zl-49W6;B!Vq+Aa}VhZbCH}G^za{mm;v69$-B$2qvFzqocQ)n@Dz7ci=ZaeUapp1>z zqv_Ne_;~{l7^6(vcPFnjzKI-C(xOb|7c`A*IGokSib|8V`N!$G=?R!nGHzg5on?__)YzkS<5R-A(Q)SKRBC>fA4BMoIHZ|OZhwYOHP zxXLp9kME?z5`3IHzrV2>>EO+8KodD6U9DogwgWDC2x9i_JeIxoGjTBOgp)Sw_9iik zc+^+%CrG)qThSOX$qL%6M=e{DW#}RvgwYuIJQV89{yi`^PV96|=FgSk+4((&t&_I& zKKS*QdiOzifIo<>Y5XE9&Uv%bG@wvPU|wR?iKDyXPpCpGen_*bYyJrSa~106(g?dZ zgOnNTkV8EA{p*Zx!oPhjwoqEZnoskQM9N}RM)N4R#inqoQr-$)WD z`o9T6VWZ4c6St&ZwMbyQp~i?)_dwH?_{Rk59rFil$ydThkNsR+w*^ICEX7iTr)ujg z_UB%zwBkoJNozp1Dq|9-EB3{ATX>4^r42srT-QXr7XjEu@rTfG(h=^b`<8f*B&_j~ zUp$&;m~P4?f={jNm$zGN;ELRXuY_INOZ7r#^DBG^rKR?<_jiPNfD3yHI7%eJ^Ik_K z$_$I|gAOLd6StU5=5320-B#_3krW&JqHo2+(~Fe)3q|T-d`3#;_ZbYQxKX#fqnTRw z1=odBJ|i9NotO1U9EjYyRBNrqcSqcQ1e6F}(Jm!KbLKUAhyLwFGW&K(7yY&;5nN`p zd^@~kJK&oWKcx2~gti>EK|KYof+k=_6tdt0q+rs(_6w^DG{{MEe>$M9INb5E0paFZS*_#0d`nTTSTY|s7|<>fJ4-lO~rTQ1aK2(066 z>?dIiE2#vzl#E*fU5w!4OwrNs5ozxn9U3+44vN2kGLKKJ^tPPAc`|{=^hUrnxgc(z z+{i{PNGD5Uo=T74JJL1-r9r!`y2KLhqBv&URg?#P!HeRr6^{D_8npYO8{jG#TJkO> zF`pba4TkZvaVDUhha2U`toQTvyI3mIa$0)3i&cF0!6u4Ke@mX4qvX}3yD?#k6&JSI z>pnoNV+eySW@D8$%CnNS74m!*m?QA}l#AJ@8}@P^(0{h1TH*2@*KkTQuviF!Iaz7&q8lw zF;_N>;YCC3f_1+4u%qeQeh0I`IKUO%ComlGgoq|LiFP zpw2z=_tdV=9Zt%f5-(%vycxQ?1yd3qQo_)=qWcKU;D>isMYoN6v6Yd5?Uj3}2VCK_ zT?xd}f$C3=m-e_eZg52&nBCufF+r<^Mjf0~m4PX&UAkrX^ceCu8Jz#(SoY^c88q&n{LgydB z?SE^e&RfY3fHHCj)vwA6Lb-LKythAkh-Vzn6t0!{zWO@wM#%3dW3%tAf}a~P7}v`j zU37la9~Tf*{C$h5GgwFWVe98bH@W%Ypdj`=r2|4Ewa%q^f2T#kwPsyigbKww$ z^WC+Og0tIHbq?Qa6RimUnqH!t-^fB&za6==6t};IUiLAHRJ;7CLgBdXv(qRd_uHTQ z4#uKYqVHpSZZ$qseeM0YZx1ukGE0?1Yk3d|7B{T@gO?hjp4meuv)*eMNK4jfJC>8M z;}F8sTK+#gU3FX)>(jrAf;7^Nigb4gNJw{gOLsSy20^+@kAyTxNh2KT?vfIe?(X+l z?(g&d2_n0*&&+&dW;winVqJy6FWMsAC744-|9-Ws8@ei!9pcjZic)aw-hQgd@xH@J z6u$Z6Ede?5W z$HtsoqHb(s$$N$LQSmt<2|Bq3a-JDto5?9grgi6O`v?Kmp#a5Z@|_3FpI?aZO3q@~ zu>8qyH0L5*6*9Ne=I{Rb*p@+esNKjP_tS|CTZmKJFozr}wh6kB(G6YUy*_!{4Tqhq z?<5*?!1G64XVIhKRCNj1-V-xiasrq#by*7%Ct@n@?&NG_-&#fn%)+v zSR!WNL*~=cuE7T0>B;9yH+`iZT1;a)6ljC2tN#j(3Enn19{3k-X3X+()T|^TP}+^& zGn?(?dw=pqrg4HJ+!`mpMTDmeUx*684&O1Y`pB$)@OBJ~f4DktKFQ)DrQgU$2Ms#* zF{ImlbD4rzLqc#ytg67h;?v6 zLoVlVXihHJZi{EXkGwBx1YHRzAY2&c+o_Yf+Zguu^B(ZH0&o8mtcv`9~gI7kD@!^;l(c6>q z#AGE1(hDKq>sLMi*nHvl4~(o1hj{5dd+P?r97Dmz$g|xM1xwGbB+QGH*`tGMyZ5hh zTRI|Nvct$?a59P#8u!Y}sZTi0S)y?=tj=N;zUOCjNE*h+$7}}h9CP$^qLVq3R^9-GY*f?`5{4i~NbUp)> z=zNJ#l#EUNx4&vtw60RXSvXl0$mTCsGplI~U=n}&gu?w*h!Lkp?PHNlGWPf!Dl918 z0d`dPL?baxl<0M|Z}?YcUz~`TahI?5&Q!#;GhLZK+SXszz%K}z6)nq~o+H{d7isJ9 z2D~u+ec$db3O8OjctWxH$=+8{B7RiHWHa$+h&w2Q)_+Xvw_{ypLHU1Dp7nLi8qu?< zEXL1o@=T0~K2g7KN>6yFWe+;a#h32eul`t*J+QA!whh~@TE^U$wPr6i^~#c} zGXvjaA3aQ{X(${;qG{<#am+9#an4#;<`sPLiOQq6D3WN9RvK)nI`vDSmrb<$J7$mQ z(Qyjq=}@#9eCe^I`gXEnp=ogiLR@Wn9kz5Qbq_jf(fQW35QuJiMAuJ#i}~gpk7%>z z&VytBaffp-=vk`XBNZUE=93A(^^w2EhmnDHLSet!B$R9Dpb@v)Qxx*Imw!jTR%YeS zNKZ!q_Fby&bX`>b$Ds=LUzveRk$V>sc3r=c32NkX4pKvXyOZeZHhI@MIr*6oZ@R!O)W$sA;F!L79*u|c z=YYj5yJ&1Lc31Bv3jvv7Q#a*i)t2n9Z(NHdCTk!R2Y48m%2*zF1 zrHqs6n^$qHid=io@O>m=v!5So&n5VnX0elIXRO6y-`Th~`_t)8$$rLKQ9FdZQB+EqR6? z+u-lP={Q|g-_bL6{V#o}jD6FWjZc@0hrAPoKnJ}j%Pi4THEB?ZklL#FX;L+j+=1Bz znm21&$t~gJB;YqSa5qu-z7SS0WOAn1Yj!(C7@MLS>pRpVql z*-j%0P9c0_!q`~wC~G+_;UVn@G#NQQ>c-<(JY3QZ2R&c8f`WYk1t?b8`0E``M1w<5 zNW2b?osV0oHD<~5OdoaBh`Nw=)^Z74?Dx{{ANlrCm3Hm=BWqgut}n@gV~Q{ zQKb9Onsau-qAsMm-QcqZ@y1kHCv4uL0yQ|q1}9+@_fi1>uZzyBZy}J!5hffFoXw%* zeBT*T+o-+YaSMTbqBm=bFMxi1f%x#2S@>}DC8&LLVTaXg49t>JB`eAVY~oKZSxbAu zlRL(y|03g|g|)RuxaCP+FNFr(26u&%2ASqTjHVyWwKOTsJp~KI)AqYnsPsvSP`E;& zk>yGMSM;z`p1{8DOA(SSOVPF?>bR!ofuR29lvbk=S$!z7R6fuDTIPqLyRD)bjR!A; z5la;)mWCwOiDJ!xr;E;|4{O?QjO#F%W&x2gU$(ymLc60#O|{(M&)g~VPZm;|8dyOT zb+0qejgp~An-x`O&0xp~#%c)n1V--5!KKm{l+UG+?Fti{PI(=Q)lmTJ(xFUqBitOh z)9W!x2J}Ytal7&Q*VMr$#kt0xP4j;?5}S18Ba0oQUzB1p1a^iIgrbCT8y|lQHqOtS zA%ZE1WLh_*01DGH15g8`&nKtMtEgkYgWk{w1|#ea7xB%TZ(O-3>#4+6n5*QNWb_3M z?qHQWYh2R1M3{g*?NhN31)yoamVzUb!{6H($e^9tYBV%LfDfR3+MV?)2jhA7YR*HV z5#lIvoj*|1X7r_NsQRgMy#IWu`r^V7i{nt7ym}i9E21-xk+`b9*Du`Kq2P?(UR6jz z&P#rEbi#d#(IoTt&dAapdHvLws*->EX9!A|dBFwkkIFImogd18Wy0+^w5j60aX?jK zS1coqkd$V!8X+nGvEc!9kL~!oZEp3DVnM2`8RA^%(T0szuPg|T+1>7oe)g^b=sGu% zS%zDX(UGbjAK$t&Ja`hXigy$YLYa4A4LGl4w6*4qU!m%psrdroEVnwtMbw=P8)!Eu za}y^7Etlm6j_KPTrd<6(%{U&vPTN6IjV&= zd+b%G+30>(IEs#8&8>hsm$t2!j6E>~FzKxrTL)FX37K4s5Tk10G!}BY!Y<&Ip{IsW z;h`fPS7G*dXq=5WTrqUU>4&(_C|Ifre+)a({J=&{tu|87hvl?h(IF}dYCt|$YO-jq zs}r9w6opt~A@E%<9Khs!kztX?g+}iHX4qfP!(ZfgD2!8)nFghcT zY!oNQ{}1yyKgGh253sf7T&I15VUz!qHiUPBBY6>>h(kQ|J&a%wNK_&U2>Kvvlx4K+X1zYPsyeX{;XLBm_xHAGeEr;t(ba(|1LyuE!99?JS zF_)YR_;Qjy^g4L-wUx53!F;`(_R2XDy6S5E@n4x2e50of)%F^_7l0LW!VsID;Lp$F z(i7_ZX+QCb9+L-Z9EAb4GH=b>D^&XbC2yeyw>UQ54^C`=2LN$+0O!h5l)S1YS|wn*9KAnFquLQ-S3>2ro2*bk1Up z*+)+cj4I#9TK~{`I6xt;EN==8ZP?bEZY1$VAirLZib1@EF7&K@q)~^KM#d<;q)3YbO=BO8WR*>Z=UbElEGW#SaK(#XVw2h~ z;dPA|c&^h{yrMz?AVmOKiUG$}7Ur-n)$I`r(f@5!wX+wmh33Yx-7MU#C*9K97YOy za%7T{2>fb-^%YqzF8(|v9(ck*cEuL8ANzTw#wHkn44WE}E5$Bc$1m~FVnJ_0!w#EL zI&>z>1?Qm*{d8cbo=5Z{bsYD5`w>Ss*5>XUABI3q--kjZeawc=(+ySowr>w2c+$an zR;n)EBhxJ0XX3V9Mfg510cmU4+CG>;_tOF?R3Z;o;k($whM)LNs<%D*Itj6N~B zZ_-Y7xb1KgHRZ*T_fy%cvZzjmVnKfY?go^eDgWd_G&rGmg@il7T`{`j%)y8BrAl{1*)=-x=pVMXs zQ1#I|p%e1;j5hm;I}t<+rt5;i9#`V>7^3jW1uKr@OdIVga2M(_EK zA7OQ!Q#!tG+CS2kGuDXaUm)&MaKKPuZkijiRf3!VnRcO^Gp z|B;WxKBmRKoFpyhT1s|vX+{g{-&4T>Ajl&a zT-z}Z6U6fRu+<+l=mnig`4qam*w^gl+1eB3=Ar^nd{(sXLBqddS%!sQVfs`{YO_J) ztXCZqvj<=!C!W~#=iZb9jWSxM0{x%g7xOY^6EgZTH32gE28^(}qm|lzy5qtr42#{f zNHI6Pt`vPLCZKnqOxf-aaq!YAG}u72+*(WnqXd zys{oe?Gm;_{M8%!`yDr-07j3sE2B1^D`*PkCR(hSMsmBC)7QYkRVvUu+QVD4osMZL zFf+i1BW94ev=$XKm*2HpdN(Dl)_#-)?+O`IXon73XJ%aMDI}ee#!Jpm3fR)8UkAgo zWqEHuYOBck1ZUD4nyr@J*=}~oeAYS? z?_6UH51*0x?v@xu5YHxSVkLa4lH&*Z*jiJl*qoFD5KHFmsQ~ZmaOTDsKU%-rV&+?a zPE|c7XZv6ZhfrF&dtvf}owTu{{_Pz5|Y>#G7sQN71j? zzl0=KE673mJ+U9BRiAQU>Yh1|e>~R?gqNb>rY#n!rg~&Z$^K=Ck>6DRAxX1xf);!M z=9?GFLS|A>HL%uTy`NBcYAt?fX$P)Rs*R-NJa;0f=rFmFEi_sy5ch@`+Ub=)BDb>= zg}-8YeMy;$^S<`on(-+{3GUw;BTLPfL*|qQft@F>U_mg!NUgz-o^Ci0AIr$fI{56Z zMTK<MY5p3|W=&R1gyNo8olC;$wCK2>1zN40#ncjs(qhci`-y z^>v25#d_bKHK~<@-o`J)HJWS@UrWSOB76Inp_BD3B_upkWoZzVDP=x5Nr=LNm`RM@ z1WP1!5T`;qzcP|{W>w%zozutCp>rgCW~B_th$d{QMef_a(oA*syY@I7(l9xYU`~r- zu%MSd)w0R1Ey$#LGr}83({S2#V~5AR!$?ybj7LrBCx5Nx~g6 zmo|>_jFC>^Rh3RFDO7{{D$!zeD7&oS+fTYfH;f^_!qj)aZW!eVv{`VD2cS@7OD~uLrVCl^v>z5Plqy&JfZ~etT;g^a_ zqJ`ckWC9Es=2St9rzyyAIEBHaP)?|mGvf%DpNW8|u?()HQHZuK`-1V|WeD&Jol zpo*Pe{oEq!N>&SB#R>C$^oPPZ^#^hJCvp&&n<9b6V=pTZj92dV+JSy!q$&XlpuHPe zvaZ=g4YG1hwC|vjZ){$23u4Y*XenwpSMmYD%zT6(gC9vFhUkDQ%I-%b}1u3ZqfuF((tJOs9f%N(IkH>@`05h8iv z(r;uLxsr)D$r^ur$ty%i`s^pveG_=o}Qwx2doh^cWoeOi}&$!|_>=WLquHH^EM#4)kJ4Vt?dSVB_Tr__2JWxOBHTD>&Uxq z`d(^o*2$2ykyx|X3ivON`oFNIk`h?(9ZrJgr&JUHr z#PB2Nz47+P+$FsV+@@r_RiIlMn>%Ym9a~i7vI$<%!FagvRAW_(4CtR;8@VDQOb@Eh z$WC6~eXc%atkG&?#3`Ik4jl4Mo*7fDzzjnRu9dZFc^sAhDJOu9#G)lbjGz@+t@i}8 zk#w?FsKH<%BxI!c7vgHj&{4R}ky(q$2d63x3GRA@4d>|TH-1;`0^?&JqSZShk7XZZ zi|*Zry_m+hX02^7ZqYB1CcXCty*LSPqMARl=Mi@(RPzJjPicm828KJ#i^VwJm*f#z zwBpVI{qTpo+--zwv9$g&aT+Q6Dc*GS4zWXV@25#&Lei9|a-Q-!Cwcj5K=-xvq6M_4 z{xaJ5=O+F^U(Cm!0u(IB;2gM+E$fCi z*Y-ZdeFA)iJ}RMb3}Tr1~q1dHaybb5IRmZUtGM)@q?D(QuqVVdKQ4dXyYVmPx?s|PO zXj_B4nZL+WkV)xnAXF?*NT)y>+peiNrl;dR9iwIN=3bRj#~o~zF?QP1gar*fl3Tyn zfYS%|{i^o|js)MqMwYjamSFv2Mj9md_z<^AowBTG_eojR%nYc$6&$VaftlY1>9Grj z)6lfCe{tod(gmQL*)Cs|+p_7hWVq6GE%3iOd(5$bf{wX-_l?oE3%rT`zd&|FhAzd| zeRp&1=^2vZJ$y&_UT=}Yv!+Wr3uKJ_Sb6(Mvp91q$ZpL5fQzgf*;PIQdlf%)1C)S_ zJW%TenuY*%L9e2KnsFU5xOk)2AT;02WO7VJ%Tj8H7E(7`%~Q~Y75e!kOUN}ahagS~ zF4`coKJZIU%xnE;#w$puP&B@(fjfz=`=-0lKOBdxI>f?w%C@!^7#C`j2*1&5c7bsV zsH-fhs8Wl$*nQFoRfuqXUxp@q3$NGk`G8ks;34`n8z*e2q1CGeWm_X=38a+dum{j5 z^5__UZ$+l12XzO{)gIHO%R&*9B^+W(3?EHXPL&ja`@Zh!N}q!_OnbF7N^@+C3U82- zxL{NZ?#O>$z6B;rHl?<`H@YEPXWGn!oqr`bouqZrfeh$0JXFjKDjZc#l?g6Et8(G( z<@4q?l=O-rV1U8`VH6umadje#z58n;IQ-2r)SZyVRrM=LGX(=GNwR72KVYaOCk_#@ zA!&y7yk$5$L(rof>DT$VtAv>@w6=BNPlL#76dJh>CWWL;hI0ONH9*c@{a0~N9}M6^ zjjocFc}mQ7f?>@6j(b-p|3E3j>Ao@=c`ATJXVJ9ygdJ66AEZwBTGkhD#8`*NbVO^j zP{(SZSpVD&=EUpYzd~|$oioj4%%T9+>@p+~KP$r3jcc7Z;i)gfN&|WRbGXuW)NWU< zn3XZw45>1E*YQKJgRhK7ce7xG|FA`5T`4+Kro>g1)t&kwX?{eyV6On1<(NkEJ`_A{ zxA>@a=@m0;-=z0cS)ybJ`fE@@nBot;%(&$5b4k*JT=B*t#m391q5?U)r`SieIqSX+ zkSWgJ&G=<~L3^fV5Gs+}A)8L%9J^}z6m&4tbrE@nqBIt%iu|g*gklgPtomnE>kn5t zraV$frOQfuu)I@=a(ePxdaFgfebyEfsMW52d8~_E3U1q)BD$Phmqi7N;aeY<8x9S9 z*71w#Wc%MQ8XvAqLzo4KQwh@7{{N!Vi*kuEE|70_F?kD}##6|#jK*m!5#nCZ*GG4W zEGORu{Blocaxyc?`U3(VI1MGCu*J}8f;t@j>oc+977$1COu2t`9%1-79^`NGIWCi? z0c+x^DPZ8)IOIbO;2mmXCv1Iir?qcjb9(djqBt1Vmd-2js%-5I^YPq7ysF+uA0xkJi7XSTa^!Y z#n$ta70$jbkEYp~CNJB6=XUPv2t{&B4cSN8<0!CEEk&-*B1}*tw6TwZANVDAc(_Du z%X{Mz;HaKGc&IgSchPgkr_MLYCMUBYD2*j^n1TxV{7-g++bvlfC(J<3@ zk$*vj0}VG9Iz73r849o-LDtbm`CKrHT&AbRebuY#wvNdEOmO|CkF$nChMzp65pW@+ zxO!5M^KQ4OKyQ*9`I5NLH0Uz~c3|awBwFU2(N+*+*D)ZU5IlQ`IolIDjwpmjiQO>j(IRYY}?>?8oF5sokCtD3f8z-8POvwYc?X0I2g+K04 zO7lM%0H-_B5yj+8lZUC6?i|Ul@Wb{WZ#NvKGbOxxAk=HEQnNFw+e}c3_)j<}plkjy z&)frHOjB#Ws!nz67!!G@gt{7x$(EzY?$4r-kj!owhehTYSfe!XPB2bL|GXai56I_= zi_@EOns#c#(|UHOIxD+?l5rB9Huwd@XJ0IRF&mK=QvPwsmL*4UQO)Ih4$XQ=nj31r zVQ)t(jsf^2izjW9PuE_-xJfWuGV*`!-E0EY-s)VKkn*Er3}`B2?MJR)?ob3iDY~4j zY^T~!iz==Oc^5!lEr+WV!ms^cRg^7mVbC^r(ao3Ep&-g-p&%O7UrxS*Cd0Lo31pSW zr;+P6$PY|w_A^OF_FhpzO;LJ}FZv%gCS|C5S;U&9^|5-)+Ei~UwP~yDObvV91COPA zFxyrkM?(dT0S7$xCbR68qVaN`$+cKRux>M>a@=3h`vwsQFkN>NVJ=NZoQ?nBT%U?V zm@q@%Ecl=XTg&r+R*h9If6~pEDh`U&~IKSJ0C^A!^C>$nHaF-wj zg6?d26{(8hHO4G(z&qfpn8^nLbb z$SwfRAh1A&hwE7pUuFgb<-8Bu5aocfX=H-po@0jcdP7wXuvh@pF_(|kqDJn3~xpP4C zlG^XFWNzaIpSL{LTJSHD2{ppNq!Oq;VK~K5OpXpRqFuBIbtr1o2sof)PN4z1@s0J`Y{I`{E6_Y>eKa;zJLKzZAS9~be^ zh2mr;;ijLV&=CJFqCW*VZc{R%rm8G-=&|wgmH-H<>se77?-XkppX-9FG5*Mir$7V) z-KZNX${?8nD#OsGc*z%3IQZ{(fH_aM(wuDwmR1F^9S(fzE&UvySsYi<(Ws7c*lwiH zQB!`FF|g#jqavGwoIU8}RMKFW{1!#z_O|4weR8xPYmGDSWL4Ya?I|Eb5Qmb6@Vl%k z>>G(-bi?4~>2s{>tO76rh8j^<+p?eN^c3lt?VBBWbVZ>ZBzEdMFgJwGV0s9Utmz!0 zSL23}onz0S`qppKo(bjzxz=wQ93clo#+E0=C;^VSWE6RCF?QzeGG~5gYyi47H_MJm; zUpFj$Qf&6K*Gq1w&{Y!&1qV^P!Kgr!`~zUOIaL(YrYAE|W;-Q`q#7l1>{ z3(ZJs=|UDBV?qPp`fISz9Z>s~a zPd;TBsxiqga81&@*@=nP0hPna6bzGE|OaG2C_hO7n3%>VtPP_x?xK5#U$%3{M}R`z)t& z+6eF~8}&~;Cka}F@8}>~YI=^piSF+Qgu)5MNOh||nUbJ3f zrzaZ}@h2~2XehaUGHEgS?NQ3h_*8Saw+!$WvpH?K(+yN?iyAC`rLfL4uk4^_7@(jk zvH_ZtGBx|;0K^WV6`)136Xf*i3HoW|;Fdwt?+R7g&%&0K?GP_W{izdV{YVHjW~Sw; zH^LyVeg*&6xpH6BjQ&*hu(CjW2;>$GtgHa)|JZ&x;|9!n|2*06ru7ShqOQSd)X1Hc zKLis7K=Q%GPqpPffdP<#778BPuGE-+!E}s2ddtsqr0m`2?T!bdrs;3rQ#yMmVe1y> z*Zf8nYpS0qVwFTLO%}GJKx_V#jZW)Q!xI>-?rDYHIOQPbb-hL1^)o);5LlY!waWPL zzn+~*{+aeJAakZ=cuQa$=zsKWqQ(DuhT{B=f#jV&Ls03X;b~>^amI&o7#Sg<6IPKA z&G_f_nvGyAL)rs|YdjIV{wo0nK*$>L;p%5EvYtVc$=W0$dN|-J(DF^K`+&?2>HoZ6 zt%8g<(21bN%G9YFSI?z@9WO%8r1urrszg;jY{r(~U-YlIG(VQz{#lHh^RfEKeGANg zHtM~AqQ`Pgp`$qaZ!H3p1ykv_#v`JTMM8xpXwLU7Efwv3m!0L^ZL!k$+TcSp`7OKxo=G$W2SB}AlES{f6YV+XD zcksmtC6p~$9PZM;cbK5Q8T?9r57gv%l)6aa?ROT;0Cx6+{nopP_LcXmk5Oi`e*s)JSQNQK!`QSd>VQTu&TU9}HHPG`bc z**Ql2ay%&!WYZ*@g}ilv)9q4d-@mnTFi}tNuhv(Bxs3iFfp%VZyc$!=xxY%N+C?M z@YfRLrF>MTY!9WzL0;r32upqw=fAMx>^(pZ(&*~zs`UA^_UbF}wF1+=tyaZ%dr$5q zwwkUrg!46U77l&HXp*F z4?S&Xl_wp)Pjd2WszHmbk=tN=|L#_X8jGlK!KQjzpw!(u1{3kRM87{^Q}^EE<$iZd z`-r<+cCDM zy~O5QE%ts*k7+p@2FRtJ$vdQ!O#9&c2MRH#p9G znyEa?ak{(>I78!Kf%J+1Ai4C>VL|1{<^?wEzVD~iz$%^?h5l$mEPJ^FJKKbDddN_o zuNjh$=3{BsacCDW8SLUYa{f%0{B(?`wUuy!y)?_qqAsPcg}f$Ludwvmb?GiVD zDlRMxa#YG^zf++fe4ul^R{4GjQfT@OlZzt=MxVn-{I72)jx4Jz*kS`jw}H+a*TQR< zC;bhWB=f^;Ow`t+UQH%Zr$r917di0qfzcvh$wPFm#njI0t<-lA+JrkXJurtvYdI8Q zz-PdhLFKd3f1g-11Cxbr027g72$@Wre)THsV<8~E9E}Nlqx6B^_TRk2l@UWw5Z4E@ zq-TgKel#YptOmDxxMcAi6IIy%Cd2{1$BLG^JE!0)wp6$Tu+7jMbr#3 zCR}flS=9fsT|8>^-V+^L)+wWGHxOnEm#O26}M1ulxRlIlNSl3 zCUy3*_`M7UTMnNAXYOb}@L*-mP_8OLE)Kpm5?G0g6+~D}r#=lf&U?inW6~RQtYUE` zBCujK!b3PV>|Eqf^}J=`+|Mz~k(J|ld2>BSXrI$h^V!+&DVRjSu;e8?3027H>gyOX zq^6k86zuzO2nc34+HiUx@FzkOnD}bh8Q6VJc$2Lc?7*_hBZcgCrl{+J*x~Ib79H)J zvX*InhUsqwUx|Hb;?#AyJ-ITfUnDyDt*=r_=hNuNs^?%l4R)o}*>8iznD?UN$<4yX=*kRMUTg+ats{#w%&-zK^*`I{GoEiZSY0~W2?b~7uPWu1)wGWp@_(-7 z$P^mY&k3IVzC~d~D}9ECrdh%Vgs~$%#XcrRLo>%OC>ztGp8ZIK|p;dWEO3L z$FGuvC!{Kfv1EoWLZQlX{Om7=|Ic>|{q|2;JsceszdFNHMlhgJK*viQw=S^Uk=2}> zxE&lUGHOK2zOPxk5VRW%QzSWh*REZ6iO!)Fih_Zd3fr9bStF@ZQ~z14Uk@oB$5R8^ z{%btD9r+Y5kq*bxMi|(^AB*9zl;d3^ja3Mk0XysoV22$%yT^7i%M2qYA8IbZ+bd#= z7nVcmUFTw3F+I(OY+-zMs*0!W?j3<$#D!bhL+A1Zjq>P|NV_4q((l-#oW6>V6W~M) zRP{JKbooOTUPWFkQ&{e;hgr+lCA;GDiodx!oTp6`4?QE?>^1zeS1MK#j+1Jzr)ELq zVRZif2_28<(_l>PFj?)ju9~UikJ%KY(Qcv~9p~9ad&R0($xZeTJumze37+Vc+PoTU z323S=0LaZKqBq$NVQ5l*btIIP`zEq}HTy(~d`a`Ce5i@J`&hi8v; z5pU(|{y-9sx6%C7gu*6chf*x~gB##gqPHPHJd@7qem0u+1q{YvHCSu`Oq%r|bqQAT zrloY{ebkIgDvS%W9bXuV>QZQ^J?;f>MyRlysrAkv!H-kDeyTXL%cr0#cP#t-L|Ea` zwE9-gM$_bjjZxch^2DV@Cz_208e(JAI_dA;GK>(qxSuwHr3Z{tXXh|Qj$4>}SdU%> zq3OWvWIC|L95?K~F64mMDl1=UK=2xDPo*bsMbGIrD{el!$HV9f8N-eTb>V0wQ+*u; zUb|azhF;w>YUG=Mqmf=UBQC51c}ZB&S1q`r)b`efbh>0t6!P!OWn>m;8ScU+t;4V} zu6jngQnrhqB;ZhM?6a=waLpsb)qQ3RTwAVorW9i_!z>oYLzCaO3NogC3!yZ0uk+Ib znh50`;sr@ffQazQvOKZbHJqO7_dY6vBXzM$8KZ>2-FQ4I!cT{CLjV_-v! zRQpnmvxT3k3kH#S-bRg@Qvy}k`wG!Kv@2cB??K9Nu+|scM{p4+$XF7(=>BS&VV^Mb ztoZ;~e3VPCTan#bj$#greV1@zY!kGOn+zuF)W8dPFvX8P23lN3Mc@q-jEuA8h;uN3 zGg}=QJgws>PnHenaMUm4DLP5t84+X|FxO)m8wph=Q0Z2VK$e^m6jY#N+*yIBu4CcN zA9DBP9rnnNlVC4xrRRHE_K8)KFuMaEwO8`bju;?Vx{#6RNGCRFmu|z}KZr=uBe`UR zU&)P8=Jb^BN0uB@RG?#mbH36{Cf1%&<9Jt&Z8zgi2e{Bm;g?Yk4UHFH*RFFM*P1E; zIBpdHm`4~|szv+qSwo4N0r>w0>sCv?j-{&`zlBaiT{0&&|P-_M*v8cke`0j?`dmx26p zRNldVP{SzH+%g#^nZHfH@DAQZ4f~o@-c_)G=`{EvU9(v03!>-=;woxbnpO~o^y2OB zPis5Zfyby4aK*uPtCpzKz}LuEQCbREE$z2Y5n3aM`1Qzb=LV58Wim+&R#~)KjRVlqh3?{yxY9<;#5-BIe&;614|rv zv28f>G)1kG`0v~MFFY1jh;xX4Ylo4xIL-KV;n;AI2&L7oAtY-v?`zaO7Q#Mu%s;q8 z3D&6>&%uoxJr&zU&W}mbEtNW0y=?#;vw0 zgjMGSb$*owU&vd$ZByR5e0!F3iXe7r4=epaB0y0XKdOEBc%1<44^pVfcMGepE01dp z443bMV2qK<9}>odKl(<>~D8PSk#mQ51KWr+<&BV1U@tVgHk9gPj}dKzCv(i}YbLx#b7{Ve856TE%&gya=K%+!J`Ev+smi!e%JYsh-w;6^W)PhXH8OxqsE!M8?}#l^)~W+jfS@J&PUS#)Ae z8&+jBh~6IlD;(M;!P>q+;*e3)OTqQS8*9oGt@I;VJ&S$4G^+mbwwFFzw4MAwn+~v7j)jA{M59_Sd z<>+M`v8N|0o0nvL*mye!ggYM#gTru4ddW^$xE)naco~=xm-&5-crRM+I*>zadhD?c zy%vg+NYXNzduV6yI)WHxIR&A$ljq#xa8FP5ArXZhBJ59X<{6u@ za}IQ4CU3iA)HU1T?k-#gZs`iA+Gu%LXkDQzd~}X*3z*6^vZ^?HGP9V)K(Rs3dkJ3B zVqp!Eo}=SWpeSr|d0TOTu!<_dN{7fLssKMtRK5=a*ifk+V$*g(!1XL{f~-@T#_-4e zDZ=?f93iO67b0ZC*bhzm^tpLG;lFK4*W?MWH(2r*esOG@$5GSiL7H66z5Q`Ld||rLKCH=sa)>~4oJRHn^emJYuY$oRKZwo8 z?XM#hlgMA^fKb-WHoq%;;o#{R6-G%JkXdm?TFi1YDH-Xsm2?=B#%KP#jG5=rlP%<( z7~>SVXmlNPUZd>OgCX3PwATx6^CIZ^fS}fJDQ~BV-e6*OKxw@8F{tw81?*ajhyME# z#rp;cuh62ZIRLFkCeoQIxv6f zeY|Uz_>Tq9v$U~z{m~T2mSLg<)nqNw#5fjB?N|Wm4K=Ysp^g*( zPjg8UkDx-KD~fH_E-~cx>bGd&JFL#K(dL_UxR=swncQ;WOE`{#RBw=->8+Q&8|_ zV$Y}l3~F~#;Weh&Wn)fQ&1_?$9Zq#GmujseaOKa?`-3|;ZwpBup&}VNF|PLq!M!xU zBRomR`#MSlY$D0KZ>?dJM@V%np7&AQN7Eb>6V2=5*HB@cJ})?ZX`@;^Z3IQ*+S9Im zg#e)T+p6Nw*Q~<-s9Z z_up`#OabTD=E)TxcqHQYYVQ)lLA1R`yh3I2MJT~k(oKdPi7aBo+9>*oiK=(`mZdRVy!v?ZYFpcXc}?SA#0<3?s`hQ9 zMV4etyW^<4AH8}1^mCCmd*A&a+LL^I>SBesfFta1x381-Qwa3T5=^eZw# z=x}gHu)9)mtTe`+vVjiJ2h>di+1W%Bezt^`+t5D?Zrxh}pz2hLPsr=2)%iM{XvC5+ymv>kbF4ssPc8r=XV^z<(&ai{w7rUN z$l6_h0OkpDt>6!i;wraw*y{e^8!3J12kIF-cChk{46|;?{q-%aoz9Cy+fj%^fN+?`13mj(tFWv_R)@#{4!*v4yT*{c*;C!BPDIl zgK@?&e~Jl+ON3;Ai7K+>tRe=MDaXB5#kZ#Ye|J&4%!~y7mN8JM#m;N3mp^MIp11Bt z+Wd5iK;w?Hqa;0Ni0E%3&V{7A$jykvB^>wdFB9c`TKuN4qxE!j?_EwYVXD1D;bi8q z*`D!JK8nIclc>5duGt~#)S;WV3z0NaZ4l*^t3zReOV!GnKLt$DuRV>^c~okjE>m;7 zD?4Doro0Uh`ZPx36Q$!l0yL6|Mt@KNT|Y|%{J6NgG#$#hFS}iJE+OiWXq@v){LRdc zl$44v+?U#9ttx_-GL9xusQzs5dRrk8T)vs3 zI^(_%H*fvp0N9s9U_VZiSMx*aX;c);UxncDbq0O>b%aU&zd5JWhg0EN=bzv&DfAw% zLySU6e?yD&MKayO3jlN=QwDBcnqOGW-749czvfVJ8p|hn;DBna@^n<_8;N&k|`d6PPDW?SByu`ngM=`Ofv+3_Wry?xQ zCqvcL0TEohka1M0Ah^CZUg%be|3bR6Zg_pPYL7vQkYZEM!LWsyWhsPOtw*m#s1>x? z+|0)!gw=cbmfS1w8{v}yDu`}fK` ziI$kS@e2e}vhN`51KR*RUicrkFD*aLo|>*qCV${5m1mkNc^xii_znStei8JImy94_ zx4nRZim2#=aa{ZcI=DiVyKFe=^d^d1M$+qGSkR!z<*M?~fA}u+e6!#fYX?&eHxexj z#Zd7%^AaG9h_J)%hOqp@_Cg28-}2aEcchZ-#5wN5j=!HO=YQafSq$-$S}$qG>h_Iz zc|R3-gpl7N^`J~51cLv)a!R5rG64X8`P6hYR>egwp5jaUTlQ|{ELRWEm_U}uJVA>W z9EQiUAdo#Ub|p2!rIkwV+BDn*Qg%PQui_BHM0;H4CRWdeS;t%{)ddt44fwxZ1ZY&z zPv50Ew+hO#u`5def0V|FKA-}qFmBlqd)VA;yi5~ zof)3%{{>;_EPe(ZS|Rrft_x{Pq^hhrIv8TQVmY$KEQ+7AhCm!}Wb}D)gO{Ou)ymvH zpSl6aeI-l%dWKToB5}F|zL?*6P1WKKj{faRBBRULPP|7*6?D^37XB#Y`z0}K-qM*c zAWpi2YMU<%MAuAKj0$>q?#??0`(EDSw7s9W&VGTw3fP!JNSy}XKzttK9t>lzepz+F z7ZX-X6nch0lOz92H{9sciN9;l`C(yz)yOp z|EBF4&8$OyC8pA64-u6_}Gf%LtSVW~Ep92(%QEEuntb_>kMg`Ct0)54x|K=8R z5wZQG?0qhav}mbb&2QrWRLaqU|4bFJ;?IOlfq0$bMAHx|uc*1Is%yX|_T5I8J$yUU zPpmUJ)Il8Ap!3fDYfr+!RIQ4UatCpk?VJxep-@FPpvOwb3gxNpdgVcYHT&#K81?jx z|2-0rD%#@E9=?FngW(D)1>Z$~yK1V$+;{gyC$) zrLd<_U50#5Ujpxs;V~}Ni-#e59@^@QD;7hwkGl2k2!87V8+;YCA9(5tc01CueD8XK z3=Z3ZSCnY2p1mr78vNG|VBzom5`6twAogH`35Dw72mnJ=+BU@kYuTT+wug#r&ia=h zAXd?F&_Ra#fQv7!@BvmMj|Gq`hPF+}t=IP~mLlU?m&%y2ygGRHntz58XR1OQr(f6< znF}B1{7WzlR8+V!zNQ5oKcbnTFcO?$PWDv;gB_>| zzE;&AYX~Tu+qvR2;ok3)jsF0%C39DAn?sFLFYe%r4t0i@ zu5HtmOZ#8b4U?emMiLZ<34)4Kv{WP5e)Q{r_rge~ycM;shna zGytO;_-4_OKh;d^4HY@m0mIF^+g8^(Z#K0vCL@EMC#6=pNNGfm_Z6ydsMNyRoxkf zh`?0y_75_P4Pf%g#0zxOD!@#`0|3FY1b3V3RgDDGttg(7;F)%d~(Ngy^wP zpmv9`J@7xVRhg*>E16jMrum{#qC4CgLf$Qkb3ym!fWT~ozL+`Mo!B_unT$WA;=hlT z2m|)g-c8}XOr8|FcFQNxd<{{=X|qe@XPJpuXZr|+pt8{~`yunO?|-t!{_Y2W2bB;@ zAy>6TLN=_Ws{R8|Nl={k1u1hqokL|gt7G-U<|=moxG3j4R~};#;(>qagTxRZYi&>- z5JTzSdwP_A>&5J@B%{9kv&`R4U*ofGL}jkfPns{LE?@OMnXxw!*R*YT_5ZM|Nc$w= zqcC+ePgaDXa!=vayq-*u_aUbDTGmlgjC>Cwkv9RuA z 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Œ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

VmF6uuWoRJU1=mbufy_I6G$P;Mflou>FsmPs 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 z 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

|dOP}fXQBE0-HJ+cB1*Qi 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

<(%CR!POD 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

c~z%0Lh#-7vK#ftF@+B~wj=cmaOF2KD=O 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

A+DVZ+DNz@2P(wTkU6iM7O1))!s zlaTN#aXCeGC>D2&=j0+RuT`}Q5b@b?_Zh}Ew-a&^S9Xh2Aar$-uK0XdtYl`y&6qvo zlbLj@Q7W1KnyS`GlI*69*P23-tk0qZD(^$`H3@>XJ{Uv_fj>KT_8f>6d{R6zF!?mi#;#iY^6!!JHinYW9i3KvCeT6xkCuTT^Nn5nTlD#Ya9kSR^Fun zTAFCjxy(NB{6!&NQY|Lzk5Z;9ff)Cmeddl+q8_=h4HK5sR}t%tcI+#{G|78r6V2sk z&b0)~73j}K%tFDgDt}5{Z%_84bC+$1Mo!=Fh32?T`EFU6kM9IM$cNOVa3U$6hD3Tb zZjnA#d0Eze?d?yAVEyiPTbj;~GFJ2I6H%uhM4KCNz}yj{>~uRwGqn8Rd<6z&n;qM8 z#|B{Vz<6emrf0UyuSqFcQ6iKRzWyYzaGuTJ6*e?K=3tfGs_YqL=*(Fm{NqsI!jXyy zXKHQz8_&bwpM$1E9vF1nTVy;h6D|mjW3^{Ob(5^a;t+}3*CjPoahYE1r|^}@6z5_$QLnU?C)`60nxwDTAt-M^@pM0jJZT?&J|qFtT-KF2dl*T@dGksAUfpEEghOD98* zxa19mdRlFrO_;3JF)*CXtvGE|jCpD$cBgEVr;-1v!4kdw<3`xn=Ej^Fl^=S1#@GC= zktorl-DR7RJL>_c%>OqCd+b%#`Q}t5hxGWzOH=Vs7oDOU6h=kn8q>geGt-MD$NqN? zc{Nc3mU+AnK4lxcaas3a>nwiai-m;S#_W_9Vs7*y1sbf6bDVB+@{BZXMKmo|?!lI6zfnhZvPT3a0552&0|5 z<1cY05feBO-c{CVTj=9ad0)lb+uDt`8tUT-Qds;wbyt6{F3|sN>vE*{NM}dVM^oKs zpo0E&Bl~AZDNMHOCvTHe%d#WEv`jAEI<@Wz-_7B96VuBSWzt9T`&Eki5ZYj#%(O`e zJ=cqMpV~+;O@w<;zPueo)1>r_%k_8bN=3twd7ywIEiF;>(+-8dtCukN=luYOl>efdXKZm(cKQHcI%xFw$byt z#F)R;b>_azxml|dG&J0~D@t~uo@_9=Jbz&}ddpSKkodBE%Bb9Fc8In|;q$)lH|vYK ztp(DBJIAjgy#}}lX@MC+^|{zC^&9&~I~4jDqbPl?s5L!HF%WC@>V%P@`1R1iZst%C zCF&!$I|?gzXLIfko$$?zab`bDMWL-<+u3_NG!;S_#}irF(Tm{4=Z3g&1J=z$fny%h zCmUvs5avh$jFHoPL`hGM_Wqm0h@Y(BdTkftZ=(d#S?3fSPLmU7+9b{IVqRkUm5$VO zlC*Sq?MM}!mMVgU?N()#nb^@QC2@ys1=Ng<;=fuY2ch?}4!GB^(M~yHARtB)6}unv z9LT7tzkbmqd|Vrevr9KF$*Fh^?&bX$%37FfJeTL1!R$e;`I0&DwIezy)n&wXwRf0^ zpef={OX7^#ZL9hqBM*Wdfp0h7m3bPsK8NsDXyF|w14C_pndhCtQ4d!)Z4;g`+amegCL4`P%K0jfDsO7O>a(HMCBpw;2T!D2ILqwO!J8`*m&12K zG=i&G7b2}xWT=kBth#?0ULrVT^twlFxuyTMaKPPrb~%vJ=pgSfBY5$NohZA|`6?;T zCvw8~d5*>En>h8*CuwH(fYXQ7?@^`B%8uOMlU_cU=*Fb%3>>RpK7?%E`qw^D^qhcP z#|o1(gnQwwn@r-p>KC#vj~VMLXP!UlIAMy$g*BD%^B^A|u@liaa2v>(Y`*31v-pXW zDM_~5!gc(KN7%Qtiin+ufo0n?6R0(0|Km^i3vXQPU4}*4h~i^$$KImBgFP8-#nD~} zm*!^%1IsSVO0)Vgvho0qxie0Zk5x0H-C-H0p-Eb<<;|g<%JO5e7vilxlTl{dB^jt5 z-~H#J>mhhNr>F~U&MvEYd`x1w8MuUY9Xg*<3h1S(a7y|tY>`%dVPrWnvqsn7Y5#!W zD&Vp69DiwD-=zx1`;t!duGi|7(G|=a*R>gnN8I`3@Sg({9*!*MkE;(WpVz@|`4*d& z=V1fp_q$!DQAWL{nLT_@iZ7#aPmTE3s}4f-XQb}f1{d6B(Ppiu#9YJSO(xoO+YjoG zQHJk7awjrPY)ZuM2{ODjORg`>LK5Oz;`@TtEaBHG5aj6v{CeWO$1d>>Qw2-6is_?x zWE@Obij`KSQF7-@E96U0^~B}94zqw9IP=QP9{w(LEE~IlZ-_=L2RZD>j^dBFezTIt zjVaYow8>5JR&};im5$~0PsP`~2JvzU@uQ|0t+S#VECH2v0ca1o0j7WGFL5zJY^R73 zH?s74H(>m%xI3SXr&6a6p6x2BeDO~f&3uWYks)>zvwQ4IGbtpX>B-J>!*ebIiQhl- zG>O{(=iVLzr>YiBpNn5n{83lD6a`9z+sLGv1gb5FR>CUzD zgXB~3e7iva#QIipvFZDqwRL!RBDa?I&t!&a`kiP3h;&^O*m9Utn+6O%}{HeFgUwd5c2lYTJ|H`715?VPJsA0CJWe(P%uuU=92BM9wN z8}KJA@{F=WbKE1Bc!o zLF&nyK5pc4bi>}IN1pq;yy(MChpEiYsb0#vrbNHe=9y$CLYXyA=jc;prMUMQf49pY z)7@WX`91y|M_`S4`kS1Upbq{^sMbBq@U1uFr+le>oLXdQ%9GQ~3vO06wtD6Pld1!M zlm4<3*1L79HV0QUdz+Kr@i8D;b_Yco_Fv|MYuvs{j^CM>+2h9E6NK-kHp~!Q3+=|1 z52feGzFbW5?zPj=Oy)%RuRWCUu^gM#!8Z-?w}2~rOekw=gpz_^ZrpI9rAac=|<**85xGD#}2oD zT#L6^0&O;hSbet*+ZJBoGx_kj@i{u(GgW&R?oo5@r_63?RPVTghe?UIM)v*A$3uwI zd$GfBV#uxHI$_PaX4zcb9NZ&ytzPaUd`fj{a>DD9yKk5t+n*RCJxFpFc2#sfG`u6mT>TivXV9jwaw%v4m8=Y@9A&b<#Zdu+(; zn#Z=m)Qju7y7Rr;Rp}7lBR{_WoGvfFLE?9K=5r2kpNbQy)3@K~!E`4lyk`hWlX^KH zb%|7pi=Gfnpf;?HP}(7PQd@qUW(wG(%0P!93W;@H8{EmY$#idy^(NXt8k9C-CQ2Lh z2iMl2e+cKt_v(L$_0F=g%Ahme{Ciz}IF*frOqr%^yEjf`wOIw0*B)xnJKl>;Kl+|Y z{wKa&rFdwaS0U@pBLC`Ra@JCW&H4D;6poP}*_=6L_fOczBzGOzw)8|sJ4)~wia1NR zTWWK{xWb`l`>aDlI@pQ!=b5DIe3M7~Y{l*tmUnz;l6!RsE^X%!uAFoC$ZOKq-wz4m ziO(;xwKD8=G`-pWtVQzc2^7Y#Hd&Mf$PpNO6<|FF zC;rwB__i(87)p0cZcP)r?um;R*PM5*Lz3m&Gy~Rh#^%sRH*zS$I&^kQfB5|J_cn?& z)mg(hb4xP5f|VP*amM7ZpuFh-e6v4+wM%^=W@F~jtm6prOO%W@zbQmJ()}QZG6E`D z{v)utlWXPyBa%j%xni@U{W@z;*^;((U83h86-C$d)LgmCca5Mr522TC*=U~u)z}4R z<*P#cUp;M<_>1*BVNx#6r0S7N-*t)^Q&02b#wDMo`zen`Rxd)QRYff8II0ADccXZJ zh}YEH@S-~TJza|av||KnxMKQEn7R#$*8~uCMjM`$TE6N#UzO|SqIZr&N7ROIVvL@? zR(zJ;4*3vrbpqfrjqfFQ|8jFoX`*WG59<9H5lx~7etJjqM ziFsMW=}lIf@I!#M)2O#cuBp@XxABay{74bWGf(jpx50A`}xz5KJ}DN_IG0BU45eV4=HhMDe;0Q zRqGmgg5kmsZIpIS%_Au54Xqr^HSriq-`D1Sw4KyhATn;x6UP}#{k5QS{TVw?Z0 z-8Pr`zTc!V)Nb!ISM}X}u1KJ%!SWQbddS^Nqc

5H{O3mrxbq8S$j8E4X3j7`|F@**XFT+ z4|5Jz;JnUM$$GDQl-V;EFG)sonW1CYUd_m98)&=F#QgD#-EGdV4WW9prSB+4fBSoz zk6LGEmys$kv{%;-+m)<;Av=d#Fmo+_Kx+OmHoZk7Uhds3&|ZwkpQMMKPw9v#W!s?` zZw>lsTfJW-fXKTUaYB25>Yx!cgs;=vq^(Tr#y7V6dWy3Yh*n#pe%tZn= zfp5IUWsRFnec5jQ!KZX52MdlDU>`DG+5b~{MpWY$xN4QFQiY1FXn>)slPHKmsMJmxq^ zSH2xmZYvCJ5=XkRH{#Y_GtnR6`@$95WL6zzRzOoIqz6Kj;cvsiNxwM%j-x#G${b`ufev;LDBxrCtfDobw*B^F>Vn`6NmgUF91ZAKz`GkkdNgj~+c~o|3Ug zxLA%Z-*$bIKvjegj!yQsZx|y=n->x}UE)2*qkp1Nhn#y#$HsX|W#Jc${U9jV`Pols zj)#3{^bj>jhtO>{5Y(Szv+E6WsSuJ=K>!)+Y~JnU$Fwn?SX(&{wG8BPif`5Kh)E`j#D>(SAZD7AsaXo0u~orLCy&2EnX)-N@jhS%A8fUtmLmqsRAiMO*xeeL%0{E@xbson-@@%!$I3e}CY6Z+Qiw{U8`ZC{O0&X$CO3=qXd1ap%)gh<~fAO4-4JO8`WUs3Qp zr!=lOAg@_gDXgCQ30u4;+_QFNPgl)$i=O=vtuELncr7V%F}EC4YTY;gG?&P{ig(vy zH{Mn>XM3_e1HWG_3qiN^r;*lt^_jp1C1GVB^)7;~>b&utf*a}#Q-Uth8@uMf6j8cF zzBH6w)Qa82YzpchsIg$2#+J8ExKzRns4t!OjYWn8)NM<-8*bI?a9F*>t4D3G>^2-j z2|kiFbbAMJZQ8VD7pK$31<1B**nSGMp9Fm*+e4k<@>po2jCm$9=ZHUd4HH`t;IC_T z32WgKf8c}V&~@LT;1kccoQtwEGfW6LJ3$EvO4{{lvUFfH*~pd`8@42Ud{c))^4vK! zimQ};P8m`tJyX#g=;lF`*2(KF=GoA!PYQ9Qw0EiC4Vez$Oiur!`+i}4$6`v8b2Tg8 zyQw>nv+-ODQR#AA!b@0=w8v)@A;e$nN%08n`m~giyn$Q5CkbNG_BeAbDVEEJiCkAi zMvDmn%P7zfbD-{&oteIxB+&gPZpo(+Zp5B3bbxAP2{I3JK#6k1_ox&wHOP!+Fs(be z$LXIpBHLprZRtF<^}pYK*5@j$Tl=ZWc;M7OZ@Sq|_RD!~bwTBw!x>eGYYt_Y7(FAW zH4aNVV!uf5EtR*}uQI-{o;XR4L_t2$^g)8_IJ`*~5Cd`CZV#CN%%YF%cfqGP6Zajx z?}DSA$^ymjS>t>CqjT3ax>mi~vwq+blqd3?8C~$NLu63QUHz?Fq+O(m`Jx9uM4?_~ z8I>vqPakZrd}JUK@U40RgO$S#(ByjI2JILJ$ybWm(ta*fIj~6r{@2Lfnr0Z1a zy7%y8tkz4G;y@ego=?WdED0M*`EAW?sR2ageha26%`;3X`erL6FV`sMD34B%n#1_5 zNL$79O}^?Td|!`qop;JFL$VhUaMCUaR2M4ZEU#+v^N*N?R0QJ#6a{#S-?C^n-v>xd zn!&>AtfF`57?Js(kpxS@hm0z_C~$&Sf$wE6M&w7!BFSy~Tx7AX$JdfT$Z&J9>XkO( zdEq-22n#Kh`RKt@i;y&yie2Ae5)PG&i48@(29c}3M!vak`RV@n+2Cs*BC*N1+wh!v znojzehqRLOJ%zNMdDK2@G?&BiqLNa*wXT$zQ9NK{dHHNqJR8=K!^30P8?$Ci_=FO& z$aJBp&!Dkh-8p9+2UseeDz9T&OKU6G?rS=&&GhH(}Y;RO=1F7>c=eyu2g0$tT6etvp)e>8!fM7HMV1 zw$H&Ky|w)V{5v(zVih+?>jAoS#YD7qX+W5?M08M$VFJXbsB_%kw5T&G{mRNi{G8zP zXYoP1!qR$vE4WAMVnc#vpVSB3kPCO8z1% zwUjI6$}H{kO1Jvt2OW{yXm#>)?&(JGZVPq0kK}BpPf|0qVP~4o8R4RFYR)U)@XA^# zyKX~@@t;-^GEEOloD%*FL()Lk{NdgBCg*y6M%M_wlo#_tEa8)c^1_hhzhQ06XJ4Z- zh6s?!+Eb>SVR?q)$enkFjUPzcQ&+r$PlGu7-fLUur~Q2lB|@T)j|%HXs-J<4g>~*= zYHH8wIPniuneZ51Lnk|fjSw;)+l)h4n6w6}3iGVC6~83)ryrEM(b7C$H3wG(u)NB! zYCzGk`1@*B2=WM%A1O74Do9D#7(Voou-y;8@Chwd-EZ$)P9|WFO@6qFWTj*H4?BGi zUiIm#Hm;jhKjfj1Ai@WNw>)!@dIE*}QOmV({QQ}ZxSjH3yo+uXC5xQ}N7dHfR(%Kt z7R`XOv@$=ZOn~{gJfZ{XBu7s`zH`#YRf~&R`AvsYYg5HH3%eeyhG!Crv?U3ks$un3 zTK=_k>CYci@x))~1mYAu2hQW+F!}HtH@s!PuMluOQhzWDU-hFWfHxtGH#?>>|CauM zC*!}TMklicF|XcNUJc}4SlNhxfkkb&%4Ninwzyo^T-4l;QLQhHqa?OLkj{(Ug(Ek& zqTxO2DRJ(3u;%|ThbrdDYv*<{6}llgP`(6*NMsE+^tgVRPtw0VjEZT&gs-BOv$Q!$ zchS|hAPgaSIxR9>Cb*M+t?wh1a+2+}if+u~G5P5pQCu|1DzE{Tmk@UdgH7rGToXbJ*Y`M#aO2z9oe)7Q@O(&v{mhi_K#sf5eq z<%X*?1lCvI* z+&vKNZY3fvAE5*V8t z+dVp}EZ|ohNv2Yh*yOz3RW%c8S!CTgx~2BceTxyP!p}@w;*ju<`UAp41QrMrix)mG z(7cWO7=X|!07FH7mncU=ZhyR+0l|(4ROQTd2?gaQn!VaxJS%KX?`UfyU)VBS+(PGg zZeQ~{i#xqw)|9VaeXrI3qgA6bN&hwEvXJBim%QTdhbVpSg1HEl8={cgoe%;A|A@s( zm8h)IrRJMQhc?tabV%2@g?6iVaG^9gD&K}7TiY{8Z#4)z*=Z!Q@q-?D8L^0zEkd=< zjLw|JFUh+CJWKNgdeGfHAjQetthFP!zD^QB$!qbc9I?i z6ohJ^BRC`_99HR-JGujuLLoUV8N`vba(ZjG?WpWLv0(c+`nTxv+{*UuOPQMA;;JL4 zFqifHhV|O z$0d|E{#?rq3yT=QkVq7F2m_6>gcwwIh7Ka>$=_jFsq=9~l4b=%lcB5qeY0fg=Ig@83)gbhY+!b{{?i{j?SIV2$N9TCqx8 z+@JkPj%c!u?;I$&h14*q`~s!U^U5K5OpJSxf3_C~p%79UgQ$hQ1W;T| znn)3b?0sO_S;ptGg}p1#nj?5+z#0-Bfvj$bdLM%&RFY&)=#c_yAS$`^r7%=favS&BfvaARI zO3)QXQZvc@h)BPm_tz{gSwm+Q;BImCmxP*0DO5ELvu1SWX5t-y>X?p)>W2cvE%uOlF!jE7VnK9qR^r0pNs0n z{D@>>+}#XrK&b2!`L-k0pAdm6!4o2c*N@8vQ-@$vYO{#3avMfkNCL09i{d8ho1lfu zS^S>y>rAj9A14p}c+HWho{X=AzFqQ?U&1|xIS$TX_XAlaQOy9Zr~HX%F4OpaD81x| z;b&KA33}N+hL1WJmC`;<$|39Vl7ykMbst9O0Mm_Q+M%~s+JF?sLpgne1NL2n6y`zO zEa5D2`<52kO*rxa*|U+U$H7A-V%B$Fn~slV&ryLltTAyAvMl}+sr`M_%tX!t zygQ+Jpz;9Bs?t-hK#KgW9Kk_gLK}VIKrc7)2ic9=$YHD*oiAgcJM0-M)4GP_|AmT; z`rc#1f878t4;3{hqhcw5OlNIYsS69Z1<=5-^r8H;Z7z9U5h{wt4`aNJ+(O4EU=hWW zL1bapz};1kDFzh$dti11vE$;1$c9@&@j~dz>Z(?POKD57p5jf zZyywJ6>UT?69uR<@7g$QZie(Dw`db6guXx_Bm|bOw<_fk1UgDo`m~Ne$aii7%#z4R zf0HEpUt2O0&JOi~vGEW=OpfmmrwLRjR%!)}a&&EpHeSPO*igO_pK@%#!|YK%B0=Si zY9guoWqw+!aNQtTiiD3!O!Vb+K_4R+Fo#C=8zfG)k!Gl~r#W z3k6r948MK%9%vrmnT{@Km4l@jvX7us)WN6fspbBgt=C@x`P3&4$~m%>hOI1hKeQPo zUc0Tpk`KjAjs#k2~tAcScnBxsApa=9nk!V zM=`RXM=uAU0ae}&m`0yj+1<&Hq4K;@!zWmkCxlv?wJmTtUt--nl>RcE zn5HwyQ8j>@N-p2L1KlDh>Vlpyl5MW$zuQa<6RfLE+E7raA*@Yj1-99w0;3a!Ft6?L zE^K3#&$t$qC7uCctgSP|Uz!FVLlb5fvB@7GkbHEm9}Gp6v;~0rKDpl_6vP>*|AoG? z0UB;&6Z<+30M5U4qj#~nwk#PyJqT9Oszg$oJ|4OR2uu%A(S9ugpiQLj(5G#6Z3}AA zJoXs&$$r5TK@j}Z7kA*MKAPDZrxRFcRaCHDSC84(q*PGiTCCGJ;rP48s`_=(qm-vk z+r^BWD9-Z#=B~WlNY~}=23^0m>m#yz?FF{DLCODFyQucda*Q$SBcf#JbB?5apve@Qj2^E2}Pwc-Qd%?t2ypkpH_61d(VOiwekwMcM=l)C(A5HGSH~>i`PM z4bw|&Cw>0SX4?p$rb!$_N1Mt>yb02vvuLBGkn1lH(@Hv4l(WAaMeRWobpvrBx{B&9sc(kImK1{KDM7&!@^Kb#@I2Uf z3X(Kb#pTd~6ix=2KSqVyOYC=wU%_!963*7yCYW0isouNRk;3`3Rm{ETs6-C|zToBD zCzCO-Bv1r%dy)|%xLB%Pk)*Mx&3ltkAkh1QMf@bP3@Cm(WGFq#LP-B--LcCxJagB{g|-DfOM72>xe*W;GN#LOj2b57*tKA z>9A2nF8D_(uAn`4D@Xf9B0EG!dr!+*m6%>j3iV=iV5|U#D0ibQaq0UJZ_0{2vF3XR zTaY}9GEg5RiySMG=|n$U1o$3_#;u>5;wqxPYk*GVI|H^XO}T@_`q)e}Z!oEDO}U+v zA{FURW-b(8f9I;)5bI5N>m!Cy>AO4^g|(IpPZo^Y*H7{_AWU(7+Grtg8Pa+f|7 zojpvVg3E|#0CeoT^Cp%00CxfKmmvLY(RfDC5*LKK-*SEdjC7bNDQ4a_9Y|KIX+@(2 z4r^{1vziBKQGM%Ut%Rr7iXw9c3L}LrD@)Baw|pT*U@=Yy>Y`3kIzHjn6TXeC9NEV& zI0I1aHx6UdtA+Olv3g?9GEJj3mv$720eWTZ4b>~&I#NJLMTH;|mjq{-N>OjE$<$|+ z;Xwhy1cr06wPofVU)0~R(Rp4+gp1SC#nx=?{G*oL!NF;stmJJ^8iP28Ek#Rh9C5U* zd@xs*R1#D#6NzT3islKb@l;<`#i@iKam4znO+f=yVV~F|$ZGjq?caP@m2aOn^63wY z5Zozk?M$8B)fX%OC6L-?3a?*CYw|csWqR6 z3`1%7*@+lcpM=~2RUsDjNZiWj^K);9%WfnSZG9lc)Q3g$ok{0WO;nolOpOeodJ2@UFoEyj%}kFp`X(j@R+~lW_iBp zMv9-yBuh9UhS~k78xwVA`DGl#{MC)3#Y%S0uCLP=tv~-OGsS(HwXZ`9UIn5+CKZ=B zXOiCRt?hs}9d=A{I;_On*in*P5@zRzL~+@Bq^nnUpd`J;ueB7Fg2XR}HEj$Sv;v&* zku_rb8P_|Yp6KMevCvhq^$l|9w-%g&xU7OkkM&_02FsYWSF5bz-*WJly>Lx{!vyT)4y>)sDLvrkm0hHH9 zab2HbIX7BspL)oGhy=31Uy4`c{kZ?ZhI3#~bH0mNDbz8Em^cYPfa{Z!rACL!{(MB3 ziH$mK_LJK235WxNJNbNpZ;2oZtmOuA0M_9DWq`W>*ZuqJU!`eF&%G z7N2gk4q#Xy%adk*=G*^3OW_7mqy?U3KTsDIkbpxkI5H0+UCH%92Mm?9-Q{bXffM!e zuiUBpblCpou^IQE%y*|cNx_!)VPy3P?P)6r<8YcyF)LQO3nrAq z-@Y{|Q|b!Tx67psP;v)NP0ruj?73NS`;Lf8t~g5UVcI>rBh&q|xbQ(AP3*)pVX-)1Ok_I zXk1iCfT*@vVyhc5^Sq;fc1#|wvqN1!Ety1#vPTP;>G-eNsY5!Ku4d5;QKpjw{g0uS ztz|Y@+cVOD*(%_3(thGr{{{(>?}cfQBB2MTn?A=E6YL(0^4-=v_8Kb}8hKI{OoL>`Mx@6`tf`UQ8+V3bXaRCD!}Krs4@DiqX?Ud>(w> z7^bGm5k?lw@oPtt-9Z$KU2OMc4Z+aEM&f{|9{R!Dv&Du28W=aj_K!t{Q%QG&oE+edDYRyYr_8AGPxPxt@Ids*QBfNPda*692@ zbeU+Q?f-xg5-olI(u{mHf(xBs=6GFC_qK7*lR-l3r9xU;CJ%pcd1#}Jn;_ErA22cZ zVA}QKyUqa-!FAKQZ}{dNo%UC0W3p|VhGU6W_un<^9X@eCGBA2hhO|>gZ>YT3ZM5*| ztzfHm7fgM07jflE>M8~0!1!H>^f0ZLo>B|UMb{8h-9DluEFZi~ws8wcTqcJIeSQsA zvU4!BjEX$ONuE~2$TXWZ)42e6xz&qHd-|e)@kyuh6kB!l&khQLIX^G9?i)Qs z_+8g;b?NIep~I(BzRX>hGPYac!7?WD65yO@mY7A3fJ@Mr0vl!z6Y10Mz~A6P^2NIz znUE#dhPNaMLjxG)sUI+Z*Wi8h79pjzq9_+Z5jAQ5)%zp=T;o0od?-1M^U;4hF=R-? ze)W{9V0>}_j}#aM%X^0l%ho#3wh5u7=05ZJ3W%w|EWPCSrFN9@ED)@9|4)C@Zah5l z7h6;=)6sb~hJq?JZbYe_dv6%}#nmgy887>Lmn~KmvPhun8-@9;XGJ6Ug}ps9qN{a4 zU!F0dxAOFHaV)U^99aJ{l9cUk_(D`>#P6E39h9%)CTW}9va7jx+r)e9$&p(~=oE@B z6m_oFjnOQE$;9n$AbR`Ayb)_)U1FqjvzZ=%^2|Ftw>>N1UkC8pcuoEt-KQ#W;Zyud z(hyw#1B#6JX&K;aunIRjvI2&hqTa3C(BFi$l?bqmejm(1(OY_>gyoJbuuZZkTqqy| zL^}TsM&5V~*7mxo;nnL2Ybr|iIg?olZzk!S9s4p%%is3bT$?fhJL@E1`;b~z{dHnM ze{3h(w~w&8?TS@WT1mJ;Fm`}aD7Q*Zsmm3~>yE9s46g#il`MU_Ip!>Z$RHFc^w~JA zc|e@8zFa~fDzfU=q3n{fpJQE8N<`28VH8G3EBn0x&(dfvRC)wtLjN^DdMYNkH}^Y% z1#Vx|SLBtzcr&~aX-_xUgMTh9S5IG=a0)1D`+s?!S}yxTc84o&>hsRFZ3i}OqT~P5 zt+QSxcox|DPmRZfNG+%b3NUh`>3BfE;lc_#%?5C#(#6aNCT-iKV3>n_HYXI+#ySv@ zv#Jum#JgK2Axv9%rbY}hEplNQcX6l%krVvf$d#Pf>r6{7#GESnRUzd`y8XUg3vqS&|qk@>3V`1akK8!yDN`@boL83E_y$BmW;zrl`7I^LC3IrLy$OxQ*tL>-yCq98<= zaScNKxJPpJI~xeG)9xN;13S3B@C3vXPHdo9eS17UUHpFDh=1(6C1T4|-1ON7i^2(4 z#2xNzI`l{s6wY{K;&7A93^3iUdk`Wd{uIR2y{m5ny43>6qJcO<3FwBh4Usb&y!Se# zgFN&{PMO_jLLN6t%tBe1WHB8kX*(Ubo1oed=0{o@3J<^;bfY4S2U@e;+!|)cgR&rI zwLjqav`qnf4+QMJ+^jZ?(Pa9tf7Yj^zGIS zf?xr`I}Mj6ZXO*X5{h5%`LR%DEl_AA#kC+2BzC8mr*nuW!<=|5*5t+U$%zW_t*lW`T*V_@%Cf6E54{Jzr1Uo-J zR`fI&jYcxOLW&74)JWPCZDmvxLh09uS1?1};=MPlg{}obcld*)dT_CmNIA!=6U%Sj z1V*&XI)h%y=;qD@!m%9Pn%4m=6e10rCCSaw%$@OJziIX{%S%P5J?jFUPl0s-`bhD8~ z{Y=`f32;uh0eKr9DGQ*%=igdvC&?+in>h?0?VX)v#O>>50?32LW>Tk&{hFbu|2B|M zU?lTQSykD-TMD|Ge;1=ho(wD!TC7ZSP8TAAPQeQ$;#oNo)2A7q{16;{i7KQPvc)A> z*X-Lq5!TvK^3|iAaZ{Nty52qp3rLZEwMgp0Q)Y0eSs!fxk%_bE&hR((kQIEA{3>iN zC|hl&uGN5brDE*Cxs-54MISX{w9C>9oCiJ+dn;)*C^@u6lqeTWy<^W!ep{K@9D!(A zp}1rWkq=G0Up0sP5)(9ttLQm@zX3nU>FxwC_?gF*k!d5#q^QR#M9RzPd%1fS<8xBL zTNv4|H`^^etIpH~s7usks8*Sr!rT@X4&>g>%&Hc@)~Kx5R$MwjgHFZoYZCM7Mn+dl z6|E^oLynQ{sm|={>a=cXF?+^akIJykTVo3MXx0Ys3YJ{WUsi%#vSKO^jj+5!ZTEcj z+SL0AA31*CCbi>VXgJilk2k`VCuDE1^!}wa|%WeKe z7R#*e;#V|a#ay(%P`P!t1sVyIB)}$yZb5Mbz-75lcEk^oxqC??7v{sQ;o_^%2)#+@ zg%0rK6(xmm#mN)0edd3t{e7YhpCs?osMrwbE7d4;womY?NmtfJkhe-FSTS>gt@%Xn zJ?nb4Z+J0#PTN0rJlVS`{grC6XX&rlANHP?%eVBGDqeq*i?rC!ICrX5BPMW|ePPlX zC6r$_7_v!}G^*ej_n@tZF?4#B9s-q?v~8ja*Dx3R^uATGx#Utu2JEp05eCRAiHj-d8#uxo&7F5_An*dAOISgSGBZ2kr!0=AE-r}dn4j$1d|q$ z9Vsn^_mKP95+tpEdA@fM8kQDa6);@)TGG%0Ib#g5roTdQqNdE;KkUw)`j-R&1B|(NqxywVE zfn=F3IUlk|Cnylii!cM6axOH0%aVC^Zjo9*qDbRZ=R-O^VdtqK~;J1&ntQb=L2w8y+9u>l@|FmC6ILw*cudjuK z2i<|@oO@&7Sem}&z6Vucp_62VVSB>+@J8S)1JNlYPO%S3AQ;G*PX#bLFhW0JN6HD9 z)e{4&&xlYRo59^Z?H0Dd_&oznxpcb6;n*kkPJso4=6!#%pb6XpXGd}lNN}PTaP{zE z|EU4iS|8lOFcP9=?T9gN|J27|GSLGUk{E0gdT=jtBk*}N*Qt|O=Co?xTJgs-YSR7p zcmK|So!)uUE4-yazZ0R*K<+#ZG0cHuL7)e+Tpem+{;C+Pd01Uw+av;Z?}@X(x^<3Z zT7*PhCyIp4c-O4pcx<0vQu0-Z3cd3sO;OT$tlJ;c>2zu;rECqhEoKDgZkbmu{UAo?YvM0)sH#-nDq=!CtrUVe97TM@)(` zbF5?_Dc4p^D)#p&EKaA+wH)S(mZUU{yb6*Kv9rz&ihtR&QOEV0Qm;t~tzSU$<99WRSC~86HG=#Rh_V9AMvsY_PCnf?#S`e5 zI8D*oU1ae#m4%RpHae44|w=^ z9je2w%OFAEAg`Mv4_7a|yMw|qY_>VkVN;)sn3>~p6^aLpdxZ`he^|u@+!gtaxV<4C zoa*?~BTDwIBR3L;CjQSbs{O@Dd4Ln3X(ZiSKv15&L_pB8WwAnfQoMhCsY(Bjt*;J? za*O&sN-EtAL!*=ef;0m|m&g%88ip=GIt7%F4nbO46p%&%L6j7vJEdD{=(_tIJ>Pfl z^V~o8JNw;xueE+F_nH}yse%oSPC_Ic8D&zk*@I{%oY6B68+bt_MTb{0E2Hx6jCQim z=qoXj{CE6DCwk!tw>y?F@<8fP@3~}Up1#O4WATWGr1%xX1h?YOPakkr)dV;q1%K-` z>+!NAZ;2ft2g@58@M(KJ^LACMp-wC5?vP6X<6?)ohre#oJ3L^Lph!t6m1(=;b`3B| zZYj#YJUFZd7GdFUX@-rwBru3q)RO2i!vtu+9_DJ>Ha3Q6SG<}p&N3nFQ^@-pR68+0 znDI}O^pB69{R(9O7L-MLGoRB`sAJ)m8dBblnUT;8WGk!`ZpjoSh_al6fdpdpf-fu6 z-St8=FIVXiSsB;>IRWJo}lQUo78bIp;5F>^_LL%I;upB!5$1eNC;2MbA_&0RD z8j%I2k#rIk^Y4)1h&D;{s}WUB8O+izPPf@@fNpeta=niDHF36l%>d*%zYHzcQ;CFj z+-tPlFNj0J^t$>Za7WZCQ>@4u8ld4qDdHu< z{lb};w|wROLekM~kw03eg13l2H84=OtjQ9T(qF{QyTdXt{&r%kzw6q35kP|EsIl{vArb^ik5dZ{t6Oq_74K%0H#EO)WB5NiY>xCs5-ehotjHZNuZwHVJXKsgXs- zLM)in1T~1^*`Q@8I%Sn%>2}yB?&{_O1oTAkZ^kN4JWB%=jc%|i8FB<< z!u4of2B~GVMEr8Qp^gS+(6<_X!Ia~SU$DJ&&Y;%`+M`OpifRFxr>e)55h)B{kCpA; zK%4&nZ-B(Mfy#s5hmV_+3?7nSjeIfjRK#O}!6+$@Hi$%{w6GdAj6W_a;utMVjaXdf zG31RbJ<@m&^U(8C#{9sa?2i#<^;08=3XJt|OCPtt+$|lK-1hiA;Yzaml-TbwHeE(cWzq%4C$xbkSSthN7J0GL`_ZeV>W^8h>yn~* zSzm5Sy~9O@B;i_GC!>cNSzj%%I7y0s8Hm+Hl2@F~hYn*01Mg^Pb&Um!b2_%Z_!kc* zmd>c&bD^(5xO_mkpd&X~d8WE+ar(0A;J`dx<# zOOP0Jk;g0!uR;NHcD}Etnm@Gw@RUGeSpj&~EmL=s0NfMlH7g_5yczTriUJj9NF=Mk zpXz=qFz@2Jw_^?TR4y%SUh@e!;6sd0nze+h3;VWuRII;xcrklgb2E z0-Ts^=tjFUNx&J#owJaym~*n{W20Qc0It+z)?*KD_lS{!5{XXK_d3L})EF zJhuU>dj127C%Bf6N7-v4Hx2qILxCJY2nm9+j0jM#qi|zU(K3c+D)lcgf8a+K?4UjR zTI6($Nt@TZRITI^^E?+XdgRg~5q;nv+URoFTFrO=`LTJMq`TBej1C(dR-eA&G#*4W zan3QB?GeuZ=zYv`-O$J^sIIn(!Jh?^@B5J%HkIzTyBRmf`XxFP$PiR_pKvmNSA0m$ zR1s83Y_Q#0*=}Ja0hI>-fnU#bTZ_j1kt2vpv^!#Uy~rx$aDahCdM+1TRT|oU59gAO?%oz^*x6;BH#Jy_lPV9O1p6sr z(I#*=bjc|)j44X=f6T}4Pf$(CLK-^wyTWSzNKz4SHu`~0asW3!(~kYXoqvAd^OAJ; z0Z!+%{KVNhp#~_91l9P~jvaNKr_m+SJZv@O2Mu7I4#a#cMLMAIXP26=YyK>2tbvA`VR8z+ z7h6e`CS)jXPS$m^?T9A`+PK6b`XX(OsSkH$(gowbB|)x{Dx~^;F#ezL4*aq;f$6#L z0A(-QGxCGs9Pu&oU}*>xM!OF_ee>q%*oo6O0*HXd{M zQtReg!f>)SsKtxnpz+_iuKIIO4$)?Jl;6(sW}#>M!I&CIvOX-WYDaEP{ax9A%su7C zVx02VTL8yUDHo(d6bFgJ$p}zeq(NkvAy+s)@E3yQf|^`-tNq)jN#hYXIc+hp|1pI>vk@@5uU(O)mrzu#}$u$)C;z5~5P5(MeE> z+jwtlt)jbQ`Kb$ViD3$$e16zb4BoRfqGh42J)WOrt*o(*aC;RKR+yBlc~`(LVmMh9 z?ZOuX5?EvMGIGVTV6sk8RaLG>Yh zD0-J%+{k9uA87=b*82ZFDUahW`fUA_{J@QYVgY(h%Y&s6^qPJt$~bIR6_AjKUOE_C zno%R4aSTL~##vSwLTd_t;0I|XLITYTXmpRCfP{u~dJAxryT&HsC>LCAYD3mmul(nF zR|znT@7_(e<|^n!qHZ->99S>|C|cp@-Tg~`hf2ycALG4mhiSvf`e@5o6`>f_acPNW zz&F5v7+Sq@b^QkDL|>pwIk4`J&XPYF4*2ZuK;d!H>jZQ@W{Yf9(w)->kpRn2>w3?j zj#myk8jcPEr0|4(ut|kk+UtbWIj|Bo9?^jaTJrq=~EM+B?G{!yu%u7Vyi*J!clunnya8- zH%Pe+x*Py!K>%lYKXYhlg$aE*>9cFzd%&;cM;cR{4h-See0wIhbL{`Ka*U}&uqz?U zOI{KS0Y3lDyOFzj`2;_2$+djv9l2}!!mJlYF03bd<3)noGCs@xhZBRR`J{S9AOcW@rnZpV8?mY@RNec|9K$;^hdR#uQcS-1;137Yj<5i^>l z46^|=r`CE2cbGpILk_c&7=h3kMBNeKir`FkF?6dJc!~DTl#ci9viO890NT#G`l2yGQBXVKXr ztCd{8VXU0h246%6p}cAu=@yL#rifw_W(!6$3`S2se5pc)5Piwd!Mk=6Edn6Yc9~3vR}E!d(UsjpPfWRltR|q&!7+i3BeA1<4B;u^1~z&x~EAHj03B@EsKH%Le$XqT6IQE%81)1 z_plD;Q(aIK6KU zRK5N(1x1?{A1A4r4~!(vuBG&do4Gmw%zs6XG64qVR51ms+;=x|ghLM-h=A=<05?5B z=HuTOp(HDC_1{DH-5)qeZ*X=9aAOgV{UhySeOc>@8`TiKuQD8{KA!s?mW94jPh)^7 zp(?iKUo(lK3v2ieEFCeGV654}y5*G&oIUWhBbbWhl@8}LEmakqpq`74#A%c7pre>H zV@pzdx-7xCf;VA8t?r+h(#^?|JSy)vxRb&w&6CfXU$hid69N|wofv#tNu}W9s1Cds z6pDK~3bVDr(DA)bxaP-D$wKIE7^;C1+H_$t{V|$ zrvrRP!PR53LI4&}$ORUi*t|>$Uge$H?2Ukf4=>7CZ({=;_&axctN}mR8uH_t>@$tx zXN#u9e-c1`KT<6n8n&Je4Uesmw=`d-h-xac^?~`00zuxA|8x8-hyN-vs#%D{=avC= z;ILL@cou{?ns+PoGV3JhsH*XTUQO`tx+9O3n&ZC|O%U{pc35zv@%piPUg}hZqShk(UflEz#er*%Zqlf;@E8BBn9(GDp^r+LX?Jk+KTEEnc15K!t-+Y zK-h8k4*m~Wo@OT@-&P1Uecl>8NS()pL!FS+UN%11RkFjxJSM#}J{VuvvJjM?Ec(1#~r<2eD5HF`BMF?98a%YNtG^DI|SEKfnSmi zKA2cs3J%-@vvMJ1*>9k+cbjQ4WGCifEm~|E=Tps=IY?~rd=sW~7|vz!QS!k9Nvt*P zc!~-@f$mmd(E2SU@3_sEfC7+0O|rbpjOV$76L&og6i>utqiio1PrBfFZ`eQqNVT^0 zW%rZ5%nfW?1k_*RjT|xC`BPpjj>cPfDHkinF4{Fg0BSPMrl@R!cq6u2oqA^LS8fc# znbB;oAN3$^>O-AEV)j+E8kFzBee*7x<`m81zyh(RVtfiWPJfr)Vow(wx|^p2j+fg9 zSi6vDJbvVeQdWGi#8wEprANSytyl>=)g4|IBq;P4*9eDwP8C8msP%#?PfK25bcaQA z_iFw&Yvv_efI4AL@&YpS2OJrN2w@BIIDX(!V86_`*f-8>ZteN-HTgeQEOK=CET2SE zeTbZ5gHX3R4f`EI*s(nGJ>flUO@2?P3NNVca=^j4*#uuFkkFxy6h7#-R`bb38~cL{ z6k&o4xsErd)}=ziB-Db!nx(^_(ydm$E8^K5LgM$11A97Zgc%G1Ppf0+=!&m1OqdWi z|J?1e6`R#IC)UGK!Tca2=do@ClBN5s#)w+Fpp9XEp8jJoCKy1eNjUKGR7sxvubo1l zi9S>#ZN}fqH)riY?Mb=;!UQ{XVuP*ELP7dXvD$~tN+Lv^J$rASKrc3kefA*$*Yyvx z_kz^;mD1z3u_v*bZ}+LTD@gQoS$PAaRf9-e8#wp{8|8CUQ7=VP2C}TyZ|K z_?oQA^~Om4RPNj*jy5&h&D}XW_md4ym^}YvzL0`+58dw8I4LJ}loA zX_LFls{u?vrx_^PoG2_O02>dQf5;5}rR2U}C@d}$yJ}&4%EmWk0mk>FHCSFTtqgFI zAj(pre!x*Kl+V71cF1c82Rk2gpgraXKU3mnY#Rds(rLi)w8NKhOgeDlcXoeHoPf(R zhW}t0W=J?dlh*@JWo)6=Z~5yolcmDxXd2~x8dHs;1zF>R-!QUyK5BtwOWW`GN5Ne) zus&e~3Gva`*+7O6lmgSHX58ia$T!6B zb{z8(QvNozZ18-Qjk`4EQ*?A@d6Ugh*K<9Oc1;kp7>Ndp4A3Lm@I8$2Z?Pd-@kKyu z{@%FuI0i!=@ZfLV>8f1m(0zN62<{!VBWq zU^d373OttC1<}qxOtH2vaW+%M*M}t}!?`jui~RPY)E06y%a9aY zBp;G;mnc%&e%|gYApo7-Wpy>Cpl3uZC9&IG4j*!lU$4}9@;c!`OdL4R`zYdOp6#JaA@C_!7u1QM)~gWt zJ5GX0F#cBTZ>g}tzD$98p~hi9RR&5xugMfW1I0{-P<%W`4Z0^yNAV?`lbnrIRB4Tr zEoZZ}l}w?)xia3>4r*#?^4fg?F@SASm+ z-~RaVeByqGYE|L;U;*L=g!4`}b3Ss}_S1I(#7&Y{KVOYNJD*c9khPWHe7Mk(gucCT zTYqy0r4-x8R#R-vi`kSCeIq#UQs$jWHM-5EhN?ryQKt%Ob9qyqnOuLZ;x*XV=x-57 zR52!!b8En}s$UsFlM%t>OWpyy*W(G@5pkiYq>tacf(yj&cD&MI(d`%G_uuI+v5NiM zfY}6QS54F8JtO|y8g5eKWpw`Q*&|xbQ;LQD9t#%GpPQ8M%(s2vyli5XIF89(GCAcq zklKoc`w8CN`yety-zH0}K)1>4hi{(mE*iQ?Oq{a^Ejz7wFM#Gv6m7^d9=Oh#ciZj6 z*jptR9z^&5sEmr|S(D@RJ}k{$P>T#*(y7=sS>M^k2X_l%h@Ho-KLt?RXbK+LgIlhg z-dT_u*k0G8P{rJ89k|z3W`|P&F2i+Mj+Mbw>ghH?uP_VHzBIEn()y8UEFB(5@TZcI z?{9J?{P&u30%X){tstWwlYL+U`Y$?A1st)D$`NI^-Pcl=Bw>STAP<1Le|QWl@j2J= zzsWVAC^4Gt_rZocH_){P3RS2=v~Tr>hgC>`ZK==Oierj_;Y94Z^plCiekjLn%Gt=A z6C!-L5Xr%97j9y)HQ?6!G!Lg!sYiMsoy-)}iJJEBDRkAZTZ3znW=&|eQcMzMfHhjM zMs>ewey@PUapF(i=*H*oYr=O5%Kxoyhuh=J-qk9tkha;O$&M51#0g}u98b114=I#L zeHL6jr-Gp2Gd#ez@{TpK5&}2TxQz5*7~m62z68tHkHfWGN-FinCRn0boP#}FCDY>g zx6+3`I0P<+6PE+7NqYDVS>bYCFmi9`lJ>(hFr1r<76u76Xpm#ld8|u+@f7y=K6lma zCDuDp9Azy9aBKbYt$sE)&#wa}@PFG6$3Q=s=40LG9?z=a^2E>u;q>nTW|GmO{?*4q z4A+&wy(6E?buR-nn!t5GH_y`y+PqO3b)6Nc5D10=^lb8?N?tu6)SprfZTZ3+6Y)bU zO&Y4$lGZcFq=5|kOSs9%8CX?hd0(6y`f?JG$(y0FTSJi%N`!U+56$$-tC@;SwdrY= z#?@`d67MBNJ7hc%Fa5b{Gub2E%K%!QHG4iM5e=M2@^Sluk}e`E-P{qoQ%@n8q7l)z zyy+e{`V!)cY*tvIRHwX=2-IL8Pk?JVTiZZ~FC-!s{9yIbOMVih?u7mf!FjWlU1Ws) zBg8sU(+zobi{}g+p5!0n@&*n=Kg^&xm-H6W2Y>$=Dc==26k%tdG zjGi&0QTb2HwZz#5wF)VB<4%3km4Ke6h|Lfq~xzs`o*$`suhj*Eaj0;uA`}u4{=c=+QU*8Gd?Xc*e6Bfsr2D(+{+(*4`a%1tc56Kp~FQ&-h;5>ST;*k{z@wDL`imj zBfNl$Vlxp6>c7jW`hiPN#`&UFOxzjmqrQi;utAj5>7VYPf+^GQR_1xuA5^ZlZ!O?| zo7Uo!Q{V~Bcc43r6bGGjAD7?cz<=bJ#*llnaG|ub=FDGVhg%Xp?72r`@vK1VJF$0{ z&rz8o_;$mAGK!|{bD4sCS^k^F&N+r>{C*+z3m#l$`usSP?Y2u_P&Dpgthwp}1oJQy zQ%1h4k1AYj#On>HOaXv5RUFVrjUZzWt#y-SH8EfMZwUHcUIioX;oREtV|kN5r4P0) z=!InjD+Q_}QkqJ7pN6Uxj^1I*`j=T(xvUnt*d6>>#*vJ^TC<`ywQ>=vUh!IFj!yrf zO?(Ud%NNNMBk1_^3|Ogv(MSCXGWg-gGGJyx?iWo^7~0k)TStk|jmjYsa7|lU@_AE} zi)hG_&qA(BpzNh(COa;IQ}DtBC1an^UPC+=~1hYdH0Mw8;g;_LboO8ocP7f`?2_ zYB983Ml^7ktO^ojHSdGAOZ{p@gN_3j)_xmgrH+^UKx`x~d61%zGrlJHsgr{Jo2|Td zmJKr1Z*RkPOC8}i9nlr_ub@|E2+=LKaB6n94FM`8j_O)Xo2_szyCzhMLdE#LinxJ3 zDT~T_k`(y*(AlC5y-Ok4UE9KBsX-+X@vSPNFD$UOdKSNeIH%}Ppr9K2Wt$z5b#p3ArIi;K9w9*~aTZ ziz{GbN)DE~<33?y45X&J{R$b<@V$LkK5aNLTPij^k^-TEvDXvlK7T&A9cC14pyRrj z)~&^wnrO(P5S3F+F3`)iK@-otC_j|S&nWS*H!gXQWP*`BXH(1Wi6Cr+&Za9AxpW&b zz5HY_^_ueR+v=FV%)WS1o<^76}Qv8`VdelvyQxDYlO~%KIcv zvO+mZ_n|vkxr)1--7RFi@-IO%)e8+o$%zXm{I;mDTSkp7B5~8`H(SSC+j5H0LnG31 z6(c?mQY34zlpGI`=tw<_p8n9S`pP@ET?Vu_b#6o!^Q|Y=O$0LY+B+V+FB!QUA$cwJ za62;~Q#_}!RO(Qgd6%G{u8fdvSd}SxR=K4<^MpWeme|keC@}B*$T=i4C0RSi4S2N=o9f4blfiKRz2HGO|zbI?h9QZmi+NkG_z4 zG`${EK23H0zK=1U_2|f)EVYgSfN-?f=K*Y zjV7WLB0}uq(E6tw;)a3KZ0sdLzt8=v%B0<>{oZGQBZe(&IBbo~-aj{F_GkkxAu3A$ zQZa=SU;Ai~P=JIYZDcqw06rmt_&s-GIkG2aL6xS0xRGA$evUT}k)}vkVinoP*B%>2 zdjIS%8GDYBACV(VuZxM?%tcejtYYRNaHm=>(dXPeY?~sv4>@0#2ccXJn+k5c{)fMT44r)(;K@^VN>51GRJ>SJ6Y$$ zfruItE?#syg&FKSvpDSh7U64303rf2$#U$DuYv#qd)}+hTog2(k?an^F6aO*KZmw2 zRd?3Uq5@zI*x^ncfFenWS1x7P9%4NlDz5uJI_2j_sB9ZR^pcN_|l{9C-FS^`DpK$I7B zKtNnSTI**AusKNF><0N2FN0bj$bBvvU!HcdOJU2w)M)qimmPr~mOrTRI+{HFtq6#O z)~s?0GkS(oY5ZzyvN+7f!mC*8F)WQJa=Nn@Vjk)jR3 zJD;wI43RI4&@umrcabqVL`3seP4YYrcvwYwegl|{FUyx%M-9~{?8cC?MPpyQIEE;v zne>^NIFC1D{=3ogAG;*!6A6n6UN6rHS|pNWL@QbGgQ2CUY+^`t69%LI5++ z)9C%cE-mli{?~xwU!26`Ad`_qTOWx5pwGw#8WsD?GjlgHcmpM?Ua@|&0|pQhY&KY` zex!Y={+iYi?}ZtPAK)BlLtEE4@&K|0e-1dFMeL9obHml0T=EJ;>Hj0x-*b1Xd%&No zRe5oOhxPercV;K`B=!r7pKX-P|MCGG8Ec%nf5n0rq63o20I;=0F_cKEulv1_A%UI& z8wv~-UWH+X=GG@tt?O1z&wmSo260 z(2hu>ywWDd$$>WPFD!u8-(%wKAiURDEkvSqy%0c(c>~f=Yk1AW-4Z8<@ONiPcH8Ta zhejhE$ZKs*-`FLLD`n^?BnvWxlJr+tXOCM3F9X3d2x|wB?;(1j{+6*sC7dfIz3DlS z>gD-{%vj0lXWt7%qT2d@I`)a^1+O!spPg!p&+LH00Vi;cLqyCd>P7Du4#`W|#IK!T zW|%A0RglmP8{nsEtOu02fKOhZ1<3gH0)^43uV1wbxdg~kBYouxUW^4UmhetkQ~>1b zZ_okHs{e8P3U7}j)PF@5>@u-MH_!xRvmi6(Y?$0e1-$v02;>=owAjAet=dk2UANF- z3M8!fS3;*t)Eq(Ase1W=Ezgm@>JM7%#y1?+#{CH21hySA`MgRl?R_u*0d9>u6YZBy z)>FkHUc^v$_7Z2?mU?oz$!NmVdJ^K7s=u z{0(k$xjLK3sa~rCXzJX6OqLnscG=($rrbpVlSUf<+FzBuU+Dqo(OiL*#xlSaNndFt z=J|wEZ@hYUrZaXPa&AWcIn+8;O)7q0vkAa*kzyHrekQRePj^Oyt1el9J}3lV20@mJ znf89dAX}S7C*b%#ntbpshPp;VUpmK2@aW=3_{twhxum{W7Gegb>olzhx;p3;Bw zBK{)*tJ8)wbubSoO?e|^bhnY#F<`YfSAfo_LxQzGS`Cm510nz7l0e}8$A!44E+o(gXM)qp&LJK9s+x?6@CRgDLTAE zWLX$(3T=T+IQa2SuR*3dwC8gB&8x$C(p{rY$fg6=<4qLo;99xm0r>RCi~ECM5l8%n zrQMM;h)Mv|iNYXNU6o9?FG!3^%z_MzxXGWO=F?chb?vn)nZIra(xxf4ogV-0jaQ!A z`e#(J7g+uLL5CL3I<^GE$vMZDL>5!$|Knmz*=Rh=f-r#n%d0qfG4AvH9K^U}SY_PW6 z{|*R%{2@_?{Jg&mic!N6SwrjdpIHa?bwZFHpl*3fb#Rn; zg>}i@c!BhP2TwQ1{@TkXYWd&HVwtf~NQ2UCU~O$8P9TRlOiGI+Vt8_k`L@QdGI~Gq zn9~QN-+fJo6#I`f$J4LJM4YKM+_i`ik`QO$H}6c$2;D_G$4V^8sA*7@sI+~T*GwLi zrwZAP#rIVyaFU3l$+cfjWVjzkNuMi5u19>ohA?g)P+sAsg7_plXZCn_QA?bW$V~TEAPgFIiwz7@A z^wtTtm5?!7e(W`Mb)xZa7buE&>6V!#g_XFU!6vlmO!9gxmHpPwW<^{4ES|+mxux4b zZxYqlM&&y-gue@MOja0rdzdQdcS@*!eAUx`eg$s}Ncj9*sxMOszO1L||GJW~Zsnlo7XEW)@k@Qs^8BdP_va#WA#WJON%aEfU~>B*(wb~dwBfV;5xnrgcg$2*Jt z#Dfy^7C{G zTzs=rd#tvxMeTv$=)uCkEqV%ZE6MZYY|i>J>BTK$xrjv)IlFP{cE$|n`$loq_L!#X zXY+WNvExajsWtCqzz_Fk^=*ireW#sgomba9+$3UhOTV~FaP7q2`|F{#rdc4FyK~LN zH7QaD$$+-h!;I(FyO~VmjM%>VR+7!%v!yS`Q!5!OzU4-x1wD5WvXvZAzkhRVjBQNl zJME{cNM1|zXY3@q4I3%mlAooAa;t7F5MD~?(FKgK9?(sFsAPP&3D}Ed$ge*@mP;!P52b}X$8~iHNXqOQXR6T_y2znq(`~c#FPLp3 z(JCJ(nZym`wEMko)1U8r4R1tGQ`TLdHvUYmz=oy;^F~rRL-N`a^`|B@Y4DWNI+mP? zQio|qitLl`#p*xz55-+i<8%7EB_X7XW5X$fo2e1g7+ zEtc`use~2IyuIt+huMbpd$q_h@iU3mYAx>I){^B?Io3^4{`j^UliEYYKJTzs<<_N3 zZ1D3-*T+gxhDU`lx}dlt#52z1A z+X8H@uq~>{MBW+1NSSq(O>`>r@ejW(sJMH7vXo>j>*qeJwtu)MopJu+hl7@Y4X;&Y zsV81EhgJixr@+qyJx)+}De3fl$v(aG%RWuPB!IFvrn`V+-k}*Qt!U&~^s4umGt#l7 zf&NTelD|gE3}%4Te=g!Q>YCd+8%gfZC%r=(&6hhy6?HmB(HG-F zeCkYh`!>trrE4=Xcg}^eHS6tKPEHe~-u9@ln^iq#vc7_qNoVvt8~wpuCY=@~lPYEQ z%h+7?$zYU>%q@!sL<(P3;D#k`9b3I^J@d@{KKCsq%)|CoiFzHQ_S_8am^T&)PFT&C zeU$5r+`l5kHnOFtX#+3j{NRd5WOv_FERLw35T6@sR{!f#(h&VkY{S%pd{A){H=ei0 zLM4E_6JLMadnRdQwLNiS*-HOO;Xmc`;OAzDdPocv&II`mg%)rmr1xtW`~KbgEwD6= z6)9Z9VKsSRF9K=zMTjm1`*fWa^QX5-j|T6LhDt)SpQ^HBp1(wWtnL0DxZ0V8`gqZQ zd2dxC6O|H;AypbS+BCvT21ixt!u)?fJ1y&N$RaFVsaOm@Sfq4JacH&p#&kNWe>VE7 z*>j-jQ1NUu+!OrPO9P37W<=DRUT>7Cv6nRaqmOIs!F$;UPhy6QOw6p;e7q9I*%o^m z3PV@wJWN<7d`ELHf?uC~KkjMGv^;-1YTCr(m1(TfdsM90OX>SOqS8%rGU@<@=)irz z^2DOf!}`i(ErWwqqbV>o9(IiYA!cBi=C0n4xiS@vC3?|9yJ*?*bQIZm}XjI zf(4cZ?P|5)wjcqM>HBgZR+FwK+bjWHpB)DkeEu~HqcdPt988_HZWdAnuVYbGI z=&;@Ms{e3E(EsaKym$supqhTXcGhv3?g95F`zoh9ig`*`J~I~&yfdkNv|%&GRMVfv z$B&V@iy_wg)Q1i8Oi&4f8*f=AZ87sQ&@M=&jKeEW@9EF1Slob%;C_^MnKZ@lXtQkZ zaWmKBr3&OG5wp+6XOn;d>8JJG?&gw2qk~S+Oy&!W7Xg&|F-M|#<)}!eST?T|BbRM^ zqV$>v(~dIXi-~rlhyc%|mAGB4QF7|=uUVfM2Z0LQxqrv4tWVIt>_>SW56xKu=RvWe z|0JPosZpUJYnil{nqg%G+qYcQWbEa&<7gc)y;dkGb2nH%$vGoP1}jXT)wGP~myG`q z_*?c$KcVYqf}a`nj52YJ-L7b|M}sd?8m?ANvaQZxh7|f6703q`59y=_(yk@PDX!QA zfayTR>=;84$G!)FD59?xRb%%rixp{AdylWB-Q>v#`bRsCl`H6=!-@oU+eO&SLtWyf zNm*rJ?S|qcLgFE@i-7Z|r9leFirNxw9Qrd=nBd!|*R~FkR$DS+o&(PX|;rVwWF1_1E{R52SHj?)SroAi9&b=`R;~`#}Do zUJ1@_@bs9kr?q*?E{6M9is6Rc9Vu;#Pkirinqxmk#+=6QBFb=1RJO;HBdtm1w!NzY z?zjZJn{_QCreI0dcfg z@SB^ccE$6z-T~cxr?i-5=eJAo5=hd;N86^dcyqOsezwYGG*#nBC1|ZrGi@=!{L8pc z3W8tm)Ny=A2=kxPcE3%lr8C?osB|9rKAx)ZTq%t4c!cr(JkHrqCr$MH*~PTW<1nTj zy&1ijkx}lW(4oW$X38RcBhB~vF4gw> z#_Lw?T8M-#1G!Qakq z^y6-7zJd$Ud}qzEy(IoZzR`?jyQR|j^8EPMMoL76o{k7X^CiB^_K!`j4$mBE3F&MS z6Kj=92KBZb(*D!Z1N$$Gn?x6O@3ck7E2Vw0Y*j-)X&rBhznew6lN(6%yJxsZjp_D& zKZvBu`La91eu0sAr&RsQoBv{$M0yOo$S{vh)f>kpP!Bc;bI*~MXDS5F?3XtZpP!`U zmG6tIF#FX{mXfw4y`R3%ct@R+4KD8f!mcRSGGDKJjAr&*Rk* zX2-r+L~mO7hSi8k(+#?Ghrvp$dwQ9ReHSHRJ4feASO2if+KF%|$_4lWI4tDqhkl9+ zB(nOg&{Tw3t?oJFD7(+X`i>?}%G;W72yyIrWVL>f7w}U>hrwR)_2?9j?*t&hHtp%M zBkI{B%#m+YR(9SsCbw0XB!yxeSbQ7KfcsFo5{v2*JOIjIQdwobK`fG4@j~R(>2!ms zk|a(;+j^P(g@SpWCS9r=2<~PAk`9Rk{J(zhcP(S6y0@=>xK1o$ZTD?MiZkmXFoDC& zxu(F%r}0urgiT0WgJu59mHieI^8D>>Cq_urFt1<-hWR!{JdabSCxG+ZX}M)7I0u>9X($J?EZ1F2z%1!s z>MdukoZO>B-UCgR7Kwy2zskqV^yLBoHcTgW;1?Xq%EZ<&os)&j9^WQw_YKoGyd1-h zsvoMn($#DudN1%8$LTA3pH5P7R*`Vm;SgZVY|x# zHE1^7ZZ8NH>8sc`2`DLXh?z`)3T<#k*cvgKA>9VmO0U*|Tpr%o$AyyMM<@QtkIDv52k-3-xTuL>n(@A2 zAmI!Q_T~6aI}=c&8)}#f;@VR2ibFyiPJ^j&n3()vGrH4|Ds7C$Q}t6EPg}2%?>`I} z8sIXg#i5-H4D$*a%(?;_b(aL&_kuqz$Tmd>-->!&8>qY2s18a?Gy0H&=&~AZrt|G- zElZXLkUC9z(_Nx|GDf}0+dS%=ZQKsOX>Q^7h)2&@9&_UZ?Ymb)-n56I$-Sk)A|_6v z8%2)qwdGs_#`qOS+@GhiQ`h2Od?S2WTJ9w`u@{2CoaGlv6zu>O%JXDX%oD>l>EOosG_8c-zO4jb8-!AB|Lwc{~pNr0DX? zt>#_a498R{JUfb))%9t5`**s{q-`n%mmj+qvcVcjP;6`n2TW@?(M4A7706A&)WYSd z%u+IW53Qco>?ugat3-;7@%lZ11vTQ2uwG#7tgtW(nD)A-{EeM)wpH5M z_d!0V#g1TtMpK3ulnvSLe=#^slQ6)TM2T@!)LAN_^Fj`#8p%og496$-w#tqNT(kUN z`{_&K?muWWR%-cvghxQwWI%Knx@!ks0yT>Q!v}5N^01x zCK3aM>MiE^v#Ezf*neLrdy{@p#$5q+VOCQswNiB=tKDfnnv`pr#g^;*b+(l~>%^He zGYb7-G3N)lM~zJXbYS}H{C9<%`^v;hE%(IZ}t z%rAgfW@6=IwH~3FTk{J?5)6AA!IGi;I|;rgL905K@WIRGw#&XIcVNBlwb}~tfi1LJ zD0uYtc(;FeN+-t5mNU}K!Wq3{uV6Pm@r5xiF$qD@#n-xjo-s7ggfR^b5)U#vF0KX_ zGc*=vZn2celq#-^>}-SiG_zp-M=20>%KBPKdifgwO7bFe%&Am>RR& zEMUpKAZ~){u!>b)A9D3zJf9a$95i6}V_QDgcfIfBw`>Sm_=R-gH1&%^lRFhy>41E3TrCOyN&QN`sZO zKH}h>&3dPTnBQtd+#hlZCUYTaKn}57x};<=Y(nynWE%|DDdD7vy@WU(*e4aBIQjf<{2D98&R4Jz_g%ed*=g)2UaR{ zZL&6Qgpcvyw_Jjz-dHS*jkwEeH$Qn;?fR_#`iVGyD=1|PxJsLBG9thzN!3Dhd|g^x z==O`sJH%(Kb}zy^BB)0M4?yO!$a@nUh~RSF_tOTjyfukqo5)>z$>i4g)x54G${!-C zx1UK~yz*T5Vt9rV##HvZQx?bR!Lu)4*^@W=Id1M^=sZ>&d+Y<){|;n`ZN=F4#pBZD ze^iHdc;KbC`io%Z{>PqqxlsT;Uu-*|&pmBt^~HIrPTKx{2%L_XME*d2T%U!}RB2}x zf0?Y|5W*R?7NTNCMi4H@;sh7pwvyc2h-qbMWz$JEX6nDT$GSweffqD|{pVDxow{~% zI8Ge%IBko8K!qOa0eolAwgu0)?l4&F!2q9-*H2{>UVz^k;wx7CbFA^c=Ctr*xFov= zaA~*gBsTX3sy12ui8cJ*@(xWE%Xc2M5X_aJs+Toe#Jkm(EWidkRnBqq(}3>XVxJug zxDf9d;9wo^=PmMYDc{<>k%;>wzw!H)#2mwQ57=WN zMpbApZB*fXQ*8Yp6fiG){16Rs5xo5UQHqr zwI8zc=rV9w6Cv!a&ng-QOl-`QfE42m;Fj>3Y^U68^e|c`?F-gWJ;ubJyTW8+JuU|F zTmsE^Z&|90Yd**2=Pr=m5*27G#Vkm3FJAcUwXpDM<{*f(qh?jfU6SNMORVgip7-6e zrc3vin|srAuyeX(*200T+R8v19be*Tj~Z&h=?mOW`ijVlVI0t0xzAzn5N!G!2KI4^W7a4EKIEY}w^R z{JuM5R#lt*N{x?A{_!PmX!r^hwIpF?ab?*w`z;b`Vf%qoSLF|Qh|6&4!6xQCe8%7{ zwjX8S*MI_iG7M78ivJ;iN=FCMxF&YI~wCQewo^L)pN-g354s$Rv=8|yOr z+L=Sl=v8%d<2$n*BsIqEf_sZ8a(8Uqf77|JSTna1S|m$VDoN9b-$&7Xo6$&1){*17 zzxn8kWYt%W_GP+fjpyA&;HNe0T}G~k4TN|NKDHMXJQ~$%Z0vvu9*BCNZoMOG?f~zy%6;cU$6JQc z>`7z1R)WWN)v{*Wp;fb4b(&DMJ&Ev?p8YK~*>!O2K6DoCwh_}H^ZJl?G zi?HA?e-KI)=!_#cY<0%QLA*g*!q-~Db^%Bed@rLziZ1)%XMu}Z_f^0(y#eep zcPjve!^!c!_(ZJx>fYKgXPrXPhq-eCOGAUQ^(#M{sy7->0_;3jE?=xBgy5ch?=v^L zJLJ0XW@nvk#qgu`qG34EyE=E}u<$xfo8cWQ1x>3)htD}S5ieEmvu+Loe^sZZOUq*kj+{~wl~F|f|2+1R$t z#l0^{4bf2)NP6l=7=c`7 z{)R8F!|<{}udHTSV@$BOyMH^8a!hjJahVyLNRZL=^T6Ce3^*CEMz+rEt)BB3Ch$*T z3DgE=KX(11fL)8L`M2I8BP@G~%5(*ZrQ_B+={tp=xsb?b#u9id-}EfF?ttkG0&ya+ z^tiI)6!O=hFa+T#r94p0rJSG@GPp4SiWP6`0FH%>g+#sY7(bTWe{OdfYa|8GzA-W1{;0YCb6%3LtVVZE>lp*Q>2x>2<1618 z;7Wh_?YsTfDkbp+e~&(`ep)r_@VL{69q7iKd#?P>M|`mtKB)EdmC$~VMiLR!d2Hdr z;@!|+#YG!NwVd?N$dk|E(K6?AoE{sc47SuYrhmIxU__!6kO}s_uLzpqp^Mzq0x|?o zSd5P+$K!>rBF-hPB`g!3KjQW_@hvb(NvP!CyZLk;I4a}-yupSwsl#QcGl zcS5PriUKvSVXydHQ&L*;;$d32!NlxYs{+X^cD@cQ;M36ybwYM1L}Jx%!40OnG~V+@ zsLI${b2U^Db<+Wh)(~fGP<>*U<@^P@yYnp9`^P3i##DFF#%G7cX90JCW0kHmJGmCW zM##W(64@Gj4{A(ES$)JO`L~PBZ3OM@AD=Yi)sc?>@ZcA~5+Q@iaAu)v|7GM(xiZcR z+x&8Skx27=x7b|qMEeu1Nc#>g^`qCFvue+2%$m6%AS$bBov8uaZPFdN^t0k#6Z3L<0~LH;Q@_+pY+4w`trp@x2|6wJ9OQtkN3ww# z)a#J_06+OTd=ePexGKLzLSDHvNZbmruA%wF@0J$5mrL#?(Yj~#*Ht)^!dIVs-r;_P zk9PLcDny}AD{>4Od5&aJ3j+x$tj#*`4oww=x+eW$;A2&BULJxyr83w z@I6}DGYk^B?GC^990IQG-%B3hClz#674Oar)hFLJ+hcYN-Wv)w$2OI5?PP~jN7h0$ z%EsMN`%(%z2G2gr3A~+?b}7E|!snTmzZ0i-0ZwP^7wcOqVy`9KsNw}1tT3T#Rak(s8q8aRY%ShW3Gs@d_%V-K7Mho;7iA-myW z@U&;qkbpeD;7D5TZqIO+OEr``UPR*$u%ac2?Si16jGT<|@2at6gg3=;?pULj$C8xtz{0z>cZi}sUmr_kd={;uD#$Ikkp zoc^uTK5Zrm6Qb!P?)09J{oxyOC!?6e zs6%&czNB&~8Y|N1Fp7vJZhoKRKdY+w0yFRghs!&ik^nd8qTWBibpH8hzq;?G%J;7@ z+F|CmbJzRT5`Iv^@u-QNT(7H^l=)L^-S`FCMgT8{Qaak>hj%R7{R0i1-&>abGAhcC z>!*2zG=6@CSA620AKmYR_qC!2PRHrQGm=C*=fsu2NpfnQUf4dKb%^X4GK*HUX z&c1;$;ma`nTs}cxeemF+{6Wf(Ln!Frr?Fj$B7w)x^V6a#Ijg_ks9p_l{6f*9e^bBl=fw<6}i`;ra{CW`YF3E%rQ_XY%O$3vaAj5nIRKt zjl|ljCUyMCx8~}~=+g;l^wOExHoj-3$eMu&V*8?Vsy$Ot6wH=Ipt^GM*P-R*1h73? z#8Hrc7d=z)b6sRobFT8!BD^4{@GfceAy(?Y=B$IDiNeRE#etDfJ!dxC!{+tTRqUdwJ40;8A~uV;%)!gW7Z^=G17RRP z4wm|yoF^hdse}{MQkUX?L5$I%r}E*09x0wGgYh~P$7-^FEp$46U@XV$fWrp%?|DZr zTem}JVP#YJkigGnGp&uo@{XF85^7#p!Y)Sl4PX^ib^wsDd^PFyJP$w-f_~PgniUu z`S>1Me(kr=E_c70X|u|F$oG7qY~SrIqRZ6uH*oIG;@VhuQB~idzyMZtrFVU9_=BJZ zKr7czv?Z7z;kam?L-Y&D&dVb$OAa?neA2UI9%vor?U=+c^q#Y1MKP_G+L+vbu{@T_ zWFG!*I0-(>tPnxG%Uey_ud1rL%MSl2>#q`2kwX-1`mRKfOC(5+{OoXU`u#a&4IfGa z&R8zJ^WoB)k9E!Ab6j>4+~1YFXGmZfKJqz2b?JO7ylMm#Tb;mS#INRg(aC4I54QVg zI}q#w?`%)t2@B%}UC5ZS(=mSO-l~6ngVe_d8^i6@&9icEh>)m?8$=`^cN&2#$BCk- zpoGnOfS9~0kj!^a{6Gg9;=UBF6xqFR{mrTGHWr!LnV-t7qttzKTt2RI-Tv4sRBvjZ zoy=j=>)wb6AC-9D?!!5dtaI#v<)JyF?$Nzxh{W)cWvi_kIA4Dar;odm&7J!SBkl5t zgi4`AD%F-l!+?v@<{hmkRkgrDw{y!w6D4LqE1vdRmN46SQg9k9w43EzWFj+imZMH3 z&G3hw#mA=+8Ek)VY_7D1SJ2Eh1Fh>gs)sww2nzZ>(MPGkKYXO%3n>!~rXri4isYVp zTBfA?7R;G#Ji58xxuMa{`3Eb6&vvGLB2{&NuWt4dK^3}TJ3kg^-{2S;(xJ}l)>g_E zx?MY{cE{djWdg|hiv^L7;<@~(KD^sVI1OU;m5Uq+9q#(=bw6BW`dr^cBTrOUARY&; zQwJj4J@fi3Z8x@G<8@NlqZNq1nu4^pU!5PG_l(Q5mJ&qIFi&6AoqVIGG^lu!Aqpq_ zjutr694~e5h!vAvRLjkqrqBCvksY|VejKfNtL#P1iJa511Uj((hNQ8B4=$!C*rzq# zJJn;;=cB&Sn+=%DWXQ~GJU!`t6##qW7I6afR2PyAgJ6+|yzl#q2v^h5U4D-m-7;A# z))rw|+oi>;`3CnK!sP=sWYq7J%_?ji6e(_o#^7-k(`hhyP}cFU zuG`5n8#>u1N*F)a@{_cQ6Obys;1P{{e92p3q%yKWXoEY%N#JvhBG$XWr4b!?EZEU! zk22rq0cdgg0tv3{TkSTSbzC2{mOr5Gkugtzj^-+jo^|;nM_iVCP_>P6`~L3r6JWzY z7}lE44GcLC+X(?8CeA*<{hO^%moEQ@HV=DO4X;fO(;s-(PBA$J-PW*3^c9$(f6rg9 zx;62<+&ott*?2dq*`XqBx8mYNW$yF{u0KbF;uGpA#Q=BG{c(F@S(Nw}c#9oTb%pxAbJV%B$OrMMVR@cH)5CL!0g9HML(8}7MOD}B23=vwav)Ds`Y$qmMX zd$ZW1{(UON%*%hq$YZGPF0+cBAlauE1Rui{_0{_r&#QaH%M%cQdheG9Ykv(viUfpg zzj}kdI*#6Gk$PZk_k!#u0NcV@Uwr2bnYB~$mq+SX(wnNX&rCDA={RB=e1y^G&w7Mq zd3{o7#zwElw`=&hN)WzT|J$t%YeuAAHC9>=l1N^zy`mdG4#>$r9<1^Ok$L+c<~D&$ z=@TUYugW--vdr}p;GsF}np_gv zmJ)I3@}tjxf@ny2Z5&L9*tT$0!M15#Mb${kT3}IvUuNZ&u{4#%# ze6Ump(gAdWlMm~HSGl5|#vPI?p|`G!@Q?%h+Aphn*2TV_Vw zf!7a=3$7No1!Lj*k`7Xb^TfR<05$~_Ov7Jy%{4*{yS%ddaVf-ML_T}Qj01ZbW=(l3 zt%l8G;mV%r{NE5vLLf`5MeEDkGDRCnD+~PZD3$p~2i-`$1(lvx`acWP+2y zHQQIejhQMdC_StHV1pxaNL7=>5Uati7kK3Flmp;`x#`b$1gn4aQZULGTuOKr&+PHV zX=gn9n(o8^#l{}n=R|JTld=j)i~wa*BwDzs-ZQO2>jO8?3*L+O_6%&F?tf2YE0M zAw6}%RB#~Y&uILqNkWvYMfTwwrPMN6as8)N@-&C0y~u8u82V8+jKk9QZ&9I5mTm7_ zYWV0P#S1PQB+rCF3xHj}B7Vp4Gs>gD<8c}ZZ4b1kpwV+5GkHbc^nL%iJ zo_o%9A(#EiIRJ3m|Fj25ql`5GwvaR>9^K0g(~dy^cD8;V*g!am!h-yM1}{zg2#Si$y3TDT8%Fh4`gctM*a? zRN5&!$GM>**_R_xf|;g3ug6u3ggqkM>Ylo?ek^T9K(f{HuSlqV*GGXvM(uOd9Jo{3_m4yYrqzjT$|$`h21tq=#U8 zxw{!bL&;`Lq9IE{#bhD30>EVCMUQ-6y`(ny`1k>puuP;>39HJ` z5B6MD=kbYGIIv-ERag=KF8p%pg>Z_Is)33lu@tk;%`S7R)jV7 zq&_2)rNd5vMj$J3|Lo30^uBhFbGAdI;Rk(sBY5ST!85oj$}5_|w)HN5%iX)*p34?0 zGso;aV#^nk7p7UK{>1|GJD>J_A*RU|T#w>;an8_*oA9a>a;b^Oe^eJBKbKgam%kd( zzy=KQdnh{Nu~)AUaB~ZGOIm}4U)J~H?;=7Bq4x$KaigW)3mtcw#-lEIPxDIj4jGX- zV!v0ZS_ke8n8({TAv{iQU(`D`+Xjsif~HlStACOl)-8-xU~Yg9r9R*_w5q6>DBKfx zlFcX?j~?oZ(9!Gxd+^CxBa?<_Fn~C35#jMar7q{bBWMM%5e{Wx?E>`hHejYLF^94r z|0xK~!TU8`>uPK~Sg~;46UoRn58o!1xK$!+Pa^8v{|NQLJi3nFf$|{AB|(IbZNL#5 z(ej3@gSxJQn~?bD}mC)cbLxA#VpZTApq$zEVD~nW_QibfTqr1kk5{%t5EnzgCE+5&&K+Z?5!)(;o?VbxYrDi`!rv9xYhL zR~djf{{EBrS`xt9BUN1pWRCD;4uL9A^3Jmie_h;-&TTlj-cQ@gpBLlPKcz%B2$I|F zjnr)PDMQRtXMSkzA4s@%2%wE0=TCm*La481f-Ms*h&xNzC}q!FB;!$@%^>5S*ydOu zM*1|+0+MfZ7kzdv?@vx_2@|Ae%=MzKd#BZf_R3paiDJ&B*@^JXZMG@RxM&5ruPO#> zNfCN9TU%WiQQ?x!q0C%LzR^T~{A{(sbx`tocTMqU)rv(Z?>RSC^YF_ITP~viUwEvWW)j zuGE|GO;qos_WtBX&{PU3ZNN#QDfhE^0Un4l{ z=#0J88~KgAR(fq85_Q#kq&zu*V!iM7r;5AT%L$F+wNWay^T#?#iyQA0u=OI)_#@b7 z>93%P^+8YQ3Ln)inou)`^*73!aTV~?|1-NoxKf54ao=9un*&Jg!Lb<5#Z>1-i$05#6x( zz^vnDx~3DML;PUO8(Paj*}UqpZyEKnp5kq(AZiai$)fB)VbE+%s{O0N&Fw9xEFgmo z1-;CHl1TpVs+!F@Xs#K*SE&RYO%EeOM<7Z-L5|UlJW#4pPygKR4o_w0{WPV8JlnA; zg;=?TOX$2Cqnn!jqD;WX0mVFmYp=^$F80gbo5;=f_eUqSlsQ-d>t!yo zdn!)vq>?-RmVW5M^r*?a8h9ir=j=B|vP20x-5BEh7 zG|xjYISTIy=R!Ouu#BaHs1STs%7;VJ!Mco!!NnJkt(V6ZjsOW-WqKTt{$*0u@)9sE zGdfi5^y*-qt=kh@!}50Szw?mb1=YT#C7OFKkCOcMoZfZtssJ{$0%<1ePu@hnNv~jFh|!c&c5AG`z!DwR)+;0X`_ws$|-$8&^Y3 zySg;s02{7^ujS=Lu(oVk-A+yc`(wJOGR0m9E(3&x{s%pIlllnbNhw4y((O}41}d;D zW-l3bTuupxi7Q;yx#<#o)TBk)hek})BuS=l&LNb)SyiF)qtN+n$4MGPfnQ>UQh%x~ zCIjs}74w;y7t7CQ{~_w1C+)!$O9X+}fL^Y0{>J5>bm!SYBtXN#k2%ilx*b`B$N=#?o#tO)3iZO)rK3-6A|9-GQ~Q7?Q^dK_g;ZJLB87;naRVDN>|RJ!=%0?pA-*C7?Y_GH}=C#Ds~=QGm>3%+H&{;Bp;o)&hh3T12z< z{4-tC>Oe=q)FVSssU{)93Cx4`ZRZv`bCv)+7Vr#BD9 zSeZsp+{LHwa2&*#60Sby9nVM^Wn2?wfK(l@bn@4w9dXHe@-lPEI`5!__bxW|^Ok?{ ziR|B>lafxRNMx!F|EcM*xsM17<1-6u)g*qN7^PG}u05-Nv~!)5YNE_|j~Eb#m`%fzfnhHTWs{SW>j@&2=k zO3J&Igb;k3U#n=R+Y(^aaqOjTZ@?pwmg8wK-dN#oIo}t-{2;x%^MkUIbb91orB{UkG-L-MepEr{VBL)_Ds56h0_-BFs{NII9%ip1biIW<<4@X z>$B-^)+F!)LotW}Y3lVktPM~gCuD4oY?vEDmID;)2sSwu=0P;DAmLk@kA$SF{D zei5T}8*Rc(urez+T;HP>mp@OwQ2XwgFVA>6+E_+LwKwR-YD=)phjLVtlFqsf7W+q5FvF8s&3-5f#!JvKIjeBdJfgSvbudGW9V;X*+9se>114!>IO^q!&lX}^(V%m zjAWhO=}``SAaL4xi5JIRX|L7L(>%&NRa<75rv1vVr}R8Fe7M|H1D=8Iz_O&ErnUTw zg>LUb_yHm>NSbpm^w2m-hl1t9AF*Dh6#S_=)N}YP_P;V5L%VDrxq<>vHoQl1XEjL0 z*Ku(NHKfZUzd3p{7f{YSGhWP9wR{wP2_D@Aw4oJq-M8twbk9$oOc>0t_pe{?XnU(0y>Na+^>KfTq=Wn`i9$NX57pwqZEJPPQ;3WwM=vl;Di7-}BB9Xx~?n zHj_B#$Et!TSC&Y4xhlQv|4KYj=ItJHhrM@1IWuOMTe8gh&zFA9_;gc@t$CJAoHoSH zbQAyQ7Cht9#*r;b)v@BPunOPgWw1z9hf0*k2?yX!z-jVlneTVd!T)D1jpMDoF$P^;x+W8G0Jw3!vIXUQ+uLpYPy0LmK|N(N3mKJukCrCx zgmt}qeL44bVK-u(A8DFgZdMW_h!c4AZcQY^mv+O2V)pm2$Lh63)ZikY$3~43?py{& zTZjZ1sL5hS5a#zgi=_cw8AqV2-kKZbDQM!aSLV_TmUjY)#tgNo-u6VumzZIVv5%n= z#Z2DNQY$g!#(%KhG%PlMDNQ1C>AX%DkwroFYIDN#D_hTS`o39d)6=Ab)i?k4EfAGT zSe}EyEPe(9781k?Ncs^U^}r}vzo%jmM2Mj;&}!K`?I&}9D5+sxjIYA?4fVv>cP(eg z+~C&dioDwFtCM=9=?WZSdfL0Aa%isT-x(-?CB>zTu>Lkx%A1)C-)D3SZa0+L2O*>C z(R9D)07apBw@#`;okFSJc1C?`j_mKvb?KOeHasxSz4%RAchmHZ9Ri2;sq%wesj+Wf$^kaUzXvQ@4S2^?-I-lYb7%r-!+sj=w%b17UDna zG)o#eS~4ZFzkR5Y%nKwPU=V@paEQ z$4S$yDs}h=jF0pfCckHWQZNL3Xm7VQf)${2k5t;Uf?pcCewM00O4#q1UjZl_kG;$z zW%<1mvH6@q%_dG&z@nJ-%}A{#$9f+RFtq2X=QQ?r?*ff>#L@`(WNjCPC4Y0YFr^25fOg)*wY1A?5eoMR4)s4I1wheQ2W^ajt zgfmyGm9-V3d3Z0 zN%VKiSD3i{m>H1~zgHr5Lc7<%sjo{#nnXBYLc0xU7x4^5aWFZ=J8)WKV7!^(wOfj? z=HLv^ZA;wUnJUpyvHm7JZEE6J=Jamw^uxBs{4a(c0wU@iOm<7hU=W3}^L;?vNk-iN z8N`|ZFA9dZT0Lf8I+Dp!x;Oey&1u3y0~MKf)xxc|%JWmlnNLnuoR7C;ty?{;w2r}; zq+;%s&Hl2KgoDOnT!cm9!1s!qi>d#lj;B6T)-OXjI6=oFUZa}U562$44aai_ya5y` z<4%qIU#x_Rd;>v7=Cw8%=wCGcn|nX3i=)6}tDi_%Sc{h0!T~G}rq)B8g>I)K%N>F= zS7oD}dI}m|70J1gMy5yI72?i84nFkYdJVXMz)*#{8ROS832!Ex%M(40Us{AzxpU~N6n6N1 zDU`%lSH-&cCsTyZ_ra&^8Gqj)Hw`cLfhGi)$YjvUW?;w;J3Qk#VrrXpx-0B57@Vlq^LnnT@dwX_#2nZwj_S5?_v6G%jS1c9iyLn!E~X!sLrTE}1#1nsUdsYfXt22=T?=aGM3q zJVH#O&hfjLRYKd95|^U zW%5vMOMg9vT{5jx5gE_z{D;jz@e#h}4rz_eNv+0T3UMx%wf*&9tvfiY$VoZ!2v+sz zdUGat@ghYJsK{kww|S#(H$;LyPTj_#(*wJo%qxOQ-~=k+jg(23h-Aa3y*jL^w=}b| zv9SCqPOQ$%jxB21rHaHTVr2`oI!b+=nAlFb-RmKR%hL#2K92B|V;4E@9Dd^8>{n;b zM@vIbUT+yM4)}|Myhz`jSHEOjxurI!%%#o8JQ2ix@8Xji4LqH(@Pj?Epr(PEf#7qi z-Y=)Lp~GKnq{FsRKv+Yh%@`T0F0cjQZQMH8DJ1m;HIzf1?MuLvvVgT`snrb3YQJz> zN1_J>lUT_CWP%?o4CVTuoA|}4#E(fF6%F(mv=losnDC@?a^}Q*xS4ZT&Ck-0)HEaq z2YBV2`00yWa1O0r>6CgE*Z+DltS%+BC%n=@8(-7iY9cOl+aA$z&)Lhcy>cBhSlU(5J+_}N7S_RR7 zPs07mnZ_|w+PLp)CRM%b54EHR_?VLl*c6}UMJZH>7kn^~<@@_kL_HWFA}z4T{*}6` zkmzO7bvuR&DmUdWu@pC$pA=tA*b5f9N?rC$D(9176RaSMVQ{uE$PoP4qEJf96cb%xDcUb+J$)?QxrC0lB)If*LfuYbAFRl=AK?=31 zLq$}9j|eFpbp5=}uzUBPKzdrVN3 zc%=~z%38$53rS~ULU6d%GJypgpCK{oX%+(hWQ8yPw0j`FYISNd!e=1;58`Y2J z`ik2;;sW&(uG)ZU-%aGxy}$;c^eBNAEE+|P=xEbiH^(n~7+_+Iq>)${UK-77r{E4Y zz(A&fNai^->@h@)AZ9A_+p4c){2f$*-x+_3exi=N>922cNzXz913@e;@(Y3O57C#u zO8R7~pgdlOf4$ny^=Kz{b-Q$w$De$Y+1_sW>vwV#T-Q2G*#X0E=osJHoKdu^%k)C4 zO}^V6-$^AiEtGV#Qr`^W+lUkGNwgR;A@ZI#M)nfr$RcseY4Ui%|5RK|acci9t&40Q zhPhqR^XuAuRD_C`t#RzvikvSs|J#909(O9mxj-o@5iy<{zS>G#G|`3dj|P{^WBwj7lG7q)s!dA-jbV~|qkw6xG4BY5{ASCN z)_ms_(VQE$Jog{KHhsRR2+0&DdIN4)m+=&^9f!(;gtn61SvOZWwIj=A@4+ukHp;FX zeBD_rYoi~9fJ6!rv71@^P^hjD2jMqGP z#?cNB<6#g^i(q~tfk`vF`Ui*o1mZZPacgKez;?jp;h-V0rF;elLWsA97^kZwiH8Qe z9#00$WV$U3J2aC5bc1M{40weUun8zLy9roGMiT=$TNKT+{&=j|G9V@tG6)yq zeK-r9w|cca1C?(kyNRkE+8Y{Mvy$~hKWGz8&djm%eVpnQaoA;K_R`0Xek3=A?0uDr ziiu8)2`K%RO{~b%#eq($;J|h*1tNZ;aJ*nbH2x2lc1v?sDYS=nRt~@bMj9=DWJI8g zS%?yLmD3R^jB!f*a@S_(uIHWvX|~h^f;L{+j6<`*pIa*`d1B_czXqbS_bgcvqjWfPZJW*hZQch=hCP24C$bKgv=$^oVcbfXD_Zdx z?WnmeuQ*Kn<8-(O%+m_-i35*v5++;1s~D=jG=WLDxyCus#1L<(N_Gns%V=E0twDsX z73zc=CT|Hx6o03k3%LR=yCS!JXt62}Q>i@jGdfloSdSh1ZwDV0hvP|Sk#erH z5<#W&mznC@ken^{1RVqj?}C~qzCb|!gbkY|KVjL=CTVhdAlu)t5<7Epp3%)4BU1O9 z(9YUVkeW0o%x>V78%(PC zZ8-1lCPm{cBP+Rt+?cGaR3@CoI;DKP}Ey7CLR01{-y-jL|+kFsrE)t-xcso$AW;sGb%!=${N^1WKSKvmVhm=PZ44Kjnvk~6%$XnyW-%Eam5J_?n#Ta ze~toN)lfn0JoDi4@;isNnp)AVeJ+9cgbcS?bjZ!hLrs2j6Dq@0)^^GrJ^n^e7ulVM zVo)NphF0|qobi0C>8?nS))7UgY>o1{PE-~_!EG`E1 z_)=pCw>#G;6-%8AG?>;K6Z{(OHsalBAGq_QACZ*$KyL3IqKT~tZgR;ufSWCl z5xRG|)P_K4e3|BK_8e2hW;NIJT#4NFpvpi^IaMf`sPMNXU)t+{Pq&i<8_O*k#>wk)(k=khv@fMz?Psd{{>E*7>tU)v0GOfo~fgb24E6O?Ew( zd5o<48jDEw$1GD|$@46d_eqB0?XMQ#`|MA12pPhTN)%ZvYD2~vfRVs)-qIQhOwJv} z*iemlbj|fpf%G5@5x)*p36gvRA5Fu_fEAR=9*h1VG%#F(>Zorc%D%N-!l644GO~lW){2>3vRfMKt{-mA^ob#@S`1k{=M9s<^z4(1T!^qvRG|SD3u}{u!qpG)b`9!K?NJ*$hG!p;2YzOh{Y=|bl zg+HGZ9ds5jlfJtr;RqKP8zmV4*h?%3xK+6L8@LZue0c;aGYA3U5N$!FM^TpFW~y5l zc(s@Khr*aQ84$Qnl?*{N8?Vgj|A}WU)jc{Apzh}Jn7$xl0x_y~7AOU8l3dG_$~;9{ zWO9vyGl$0aFn8D27BLO?i;?n59A$84IyU#~JDE>-nJqlZPYBU(D z@Ac>dkJY0+9sfZ6JW%*dOY@V|U3o9!Rc35qdeV3CuT|A+M7hIp_!!RByLg%~Re*w*Hjl|9+2d7l|cLqcGUexXWgh4ZWAamlw2K zH!mvLFFq^H8d`? za;SIdTXZ1=(X2y#x!=~V&ka%=)^RK-1kDTNN!D9Ur^(aBvd--oVaEHhn*VJzDh;;{ zrQIO}9epXq{+q*O$QDT5v1$DgZI(E3@QRH%YUtCRsc+<-8CfazcX@8Q?H}CQwp@J~ zJvazCyyQe7xx?8?fT0O*&h$`*BoIyNm>MXZvEVs@nmn$Y$twS+K7lO>f=U2O#qeReMu@$a!VE z?J2eJwCPxQ7dCx;^7YP%GHTGc+!}E6)+NSxC zp;Kb*+SdbY(~tZw1=WBt|G!g-d!;!$NO#dnw5mlJ1zH2?Zl9boci`(5z7GuwWk`jo zeot|=k%XZE!~K8?R0-72#?$Clj8>2-YI8M`79bP>in3isVTOhEIX612R!}COjnQq< zMiOxWy_tQbY*eV_n?;mK=Mc1E2`xrjPGfDj{wb4C#*AXMFdCJ?nSV^~6ij59uwZS|om2|EfU~N%81sPT^ zNpsz9`i^kp+8Cb4v&hc_Ls9pX9i2)FkB|*nsf&+5lw*!dH;?Fp>c*+&_)KF0Gs)4P zum^L01sdyEY;XYy_+zjEgrbu-pMMgj>8dE6lz9~fHg@b}OANo&!SM-hJ7{b;IH%$q zZBB7R18V=@fVG~Ey_)Wp@al_%zEx=UOpmO2kt*jvW};BMDlBMSv}FPd|+XVZt?^ z!fa&ArD7-sJ9zaM5C9*jQvCDeVf{Ubhjy8?qx?`k`lYB4N9^SzQ zf04AMfE*~hIBa7Q;SVbC8AB{Pmx(q^FO0(HBiP3<#}2BKptz8X$yA)N1}kB7mJMQT zy+6B8KQT|p62*zdW521ruo-MM7x?})3q$Le;Mzw0204BuUrZ7z0JW9~@fUjoO$qmw=rNx8`2mG6>zoYvyYkA#Kpb^g4#FScQFYG2Y-GFy^o2G*qA+rd;z;IM0*tZ|;@Y6z?(671-V27c{$y zEkwrc%GJe3Yc81Q-@bk+#+r0V3vUx+%+gCg2T&|FbTV3v*XQtiSn&ZsD_((9u2mIq@|CLWONo zquwI6iS{f=^JqmZ6|FCwiJ&)(Dq3~`Ps;zb&2O- zi%x1Et=gsQ-Sk`isa0Uv*J7l)+*D ztfC~Eb?sRFl1prV9Td(#vFI0WkF1)hjwbZrUEzGZKE%dkkcbW|>l?(Bc59yc5+_~Z z6olYt>U(L$I`ej_9=WQCEqbm%w4OxJ(6qO^=HL*&(Vqs}0zz*0zplA_$0HSDr-n)v zUI}hnzkjvZ|Gcwx_);&x5Z$-IT5;s4h9A)05tMKP>|E*KYmN1*HRWWr!gGFQnVs2- zJXksZyyC1PS+n&n9sVY@MxJ$ILpv1^DqL-*Iue^TPj#f3w_fMlM#J^{nf(wO7MD{N*77WI<{`6~5WEPRV2G`H3)p3N z-VgWUg%Y;1(_=_D2m4Q5oLWmXxhFq7DY*d5hN%;=xs`9C0v^>JoGj`fyp5>(hA{aP zcw4!RN^Z)(9yCMcDm&?dg$oDAB_oNaKKio#o-mymMAhA$8!WqRPzj)Fr|wZ*FUiGi ztSCS(vM*c9o<35tdm>Kp?fUyQ>rU^-6gk?<3Dej%0Imz{4u&eNc3K7QWF{L5-Qqh_ zgr53(zg_Ojl+v@*-j|>3ph51659Sfz{E_8|lY_@+lCimPkxV z{ewnSH21;KbH}sCnI7X#7liKZD&Pnj9u^l)!eUS8+bOWWnX)8rF-4Di8^kGmv2lHA z{Y*x!{&JfGo88s7cR1)J`8@62=^dFWPnwCDb-;d> zn?oN`_oRrQYB1;S6ZDj7q)U4Yd@odIrXQE-mLa>>d85J$n=XM=#ErI%U5NS^qK^ol z7Cotjyg~@G0{e~2QT`m#dvgCr)H}yV{si5^6Wg{n+Ssg77A8U&2__^Ua2*Zl#=C?41! zzu}2UhdWN(H+TO#p3ed#jCD2K zkR9pRmQvQw8OW46-Huhc5X2$^{j3c|9?3WHc>kGCsuSL?-Px4v=v;L+fnbUi&yEuS zz|wpC+f)HZFs_9!a#h`#L!7Db-;o#9zh5m*#n(@Uz4!EXcCNf6?@S&4WV3!Hfux&A zh+`W-CpkCugz=W1?U@?OU9Or+b_1WU!tx=Cx0dpA?cs^m!KV&XXTq|fkB8lvw^;FL z5HfmI1>(6gjZ=52USM|Wm3r+%Ba72jRNlM8C8dcy&hZgPW@U9wHVZhAir3pB;aF}l zy5^e5mOTFYsSn3w#Tr)6^mXwIYM^Ed6Y*m4Lb;9rthr90D|)sE=44KxjF6hY;>0{p z^)a+$rM}Oejuq4X8AFRry%=<@q8Bh;)j@hc$lK_6ZQcq$X(#w$D&wyL6^Dx1HRD5a zS0*oOUKsYB#%+l->bEEST{?oUaf&1^a~|WJe!RF~ z{3dP$9-_u!KJ?H9t)$0GrU>DxQ+D1NSsI1*A6J3lk0azqz-=j0P|p{thDaGzel*$i zNa643oDm#`jyq07s8-<0W&Po! zSKbLsrO{1f;M$)M73v}nprAGN&)}%Y>lbJ6Y}+#XQXo$vL?XiIQnnSj#%O+ zBM=A6CQY-g6RE`R^KzXES|K^SIl%dn-!JC8$yJi z+gF9Ymbwtq7+N#Ku(2fWI?~i}i!5AbtGV`BwkQi%E>yV?qx1e0 z!~=w@^r1Iv&g0Yh`jPd+dI#dTSE8)HWR1GGzt-wqlz(GERi^$Gx9BLRi=N#IBuX{F zi$V2HBo}iyEyYLQfodax5a=?A1+c1PrYC0gnPCknV3j)fRVKoC!2R@((2vCk=OPBQ zWmtlZVms78F=+!-^)h&ALXtnkNKUxD)s9RhC=YjvG{?u(&4#q6<8yn@=k5>kW*9B& zjT9<}Nu^Oaf9glJW$dB>oc}}Mfy78Qb*xighagCq7WfA>AtBEHGv=I27B(Ou0NF__ z;oJg4o;`=i*cyb=x$J!s5K2HJtfU<+dLTVko*LW_jKadaw%|`n^V8Y)s8VxCfHC|4 zUb$FCd(qnLf+ec?@ebQ^fs)AG|5(z?qLN)9D32^6@lv7PS=cGlo3lgRlUdTDv+=65 z1$Yfmo{UZ29gkSf+SyWNQZcJ>A99vjhO9>QY()dH!0+h7)Y+@&_OMZU|IjSkM%VC& z)J3hLqPD)$MJ$)z07max-xlBsh*1J{fudiFnH!$pvbzRask=H}-I*wk9U8r7?mX!SF@tQhEBn*x+}m}> zhrkG=qB_m*i~rw{4jq?xjetgPoJ&)1@b${Js2zn*S6ghe6h*F`Kh?#QxAGk=Y5V{>3pIR4d|ZfG+#zw=UX(kKaP}`*L5_} z@>};&FCxUlM=5u2I)`u-fmZACna~m3yBk4W#$t4xS6h1SL4skjzR*eMA>)c7PESXc z(^ngBz}7T9gZ)xLInH*2K?qWm!@8p`6%J?0(HV*3Q|CYCVhMF{%OC^ijhK)v7WKdw zYUoH(`?jUUAZd}IJ{*`+Q@G=19pG}AJas$+eWI|P1mA)G2cJgOvICaCCQhf{g7J&c zw$y<9KA^tOT95(2c>adU2Ig6nX-UjGWX&1F$(^{-^2IOdSXD}zuo$9iiAG_7)`iRM z1jEOLt-c#3t-Hcr`31aMyq60VSX*&YiTOi-dii2``TJ^PVaG%HKMPLtTi?99ox@|M zcNtb&g~6DZrpavSHQ?b2@*R(@C+34hM7Ojhbw?n2eM){0E+=&dpnA5{iOFdK_PF5f zz;@rcJ`Qz8Y=xc1$aLfasYCPfO_1}O#XB4Dg!uutriA>Mk6lO~m)&}|cv@*4j_5rh z0{pmFt5`Q6at$}`g_O8*2ok*oonQm3Hlo^(?5l(!zi(`3I5%*}7Qf>b8oxG~&{!$9 zRHh(a1>Phw7dJMw89NfNY((_4seg#27~^2l?N~(oU^9tLf)ezxMCadhVr?#2hYGt; zy21CZNsy?=d-}E0IYX61-Ura`d7>$gg6Y*$+85XybU-lVnGjELA4ail_7FAAdA!5z ztIG=J*G2{ph<&;TljS5plQyjBmeW1F7S-JfwV(ao+w*Q;Z{l;F$<^%F5^)ZqY<$Cz>?JQ*)mg#b3v$ z_*Ngn^MVy?13IJ}-ufYGTd}>|(RwI=^^fc!{a>D0Bi{wt)_{Vt-faY=f*Y=-MdN_rnaJc%=X%9**H68U8kjMt-8TTB@fMCiT%{G2 zD0B1)H5lBVOv}7Ggls$WKA4>Zlbq9k;;5cgB+z)%5TpMpI-U7EY|>su-Ih`cpTjyWzz0Qa(-HKbR7<`~)VYZh99_k2 z7vVcl&`3VYO-JJt28tu);2#68K5*-iliGfm zn4b$u7c0?Iz&xbCjk^yu>zgqmXja`~FCL5e`nh;eVJi&m4J8-^BLqBwa78lNIWXYb zbZblF0F*`N74&lL@szd6ZU`HzgAHZF!OBXNWaHQeiN!KvQ;~nV+5mNBT)iY*@vGBe z2;p%#^)Lu^4rR7pz$==_$!B!pBkK|-niZ_kqU4Y{TSw=jZ8O{fb5q>&(*NC_D7QdC z>Ub-|B=~69Z_FeUZk+Jm!JFqP1$8)|yB>V6lbr&0wijLZ3y{f75cm#LuTxK#r>`{1 zw%8`>n8$0*=A2U2Aczwtb}u7nQCSPu6QRO|R+d0(YEUB9ckLjSdtjv>`Lvug=a1@% z=1ciHr~gPGQMXAQg?`|_sii{CxtsM$7YSYuJEL8qPd#hJ4*+HFLhKiFdRo+2ZD6*Q_WH#!gtbt^%H(skP36fJ zORxzClvgA1zHrRwAf6qE6lqYarao*S#9l0C@TAmR%$7n~mGM*#Y?H@Hr57R!pd-)y z?PXI>uLVB3^@T$s(2&6G=LfqG2nb0Z7~MZfLZni^0ybcQVah~{o^Xv+_;S7tmcgGX zyRBgUk_LW-t|CYrct;@7cXeGgC&S%zhy-sw2~|)SI6HV&-SBrB{CGC^ptQ>zhhMz5 zfi`#7Qh1L`S49VA5$xH&fxz$PToC@N$l|o3dkT1N&J{D&i!-JhQX?^Fq9nu~#SuH@ zsdMp06rMp9Xn(+75!1)&x zRb^JWkUa4iZ?WKdcyC~`UP{tHqx6q;+Za`Ri1l%`@reo?ZY5Ml%r(C*kc%^4XqDMfcOy@1&OLtM#C9M66?bm(CyJzpJj|O)>OmbGh32b_g}!~w0rRzQ;6(|3qQcEZneg&7 zwG;km*DSzz4yt@w#GbQ8K-CJ|`_u?&j-=1n89NY3HP6sfNU9yMmfo+E+l4IDkW$RtUG?8jc zaJZc4LV`|>+`P0A#<3~23iuu9l$(m7zI>`)|8cxU_VWaw1zo)y?7Ar=wpjKKvg$#f0d|{-? z8J#NaqXbb&lF$yidn)%^)N+5dYbi6Q06?5qJR%f;&ipF9M<@~xd=QMhU3=vw*u)l1 zq(Rl zVeKB6u&*2TDs^8Ae+KokJh+^sDlU8wkeD5?Xt_brwTqGTOQA$2T?4%F486vkHz&ukM=lXb|jInDJlSjO7*t4_KIM6_fbzLh9vtdLbltIU;Cyt!8(l4 z7%LW=T0Qp;rsUXwP|w*_dsVk%1b!UFPgR)Y$U(!Cag1923B$P-t3iY`@%8^gB)U;u zBl^QQK@#L+i8B)?@e3@Pt-D?9=g`%mw-joh3HdYQFmr}O9#i0#?^TUGKUnlcXL&Su zLEU`sZ@KKx)0!E|_~<`ld7oS|7AY!Mt!~hjGr#QdtVo7){P9!J$0JRlC>3joy90!9jv{U^v z7Ohr2F3B*nI6{ByN>;o+-)iAhh476Pxk;e`f;BvD`XSq6JJEDvEHQotFTW;p#kVmz z;TnF2*uB8E@QW^2<_*MlW{vBU+Ria%d7{$ytILQZ%4CO-1bGb9-+z$Vc%FY5Ivj1Q zkZx*-=ko8;%EYHinNHkJThJCb?GdhZqVdX@Ddk% z2Xk&oxb4_d?v6X}dxl|47cfodyivtRB7>SZ9-Y}g&e_P$*_r87g*z=$qSdR8Q0AC& z0SS68!M6^2w@7!NsJX`%Ssx(jZ##~mO|7je+CnQP3JtM4{zAu<+^LO?zzqMY!s90J@k>vdQ4!b+j4X z37e-bNI1s)uvIsz^kF&DEqWLN7Ct?V`w8KdbG!{)Z`9VF;Dq>^6!4+CbFBRF{F~f1 z&3#=$$JDY~SaVA-Ld!Jyl7O>?-$9J1E*tm>ggj>1g16Ne8D%7$kn_JAE3sKrq5u9H z(mfyDk#j_d&ZVJNuox3J7Jnc1TObMEB0K-h7QJ^DplDp_p;s75vvv~m`j_1SsgC-Q z!i%Yo-rb+=#k4K;&hfxriIDDtJSYKQrNdfrjnAC{Hh_>KLtQOVVO(UIdPzxArue%9 zn%1*7#mRKAgr8QwITum9x6*Wr1y8`BYuyIPv4gsNmj5SDjH`Iu+TFF z8afhHx2AFzW8zR~3Fx6$)C9L@9&MdD5Ff@k?zDuG9)NQpkwCgS_jyC1;ct z@*1&D$TO~Jr|;N?QAuaR8Y-7)>u5|t#+s(-LS8ub21ImHqSptD9gOZ0SxtXiv2Acn zwq;~TY9~pgR#(ht9%ek-{v$=%Dn8`Ol$e~>^T+W1k`8a<-NoM^*1_)3J%NRik27cw zkHE}byoonx7m1z{-a`r7WuK^lO{?cG)<*m{9qXQ|_=y-T|7nY_K2(TtO`?mHi4s#9 z9$^+<)|xMpwEU{wB9eVOmr0V(;qNmWu%*~>tzCClcQCWBc=;~unZdHO;yxrL&-xxT z_ZW|Jax6ad|F&l$SlDi<0;v`$Iif)d!^d(_>Tc|>gszt<`JPwep_-T7?sjaSz)1oI z50Iz7Tr$u;PG*Zve<6W#;^%I#uE(!130<+tB%q0afiQE|0rrZ;(wiNdnMU#P;B4p)ZdtZ|b^ZVk8;VZ;CR^+Z z*3Fc>YK#yhD1SeGN2GmrL6ynv&WXztc z5x>lmqBGUnE54LkHy7TuNGy`wms1ZE`FU9V9}O$!+Rmt--2eNE0f=!b36Nr0VMJp7;P>+%w~BcO(c{XQT*4eu&jdM|iGJHq%v5uIDnrpO`o>r&sx! z^S@uRMP1l64OyqOJsj#S)z^$o5)|nqoaf1IzkH-0yqyFnHqPiLz#}2*QJ#2*aM2hi z>%po`DS#u(<1>kNARqVS1SRtI-^Z!h*bj8_FL|p>*MrL|^iCHFYQku+6Bam^B{5v< zR`)j9EW#hSel|lTfme~EXbakgWGaG8b~ho$VNky8$+F7lD0F&TRR~)UO6HgrFwrQ1 ziZ-`6b-M$ab?UYx0fK@>#M=wqSMo!QkBGlGCzDY&Qom=EqxF}YH%zSWlfFB}Zfh!t z5Ld&1kyH4nUlmQfz_Lx>!N^cBrA3sa)frbee~#bSjPA3?kdm}5G*JNzM?m;5JE5&k z9qvSwyrNLi1ERHuP zj5HrAh5iEBV1}c{!MjZ!1sp1C^t@dH_P-Y)g1_BtaDXrItkS@gSz4NXEXmC|nWtLl zOi0XIEs?sWS}i1pR<(r`>vi~RsZ)*i4v0l(Z_V5T?S6h<{!BfU=^Gz+7LI|vIYcyqa=N!Gq9#pwQOT+v;O>2UY~hiet4|Z;3mc~4x1wEf5%+#Ri*!`h z`-fQ*oEWJg*CQ;Cv?Kq$ssYlSZag_gEiKJ9Sm`8M9JG$RB!z)Rl_j6X&m5&#+3xht z#l}~dL&J25+3o?|o_!5j&-K;@lCiE&`vyVK!`?(p5%Zt9;E&)@qq_f@cf*m@z$+X-rg~fHso?F9TL1i5-byQ0(!6{E8OefxB=p7R_1G*0j7;a zqHK3tW@gd{{r!oY8JD@?DI6wG(A(|;=xz6z%sOq#AN2e~P+K&^C*l;@5&DrHqS=V= z07*B4!XEhT>sf|_sW9W>GSgyjA^IwT73Co}lTWu(GeB*$aeEseN=y{jg@wtt2R@Xx z?cD6!|KPmm%qm*N11Jz`_R?+_b;Kj4pi;3W;i~1^GTRQJ@=F1EvLkC*(=OW^t3Rml zy2g)s?gbma2l^i-N8!f@{Y7#kb(cNC`#De0#jA8JM0$C=K2et9Ys;*UAvKHj*N@KQ zX|5?SL+}!sw6FjXqBu8bCy+LGOOccZCn!o+O+YGqpu*8E-h=Npc8G&Co?_u|JP~6OH(YW5% z?h~62-Qzj#g!V=OnEp1K%h>7Hnze^)-Stw*JnN0Wj)>aS}wqhw(i2rRu;I4qe)%V^0O#aF+56Had>l*b- zpItus3tW+kxPU32%8baUI-%N?%@}I7qbU>HxGJ1sXNx#1j?o}&7E3G{CI5Y9_uWF` zT$nohWeZ!K?#ZclfAil%dAWmpj&{9d;+(8MijHosy7=1Ve3Waqen{LjhNQ4y=GviQ z0ui{?T(p!MmE6aRM2ObSW98EiVZuIUqV8vUgNq~@5E%R8ZNEgea|0)g@GCgkKTD^v zi6^%#eKOrS1C1@Weyh9GXTgP&E4@4VRImWI`zkmME3v3wHY8hJHbg6lg)PJ&0ZN?xDj#lakq@8lc zl>@4muVvlv52v{qe&vjSt5W|NR7;a>Ppld=$W=j<9Oy1#=^2gva{4*qga7$;*He%W z7F=LE7%R=<#{l(hJOuo0s8OeVAGI(j;!}HHK?H;`SFeVB(kv>N>JWj8oy7Va8_1ai z1siWDt&T3=#B*!2sVhvWCxZS*Gm}mpjYhm$bgn1~GWGI?bTf9jXSX^xXmU&7OFU2G zw&lg*#;0KC6j^C^LX>tNpUVN?7qrX2`?p6Fd1{y2CF{_UAUQ@dA#dk*ICm1(lC!j>dd35 zGKmRbS10Ptf9^HI2wM{nmRS|^<-cmDMJrkbLjJI6Km-DddLZpz)-m24-52YLgTK2yMVeZ&w3s?}`@mP$+Sw{yUR z&$D`ie9ANr>R0Ymk};cbleYOrQ-Oo-^tIhOZ(LaRyAjQy zcuxru!5E)&4w}xW^+I!}2Kx=cQBgWEScAzJe|2%@kqHuQ5~-?V)+9zCs$k#HG%f>&%|t*MrXZLp^_U z=98vWoZ9HaOG@HEj*ncX(Q8TcZPO5Onw`w=YpImC2Aiz5yO)J}A811ohj^@k(CN`t z%#_Om8VygvsqvaV$Gxw|yd?S*`S3xszfcK$1 z*IdhZ>qO=bsaWt#N~7K5nI&&0lpB1{0n+-ztVK7(s&CwRMA~0Fhe}p;pO;F6tbjDPGw0P@`yt&%1Zm+)b^3W4??@b zg0FpGOjV5Oz}qG(PL~xSso(`kd0fp4qVj1ozg6+rmLU(9TxGq@Pxm1{=I6s>Ne+fU zZ}mTD?S`Z|vL7~6YY!7-3WC^jQ`DPd0)h`dpTa4sVkASm#D_Y67P7GZOcld7HNrtA zZ7h$W1U$6wl1VG-=>^z~P-I+H`*(hpp5Ql7Sn?M6E!&S(%>1>ZelIB%HX%FIJ#$4K zjb7XBic_Vd6-fJf(8Kh+h8FWk7N%Qu*rdrG8z} zg7z^7btPa`|{y^$!6fgP}*Z^eEPe%=BGv**Fc;9ryYTYV_e(x0mnOw^1B z_nRD%J;6h=C3J-WbW^RK4Va6p6-{-B@=MDhjui;K4wh+&N~HJ#gZ&W9Lz!Zw58@&Y zEFudBVs8dZSX914{80FvcrKLq0tMuIEoYNG9=um!=9k&0L*62Qn~9>|3_<`xyX-_C zm30<^%F3Q(#$m})FykNFr;;5GG~5R(;K@=)yuXqwcB|yo+RSBC;BGrHa$BjxQq*L5 zmtg#4s%=9V0w7nQ>3Y*xZ+X6Q0Y^T!_!e7aGKUBdFOaqY?E^u5cLz-^_ zIe9-x>KDOzj5k+Qk57FNaG2d(JWh}$OfP_w3$jr@B@;x>iqQzxo)G zw>J6Hifg%0Hg%9}gAMmj&gXs7^bu~myquRFaHY8^l4Imvf-=@JL*i^ehbU+DWnvYv z60%2^NYoRJe=Lyhik#Cfv_hy&JYEh>B;s?R1pjxDixe*%9yX&Ruui$1S&z%W9j@CzBGIJF$q< za&RGueV`Jx>WkkD=b0wtlpx0-b2A>)62K(Qa1JSLaFqg&&IgsOy`_39&SAPtV^J<2 z*jTsZ|Itd%uq`9Go^-_BA7{#%r^r%?Z)Xnwus=Bo<$H_;`b?+8dv%74eXhENj(eJG zLsXx&1#4(k7R2-`787FV>zQ2SO5-Trvo5JY{mldBrJCeh4FQ#-5lKWyeDAiq$2IV< zKkOrnMpc%R{1uu8koZ;X@W%EmwPB^JRQU_ejRg*jg zm+ChALMNII$IM766dnmkl7EbMcT_6P8Iwqpr`nTtz|OzglHWDgMdAxP3~?!?p@9Y) zk;F8Q7p)g~%$!@Hk?7&sK`AQm$fiFBTi@MJVTE77j)byhU_nd!#pXpIS9YPxItxM1 z1PnzoEzttM3%LD7B=wub5fG`%b|YAk*$Lx|j^v9CFY?24?zp&8FA+Dsbwu7Yj}B0m z5b@+%cu|ovHY{&kkB`jXzQie8QV9l^7{R7h!Wz%15XgOjhM7CchQ$WPeD;m;Qdf02 z9C@ogs@7gSrp%>&-_7zD3H-B}PGA&rtTUB^$w_*a-0O%v#YnwW?T=vMH$$qI*wX_- z;Jzc3*wnt=`RTrC67b)3?x%X(%L`-2`axE4IYZ|2`#?naho!mp}!a7X{*%PGV=e>87ND45-#+x4vk# z62F@@l@dp0m2Dn=6Q}%C8W9}F4|H|bkK)o|TI?B#O$%K)A53-Jh6DK`k}X(@xgnBjTm9K?O6bT4=8DcX!}@5qkS()coQ%csA zL~VPoftZ{9693B+fd!-Dcc5HctvqLAW7)xwe!Pyifnfrko{X49SHEIAWI1zZ;eS>& zS`&dYcDC{gGdVv+m(dNN2%n!OGjt{D0j9IFi~eNuN~z84(>sA}Z|q$Dm+zUy$(hz% zihP})_=Ns4G@YwGxo<}=kj!Zo{a$h~G%SgKi}zscV1mOzso8dfHNH>_!$Ofn4?WY5EEAV#JXA zz0Ui+mx+1$NvS`md6IG8d5w^OU^BG9r^aC3uWH1 zgVDAd6ju`KhW8;t^EmsjrO2#GNbP7WX*_duuHZo8hrZr70IkXWa{O+jk(bI^eWe*a zvU#1SyVa;q*@1*K^9CxKqF<3kK&yOvucDr{j(byV7>+O6h|xm|On!(xqVXO1eP>HAiPlrlCkC3FFnHkQg$-OMpCMrv<-l>LJy^HP zFIjoj4HYT643;qO-b_#-@bpzJytkfVAE#?nx1vseLj&Z?#x2LD~_L`zvy~{ z=Swn_z5?AjB+3A>0y9^W9ceLR>v9(Cd<=i(mL*PnLPxb1+o)$7P*j}p7IcfIQ<1;> z5A4*k=XcKC%HkSU_jh)*L^5%3aMFq2mw0#~T?hr8>z;$RvU@kr-ID9Sr;d%FQpPw& zsD*@y!RmUaZ^^Tdbg#8xzY(8G5-5(-@n_U@Xawe_hkco1PtnjbX}{Q5f5A-#pp9AE zF{E00vBW9jm>LbFnN4d^g&C2htAA##1_U$FAKo&?>0W|@h_bV+2H`9KyW!r#Aj>$3 zdN2Ca1BT<2eK-AbWEa$4?DUU2zo;|kCrkrQ$Kn1*MwGWl9whY0a7cIYz$gI&6BUl4 z8Sh9)J-z+XIn>ZTnK6}WO8_WgG^ZuP5o}s|@t9R5W5-ilXi4wTs!er;9Y{>C(z^M8 z3cwrBY$pG27gh`+-Z66QH$nw9*BX4br1q|&kFC`eQneQ)Vkn+8R`oFW0ZF}>xS)=4 zy|b7O0yZmeP_$gJ9j8dhNK026MsBma(q}BiRahb0OkzJg53iSW;)T$Jo`&4g4a^_p-Eift~`;gzb zR0aWB{yrpaVCtRHmz2S51j!8k6*# z^OTvh=GX-}#jI`3etCH-FNxEyb|;B+;D$G*3d{Jt?n)~K>k5vDU@5)37v{ERQS61@ zBxD-S8XH4q#{I)M*<1J&A1}z3bQ>e1eNB+$aa(U~ zU5LlX!G)*>?_v~V@y@@@&Nw%HSC6qrP)d*ON;ZY6iegh|;(@E)#LxDhtTqtV)R#Y5 zo;BK6L0g5xxHTtl1EejP#V?=Vx`!ROfhO(`X5_{4U?DeBIN&=XPh-NNHgMa%6O}#t z18#hiAlm~7iW2lp?S39?ZQC?$_VNdLSqO$+8v{AWDZu8wx&kixd+c8zCpO>GXAt&q zw6#c5ocl&*!jnS5bK=xqRsnYn$CL6lWxlzW=9NI)l$JZ;r+0|OeY&u?0&JaWIg`P= zA|t}lPN~cUJSTW1=o|{nssv$^vtWE+|Mu+6&@1GD3)9Wjm@iGM1E8E0tU0WJ^%lk9 zqQ>%Ij8RjY(zDs?vJ%L)@opLCNB+soA5f(3UB^v^W8~p9t+G-NK9ER%YpkIq9&tXy z0srkx^=RJj|II|Uxo2M!+xMge7qkEwif~V;{y0~@F*83^KxY$z_77t17Ep&rucbdV z5wT|YWiriDA{u3Sv633rRLJpWcd-R-KGY-i&$eS&1GmO$_w?>alzO@DETnV?^1XHG zejYJUDJEjW|I#ow!Ixvk6iW?kFx}i%hmM!Y&A|zC1(q8eMx{zxwl%SJ$KuJ!>akgR z%PKN7BGD}@Lc_v|oTV0Y+wr+DuDpDEu6s zY{RvH-?-Bxve5yIe=Zi0zLruM0*Ry>C(XeS^1rO9ET3kh`h9va z$9gGbZX5`|+$b(Mj;%9DxzAk2Y>>w5D>|N!lK&W!6_{tBN_AHNi$|gh0OQu3FcltV zkS!%=w#Q5VqoT8$Lnu8M+U3ujI)oLV_r@-( z@^sGWxr=5j#u?2FG+FVL4&DMKnW1EqoMz$5r#ju#|McfUqb&j=~wDE!qIY-)k9y+ zKQVm3``rBWpw92_B8Vm@ib~SRY0*ii_7mSA^KkY~^cJ@SqFPKc)i~Vr`y^C1tV6jL z!wpJ~hD4`%_8a@|c01(KDWjCY`I_0}=NjXoAlP>7(mCJ13;Z1gbR=Wmk?T0k99|}y zUIsHB*MGCCsc<{*sK7xxP5ZA86Sngt)$z zSD%jc$5WP-{Ld^DiRcF4nEBP=2L6tF_cFuUkE0$f@VXm~Bws5M`2Whoi3vBeI+X}t z{hlK8riKE;$Emmk8sZ$z-BwpY?tgj&(V6<6OGICNm+|v%gmkAL@anK4LYRuV3j9Cq zV5p$>A+8~FWta3NxYLAyG zh@GlGo1(oa)xrk3TLWE|;fyr?p!E$VN0v%sw1FjtbRxpisyFEvSEd>0Kdbx5IN*0r?6MuERmknQoXePZ zl{`u3S2qs?E+z7TNC|5(4h0HwkcOro+so$>r}D6E?)QyQc~oSkF+kfgd846O-duxkqRGn8csnw2Wni;pwpL427s4QhfD5~(edndO0!RLqn@xC@kJ%%dxrz`qevMqQ{{61xy&MvhEUuodk}i z_(oZVKFaf-P%#kI5~1`Lwv>3V@S6|PP{`?Z0|3nC3y^ZDwI)iCa>}YEHMb^DEPBSL z5MrUg`5)*m+u$6~Y#4ZnKOM598*K#&&`UCvGEq>v@qa>S*zfmxe4O2Iu(EkNCCBK& zKm$bBJc89_KYyWuc(uPemBAB}=^u;k&BY~UzF$=Tax9KWHnGcbiXF{AfFFFn(6QpN z#bYf%)G|mf{so`(OnZB8XK)#zZQFClgw`b+nm~S;rv3#q-xN7sYR}M+g;yHO~=EDcKXMKV&;<24aVErM8qzH z)9$dFUj>JV73FLH7X{meR;CqnvtJxJ9F!>R^NFhhncYMAYOzS?0|_{EHDMAKvlh($ zq^Yg|SDED5FrE|KVHcJk6U6dSP6C(6BV~O~CS&U#K}9;|FN{P##tnIt-qrD1(FXER zye4w-)2W}yH|N-6)72Y|327-6Y)f+@N!fun+DxKDKQQun(^+%`>$>I z=$2W%Dj!QYNQ^toD6O4!)~=#q#g_F%o?UK_j|XCk!?SF^$^8c6Vt7e{>Fd3>rX2KL z)UUx;cebprW(1S!6{~`(|#n!ss`;lD0>g5CywMn^hC0%+o~!)?*#3&16p_ zn}#a%yTk8f9n^evdaO)dG^mL0$Qaei0zP1e`kv+Oj~BFR7B%w;?u_G%*=}q7SbIrr zn|5nnnO0k75l(&$e5-s3e?pT+x6om--7Pa^@>t#YqUQ5X71pS7p~aM39lP@SXntfC zm6ln|$tqp^4FQo#!tcD)HhirgT`yuQCpUe?30`66_O?D87X9Cc-P=9Te6&4yRnb|u z&_2m9dTw;~9QYvkHkEb`tQCk*qRPD$zUQ0M&)$@M>@`}Wpd@)5A_EHaFP|_J``%6C zt-=Emx{8!o>MK9V6ghQ{dc^lJO;l}UMr zr2|_!?pxe(Er5r!r{G|beVz4PIfJJA*2EY(+ogCt5{EC(m-iC!0o7x~Kf~2A9aa~G zzWp%6L;IBMTIiIo$G3e6#HC>`DeFIZ{Z=d=?%z}ji$~?(Dxgf3 zV2_N={Zz%yDuQlV)$Gc^sH{^o*5GT4^;TY&^-qb4&_iK_!cSGAGt23cOIbRtkyh!^ zca;Xq6gUhW^JIL5>I{3xHbw24TRhebtMTtLJVixGBIK#5ZDy9g6ImbDu3t%Ex)db) zzeR~W_qzsLxe^Nrot$L7z-9hZQ%OLU*j*tUSu`9aOR6Or_^S&rU_J+7{Kkwpfc^G*`CS|)TDM#8kgve{In&Mv-GJdae zrOYL;{OQj79I0cJEK4&2_DV3QzdEw(H4u?=+131XTyF@zN@A#IM z(;MXP46EY&tsR!Kd?|tPbine7!4x%7k%W@nwZ>q;KQ@SAzn@D9!-Ro;*%!1iKeH6S2`fEOS&1zuLJ!Y6vv~-l z#fQki!{cQm!kLHW6kchd!lCgy82B-Si&LYws%O-#!I{&mgfkiQ*x{&dN{8(BbQ_x! z$%b2NMFU3?0neOIJ2MeJn5sok-~RGvs33{))|0NNkxS!kMiKG>V`Gyn+gB|l34rq4YS}Hq zi)#l<|2p4%YgzZ@H&8$q${;hu>I&$4p*GH8cl4Q|R+j9OlTB0Pm7(~9Z#K!@ZX@5s zUFm_2=!oJu6@Cdp?6!Yc_cp^IZ>~#uSivv?c+R{Zma>_T4COU{XHC32Kshhe!J6HDGH${+a0o$2Nfd{j(*1V6Y(#Vhd!j zPJz+T^l{;yF(ueziYED990NlHS#GL$r`x(Sl33=F=CrZw=!03#a^&e15~*K*W!@>^ zP1IDpf!TTpYQz_Og=d)UXHp2s!TbD&3gDoGl#&@<^w$J>X&V01sp z-D|?D!0mlIUjEFa+3cgY2GCbWqB3rzz_^@o^3Gb`87fjZq5o45&4GbjFZt~q3i853(R`1;YIJlp5YAiuYM4+M!@T~%ZX#MGadl@=dW%z`cOY1bzfPUaM)atfP4f0 zYiSQ zYjY@rn}A1nORs@D90n*>&i-aGE7H>7WJ0WMza*WrPtd`e2#4&oh!QGL@U1_5dloTD z0vz!lTa@d@MJ(_aO_g_LaAckqG+4`@^uu^@*cmz(I(zxe_I8rMR5M7YtjN=|5o3n= znPW5-?ZT|^{L2%?;i#E&%|pY^A8%$f`?>po` z)HvO4ZWO%_M$4Mi5Y#>0NqaJy9m|Yoo2^3($c?xRF@=w2B*^=9bqpG#J*>z&`t_O; zM2Ouw8XCJjFDiL+qsYG((&3fT{_+(!>z&}_0pVPw1PnKZsjtpoM;X>&_QlW;z(8N@ zE%R_CF+enOH%k)DX8lMSj0!en?T|)(|$+@^^3HryJo_$%iSJGW1ZHn zc876X4{hozN$O%oR!RI=8J0mC@yEgHP|VU?ay_|~sn51QY22Bw01;*oT2yXC^kXd^ zZe4I5J!R6uTIN82*>)29WZJQC51nGB{YjieIGx8ykbLe+HsBcTS!C5*W(z@rfP}>; zI}kz9PSHgcfbLkE+fedx{P$PPtWN@^#=+Ek42Bz1SFR3*0{>$WgJI~f{b&{ZETzdMh}Rw?0j)G(|&O<)3_^6qA#kUyUb|MN@`cL$siGXdAWYP-Oh)dtLsxh zuD3GeR&M#*SIn$$f)B^Rlylm{aAT}XKgy!CU=SdF+@U4vv$1X*;@h*rPuI$+|QE|l6AM4ng=?8FYW&-)@Ho}IOd1FeQ`A+TGgN^7-^k!s{ zDYctBwZqxvHj`W+(Y;IkZ&&8o_5`*GxI!TjAcluPv7?%Pyz>^?Zjb4DnjoU99@Epc z!-KrbkA+X}YwJBUAi=FVw6OyTQchk;x*Vf@%O9q!u7sgP%=*$v8?oC7;}rW=m+&NG4X?qEH@*o(Z|%}D`?~L z&Fxmx)sC*NA1m`r@{y#8)$|l-fQ3lk+S>t4=Hk2E)>{NUt&_nY`HqdAzVnu*tR2gZ z+@KItUx5Ub%+PijBv^nJD2IBqZ~3XYmzRiHk7;qcop#FA$_{Xz`4nEY1M#n~xLL16 zZH_RV?|O?>ORMYX4nR^@A}q@2PIR@^Je$LGb?vmfb(A6MLz&talIk-d zLN`)BL_*~9iSX(iGmQ7_kT^##4J1xtmulq<{*f|TPP|lCc>mo@snnPq|Ne}d_)Z+f zKr7c@3G*%M?TY!%!STF2p3BZmW`t*$Ho}%5LY@Yz7#mYhA{33Hi78nlv_RKMVrV1&IF9Eri*t8t zzt-ltDUwCHn-CXfyhHreI`U` z07^h1QkUcmA9upW#8 z{&Q{ipGhVomMIE}1Jo}bPwo01#DeIi9c_i7tBnrS>aMHr&{3nwr_tDHg*BZasXh}T z#HiIEkr3H5Y_6u0!+6i>OgCQ3N|1+Y%7?xYIT|&QaPzK{@pU=37-z+YT zXBzz#7;>Y1TR?X9Sqi(6RafU=!AM+(!>O82B5ajH{P*3=cMuSYV9qW&Ac!Zl#xky> z{cP~59@aJKI{$GO_Wb4+kV-8`efXxhhxVd?AANXPOdTP`lnmN~N9(lL#^nP!tF`6g zY!a0EwRz?~!AOZt@c&4FZD!4y#0kxGWHAdf#$>wM=th}0rHhDAgleP5W~UWW5iDIC z7j!hGtW=%Li0piKYI~XS9^$#Y!*Q&{A{=7fX0y%@5Vdsu83cvM(Q)ef%V*rgUt&tc z@tm>^7;@w?-bju{ywJJZR$Xe0hOVCauon$5}; zw=xx(x~zWGkV`lyUV5e)(eArVX~htjTOZ09?!X3``Mt9dMA^bx0Szq#Z7zt6KjSk zD|&;34aY(~?NLlXyE8F;x1)E+^EpoD>S-doXk_s&(xGKwY;A%bZC%|0q^-@zi7iRu zDZwK5t+QK!fVxL`*;`Xb&*1YKX`<;})G+ZUNfnlx5$0Jh9hyKJm-$>*r#E70HUl7T zWg1d-DbbGZ>A=eI+779E`qa zAhP)?a5dZ-hPz2=`VPi267f@9n$2$alLtcYAq0fzKWoSK-(PXl4iAmql}-o+>_4#d zd1rPlf_Tv2b*Jr&*UNPhd0B&@Mk9-*dOB+u1a7;J$MB4{;~7UluLuhSn{`SZNSHjFo3;u9#yn482xH87ZXdf$DKb`1{IPdlG?fs zANU%Z`Hg!G*N??Y%@~sDDJc+^epo_J7g>O}j6e4dkjk1A$ zES42*jbIf$?IfnuHACp>+NsO#absEOXv*xgNE9xqRW%bQL^dPn0fl0QTbUMctDBJc zDNg3L+dZ8KZM@@Ecylm1OYXnEVx}FQ8Ey9=9bS;Q0&zdrUp6uk1!AUs(`E*U98Q7} zYLeS%gjw=i=j#B$a+4u$>$o*MtV@mdy>0_m#H2~AfhQ*( zV+kC%b!ri2WUurywWEPHNW`&qO#qf=vk=>^47Mt-8I7O}hR{s{u&op6(2vC;>aB4S zqoV-ALuz}xV<7&ti1l1hGm&butN987K%^McInaoQZayY#4H6l}W_6~issmm-CZ3jvK6VRk z74uh*j(4Gr!FX5KcGm(=Ss6c81~rns(3sJd`G!8^Wu|Ka(2vE8{}__#DJyZ7hR8rq z7poVx=6{K?EV5zhwDGwiu~K6WCo$66)%G7o%U6$G^<5Sc^r_bNyFFb9?RDWXm>?_b z=%f4Zub5efUq+v5sNmi}+EK4Ox)P`(B;qH0MV-qh(f{= zxY@=s5{oc?Yc(yg(MCu}i#sG1ZQ<93-0K|=W_-%Jde-4!+{!uCr*Z@Y$6*`CNW@Rk zhTNx5+0MqE-qwu7V)pxz3@-!e+cR^{uAVVuzh1_|W%27krs-^P&#l{wk%*t74LM`a zDwu@eSQ3CSBo?6&*BWx4!ZhqTA9}PfFK^F#PWBY$b`M)=-O-Fh{1k2IJNwOP-ya=i zH6r|t0IOOC1@v)rr_SPX*0nuBWOsyXT zb=6}JYWidq>N+kFiCr}@HFfR9JOS67=yp8#yfYN6)5Z$YGH@NILu%)Cuh) z8PtdGU3at4O3*c5Ge{8_X9l2uvvj6Rzi@P>|KbL$I?E$ksl@X&t;9=MVKlNE*E&RK zTsx82p)EPys#ye*NaZfpPw*$W7n0MZ{g7b{1_PHSbZ|JV1nRG58Myy)8CEwZhDU|k zON~9Sqe@Hgat+`UGPPzR;?M+^$eO&#Q7}z+V6%UGn{znb6*?=*r-$rJ@NGt%d+I8j z)Fz=x=aGJHSkbj4x!sfzM#{{UgmW@ZoibU^XR=w|nOc2)+;&a`E4}_E6Tk6O+c2*M z;~JTzJ%L+limFpM{%@K4H*!y1?2>BWql##HAxLibDJ4hmIm^eRQ7p+|kP8CKN;57! zk$y5y{Ya%Aw0LhBk~8e+UGc1(@!fcu_#>#AKhi7x)QW99S&%k$a5^w*YW>u;T+9`u z0rOMFV_O+M3}N8S@p}iacWiY{!yGb6k@wo^@>?fp^pY0f7AI2~{-dmti5obH*>u2T z1z3MemaVC6q1eb{{Qs~?Wdt`I)zaF>nOoiUS{XbAxrOd?ixZJ7sX(DiST>rsS2u8UQx*oWSr!= zxlX3A@(DxNeGUeZ{X=pgH%1F? z$34!lx{`1A=uZXL>Y2F|%gT(Bm3wmJ0m)y|AfGya zD!j0nch-%9*R{BjBOY;(?5tlpl{>}J@ox9!G%S2*wug+;QkSndxuHP_3qTE#Vx+eZUwl2-X+(3*w_y8oFwxyT6=SLAuEv{m}jyP4CIBuGDG67HyIA0TAvN1gsdCVu0%)&MFC!1Z;n%~mKdxQi_|9oO?68_7=DjM4&DpU#+x4XIAdKmbb zrlR>|S`V_>^IbW*ouD$SA9G=KGVvSRk-LZVYdkn*8aJK}@A%>B2V7*SNnu*G{nUdL ztbf0G^jhlAHbux9X`b&nVqU@iig0@jA7R?awuK)h=2W!GEI;$=9fu>@Q9FEdH z+gmero`^k^^vJZE6f*tObMl4qzs#^Q^z9!hXiPA{1ut)H@JZ~n(2G{_w5&g#*Sefc zVZ{q(S?`QEf1eK1H}ZeU=zR5fkuNiKh6ch*>f}Tyo;q%TNMz}u=Z3BgM|$8&+CuCM z>*JI!=Ba(00k~v7k7=U^q4ho!s6xgmkq>nk?mXsnz8_B}tsSkkfy+_jj@>%S3%l#o zOGqU%7GQES;b?0O@YLo$X}d0&aEh1eQ zD3|aK&@Nvcje?z6nm9yVv$NwB`4Cj;biGMtEDhg_r7eL#_@UXdbw~}FM2G(5(Yj>? zTspHww(jYQrJ*6VbXaL&T3M!}G1ZU!3>@BsXK_{@5awhDkke=0G?waE=k^|fQGv z)qw;nTC6~iY1JT6fR8RHKlbad?MOwuq%ou!=CDA^|Ff{vUn zR3B%_m7ERi4lDJZ^{gk znrP;Q*M(#N(W>UgsUg;&^g0*bt}6L%&e8*(WQmTY(O-$Bp+b}SZ#ddFYliO7ZN$=$ zG(n&5i=|1W={75lHfCPK^JMCXm)bWA7u5*gg3E zE*T#e0x}K3ueC43k8&cvBJPAE*`YQm= zWChHXh60q#nHl@p@^B)5?Gk*&Jt@avH$mr#LS z?pB}-%|(D84SRqIYea9oO@T{5&ZE2B8LXj|PWk-OF zx|3|^)ZftA1UJ_R%;>`P5X{haqbBmL-mM)=bMn;49p7VV8ka_YC6*@bK)DtBCOm#D zjoc#r(Bg=t(O-$BVSchSuc5=vs`P7gZ2`>lpd5;&k&8F5G-;2V{u?}*@YWiG_jQ5z z1Nvb#9;Kq(9+YttBWe)+=r{43oE@Pw&obcp3&@VNvy)+ns63rQ!V&&0&i z5ZiJ{PksY+GQs4A>1&i^(?rt@D|^P;OfrG$Mm90JVr}Funui85)~4yN#Mw;6F0z42qANotjJP{oSC`xXku+X zP#t{(uUH%+Do86GrTCX=d`H93fHU)wb8vTkWi2cYGsLyug0kXWGGj?c>%gmei6C-x z5&8yN;H`Ab`pDogqSErs7I&kzIZ>F=BLp_}bK2fqoCJ%L?hkbP zWh8a$2iv_jE1F|*|D$zrE)aS{eqKCzt=;Li!cBd@;`ZUNPat|+Bt zbp@QXJtB~~jy&bKte$PkqvIi`Mm|gqU4j|;Y9xO(C`|B4HecShjvXK?doLn$YcA|~ zYk8}aV2oFfhpWT0qvsyMfkm=wO=gIfgL`_O9o^Yj9iAQOqay!wm(0dL5-%!o?C9K}|3D}a_0F%1Uk}SEa<}ZXe`)?o0X$myQzRI*d!a>Lz+p4X&hgwUePjK9a?NMa(?<| zURxBg%B|F6b$CY(-Pu?jVhc#49U-Po_~th?S{IC19aetoV?JVaIBPl=@IO#01iR6I z9JO59I643Ty}Fsbu(eHoMyw9&;H8~(2CCe7LYLO$fLkFM%+}`i0d@#8xYp6TWW>_& zhSaw?s{hWWT9YRGi4Z|vkQ(L)uRojbJWHdLo&XoAiKVfAV`&iWL_;zl)8z*y1MG!e z77wTl;GG$03M`hFRuV?A^VxDOEfK(fM6#8k#xt=rEW13?&pE*Cn0%tq^=N0t($LS* zS9wGTGMVe@2?t#t@kN(*~mu1PYX71eG5Ou-N>`Dv0-E*_lbl$YWfBB zfHD5^{S13bHG+gjKErm6t`0k*6XSb>xm-5VUn7wk*mZps@{M|eD!?w6jm$rtRWe;a zp&~P;H##6Nx@9B#iG&y0b>ZIG$mQGlf_8Nyp!^I|tQ+l$n%Rt6qryrxazIZQo2?u3 z=8dF(Z+TPCNz{{(X}ilOL)a00lmFl~qF3kHq@7ShU4s!KX{6`#7Jy`ABjBiu1?)ox z34oi>^ZBw|Jtr4@T8$Jn+FC=c0_%wm4u))Gqmji%q$+qb)#u1ZBQqy&V(A)mUA%ao zt=P%8e()MD8iB>p>HT#LY6%R7PR@XX>|WUj(o4dx?wWW26=9t~U}xw#xo>s*j{C14 z`4)p%e?R0H8+uOeGsF7jw!iWe!;~0&dN{xZmW{lLz0Bpl@)RRwq?2>~z%f#dfZLbZ zj6+k*BLX|<#vD{S$VNIEiDc9&1HwS17=#QssJ)Yo01qb4=yRxaPu8Eo{QrZ>PuU0n zVd9LA)^$$~8p)pMeF8)n0v8UATnuYsFy?qr0-+iKBn)v$hXy9c9XooGbH0AdM(`3E zXLK|f8oTedAAC1BOIro7I|hluhKB10&c-0a?^)U^z@x%o*89+L5wPkF)+`;Q^U6jr zv9W+dqt^nhV-T+AAmdjx0$iAyEMU^yx*$dznP{f1f*ViFVOor?RY6A*Am1mJwhAs- zKKax+x^&#YBRR;=b&ypk8`)@Nuo0*(YzS z50>c+4NwLAk+GOqbIm@%12N%e$G*CeH?aiuzr|>_fjVk3AM0mV7^Wl1af{Jxpn7DU z!H{@47rJvWMei1KiU+`jSsds7&cejTh431Y zI(A`VH&}!aJKZ zhGB3_@;P2SXvszZ6vek6{Z4h?7bc06FY*9nBS4Dc)9a|ZCvRfM$e!rc*?@`)rSuxn zJ$Vz$ilnFjkc|K<>N2rKM!qh%kr+?9c*IbR987H3CsPMEv3n+?xfhp;Y@}oEBUfN( z`vhsyvorlo`+(T$vxgd<`W53j@n~eQ5xqL#*y>@Q%%Sa*r@kjE;ofDa^~u}uv&RBX zO@;eR-PZ`;GrRTy@hC7EM4h_y>Vg_)X0Dd@0g*sG87H5b3kZ00lkbd?nkyT@#9k%~ zXl?&2^0}CG0&)Y{2qreP{hV6czhgNwEfimqjbO)eI9qucO!b+k+0g*Swx8*@vrWx#C@|{Vf5r`mj zvgT3RrWx#DW>m|zkG@QreA*Ub2{l6X)D5g-E?o5EeZ^kD$!NX>k{ zVs`QK$|kXXr?j>qa?lKk#@z{je%U0J_uN+>hG)$!J~iLrPWWqKl169BVl$E)EWQwcbk%X@rgVa?YUoQGroP!LeIC7Te?Rpm@AGdCDF;+7-Z$Hfy7xcVK@8ajOt&hsK zo4J{o;=s3=vUr2k+^b&Z;&nGS7u71Ui|^69cwrYaLwpW1H%|dfvbN28^ezTSeIr%$ z9A<8SVZv&IRjS^_NUJ4gPoUcCW-!G8(6vg@yBLJv#PA9jf8ETRVn$e2>3SExQ@!X` z1=zQ422&iB@T+vai-D}pV)=m2lFh(_Tf|0|sS6On6w}%Q%7AVLQyd8!OXjCQ1XD~V zAe5TxX5JJt7j#K3D2Ti%PKQzlcOkO@S`#nnW$RrGZs;B&SBG~Y^QL%5M0-i@DrEA$ zDJEjU)d60}R5a7sjNZj>tc&=VSBH2Z)BhX-cI?3|wp*$pk8U0LQ;df zw8-ScC|c1c0LOHfLa^^rw8-YmC=x=B>Fz-*o2?8ja``kGt>}4)JktdHE_!xRftqOD z+blp(iYDZD)!lu+Mz|cUXtNw?5xXRideyUwjL3PI!=!x#yxDE$xhI(;PJ=}y4;sq@8a=pGZemV*OU7?x+ib8qc4FPS)e4! zyWNNkv_dYOq7MK#EKB0l8&;3?XZ9@3Gup5Quo?9W0N2di1s*A37|Jw@jY%y%u@~h- z4}|WY(f$Dz*D_BBwIrKp23I^V)&Bv+)mxZoDg-tyQ(Ki$8Cz+&1BB5CA+dKPtWH_o zjf_Kzmj`_|11pTNUSNeuw6&=EYC8d{wrMEPutox_Yn`7$33NI8wi8fVqJ>U#)CuC% z6ZEkE5c&tnz1<%zWyUl1PDnP}89LndVsY5IR_#~j!b=ZxxT7)?XAhb*#oYag_i|5?@_LiCIO z=azJzkU{}ykHE6o&7XZzBm#4?`n#6wbb$XHe}jrHGT#V2BKYu!f@y>TSMft?*XVVK zahGq8$U=`OTdO5YBXqKP$ds%VDBYO;Gt^`1D+z1<2{8|`UvttXU{sjH>uhDDVVq=& zX~W2bCaxcV?DUh!XKT#(adaO+^T7*bdrFX#C&Z|ksJCYd5iAzHWoKaQCQy`2d4kXm zIMI>V!Nn0<0AZGj-&l2%LOmzR%;XKo%$#m>9#_C3XNi8*LGOSbE{RJ~ma%IVxp@-H zQf8ty8h;*X5?T|os+?NWTHLh;aH)i;6t zJV8og@W~p3+$3-R|JWq>+K8Q$prGa`1sFlg;)=OUO996GVZj=EC9ucZKi0^vU6K&3 zbu|x>yc43ed&KYl6>I3wa}D_HmM3897bv7cLbE6Rfvi!A68_Q-(>Kk1ghi-HAyMZX zR;aYZWOhPGolL%pqBGbNm-v3BsQFlMdCX7U6fe{h@K2V~QhAJ)I=Q>?hbql^G_hfD z0wFSDB-#kM8hbXmrQ2)Aaek4VCNjjR=UM;hN}hZmJreKY<+z-{;YvHNr@6hB%& z`oFQOwQ?u2aR1zlxh$$Vd0pE!cP-i7lDR@x+Xs8f>7Ti-kL(Uq<>cKN(@b@E2mh>W zcS3Vy%$ zw&g}4)ih%doc?rYn~6x`m7$Nn$bgWfux3QZ?Q4|uu=IAB_)-i!IB2@eS*L&7R-|0E zTfE3+C5?-6W8!Pp8(;kt0h!ILnRdEurk$iAJVqzJRfy>ioK?M*@pRG-QF2Y>-dLwlf*iQhtJ4JXo0vbG&#S)nwKx&C{%rJH$|LXvcE?G1si zGJeDSj_E{3|7V+H)DO(y~z{D%3R+lj<)?2Mio)E=%_gE6%_4;25x^b;?GswDEs zn%u>}GOR7T)0P#w?cU!qZ~j=@Ij+{$5Q*P{>fH~V`RwC3kqw49=11(}M0(b1nWumj zBx_99I%8Xz!z{^OjIwzmy?i8Dv$<91tPR_4^8v>+(`C-m+OY*wMC20|eg8mYCX!b@ zMggFLlkbva-t9yXx*b1d8j6%Qb(ZNcEco=4YdhTu-JW3?D>JaO4vT-L6Pd(=TB{5@ z@X1QtQ_Y8-dCn>B60?>f@f&uQxtZfpdu6Hgu`-7iaWDEQA0oYcJg0NGRfy@2on@NY z*jXexS!PVJkcG9%wgYDt$?Rr-K2^R}mc|>Kuj4s@Wq(V@r&>I^u7s;M zhvmr}CdTxteOZXaZ(K~f3NihGi*7`aJ~k*~^l*ox%K4q6w;AIXc7I{U3S4iPalD# z*^SPB<5`Pa+RfC!g70}b zcVl1z0G##1KV;tgeKlU@ybRQMP3kPSKj)v#%9q)T*%SBetO#`u6T*f_{DzWtb4A6g z^Gd!S<6=%^cGAV{MmtW#b$UK-=h4ZI+6H|oiQ?~ zY>(I7UEP?%f{*F*GAJgF=-Q|{0M~FG*N+CdkM4v5#O|le0x%BiXWUAm2yvy(T5eRE zg2342=2}sEIm$UsWDt3JY_r_)rpw2wvvzedhjj`w+b=+v9rvu zFA=5#(Mfms{qrG);5^1dT2WS+I%^pj-~%xE+dO0jJaQrDl$U{F6GbGW8LuQBjlcMM zH|J$_7UlkwL4dud&axttUfo*tx>4<#CDq0qTN67gY?5N`sD;c`(&^P}M8blPSl`(u zJ_MFJ(&Y5vhJ@hc{B+iEt1wyu02@02kmENupX7bev5a7;Y51oL{;b3y=558tzFwF;ynqo6I)Af zVpK4Z9%of!Xzi%!{gjp&)BdwrK)0*WHano%87Hwa0A8T~*xl|66Mm=CGS^EaF_iOL z2$+LePkN1Y18@vNo~>n~yBK+$=>zFyII!V~Us=rca*+F<$L<=Du;EF|WYYET<>ZS(Oq{+A7jFRV*Y-V-u>IN0~ z%S5)eGVnxahHg!7!ifKXxQ!MFih=TBsXHM+40hI>8gl_4BR9;2wTv%-k+Xn!PA38@ zK3N9brnrCNx7b@+@8Mc_vS=aPTg(qRwRCl zy=6qglBdIO;?|If->|pbkZ_{DSo|Jt8DjopZyAxD5FU_OW~pGx6KLMt&=A@G+|b($ z>SAxvmeL9*fWHgl{#FK6p~Q>a#f%%bK_w*p`(JHEhEVxzL@V?xj}Q64ee9`hmN2}% zwe83W$GMGRhnVeJjLnp4MdG*ETSg>I`9r;>BSnxoj1=|dhJ+Kfzt!~1ki*_O3ACdi zb|ue`4jcfJZjrWg&v~54o}bIQ&6i-x6UDw7eN)4f&$z0SIoMkCr?%-0O!<)+^23el zW~tdPp;oZ97NHu76N%rjwT2zm=5x{Rx^x*CIV%YoOS2;J8@5(8B4NrOs;$$VO#Fte z<%WaM zFSEc+L4WF)-oTR2oas8u+(c$^9e)ve3Y#z%t6VQaIO?@Vw`8%OKKM=71l!{ZN2^Xh|7!0`xnJ#povg41w*%{IfmH z?gK>+QPR;FeWXCIL$I4&%}PeG%_Sg)l^NJtbf=E#O&Ic7*kTeFdouOh-$DypE3sIH z6=8kET4ULf6W8f&Ev?c!40-N}(yU1Q7F)}Rgdv}iX`}o=9K0Hkl$I&a?J6? zGL!^v=w{d#TZ^`qb_Y;TwURf))D1x-eq(3!GJ&OtG2Cq`qJqJ`+&X^BG;A$;Q`ht+ z?D((7+t?+bDx%5zLuO!SQD2YdL^eqf-p;yq;H==Xj~tQr~6IgR8lGM5V?baiG@{M6au5Zdc2*l{uqJB#YtC?pU=F^Id? zYYde`uw7=yHbb#KS{oO!*6-q++m@^kN zR0Q8L*tV#FTA8shy~v*XyPM6JP}o5NzGBoGL`t%$8o(vI_w|u(T~nd!0aV<>m!2*O zS3@Fx0=ua4Bv*A5h}yTPd_9^LrBC=F{0zz*y#+L zYzF{$-+Gc1;98NAmY#te1NQMC)-MvQ^%}iqdMM~w&NUK~?+&->eTg<$X@Cq>Gr1ch zB3HunBBXi6h_v=tprJTlVy|AKjS|+EiH|bO6(z+QK^~|$<-5#!uk(SOf*7}>*yKCZ!Un|n*caBUm$Rf%6s5iMr zz)n1qFK_xj0$@JtBHxkRu8ox{bq%vd6C)zf`tl;AIl_p{IwIpL@1s8S8clLb##`bv z5|j0KSC;g!jh&gB&XL@kGczKoUgL>8@_yR|J9D4AvD zkn}1&U3(dNy)Lc*k*{jf08iq{Z{7rF=*psHeNMn~#wraXvY2XqB_e!C#7{9Kb52et zy<-e%T9J=~`5Frm{2@%F!b5A7z3GV&8mm-{$YPH3mE}hvad*ZHmI+zm<$fkpy75FI zl1NbFxY%qp3#KB``&ndopB(sCk;lp0rJ(}zU-6hqo(dI6?6Nh)i+4u~WsV7&;H=Fbqlg`XRDddvs;xTS#1H8(~Ohm4NISSI+Lnx`s&NPF4fIil0}> z$6!f0IU-*tK#>5=R)-N;G?%Wd%?^qC-4)BkK`%I$lP%e(2Z;24)Pp{6$el>gr8<^e zCBFGFrL(tUL>4oSuPpctiTH^_(yN3_g}KN9e!U2pUoj*jgMe3Rys_mfMa^YpuwQ1X zhsa{0`aNb|IystSNXEmtP!F5x!Q43z>6v$Xb!8GpyuT8NadmHILP%jqV;GUe4CyOV zEJNa+Oh;U937{Sr5*tRFL1d&hGa$sko!N==S!dC!g!o)|Fnd)mQ8WBGoW%Sf?#z91 zp&g<;bPsn-Kt5l-Ye_ETh*Xgenx*MQLM)r%Fqs^k5;ena$4Pt;fhLI^m*N@;rDm!z zW9{lrV`mOCCIqS(0Ra%&)#emr{+$1gT7~Dq|X< zoncNwi5)F;qT3$=+z+Ap0q&jUg$S>b7(Ghpd5q)Q0E?B*{!mDpRLS2kTs6$=EOu!H^l$ z9BXLhGNKs1CP-S}rkxc?k_p{(O-p!Ro-?xjE?Dq4xy`jaJ;%wh) zrzn2pDKSDPV>iTPJ6?!zA3udwPdsK*ghn{t&r+Vlbm`_P;7*cy7DNXCttvSK-3#r{ zu+a&NqY=3K1GjEoy;bIzTlLmrcjpl>RRyuTV^;^5nogJdjzGEs)r_uZHc@;|ze|OJ zt0lo}oq~&&MuN_bJw1A9z89Ia!$3i;CD+%GAOQmn_g-qsR_vK82`Kpby?+R0=Krl` zrvxT-dWxo=CaQ~|zEbBjcUkh5KJ|CR^>KoD1%fzr~#*V8nJyFbY3WzZf$7f0~bY0xJ}PGoL4a|l2~-m*Vdrh_VqB`U`7 z1XX!n;KgK;4I=#C@2Xf{Xzb6bzIGN1UtN0{rbomu{SNN*xBNWkR_3t2c~ENF%(}o2XP}qQv380iOwaQ*w5(}TYxdijCg94vA85F78E_CQ>9*7C zbvV}ZBNo`h3Y9NQ={EDZ``qum0)~$KjzF@{_ay^%JR%3_us7I020FkYVM{ zFPUD)7k-<*owivWWsGj-GJknh2JAl8?38cKhG$@?ACkGbD(6iw2n@|k<098do;GvA z1(ic$PX!#i+eY;tmIkwpRw$+1A=Oxc!0pI#(_b?Dk$Q4Ew`($6Yq{_vY6ZTu7(>)M z=ul;c47OPcWmT%-iyL7nm7TUe+&S66IOaMZGY4vb^M?wOKO3olaEK-$Zhphkkbpz_EV^G z)28!UmK}dz_oJw|evaz;ZipXF*~}NiVqE1F;i)8zYlfwvGZ4T)cCl00GxSz(zkin* zHu%n{J8c`wb+Fn$4_hr1Pb+d+yJsMtUq#CK^*Vl-zZNC=R zNIY-L6zP+TC8<|Y@$3J3(!mwMPk!)5a)JTVw_@&4IB2($9 zCa8`CphGAzLy8M6a=uKiX5JQ&bhG12d%ON#>?_jNXg2|Ijl-ngZr(~D(iz%#duKb5 z_$~I;(ITWE3VtDzyn_(K(^nBnuZCCvUt&4yF==pki#aTuJ%(!{M3^pfrU8S(#N4mE zshVa2Z6cm`&z@$2C-zk?Wiv8R5v=3g$IS5C5sX2cUCazW6~TPEVV;*YM>lhf&8IScVURT@F*VB9} z)Ob`zJ=YOzZ06b@lehn7OCYpl5r-O5RvY>64rEGvw z=gak&-HF6+SOjg1u$3^Ljsd8gk(0nug=T^b^Bw0#q`~3nXn^lRipy(EFp!Yn$`S(; z%c98S?yUAh@dXxLnP$kZF<850#`Nxtn{} zDo3qofJ^Y@CN*8HfTW&HM7eD;st~O?WMsGoo)Q_thxxr@n{^r}|7>4p%$H!M5jexp zjw40vu!jE({j87V-q%Rf>Qy&;=g(wr$lE*Hw-Pq_HC&=`gBBVQ%~Xa1`>qqXb9Mvj z2V@t9mal<)hTgo)YrVrLh!6?;^*Dm9_o2%x4h4w%tV}W>4AwE~aldgKmT)1uWV!=l zf(R)bgIkBx;d8?xyavY_andtMdDHaMByvk{PrSqC79o5v!nM2Ui%U6n#57kAaLaGF z!E=9=`DN!W5mc8j^57ARX9;pGjCHDFzs+;B~90}5d7U@eV7 z@1_WWny;f`D1UAyNK{jyKNmS$F87s@foq@n>n2(Zmn%>)2kvX;6bt03>{@s|>w-P?Y zH3_ZA@&Gvu>6Xkn0HQW);AS_FvH*2q+VeHc8^~_DBBDj#x@Ugn#rhmX zfOD}bXSoS}8>0S0W@E+;q#B07s$1=g8;oBvr}Eu8>qfTdbhZ%zFEZL^a(J zS-@_uEWb3T2`~qXChpQfc#0(9$gm%ZFK}OJU3AE*aao0|kK92BHeb%VPUJww?3IUi@muVx>062Fp|`KhsKajG#4dA_2ig*nj*UGWrN&ACvp`J0v!@heqSP@Q+4bK^x3;coaU}+zVs$1 z$*+xSM1*($!`P(XPY~cbl^S3zBLd{S!m!6OQ}Yx)lRuXU|3f5x3uk2dR>G9K*YzbV zcWPJ@+k@rQiE%$o2?6w3P-$>y>E57nmvuCEo#RDLGT9vWC4PcC%X}(q_nA6N&)?ge zr{-IZN#sLxb#3Z^s^4-DMcWBzU@U5A@-UP<7{uT zUY@P5OGIbxSNyMSEQqX@4z{^q{KPY|ZTj4G`6l>ioc7dJ4OXQ{BM83Z!Xo0V`WISBw=EJMGjqatPeS%2*7F+AuR%)h68%nk?g3C$RbaV3tYG@?{ zmf=zZoyN-CZj-pafEr3H^Lt8hBKIUUnPX5{S(iZA64MSDHHg??jGF-f!he`-w9JGJ z&j*`k795bE%#Yh9Jr1V*V&G>RPD@a&?f$Wv7_%fGHVFx3GO=JDY{ut~A;rR-eR-l* zH&-UyF#=X@)L10uUR8K7k!h1U!>n7i<~~OJ>2eY6d71lMZBQP9%Pd ztu@@2_z7+;{i#T-=F|E;#<~G0WlMhHp#yO6?ibS=PP^t)K#L%t@F6MPNjreXp z1S3A(!=bB+fYG#wAF-C%#4C7gHn*1E6z`vJBU4)UB8$a&yO}%l{koalj;*EjBT4uM zt#~u0ry3TE*QR-@4l<3eptkCO7A(&_77==M@VJ=tc%seBATvXnz%(d$ZJZ4|98f)Q%CN-MeW8R{Tdip)(qR!@W*p9iaW; z&l>1S%-C)u!!ZnoAwrjIn@9;;NhA@2FdnE;g)yQxiMqoF5YK$tabQ32DYCwjRUN7s znDI2NPj5~nehWbU=Dx&FaBFE*a!A!etu;({Cbm{0TIsiZtl-;%m0L?6806PAa!;7| zUwFKW(5Sn2(+bS^%!4(#2RPM>>ATA$&mmRiZ7nj?=#^SXo@)#n8vN7{A+y$Q`q7ZB zWZh0N!zNGKrWtR1(Thu-pBj$i0%m;H|5c+zkr_9rXJ_{!EXUi`pue?~WfFw7(g)^- z8GjQU%Zz+uYo&Q(43i5pz7xLQ1kjLT*T_9#U=Wd2^je}BuYFzJdd}w`*SoT{6 z5|-%IM7GLi@b(y}F2wkDBNvW&bq$e~*#Fy$w5<3wEEo|ZEhNKvlW01OOP-$^j^hGm z{75(^9hO0OX^-TL=);Q4o?H*beTkpo)-sDpJ`HNEWn}If)yI&eqoIhEzF8rDz1AfN z*u1TExV7|Z!dhTxdm93AgwFOyrER zo3snIk|p3(`#_siR+nacHyy?$&rc0Uase|wRKPaR3-IAL@fP;f*FuQQP7)i(Ux5>K zKHxe%djvuv(eua;aOd|p#p41alhx0&|_cl3=_+eUs5&!Wp znf=+~eA9?`A~539oX{5#?8e>LnbnUKA)L!Lz&LD$OKIN6;{q&9&RnJ(27Fv^NIaF@ z(`_sUI+qTy!Cu+pkWtXw2@oN)(5{Z@0Y*SVx0*Mp(7bh*L?P7U?y%q!RDbF?F|NV4 zuR8aYX(l*-xr5E60Bz1h@!ef#V8JIa>(nn~Ser#`=VjhQk+HH%5_y{22RuTJJUAwZ z6e4^u*-i7Ku@xdtn)mUYOhd`(t^14Iw@sS0t<4(D{@%PT&C50#Xc-6vOTzzYN(LF} zgH;UIbOs6OG{m-!%7P2Mk%N3AMOlC8p#I=6pHFWHkjf;NstIbpz4WKuumCm^Cgqn9 z@=Asq12Tq}hfU?VkM_@zh1!?|wqdyFFCmvK!g$BYdL{MLJ!YMr zYyQ4O@)RA_*^x`e$A{C*u`DjTkoxhhdd+euZ6H!J-m zWL|V;RcK##M{X7qrcIU-UK@JfT!U%$9@466+&!o1&?Ks|4v|T>A@fEKe(w=QImjB< zUz+$*K49p*_m=p5iRVc_l>~`U=UKrsx&9KKR3~MONrUP_(qV4H5Vj8(g5urqz+{$R z0vS%78Q#>35V=m&<%a$X^@P2%0I5}To>1#ZPSVr0|GuMg@KOO7U5+fJk>S{G*6ARd zEZq0gn;8=-2bmvl;N4Lh(nr22bhA!ik|+DuF)s!?s`XOU=ogNC@!HIS9O#;F=`Sr1K5?Cl0f0(8rc7^xv$K))L*&APWJUd@pqAn~ zX-5rjOownK+W_%^m!S{tD+G4bm++o&axG0H0bB@&7#qicH62ij^L_0Mv-iM1a0UZe zL+7mmTILWY_LxUQK>qi`T*uMfn2;eGp^r0NhmkVPXC?!7g5h+QcpOw3$S>8%kiGnp z?r_wkvG}d)2N|Hrzb~;2Y;^Obf!wy}@X{|@CkoDTd+LY}9!Lha=fN|&{?f*mCcmWD z33)9mx92s(zVA!SmOw&-{1Pg~n3Z<6jsP51igA1DI0DST(O5(WGgp5J8K=|{CIA4- z>#V}XIs%nfo7qsu=sna- z@tyt*jS7SEn?Xd^vz^|1ojf~VY_#F?w)XoHuLM)L0@HT1T!UlQX@FFZRX@h?!K9uw zxK7&M!)%O}XXTi6LM0O+)sCT01+&Omi|b^D{YE@k8F+A4=`U@3iBG9U@1X{1Ev}Or z_QjW2qGlaGb~%vf3EX?%A?UJi5m-Gs}6 zMiukOnhv^wOYN4_<=PzqP42iXqXDmn{!-K_SANNi2@{;UT)QJrG2lyuUovAlNNr{D zMbqzYU>>{VdpKhlk*6bWXLh!UMx{l0vn=7dMiAQ`|_9G7K^)x;y9>u&8_ zC!GTdC3On}D5d}og`MMO_U1L`31pSz=C~$i30B(oB^E>*lkhon<4*3qYtGX}qUhi{ z=|?p%kzO)o98@db(Qk4b_8f!{3Q_*|epsV{*M@A4)4nsh5f1}#^5T_1e(9-@ zJ4#lI>JFonq0>1sP}wL*pJdgzz+~26LeXiGscId8+u$<8`%E3GMO1o@nuVa%d}-lJ zv6i!%F~tPO-kbVa0|@++C>j?}O!`Y8&}5mndGG;B`%M$eAglp@eSQ_Y$BgOC|7ASl z8rXl}ieJ9?979hJ!0<_|m^;iH01C}7;}LgiqZ=UKmsC>6uoeMNdkz8&4D$wn(&IZ= z`DftwfD?VmM}DS$6@oQ53B7!WvCCn{-N8F-Y6BHe%a;IHXX^Y2U>47@xc7`*j_d1Y zDzrg^2WIWfV7STW2ja&}5@dk)=r4hfmPMS?D76k9u`>)~L@vIRXT_`&YQYCNG!5h& zP(LpVtBxTQLG|{Ww2h{Tu>kb)4gxeRqtuZ4P6o#_uMwH}QsI}(I=usOR~BfRMHqoX zz|fL534uH~HwkIs2_W4fYz~0Ouy@Co=oxmnN_v=xZ3nE>s0x zCf}W9boq1U=4Smc(scBfQ0Prx!#u=ZWTSUJeHa7`6p~Fs8C|@r>n|OY+QmAV_guJM zmoT2kP!-`7aUR;-NEwn}T2a);ahr_=XRZ?xX&GIvB_IFU1 z8-mdLhC26`>}uBOhK{)Wl3s)xh8n}U#fXHC;LI$uPB(N!V_B-{FbuT}QJW)&ntfJE zTzJmh|1FcBiE^x0v!jJM8Z(xI&~ug9YFvAc$xZ3p(A3~Ty&4@9q^iruPH%FJ=|On>$>nWkjBmIG0Ldn}q_qGRxBO zDZLEg&YgT9F(OY(oI@?K%}Tv_y}NydZA-WF=9nBcXCE!{F6^0M%X7?9y{q;TFcP2I zx}Ank@hR&Vk&aJMPaLyWz?IucbW+Shz@y7YU0t3Dn2Yx*x@%WI76PyUpPKn8y%2Ee z@>Tap10Hpr_!RfCel0}7-uqMn!Iz`Y4179rnjc*ViZX}ysZ^rP>_A{6?yo5A=tBdi zjs+FxRJ~SjK$93&_cpTwpAB($Qi;@}*9u-8$+?d%N&^!QfLN$3`Y@lm_*B-v6}?t) z>qvunPSqEG#)0d0|ld$sB=!>^lsUeo1oK{~vM%zf`PYX!W)eG@^Unl3MV zifc9WTD^Z>g;AS3%~}OcRmqC_rWHFpJMyrcv-H4GW?UFDyxLF-^!a;|98%+-08bR3 z;#w^|@Tc$>9}VtZ<_3N@>-}gEYSrfozTMipC?jTs{oZ5N3K)LpL%XQ@T*0{` zB=$Mm4E*9#)E39A)tmc!`nOhkdxdw$gb5An2!M(ADTcLSIO$JC)!w&OdV7U?$Bc<{ z^wE3n-C}~=h5e;J6^K?}b+q1I;osG)RMN|dy4*^v>Qbs%EIikpkM@1&{S_Ww;vg2i zp6}{ii49RoHLLY}yqzV2N9Cmjm2M+O+?E7S2m7ga)`B^!3mKd}Su2{kih@fd^U3r} zCQ_^aoRY+S+o(6Bd9sdc?`b{-jKk2RTULY)gpt~pd#!xH1D>(oZ!#0;Z4OwxuWq+h zE5jdS)OrsiowT$pi7=WL`J{w@+s@j2%HhnONnUcTk#U+?AhKNfptO24<~q)yPcBkY zPm*IdbCuz_D}D@TQ?E7hR_DGsYJHvn(nptS@2Pbb@>W^ObR^6AK!R-FosVqF@jYN& z8LX8*bLw4(+}D%6ZRS=*u)7iz;;gIJ`T&qM`8&7K)JTwJt@qy3Gy`y5J_>XdV;{%_ z>WR5ARC-*bc8<&4aFa^K@-=f6Vk6a-@4H3M3=(l!nuSs8Z^7MfEZIHAjRbE7 zvDV(Gj~w;FsQDbN{I-Ml#<hVw>J}j5>Gtwle%NMs2z~FzQd6>FtZSLTi~Pt|u57 zzc=oSb<7S&X%T~cQ|-IJikjoYYu4u)p^169Guy3BhCkv}#+=!Ut$9CfW@Zn@91G~K zd?E@K`$P1zC3CLEj=FVv#Z$$+BHwuOCF*FnvEVejGk0d!yEov&;>Q@Z=`ObB{j}NE zGBC`07SI?GByNPsvyKV}4rHS*lH?wVF>;U!I5%?>iVlGQNb{b&ak`9ElMt)&(fjJ! zSlBXn>;JUb(K7I4R~Ei>ErJxBK{y0;TSPk6I(+hy*bE2c%9Cu}w@lMp7+#4E)cbNW z{4qwY7YUJ{kLz{I=N9}2qh`sKwzlCC+*)(gQkww|>Lh!I(!ODHO)|Ay<2b>5yEl8= zwZRlFL**m$)j+}EN(SzJYO`i!-oCoLbm}k@gPfuWLM>@U4?O6sn{grapm6%@#oT-= zFfIu4qwdX{t1m0VA7j*dYa)>K0nTi5QV__xjCWTv!3_nM1VXq<%LJ$Ox|!eH4<%`W8L+?!l%v$}1t(6E;AZ}dPYab&5%mw0{$O`;{(vNjN zfIxY$BiPL(NnKN1!;ddz=W5?&g(|s*_Ar|hxfU$}{&nyjmp+DlIBYX}DBC6mhpZtT zCs1Q6J!BQL42p(LjLWT&`)ib*m!#dUx?X@nmDC4YBf#Kpd&5qAl5NxoB7m$9S=%f_ z2Y3tdA+EX%25M{8r89I?Q1cAb3p4(_n-25TfN`w3Ifps_5Q-mT*n0jDY5a!)SI2_j z240rVF8xpq4f2M~!fr`OG7#EY_d{kiXNHP6J>_D#j!2(qIuBVNdR6v~(1r*JMY~H4qf4gs$6~ zHy*p;jr)GPTyF{70;QB(ZzBVxM(96TUN=raoU|l-Q`;P*W_z%dQu8NZG=KJ5i6gbE zli`msY}3x$p1qVDwm!KCOcbV&FY{^vVCBuwz>y-g#&uZ<@m5SbP->CzvLq$-IDymLiEFO*!vWvR z=1bQbw%(i&S)}Z)I>j_(_+t!PZ%&l@_hif4`b`5y+-7ib9pmy4m@<4$NyR)6m05{9 zP*r-)K?HqILVD`#aS*Fx)H882mXqO+0kUUi=3vyR(z=ns#v+2=(GGiHrPkS!e^?g- zj37{)NxNl;jGs*W7PPwC%J4_h>Y5(a;IksFuA$yVV63df;~U2MS-}bY5wM$8$IVlB z0vS!CYQf~5{L4j`c!msrjIm9_iQbY)=B-H4dG?T5C6C26jtP(z@>RA@b4Le}JyQ@z zH_ppK%~^t}Ut`CUSUx-Cyz3x4CudC(BU&NSoqHiDx}BjYlT14TS!&P=FS^PFXgYuT z%ALK9Hy?E8JNL*mw|E%aDyqSVqOA5u7B#S^dw-=`}8Q7Q6^}#LP zX416lJb@aN;4|M>Wl-rqLN_;x>GukL`GlLhW>I#sKan}z%;ibOK$4>CeHpyrE%(4Q zS0c&9^LVfILx?F#WMA^fAeF$-1v?QbD@hB54fWCA_gaC8c*!-uK!je*60sJ%?5SGrm8H8+pp`z#Vr z8cp$J+UehwWA5CYR8Zk*77=Kr9(m+`%0bJv%k%?+tUEvv^ zZFPP=oALdE1-;UmD&5S|Evdq&nSY$OmQU18zZZZO2WS7gcFgC1r4i zuS&STEtUMxnWqESXqovqxwYXH&Q2vZ5BbKW5JHRzf9Ocjp&9Dj-+ifde4y2mDlfT< zl+eiR0rp$pJ2&)c#x%E?rZJKmF4osX_hQ0l5`1rC!}gOn?XkYb&?Ak&PHWKI&p|`Q zphUK-gieyXQB^i)>e0rdj_+2-S3()#{~T-TmYJh-rfw|D{@$qj{UMZTDs6b7(#B^q zm}R-iL&`qs+ae+zgzm!TyZ&sF`2woU+&eR_-rP?*{tcudl95vx+RGp=0bYeeHxyx< zop-o?HK7m#uydFIK^Ss9F`~P1_9)ad*dr6`<7<-;ymQs{W1FPas40MJ=)Rym;Lv^u zHR^%Lw37NORQSp4Ds3`>C4rdya z8Tt66%ub>+3T@}`P7>$LX)eRi-wCH(bdhWYWj$$^LhYJB$nD7|M?KiAQ2a=n!T8`| z!=+znLP;$Qi_~7FnbBcWez}nCn1*hedoeh-BsVEs;+&l8g?f_P4DCBMyxbI~fpqPt zhfGhuxM=FRubrAFS8GZN_0*KQQnkhzEB)gISU-en#zjoEdT2qR(iG5%PSfV?h7RnT?r;i=EMy<617V#*;R z<4rSibJgVCfKU~hRr#QsN2=XW!m zzkY4Tbzx2~wayJcG*2`)GLp0z;Tofx>0_S~_P%=))uq_{O0PzUYA1vY<_<&9%nnE> zx2rG;Ueh|h`R3*EE$g{zxyeA<#4=uJq*;?;Mg+;ErbDMjus!ek{C;glY)dZY^jmI( zZ@h8`nuofCVMP+ebS^Lbxj35B%;jeMGj4HXrP6m2{9w4H*_$L3=6*Nvb_JYc6Xetj z%)v5Bq&su|vFC!ycbiMI(MoNhQ?_{%-J&?Z{p9lm3y)l<3R&d#F2m`Ms&hLb1sX!9 zaFv-8IgGj$OF^qnhB>1W2kb`(h0BF2gAT zw|TcK>1XPW>i3hU(-G9~k11*z4b~Zqpaz>gkETOr3Uy#k6OLjmy}y)$O9D{nZKa&U zM8USra7FLN0Hw?c=Hi~W9upao_0du~xf!#WPMl#k4zs&?)6?1;tr(dZwP?son$YHE z>CA87=Z_biIFvaWmxPKa1kA5dW(v+6fudsLk&HviM9sacO>lrQPaBA+ zB|L}aLQ#wjov;X(*-bmjVH5+O-V19{1#gJzl`85HNj)Z7ft$A~skpk^;42nTq2z8e zYE^Nz>9Pp~l89`=&V9!r-!baus&RT5w;nH5X51@86>5p3TXiAn5~P@#$?bACO4=xb zw0)4ckGCfIwj?Z4#75>CPDT%<;HwoXGq&zs=FS0}yVi}po<>Fw75O_>s65KMYaIGc z-|@a8hHHiRP;bhQ92cd(WI~<=L7J=w>Tu89Vi<4z74DjJF>3AFEegXlBQib_UM6kj zX(EQ!s~qrCj9&#T;1bmWrZ)(dWIJl4F z{PRnC6F-CtEPemGm)Fab_ZBwNw$OX+#W)F{+GrxUZfkb;OZo}U@NzPzw0Ae=AN47X zcGNRoj2-fgpvy__BllVx@Pcb}Jv8I7q5AAFTHcM*j%?u2YtAutBM4${WG0%~px@j3 zW^AjQeqAJ0`{5$AWqcWWAWi*D(?p{HaQsrerqio^8oY^c?U)u96d@0xVh)o|!wqoO z>kTwPJs=!QP4I20Nc(13cI2>S}~(E_%#TFqNj9 zX$(aW=SPZ`WO>T2NIQjv>d>_9Kg z7Xd)YD=G<_2`GW~Mu1HHnAFm4*ux^eH1;}7#;PRyxp{gOGJK{P&R6QYG`cj&b@9E= z#~7NvS&W%Nyye&ZXY>)evpcg6d|N8AP#Q`Mi*7dGr=`aVYd7cWtSA@l0`KUiNCmD( zf2_48-=f}YagUhJb;$6UW;ovyXqy(@-*sV{19Wmm24`vJEx^T%;9)!VHQx+x&ahDd zpG`ZvkX>C&@L;(Wz^LsQnF(DjePkk;=%p3($y#~AXd@r8GDF97$wP+EIKyVWzfbN} zz)szS)`23ujzR$Dc%xgnN9SoXHk4XrtM+hy=zvYuYv5w$rv*UME21c-yb%=>T>$%| z7!&G3onLX7noHrT_cZqKaWZ_S8P4bCo7}E+@HfNxLVYtf#2PY9X$8ox?z4!yv7s*b zuel}owp3(e4==H3oAG|jy~73X#g)U6)PpWqBPCv!_A+3z+Z2C?0cmRM%MxZ$a)r?H{BK)9nt za@g0bLtQ;gfPnqR>My%Dw5X}kw;oT5pdSb*u%&Dl70eBlDPuy zY&VV*b+?fL0hzFdOi&vsh#_XnRdYQI-FZh8;q^J)Yu2Hz9yyHUCjw0H9>{pb{M5x1 z$6}g2f!^D~1s|qD4PEX-wc%?u`%C%>PVsUwHjpj=qa~&ALT(rPKTpz?&nAUGf55WO{dv`@6f30wFRL`WR-5f=#NAnBw7nNk0Mm zJWq9Xb?Ck+HZm6-Dw^Wlu!b_4$}6sFj-4RyVi)ID6kf9wk>T4?5g>6tB*fg~MHm0B z?^?}03Z(gW_@TqhUkB}v_RY!@GM#ygE}Y0_Rtg|};&8_loA-RSp{ghExMnmPQ+zbV z=9d6T)}z<26!)5S`Q6jFHvqogQ9oaDK5i=d9R-oq)H(If6xoHB<``xbz<6AicCk^A zxKe6xFPIi)$ncq_IRC2e+V1LD`aUk#0t0PkV&pZrMYt30!y7W#CFGPBkq+OMilB+~ zL{vF1IYeZ0zy1qT8UPNCEmEXmI@J)q+hyyzGun?8fTL*_ujXW~_}4JS`KFj?iV_S> z&s$A_i7~6Nn5MZ{2^Sb$4(`_cUb7TfzH|r z91g%PYHBw@8G2z=d4$`}aWZ_yDL&?_HcID)rr4|k8jFKh-Wbk6oqtgoQ<#C*EWufA z<6h(T-aYCstC_y_DS=m}JItY4&;p8B(?-aJ=?>wBq7V-Mp_9kl&3AhoA)5sBCl>DB2* zLqr6@JQ$7iT^n0o_%^X*To=2=amlHrXvyxPwRC35g;jTT*-iUP`U%ePv7?DPm1;2S zI(g6)FK{#B`!hs9^?g*TkmwxM^D=)uA23^9A{dgkqz=+P?^nEf zml4r3LX~&-mJ@KlH#ZKUVMbt;>|EQhTB4r$(t7EDS%k4ev!z{HgACIe>}KW-bn&@uP-&ON)Z< zd(Gb3Kc5*k^-*SrQc=v8FG>f@@}3hq=QkN zJr@J3%e0)6pT3^?QZ(s+339b#i>~}M04yu&CcCk4I(W66W{! zQ6m?jqF660l8=V_W`&~2PXmG>D=g=fNQEML241HWMVoJVO~EFujI!}ndaTsWMW`s& zOGM-Y=Dvwg`WpF%gK8xjJ=2n2is%_WDuoc%TVDPpHy02-S}o30ZkMp?yq;Kvp6{E< zeG_HTD_8rVY1jd7zi%@ldPcsC?cVYVl1zFUupz6(nQCT-Qc*;!O5gc_v2OzC;QOfj z!$BVt{jX_4Y0cd%RLmu%0Ha& zzB*GUzn@XmQ=;jhl(wzR1Hm_mZUBm`(RBUhabDt*)UzXwk(;Y*3Jki8y7DU;G#9Gz zf#@+JdL}-lVr5Eyt7XRgDT`4f;+boHHbR}K4;}e56Ljmuc3=56C8dTCL(9qc7hB#> z^wyT#0HlokE3b`X~@at_;{;^0w*9mCEM>-V<%bF?4`r|MMW zHt1V;%TW=;F~Ie_EjU!L zM3_Ry(E|s@cY>h(dLQvhRu`*aH@C9ld-rXZstK3A4)dCe?g7?AyGs+>M#z%;n&UE2 zAs-I#GMnNv=#R()dfFs3(6)FgHOVm`4d}(%n@XY?0C(b~R~5Y+1H%J2!hNEn+-+jy zVy_rK4Cfj;!cM1^)J#nvM4IlXp0h?*Ks+@OD{kk#eUoxjjdqGLMA^``woX)@3PWme zi_~TtgnS;TDp;Mp*Ko6^X~RdEO+!0<(YN@vXTAyx9mX{R!ud}j6?>wedztcBbSjO< zla?EGYXlyaTC{9a)KN}y8|FJgy^AAbZ{z2DcIatbhIWlL#%>2T`yQv)&@>@5mQzja z1&ttGIRZNtG%CFySzanNXv?msk99G`Z|3(F7<@N<3h1p`!S9r}d}6{@)lraNEtB~+%s$cdYY^dZ zCU=0VpS%_g7XIm6%4TYQA<|UO+gILz3apDJ=-I$!4ZT7?kw;;o>XB$fa1a3R%<%b>1 zsPy#xSiU=9l}DJEFD7v`S9E%zdcFb4opVc}WqLife?A$_tz( zSlmu@!I@+P7!8gxOa0b7J^Jb4$TgbADS%{dQL#6}ea_m7D)g9RXj?ei&&u^&D2y- zhYo4A<_}a=6Wq?xITS>w;%OSD4vpVhmKbUb0Rhlahgk6T%B?7{wC@)IH`N&IG*%A> zJB8ENtiU>wH8xyRGrO6w;JL>JfVMLfUpvK!U{5gW&`&XQbFpot9`nXsl&_rN<1`4f z7|W=tesE(!Wyt@Ua*YhLN`c^JI+5mQ+w2(5F)g>>_cWnqo?})47Sb;nVZJ38uNQ61 zF;p#04h4V8b!yLsebb&oGIP8FNP%0l+ojsH;*Z&W;Hxo+ri271%a7J!1u-UD21Z`u-Vn>&FhAF6&hh5`sAq-VSXWwh3J$(^Aa zbL6HC=mw5LrQIEcj=ubG!BK3I8?46$@1f1<= zhMBZgWrObSW>3=w4Qe)xY9CbUw~am;09lanxN|FNqB%nr9p1Jrl0cuq1)a~|XyK;o z%DfJ=;3#B$Ottw$U~z1@W4Rtikoh)dG`oQUohT(xsPq~X+c{7&)1$Mmy0Hu;$oyFL z&n>U%K6falssy69$|U$FV|}k?{W$D{rRdLXXSlaq!C&5zTe4Fg`U)HLIv@tYPnd}Oy zq3=Av4v{W&vsv@N?OZ_Tk*8o#bKN*b_})LFQW6Xpmvp=2oNEkZ`VQ%&+Fk++AfMe~ksq-0i`4 zwqb9drab6a?^pO%n*-as>9#E|-Z)9X zS=qu-t=BBU0lt~=M$AGUwz+F&jFKg+r`WOfHIW~}mMFV(+_{`TI!M%@+s&S)4IgDJ zcoN?17TYu5HJ|x8_Ny4q7ZaTsH+XCe%_NGW2?0b6nveL-KwQ$5X+ejGHiQK?_sa#s zna+2~b0OH;cPdDCjmHLT6HzAJVFD!=70&$bYq*p#mf4lMF=K&Ac>9C;%NLVZSJ}^8 z%bRJD&E8i=iCHOV%_XXlJFk5U{~UTa*L=j4;!p{K)*X9{>bkGytAMLqq>KXXNlEXoz1SHE>Q5k3QF&@pfM z9DQ9J#~_NqtG;5ZzTJtio;}bX-CzJ-w&eItf1r4fnAbXP_B3tys5}Hu;F%(pt8Gxc z5bl|6s+2mv;9(4(!1FJTa_YN*2=N7?-rQ_q%S?T3RmRCgD;d$m7){CdO~am0|5h=| zreRNXh5OBE0T|2V1#}G?HLkEb)c-MZMi9=Wn+SBZ-#qL9k**5DX&M8egL>5s zWv;@-{v_?-?nKn)w536p`z8JaHR!bmife_}m;tknQv~GGgk@QC`3*&sDN)emV(;%I1st= zL(oBp81n~lJhfU}gMY-`RAn}wWqgHu1MkZtA;QQyHNtcTE@Ls=*JZjCa~!Z#>JGln zlm!xtvgpH5g<+|`zjS9qzr_OzxMLHMO;p8+{ULC{*tej6AT zJQZdgzB>0GL79CX!+LLKyaPDK%HHJRA#CxhYQ=TkR|AHH#>6sE`50qwOQ66;A1&DU zM{y`~Tas8^Xx-nCn)@aG#5b5-hCNVK)$*qtJA0Zoe3a3$>~)bQInLGkuH)IFlfYc? zC?TvtxMPZ|09GD75nOk84TzLIG7TBQub*-AgaNk5_p8<|RRodDQ1hzSB(WMOJHC4HI z3;&!Nw7C&$sH}LZ4(L>PbROvxss0m0<<+#_u#bzFb=abLr6HGUF~M`4eSQEWa<$;O zcf)NXYVou3GEH2QM1R$Q^G$JZ#jEyg%-%ZdJO})j~J{Km*Q3Pol5%oH&4A!W} zi(CnNRF+9>^FZ++QG?pq)3o8EjOrr|^;TC+$!p+H9x_|B0vapo(w2zsY=f-_tO6B+ zEK`+B02iWG>dL$h^!J8Ja3DIHoQi$L-!QkaAlLbq80$l)H0H0(a#u#qw7k z+r?O>YE#`<@bcZGD$)=hY;rvBz}7P@aky@m>O8Iq?ciEkV#T`#+YE2HLJz-Vo2i)r z<;OBE3uG)1Lyu$(ZGYP9Nt#Ax2c{y9!|+SBS%-AZt%~x?Z{LY9&BP`y8)CRryPFxt zwt2bu+)mxZlUD99ZIBv=Ci4`uSzg11V)~`KxtqxD4vc5npt=8uiqf<0+gfJ4C~A%a zm0Jo(HQ&q8EQ1^jkrf!l21E^&BwghYx8}w!AaL$_pP{34^|qXDGT zSiSPdP<$F2$7E-ap*&IRZi1NTWw=*3 z#)efLB1?(P)!kd#r$hyEQ*(P4X_PD8jyud^55dZ)o7&g`EO2YuGr9T5GsUw+C2D6+ z(*`A)haR@Dns~2%`!nC?=wDWY<1%G?_{-CxE$NhQLGWd&uIr}w2DYtk&Ff(Mud3Y6 z&Wp=88kmpTJ`C>nCLoc@5K3N7$I6W&dd|=1H!|Ofi+cBNGsWL6Hm9Nrb}&F?eF3Z7 zoF(#C`E4V2FWS(eGa&Alga2O<9V^ACY+(S&9GGr;W`K~QKEGVYMj-H2Pe%Z_z|&rY z!q@{Oc^0tzG8HxW-&`g@e&+d1*jnG-V?wDLmjE1nDyciBn0>Pux&&0j%F|@fNOv}= z(HxO&LhY+0(XhoMz_xTp_nF7*+0+e+0bfKaK5?-XQnSsD8vurqSjvJN0 z+jyI3V^#$G7;t|e;@v>WE_tA6GX`07({FQ&BY3z~8ER5#0L_~!39*Agi}I^$GBHSk zDU=h+cA2a5(^zZQM-_4$#|Ozhq(_H)k6u7MdfcEjTIkUnOOh@4#MAYhBj|BHEkL1G z9!w|5MipZDa`OzVA!Qo2^8|@1&CNbcvJ9(rT9{=<)gE0kZ^Ze=IH-wJ*L$I_IB*yEn4;gA#fZ?XP?cmeK^~MYsxNSvYIUBfs=)JUy}Iesyg`o|H~JFi zuqlaU!Y1ft?g3Mpt86%%M>WuR+qQHzDs3REP5PP|@ZGvOuOr~OQ4ee)u!qgeYC-Jz zJr1M!UV$DM{vzU37EzPmlV`c$SloS-r^$`%^9^7|W4av-EdFT48+n`z<~1-5!*0uK zZ(tTKb#H(V=r|&uwIT^v-De?$pvAg|1DE9K94++d?2cDRkg%Ru2rBsKnvT?BCes28 zm)rEX<>E3ykLDHuvV@-=6$j5+ZncgG8qdiu5N?I?c%@f<6Tz6cQzhPY<{+BwXAd!x zm<#~grkB8Fx`E7xMJAML0^H``R6#v79)hMBFFTr-&Ot3hGW^zZnaJi)`7fAjQqExRMUua6-XR)S;uMeVxVhv577^qEIld# z)>4E2%>D60Jw8A2^l_v9yLd1AkU}! zu9>Ao{h?3`uBl=~h7RDsU3zr5U*b_8|~5jy9sSB3X`?-mo#nUffO#E>6l9zlyb93k(x_pf=l84IU3T%g{^6v(!dgrZdii`0wZVbaN4UOeVwp! z^kc=;Ug14@0qgdSOb_%==p4hW#31Sz{SS^n^ckQ2+6au&UNewdxle~%E-n)lX|636 z9D5aKOkt!m}i0)0y zV(>f}KX22qf24-_csBv56zP#7HG@Hop<0QC*?q#w zRu`oq9>*{3C@|W_lO{EyZ2onsoj%PQqrPUu#Ezc|A}li;B$IoPVdjT?WB1K4NLRNk zmNUZCIc)DCV&8~Rju|qlY<3jn6=Rour}`XK5qEQX8E-5C5G=+IRG9Ea4SW9O1eT5( z_B^tV(afNWvZFz!>GAyLQPgv|bM{j>=F5?3dR}|C%$ua#l=olUd-MV*(rRQ*;LB2x zc1Hv%WL?h$it^#p1A^LAjS;(qAimtE+b!3XO|XaA$`|?MV03g}jyMBD-rH1k6Bw)f z7P=ZM5JihqC~bA;(D2|;R6ncR7Z=rO3h^D|HnCTFsB6Xm&jGjK+vLIRZ0;DL9_j)y z&NQQd<;t@+H~9t0tn`wJ>7wXtMNZ2g?Eo+T9zhvieJSERZDYna~&u$dsf*4xdn*S#vbZ`aHFX( z`bX^a+`DBoq?{9}rfY_S($VL(kLCDvmqNDNWUQ`&fKij!%xBHO9fqnfl=JHb;IgOt zy%jOZhthwI%nkr(Y|~xbYF!!ZdzkZCamu?&I`fzY7Hb7!Of6<|xGi4OYVK8{5pt_X z{?nsrrU~ZKV}H$aJC`MDQd}qZnl91YhC-Xhmxc+xA6dfKX1stsD)Q{}swN)VQj2`b zGn@>cac>zBAQ@<8npw*4s@qfRWFoqk?a=4lG1vXl7WCBGxlzGGRpl-&liDHFcnw_Q zWmLAR5|1)XdGhfB*|3kG1n#*AZt)dNVun=|3^|iB%g}IKc1#OUA^`4l?(3~=)Go&i z=i4{}8(RjS>XP!ZRN1w8X!v$*oGm?Se(GDRsrr?fyJs9tMEC4yU}TR+6P@dl&Yg23 z)pX5oA=UJ}_F+l1mwGq$$`b~+OI4^hE6=o(4X%bkRdWvm6*)rm_MG0A+$%wlW;k>& zQ4&WKvFz?v>k2=6k38Z7(5Q90yzP43Vy&RBs>KXgmrP`ua_|2lDygX2PJ2!VY^gnh z!+n@3Mhxc4SeoXOcA(N@12!XrOq2L%iJhLxd|ts-{>OCMUIry=(FxAWK_J6t+*|ot zPTW-T+M8KQ#1f}yN=)MQ!e%bFs2V-5g#+&178ctwY%)Al^-XcN)2Df(9yN2r{Dt1L zw;2vHO+%1)MjcONn#6%vPQJ6qIzOY1x10Gpf&H(W^E!h2tzw#8j+x{OJ*u85vzmxW zs-b6_2CmPc1@Dwpq`5zkb)BjgG4Vf+MO_1aEXbXWM+I+WNIMn0=?2>sFp4X%WlYWn zg>XxGuWfob@s_Q6n?1}VU3FNL-O~mH1f-=)LK>vIr4;Gz?pT^-Dd`T8T)MlYyBn77 z?ha{}{Pz8Re?N20nd_N3b7JPc&wbEgZ?0+>N#GL&!)4+K{d=UaxW*~&C=Nb(DG*@V zBE>d#Di?|oWV}1Srfz1UBo8%vw0+|=WSRuo`ni|)f#y7&s8t15|ZvQ(nsw_~qFgp*VZ%?hO(42cL&J#fdm~vRIF)3Wuiz zOlqHgqfG>1>*+`L<_qh8XKGD0E($^ai0!MUr@T3JrQxC?!zLn@!tOuv=&3!|_VG`===R*8=J*_i$9#CfM zs|NzbGsFlu%;i|x^5VDp*`;rHACaDz%Hdzp2d)a0$zT}hbS?4fjTEY{)~o*b8+|l7 z?l2W)E9B7Sa#KzH78z)S@lEut__h8`D;zJfXPN8z!C$F7e6eQF$WS6sQq1NMd4|51 z_K?6KwcCgLLq2LC{Efzz?B3l>U_x>mI2(n%T!S_R zIL$NDN+|Gz;l=q0(qkP;IW-=(nQfSiEuq!vh)tO=>+O=frzF*ux{BrDD3}&2pqccx z4()_4w3b_UE`l#f6ITtq%IS;wUZv`zQ1LJZ65^0u$tb^H^zq3^W+b(Tx8_Ej;N6w) zHE+dWa7l~*#R%gkhjf3@G_e8D@^F*5;rHGH8X3O%45&Gc@;FX^As|0(`UkbHi9(V} znZ@Q#H1KF}znzXoG5(>BZ3G!H*GM~}CebapnKmZ;fI$;>=E!h*bYgziA~vNw;any+ zQ6>Pcc=vJ3O)}p~kOa|DaZC2@xx5=fSl`l;w2UT%jWnG6F@h&=EAaPI4)kj*D7DSw{j`9d?dE7P$K z5^tr>RP$(TIz34-15uK*o%{OU8a8Enf^*2Gmljrw16^T5aKe zaQ(xEdN>ynZWIf2l8Uh9jgIKxkc`2P6_PGb*(SsyFQb`Y_~egt*_si~>K_Rd0h!Ot z@g6mWEW1|*<_45sq1NKlrL(_CuCaT*9GKo`q@I54`9iSwEmmSSG7v#>uMl!%Duq;~ zD7n$L(k;5k3<=4)A>ggS&F0P5pcDhkwxzZbjnw*ZH(w&s&qS}h6%{s7TdJB>1x|{? zh0x1#0?>aak3sDi0)}OSU{B6y401xhggA1~4U91ik9A5+XU+L+>R;>-d;FR9JL>xo z9cO}f4vcO6Mbmm?A}%Bt=r?LzIc6YiL5P+A0yjHPoGvg?*!npb+amr-=?m1izt6mW zVgE~3ZB)#C`BCiY*TFO!?S=sLCOf;B-<#VdI)ZAx=B{Z?PJ~L!18r&3Iqe$a)`LMZ zx?NG_HhXw-7$e~Pf9K%YcIh_l|4bP6$)t!5gkHUD1WfA(lpW;5w;kZxyI`iSl(n}p zw*5O;!NN``{@~0=uWFyf{x7;NCZoB6D%K@gSJ)M0SaW|}VR=C2DHm=xdJAFPokPyE zwQ+M8N1qf;DOPx)&aTsO?>`BiMZaN}Y%1N;_S9-BzSY7;8BB#u>|wEMZKaLX|BbX{ zEmpuDD;GL33PF-;f5g|&=9`u6Tq!i1dB&{1zDPdXnTA;BFiNFlq+sv{pFS1h5{d8? zPSLx0)I=TtJ(GY<=7g8}gjyUzkzU*nxGF57!SdXpDs-9FHYdT{Oy4)we;c$n5@UF9 zbYvt9Igv(B`Q@*QE)LXOPA-TfY30^4T>?hFbjlFE>-_fo(Ta5betk6`<&yc($40zO zNN?eegT&xJ9X>H%D3%5SzN8k-iN!}ubH~sb$$J8Azlsi7yMcf|Je+x2iAuhfMF;pPnHMsIY-c+kpZlPkEN7-)4pKpQ zxDrLKW%n^Hef#UI%L8Laro7_}*DjFApF)l-hF@vuBLUWO0Ky7n4HmfStU6cospDZjpGmLxq{nw_@S#go*xg|&ACI({cSRN$%n9q5So z+0l=4e|;Lkks*3a_FY?Q15Fc=!WCo9BoH4y{`ei#;+0t^rx-vjbpf5w%*QUlb4T(x5Wq2LjxlaeZ-P60UlT6e^JZXS{ zddHFAQ&TAfMdki^VKRgV9~5)rg9bi~HTG^$*T8?~IT<`Mnl#A;$VHFzJK^7lzQM%vVr(MD!`xR(ZcHU-DEeA~2Z zwCfIJ-Urq-l{z)Iz`GKbzmN;0yK&!MAk=#9i`^-VVY9AQfYNHMMOhVZQl& z@=bFeW{T(xAM+;PW+A)!1BYFf^1C&tgTj*~7~YPMD^*8+f{@=`7GJOlc%xR&&>Ypa ztSdgM4B0w|YAo!nGlBvOBn3%4flShE>(*$Vzy#l&x;P(>o|(ei=W|eU`AFL?lUu*? z%`_$E=hQng>w@iJOnktE32(?h+z@JeOYIGE*KG2hT{rH(7wT<)W9YI;J%OeR|6~#- zF^C%xkvPWD$J*3pF#go|aKBrN?wN}J$=@#IP6Dyv9e~@IpI+0yA-LEnH+SG@CECa= z`O`VQR}82YkJQy9yoNq=={Dg9~^Co_9h%hD47`}P4E1rj2iv)2Sm8wEPJw;RY&AUAyJCtoF~Ox3`tML_4@~w6_gW+5?O{f$1i* z;2Q>RxL+HLlYRdQ2$48+fJc!MC$m6>jL~@^K>D@Gmg|2Q4AYnBM@?&3j<9*zBpAK- z-yd~DT{rnp$ye7b=D1DDIxnl)&XJeDbeFN-<$P)_{!X{36T24Uu;etV1lg4m|4hp{ zYjKY;VjUd5Y2pLBvrSPFpW@@cbJREtKg!0d*L2Df*!9j_CbPn0OfXns>WEv>t zRSlkH2QQY`c>?u@xmNiF>}}YjgI(!>?@0>l+``y)v%1?>)$4B#Fez&%_=rqh#`EYd z#3e3nEnR>NmjcXARxW**|L!FHJ!a?X1Jus}k!$T%haZp0AXC<5uzdXI;%`P+dBBnj znIIxeBG>;!j&{9$pzptqU-!X94Nd=>BnINmfjb`g#=2&K*zuv z?H$(lF8tenCSN#x^h1hWSH?LSHSyJ>j~PNA?tV7M#q28CDobA@$0m+TE52|s3Nfgd zIU%d)fbY1IGuTYfTg((@2sx|*CbYc^T#q*a#xNrJ_c_m#*_=pi7aHb*HWKJfj|CCv zLi0IVgtinj3x$NkD(w9`h?tCYixlyQ7_7EkN0(nU7g3GNIhZ)Vy`!%`LpaMY&W~$f9GHehFKeV<~Y3XvX zg+Gv9^xAvfzagqLDr{sO-uMD>$#;W#&R>KF@5q4lff&x!y*f{P@vO7dfQ6F_rXhb* zW$ciLj$hj=6c@34U-TXIH&|ilA#J^>K1zeg-UZklDIoDu6Mc0J0;pnx;VGc&EH}v=`bUE<_0_j zylZ8!!fCYTOQs_eHYqaZhkhRGGgGZqO6WTM`xl{iepK?XVHud z-H4AG5?Lz#zU4mi`I|wi3{_$WggT=<%gW4|!)X1ED3-Xkv37J+0lC@;H`Dr(XmZ<> zxjfU0o6FRCPkii)jMC_cU0EhCqp*`LnFPfq8GegNfF;gJV1!nn>fQ$2=46Dc7_q~C zIp>2#=#7KLwx<3pdFa+Xx@ub1q7?Ox&pb^?rLYSzV81FBF`@t6)_(k=n}YWe+`fZ` znDL~UNQqgy?eAWv>*e_Dq3n|}^DAX`r&#JCf!Xhp1V7Qz?cC`DE6KW(1>mJfU2a=# z#}r7g+`MJCf`LXiI;4H^niDr0?59-~ROrQroNJ@EuTPvH;m<0u?41|iRV+w2N$b!S zXbw^AmbM>|M}IT&6T95a{rMwLjfI~kYiz=I$YRI8R);p`xX05JbeqOp^3&zUet7ZJ z_6Ivyn6e~0-z(fKR;o|4vj;KZ@`LF{_L9)S?a1wfX$j&ETZxyvq%lk zbrtpJ@ha6#BE`+i{JvI*^M z3FDF>L(>L63U!>LUy2wcv|`a$YC^RFT+!*X&7t1)BTu}`!dvGQ>jQj457x$*X$m=0 z0;?nRUo$SZx_C5{Bq=^I>p${B+u`GsQm#Y}8lhxC%l%QJ*T2stN@$U2*|U7o#0K0} z?51w1Y5xW%x6m$C(=YwD14K;TJ4!fuxEj5q7Hah7VK`#{dLJpT%2jQ`6_++>hlw1D zea9$UsRKdx3_Q`Pzdjg;dol3#-PFk(#=M)HfSR)}4a=r&-I940f1Knd@soFaZ=0<| zKC=S)OGs@nphjPfLHYNRk*S<#o{+)r0&7p`u&5}S;-n7}zMNGhQw%o!u{Fc&+J7)6 z{Vf$=zg^&ivt;4SG*m<}{%b+-leyf>dv7+RFU}BWXjOmF{etg}>d$a{jq`9#Y6GY4 z1_oyBHW0?jhoI=%{qBx%jtty$u;r@HQ%=Cp@|sG38h_Hj5|bx5}RY z!EguI@?<)Kj&P8z#1_+=LhYY1Qe+kbqLVx`#XfOM9uu4=IMmD;;Ecl-3=Lf)_us_v zPqRV2qVFpUP_k{Z55<4y!4Wh>#bxk!DTwL zdHauDXlh1Ni@Y5C@e7IUd{&f7*G^%ZZQ7&8MtR3dt{rL*k{Fsg8J0Y@dzuYI9RWs>|A{yMYVE3N$_4%;c=SlyB zPH9A4UD^Pg+LYQo3LL{g+6OqN|9jQPC(O{R{wOfYfa1ousyn==;rHMmAj<#2yxi-p zIDnkgetFBjk#xA}ifRm{SXybZqH%AS_l|)bbH| z04I2;W=3z|;qg(l~V=O0`}vL77;&tnV@su#aN$cK@C z?Utjgj@YO(xa`C_f)pDS?UnB=jU>krxyf0X&bP=m00kpi|p>;QyI4 zgAx5^*CnqmrC@J!Y2FuYHCu}+(fs~ zI@E}z2J3r_cP41E|0+Op<@!yY$qH`m)0rEP6h!J@| zD100$Q}APkA}R8DXx{&_6Uu|^SUu{MF~KRNsl!pAu_hRkU0B}(xsqhE4Xf@R1We4# zU_Y)myq5^#=xEzH-1cu1`BO7_x6QS9$nP$4c9Za!%U*a&qLiJUgizyU`aaD#mD)5h_ zmV>Jd0YjTq3V<;TZRf_M*846eK~Enfk$PKIg2`(_r`@xcVp;0b*066jIQO|ksa{PYu4%z;_ z`Qb>pg~qF}2};NBke1d8iSHd*dpvW_7$$fEPj%FZT$Q#lS1oxfWJKIoogHYz1c)xP zmN0RfG5V{OHNt+r)9u6euO2{?sOlpGNu^9ji{|fM^Zk%|gqu#&1dCrinED zMG-%6i)^Lzk@s=-2r4L_NVREPOr#h*`A==oJuAnTxwW?%O8fUIoMQbpSh-;2yhPxa z-#~;O8V$rWT5>KE1w}-@ z>c`EqbrBQl1g^kr|e>3C}>*~j(Xwh79T zk(X12qO+I4GEfpSQ^MlH=S|^IMa8CX>O~kmXSBg~SL$9>O$53=<`y1Y0wqSr90Eh= zo&ipJEPlwoL=ttZvaU@R(z=Kd=xS4x19l(BHL}u>1$zYIYflAM@zba9th#1B2eYrZ z^I!k$uPeDivR4Bc$BDuy&C0oaRO%dg$qI=hd8^NfcPjD871s}%2s~QRo}+zlBL0Fs zysB!tY+AU|3SHBf)T7P>`$!=zy1by>`Fs31tYuGebGG8`0~NQwmmNnt$Hykx!Hi^x|_J1R{17{nmO)#X5vy{H)i3rGer@TfAqlvf5T) zQ4#8#Q5;TjVMP$8fq{hXDZ5iqRtiaYN z@SbS3z$jiTcP$>!y@MnLZZ3#ZA-UAyzhqWi>>-Fi3}i}ayjgLSU#>b8D3~2N$`xI& zm@^k(|7CT;vF zd#&^@GEi|m4m2c*NEF9`2}If=+Q?vvEphKDeSxD+~RJl(>H)tp?tpTzhvy`9EL!nL!IFQLP1VRbFX z-{F_{0BOx=|Hw5AYGGD7NF7yc5E%B|=bt_I(}HO=;UjhK1xx9H)a1Hs{kAwTKe zXJe#8_k0Q0v!f<*inOPRr`;{|K4`cWhbi)Hu8$~IJFHz#y&}-=8-qvF)+7H5(uvxU zMMS8@1iyE83hd-hEepf--yMs5!t&Hes%hq%KQ>mlKwC?3RgFsw9y-OR-AiFUfqTF^ zZn4oV4qvk9)&w9&Fa4fTf6o8w-88S(CwUxsJGk;L_Yb!&x>T8&Qu`C+Xl_;^m>CA)Fxf1x5 zYu?3-z6e;&@^MtaCH{%*y2aA4Hbl?q!wQM_|1VQ1hiqlTytQ+V)#G9m?4}Rp4T5~` z-yS0EQ+QjUv`$%3PHm2Cc|ODpWija5RzZnESfkZSvzK2b#$?|V!Z*L81@N}7{WQ*wB_Fv63i#jUbYrz_Rec_fR+{@sxq zZj#57htWwKE{XYi@w98mJL;wHQ68k~c#&?t8Z979e4ekTq30P^tnh2RE3Pq^VaCIq6ze{G%N1 zLa&rpMNdB>l9`h$6`ltDl3#f!v`D``-)FdtuN+zi8J@W+I*ZLm-da!a(MorN^l(b- zWyJjGhBQUq0JBl`TE*Tj)fIiDnO+K6-LlWlTHtnf%~`8xW3sW8hhcJBe|3O+_jwi{ zVNQ7DWbs#hF(8<3er+o!mEY)J*>sFiFuY#UO*`SG1KG9q-%5f4WpjVp=DsYbjMK4&gN zK2vDL+~e{5GpmYz;R4?E*WFSsRZ->-74rA=zI+{><@-19U@brLN#rTG~PEeOW>!&V7SjR)tI>R>3OLyd$1^|8d9KC5uTw&H@RbWiE-%T7;i_M|RnML>yTZ;vl8jUM zhmjSD>US=D5{j;0-=(#cJb08=Ezz)>r7-Q+9yiU`8Jh`D%|P3X<~Uh$0J4B1*VvKwr;Br7EH~JS$u!99A7~*$5;1QB$L?)VR*<39F zn4@sSv3k*2;faNOd-!^ll)aeXxi)dt2p7k$opP z@9~*MjsotqUnC~=iZ@G?Z5hX=V)i93`+6}?lF+xfaFFak?w1Wq=FZH;e|!zIi>kyV z$X!H=$9Kc`$=6;5^2&852){HL7f0uCZEI5fX<^SBx9uZS{VY#9ya(8g-x79kEZ#lq z{LyfY{|=Ww^G>$r;Qe6&u~k&+OlL^k*$;D_>Abw2RBy9z-6Y}{ZQ8EzsKBHl*~XnF zfUim3ZId<8ZFv1%UAy=CrowgD2Z{w_9(W^U$k?h-X%E-Rq$hMC{!`arYB50hlWT1q99R6kE^H-haW%?W3Mi&n zgxq75JrSFkz=6?Rg^<;~}@l@nhvPDYHs`e)XZ^W+*4al^Q53B$!z!ubgqh z8{O(`Smj`lyR_WaH#f)k>BY>T^AtqVtqo{uVj2a4X0)bI1uhXbOwEF9Q8N$2toB! zT&_3roQ}eDVk7$UQo^!XGA82xI#KKaOk8QIyE)ZsJ{oWgL<^b}`$gF#^yLTJA4ccC z{VveJN^oB0%zx%UIyDD4WQ2d6u*1kBq5M_2C>C8rB4gzz!YjRFI-e4g2;0MLyEBg_ zJy(z?*uN!8T$+rrd_e0=IlA#Qns0uB~GIdQ%?LMM#lhCnj97nUkAHA7~p5LdrJ z&vJ|3O;57rmEk>Z_!t%DQ>YyisH|q~OhGmly6W6SvhLV~cT#gqlVO+x*51Q=u~hkC zT@kG}L*98cu;wn-kS=S^A_E~j@Yh2l3qG12S(jSX)$P$zR98WHZX zae7q}xLR=Nb2n7)A@kM;!1M#X7fNABSC-r5>`sb75jRE6wy#|MGf^>d`NdHre>gG5 z9+}-Mx>x`_vk_x(!-6*SoM#P5XRKzxrDVInd-;p@|d}|Es~a?m);o*t|Kb zU)$dDK45NdSsbl@0<5Ta1sziQtJy++Mv{T6@osNVa7P>Z17mr7XFw3K-xDl2W;Us7 z{=#|RxmbM)Jc<*xxybL`=HssK*`71367ex3P93qd-rX6z{9F+KqgYni+ z9llPqTI6S0K&#nsOeOk6BT@jj<8^s#$xjl-^tC#n)Vm{c%BST>B|0_hS@fcUJ>ybj zpk>lMv{QZ=o=#x9tfcT47o;h7@Z)9aKxZ-XiqS}l+vtbLXZtGe(2d#MdL#NiD{9e^ ze3#mqovd;9n?r{BoV603PcGnqYpU52esJvp7g?L{WS?*~$b|97ZN64#YUT7%Vr7cm z=(<^Q9ZGdsT2P-x+|DR?wQqEL&?+-|lYewFbVhrAG@Sk2sF^PKXrpW~v5w{5vb}!1 zmNV|Kn3a&kKdJFG62pGpVX_M?lQ&3>EoxPb_+E1U@%ngRX02Y>O`o0AVe7zUhUwrXPKxp@z!ekUK zo!$&wi7j$$;xFo`aN&YCXunY~gH;mr9?7otDj#KYFC*{q)QqeXKvkJs4Nk3LRwSp>Gr|D0z6^ z$A??(P`&bLL=p5B&g+V-UWu0$`1#Rj<-{sb^xa83w{@W&n4m!zmRr=#aF;@OjFd*_ z2+1ZU(IrTg62qGkT0LyZJ%7M9x=F`o*w!GmS##@~_KR#=3olCIxwVokTXyd|(fhW@ zn)!Ih@Q+37E8#w&F3R*YgbW75KK&Gvl{8PcL@hyHw8zpM4$y`oA*lpJxCYq<7!{PJi;7 z)40IhALk=fe&D*S@PLZwil;|bzn`0pL*55H56v@>XT zCeUL{`gQ;!AL_48aH|?xWS1`b68Vl6u==?A3^E!RY-F)U_ORW>!_c;_DdXyGtb3C6 zG;^K#*k1Gv^zmgxk@zacgN#H#2}v8XW(YTF?~=jM?8pXS)G%Q)vqTe%y!MjuG+9Gy z-ucA<-%R-zjUbS@1X=K*JC);;Uc4q7;}Sbzhb$USQT{q14{ko+r|YJ=WbwBH>rNU# zhsUA5fHQ)Y&%aS}!+At$r}{k=&PL8IkHa)?xI`!|#V|7t@PnJWO|Pj1f?@Hk{zpLQ zYT!l{3#m2(8!ET!sqJ?m9{BG(q@*2PPcK+tWn?fP-ftyydcl(c$hXf$znGsPq? zDKP@!G5s_um(rad9)uP?jJ01O_Un_I$>dTXW7i=wjgR0WQS@4o-HS#zjQI=10&E%6 z1kL3Wi69|p9y9!qv0%|Mx_u*3y&>mSkA6i{Ke?ADR#qi@UYgI<|b{ls&81Q2(~6>G&>}T*5rFh_PbeH zNG7D9l1d0FJg(0US;>^gSh+JrvugUvh2uN?G3_@9^j=N5^2>er3uOCu@mZRi3FdNqCM#!E!n{%}G;xy+y$I^dxh3OHcE!R}h8 zqaI^8ua+wCY5b-)uOIrl9aA#G0vSovF^msihq%AV+?TCioq&Ntot&QudCTA{_-)ZH zMekl)(f!g}qDs9o5AR6#lX0w|@g@Z!e;jE~yp@``mJDsFCkad9M3~TI3~fs(a+XT? zl$KNuVi#+@*Br0-=Ej;>%txayAZfBZq(Z`rMK@R$#rQe;V#d#G3WPi_0FlUg;7k=DvX#rWB=DSS3BL|AFK8{G($VbAkOFWlovy@ZqoNBsM-jB z;(Fwsq#DtTVz)t3+Zt+x;#_!~Q6c0!f>2#do!G$O4o`(!KvAg0ON?NX!1&x`=OxWo zn=wjZ&iW=I18ckG2W|lb5y*&m!B1}kahJud#K49VRo}a$gu|RjpHBz%u@dV>)Qyo8 z***}8yXSs$?>>_V1>35HbfQ5(h3Nzr(+_igc} z?PdM-#7tGv8AUb8zLi?CtH% zX*TCid?={QNKSar#(8(tiEN)x7#hQh1(_OxQ6-kRjLWL*qb$0T_RmTuWVmOlwNhmv-&sX_D3J$^s@Q6?GZW z6kqr4pD0B8oT6)&lm)ba(E=LjOkpXfqae5(Xrs@v*%8)4@@NakPbk%l&FW;7)BG0~)^jKr~1)Ve1fWpJ}?~1{-M7l1J{hXGEn9a6gd>=C(32z7chS zcA+N@K9my2U^Qo#@Drj5FVbcGn)l`^^-8fOSB7CsVUL~-&&3nPE`bEQH!F<^(|wmB zed6h}_k?NYuB|&$quVK1L1hr90J77Lu=s${>BiKHa_fDT(u`fH#wqfykWt`(fS5t< zlZVR=8#d5%w}1cF>}chWBuUEeeML<~$c_dv5du`ht!MOcoJy`0h_QW}c>rEcg)>{4 z^X!msZ^wZz!m~b5dY8FxVlot3FGY@0d+%w}-VTMXHfJw4HQp3A_|?COT4Hv8P`etA z5u3%9##Y;JXypqUc|LyQ0Ci5VYyH;L%s?GVMcypC)1qHrsg=~!T3j9^&Q)Sjt*mQJ z5}+;;TWvOx$6*9b$8IMytD7<>rY=jWnzknZI*otO$r6@bs;17|E`luLPTBcL zA}!8cACi`maP3-9l2Xs;xP;Of1kzJhIc^uyV>E5?9_{nD&HqKqjiZOj$@|}U6A?50 z`9fvuJJ^waeT`xT+Jf@cXzEmfmwY*+c$@s6$l-6?9f@^L7$(pR5a{R@;wYc zX0Z5Fo$q(ZcTT50n*6TDWrAp!TcRR1&D*u@Ys6J?Z0>%*Fb?Y^5$FLcQCl6OlN#fw zX3eGlDRk==Dhp0q-I~L;dkG2rMJ1(2`J+hU!{zH8!N7|H;Tf7d|_T+-<8k z2&>Dh$lpKsVqN929 zEq0nPyDM~15=S>qkoA*XCdJ>%)B-O2U4+-F_sW2wNiYIzSkPX zQoJ_rO}uloHwJ@W-wPSeO`b{iQS;)*ru5EH3yI*#@=Z-ml7u<6b_!JWuhgL4bV)l& zs@w?*g$#k$rWZM=g~LKeYLS)*rFf+$-aLe-^s}E#4mjy0K?q)t`KeLvDvYY&JK^!l z?F#D>$3arPY*oBOXl6?kCSZ@1=y^3}pWlw1$5Y92_Cxh}G>a$=?I^9+HLH(yU-XXF7- zl@C28tvA5^^}{G)u`kRgi++`pdXPh3AuS4;Hfn6eN97a8COy)b5 zvA8ysfl&*TtMPT2Y*G;`fB5qZfh2qzX^&l95ZMRLA8!>$Li<_gMR>yI%u%h?{>mZMY$LGJl;^XdZ)1h|Clzy6g*(ZzSI`>8gY&yn9)w?_7Nw@ZNNV4QIsS3V2yVr=d7 za$#-Rn9C#-^nHD5 zW?fVL83oG_r_>!4JEg7z-qxx9X{44I#$LS1qJ*yG<*zAe+Jr$7$5aEZ;8n53e@!WA zo+=*?e^Jf#pX_@zY%BMlwmv}cx3?{*ky0W(1t;3V3u==T)J)~#dF&f%J>!=&1TqR$967Gp(pIOZOC_Otoa5TL9Jj64dwcK9Q z@J>{4tr@|4<|Vp%>|eO)XXhav=(;t4+OF*5x;0HVO&s3XzZKaG}uu0`NTix$ahW64s*T ze7WvJu4G?;=S@K`9WkhS-p_qI7Z$;^&4Hy>5{fVk$}5@*c8J5(Xct@5)wGNtJ6AiC zDF~v{#^Jl!&qm3PZzv}*9IA?3K+|n+qOQ@H!S9J97zk<da7IbTICTA`eq?iS~Ehn+y?M4W`@v8vFe9QFKq0d}(STd+b7g=q)slnx0>1|bg z@Ybr%l`p#`e89OY8I2sCd|#|On~so7Ul{n+#2AzuRLIsa1hyR*xqXk{913MLK&E~i zIp3Z2BtCi^%~vK-^yk$C4wAA3<&RNrD#fHoNPWB3uxm%Bc1sNlj;pm9?XPk$_avTL zI4TN-=QJQv9lG7Q;>=N*%^C{JT&?onR5_%0V_27zpLDl`C~~9~Z-3Fgwn+!mZ6GoI zJfDpq`}1{;tF`09T=hT7K~H@9hfZcUwpW!`_ja^A8LrJAQQMe;g5gH@w=(wG((R(NNLxIjLn&`hUmjGbaoce@ePumcP;i3%6_tihO;!3z zF?3>U>`Di$rQ4DUU0@4 zOP0=kUDwAF_KT{;=Q$u_iNi(xN(M@{3FD1oR41&Eqxz1o`lOjCj>i?o_L?nzg_NkB*%%M}%nS2>fBRIq@hQu?e2DEFS_L2FV zXS+E=UFDF`@iSuljex^Q>aP0hdou<`4C0sEBH;@k83=C9I`4qNpDi@Jv^5l%1KyXl z-EClnPb`NIt83Ezy5P+Z7`80c(Hq1z;Z(zq0TR&$m=_H{UZh##mrSK#2DL!r$I+1s zTgL-bI1~DaMXC{coZESNzYP{?aB@Xv%MX4ex6;x;&;B}D87Li6)t%BZPKe+7b*Bh9 zHHOaTTL{1}63t+3%cEcYNEWR_N27uh$BLV+%+w(=Qy^O@H|{6N^Usd`X#L!`)0FXX zO|C(q28*_S)gnOy}p#UBNx84ctp4u#EGmDO{>q5X9wcQ$M3JAHk4IjE2gzF6 zq|nd2GtH{%F`6k^XQ0g9n>14>ix`r~S>L^aF=^pE1V`ZUa6@J++?3 zyRlS&e5XfRCopyR{6JyWZ8p`lFFh2kNy*iO3i{{-%H%8GD`yYS0ElfW&>(gStuOB= z+)Q{GvO5p^QQoI{$Mm>)&QI04Q=rsV3)xo0IfsFLH5L~+{NMi)KoB;b^kwQ@4cF>k z`H$7Q&%rG{22^`rfd4UD0!_<+I#K@NsLMR^Dc1l$*9Ct5XS+qZ(ASY28mxXqS}Xt! ziDz4yHp1_Lx+C6|G1%V6G2hH6Kde3G`d!c~=Cs@$n2?)nA2leuG5sIb$L?{+xXpz& zt-sPgN~o2=BPFZHku#@P_^LJEQx-mAmt~mYnhZBTaEz+}d%Ny3%uBH?;2AU}tCS$! zeQEtenR8wDEpepO`c_gwtp4pOEDcJvAro!MyKBSTL55B#a#<^WeoG>P9(6O+h%+a_ zMZrEZ<{<3_YW`qX$1t>^`sRuH`KIn^^3w{y+ePoB4w3~0lrHRZvdWgs6+raZs*xMr z&3v|fy`^IZ8Q5qCH4ufWmM@y`)icbztQhhZh)qn*soROcB<@a^$G1N$Y z=SwvLx4z!+w1h}trwc~vH`>Vb{rG)XUGxQ&0!YYtY4ao)KZ~H$U*q?Q&QaY~+mG23 z@P}(H#KT@~rY!wcq+ zVP^N02L?qBD~j-T`MsNiCCCeImHLbF@h>ygz;zpBk1FKx5qs=YxeWFtkI-WTg3Isbx9j_xYm za|~LX{_jvPRsi)aLFb{By!{7=%gicOZA|asQLpJ}f%UD;{pCp=aX@U8(C@~4WZ8{* zP!D*taIPt(!3e=)#75}ETru}eIxv6qV(nUe#&a}i2##ytC%lW*vYcwLN^Jsg^T!DH ztY}B}y8G_Ui~T!%-F;V1XR;s4*s~kCG*(?Y)L!A8<67fwD1{_m()Lc`VbA7WpbS2~ zS!Tj}uv?tb`tEwiehDz{H&pgT&9dcFq~cq=xAU71ERsHvWbFKHgq%&wVH+wMdLzJE zmXrjFa*J}bnL()sMr<4se}0Z|*U8o6+BVNv+FH|+>7ZJIjcHMg`}TlTE?)mK=9m0- zZa)x3ScpFRltmBv7(ps}_I1RZo3F2GY=aaBxfvVB%3@UZ<=PhOv&o6d_tBYQlj|W4 zc1w!;M1-^Pr2F0#$z$Wmpz4+rJzM14g4IRZ|B-Z!;c>NHw@G8$PLsx-ps^d|*W8J#8y@rsa*;e|Foj>MOGml|F68BMbO|A&j zJj2Al8bmQ-cukc>X~R@`RHX@tEa&i$adY@j?wL z8i~C!*r3tuq9{u+pMC#8EN_JGAzh4NWgN<22w#%@i(H)axQ2pFB${`0)A+HlsA_pB ziUr$QVw=4yFguk^<48SRf{X>5RZ5oE@ti8cdNwk`Oe%y0JDc<3GUEVp=H^26b|5p2ukjWq zasWyya{ZIr8T<&SjxPF;kj_0=8Yf(1`NoD}lVjEGgXYXdZG0I5bY2P zQMTbc95J3~!iAO|%P<8}C4QxeP@sO0pW$YqGx{+YSmEL8>fC*7!5Zyh&$3>&hWX>k z2Lz(ueOIqmbegL;U@VDz`nnk}0aP-^tnRjQ=!w=KDtFL=b2Eo)wtsTchNCNn4O|)O zcj_hQPinTb)dQn$!mAyNGL!r*m6ZI-Z(gbz`D3lA`?%b=b+{0FE-`}1^VScW%yhV6 zU&HMobl}HIhV<4s)vlhS-P)r;7faI`!s8^XXA10RpCH6%`OIE;;FW^z$i;7F_iI7MAblXKzCOD50z;$#YX*U! zm9_2h{6IfMWuuED{>>-gBzPk|WHb(@fgM7VHJd}wYA??LNF!+Fl~$i>?>Yycw@vs+ zW)G*V63pOQZCs+|AOH0MM@;{|xJgj(WzMYe(i}ydiP|t^c*9bklCAjYpYccWDzR?)`ShM{E`EKxdyhimh0tUrGOF@Gt6$Lkb zyw$3$YD<#jB>Rchhy_Yy8t@>Gpv0c)l+Iw>J1_-)H!EnxE7oQg@bb)AfAEjkY@>;G ze*VV&un@%RL8qDW=BICqrs_3vBB!kMO>E5Hgzc#aT9aM@5E}@fPtINA*I9a_Yl4+l zg!a48w5Ue52`=p7KAV5PJA}zw>ztq&U5HRcgwPfneuPHKv&p_G^mP|48*kJ%Ph1nt zDjy6EY}!%GpM!}|H38=-4ku?6cG(T^av$>x^8G1>Y&4ye`A*Pi3nJ;tQ$>ZB10i&c z(l{nq|21s`l<3HW6bfvLxgtR?5{5-V53+3`+9$)1!Bd49qz=jthY6Se7s9G@;|C)O zw80~bkqOE_<)EKBnzfke;KD}S<2x-c)eC8!c}R8Ooy*bGzStp7b3;YX8=+h0BHmXa z585Nt+=^nhKKzYgl)Cq>!#)uXG~JI6Bg%=l1GG!)_Ni0>I2lx-Iz_hq5Aw<@dqb)b=BM(^ zxFoGaDpkYJN)oU)jB4Y}19!z(`!Hy|C2>UkZ2m$a%g0$QIWkwqw1wzcyfo<_MZdd? z4YU{cqauH?@<>0W701Z#BfXQO%Xw6d1eF`F%78sonhXNQBXrA3l;!ut8%kLMimuZ-rld`0&_@{jG5-59zuINBe?6zd(huZ(w;niF?( zz8bfBePqk4yb@g^&4%0*?^ZrVro@Nj=&y=7_|#$e4_Ekzj^zLU^!I+>v|k+kEMkyW zFY0@A;e?tI6&}z6M{YUF`N3qn6G|4dIjrq33D6y zyR~k><;i1G&ZN>MqS*E_i5+D`{;<&&8UgS-SyH*1Ot`UQvJPs-eyfd-h|VN^tW((t zkz;#m;pH~;UBJ0GJ%m-}ehrN&XI1>_Vy;Qa*-$Ec16{DvW<_`k+V4;A0=IrLpT@98 z*5OF?=SA+RHr#UV;tS>Vktps^e%eTiPSmDh_JQ}mr3J(dSy-QdX4t#-uQ-WEF=>Lt zbC=ze`0NSzqW%YW)cSS7 zL^(=8|MNXlh1|j@J>`vaKL**>N`qJmw=Z?)@vS@&?DS(fhaoT3A-&mhIm^m-d(6fw z_;Mqj8@n1m-wQC%ny!V};+Rruj9>kSN)MnrZC?>aP&=q7X>n+^C%Y$-XZ)U_%ToD@ zZxLQ}`xHHahB=l(bgF)77FhQ0(^Ba%l>D*OjlMX@cQSPJKl3`dSyGfyi+8|CkAX-W zLX;EpWzm5O?my@#A9bd?b8}B6Q$!^hP z*Ux`KkM}9@Nt0c&DD|(VhL&^b5QbYENv0cnlGC#G1$Dk!#!AJ-I$^>_=9Z@ic5$!G zVLGMSd9O0Hm1?iXT6`LfWWO%PBQl^*>@Pm25PaZIpN|xx)acZ2Ku;Hh+GfD{ z%|E}2$VQ%89-?)3iZ#m+Rn`|j6nO6FGPDclW!vJh>S_oeMqXC6W4G+;X#(|HO{&pdsBdWNN{8 zXqgyuw>sIM#!o{D$vvBbSW`cQu)QBmM~h@`7w-E*D%xrE3v`2HXjsHov`l087h9$m zUJ?=wS!Hoi7qKyw_8wM`?N0_d=~2=oizaG5`vif~*yU=J@8*f&W=j1R#^|Vr^IEmohgSG{RT#mtgt|w^uW*8^wb>|Ea8!lcgMo$7}|;-eZ64q9~yjE$6@WD|eyu zO{Sj3rI-aESt8L{+v-KWF>#6Yum0#L+?j(>j>YCIgz8Z@C2Ph`cgPgrG-P%blQoC^m9?d0z2JeoC?Yc5S?I+7+{`8TMxz{2vcUW#6e z5^&F|_#B&%Jv`x(ji9Bnk7VX5`ID^o@j6YUJA}f#7&&6iY(<+L#w*$Q!)*)E5FI^H zEnwHD`H&2fgw3y57jwl%pVhie=5j12s>G~6x?<`yka+Cx5NTzSVpcp*;o0|jP_?!r z9o!CqVU=nM+&1WG=vvh>h6wxOC|bT?)RZDUm71-L#TudVqo)ePIg;9SuQ~W>&Eh!< zsL>i|123)@=ABxosD6t{We>OjuL}HqU)s?N>>LH&NXqc9Sga@A9ai>T4@5=7F|!TV zlQa(DoEwJn&vmq}kc2Hd88Zw-IaXX`vZth*W9G}St?aR@ zO^E7*?9BK_-YL6LGi9G~PER}fDT*)gq4)fHiRtxw`Av^+*73|DXXahhaYQWeIuIJi zr-VvYd!Yw7Y11V2nv=8e(Ft#WFS?F1u7e}%wbnh&+h4APYx0(!A?nMfF?{CA1;Y5I zCpk)XTf1Pa_pQI$+&xfloIjr9TFT+ivE4`2i~4c~yD=%+xa)hKt5IH@Mi`0@t#eXj z-P0i@rXS2#~)(U{@_`%iCL$l6C7ox zHszis;s#H(EGHl~vk;y3$=-Qy?b>E7;W`8s^yPD6(9G;^}PIFL^b-94^9u&`WLn%%wMm@%~D#+H=jPzU?aIq$+S z;+DktH{Y&TUz>i?QU7hkPY!pk)A?6o1`-j+!9v?Kn-9Ydl_4#n{b+j2g3w}%dA7zp zbZBV+s0}hQVOI1soFhA0MjsANbHcqb+(B-we{!^zc}=rHa%Vg8A&OXcK>w)TXvjkV zcg0Sdz{6KOpQ0B-KK~srt^C~vYF{GotgQ8nt8qCPe~|ORQGS8GX*M|%mRky{m6?g_ikl9)jZzz>OU=yMv#22vKCuCtEgK+D_WcXzJ+Z(!u!Ip_=`q(xmiT#!HU^3%7=O z_0)W7s19mm`Qtp!Q`0;D?tnO$3>~USSt<%E*WbBw^}b_up|Y#@F2@&R6=}!tuIbtD zXnXXU?1C1*Um*W(4>MHbfoUGd@6<6&;+Gl8J;EkpXfCjYC$b{x!RPcYSt@Df#8fxxTw2Kld7t3HD~vx*yDZ_OvA%jArDP}- z@7}wfcKl~}25Y0o{&|+ohp>;v#nT1xs9Cu!$B_3&M(u>SKi5;TiPfYA9da3#xZgDroo{+;q z4C~h{ww9ur60CSQry-V<2%-OusAXe?gO*E%Dq5YB{nb6Bq(6mmb^oRtWK4YdJgii~0#w)4saon!69Y{^wA| zgeH{g;(|Zv_Dc2TwPxuOn|N{}1-}~)#nxn4#Wv` zdEuxBTTRK_T1y(ZFS;&Tq;U`0pS7D#rg{&M`(kGZBLyTI6E>lv%MXq*RD}op_Dn@y z(G)JPjgoO{^{sgpm9QWG<|NE>(YbU7IbYNf3AFI;;Vkm-dITRHu~^1cZ%CT>9g^v)*8WNIW= zRioKY+Q~9j$V$aOxL$43(&F*H-oV{f>u#ZxM4Jk_3s^V5g~Yyq-Br(f%@Tgz#E zu`2o*aj?o{LWSq!jZ~ygZMoX3$^X6^96Ft{@4NdJgucwUKtdlRzAKoef zA$&87|Eo~`x!%{=6=UQh#;DU_vS3#A-9p7$_()o=$fw40*A!d@IJ||jFr8xJLJ1YcfaM>y?1*h?TjROr<@E4X zlw0dm@nvJvn{+|xHW4R|+vO(lOOTfZW(`TX6U{Hd*rzJA|{qtbwav9}R*D;CfRUCu!=! zZHr#COjCzeRrdXub6q7RjrkVo$~(NbWwKa=B^nI12H4#Qy!4Nldq-XZR>V>Fyh9hE zY&$V~R-$#5j*~21Y7kj%@F9TgtrSPKRbCIRO5ov!^fsemmtHXhAYUHLbuM!DWekgY)!ZdzVy$SVAJhcd2Ff93X3((Qhn1n}qHD)?z(ycXnKY|-$4Fe|SetRc~d7oIc3J}gyh zSWogOBpNM8*y61G~s4%u+R4DzY2JkeJSU%~t? zp~r>^TrmQau-4+W#;+Q)qb+gltle%#SX{@}8Ne2mFy$DBzcn&qV$y3Q_y9^PrORJ>4#O;gh1C>s(nxEY4@u9MigBJ#Z zvF)_*UCJ6YiX?9Odd7~(TPaxeS!LLb`2IbY;t^|wOCv2ZwW#{jQA!J2$ca#WB|lC~ zfA4b8w&D=v7gU0aaQuJ_Ed5OLWlB9PqGD1rV2V}>)SC?+T$jX+9pP7TX}d*jXw|5YVapLV5xF5(+ljT4 zH_+IJ5gnXs+4TnPdU~@j|68U(^iCbVI14Y-)fwb)w)G~s#aVc$jU&%6e_NbqXudtO zbQ_Zw-q@zrD#^zTR?uLV;o?D$T$3%PLORlUSkw?8kozR1;l#RN;^L;B7HSdp^GtL3 z4sVtZF-f$DJjt6Sk(U_o;Q2z5^z0W^HmON7yLmZU5zbeP@kK!Maxe zAnK|0Me5s15(S{k7L&5)9eD0_*1}GnWLQ!k5D!*^J6HV>2r4}j3c)`4X?xekB%&xI zy&>2;#4uRhFz721$yVVqVhTbnU~oG10Hk4jhizdx4Ceo}#;P`@>1@a+vog{rUWc8`7=3 z%v7h}1wJHBW(Pearn}fV7v%YH23iyPPVx_i{xEAs9PkVpRPrD2%s)d#D-SN>6o}7+ zc0ved-0*NjNKZOiS){2+^4z1K{X7(uqB{b5FFttdEuN!8rcO{?{|1~{_4La3l4&Il zs$QNdJwH&vpGwU&M-RimjShGWjtyM}jX+9WSYUnh9Vg~_y~fP{K3b6D81VEyG3aJv zF_jsoZD;g;^mF(*gwN+Va!h7J{uzwvQmJGVw2}j*S8q9JKXw0fv;TsstO0=X^Tp!h z>(Q;t)kLI*G(L5vYCd_V#Y7BRYxSUAntqfXF;Tw!Ho;-NZL>!0XNMOWpg^$Z~_vs<1f(7_8gkt zI*x+3U)pbaFv69=Ip)b8$dho!&Yy2va*C>D91fT$z&HFmM>AnM znPiy$1-B`L?xo$Dh0p(vwZ|Wg<#w{vM}j5tVXxwpK;zwSyIw*EnRn{ zhtX|Yo%x5}&icY8KF{^f-lU+ubUhYkL@?uK6Z14jN3;+A39y2gb}b%5aV{=e30k&;oJ zB_Kcg4({+6#u=y$9fYrPMmgODGAxEp1SiG#PSDyDU(PFXczGeYh;p08v<5>8DL@FJ>^+m-}$m1-Ej z7hJb~<80q4uwa`0vn$$Up5Ez>a$Q_)Y>h^CmtHx3XkhEEvRgSQjEdIPxEGf;e^Tkwmo|)}KO@B{#>V3Mm*|6Bch)+@^R(?SH zBUoVD-G+{+7-eJ)#GqCJ#KzI#-{61G8HTh>JeZWu zzO-ayWd)-78Gx)If8PL60b!c2|F8_OFb2KSxf zIn(H;$^Emhn8{*|&8G$x_(V0t`eLeTk{F4?F5xT zX``Gb8&M5? z{$y#g*s+&QO-ZjCg5~lJoOWq>@`jPNKT-rH6@v2Gc&y%_F*Jh-Y-hRD6Q{h0E1t8) z%jz%QCyh^?QMFD|-h$B;{s6z{Sf?8vc2T&G!mLU?^cNMz2@?yZ{`#$0QMB*WGSRM~ zN$xa5Ajv14Pp>`>Y8Nnr9M-MQ8_co@zh0lM<+t|{8;~r#hmGH5*ro&$r}mdh2h*nN zpVB=U+xaTDA8?C{TvnX2h6Nk+cpoqN?8VIHBx7u`$-Wrj*3bVox?^pe?2K=#h=L~B zOiYi@Qf!9gOR)vUU)vTV4Nc0HPTbE9oxyx5b%Cj3^>3MGeN*FPIb~34{TvlK zrvw7GY&W*w64g8H&HF!~(rCs~Lr!hp*?#Iz6GH{08Y3nOIGppj&l10LG(mjp4q~Te z5bxM!zvE>PHW7=9yM%{X=3g^hM%mS6C>q2-%|`pPZNcT{G~WcDBt!lCQ{%pirbiFk zBSDBj9{OJ{j7jqH_d#vuDi}}*Yd68W%G@(6GTva6(@;<-lsDwjlS*54BKRMgB*!Xc z!cWTycO#w05XOe4DuwMJtuSaL;2;3uadY;;k`pHUUNR|!NQi$r!m5Y!;il?lxge+n zmHgs9!l5^jK+Pyr6oJ(awvElt&Dk=RALrfmI}n zjC_+r-Vk*qFaCt?tR>aHhc z#LC%-?ZI?$dHz9Pmh!lOtP1QdX6LViGf_Xxn+PS(c~#PK4%5=)YT*!2Ji+NsG8R`i zWM*!H&l9xs)!rFT&ekekxawy&I|M7y0fhi!tt?Y6lqX=j?`8tn425B;Dxy1fM72Z# zJwK}qaG4V(RLGJ{on&kM+h;l*OM|hjun4=u^_>SNFTx@WMpGnY`yB&F$GDsd)<`O`|T)ByD3z+{{pEhMc&Jdpew?!Z1jX0gdeilo{*I9?P?s%#J_HXPMrMLlm>xv8qk!N%&1q==plaN}8!$ihigAENQ;1EEWng zWJ$F!_ts-ANe#g%sEbB96>3zB>^B2CLcLhF>c8)f?6wfs%2LvZ0`MOA^B%r4h3i3) zh{Io%Z5(&F(AMX&Z-k?3sfyt_47^*8+`)4L8R_JN=2fEsI##6`X-l?=aO9%3}d}EeT;r#I!D4ny?cNTg1^!gAZ2~-x=U4fzzBhT$$7_$}PBt=GS5=QjsX+jg4_|_ht$&S^%C5BjweB3}*Jn%-p%*qA>}UMB5%ncY-9 zShk7H(p6)e{6r2kyIQBV{;0P~H}U@n@YEOwX}{X2VO_@(+hQuB`xd*?F~!w@uS&0D ziMT~;MhPQOG9`^1Y9B^}*OP{XDNc}yQb@jev+VyRnNQ^8F-wKjncaBkElyYd#iZm~ zf=YEL1b}Y|&pRF?NI_{epCd@{$=7fWXDY-Dln6y&RE!Qk0}E7C0FUH=3Ns=Kk_^<_ zK#oPPf1@{~RkoR+?1WlaKx4^GIYbmxIsf>kkC2ZDin^boQs9`B&aloAKQUQ4M(&m? z0wE2NRR|EMFytiwkG$6-kufn>5$MkWLORZnKeX>y2<$@r4C+t5o_ch7CMq1}_PV^L zDVM-aPv_%NpCGoOEM>$p_cN&eN#N618(tm~5AtKIQfb_4uBzzO$0wZa$^f6CdTN)l z8jW0L@0z9ri+AX!@Yp<*$7&~D)OO)sZ5jDLsl1x~d8XT*B5w?Rvm>j!cMA1jI<%gKX1|dlXPbKcWK+acK%nlT?jet0n5*bQRYr*_lg%EN ztLd9T1eu0Bt;j16>2lxafxeGCN2+DCwyH1xDyxAYZ&Q>sNT`xgG#CeV+Wbc-me~-p z;ktpI6-yYOwo#bNx@`oA&f!zg;>q-Tk)>LGLKqq3N^L7_2ESRba|mK&wfyko`=Zh2 z76>k-uW=Tp`?GqUw{U*!o9PB(VK(~r?GjJ^(JGlxHInp4dOfZbg6H|p>gO0aj^b9A z7{(6r(Zd0M!+I+Zh+oyhkRAH0*EOT3HE(E@wW8wVK{lj~Y88yVN}_MFT7L!E!82L8 zH}wDEG(wU%OZiK8dFs!s+KPKNI9P{(Ek(X2jaQzg??7g`Qg9v5O1aZ_s~BR_`3r_{ zo*97jK!agqBM@rAU|PON&-7!}w!50Tg-u}OA7$^KWY$rZPyDI0B)Ri2kHW~b_T_J! z^U^^}h*n@A03&BN@g1ek+f1mX9;>7VIIY=i59cN@pt{qf{H^mcS#yE_`(CD+d%+>e z&602_C&bySjrW?t=vDMM;|xtReH780Oh;vZCUp08oE7|=yqBN z^@re-O(W71#Xpj9=i}wTJ|?2?OvZPYQvG3>ci!kPwJu&#vc@f=cOQO_glxKa{2bBE zuXnf2?}_XiLi8nVURbB>wBHZc_-l1HVk59AnS5WT(5RqBV1nmFsy=M95zIPnDd%VI z>3t}hr2by9`5Vet$*%;_RY8rx2whPajTNL;k#7nPiu1y@m`~umiq~?jcio5oI+tU4G z;F5kqC1MiWd|8I_R`M%{-jBvuG*HR&y>{bKuLJZ4L{SeI?L!QvSw!QiAxXYi;RHXO zBehH!_6yk&hFX;M`^~}3!Yrfuuh$Z|#1Z0T8o*ssy&`iucY~J4SdRN$vP(CiGbl+Q zn5@hG$V(IJ_3MwyO#2qMSfvNbEzG2MMe9=xhASSgr+`=E{QAX&Y#VK1>zI+(Abnl4 zPx5dCae4?(fW4CtGIhw^r^-*b1l&boX&VWRjm-*CQde0uaf>6J|JPS5M%euXi@%SZ zUEq#CzC4ueIy1rTXAt{_G~v<1|1b~Xk6G^Yqt3uci(R#o zoaX5qSJ~{>pFF#&aTe3(CT4Cs6~LKupd4yS5)^dtd);qGLsy8ku?Bn`kMAYco2^qo zO#(6%F#6Jw{v?0u#EiEMSzsi9uCB@|P7mSZrMtGd09fuE45HF-CRCYk*}RQF1OY61+=cxZ}7S31xX>?ZS?nxb;q)nS!XVDWIUeg!+~(Zd#QGAh(WIBT!1wtKK4 ztu)xiVz}u2+hbpH5eJ1U1iv}b7VZe$ zsiKVLG9!M>XEhYIi=-L|1xh$o*$+$H*DJ-WbIp$CW#8O0eNQn?_0Nkdi+N{@{CXer zE?swxL54+HH)qj)af#cl3gN=0S?@Z!v$uP;hI&cBkIws^S(E+GI^Kgikt;(GOWp*( z>=#M_mW|2FdWAfK01jM+1Kt0U0+3db{2;&Fh56u#-P|H5Tb8|3!LLH=_lzpej~v+*)z2T0|J# zdbQU%8O&z zoWAqWzj(Jm3bZJdN#5b)qQh|T5V7Vl-^g$Ue{#6O8FdvBbRF^Yt~6WvBJ!rh(uRRe zB|69nMs70TbqL@1t)Y$_`!Bv5A(3JjMVrbRPaK3PM5gdo-F;%ZcBRD~uVPxgV%N_x zCD9R=29WWgq(bX{3JbvE>i)}TzD})gXdX%>2+Zmx@bNI(&gS-f219PXCG0ZsA+dmr zMCv~E__M&3W9B32!kQ7kIlFQ|_n)7EfI{#-WQpm48ar%zH9h!_yqpea7=n+&a-sP3 z_f+?dQ%a$+xki~L?zPk>eTkrEj~?KDS@ToXKQvblft{~7Kirtz5KIM$AQj==NNaZ6 z{Q`GcZ^;cEn#uJXE}R({>|(k<%%vqPQIo7M1H zX03u=&&$a%P=f^pvD*E87;+P3LPJs((ZAbU@0b2#Fg0B7H`_k6FefhDAG6_$Ol#RJ zA-LsWBPN@6b%v;Z+H7ZivkSr@*cJ%mJd;43dXj4c^76U4)7EDWdfvSw@EhCKlQp!+ z-1otOQP~?OCOp}ToUjio&i<42z2hBFy2Y^1z73&R1GJRtMb^5@0TdfP9jz4Nyi<*f zUfe~;@c1CMei{RWLK%37z6r?W87(sd>2_S)K+m zksEipdz7G^DmP0bx%tL_t~y-(TRPIW0r08k#kb+44Q}6@tLu<@>fD&aBc`j#wk`9+ zS%Cm1&yx!s_`fk_u-Z^4rdGPd(bZ{sSJ&4^M22#Sm4FRv?C6X2{_%!&eqF=|cFr`H zt(<)QOgmv<8O=JAUR*M@=zo0a%Oq`osm`Es&V+zr!1ogxFX+tOrlLK_q=msXX_juR z_7JFus#Gaqtc@dIf?Kx&NIKiac9p>*MJAo>w1n(E8i0r!qNcR?H%hFl2?{pXOj6L0 zNb>`{Cn{I{z4Uls|NRAMe^#&c*+1&1@9FGj^ovPBH7f-B{C;23%rEYjZiN_$^NHP+ z%mR5i(Jt80&1If+KdK)qZ!7;9JH<`gcHznzyr%PB8Sst3 z`rmc+^xJIxK(M5?cZkAPU*&LCI75F-gBI5D+!(~*);3G2q~3N4&$3knfY~KO*RWV2 zsQZhR?M23_*^7FOXZCI|OHu;oHc*_ZKfyKw`Dpg&C!xQgRC@pMWbT0ErI)}hU(&r! z#_HF~tt+KS@x_Y3;Ji)O+ZA<-Mn9h%0!yx&On+c^XAC=cf}a>lpC;`tFS5VDtY&m~ z*VOa=M7{bi58XL@2EW51^BI6^;>iwMly+2KWaj$6Kz>+laC8l@PBn<(c5Ge`YjEV!nMUP=Q;+zoENC%!iEd+_s zu_ESmkURCRWp_5>MIUGHQ~6thhm0-X&{tV`)ag^pytugJXgI8{@?U}3^NNbqed@^) z-LR{_;5bL)vrR2chvr z&~dQgJiD!5UbIt0{wfNr!`94C5vJ@g0!!KRoz9MJfnU~esrveL$4n=Zlna=yPC|dH z-b!U$kc4}hp}yIqkmZHdmD3juo_vd@zF1F46NUsW;e6@^#z>u_ZB%1l6k0%*%N*EbXyk=;(522>EpkF|>r&bo9?*+sD9jIeX`L=xGrM%Q%F^OnAz zi)&W^7G@M-huwQg6*1JVpl%{T$^b3(LLB`Sr$2Qkc#ozr`~rM2x)uE-Aegf%-TF~2 z6s+D%IGKkqKxR=q&7I|M^*`7U<&J=_#=1|&cSa}%XW3$9Gp|Ui@EzK<^s!nQa6PiI zHFl%W9zWP|fj@%JlHyq4{yA#|2j3!+Zed5#Ias(N&s3n9I^5-{b+k)vh`@4F+cG_v z=cU}@7w>)L>RM>A;o8|F*Q6y0b6Egs4=j@?sJY0AZ*+2R@fP5Ipvs0}c0IHMmtRkv zc>A1W9b)vRj9lxps>#3*^jXMYTX3s$?7U_6Al(_xtM_};mOkzxC6|Y2=YEhLkX)<& z@n>*U6RMCHD0e&~Z;kW))%{s_u(z?lbxmNauBMl1uaU_R+svLo6}5|&Z@D+6Nke&~ z@dv0_Ox%+az8CcdyGlQ`zhOC2Negjeur^uL zsrmVYf3&NqLH>vLi#fs-1iBa4m&Vn%MligRf5OmkeR86Q@Lmck==pVL=5vH6NA9$-22Sjfs#)sd2;T4OO+)eMLL=0I0&hN82<3L@Q-X)n9CaW7* zPDuIuw3NOsUGmlGoDD`W-$YKM`7)$({MW7P!CS4uSrK1~BRuL8@6Sty%K1S|An`f@ zqo1Ayl_lf)xKrWFsu~6#HLPEm zS%E6|*x`<1Q1xVo8NnlX?qXY05z5t!y=;wbxF=trPQ=+*u;l4plcfubgAQx{MI|Py z$)DfwvbbKPB5l;hgwe{u+m?p^_Fb(_h>A!PGX|g|QH}Xph9Z>_0aN2YmlIa;xH1(r z5_ad9b_i6^a&LMs6M&)EK}SK+eK=rWHH8WKW>BT$3Ev z-dvlX;Bdbzfh+gnKUS3ILEo-6V_^J?T1L#uF{8rSuZB+dWQR1D)#u=+`$kL%j4(ureeDYw#B%XS(5dI5b|3lnJA(^4&; zS)n@{nW`-fzo{awU#mrv#}xy7L<;3uiQG>;(3tFVSNmU|R2Zu@JNTq*cSty-BUbG7 zi{fI~4CsiR!=r{__dZhK1vmiCmV~hYX5}#V9n!<5MLi-5FKfa5j^BCgd&>Pi1XH?K zVWT#nAU253lr+<(&h=qESlNM?d;JUcM(llvsY1%wb&}3~ri$8n3xMQ7QpYH#7i;i? zbE!Edbqhfq8+5s`S0~|dYJxn|FH-Aap+;U!N>4O;f!w4=Aqwbvg6wioZv_hXUGYh~ zqFoTpA+aAPcMqqO^SwtOnWocxtrHpIK9?cK^InG1%?5`}u1_D2$kjK4!@GzrNiIeh z%>6GNi1ohZ$GUeuzyO1Xn)T`4voWtq8_0m5(yFr zY5g9ekAW@E98+hoN-7v<_I*g_Zt^bqTjjWJa6H1)+-YhP-Z^A{_^32!lygMe&m|Lr zj#nBH)9OAL)mA>y@(Y9rgd&&8D6Johx>`_|X+v6O2WD)96ebQ&()IKvSpqf2c3(Mo z3BTG3sx6~oTX4d^we=0Jk^Z_uZ(jZyxR^Xy7lH;Qjnotjk~RE2Gh=DO-rdHMU$anD zEO~&)aP6iA|KSnittEPjOGD`v%WRv{0~4vDDI`$JG07ks;fTjIg-?14hec=KHViLD z4XO!zD5SH=mhgg`r}_M~xd0JHONAfyldg-tB_Qqmf|v5n@AvWuk`T5L;JO}Hq5|V- z3Y0}Hp=1|{T2+=`3>j4s1fhBppw74VbMKKCY2Z34h$@$xkHV8Lmc~33YXJ?q2fB{N zeT|?BZFiO4+P1BrxY*7D9@yKGPA(|RrE!ssv|Zj1#8wQ3j@~`;f9WGu7ad!s=jSQ5 zJ-^@Z!Io&49ec?hqz*zj^<~b0H@`$>I7Ccw1KS1I_ ztQKr~8U5*lSjP!EcdoX&kSJ!}w9qyJT_9(9%A5hKZ*jqjNBTHo@#oZ}8kuOEE!ZAO zvyH)>!)D++2|KPvJr1*yk8W+OPhe=36o7%XP*dLE~upu=nhuTudm z_-n^z=fMhEK>O)b7@R;Um+7353eWadXbqq9qF`p#Sf{!^Nv9fG((0l$)^ zZ`qwWuLI57yFiGH+c#}ZJ-7)3SezJ^3-K>X&%H)4ZB0TB9o!sfd8*U!Es$)-AhDsZ^!857CSRVj{(_leFsv_Dw{nk~2s$s~I3x(*g{A=mV?V1( zDd~T_q2d%owifX;=u$wv3F^(iJO77lW`MgAAzZ3_xrpSBJ#ZW4K2b zC0AzOmTds{rJm5w&&wBd3q-s47k+UK;Qv5<4r)&W!%~1nx|~7$TE3JwKyCxje>`>BN2=`4K7|hF*3ap4N+THm&M~pVM$rd+&ad15iKwjQ?$|wbR zEtu$}y$IBu!4E|^z8_i;DxvJ*sM#l~QB80E2T?(;zEA+8C_Z2n5(%4ich)$A_E4x^cdJ_mHqYcp6 z$cn&owK>2cKGyp5fYun?4250h$v+B3P@*cI=x{n2U8G+a-wGf$ZHnjL?QL@3V{$&> z-gXM9iEll2LV#cs#dxnf{Zi7CL-4Ts)p&&3Ac9TxkiO0D7b8__=U`m18PNJ%y}d+IM^H03``37z$#R^k(4 zA>k#?jbsikAk32H1>?2F?~9W|gj(5Q2M&sVgH<#xF7(}fdbrdjz+=MX^lsRT zAk&4>U>FuZJ1Sr06YrVlA+SV%>|r8$pvDvw9>Xxn_anoL+#b#O102}6?FWuumP5?t zD7+{m9D6lX_HqaLxv+O*z=-ezG36paCpD}3ye`)><~pSoE_tBFF6Cl2V<0eCVQX5^ zGL1J7S(l%#$0UlNj$h+4db+?LEkPn)ZOH(A!O74?!PSzf-|n9}E*IldM=aUZ5dj-Z z+OUSHS8R}xWMM^0T>b;6zIxZbp$0y-^R%I{a+lzrg*QFsrPOSnGd}p4H`}`Fiyp)g z;zMP>4AG7T>kPi%Q<^rszEs(s#ruEb#jtlNW5IbYt?h+*0y* z?eC_}K#hWgR?{(oe8wK?hM2QhlOHPj*Y$*gD?5eM#BaJ|5o|N+N6FzJQ`&nKg0Ix4 zd9N<3P?~VlR?N%5E~D^snVCtD>6!~om`%K{&$cn!#djv72c$@MgYV8JHwIBrPuO$a zv0OOPoi@3?HknIolV=~e4cgUA(wv}DQ}udGla<7 ztlNk%4S;WvD4GbVULIg-FEKC`DyfSG9IwLjj=H+`S~kOl;CMEnXP&`GM4_l^*KB46rE5bRq-R4FMuJS+N6(Z zR4c=abarFc8{9};y{s*qh4C?*3yaP#!-?k?K_gYsaN<3pfO$m&5)5-4MZ|_jEJ-L* zVK`HU6W4cmYKv2^J=mO#XO;UnF6 z@-;VLnUp3pQWb9+@2Q|^6XW?xG29m-yvFxsKK8N0p+1F`&9Eo>qC-d7_sH%wKC%l3 z1TOys(yr1cnNj$8Mkk*c_F#xJ9SrA0#zYL8p`;1sGBR38Sg z8Y4@ouPRy}CO!o@-Cjux!wfTI8dX8v7nO$9Xz=M!NnN<@Hpe88Zj;{tb{Dh6z=Bmd zYOnT1*OCpD(#1C%JNp2;$xR+9FQcdZj0xhIew^$-zwfZD)R)2C{6T%L8O<-aKz|xR3X;I zmaR0s6^mQBmj}h#Yc3zrZ$DNY)=n)i{bcCNKKd)k&Q@!o#kt1&Dxo={_WxSZpPb2DKe{i z!@mmGGEj7yE-_LrR)!bJDq`Fsz~Yn;=(QSi1=8)~+gD>Z4I`I?4%{Wg@}lEfN7b>F z_OhF}vIdP*MSme)@t|NEY(ZUV568_s1nEl;rC3RZQVbfYiZ?ahCXj5SiMHEtRYQgs zS!PJ)l`R~ALS@G=Fo^IPAIGV|)Ex~;sB!3vJcqzM-{i*4Y-XeH0yCy*51N3d>F4!j zAj**8Md&d^beP+@RUW{KkIeyra8|9QnUR*DNZ4{{M>4%BkQoZ;TXCT!KxwP!(5c;e z+EXq6|9IMQz6}UAQK#^aLXif`knNfc_arS>socIU>@!AsJZ<;hCz;2q|4#S91ElJV5A1csZ;X*8*TXlQWMml| z5a4U|Zjvzx+5~h{yc;KU>|vPz2gOZEz9t7OGdTbnsR}oZIaSeqzEx^o*_h!G;WcV8 z-{zR%P$6%1gIPht#!FU(3aCo86JYO-ugCaygD}@dk~HYzS;9nk#0X_t8Dev8~GYSB+RMX>n5w)wlciPM>k1tpxs2N2um`* zZ~y2bUwnMp0l_x6!Y9MKepX#m?yt1@Eg_hmVJM^~a$d#H1^k)@%JgbVQL@PY=6Z@# z*u{>|KMF-aw9QTNm{GA7$pG+JVSQPoNhSj7wr_8QSrFi08{8F_nTHFJ^-1cj*fxMP zyWMoFcW;qXiU0Njt~7IEV{Xana&b(?_w2kQT|~C=+<-;PN`n?NC3a#+X3~U&u+T*t zYw1E2Ull5|vqE3J;5IX;4f*_IV~VMpm*GX4hKUg;3sm*m*z)Jz`p>y%*6I3@CO*A6 z;eklgxYLnF@fLZruMgJ8uw_6YHSsgWM!V==tEs_YXOZmE$gR>|6S8?J%E1} zzTgF>9e#wqM~pQFF@h>u>ot~OnXv@WNL6U*F%>OvuxU?UA!v(Cv#qqtnf@F#X_%wt zXk3Dgwc;|(0H_Ic)Ry6Eg$yt9Lz%dDA(f>eVI?O6?rf!9aOZ=eDbBM1h^;7hT1?!F ziJD0x7^-QZ2i@)mRx)3(5_7~sV^xxB#i$b0C65);hgvg6cwo{?QMBEjE_%aG358ul zKlw+Y2uf@HQ|jAJMi;5aJUdQ#`nMw)u6Ek+xHdfhI#rKCYQjB-5n*JYjtN(|0z9tX z9oxY5CWphRQEHEPJpk^u$DLVh56_X~PvXltpl zipty!I+;MHEsZ8vGkLSQdF=iGqnepj2bI*tpKA6cAl`%pI>uq5k4<#R-Dp`hfu(A2TWK$%v1Zyvp_01j92)mxW8Ms3 z>j(={4Kvwl7V-XS4{oK$MX;l9+;SBDD7q(LrCY74D>pZUyQ+_@7e+=4(LTchoM=XME zW8BPWj8|x!qsM#p^lTd-^NxQ8F){g$hcvgvAI9sd-W7(Lo8@U!|!ew3)eqb@Z#!GwsP!Vv3)0r?}F?=5@ zw`@&#X_(5aj|tECp8JQ2*q9T#7O1Q*g~rG5syE?zO*lUh=!n5AP)S{kgyL0uKJdt0 zJ9o{F;NRKU76KSn*9UXjDTXTH4;?FLpG)EZ*Ie)Q-v|=eTwOl++e| zcb{W=i%;?w_v_F$op?}5U0l9#`2o|BkI~=6ZZ7c)A&y2>Ju`o80U@{8c|P(=-ik$X z)1O8p!!Qel)C3!DM&#@qLdx}Ks$!7o?QZdA)DBAORguWCytoqy4A503{ESvu@n{9; zqaxD%xqA{tqfBidW?XX9e9Ds6bF8Fgj+LWvU0cbfH)a9-Htz_$YK|3D&NYOjzlK+I zGrR&Ssf)J_oh#IOhmP6f^DQUBYt#~F@fXL3s*R(WHV(8YYVc_tA7_ck|LA2vUsKF( z<`Sc3u*KrmrxO_0Du=#nbzvgvi^q&b4q3DFy;~L;NP9+y zn|VA?*fq+jNEXdYeDI#*buv z+=2;fY@Yqt>xUPq#`rDegbJl79Cqtr|L_{sn2*O~3+m^=YPbz$o*)M)|UiY+hI;=H{*#W0b_yjZb*ntWnNul;34)2;JE@ zmOuG*(^iNw#IeaNn=DplXxwMZhLHlui7ooB-pu$!$n-nyJiBwNg65N(@W{h_ADrB* ziML^ZC`dGKl^D-yS1Z;($^$IJ6jxis6hRWGeNUjX@MacoJ8VuJiM`E+!;ew>bRz zGP5ygJIZr>X#Vbb7Tpx=a_i2g0o>QN9p7KaLe?VCJhRui677$hCs+^Lgc81CJi#YNIhnU142&I3VK_n9TJUT zLcaHupO7#%3k)i4cUv9tUc)I-tjM3>u{#l7qve=W4h(N&DMz~EyexuQ;n>r|ZdS5k zH-kp1;#qIbalqd$vCB54VaPPS)bkF^33WWKQRGF|7^^k#-tW-5S9!CT^5&uscQ?wI z2WfFmsRlBb(N`4FEUi{eNRQnv2^Q9unO`9gS#m|WimHf`ioYr8(KA}q^=`BP2Vaan7!{D zq3QI1!}0EvhFD^es-FAc$Sdq?!8mSVU-FtSIL(afY0yYju*|p!y1)r1Vxtw#(UxHr zB?Qx+FT*s4!T|c_mQ_vj$O2|=YRlg<{!$aMlGc#8996$q`^PAxCaw;%`5zZci_OaUpcq5i z@78JtM=VbDU}a_$lP*0Xyv9?_l(NX)#>ZJDrbvXy5;0rLCb$7yZ3>i;!gtA$)=dmi zxxZ#Xbi?5Sl|9|NZu9$)ND}C)#?93b;Wa+Hdj%cSv=w!YW$W>`8SlkEQ|+^Z>T%qt z%d8btPLn`ieHp$XWI(gX=lVly*5m#rXzc4wy@-*A*k!jM`7n>Lj&as)%OZjM5Xp1N zTZPiZo4Vx;izVghsAe=LWO$J~i1A@2U1%{+x#}V&i)#4r`QRpeOIP{RNb z0Vmgb%2sQcV$MP~TLx=d?@9 zg04P>sS@3O(YqL?6{u`t{^6g6B1k^TAvMId5aBgyF&;NYg=P(AXa)xe!_)xS`eKQx z_SwnzcvqQOi8!f~fLwhU4j~w3RVno|dFn^m@9?ew$_S}z7*>!9*&611%&8=2m?Fn7 zAO3S1W^xLpiF=SqZ2{M&p^l@v^3ajtMZPk#gOa9AII7;O2@e-XktlXIe0B>>t(vnr zat&dO1B7DfTIN%VTHBPO7SS)_+Kk(W7Kq;_E19drub#QPEHa|};vdUq|34b3ivFVs z?0|BcJR>;jBZO}Q(WJ85cqmlzFcd0KNnP~i;`m}CyLBzIhbUKtfp^-}2Xw;`H{q{< zhjf#ph9Gufx~M44cUxhO94XeaFA2g^)@=5N0xh#tJamO_WZF`?KvBaZv`9U-@0v6@ zCnD$OjRfN%+7+Nb)&4(}z%We%VAuq}lnd51sh~~wfNN;9RICs$G9BjLKK*X`)IF{Q zs+6YnTH15mo&THT4nsyYx~-L%h;4Cl^b!Qd9041s7HJtSFa@8R+8mb)PmahcpSKx` zAdX*?+kQ`_{$guIww7PE7QX_h?Bd>TW?lnglu=cGFmr_%tle>6ulHV-yJ`Munk>XW z3q=4_nF`k8WEVx6l3gVR=K+BO<59NKfEhPQ+%yBD7&0%6_1bIRV9mWJLP^S9#w(WL zq0Fy5>Nayzu!_~*-k+|@zOvIuP25Awi=qt<4ae-w=J~}~d(7oql4@~D3L2^D+|-TL z+X*bpS;&(fZVP1hs>LRE&UPu|)Fd@gyoCk=sdq$QX9|{{Y zLo>tX-D8Hmfz>G1nD%0gY3|vfQB&_*JU$#Um}nvroxTmBP~lms_-#BRZry-@O(wT| z&r)N>z@gpgz&V^PmYm`b!6Td-!)RuSWDFhTDPQ`2WkXGe z33O5yW)7NGhn>0E49(%|+1vdRSpHQdYoln%kE%h`_V(Cvmt9k)fJs8*cv~ z51jbX!oDt=^0AL8Q+|$}T+Fd^G_G>9a&{R3f}+73sd4O}QW!Lhd#z9G*o<{H&7wc&;mb;vv64a4kdP>k3glPnf^8i@gko; zo9CyQD-`OE7WsHe?Nd(wfGtZ;A=nZcsR_nrSf_Wv_^~R`%8cnjF_1#L-o9kpJY`pW zPas@G#9Yiw^i4jvretf(yA6?baXZC$E&zlr4cthMhYzJG6^X}-;%yj;H>m7td2eQ} z@IKDLi8Zu=#YB8GOaTYV^Np(eM%X}a?9$x(I^KU_igfoFT~)amh&t>wo}<|x%F*NZ zw2PxEpdHc3Cq_;~Mzl#AcRR-nxNj4bmTohC>DDltGQ1CyK#$Y6P$*3-Fqkc)(n)BF z9Ge+JMOT^5+-F?F5B?i}`lFGW_|jr$u5vR_h!xL_x;8x2D*UR#byJ0d&aSCd%`k>+ z@B#EHP|WPch}*a$s9&=iwn?f&;}Bf08FsHtO1P#>ZV#Oy6xE9I_W9vAE7|ayK_gZ1 z1-s8WVD(v6?`69B{hQr`D)M<-8KAwL9gAn{*zxn7s{KyKB7EL6EVP>N$GMF8FcX`5nR1`;(X;M;w{|{{&>t2WOR{=j0}%(n(t_aQUF4{$iv8Z zJxz}N9e!l?rN#j&MT*=n!-yo-vPLmlg&ka7Cq!`aK%dYFHwDOJN`XD7@vdn5AC0WNIIf;YIo$#?^1gplL&GC8TZx`+dFa z?9U`7j?IbR*ExFIT{b31gE6J0D0qzPmK3?k@|w(BXVQINnuKCgBBGl7=0WK8Rj0A5 zvw?pUil78nKFQD+7K80WJ&1ijSkb+mLTTbnjR|$0$jo4jX67_Nh!<%dCXns&xtZ6B zLqxSCsXAC*(|(GZ_5+<=^9K26p$O)Ocfn%JdjKt*%HwUA7QYQzxGA$BXH06!!|6GN}B9vBCBZL(}FJXAop)cP3ST8JfFk|7n_A z&p!)A1`JJsUCmac*BhzDE_r7Lo#^Mj4KWc6t>cZUQVhx&B*9xAkhZzo0unI zA?CFb=%SX5W>Q|A$0pG^$3RSK=?L*6t;fX4Xl+YbkcDAtRzQl^n}p5ZKJlKzK5=O5 z<8GGQyavuHTLQY6EgHP*L>A@!O-<%)Qj;Ku)4-+X8hEh@?#T@6Dl3kt*AM+IoM^2* zCt4gF4nSyFu;L#@UkRAA#T~!rVpa{<-tuSaf_wCa1d2Xn538Bza~jGJ*5?yd_leGS z-tN#HmmkDvQ)PR1Z*dnMmc@A$McQP1LBzdS9p;!;uD!RK;k=e0?D1L^j%UHW4^(%OE|E7p>edyfRSP z)l=7M%r1mp`yrHCYcUH9+wq$+u+@+tfSO<{+q-+~-k6nid2!-2`|OyF-fq^yY;6cF zl6s8$Ue%U1G^3)t$OMWb6M#SSIuu8R?}r5?WAUs#%MPJ*Lx-L8^a&Ef$PPON=BhhccniRdXN$w&M82&2V50{G&x zV)kkpviAa%Morr-?tg#?ukpp3Bq2tg3evs%h+jNJ`nccE+zC1KTtzMB$cm2f_mBB} zOVvH@gx_S86Dd=#?iHX*yWeQAW_NHlh0o(Ny!W?*a}gXPhrF5id9g09j-FoP`dk4A zi0YA}zKqTA5<(|+ffK@z4S)*_#>Rbpv}qer>V@pSYHQt{VVIOU?v8A-zH4FREul1q zIu#;AT&!)Fxk(rpv8Mp2HJLl@A70}^i|+(z+frkG4jr>=YU+|7?FFSV^ea%=)hgKx z89b)I553i6Pay=W@TQ{Fe!chV-uqETRlI2&H(^SuTHSXy`DcjqabH-xSW%ZuV*VH@ zO>ddvsOaO#7x!uM#iXrMzkl!MJE6C`-{3LkAfjpV!OD0j)4~5c%Z%|E5bF*^J zZ#lZ@CC0oeO_MI45p6sL&Fkww)I|G;x5uqGfc2U&+b@7!z2WkpF?uy<42)GBcjq<* zvCS!C^xn&iV?<(AX$ZT%a5~Ktr@%?4(M|lbP=pMU#Oc%=-xPc&;+D_j!Rf@LY0$Sc zP^yJgwh%d+!Ws%pXUyUQR(!GV=J62HjhK)Q3aN?jHgrN8W=#%J3bYo^hNcLwQB5;y zj{C1n^6ufuDUp7^bU4Poaqd_Wh2BWD`292nkEy;L<>sNN8Li9n-Sow<#aJ%h0k>#L4E`68AESkb$@a7Bf53QMW|ib-qj| zo7aiDlhUi`SmUB2HBuGt8m}CTGgUTu_qeh%LoNmW76$GN58lwVD2Ns)ZpX zHBu9IdLu%QKC2{XhDc?yfvD6{Uz<)dn-0dBj=N=!c(2QVd6Gk76f-p!37Y<~iNK~4HG!Dd5}bMN(u8i$k7MSiN- zaj2}b(;pk%jLn2~YLHVI&pfJ8t;Qj6H2)|Rp_^VrkZkHHXrgTSHc__MiMir;h6$&a zAS|A(*5G{Cu|z6mHg%A(Y3@_w1g~gugN$ueMRqNY?9iE))PXS{5Y0;AW_m?bZ8Yt%=aTOMvSr3 ze85IrjCitpj8vu25YV~JVNPWN+0={Ir>R)cbZ!deRVeH3IO5FGySJ{`s6ibrGMEu# zr6@A$ox7e)Tnaiiv4)%#AMXuEgxB~9W9JO0Gr{P4+?9E)LF6@Kyl^qYy@K}B%MIG5 z`F+5}s5d;Mw(Ibqo0?rqeZBW;-+TX|D!zBKZh(s+pyk*{wIW000?q8Vjp^{NkwkO5 z_MFz%1%tin$Z>-{bq);-Y%!B-L+8!j`xDhIC!>p4HaYfx8(}e`r;fR5?-`{|nSaix zjL>HrmUX6G8sAritj85H>ZC3rKH^VBMsy9HsbTlJNod~bN^hUg|0M{lUeJ?Kh!(7zcJ!k-AM+R+TY9;Sx z=LGRbSCVwbB!>;13tMpK^O~l!H%<5`?U{km!WkISH$>RC+9ZNiK?)7wo!gA5 z0t+g`OSp%XLg&0--1<}jq~_2lE zAL;z+d0R_MTp#4aEHP)S+|0w2^Ds<}&Q-P*S;R}uIpQ@Bd(Gkz%OwA?Li(1gCi{k0 zzJsern0_z72rZo{`TX>FO&r^ts*L9Byvzx9WahQzHiapec-CO`n%u3B(iUxVGI909 zoB-}JbN2X0bYn$U^YixyUR>x?W81frS=uI`Zn-DsqvDA}V<d|^OH`1 zttKAs{zin?P`NP`@1+Gg6zvZuvlPoL`wh;*(%hsuP2HR#3N%YH2~)gaW%}pZ#^^Gw zWn5D*Utyk2pL;RZsks-h8X7R)x_M+Ijm9NMEvB*vJX!17{#LWkgNH4@KhQZ7$0Z(c zH^WOgyVBI5*qqE1{(idW*+gB-eoamFh)gw5%w^s(Sb4I#0p?80$?zI}R1UkH3&{1C z$h22HC;N!dchS_v8t-ibz6*Dg>ayM&hF4_b#$7lfbKL{Ri5#oal#;o237-Wo?D$ws zpDFe_Fw9p8$(5FQ!Tl^_agXE@dr5=7il~Z;yyvDsR+|~KSQ;f%RuJ|)d`Yu&pv&CA#U(oKI;tVm1H%VFY zx!Sa^ScAOg9!AYE&3yN)GM&gu*DsFQ_8M|PI5l*(w(4Y-=5Nor%nt{pP*;CKK7bbKTPm?5!p9zbLKsNriK^Kwc{fShg&ZBF3`A&1B_BFG+xNW_sXchFm$V? z6qh+sa-?y$t?u;Hb_Z@bV<1b~V8!H@2Rdis{5VSPW}Uu^@&a)+95PdVpmVt|3Uk>4JiavY@9**l?rj7Wre7op~s z`JP||V<5R=#&U@W59LKR`Z%biwRn+|PxX2oErw{EO`xenf)RGNj+5)M3aN-dnh>B- zupifZR1fp$z?_TUYsGte!9g}BGj40fu@@3wON8cg&g?{{-t=5~xYxMEpN0J(BnCMK z)24R+`X#Z=b=vPDO>DlL@k>G+rUBE({fxKga`xV??XH>w5F%CQpM6P64QcOK`xhax z{jSxv`)2EoC&|M&jR^6_?RqNJe3BFE3TFcM$ozD?ohAcukE7HOW4<-Ili@X%I^*pH z0IbasFsnN)oP>9?M{(4%F^^T& zE8y?9N=F=TH#-?!geC1^*Fl#j-i?1(v1th<-;F&U5nj{!kMC5K;-Xzob3jxupfB0= zGHTFBO~}lODZnHmR7=x|Od|lhZ>5aue>pjuZjD9g?DB+-a|Q+3z_L^q?Z%LR zFH?zkxw8=>O~nH%a*pz;uhGKP_E}YQc2zrQ;ZZ=DCDeYKHO{6S8?73mwT62b4BO>m zUU3jraEzWGUF5!+uZ`E6lyQw~*$|m}cXP!kK)jeG4n6Es&AYEn?(4G%-D9;MX`=fY zlGpO*@psXEjW_%gg04)BKM4o#{Ovb&CJ?pgT`CBmHKl@%I%NxjzCK4@pH|-zC&-K^2sI$lT9c=q;=X3e=pv7^ZI^)% zKxe}?YOrT1ThLA72Lo06HId@JF_WA!>$$DW(s=muvg0GVlc;&hd#zSP@ZUMj(L#9J zoq@9AUM|S+8u#iHn?1c(ZA0A{(T4ZB7SD#HDo_(izvLxg`h3cOGdbl6IfNU#)v@QM36I1);6RbD8OxC@_GD0wtk?O^~$Z> z-VvQDI$4A(dyJraZWx_M(YVevt6c zKw^T4d6~@r{GUrHgd&vQ39HW|&h)HL5q84zI}-Q%DZ&Q7n`~_)JWdskl{3k)=il1G zymW}(CcNaNZFwB8)jNt9>dyuI&;KpLV88{kF;5q1)QMQ}D|eLk$6TQLhsbzW)>c&k z>ME%VZ2w2i7^cc+Or%SlSC0U|tsdS*I3H^tp@qTX9oBZ!LcF3*6ZfUJ@+~KY_@nf& z>+lB-S9!kGz2=RE&v-MC){)<4(0GVS#Gj=P=54wH?52D^AU0|L?NORqdYfJA_Ypyi z?GylURf(9Rr*jU2>y8D;Wf0DW(|oFkwr#WoBhXFcXSXwo(J~%l1#g72QBEMrS}PEn zSE+aNYJR9Nrm=MvFR zPjo;NcBMFWom!HG%X{Qd?u7&k_nA+H7;N2BwY(e~v23@W-;Eujg&Kt1Bb?r5QF_K} z8*P)%;}2VYe;^3GW~hCa5sv;-rl~h;dpG@J<_Y|6jOEPzHn8Rv1{Nl(p(+4>mkmo$ zEN}B63=k(;9CVRK-Y@((??h$7{(K}Fk1)cZF-m&H+#h!#n3C=yC3lbxnDmg+=PIBO z;ni5)CV7!VLJ>@IaWfLP`-0Hq29o1;caV6uyl>`l25R0r^SrGeMdQL@S)S)2vBmq)4jWZEU91fFNglxIQVYp%5tcQmT-|XWz+PzOEuF4OORUcir%RkfhdB=R zD4SKy7^VtNmw2+}Hg!ZzwiF@x>e}l4nBoZJp15cTfW{?qnurT}JMI$qOkVQW98q;j z6pFPa&N26L+pBmhz5TtW;gH~9i;|!k0BB>1qe-WWX4GrX!RP8qArt{wmq&~ogmXwd zxJA8ULm%iK^@_O(;RI)U(^+a&O~73iy~-IdXI`|<<{PW*4}!lOz9kypgLT%FtI zm=eKn*r93(GYi8Q+Br(*yh?7X_`*&U6prLvN@TN%_nhjr;lX1=-Rom38T^JDD!*I@ zoG!wJMN)lWMbd50(eoZ5Inftc@VB_g4E`2%L{x5WT$ep}#$4u*egD+l8FO^_HN5Ee zigo28r$r@Qm1_7S-rLl7!Uux&lA8diwhPEkSvfM-UGTB%E50M1r~4TThR7n;1QF{k zvLVZq9w?w+B%jA0w*CG<5Na_&Qzd*l6JmJ}#iy2D#QpLdYO9xTub$vd^xkv^s32z9 zANKY(G3@w9UCyX6#e!sViGI-;N(R5-6r0j@A{NcDl5f{(i6=vHDZ+Q+^Y{@wA~r2W z@EcqwlOiLSFSnQhq>Gq&-Z}izWfn7C?u#Db3>m$_I#2s>hSZu^|ETMJoSZ1PIlb6n z$C8sL#IA_j-^5Z)%VWXwIzuEo?uX{xv)zihJU!%Yxh}{Kh%?m9L!1qT`X}Q(68Qoe( zT(DkSaESgaBX9fcepxs}@7jvIpr1pQU_O?+?flyja%rU%_3ij0$Yz_GfkX1K>wFb0 zQbUV)VkDiwF0}J7l8a1+k=Dtb%Ek(XRl@%nT4>kju(Btu=~8( z`iyjuT8!5;WIAk}oln#KV%Ap>BX%jW0$3)z0@OtWSnlNK@kFea!S;`Oh9&A5T;--e zJp?|cvC?Amlu+Ns!@qRPOHLa?J%xadVRfsi#2li?*OUl;^Q|vj(giSXv|Pzg8>a?k zZSz<^DX^Sf5&BNhcv&f8BF{gw*9-`c2E`SN6q8nRTJ-BplSs6ck4}9>pgvqBR5?GZ z$rZfWzigj8mF58QLGsxxDxO_rzxWbcUKr9?u7PaAF|nGwn>`EBcFB{}t$RBh7Ezd3 zZ(gp!*`70JU}!AY7;HNr-1hD*v0yNtyx8R)aQ9*QYjc|t!EacRVuGDg3?}}ZWh#-$ zq7M_?qKy?Dz{8wbhLXW=ep@Z^*7J^pue6IWLp`C(zLS1ERwct9@!m~+r%5c}y^6)r z2v=)I3TlYex7;O(IE`Aw+fQon5D&G8k%H=xg33W6*12Ab^znyvn(hF?YGaGpZj^iZr>5nje~C~?Jts_a$fc#3xLA~)8h z8vZ?;x-Qj3`yk=@KeX)nm!a}q#?l(bbWNOwUN>V%M(mU*o&F=)$h~#4R#JkjUOe!J zOuF!6pz!F0h5k8^a_BuvWgy|Xc4~e^T@n0-@|66gy)^|9r(?e3*i-7;7G(Wpi^pPK zkAW=V={Ny2`y}{blM)zNuK&NYvp1Dmf4aB84!Cl6R`5Z#wClzE_60>!FV%;p;a;*5iOm5l?cB-vI%Fg`BhONJ*@m(EQ+YS@E5c=gzHnKJ za4@`Xi4N;sTH>Hw|L_~Wk(g8D{Z^D>sXPD479hfA;G{g{qqGf9yV@;t1SpgPOXmV0R)ixM@p zI=!fr&2y%D7=&a12DyIlP%`)p_i!F+-|&$cxZJtJ>^PCB?JwdXoyQK^_61%s-?p5ms`ZjqR@kjZSGf&&;+=@r{Gr?X-n4@I)qx-8l zTe)Mr5Bbeb-T~=~Ovj82uK4u3FK^6^L!-6wlYwY0cMza)kVy`ImJYg|aGZ^ko7f)r zmLh)c6cK&*V#3+?uOdk0lD;P|kK8~Gu$9!FJ4aM|6M5#ud_nzWp)7}8xyntxQT$nY zq@RBPg~4CWpM4>hi`N^e7u7bHIVmCv#2oUnDvMi-*acp2Shx$SIAL9+_NeDCYN|2E zybsfW%=Q*k1b+PV%k_C2>fB;7mp14uY6=dE+s^Fi`b9?`_F*jZBLg$LSic@{?{WO( zC)9Gd7Q4dsfTZyaE3mD60d%Pt~C{{3%ox5&vx<&;f z4h2DR?n@7A4o>w*J34LeyRsNqu<;XE5Yf7Y%yYP?OC20=!TI!p=E?Erd)5~`H$OeS zCX(Cl6k!NOO(fH7YbzQ2hVxZCjdv)1)eMTM^k##sO)Y8qrg@VM>x-vhnka$@egjEK zQE%;*?~<==V3Y5pzTWkn<=CQ0IVQ4@y0#0831yQsJC7jMaT)vuBX13>}X+UWHKP{*UsFeMy#B1uYGJnpFfX+}>8occ|B6>=`Gri9_43Pac!RnSK7?`WcIW2ISUUA80==b%S62WhGxe0>e z#)?Zu?6)|WJg7{Xv@?bCu|0u3xwAzC%+o5h23A-s?B@9%?8*J+d=PZdjTM(%*{7j zEa4oleOZ(q+poqT!t>b()la%U`B{gUHpyF$xG5f5QtSGqW>Ss)L5;}Runu(Y-=~m5 z%>CpLH4wj$J3+9$JhhCH`o&Pg*%1thPcju1pc1b@jaJ!bNHzEk%WJ9fQnM&8wXaHSr=NjZSi&gEkRDou<>UpkWGR}0x6egp z(DsQIbuNP6FjAA@2_h|`uYCJeOAfSv7GBOOZU3o6;VhyY7Y#p8`cn@5NINn__oL65T-+d;PS zw#)KnF0K!X;7|?mSRQ79VKMU}azA#OdYb!@MH2h~o@cl%De&w++sw-g%Yg z2&Dt6PKH^={s<4`4B4&{st}aexh0P<3nBArMFN&Ud|eLC-;Sv*VRH)e#7lYEzj+rC z5%2_EVML$`bIL_(5BFuMsovy?cI#y-8UBbZKh!%N=AciSHb>mV267jz%(rinR}4cR zQ|vYrw)HIcCkIbOvG*N1z#5$*5++_%T-b&|fdW`nyn=N?1UaIrc+nF)YH^&XhN*Ly zlHredpxmPbI)4!{-$hW#E01S=wO&e}$4l-Gm;6zomZ&_&{8UjW=+Va-P^bKs^K8>$ z_U7b$Scm7*51S|Mvhr2dffwKjwDXhP0VEHk`M?P zgx%NugNmu5V;CmASXggrP@oF}d7PW2E`#4-aOU}(&f4UN^XYlVgu}nh!wRrT=`XgQ zti{e_YS33pyq|DNI-(}@bTcPzI4k$PiCC)fW|g!iJ|sdcaeXy0r}qFlFK$gWr$85A zQm;{Vlnj1@m3riAFT|#$U9ci*f^k}V1F4!?GOn+&oJ(McJ!v=C9`1;qzb=B`aBO6E z@9?bpwM!U9?(^rl`cew13D(RO4+ca7V-|T74KgPv$ptH)SMi^~edMH)5W#NX^1_{X+5 zu2~K~0x{4{>9PHyL7832@JE~~RmNC$)G@U0T6WVh7Lx3qJYfHyhsncdodx5&{62*c z3aa<6J4smiB-i~_i~SN~8SAql#jk3{60bEp#$x(|Mj3StPN|~TMGuoX-5jBYY&4=% z)>BO@@`*pj5(flPB9k84P%@h>^yaamMDQEd#T1bm8;v-`GQKFWA9l%13lA$1dwOW8 zYKi(qwj-4*_NJpmPIL=dN(8^*oRg87)A|cYqMqePOOuhBFp0)&Ums;uF%U5*Om2uv zwfeCfWJ$dpCBq-_#N!V#_6M2Vh4NaJ6LoMon7iAKYf{nmhUu)73tjoHfzp3>s&P zz_I$2o-AN0tEvOSJ2%!QMXnj--7An(YJI<<7G1e&K4`7ckwzRRj^JU@l_<0ZdrD;w z;Jrk6!jZhh#f~+Euj<{@8Z&iyX3<04ipuZpYQ=@2S= z1h|%ZD5bx(G8+H_}BVTgnrWA&nJ+GB=iH1wD zy&zluZSr~x*EdOUjz7vD9qDo0ANiaPUw4CXSa6#CxSgg|LKXV`$v}^snm|Iti*_)8E>jeHR9kjVYO3Osp3(jgmB+{JX)FrD0 zvk<9?NttuPGFd5>)Um=O$-Cxm`7nKj1K=75S^!y2yw^OMblB@{*DSD#h?$knqf2DY zhF`x7y_T+w(+?Se7k`L|sUB{cMJRDAkr{jvf-Sm}kb~e@LD}Ro_zkf(p$2#+9&^H} z^niLj!62Xa&%C>I?1;7PH=aqHCc)l8<{uSn1APY@f(gJl*K80R<}S~4KMP228H4*& zBAUNE2grgMkP*hDo1vuymd(U>1s2Kzn;@ba9ayO75tBP-z8A@u zP>%|Xkw1hTNp@az;A+^4vkIophn7?7UxpfL3VnW?p2K@FZ#M@b2Dg4u!_@3np{R$D zs0YPRY=S5Z+UHOrfz*M8+P{BLV3-&rO8L&%?}CNHRRz~Swe%taR^B#)#iXL$;eQ@R ztev1LS#)>vw{r3iRzY5aU?>s%hN1EnFL$4JHn|ug&-J0C3zqYTOiu085!>nHArYPe zct}V%n0Au3avTv80l^%M?@Bg%Rzos>+)tVLRgDOz1ceC+qSVs>3$-G$ ziD)0=BL-(u;~<9!`*LIt<}o-JowKbaV{n5nIzKGRsRs2J+$*t=pCV5BvKOstwc)&> zG|S>@?!^vRWwdmExJ~Xq^^lcbZ0S=h49}mJFdFhWDfm!3%UsfOh~Zb^*sKq;{SFL> z`Co|Fu@JY5_^lye#{xN#ruNPctnE933(#-I85C?=fD8}?4zG1iC4%1&u*=`yw<)a) zUkg8u{#57C{I{bov1s<`A7+z3^ICqrsQ6yw746M*V_PbuCLeT)X`cx1VF}Kh%@-ns z44P;M>n6mhB+wJJ9xj64Fzu#9@EaycXdxCXn6}mJLM+%}kigVh!XjdLPs;E|fAgGM z){9pTdtmyO5zFa#%pw?8g~wySf*r<|mQusNM_=9{<8>sdv!C<2+K~ze$)fN_>B9BJ zT1uQzIh4IS)y!lI^_q9G+HU_6k1@Nb_we8dubQ$yf~i}az{?|cjo+rrIjx0st8!9( z-YXMqTV(UeH4{}o0+r-kGto}7>{?_5j^2;Gd)Mc2U=9jR_&DM$cOsd}9=tX8I~af? zHtt>VF6ut0kEPCgh=SUM0Gx4e<++!Ih+3?x+@!s~&idk-5!;wtGuXy6$WlAVfi{h@e1al!^#ZERU-iThU9_4>HTy4Wruw8GGE04~yT$77UkmWD8D?#l zL9!art?~ygM+V6{TMI1V7Ch86VT1?cBuPI<)Luvfl@5l4H~6i%fCe+@UW=g38930C0!UCWkl z^dpn=VxE~tiiMDkvvKOL}zlkh%wi`zT!kvMOu+6;$WR4WnY}meA8a(reEn`k~esr6k zqT9Ty+(aRbJgC?F@BrtHX<5UxqaD)aCeq#Q-PFhH9t&Vo)%imeQ&lYs>AJ|AwU1hxh#sOR z?8q6^U1X7m*aU-tJDjKPh#pQQG6SBGF5kPThA%1>Tz`P^B$~@9xMH<$Q56vkT(o_U zu!AT>yiqBlbjB&TtOuAdZ9(oOd&XApt+qD`xT-(}Nw_Ani#Z*>-2wXCX~!2+0Y zMQ}2=d7L_mM4G1xzydkA2!&1wCE=xBW#Pg-7YcUnHNu&z)mQynFYiy+1#gjb>467{Q$u;IyGW-(=sA-Eu0L z>43k@TEFv-2#DyNlZrLgckeBz77k*Z5%Cy9q6~@n$(y)A3;!G^sL7$;Lc7YLHldqy zeIIJ8*>)5oZQ`;8=nyPt8xG_=Q_A2sMBba)m)MVpqUOi7XDV0)=;Td5$F+QTSgJg( z#bMy|YwS9BngG-Kf!JyUU2`JG=`127NbU6ld?(twbn=|B#`}m1E_lwEmK5u91NCTJ z=lS{R#le6EwDCdRI@IpkZZ(W>0K|Ma>JdPyYe97-g5MBC%+DY&r;*?P94&+2V11>L zoqI%I(+x)Vcr$1Y5f|R*4aQklAyOwQ@3^++%ER8MwYM>vPJZi~- zf~?WL4&jt1#GQ;Og>JaD?a7MumfTt(jP zQ_09z z*;;3`{Wg(OFVyux5ngYIF|S!2&FfN{cZwKk+pWqNu~k}bZG2ZE%(aJ1x^1qAhi-|4 zPIp!WU5N~?9Nt$NMqbsk_ZF|8%ziG)kD*b09u?QU{%C6!~z?ht}Z$)&sryinH zs<2~L^R(5EXHZ2v@oI!BUl{^=asU%$#x3vTeAsJ&^lm$^`EVKhhIOCYy-r^?0=*%8 zqvOEO=osC_Vn^tfb!8&b1y(;YVl?5mI%Qw$jPB+@VGrG&O~bML0ICF~JoOPK?0=Mh z499&kEY?KhbdTJ!JAIw?BVaDSFOi>dvTZeCm??yAml9blE4ALmf$qRha9PhIO52?T zka?{wSGdPyUh7eO83I37#A53&LeW~O2%pzk0NJzDO;S^_*bdxht8IM5Vuc+@(!fY! z=gZs|%duDaO5V-Exh+U#5sh2f~Tn z_R={;VYd-kU-vI+4ht8o3e>o3Vbdi6aDFIBn=XYGR`P7om*}A;FaIATIXp~=<%mg_ zInf%d?EGvx#tf{H>i&~ySd3uUN?MGGm?_=%!#T_{N^4irAG5+yKcrkg*9L@!Sv*TTgo|m#< z&=bd-C^+){kA3e}N)c-6zs0EV5S;PO^=*aq8?7ECg5Ug*9BL##kjHDNk;?!$i+K1E ztgcCkfhPJ4Zb&~` zGKZy8_eR_zC~Lft+GuacNvl$ykqD-UF2|nlUL*;aqPIO_r3_K*yz1icgrHfOMkqoH zH_EO}KFg1qG{5#A5wS=Bvt@B$lOmHeUX}*_;D6pde;6oz(_Q)Do3A5pS<~aF$X5WU zCU;;!OYXE&sB9L%=iPfpyN|}!R`z4^-hWo55Q_Z4L~E-7_R7U=l{@Dyg5PKrn~dQ` zY4(pHP){Dw9%Qd%+vu~^%>yJbG3z;_2?Dg646UW<%}E*)msA7&$gCp=IzNs2z6~V6 zPKW(RPJo5G_-4(+ygM$H{K#>Orc@MgS$^e?L2}F)fP*6yK>@QO=oB)<DP+qxG@`e1laN)L=R<%8q2w3cMpgdIPjZBy*oud|6 zjmG#(UK$4__-h}>a=Kk;nM87|{#DBqH|S#|u|4;{Wfno)Aw}59FBidE4EEb;qrWY{ zA@a@8*us-OVo*ow0N$~R2m^L{N=%An*$Z<CW;D2aCz>C`L}b1vqPrQy4+#Pai9Z)pS+gq5>}5>NwPR>wY>gm1mP!+jIjEK89j?>O~-{NLs~h+%9Y@+ z@rCouAGCn(R)&;6wJZ@?c#PE52Xl|?$S;QKeQ@v~(tDJa#lGT@%s;`W%#;JsZ`&#= z`>92kNZ=|RWE3*%N(R5dmC9pk-oz^)>9a^J{Bs;1`KN>$c6?Cb=!crBR`6r2u2%3Q zFlnc!EP~y}TH7j!FI@@#8V{4l{;7qrvD3e6sp6GBWQs5h5I!GqtSU}fqfJw7iO_gw zOgom%l4>@g)WS}CXc3Gc{~1agf!88xBLHpPlnj4_1DU3S3@$HhwHJqwhtKDdgPzDi zDc{VQT$#{Vtqg&fwpNI;*y7W}5g-ek3P69zR1p(=h~&qPAIBA|;|LU{i=04V*3^Ch zBEZ;^y!HOUy4A(AcixrUiQ;@A!z>BQ&yX^Qg_OIA*oafcHpE!0=D{Urs%$0T*!E3H zQ?aGTK;m&7rOoQ+En>Y+zsb8~&Mw{vsW+0@i!A#9H!bJRcFIp@j?y0VQa(B)43!pg zjqLV=KTC}&WCRXx|E)yu8+P{jDzb{`qlUBq`l$7qRj+_WvGIyWW3P0NT*DJk&0 zp-~>D(LPqb$(4UKlJ**ZmJSMgg5*!7ii{70D*dXI5E1OHASv-jYd>e3iOh!c=MvqD zKgu88A=_93yBDEm{=;wdpQH?b#3z>mfoG`8Sc`29rJ zxQCW4PW{J7!e*_osUqW>x750u%o?nM_CfC61i3qP7SckQoP>3k`F`D$;)?+Kjq7xZ z_N9YFyz6xj6s2gg#i^g&T@F^+)WlYPExX0X_JLK!0v}q^`3W^dWSw)qtJwk&0$STW zik?F&C|GBs#jY%G>Uk~vCe>_mj7(D>^sQy*%oSAAsb>8_je257hqHR5iWuL52^FYr z(@Q5pZ(Wf0JcaTi6bwb^ylBPx)N;gbC08#@n!SY!ZpP8u~ zTik=6T2573Dj`clgi}70RFz+M{@liR)|^XBFkt8}B+5`S{1H#w{vgx;Ad?$XAYO(c zwR+wg-jfd%NtZV4U1KNW{R63oPSaF?)(3nA@=D}XEJ!RwBHPL@T8#JLDM|~AjINd( zs`a6ymYmN8T6j@58(+0l;naFhFIpLMuY>d zQU$|=6ErMi-b!?vg-BUdiXekw6%f}p-rZ}*FZvqqky=C+8)U_J^p#$G_wB%uNc{ND ztHzkX;59tojMC`xoqiZY3WKY0XdQNI>3d;w%A~v!9aTAPQEx<9kf0p z@IIBuqzS&eKmqvtXu!yhqG;)q24f>nE?O_jf3@Ta{wrkl#a!6ah84*XR<4}i7L zNMGbn?>xLaa@ZoE6#U14vT?!ReK_w-{V`3dep%xt3i23KY=sAp-XaHbM!uyKgi zs1Ge$YN1*2(>UxGB~3*hK;1lo^hunsPTkBS$lrdegaiQ=b&513`I?y?Y3i1J3KcmN zqD!Dq`8re+_N#d$>#*uZZ3M^A6K>T+a{M9Ezl(@fj#R>m6Hbw1TMH!qDoP9g+(%MK z{D)AL>4p|P4cGWSR8t>wcq$<(;QM-s2`ccw^?FVZTF@&Q)!p@-`AmJ*yybjujoiI@W zHzkKQ@;T=WQ!@As8)_&K{D!GHGH1|#ss+9&>3QdKXlXx0FyFMOAOi@xBbp%!Kb(zt z54OA$*)kGz8(ZFqQVS4tb9!wzDZ*a&_ko2U<9Pxyysq5$-#A5rWn~MC69*%&jo!2t z)>pOi2Q4PGFwdQn4Lp^YI%T}LfUf53Vi$OE0pl}iG8fr~YxNP6(myaMT@O0Re}zBG z1|=&vS&d5-c@PNI&Jvq^M>NE-7`krbooz6s@USbCscwh^G~=+9w`f=5BKVEIj+Eh# zIG4BD9@rOfPrJ%C5Tw^yEpi{?&#{(<8t5%Dzl-F+6*S;uJ-UB8Q>lc`z{R^uMN@fs z*wQHBtvfh7!XP?58Z_7rsXgH+^!2OesL^na7Am42d|%n~rOp@5U55T`G- z();w4Y+xn0069O@i0*;^5fX}k=C`Kjkg@yLBX-~9r{LdXmGoc6ddX}#6isH)^X92V zv_BqTD{uYx4?6zwM|dtv$M-km`}4b&lY3fJV^p*MphmqFYZMwIQbG|zOstz1mnJB} z7d!2V!10HOh(mgsfauRUdXdljqea9YCTkR!)(|NaaFOF|UPWCRs0*OkH)QmlFqk?- zp8KI>}M;SvNCh~e_qYb*=g`oniKaojb2-=ny6PW}$IieUFBIG-&A~5?9 zsozD!Kpx;za(VX|9b0zp|ytD|*e98>d1F_DF(xSv%Vo6Q-a2%2`%=P7^h9%sbXwl4abLrZvhyUSe74&Z2&Py3@pIoFSY z#QH&b3Bf@1h?q@qzz0}5Cyw$O>%qE^`KGrOZO@<)ny?7OIqIzPvjmfofNNq=vYbH} zWh9c{u_&7y>MgXp9*US~VMacO5+#)PY*-@*=|`Sfsm_2yu6#Q`Ja~4*p@tk4b07X! z`3s`N=0uK4tOdt9_Q;QjmB11k6m40RGWZR5zW636nqh5Q6PD*)9E*JHGv{t@4(u_K zbWZEC>%bVnbS0JGul<{;jQOWb+h5fPz!E9(XO|O@IsXtT!T|;F*fp> z@>zbAq&4<0EsPV2!16`Zbd26U$XibpWyGx;aHU=b>d+ z{m4H;YA1L_40*%%&>}l85SfCI&uXxMh!p#$5>Yh^3K3tn_%a&+-< z8W$o^Rm%LKW#y&IP{T_{VMiWn6av+$`r8Qrsxs(M?n3;%qPPL&f80hQ*6S14g2+;2 zm;BU*-_@E5-a<=_h1IkcW|x%R|Io7a~ZjAvO1}*?Hv%cAFoZ zs|v*J4GSiYaQsS^*&tKTtXcdf66nNFW2 zZV9$Ppb;&Lz0d-IVU5%a0-=$yCrMNMe!hpp^JyawbNc72{M=WKe3no%Yu<(qTFAuG z)FSv$GDNHt?RZCz0-d};4}?n4VhoXZ*{HY)BTwM3*ldCHc|}Bc*=!-$4u%M5cvr!) zqS=DD_1WHlpJL@z&F3BhY|-9|D1v-y$t@4op`Vp^m8A&jdbgmn_Vf0TOF+;ke=0e7ouq3yQIjJwb{|?!5m+kk z$IGDL9CN4~7{SY}FYzfn2gXQ?shj#!MqtbyB4QDGsSHF`6Z`@Pr84K6NTa`#x&yBq z*nCyfC*nGfV3RUApHh;|Sl!5_v#oU@e7CZDod$<=r#U&HmX zx(aI|*Tn}Gd|c=l0sHsNys_Isv)@S{THs63F@hL>MK*c7_=eR--K3VyHgsmCsdShz z_ ziEro;)V%P~(_vOwi}8lFRRL>5&*B-AE#S!qHAh6mhVb-Or?c?j*qV<{2|ojP@8o-%0m0pvIRoKqmUzdf{dKK%hO?VF#2)c zoGf;hR7qWT+^Oy-Pl~hi-`y~&iR35vA;bLL2}`Nr-+Mkxzy-X!h_wjD%zPx&Y%$^8 za^ujC*2QycE>TYFeV$26F!Ls)$cM2{;kB`vQZm_j6q4x-f655fn}>+0`Smo5$q8l- z%IK5`MgrG@zlLR$8{ZF^cH}?-iq8{J4<&-f28}=KAXTaeI=jpo(YRx8naJwQw@(49 zHntjJNkPvO_YavV8a!Y{5dBmCpk=BlMl6()lBsMHFQteJPh*oLY^8UNW8UE)Io~BhBfiq zKp``J8HiEbGrkWr#6X@M-(&_oVq(0)>qICskLP)UZ3jSd{J7XXFElWAhG8sii}Zj+ zYnaXan%J!KAAZAro=Ri}Z{#%9xXSbcx$f*J8asXXVP6{ zk!@nmA-))}0XzCGsdE?RTp<=Q=Lf33=h+Zt%s0Sz%2A;R8(UdYNUv=g2*Q!TAstuP z{3;?SDIOwXB2m`GCa3)<5&VX%*OXZ=rowG}^o$wm1AAE)%|6T1;>MmabP!9;-9HMk zkJ%B$DAgl2u(aCGX^ck`JI=etM74-86AevcU{G(-jnGB#8@=1EWcVY#&QQx7>l@LI zDtAJ`DxbBD?;`eHMA)oIFIkvFE2kr^evAZX!^c8UJ_ULLZ+cU6ijVBO<<&PvtYY?r z0g!6uVIhLxDzlaT9;Ot{2uswxjvTDUL+`OwHi}4=COS0yM@`OH1U1MswUXD@KDDeR zhC&V0t6AI9`5z`~1yRtC9)|e@jhr6^(bhZ98b7qyso#gPJS}Kw8`F;dpv(~kU&(4s zuZ!Sy$;r`QYFOAMHrZ3n7H{<_q?Q+}wjz8vl?;A^+1FI6$q2X_>h$z-D>@5yicB@p zwy2}euUfWRf1fhqVWy{=ScfLOeDt1aY!03`z(xkhB9EljusaJD_TZGy@)DWlyGVX8 zR~Bv2M%i1*;5Q~qkJN)7F;@Dqr(2$^0A1?z`_v+^PyZPzJ0ZKz@tUOfPdE5*Zi0Kc z(Ux2v{X_Cmsj&xDPHKDhg6`lo;tzS>94B{+c4#>sH?+(k)sSv3&iY87r|py*zApDFSY2W3Sydl=X$GEtsHV9{nsY8EaqFm>3DQU&JD%hhHz1 zz93A>Q;w?rvJ?F<#LDzr;S}1gr)e!L4a!4?|Is4r&}NM~w65Ohr9?CbZwKL4_?)Y& zI4KfrbQJy~vc8Mt2Qj+*Ah2`tN|;{I*d5>KF3|jjLYJQvd6un2CL8!|QL%35@-t&i zrD^Eq$$V1Qo*cvVP$IxZ&w-X&yo>bG?yC$%YB(Y;Iph}LpJTVBCRV6nYk3ideyUL> z)~Api^(pZUk)~TJO*bPyqmFRo<`|jG(=$(*QsqD;%H!4V{z7 z1)oB8@3Qh}8c9jJD29XBcf02`J)_NtUjvTi~$4dJ>Lnv}KouUg8MT4v{>?DkE|>}pK{`o5R^s^;-C zvl;0?lS`wqM$9GENIx=Te^nz~HMX6Ki$w&$n^(|9J0pQ4H8y%;y}}ex$fr#GgG^Iv zZxT2?cV5$QO>JZR_nxCmD%r$Usy2cTnPz$*nl&ON`xr zr%l3ak>TuK_jYJ+i6pwiWjcYC;_B++_2+7ED_6b+|Pl8Y3)s7CaICD zu(mqt-X`;M`QgU)Pbbp#VqHOqRLv(nxtN!m5oWTZwBWB{TZkm{r%dU3Aaih$Hns3Kf*L@3qsg)=%BiR2zSP0je&>MZ(@ z5oMdezK{x2p`kvth>!zXS{)*TXOkk-;*N28^WN7O?0Z_BmFi{p9_1{s0~VGl{!SbP zI0F#(%E^_w*S$sc+>+-BTQWjY9!oEoydx_HBG*e3Xq!(ZYVTEKKxd@Ua^_cLK%uAQ zfDNj_pZjOszl`-Gl;+6)Df{=F06LM6usiyxyjk?l4g{quFpS!K+5WP#s=9_orEQTIq++Zs; zLEqDN{jTQZ)c3_Pl3b@HO59FtOfdDY^+AaZIAW7MX`qEYR?Fch^McyyX0E7$@LAyXR3YXlZo6O8u%u zFpEEB@@p#kYoW+-3h*ELYyE)#av!F93YNvF0;tE%S*+>WEB}&E!zlRL=ewG@wVLQ@ zr{C%0X@o1?knA-kd-FI>L-y9Vu=4CJoj3ZCBA5;lMgh}{l}Xi8m{b+_;fE5JOedy! zy&;=!rkB`%9z|r@?sd`^*GyV8$8;#^SX)n-U!i1@xC4@EpdXpMnJflc%-){zb)Y4V zdi32|jGv0=7W!^QFm4=`cU{by422#>w=FuFX}iVH(#g3ge8^8Ff;;{>Q0@<)t5-B> z-T9j8NX^1D-f2)O(xC*&Op{vh*Z9;TRP-scx*Uiwk2%}dffU}NBJUcUpGR?i5-!$K zP%M=!b_0T>8t6wRuNvV%`$aDLbs%BIp~D#*iIavFeGho{mg`%TZ5cY8vHW-EG%JP< zXIL=13xgXS&SosT^<8AE1n=U7egt~!Q;EFLQDnKp^OJjkKf0onVFIaHmQGa_)Ol)I zGQ%6zXi4SYNVa^&;z|>a(ZA6G+*SVUk6f$ua|JH zFucSBdkJSJi&ocpR}vm~5$i{boVOJ$o;nBpXUcea%$9YW2@JFopt}?u<2NCJ~uB8u|;av=m zSKEJ3ql`IZZv+3FJ2jrYWuL(I<7*&$Yf>e3`D6+_E1K@L9ogGl##^YdsPFEBuGH}F zk-gPJ)u7Q8iFr2N3u;ec8XF2YnG!4Fp7nGryM&}}W~4x|x?A3r21+KW&>@*y1)nl< zpv6{Bd7Z>V$r8;Mj7|5>k>7y1*3}pj76l9Fg%{n(+mIu@WwsjVv`FgiZv(kxJ`id= zchq?1TisCO$(C>_gk*R?)DAmb&$^Ws{<%MnXmR}%5-{DTj9i{rm&n+5Ekby*z=wOT z^_)oR?ypLYI7}Y{<(5}RI`;4cm$}x3OwK*uge~b>W{?O8kno2{{!0H55l7K*m-m&Q zHzmU#5gw9yCMkLB)S}L!#hSt;+O&CQl$CI;iNGwB@XR|WXTYEqx`?HG*COupPZ<&7 zFceafhe%{{U8I-55als+XW1dpzjb>zz%@B0HQ^{wdk=+_JPPcHC-XweAPN?=#a@zI zqrP#=ktS&&p^VKCU=?{_9W?jhDfyv^B;$G z=hGfJ&|7B8fk=_L^X&Xni~5r8OVesm7+du4Lt<~42*kS<>pb&C?gjn!UVR9v093Il zA8?c>tu|qj^pKXu6et(@!cOHIkW)ynh~|z zDVsVnt+TYKHC0wa{l~xe%w`)}&3crq{;p<8HSAwtA`JV`GQ|9WdYQ&%$;r!xu}2{r zkXBLH&K`y5c#xhZ{$%Cw#tInt(-;II8zrp}R`6*KsSE9uh(tQjo| ziAAX+r(>H~!I4ItawPmYo>-?*Pvk!Z=KiThAQv7&BI}5(Iok#1oS+oxNOR1ZyTJE4 zxOZxFFWSl7bH%$Ov$Un>8`m@hM+IfaP_Sy_qQ`cbp{p+!)ox)%EDUFD8HwTJ*DdL*)|MiYgn z=#dz)gWOrY{(!AQXVvsLY)=Zwd<(o~=4s#5OyOIj0V2-CJ5c@^!;fcxx97VA*DcF) z)E4mg0y}*}RE+c^B5GV7A|j~j!DdzyjnWjirn+I&=O=M z!qxZ?nRz1A6ll=LW)6Ir~9czT%&&EjULHKVIiYgJCNxmF_INor+W^OH%06xAIb^?>!MXX)o@7^ z`-2*jPy8VyzLld{SRN?d+l4aVfErGvhJWvNMr)!Bc#`C|PIb$91<4Hh!17h3#^-5Q;HC5XshH^$Znz$Iwl$wJ+z!P zg_cR`q$bKfKD9tptcF?$hs&3PxyLjMoA9XOOZ3i+ftosMK4e5h?ja(+BkG3_>xV@c z2pu@1Kjaa~7_`Mam2`L|XA^Gz-n29XDC40;MXsJh9kuqb=#W^;pT@sJCEl%?RucWD zs-P3bw z%lVKIry{D5cLdy*lHret)pb#YJnQ84-%<?KdPuw^>UcK_ zrDs?WQieZb_KL{lPa^-3zE2pSj3DlMBO&?5Qssbtqb43wKh zoAz0loJ+~zH-GEgp>#XD@2I3!E7Sb~xULWtS_V&kH$<2#+cO;`>NJtKMeog3Y8VR}5Dzu-;D@JHA^{SPwf zcDRPdEWG7P`-2vhI7Fw^Lrkll9|)CT*3SV3%ZIN6Ir1f9_YXD7Y>DQs#7PQ^?#kddxIROP z;5Q8QRix$#@Z$zj@OBFe^;3yrxkl&KK~#k}ywJH7X6!0C7m9Z|tviaamr{bi#tFFe zv;4@6Z)y}1NVH`owa}3=_>I`&G(Ls-ji$jz+~MrF8Z$hkn#PT=^uzpUX+7u3qZ*@{ z^9MEJa+v%FVe zm`|B`kk4X^#3}%a#!Ybc}magIC=5_t9rN3YbO+HE}=?bRs7)Yq`ii{Dq zWxjSjU|dO}xfK270yLo0II`~|Qy>|x{l)OBs8Ib>GF1%RF$kpN7{vrMU$6g}&X<<+=#u%XmLs*iU<&QK7ICMer7rx4HHJ9s08^l=EXoqmQg_n}6QFRk)a50* zg?9=O9v@BkD-RKcL74r8L1^EUbcI1cOIiE>1362u$QP-Ge-C;Vxs_fr_oWn+ zVfGi4VSLrni#p|jLEzV33L0>?8I!MTYc0g_K~$`nw}>8y)d+RBuS!$|1`T@&(vzRt ztGx$H`~)5XfWd$U6gd$79P!z$wDf2o(ebG*#5u^RjaJ4&!c1$ zy_2ISZ`zT95QG*e8?|DPx?W3N;?wF*!rO}ulMvg(S7D$Gn zmEgT0nLo^jOb*z4isaDC1(<^II-OEv670~AL^6J@-1FBKBQm%QLT0L}Ym>!t>W^QP2R3g7~t(Drsup zehwtIt%H>4^$QRJMCh>JL!hYw{$&xRF!d$jYO@f<^7dv_V=o?nKd3RKhP_ytf2FT# zraIEdAutIrI7$Y;;egl*Jz&8hpiVth_OsVV3h4%xQ z`>qbn2q=lk;{hZCECyOtX&F1f4)d#)vAfnXsb&8`OTJ|*O*o?G^GaZs!EZ>19)Uqv zbp-}Nyi$eh5EEls%XxI;{#A>7mO*5=frpfcY>*1Ky{|AG8SL ztHP!a#)Y<|P>B}2eb(CI)@KVvM=NPYLe@8zt{jIG_F zYW_6CwN#4a`}aEV#^~l1$#>`7kw7-!y|00hjFnO&>3jSy#r`Ri}z4_BoD`ybL9k!6Z{n6L!UYlU~{Xw(OR#i#xMdCdj91zW45> z+R1V=1e2ye?G?c{_qxRNk?*ZKCL+M&ki$HYu`3gLj*`JFSLiw7cr%~n5bi0N2J2@)t(#8IJ&-#a0pC|&`O290#Hbdnre?mHuLU?*T4?U@<*$BR zhCQOZW;K&perAxi#rR1R89y^%T8+a-8;OihGkIYxhsk(93*09D$e!{@ALkw!l>h-y zp`|kBGVP}mS1NN?bF>ifqNjYU};Rq_QUL! z4z+!jqrc(I{n-1`y@g5SUo=(IU1t7Z&QqDYmI=LvFPA@#xlDh-(sLO0w2jI(K>Zw&@Yx`zsyk zp2<;}?#Yrw#Qh9lS$w3GTge{fLypO1#u74jh6`8vXt^!uq&9<$oFhWAiHzG9gJ+=N zJav4^mErS<0Eh>MI%$!nlNhFte2?VLno(~}l#2K&=84>^i8se82HQ(JVg|3-Fi2@? z9l4?ZePHj@SxCOykxxuS+`3>(!=9(IR(0!QQcIptT-TWFgTA>3In&2A7vbd1mW%i? z!Na(Vqr@FEm|rf_m5kqcN4-{k#3jf2L+Bt>xeWb z@9n-G4Ix1nx8Uosa|$5r+0)#;-I+(7-gzJuxif5Jj5sU*mhS42DbhrHZEyQESnFXU zkNvvKHHxvt<<9RYCsZAUHsTPg2A&={XT7L3e{J{lIFu&^bD2BCQ5xzDqN&Jnk@jjk znTfckw=jElatxn)^H|5xcQO_6b2w-fSMG0nN!19}PhcvNsezjpT{vcEmOl89#-+Kq?R-(sT=1@j_O?UDbnH*l1n7{e@2UIq0OeJ$? zx$$-mI^#s<&T?aSXs2w>)VPng!{^LP0M}hKeKYJ~TZpv#;KEPr-!9591 zN@V;ju5|u$g4;z8j}CASJaVGrYxvRE2KL~8zvlJt22qk%OTNMHU-petc5D*^-D6^p zh*jhwjyqiBax6p4j59T^AcYtH@q%;L8DluYw1IbrjW@haaxQaE3iePoHf;XixmmD@ zCzpiyP}lbCnxr}%fwX8zHdHR3M9Oj<%~FMveoU#ox26+j&@WN-qeC~ zhm#9=yIiLE%As*M^85K-Kv#qlD7L>Tiolv z7s~)&K%l=e3gH2XjGM*CKpLWV>6^P*Og`2r#Sb?TV@b^5DMaxOFf4N{Mq;7st+Qdr{ADLEC{exj@o z{_aHP_~i6gtK{URwmWz%_XEXuHaQ*-9t;kvZpz-4YLV&$DX#xZWxC6(SK)Cka}Q*a z-6LO@KaTwyEJmM#Ys#Nwupt~0cBvMe$m3O=oQk;fL9S(yuyfedU0dZMoh^H?R;PL&@*^RTW9QWi2ggbZfCG*(Vz7y8Y3`~E^pJus8aPf!- zz6+Q;uKPutE{MAbutZ%ZFEH>EXt0}lXLjv>pV#wvWyMJO^L7tU6wclfTjiQ-_m<+P z%<)0qZ>a@!n|oZT7IP8CI(xpg?-w34L;K1dO}9WX8YV_Oiysg(<}N>9J%?9fqwLf+ z^h(oyVm;(Z?>!Klpq9K)WFvzYWM6p>W+Q>eBIlXM`y6OGNKV%M5=uYP-LQk;;jXT3 z-}i&WBYowbos(t_Qm%AAxzgP}yINKZI*_Ac#9n1-H;?DY1RXU0;IJH-r@ zEKiQ4BKL^c90^83Ds#^W_M7W|Z{{+0l8GbiyQU7de}d6?1n-isEO+eq!TT1a!JhOS z?Ya>E41eIZ*G1KcDWp)$D&^ z_pl(S!a!P+J+x=@-&FZ8JKXzFHFqEKgPT&0t)~A@$x3_L@Mk zc$Rqa`=K^XOcxR>%(Hi|7^6rucpdyW*c4Xh5i)KTGfr+fX2N&yAgO^7N&UYf+mB>Y z$|IGNjkNttCLX8e#2z>Zc71WHi^X&AmR+OvS@@*x`Hpy=C4xAf799sG)l5Jyd_xSD z%%W9lKGvP(Rw5~xA3g5i5v7K9s`*ejmM0%4zdrB5zR7Tn`mgk9uD!9j+`(j<%QQ!r zomVYe`Z)LhtuWyukh2^4yO$ba8hie(GIAHJyNQe+%%t2NIbLZafmeQrdGjYm0xw_# zdG2E~gBP%Y{7UzRXjbCD$oaC*y{N7TLlt=iKQo zy34$|)>E0`uwQ#sD5sBOF7m_1oa7MVtIKYZy;gqFP`r!&*Y5}WIQ9^SNCa+d`PwgNXv60 z#%?J#^2~%sMMj6;Xe*EIIXHfham~ie?|UbC80^z-E3Yo_5X~rzSPrq)J(V|zI0v;) z`cBJb%1^VTROTMYWa9t{Q9d{KK(4F2`YEL{p3HmE-ksd4a&vPGVhL9c-9AX>0l+pz zV{=Ecj#Aq%4V7TD-jf9P%sy2da0XUn#FzFdM+n_BnY7b3^WZ1Qp6V-!E~e14d1Q>X znL`pC3o&>Un5m6L#Ac`w*SV+jPMqykTxx9H8g+>RZ-@?*h2UcJXv>8hNdKa+&4Uxp zcWfiJAWxZ|`RZvn6tjT(j zwZ%!``MlPc922Nwr_}0=@Si0R4F~RC)Hiw~u~f$MAcN&Zy@~npIC2ftUH&OH!pKDW zDnr`An%tWjd;)ZTakY`_2HxdUJyG&8x>P z0{6MZ#YX!^uhcZq19NM-RTgVPbNQ%W!$+ zNgVSkX=4)7EKR?FhtCS*oTKLp8QxwC4Bt+-44l1iAjZf=yhMQz)0|e+yyl{lC)`pd zj*0-wecAKV$US{)w<)4(eJn9E9T?PPIxE%U#k`SE>-iyR4tZloWwesWpT;q7jBM1t#O&O?Yu5QKjyP2At!V7S zIgVJ*(^2#mRfjv>#?w*slOvh9?mfX*dPIry+41}ytq*v!>Edx7_!XAUsA77igWky6 zT}M&Vv;EZvv3%m}xxU_&VP-CO&CL&!J{SRM;_Pu}k1SxITS&FIE5hhn%Zq-^OTBs{ zUc89g+?$ZDUE-z|)8mZgYll6gOt0(lnZY13&++E3evf7&X54{kxs0RfX>ad!^63GZ zox4x##q?a4&q$qTXXW4G znhZu-Jljgd0riZGomIt1K-6=RXKoU0Pd(Az@eoG->h6qmsu6~%_f8>eCTShg$MF^* z`(+g!F*|p!*o+EC_khwT@)X}Bk6BgD#vPzr+dotl`DlJNv%abIe1?uYBxIBlOcmzD zOT7d(Ft30>cAzhO)9qx_=_4N(0oJ{yz#ek|qOHUHUCQ%h?hMW>eTTVlGWe~auOnttJ-Q(Lv2AvdBY7Qspn>EZUO?{dJgN=Y(^InGOYkPW+xZeA~ z`MPmJmMDX?l`l}|V_^$}*I!$anMGbQ5iwd`Ts;oEFc zuyYs7E2%92xixpXJ%DdfZfSW8-kb`evvv8bDcsilZTdXn#EO~m%wEIn%{s(}>flxg z|8wL|>^Q^dR9*5j*8ROh*K(KqfjzGmh}^g@hc4k#9PhKH`z46V|hdF77Z|4eg=A--kkPov5*htM>5b-(*qLeNS@al{g);S=AWsP z#dnsHe=DZ-;54*6Ia8U{YZS@v`t9d&;E}7a{x;5I0+MUKw!BD>M88)}K9bky@vcW+ zBztS*^hP|47|2g!ZmCl8(-;U&UalTgOP|F7oV=s=$iI^J++vd;n`(V}=cD?9A`278 zEA%E2u+#D|sl!b{{scYw8g9txF%U8H_<2K0kBFk0Crg^A^eXFSc3Oo7bm(9Y(z(-Y z=N0jjm_TF?%l=;~<3};`6En9E8}oTgVVpFG)4V=!hL$|X){xB$H1js`Fn$n|KxFnj z4%PtPWGLS&9WpflZxUYTg%_y^8p8jy_sCw`>E&C1kgE^@JBYm+fTRQA7!D|Nnt5nQ zwX%-z2nb80{*W!6uC8Y8QPKIAuEoFBJi5vrt4ljQ0`Zskf>c z>3FvsrY9}844W6|%^l?d`Q`1QxW`H*V`Dn zZNe1+;*CY}Jzrs-&D(?7ygj=ZYPnDkA@w}_-y$IO9&`C-zUTfTTzA;W9~rqk642Tf zv*XD;a_HZWCZ5K#dBkxK0YGsVviC{uoxClI`BAxcfRa>Zx_LH_{l#2J>~`%jhI3aA!tbC z5pcRzelB|=kF_Kvz(s&iuh?!z>eKlSDfyjvb)j zPMoYcn@M(yI$~=PM9khT`B;8v1V~PqY7Xz(WQELI(YT0Lt0TKVi{;D5GkPSALnoT_ zkv*fw>~^s{ZtHOJKB5vfkAn7wVlsxi@_W_|v`$*8y~M+KMsLAu-Yc!?0~&ghNwkSl z6%ea#vir4}A3I($c|Ru1!MW4yL-&l{tZXtZg0{Wk<_nqJ;dQKEk49&6i_M3eULg@) z?z(i(=`AeLy-q%TcUE^{3*^a2`KR)vUPpAO zxm%oS@tY4vX+G_(@^H4>^nFJmRmqpc0DBY3y3WZ( z{475F+G<4%KZ_4vNkH&CZq&&&-&P(=ahP&vkhwXFXF7YH(CaaKImxei6sxmyc3U|j z*ZY?C&CEm11909IwzF~Fs%ec1iVHS@@@)(Fo%14ZQrERz#9ijC6((2T9^wx2)(SJW z%Mp{~2|c#q?M0n86KL;vp4@}*nvhPc%yJM)ss^+n(Kxi`BEv}?j8BvAm+M<>(zA63 zcI6KdN>dDWfd)6POi+9WU?NGvTNDjN( z6nDdN(vZQ$Uc{>}Ck;U|q|F?<=`h}Ii`%oLnM~)xzAKE|Ay3Sp#E+eI+RTfEy2tod zT!}|a&AzXVFSUCS%lK}~L*k#^i}+I88AFWkWa3KP&KP1m2a1yMWJsfoxEjE_`BEe7 z8_(zU&Rb}Rg|kt4!@Hpi^Y8jqr@$}Yy^HC&7Qi7Z^Y#lem$@f0Gt*6ZDxL-1#1ge7 z;skyOjKXe(OSr-v#G8YsPM&LX;=0}k)d)||t4n%k_;Ka+BVK593iBOXAOyT#=|t-a z71D7o|IN65FDXkZIMO%aFm0=?2jb1elOWHExI-{lVB7?Z%JD(>0_EA2cF8lZOz$06 zaNBt&R`V7HhrFe83tQ8hX`aG{kSgfoSHo_F$7J4X1Lc^T*(-GN%w;?^y<>8Y7|V0h zhsSMRcr-k-$L_qnEcNOzk9mpYwbkZ@cOatlJXp%Bi3(D%Vj^vKa*=x=2TuO~Is4iq z*KwZL4NX^B5+zD&x%=P8H3+7edQ85_>3>}_Iu0!BlOO?1vHX_?+OU>yY0(BHr!1o_ z1ct1cQ>Y%p8`?!CX|AjYZtQ|{9gBL$zqGeRelWq zmX2at4J(Iq_CDRsQQ~3xUdF!UQw9Vd!-cwXCKh#8n=#qtN1+6aq75Tmd29*3#?q+J z(TngoibG|%URiMnL>cN3%J$>*mNr4G!d1JjVpbt{^LTCW%G1_SnP>_eY?F^J!Gi25 zTdkNgf(4m*HFA2<2GTcPx|)k}O^^@5W6VUnA%(Lsa+vy+$Fxx$G=_V9onjzEmF0MG z@XAw{P#Px3i-Xt6d*>d*d$@8-&h3G9*@N7IR9nb2rrPI2vFL!?8_Go|mBYK6AXLva zTZ?ED%Dx%UQafU zoOA7Bpx*1!9!z{&)$}uRkF3cm7!d#!@$K=-4ZrUSf79KDCqH&>$lr8#(asmbyYDu&A9UoG2%JgxphAx4^d(>ry0A-xjv_Zu z?jyUA-X?%kjAgKUEQ(jGF6pweEp)+Bi|U|!%puESrMY49-2^&L7N*;phkmdL32z!! z37i2oqXj0(T)9M_?H+@!EHjr-Go`n&UPWfbzyY;4Sy^-C{5;IOhVamI^`Z$%L#(87 z>&|B|D)gALvNbifnjpD_@jz44X;~9W^f^D^$# z&0Ve>4VGm3$DSg!Y9fpC7`3cdp2Y>Vy>XZxa;*ZeDfY5*DK|@=(`*)agShhi2Yl$^ zwrV}U&OnH8&=c3{ZIgL`Bhr|jh?slQ-EB|=$sE`!mO9O5q0veuA2ril7HpL3m8Z!; z@=#d0v|5pXGvT7w+@oA1?-~S=g$q)l*MN-5p-fF}1wR2pj={X5)e6A|SilWd!LKIy zS!kNog3w51=Yztm76xr*@>4YG-^HafT3*zEG+b$njrksS)V;%2z6yZQn><9eoUKD{*_i64 z#rfgpKCs>|PDZa6aW{Cg9t!?wAvJ4dJ<@s5#4eq`IHH@p%9vq5)@GVYJzwiebJUUR zCSKH)y97^o(T&M$kCtcDA{BB>ikV&2m%6WcXDsFxR$Joz&WGu9T9G%%7ZFc1+q?QL zEEcTBYEpFIv>lHbGbbN8Na1X*Ih_YC5tbTLT!cN}#KGuIR=`uu>czDR z+E0hHsrEuW43)LwA;+C-+*$3JjLXZni>YU3dhSqp6(7P#JqBc39-Tvq#+b|DG_@WjG_nCHa%YLi~Pf> zrcuw!kfeECuyP)BwqHZ@y%SY>(^b1uS>U_L{?8J4@ZMLxJ=}w4GQCcFUKEGLPh5u# z`%(JZ+tl=^RFGF~Or!KzZPkn16X?iE=VH-vO#~Rdj^${2ezS!J%MkultJZ=0)G>L9 z)}ky9ojXa7Y0nh`Az3GbN6nqzHW7^z&R?syO~HWA>(g@zi%t4i{Fr@H&GBPFdZq*B zq}2qUx7-9K&*y^C=%jA7;$x(Mp+d%EP;dER9=e;a%)3+kkcsIr5wNH@hqt+O@k+Fn zP8P6vgO`t;Uwn}VH>QIrlpGQM8LsfNizp!s=I3iA$&235x06{K+EbxlGwl^myPL&~ zS}@U*?n!{HXk$fAUeT7XeTYVh#~QCazXo^YV6FeU?O zTk^;!bQOk+hV8uW0sgcW=fQiAmcRG;Z;CU;JzcC};2@%&?VEQE92SJTvzbn%kHJ>Q zpx(}%DJS+GVT#|}#hnUl;FzzIK=B#CPOq+!RFHi7UMFGD+5+*mMJ z5cg~@G_e*O7UXa-ku*#Ttq7r#&>DGG4$4$ToUO{kUyyhhi#F7Sgzo~6w@9yDMF3|F ziy7NXovK_0=G|zt*yt)6!DX7oR@KoMY@$q7Tb0vlm@YkY(DI`(N{U6iV66}bM6hE_ z=0Fx_;{`HrD$D1JJMv<=o~1bIEb8zUtM!-@H>Cn}FUgZRjwg>qAgm`-Jo~c(WD>G0 zMw5K>fXriJNk93)1G+I|dAV9%ppClsv6x?bT7G0=PCXfBXatjf#c6&}(k zMl$HU#mbUa^v<&2yraoCtYz^E3iTGJb;u$dI`u3m$VI4*9XF}CPVrL*O{hLm@JEOn ziz`WAr4~b@ALe9GsG=l~k2`AiyjP&rRB0B)Ja-TUF>hJlkb}U>$i`OC#64knggtM+{&CtcO^{0rnn4XTBh-o#JZ2CFe6VXY8S z&-qX0Jd$gH|Lv zz$o(`bj-fX_0sTv$8r(4e9~bpn!~S@GanKS(TeG^Lnm)?uf)@BiHcEkzs;GRkuz4& zHHcQclxekiZLGweNm<<5Atyi9VQxll+h@*XW09#}IcuXG;R?S~rVf>soi$mxzIN^g z0nxHEnRz#hvnE7c&ZL@YPwhMHlqs}?T(hU_u2Pc4yYJ*pi~wO)XMU2xkykq98GD{I zfaJ=#JEMQaWEl|TrTJ;kOAt_QcBXh1<)^Xo84ukirZ~%fm+F70_lE?Se ztn-#%YSY86(mId9w4INyWeYLyH^p5F)uPfpu|@L^yr;{$n5#bWL>yE&E!NQJ$kVs< ze)yrj?dqfWp@AmMV93>=mDYKk7%COg8N$FFF`Y8-&hy-Qh~MRH z5HmIwdRIF$*gJ;WcA*)FGBeANu^O+O`9Rv-+?}2)|am-eQSOLaL%$KT|O=us8Pl)2}Y5Zq7n$|?}Ca?lI4A0IyOoBNwxeWJRWCo&!TSOSc)%17+K_HRE?#t)Yw)9LF zCChL5+p;sgNIeh2ZE$zAhg2!P0l2%(u&d-{A7FSU(-!(J^b$ez8s%dJrM+l_Be6^8 z^}J`m-HB_}6$I6`^i0Y=>>^iSTY4r%5-NfU{W7UqrjlzdfXtkm`H;mSe#08+deor~h76^Pr|yTcEj%VuCuO1JF)Ugh6xOV3mnH%QY7Am1@J69Hyk z5d$)FZstSIT+9L=XD+9M^1T_~cv5h>SIIY<+#RPv!3KeSm2sS*Nl!MgwU)uE`&0PT zz}rJ;^W0Bi&9R4_i>bO_3AKS}L!-?`y=ZjzvI}6AD-LY)*70+3dhpvM?k4Jy=#;f$+P!2**ib=R&cDFS;KQGI9QVX0#}@bP*c7}XaD59IHXI~=$w9e zQav_ryC&O96%z-hdCENEsvLQfz2owqpSf^K6`B50sayp%F&VF?^4!gPz9es3 zk~`&(&sA&@n`<)VkL@UvwvzkhClki16YzZ@TGUlBCNF&q)?_N(T}8AUf_&l{q#&Hr zU&5N~>2!s}!M03IiYczbN(=e@cz0zFRe%uLYnR*DRr-Z+JzE!VVW?Qle{Uf6!H9Ta zS_y|R5r!Q{L2x2hM?AZ%^1;E?K*$&B$X%>pG$xd`SiL$L-Di*``tl0SH>LZ;xd<5( zEWM;6FK9Kti4{J;P@G+j3G2x4X;~BG6HXou@|!mXx~M0z6*^VNayG>uqxmnPkHx|C zyvf4Apx00(F#@G)G-C1TSw*95jhNu5`IJ8h4L3JYn)%J|fXx%n87?Zav5kt*ie#Ru z4f@%$Aal*IV|km-Q50XR*_nB;O1d~;VM3u1Pgq3_0^Eqvh*D^|V)be4X{PcOGH}pE z6}@;WEJ|6Cf+cPecZ%TcvFuGB&v}X&%<5zu&n(Pis^>n#E|N~Va&;c4sjtcV>dKW* zY{zPJYtfdcLYh)~W0Bu#d4VoA8(~?Z7XFx6Bt^XfE$53)w=O1_;(l|w*U*n+iy5{mbc(FEt*Hgcz7s4kvfr(4Aog#$_ zwZ@{1Yn>t{fd4M)>h(pQ0ZxRS(tsvjoj&HE2@_ayJ46_8ny5T>HZ1}#2PS$f#JU^h zACw3tPUq@zJ{(|JO*aob~lzvq!BTNaT#YR zS}oqV{ORQRK#TNO1Rg{wFmq{fCPpAcl+LJ{-?A~RWK%V=Qd>SC`RHIPs>PZDmQU@F zHO|QU5VD&jxvP&!A=c9W~hF6!hF*Ai+7+>KiCAc2CB@U4nnA4DG&?#Iz$YJusaKd-F9 z4+Jj4vVCghx}@+K815U1GWPT-<{rx&*!<@<$m!ZoCbLwVGR0ilvj)&(_x{< z=PKmcj|s8Z7#!8P8;0pV-dDi|KxxYC*Y7sh)$+%{DT}EjQUNyqSo%X3+di&;tjDmI@e77m?NKoUL6keBATFisO1zYYUvvQ9ii?=PYkt$HuOdo@|-10t_;xP!!*}+n-^e%5#~iQkJ@fZQHofw5r=Ii+5rWC&)Ny9M z$l|ic$`V<{It(cmPD&G<&Rz*pEJ7Qkq4^SFd7QLPIa&+|6zMVOvrZlhUD$L?q}O^z zbHJ88#BE-S{YTKj$Is9C*b{W{=ItWCd)=E3N+B74o2NhwdxhCtpm!B*Alk%uJC1N! z2jZG{QBnA4G3zFhTQ=Wn=NrfUBc{WEx5|Y?7mUlNyv9vF`X>6=uUvUSNJilT6vRozc(w3cdp&GFkMvL zcd{5=&9XUJDsbh|M zWE#>r53kso+et5|=UH;2bQ_1Xj3^FX;U*`r8Ypd)@}d>Fhrp`GVYFYH{pv zJXDJ506iU=R}M`xwihB8atT!>s#%4M&TG0HcFP}g-|r}>F?P-)nQ-V(Kepu;re>vj zyl(FN+SRO7kEbauf9XD}9Xojp&3WkszPcYF^CiXD64O?ob$TjkYC^Gc36E0z4HD;v7QQfrk(d6LMg{i#si5R={qT!7+y`yvJACo62M4p2cDe8jsRDR5EWLN zlsRjorTeqOX_EwcuAH?{sv?(@2v-s3K^>1=`f8M~ZJ_YzxifZdSz%(()5HI#Iw5W| z65G%VK=Pb-AXsmYNd;AJ~7T^59_n7q`Z54YJ zE_rQu_h|L%I3ADVjjCTmU8Du(#wm7kaCpwv6nS&2-{-#BJXn^OPTp0T&W0oPUvJH~!nTNKDn<=?|0>KL7rJ_an_p=VfHX}BPhEA6FA zH1a0$-=gTNT&eij-DLi^=yWS5pM6l2T`UZe>nfgt)OvdCT~{x9#z;J7hFw+97>h@d z^Q-vcpz*pdJh_aDiOdO|X^?%9_aBHnj;^s&AJ&Cmxz`=8gGK*!iwThqyz>6*NULCK z-IZ4ZET~)!s~2D-^iH36iu-2Z9iz|YceuyW?L>dm#@ii78tDOv9yOAFa-yvDjRZcmB=6<7UrL37BwjkE!R~nOJMU}#yxr7)7{2w3jI2rZ$~Ir z7*tfVyoc=7#mb#HXU-@F1_(V0l%tX&pM3YYS)JK#IF+Z5xz~$%xqx8x>d33;o{dyI z25A-CXb=ufAA{STOCDA^6Hq4_US%nozZCeqW~Y?aFDW)YFnWVIIsKA+6dI%FbmvYF zaord__D;(co~(Z-^>xQt#oRJVkAtxFVpYa?{aW)%>4nS9&UXv0g;g}I~$9#I3YZ9$oHa5rJUJY(F8l+@HIIf6p&~+%#G~@vDaar=fxvK zi;oHayya$8)vkuLO<62d$=P0rMhb=Jwe@279UPO@H>`ZkxyOU{m(f|VB;UWXc$ASV zPhPjVYvDX2?TRHCA}tpWdb*0Yf`uM)x^n%Rg~H{*58m3yOScw0VTYHGw4P^T;7DL1 zRrh?zWmIjoF~K2Y)){7)?t4+IUJAErYMV-amPY2- z=#BN(BUP|BA-B=JVtwRC%3&T0mOMMafBvLxV6xy*uUsK*L1fVk$Egu$UnC`6cX?YXmcyE94Rdh037P^;}j$%*4L2=R%W3=3oVBvpH>TgPJ zoU_pRlPA;B^7#o{ok=?uIU^r|Ce%XbzmXq4h6%My_Ful#0_k8)`~BW|uo=0FgKD*R zn}T-7U1ietVYFWK4YXPuPqp2{Liz@4!SBLB&{Qj?dj=sZGJ|7cEzA^vAV-GAv|3mm zK62};HOw;oaUloypl`aXgzS9ym~pz# zE~$PCW($YaRBh#B16~Wq4fTp>9whgtCwaB2=pLxGxOD2Zi!o+uEli%y#ZT5SwH9Wl z7ugiUjMFbK)30_vcrA#}u6b4615p5DbVkolgAiz5;%0bxT0V?NEYlFZlP9NQMOiNP z+OGVE7Bb*ifO2xVQd7ZEWvJv-XBjh2@8bJ)F$2vyU3_nA)vqBzi`piq2rEFPT~7C{ zb`@=qX-J8Wvy0OKu6>7*(~;-HLqtN=-8D5$#ldo{p60NN&(*$d0E)q>}S)*pe)kDdIOt(+638# z3}MXT)U%NZ_wqX~wyup#I1l9(SM*`d>Fc#=7qbhF3)81yb@Vp6&zGKFObX-sxc1EA zykdMG(B1C09F3xT zAa2N%>s}oTLHBL<7b&s>uuYfv~NSk1B<~eLvP0X9j z&op^G39dhbD&=>ZqPjqg?o+=;ru?=T+ee>`nR_NIc>hdKbnbb2JPtD^gk_IOcP^Y= zb#t}6damHNaP!lBxoSu8R(O`YteAHW4|FT&-o{jy?KC~xsp%8iNaBGY-grV^;*bx;l=+H z*8zc_y4&Pwkr62HQ+M|X%{_h=&YyBD5;i=~`-vIXz(b#veTw%QR!`m7Kl#W&f+uq! zO`|Gpf}En^t}kiy9oLevX#$M0n6wGZdu`|}%_APDWFN~mlclLbpBb@Fj`h)`fP1iO zxrcJPYvDRKUnl0`)QHpRytenR=8r)^1O2yhok_c8jO|WLMR*4HzCo6E6{&S%$(?k1 z)V$OP%#isthK2gQ&Z>x9A8KJ=o!u3^@;x6mq=P9^t5AosOU>9! zGC(m~_D;y{T%1ouZXJ9n#-b7)P6cTb`Ongeu@)EUpNIlj@~de~6|)IkA0?1R%afP| zRG%Ar7UiW7<{XEHFH!+USo!5vkiRyFJ{mr+o!5>-J6smillPTVfjC1i#uUcLD?vat zS}$9XLcY~6bg(jdv5RrF(82bdOdKVB%=&NBi(sNyAqT8z!;E09UJA+~MkAkA0Z2M-UKQ` zi=(DGVjIUt`V$O!HeFD><$1+oE)3#9>Ed`~HVou_+nz<6eZM#B zpGUP&+?TvfuR4>ZNFIaeo~%XNtb#^`nx|09U3)H_0TuW~i}ca+d>iIUMP(YSScR^&D;Jlu!g~`|vUMV#QK0tD=4w;q zBv12UU}ajH#beOJGy`m@%@1{%Iszc^~whhn7zK4`;p%l zke)Bf`ukCh8&vJF&Tx-n+!(9pe7WXHebZPyUqp-0!!%Zp*LXjOCT+}gh)a5rl?;1z z8O(Fabwd}lmSj+BS5k4?g$+~I=8G5Q64)?>**@D`y0SKApx%5B&lh9!Pv_yL7wa`B zJz)f~5Vu{(@t;C7wO%A8!-Yx);-d( zFgRYF3c{(K(%q(68!8bOg%F6j2s1Qw?N+pblq>}dR#AlnbIVQzz|jjD0M=ujiGP-{ zlea;YuWwg*(Ewx^JF9gpA18kdEEp#5fIZ)5%z|OMy=}henEvK@<=hs%WBQxtm9?Dz z76e+lU0X+&e8fYbg|R_Px=7y&{tJCLagmQf*e`U-h>g4ueS*!S^_5JmUP{qsPzkTt z%Z<&O%%RwM0wIh)2jvmbCJmfIAxkEuoJXDk0BHhY7K$PrHeGLV$)ok(u!OU;%|M&Q z=j@`5+^^1*jzSW1A+uMhUt`u8c^j~Ko@fE4JN+$?dDrna)sKN^+Kd2dF>OqMlS1^T zc=-i3?_3-`MN#%LHqY)edQzjF1$jl~@-(X=d-$0ujdjhnF>ixZ3nwynF%B2_Jm%n| zgVM&l6C05!Zl__GEedKq_VWS};>r<+R9i-Vxa}r&R0Yq6hEO z-6RjL5W~&e?EjQ1ux6^2Lq2FTNuCw21ul;sJ9zh^6G7(DrU;FSaR@e#b9s#X+ylwv z$r$LqiVQBOwwmoF9+QU)aSNN2cHh@kd2uJ@44sWs_*E|>PF+Fc`FU@DT z;aeV2fV`giA)``Tf?EBc+zsAb^EU^b_gcP-eE_=d##7#}CB;1oVS?qZwO8)-upq&_ zC{#0~7u_t#g0nlvzKU$kWr8iVZ(Y@-pkj-itXHw3g43HM%60VOF|b#+L;T(5D%#wK zIY!6E%rnvv)9wri>?;pXfCcJ{e5dT9$-xhCf)+X<%UC_yw?YUn1#FTnw1HjKv@u$b z3W8c>P%Pv1>=d>&7e_S{7i9_G$SZ^p7wg*iR(TPYm31#xkxEhiX^t}5*u^;qwm|D` zH*l>!IC#BHBUsIgHW8&8RP*1v$TC2relT#jcahA2P<>abD~=-j235nI360w_W>Y-q zV2-?7fSphZ zAt6k?Wn5I>_XetTgLJ1fNQv|yC88iDA>9o_NDd(&A+1QKw6xMW(kKl|!_W-_GcZGQ z58vPa-p_q^-Y}cB_loCv);jy#h`4&9(=RKf`!X@d9#X-xtwt2eK0KpihzY;&O0rO( znK51bocgJ;dEce$)>1vL;a!0b6(;6S!PxB@{i5Tw$a#qis+JO^j?V?el)ou2hxOfJt2{ydf)ZRevU9GSf?u8=9))H?Q4Sgel(FPmA`%TtYZ zJSQ_O(d-xG@1(4a0(}Zyc){TfYo6Q4HA+nKXoH)jm_qj63A%+n;m|)U;d1a=FHa}R z66iL0z+cS~neBZ1!|j^-Pnmq&nsyv#+@?+i*;82?BD#K|-t>EM+GUt)gg#UxSs6!q z$Hx0lO&JOYZM4rd_AN-ax0O4znd#MimJDu}W4NL^nh;!NiS@|~%ze**dk!7>e>3|> zQvS@8-h}rLo+XOVwg$Yg6sctmn_BwkKxyPK?;>c2DnPACc|s+p%BmG@2)RSOzB81U zAm3@ku+V~p&hNFN2#0nx68Dg0 zK?yUn+E1YRYPy+MN_~>SV`DViD z8%-KJTtRW(wFnWh5F+Vxm6MJ#!M&L|`K^MM+Q}o6pWkh~%RhL*vuAUyy^M3sE5>R6=25ql+oh?)a3Jt`uz`2t zvF~g*12$4sbBhQ`f2m2dEyeDayqTISe6Mt-GxZTg%ikW8CK_ae5bKLK8!^q97||=D zD*pkAOL*PT^I_SV?XDW5*9o;3jN*Tc^Kb9$$!JCU7nVL{Pg%!`L8|8>pZ#2mDXCP- zPFbS1!d(yd6kdFL1O7TDKwGK#%01pc2Cb-{%ECb?&yjsm;$mhBIXS{Dml>v;mr|$^ zHng`J=PUEHZ!uD zbfs;5_>x6b6x+-cTo$1-eQBpM1tX|9%Nz57T8Ux3SovK=2psib+)lR-4_;V+HU2{af5!fFd zSK*g{Pa;B5Nu$kYay>EVwTeU*eD|7EHYzWsTg(0%tTSQtvCCvBmfD8$COjoW#OCd! zJ-i`)nc+75{Z)7%yhvx9x#i#0{MIiEto8&GHuo${%uQb7&-URwiNY#DdS~^l3wGx9 z5_}jecr`l~VfmDF@vNw?ndFcS|6ZP2y-HT&KVT($#}ai`BPTQ$vD+&-(7=rB!@8bheNZxJ*cS)oFU2!>4s9l>$ z+~ay#Qu`jA8>c6JoPEY@fdU8F?4KR8urYHEYr;tSRos4X*$uP1g2N}RO*D)=46*Kh zl#R*6AiNg&N1`4kzPpGK-11y~?b;c_s-Y?wYQSHPY|`6xO^7u~eZc&B64zDV=S)|N z+uDUG!}=mtDJPB(zsmjNbHC+b#mZ!)KlZ!P7veFg124%Ck7}wuTZxBeNw2e%T;x7e zm{oL`e;>nzXIxe%deN(tkz4yV*c98O?6Gc62MyoUOFy$=9Tp^IqQc$eXfe&uZ3j)R zNIP|vVGP^@k{-Yp(QrC%2mPfSSD~dh2RwX?;4j7YxXHWzYE7LXKFE?4zb4SpoX1Yd z`&5EntcFD4sp7MlQ?ub#$S=n7+0lyTBUU$GGb4itGG4yBV((Prk#bCpw%|IA6Gr~O z)*rmKF2@)4PRnkmz2xy8+h~xSig@{p+2D=DQqHZ+F7PnbMhIu-!vejGL2c+}hsHdxR%|R4Th3G-KvEKJd!DJ-x>8t9o2A zrT?lgRJbx#W;0=t)T;39mPidt1TgE!`t(?D{r*E(P6GC89EdCbl%E^(v~8<&(3%U9)l);37#?}a zSov=O+csk3Ov}h4N!$HYO*SqfElC=&88hUkyXc~! zE>70ru->GA=j+!@NI6qZdf*z!Cak|xgRshgNvQV^O=>76EhZxtwAk9-Ki`R8b=AM6 z#X~cjF?wc20c+PMd`Dm>W*kg7I&O*o9FRrrsIVJMVBx^NE~H;%E1LG&Xq3+hmTG8y zSfAoF$W#^yi|ZHXg^qDtOvId2S|c7#u<3*Kv~+9<6x-(l{j01IJY%6f%&riXm?4Ju z=u&|^oj#*5LS~i0twtOs%9O|=yM#%KMceTN`)LM=}_$KO?oa+ix(apYXs z6{9L3EiJpl(5KP_OiUBTFHIM`=OxzuWlGz)t z555W&0SC&7DVt}?USqWHO?h~%{k{>^2&61VW7W@EJgfhWEY=V(vy2rjC!hRmtq+-& zQuUmZu2oGwa>c}^yRddwY^*!~y!hfY_c~fd>-!p|xtDQ!Say&4Z`qF<5x*5nhSKD5 z5L17SDo6$`kkviU4a_hilJ{I_u1b>fWVt$iJ8%E-T1Zp_&s)fU*-m0F3BEp%;nbMx z_6&-Q#oaDYG^~txNUR(FYIW_sx)dMp(})EB18?bQvpy5yWVzTUENaPKr=p2+=m(?t z5pBc)vu$=oO0O+%-Es8P42+^n1}7xfH%n4GQxxM>aEcvl3|!rn?Rcv;%0CeB1%GKz z;)e?HEzWZ}VZ zef~nS^?k8p5&;b<-IVFM&vI|Ok{^|NB9s7Stxb3PGB>O6cr zHC?aM0$3QNCY!Mao1bSthdy}676%d~_5Ax*p4nE-cE&;}t@u`rM6JI~ID+F4q1X~mwc58-0*^f0usMNn(BUQf4+5#_>HxoDvE&6l@cLO7V) z*$Nd93tABj;jEjf`{rwx`?)afV*fL*Y2l6>a%R0f+W=H6;GA4N{;%vukp{I!jrK5i z-HgnW+ezer1+N{St%3>9TPp+KXImRE&vd;GL2@y<2fHd@xsX38LhrV!?3LDr^()1j zH(DI_T(GT75Ru%)r`LVERonAYeXrD=<>1hF^*#R?nwgvmBkP)2$aSX3J9lG>2X;&sq@)d=U z|LQXQODK_jfoJI_MSX!H#&XrqbYnckx`Lal%(A4c@YJC$XEEPw8w1`*yrt+jIWxI= z6Vu{Y9dNYJ@HEP$F+g@~G$oOt?q8OyDLingpn_S(e)A?OP=k-Caxv^>sE1qT-mYGU z1UuDx)ZV{95#5gdP~A#3r_ThV5l&e;v2SNda?R_gQW(6LzGz)||0S2-LWCAxOh(=j z2|3tdZA3A!I;aO{S8NU_CHXxqk>)QA5sX*tWyiFq+D{ETuorGReyLs5E-(qkrE7G= z4eK{{lWazi6qV*4i}bb7+OMMiFw6Bx4E%DT5sx*_y(&w~*c03WZ7G-8>foheq?n|c zXs7;MOd<5il5)BkQ$|dT`O8Izflb~totm(Xf03tdX|JokJ`dE2JIdJSxGTb?TNX0! z2ox-?${or4fy5`^N<1hc5q$Pk)StR^ry`xae?u^#E0rbBv7$6kJs1w`2&B2H9p7po zT+jcz%Ll5%Hz!~EWci;fpa@fJeH+vy)=ylH4s+OQ82aempacd9FI*GSnjG0^$k zH9vEzQL~-+L-90LXVqXC%Q)9yv)I=mLh-1GOmXIEr>!@%`}Ej!P@hNOtFqx$a)rJ_ zUAZhtrXuO&E1R}}9ac?(=7oHLF?Pqv7t7-MDZmvA>b9I!X1U3JaW?-i%G@U$5xpBntATy=R4wx@Fp zs$q|rON8p4Ez>Rx=)Tef71pYX65CUE);Rry9$FRee}A^@h`YXpyDm^t8GpLOE}n)? z_~HBYL`e1<<)_don(SPeEI!3);2{N>HLvc4MD$Jut|@pX8x4DH%ElWJc($bzP1Nt? z+TvQvq^EBiEDtW0cOg)$49r>;| zXelImrVIJOyuefgfp66Hn@s&)iBDmfA6%IWAOc=Q!%wx2p#<*sk2z4V&G;6V0iMW* z%YIU*P$JurA%7r>2ryKcKSg}iO0iOSk-O#i_k&|!tTk(!@QblTuCf7Z(w@1eP%;bE zl+{eP7UB~2YXOv|Z@NbpDVX=?ZE$df&+T z$ddzhQT8ANJ^8aDn%3mj=8eScRJ&Jgj~J8ci?JvY)Z3Ev%Kbl0{AEVpxs7OUqSXCk zo>W(CnmJU-mf*l6; zo9uN1X1c>N^5VR&ar#dcNPSTnnWfc9&c9ymZxQ=%&w9e17)4j-h(J?u_!Jx3_9?*$ zH>xI|PWeXPHvg=y@RES@;}SQ#XWI%i#h8$EEav1uXX?|+4BLKA@!tHtm)iBoph?hX zqtB0^3jgW607_t)>2dD3;jwfdHilX;aH)gaS5<4a;F@qo`>yIPAu~Df!5_jYfg8`W zKDta*_STjy{00>Ay|;={KVp6=)#=b!bZ0F~Q{sD2{@R#mPwS}wBeu`j`-8x6=HLQt7i!#-fN2e+ZUP+?~T z8SnhLTf*T;F)RD4y8IQ`(}?f-)N_aC_P(jLMN-T8Zg)x!%h==CCj z)<5fg(%$wT8gBQ1Jv1`6hIdM5>41c<$`CqkJ8)&U34>$`%cc0*{oqk@M9$(-jbsS+ z9$l@Lfa(H9KQ;TeaaHxGa*H8ZZe3376XjK}c~7?E}<+McFNDk0# z`o)KEQIOse^tR)U35-j=*ZmnG!Kkm*ym^MtEXiCo5CUNg4%0jzmel0=p1TUEZ`@qS zyCFV$gT0NKB)#lg5?#!BU9|2N+P2xeeND4i7ZMH$d*TvbWXZsRvpIe)*4Z6B!8)-( zUZ{y-nyL20Lg_s;;A{v6i4)s7=D%78OCFgSp(P8U>S5~>M)2t+$Sx*`|C;g-D?=wN zLLp{|gq*7WWOouaPlIO0noSpSmm}jIX~^-pwNQO(5Xn z1*ln^<|hrcHOR|2!cW0zv{7Q6ApvoREc+U)e#3Jitme z^M>{`(26b|Y7ilJxjDM>U`i-bYjd#|L51k_A>9y6Y9jJC@AUH5?h`_!vgg@T%Vn*D zU@MLD*H^z>@V(-@!*2>e!uhym{>oI=)EJTwd1tp?JOFKrgcOSq0V6LhTdl- z)lQM?69LOrLECp9$6S;n`kq9>eTzoc9z@C(&OAKe-*}ays&tFQxhefseMF8jE<0EW z;XB>GlsHA2!1D73D_Rn@W2+3}MyakQV`_d_y{+6iqbhXon=!xOe3-WDoD*`@b+@G6 zb!JLo?kqN$8nqV-IqEx0o2h zuo@ozCwTsLt-$Csb7d1@H{TPy=b#|-yAO+4*+#nF8zRpP4%Fyb6s=!6oHq5-{@pRi zx%j^CHj!b3z9GGZD~&g|`K+^i=6MhLpiBTbZBM4xbzoRo66))W#B|eCI(4at4T00P zSvlDJT}4e?R(BvK3?p#pm+#rXch-SUAkfIGYx=v7Ijyng77|fbz4^_{PH|fCOKR(0 z4n%QG9i7&XkIrwuqoV1Cc`#*RcgxnQ4fgJG=L{qf4-b6!xVlap;upg5bU>@Rk|eP@ z`{G?_hxoQIciaWAxu1dg>{FEiq0>Bx19@z}>+oB}J0#9sX*WFbwfR~eGxOy*d`fcI zxign(zdNDBabRXvgwN;nGC|u9V~LlYHpvv-*4+d}&uVQ3N5ZIXBbBZ~w?D(Easl^Q zSel0uzBrM1 z9K#0{4CV^P@UPExI9y-Fe6DgC(Z0r|8JIXd*x|%@X1;o)3hOi^TomkC8vF8V3B&ib zheTe__F=Aj3~=92<6V@+LZ5vz>l)HJdx5xQgJ-$5O$H0$f7up(`=`}i9ZjB|v{^*7O4QN{mGFw*ZsG}x5;>j^4C^&~=j-8+DEM=-yMC_w&@*q?Ai zPzm&gHF3g+KmfDQwWIdVyaQAvjV|a8O3t_B+;PQk)q4^5DW8VZ;SD~$HeV)%SF%A( zO$c0M{&|Y19U3rI<5BOJ&%=$0KqD{sKT~2-(*_n%kTPnnxg(%d|>2vI5 z(UqG)s%GOAH@c%$4=Oq^_h5k`?O;^YH=FkOk+=3>cJc{}V7J5Yja1ea&NBVav=j=0 zue7qsDGMkmxp|IO<*p9la-%LNqJe8}MgqYl!A=Hw4_Tx2gkSEHs)5o1oYTYRkw_b5r7e#Tsev0b83pu-1 z)Em)&bfQI2A^r> zBh44pF|KA@FCJpwcKgxCtS=`M%;90%sVgm<=lU5UkHbv9=1Xx(D!)@%enjx3u|@+3 zTkCpP2p&xmluf(n)>V^J~(n>X%JS~pltH)z{QylE&m^Zq+G63^`{#Xo%A{A z&mVbLBX72euQfx>a$-|1d`x-1c!!3#*eP<}WaYESjNh5xxRJ-9zw}6!V#Nw{dA)Y8 z{%K{1)y1RW{pvWn!2iMeEwP-?d-L06Yo!Kz$u0TSamxVf;Gn=Yzxo$l-xEhQ&nf4k z!^4Oph59u;Ryv#dzk%?fip$@rHU^DZ!E}hu8`0*q@}$xP8P5yVjctYv3U*a=$5(H9 za)BnSA;B)s*#2ldH|?cCY$r{T8cMll0`D4HrvtU! zMJfr>pmkUjHCYq4Qhhf%E&&>V)+@<#L@i|4(ac~+zfqTu4~hsfdBb}k8Nd05;{)i4 zd=9+%&lYFt;}mgANbase(iIpH zRL}LW1N$^pfn`Kfi2H?o_1eP?rJFaWoQQ9)%?AsEo`E)LW#n_-5Hi05e9FRf^O_`< z?(sTNqZdwwWKE!JYa(sih1A^w402G4BD#_e>HRjCx18ITwBlFaZ`$=c>Hbuw*#mvT z;1lz11hG}?ga%X>sTV;VYo^hM#=ebqiCnCLqQ=dEX3kL``f_l(6GO#}A{~mT)V{$dzNlT&f ztIuStvX{;e@~!R3mc$%p=B#9~MkK?JvVrBYk6d1?=G>P6ypQi?dqnQ=qu9+u{HslY z&;R(RGYvAVuym%irq z&ye!|nL)XzBMQ$t-xsE`FtM@?y0>VeN$(eQNTLJ}oH?oRSJ@q`R7XwUQu+a)HmiC< zg!AJrx<|b~5tc~7m^h7FbwLckiMPaqHm81_DG$dAh-izkMQ==wsSp|=9RG*ZIvuI! zgPB4Yfw&FU8t2+y!n&HR0iT3e(?~WxAMX0mJ4;j!!P%8AjP%DDkPJV_R^S{hh`cak zKCKM7>KI^dJtjg8z}(C9B2D&;CnyFBrT+MtL~L>>s&IY+?#$-~(((@G#jA5F#6*yM zBHvbqfe7Y#{(?=GcAv@4C?-0euy*w}hr3WxVR;Z2TT`B$=KN%FyI}^>KS)#n!7-IB zOz_9)lMLSj7JkEvV0$zd9G@%%RD`w?4}axJ0H4-;e;t0)4PfHi(&zGxFqh@M8hh;! z;_Gm}rpUXd8yClG%!km|fz?nWfTlus6k9A!KJaFn|dD){n&mNp6J!1g~1SYbm!gYR#N<^c;+UXP|<0KKt3 zFPB|UNa8uA_&@2ieL zr{F6{A_GS5D)?N2am(7BBm;>x001dxcrocYrJl#no5;Ifv_lY#6t!6e?dquU?{L3s ze+WPea3+!tkteYukB$2A`|)rS{nop`!k9O+%qhlT^h~iMGu|{hmL2MwMVr&*K4xKT z|5jwog2ui!TgR!q#)U8b-^^a}@+fS0wF)qrGUFK6=2oZir5STK{TGBDag~N`g^3oy(x} zyif{^51I$DzI|)`2gR@(EHiSjR_`kQE12S%;EJ}h)OnHODU^G0eBjt2u7CEgmCIW0 zN>j5vjH?+wjUaZDD)A5*M31dB*&i>6rBBl}42e1P(P3>9q1v= zkULD+9C|^{k_P=T9MWBRDWM?WIDi1<=ap%+`07CGu%L3`u-vXkWB2aNKe{4ee;ie} zA^}fq6nZ5Rd;>{LX2@OT2ZEQU+`msRjU31s6faViU$Y!%Y}K^;q%}#ey!-pG5M9p&YkNbF9Sqch;#+ zQ3PMSRj7~zIv&_9En%`I1|HhK^#4@fT%wtKMsg?4`tuIk%H_g1Y(kK4^ysw8^A{YZFKL*1d0-`|vt!$5r#l|5xoHNV&VPKrM`O4uqr5 z%t-h$Ki(|WUlc)sw+c3rz{&%=t0nBY3Gf`$I_ug1kZ09F;<1%~yNQzOx(v7y_iGw= zKT^VEdBn#z0-tCk{Fpf1{5VO{?C_AVX^+sC5okm;eOMOV33n?^XvYR1ItwI`2JuUj zK%kkcHgiu5)ux&BYyZ;@Ki&})7MkFvw+a)Iz|#Z!cT1SE3GjT=zrab~dD}6t>bgef z(|pcB5|R1~WdY!i38RU5Xg6+PjI@u`q6ImSHqe}1DrV50_+&%K!#jVaTixda@;gEY z^5B&af>UcT>_eH;_4dxbh4TZBCH2qoommozDr}NRR4)55id$40YXqrY*ip^pid*5y zz1Kj=Ba+BArNzEq(lE4n-V0cAUVW)qIk3Al=~?ZkgYz|t4SSItmO-l*0Bnr1H>u&V zHuI+wOClXRd8ggqju5qDh0;`1?95@IkNG}nHgg}HR*7?|*H|PP953)UPgAK3^OyBe zF>Vv!c*H9Pxn_+{+?KLj!=i{FgPZVk?#Fxr*3492RK57E?YKr&qX|wv&dr}Gp3BU~ zcv^@IXy%;&L92LVsltZ*LzwX}Xnb|-bJO!>(T(+M284o=uoCm(6a<5u;TzrHBN|2o zK`I1$y|p08AG@bHY}cggadp`4Q-s@v+1(*2D6&efwTooK}JNxaC=sDlj4>hrD!absQG0#OLR<6 zQHto*o0Ah_ES*>Ad`J*9-Mq`UW+mR>tys+ptwB-_e{-+i&NCqnnIOfGtMJ4tUOL^; zDgY-BmP9)U0Wevqv&Z+h<^!rQrn(=J@&JjK`wV;a7%bl9tPg8e`W}S)KXlQ|yb|NI zm0}ZmTWH|r9wUXe8bz|e}U z;23xe@aBO=r?HjCcYu7rGlVjk1=6$l6QY_E8CyaK6@G-TWt@9dFF zt@)|_yB+b$ZiU&|^gr!jl{w1gG@!!9OodY{DRHJ_2h+1FA))cjGkdUWe98V3)+yaig7yFF#fgHfTH0x2In-7|7G*5Tg^8i&Z zG92S#4DOz|xgXuHp@7Wlj)w@qzKQo2Q?HXtL?9Pxpd3|Yzo;uLK{o&;P@@|8i7_tS zJWC~uCK&ZrAx07;cwo=8guOPAn!&HzzpCAo`PC$U4ke{4`SsfBCh_H4zm9(dzYAM# zN@_^+SowNwN~#G~3&q)~Dorm*F8n;$w0qhS^mY$evWU)N=(kdUgoxe&VM2Ruq=Q3# z$q8`;l;$0UMVWSa)vOpBycMolp)okl=J)GOF%a%ypz7JUp1K#H+<9G=e&+(7w5p^Z z0TAk+QbOcA6w26AQl?DO3g-?%HK3`P@|vW5#6KHo4%Elv7GrMv#mD`2Q%g;c2*8fb z3WV>h5UFUpo^Xw>B=>XK@pwW5;U)g`BPw-t41pbSq;~k;UsiJQQt5w1d^vkpDD#REVw&oxKnK^qa4krV2J|4x8aw+Z|9MgVnZ-WXoz!5~gnQJY zMBQv02{Bnzh4#o*bHY|S2j+gJRQ+gB-oMvlbl1n2Li%?I3AAHdH?P*(?#|G+Xgahh zMDyhKoPtD!ybsk{1-PuYk~7O3%Q5d?K<=pjbq^?rS~)IAnzZZ{YFrCu(}J`xB?Gtjpa=INIpz6U`}@ z+`ZR!*yc@TLzf6&hCumC=c z-G_aAi;Jm8-#3&=BZPUibV+a^SldJdyo~hZ@|i-gkjo_#0zcyj;<$dI9Ul5`rAge+ zDt^tD*h)Km=fcJ?;{63U=m`AZ17j#HW{f&W91Q z`r-MFz*S)J-L}N~+TpOjtfb=G68{i9qvt^8XPiEuW8?&Y6PdPbO~dvlfPGy1wz60Q zL;&xcSo7>}6T)2ZPslffM7!3e%*LUooc5uI%(&SiN#)M`YrprsXU|nV+I#px%^po!lc=5GpY+g92r7ymlW_j6qvN>&uUe!E?6~}>**Bb?u~P{4={K6C zi_H)bqeU_yzODbC>h<-T1@MC-uhT=@SyDn2mUBAqJ_fG6nW#Rx($T7+?`_2CE7$I= zRN!^e%A)`KZA)diSp$|vJp3{*T@%kUjaBcl_P(kr()0rl{n>qD~dL zk~k-5(QUZY@2^y$tFz1t4)o`@o-T-^+qnXd1xDSv$(!#K2IacF&pR#Q|Lp8OK)=|C zGgYqLSJ@@tB%Do8RIo+FZ6$_?Ne{Y$+{vtvg5)V;(q$^m$vuYy8L&Aq#<9T@2jtQ-oX${VDEEv|CyR8;5@ZBm($)pXRe~EYGDn* zD6=9Nwh2D13Vs)RX)8i%2PNqA7j|ClB05;#Suk)8?XaDNPlIQTEx>fBBTiZ1qKd&b z=hTorB&43$E1mm`g@t&tD{+ZlVc5HH{lBb|;onJ>FJsqcCkfEz$M_nv#$Ypg5x$?>05npwG<&hH888Brh%+PB&JOVxGyZ9 z2P2a5oK}_rNC9o;y`5p&vj(F)53bA>=X_)N58SF85+U7$BZa;c2RCTrYuGH@-!qQS z)P)Jj_wtD8F**UU$#l9#lIevT-%OZE@eaQ(@g62UA*jJTasUdPmM82m6Zl@HGv$tX z!X+js;;5}z^-pk}=yF7gNbjo3JC-XZ&)0Q#D$5xDLrFtt^fEF=dF|pycj;Xt_xjQq$W5+B5}sc)qdk+b8gR8sG738HZlew@)~f)Pp20fs^GRc6|Jv;0gdO z)pu@%-S;xV{Jq>1QPS?Wa^Kh?j^~(G4vbomUZL^5Z+Hmi&U6;K`EPp<{gSJmAzB8D zJ%%zoxM&W%4SEg|(fmlx(rTLKg&f@>m z)(q<2TuLZ~yn%d6Y#O0R_~maBD?KK|Gs|>}A_;(~ZX!tZJ#e8d;j)X^P$>=Xw8y(M z^5@O0w9wzJXY%aYUSFDP(u`RBpUO{Xvs_Xr_dQOX+9F(q`|>!2c1Jj6zjxK zLQ37#J6X@ESB!DYGGPjjkMO_1D72aaFK)Kx+VByO-YR&~kVx#sQBxbMg)iBnO!PF9 z-jGam9~0I#35LhmTIz!!U-`OwiNY8ou!z?9p62NGIo7PAegW$3c;@;x1t_8-qWPIG zP+{q1G3esq?r@bg@X!L2LX3=JlT5cC+ns;-t*!<9NbQ0Nb@ZcMb9UP{0bljHtuKab z14UBct=fkmvGTy}Y6*Y77=ej=y18@%II-cPx_=sS7f6RQ1y{qe1i&sgbDTS#0}7B& zc{^%P;%?LQT&PF+`J!e3^g;;U9YQzTmpmTbfsIPFq|sF5KvB;cM+P+;tTxTUQ;un_ z?*8p#pw>Yh;y{;oB)`cwsaJ+C)wecAW_E<>V0C&eS9m3>3V<=B+E0=uJ3X(7qZD2I zAbg7dOHt@a+&}^vs*~(;ELh>$1GcfI3xcNiq7L`JVfKS)5h3lR+=m$DPYs3m^}~WI z43|~<=a=B!HR zs*Fy|QfbCToPfjzkL~9FaDkuSonPGMuZeLyK|g~9YwW~2`ebu8;_pv0I%N0oz5lcE z;5xJAh%?dg#2H5v|7p+f^&30J4sj^gis78eS3g|rw(#X;g@z*@lVt_LqkKtUt!N0% z+zVm-6N?3)yh_&3iJi*x;2c6)oc-l78dh?Nx0`vf1o_L%wcIS{<-Kp^>E1H4LP>PTnxzTO=|&mZO$L~EGg z9&!WiL!NJ<+0KUseH}n@_3f9fCY!ys5o$3)CD_xbUlxh?VH9#N?L zPj17}ela20IU^w%;UR*!wn_FoC%Fi6hwOLV%hcDP=ELXzWh_{s{S6_)!=pb}Vrs{0 zldmibU-dTdlSIzRc8t9E?c#}jTo)^uCSbOOp75Cb&GP!rvy=ZCTTaw=GY$Me`5DQC zK!cx`)#mM)y$xA*Nz=4!BRWg$%#gYhL{a3N-;0>aaOXpReoK%FzSwbMY}y|9gp}q; z7OXN{%43DI1W5ABpe=*(MQ*$q3cX=&ynYJhZG85Vw|c`qsgn0_T${UAWCaiCdW#qS z2tEnUdf@-Gl$8(K!~K!Ko62K93#mT<$Rc*lX`dkA>?Ws`sqz{DGOdpPjfV(z*B*Y7 z-b$Vk!Mt*)d33U~gmtlGWHxwLW7Z`0qD`7~gnMw7;wc(`@=TcuiT~vUYtBDRT{Z%{ zj%xWm4Agnk6~&h(*9*M?RMg>Z)K1|8ghPChbYvk2$yM%v$($8ttWBxeZlF|pe& zWvrz3Kp;ZeZl%*0ecz8Ba!)Kdge>-GM*g~yQ4Pp_|M#$Dg+GMsH+S?AMg2bTpHVzr z$8SYq<@f<6xI9W@fpy+?4SZ;rSH4RHFpb?G-v(_q|EIVui>-HCxX}b0?MJ>-Nd2L} z7$Z9e#Zbz(i^hUTUZ;%Ekf$XsTyoj@EX-Om;D%v)N}aNv zNj@fx;cC_nO|1cL;17=DxM{~I-miUD+#96Tlur!?#0f$^M_r#wSkjJ-U>(>>6PRky z9~x#oQ;m*kP2ANH!S7bxSKqyXY#5V8LX^R95ivHq{qG?7&)1I>MSx#j zVci52WL{t``Guim75H-tGU;}sMl|_hK+`g%S1f(-21u5uoEs`o0EYiliC_grH10=& zwy|9`mF+6_b4seNV=O8Ol3S8Cb$QL|X0gia(R^X$v#YI`i5A2J{_CyfhMfg0bjMXS z&5_?&!56x#-D4T0q(9s*;S`hypLDh;;@0u^kXUtoo_iFFe$GcS=VyR;fN0d9>m68t zC6&EveKzK%o+O(|AqfOkG=aSK3FQSAK)s5zzrQ(U@>~KWA|Fe`zKGSxYBw~|hCFyY zgy6vX{OF1a)%7)_5G?lEE1`=7Qx|ZqN>-?*`yh8rrlwW`ck>v<@Y?SdO`cMhruOs8 zdp^IE+r@kVBudMJTy-T)VDeypDKnyz<%Dzui2EW`(X8vn3)XMT0_UgyjC>_r5-WDGxclsPfI~sraN?8qw-+6)s z_YX6WRZ**Z9zSNk1yqN7D)e7N{%Ym$7Ix3*XAwGIS2#cs9%VQp)3ibGwQyly_;WrR4{sx*ladH~<#L zf(I33Utn$fgebCC$O77!xxUU^zk_;9 zg~d`Y0tRq_5)pwP9Z~~!A3|Kv_YHFk+2OdoV=hdv+DfJo!$cn++``>S$IQ<^8XtJf z{PeChhi3aigQehC|NoH|F?+d0{P0=a+gsc_G#gi6|Lqk&xp??-zs0M_jfrbRue%Xa zGODw@ZqF^ERls1?r1dJO!V_n+hwa$MsSndQ$^VDgA(ioP512Jj@*(tpV@q;;lbNc< z;CX@|rPzlP1x?0rzo>U&bhaSm*>;|c_hU(<4feHYU_|Kic1Te?2GI3+?u?q`4kQ?G z$+%6>{^Rl>WD-sYLXr&`3_b$M2<^y&XF~{%(emT}n`tAsM*A77+;Q!|r;!n$h%Iu;1HwajyE@lm+CQVF8)JSB)JoZbO571R)J0J)ZY)z zxZ(LspT}vg4hpt+*#O?8{aF0QwX;ib9&*3kL>2+5 z@7S`__{qtW1Cgo#mzQ!NrNq_o!ZrvI^wBZGX)8gKt5ZD$K#sGxlnQ|i_ueZxV+IPk zAEf&%D;u;E_^Y(m;pscB0h&Bkd5fOz4k4Cwpq5{DvqQtVYwU3l-|GIaEqprT;CJd0 z1{rTdavVX5qnHN|OpaC6%N{XIM#F`zWaD<=kJiChtw4%!3?1_Q00!{Xr!~4MpffzM z^cp?+hcXf{@=Vz|VF+k}cfx}%CXa!hT9v~g7)gBOCGNj^>yLS>%POzF_w4@-Q_}S7^E!_1enimCFlqn4*>X%hQ%#+ONOT3`FljMmrzBOU<_RQ9`F< zmzfVWg-Q5dvD|uwD%;__eO4%~pGNf1i9KokgX=hF#y;}IO=vvEJ~|${J29@_XcmB4 zJZn}<F%M%xYt>V_E`RTsqdi@;H#=4&!pJPT;eu!%iZ}&}G{AeNlH4<8_T^J<3 z?AowOV5-yvJ53M9_@JfK1736dG{gvK*8A}KfV22uUHb1YvKxc#Nid!W$JlIq zv2hJ9k}7yTUw$XIb4$aM$ijGd$Ncw>@Kp1A3ivdS+vHODuKoDy>nE%iNx2R){ioyT%u}GqbTyGUgnvtm5hD= z40+n7#$Bo9p$17`r5+YO9}Y4GdxVYIM{cz^&l(E8IldSk4-9TIHTE)gRrrVr^3pL~ zK5r+h#o zHh{6ab5nvk$DfA1&n%eD9daF<5isVlK^$H+FlC$IkXucm<&?0C6p9>fIir%?_e?f_i^%N9{R-q}Q(e$F~4AU_R&=R^`e&{k`uI-*}LGDumDcBzXzSLT% zxr+xFTeCI9ck^lad|A`@1d2Oyhw<+uyxsc_qID}Y4pJ*^B5lZT9ke`k)!U5ct56-YUa&7l_R^fJ*N+y z2>R1B_FgFMeV_51k$Pmu7s~}3Jdw{;1WJ^@lQcv(l6dgQw1$)lCK3nQs+#mjl}E#2 zrw-5aovJwiCo(OmuO9WiY-nv2PIKP3_aY1Y_>Iu(Px(*}qwdoI9@A?3UQ3~hqmA9% ztWLr~eQxXu3jY@fltu(%6Z_I?!>aHfyg@l38Vw%)a- zRIJ&=B$xV4Tg1%jmyDTLSA@KOWel$i2m=j!dnc73K5hAn(7!Zn(d`|@3~&7XLH|`F zJCWgIOv&F5lwUohS?z8(@LgZ(Tu5?!{BSxEh?f&6*8!I%kQ~D5hr9kCrrt8Dj;84X z4GzHx?(V_e3Bldng1ZE_U;)B`;O-6w4esvl1cGz$;1C?{@Vwt$_x_q*hheI_x_Z~H zs_ALLXTsPUf~cQjT^U^YTqDzu3Qm4uNtJgSA$#9~j_$rwK<0>a1i>==h#zVet|cFU6H9j+-)oP! zy%Z0*sb%GS@u^({(3e-He9`IJE^ucb^vmISG87JCTu48@%kcF)ZVv?Q$3-`nDKs(G zfTz!EBN{kh8;ix1ZAH>Cm-I;Ivp>+#AKfYQrlEWeY{TGa9d%lu~w3)OHpOc{;*$S%T0i$s3^MdNL}xgd(+)zO5Kc>I1nKnX8I>#C*QA zZ3sj55M_Gly17q6$*sZlb<6q{21NOK5;X41US40RAkjDy>%iDZj-pQ8$20Pu-D+-> z*)ZQ91~$R9k>=<4ciC_}Cj!Iy9JyMETm|9p{f0 z07F+@V(w45PHV5EiLc1@%Cfb4r9z>+P!g_mF^^x&^D?fo+I8-OR+Jl@|ORNyLI69dGv5uz{_ogjwRMzS`+XA{8UHGVjsA zN&5En(pz_P)3&9d(7}_SRxzwrt&YaDl#-xTHjGp)&~Xwy%;iw_0+`nnhU`2%_^w0t zj!-u7jUi8A$63S=T+ZK0HWITa6LX_mjD) zi+{1VsW4xLf7E@Hg|!jaMPNFh0W*U1lEUG^wYs0{3=1*WljYkpM`f*r4!VRjitu%6 zO*baMlI?sOakmzWHGOVQbIwmsLE;M(sM&Ax1$o^5B!5bHfdPwQwf?-5>VjAETfWuz ze0H3b;Z!5uqUr#tz5DFM(J?aDHhoaco3;))%(~QUT5psHCbB$FtP7}(4kzLE!-ir- zU18;x_&HMJz>%30R*Be$GjguT@f7Rl_aR)B)rS)Ba>tz0C`|`+V@^Kx3;C5tC(D3O z=UM?-8KOG@j?RSfSl&*^FF1PhgS|`AO@Xb@_(jB?S0^Ma%%e}F*RPSoOVMd% zz9{T{ChaynMm5H-NsjJy2gu2;)6-pDOPkEoxWiK}km4 zuJfi7= z+eV9??R&w7B4J`^@uJW;n>1$>zIY|?B*$YWU{=^>Ry)j`aCTn@5hJJli|>V&R~DbT zgp6>1gsmhuUUke#{kf7(LMfjeg8QHQ7Btbe7nYz@q%+HuupuS17=_9`LlUtka^0 znlU@Z(vOKZnTog!&XlkAc1)569+4Eo_K3Vhv!hammLa&y=LhC?0}r}y&U%F#$ZTpyoPt;x>{rzlmB zgA+=8WFI;*Yi03_34eVW*{~K-ZhrZ(XA$?FwJc856Li87(!Bgmo9B{)sC78(Yi&>j z@n&W-2<-ax=EAE<2Wo2CbHT}nYqQcDQReS~OM(!LM+wbVas)#lC9bLBX{vMn~DDY+n5|c$Ye;D*Jg0 z9cRsx>#MXdVPpeWS<1{o)wPAdW(as$f~-_b2!~#RvCrd%X-%{4Zz6zQ9i9t!@f; zsZISP*V;FDqPm_HdkiKb!!%Si^AMipTnV&;QMmmsDYZ9bn#0P@`+Ai?it5fR-6oei zq?k@#Y2;sE3^UrJci1y?M%%FsvwTc;7(Mmei1X?@{luz5B6^^I+l8?E3Vo7*OSX;B z%YhJTagb9xsE2ND=NJ%5-qc2@ihnl>?^qX9VV`KhqY;O?W-fuwpUZs9?$}|;vQ9pF6Y$7VU~8rcX@f*UwMP}r94CepF@Rdxc$doi7{;oWR$Pp^Gn{R)}@kGv72? zjw56?u@mFNl}Jad*WV2cagDrE1ei(*@ef+GTD4UJ^5VC4bOl7gg$p#tdhHswyLkF7 zWV^4V^{>eDfMabsfzeNcY2;v*(G_75X)vjpw$nd1?wl&8n~=QZQ4X`C>uX5ZDj&HU z9XaneZ?@!EWrJ(B6hBRFmk=dAYur2Un05R42KZVcs-5&I5Za&BE7VQr054@qks~<# z8OCd)A&=qq%sC;yoSu1B4XI1Y^O|8!G`HVX&xP^={HZc@0!?w2;HLCyQ<72{95?G0%bOPRa=~CuqW7pjI3x^ITfqg2p&R6%Uq=3sDbT9p1#}vJ( zkE#h_ID!HVVsRPQf%U|ifJ}!@ZCp|58$oqkl>khgI<9wm=^1`p1O6Q(HcYR#xzEPA zA_3j{uU!Z*FVMhItiyfTFFT|9udkPWM!;!0iV1S?9kd~h2~hnb^kXB_|7m%e4URia zTepk4DU}S}3nT+ajFa+OENjPvJLPM-%GL6N%7p^?`a)|UY`d|jL8dRmEp9&I)gSCV z(=Vc$so-*n&8o?gCi#Es#t@zCFe}nPw{xzoLhrsj1QOqvWE1Pb;ml27%ukS-iZZVN zPgwkJ-u~SY?58`g_CIZI!V=7H3zhYC=4;`QVyn2`zcXOj1pcuoJ@Qm453G(#{r;zM zpF(F?yhcU4CU*mCB=~z`ut}a=jq~-ZFWV+-4Y`eKwerW*53bC2tQ#o{CZSvm>;!k| zD8H59YiZ3`=wNUXf-*+B`>+Eut~@0YIz>p&l7A)`U2#Q(~FKWSm({v4f zV~HLdDN_;HEkDe(B$FjNj*0Gbw2`Z{;wwsb}tjW*WmA~NesZE9NlfI%}) zE~i7r>c<86@@Lj*;R{WXrL4BZkKQG|x(h3;vqWqXF$sBpMpU-VLwC(%zi`-d61b*5 zk&Ypvw|a;^dbKa59Msn&IL^O;)b@SUWDqIuA*{`E+#4C5Fl6y>SiNbJEyz!=krtV2 zvp#g2$xv{*yk^m(mAs~%%Mj}L5Y2k6G-~Eu;;CyWWrwdi)svf;}W?XAkRi4e6Fn#U@S=_K8K^;CX6M4 zWvc@3S&-F%w3Yma#ZMf?u9s<})9qXxsGP;Fwmq$xLE=Rh(R;FWPwO_>+AwadTng;h z+yvk(6bnUQIfpUQO7JG+g^yGZLVv9yHlV4VBlTlNKMw$*3- zU}SUS1+P@Z%FFkd!WC73N#aq1)9J*a15SKGM^|l$ z?jdEN88RD{WKM6-;U-A1k{(r^iDIY_=1MDpnXsYTay5!>YaH$QXaumc+ZTYdY;FA2 z?F0w}JWqMf>06G8zNDDf3*B!Q`#dSGNQKK67^_w6Bb%9ddP0f!@)FOWmXe4*5NEV< zw|Ku9(Z<$wx0Vu=J^`LQ9>|X;RFJ4Q3)Ny`P-_yN(Nco9&NTe~{g;sYUG?4CE5P;G zp-y3ZewGIE0}ox3u0OT_wnQ2`N%<_*b?@yzqTlysNv^iFkHD;+d!@4e7i?H}?Am7~ z)oth!_>^$+!heGVmY__iCzT&~rdNOZ*=(eK=s3F{orp>@IjBAvMsFFyQ%4cL9L}Tq z*Npf?g!t@+pgx=8jk>_c`_2hbNdpOj^x1f;YppJZEE>86K%`+{|5)d}%-O8o|M|Ln z?_bM&qs#mB5@#B7zkPC&aGewLyump(Mq0dzv%iIiinCDXCc~;N&FHN{KGbccFPrrJ zi?4=B@toT1?$9fQ{e@&Bx>Nyc+ zZ`G$=r97(m4@T?JXK0}G*4Um16^eP6&JwU;>gX;e7+;#1;H9 zc;NdlU$9W_gq=CdG*jyIY=2X4aub*@bbSbrrq*mnDb-04N#GR3Vpf;}`hDz*aRPEK z+YRgN`u1*skm?A_G}yZHXb2L4vru&>fSci|EhV_>w!SZy(0ek(FcAj>WdGyx4aPIu zgJMFMyQo|YbC)c-%-H?8QqLm6?mQ%NG86Qfo}n zOeQoja%X{@rBM;nl#JyikXB2X7Eu)4KLbz#6aKjE0!Y!GJ24y{cxvfQ=QW2^WPabi zPut_G7}Wv>dD|uC{gmtYe;M#8?MJ0o`TgtYm#+hPE7e$wwL#U(fhYFlc08l5JSyx& z&1tAY<50~%wmlSYpG)52RT__s!rs@?A-_B-wbD2M5kJ3&mhW7szF9E#o?e`?WRAd| zHch)eehRwI2tga0?l96PdL+FPWR|$~Ic%{fNv_*4C1|b266pktiSt-;m?+2UxT&pY-<^IdNA$N#cxA6$hco`C3aPM%X~n)L7|fd0@n z-b5X9PI6Ox;%yUe1Xa~pcf*bB(6HgNJP+9QU)kt%o6(K<|ENS=_9(i4-q&e7!u0AD zUvSF^f>`g-KprnSyrUIN)0^Cb|DRm9T{JLoj1mCHHw4~*;AcRv^0TqF00;=teH3i+ zs=9zd-(O6wDD&QipZz8EvkJM>zmeLZnvh>~dPl`2$@!lJl3@uB716MGCho?cfT8Fr%jG*p3csQP7G#A#sJ-Vj&_OZ;z! zy*j_&!0%Q8$$>NbXzBICr9i1mc!9U@3VAWDVjBno6t~#^C$j^Yqc7%v@ttjJj>xPa zw{XE=UjX5N@EpdVae8qQs?P+xtyM@^ooX@&Dsmuj;!C&b1;ZHP-rzcS&d=Ki6qV$R z{!7s#_Gj49+V$+W5)$iZt)E3Zpy&cT5Oq=_La!4NVwZ41VqD=-BEqOE68+e;f57RS z>dTqXwM&+ckH0=|IBaSIWArR>86QA+&P;Wh{4yV~vw^}1%N^K7*!?k`<{Ts##| z?4S9m>#BLO|M~UuY`TGi(SZ^si8F=!0|zG22wO2=yKDM}jfgv3q)I5EF^T{SyaOJL z9%v>B1O*y+H~Hlqa8~B1KYMfn@dtpUBC{<@z|Ow{^jJXR<1H?|Yl75S{YeS$d!@sN zn2c4!x9ItgUyO(Q2%S#~52#2~ z@AlhIy2{nqA+JHl%6pSBC9oU? znWNz{8ZJ$48TTpWY#%IvW*sLu_65gH#e7F;AU(c9d9Zw+wr)WBrelMS7NLXx zjTHD>BLS#P1g0Cj$Se_p=JNkhnV)3D|CcbHDr|!U zl^8&0U(V*ZEs3&K%Ksb7hGvsGHi>Jxu{rQyPi(+fZ^19tL0M%EBf-rnL-}_+z1>U} z16VOzQg{Hc*+cpm_4ZuNc^n8YqkZr4?GB;?P{&HJpM^S(Jrk64a=uJh`Pfl_zA*1@ z*CnQ`ANoxH#~LT)G9DDp6yn9Nl+J_}pTjTxK@`;kY$sn3?bv_1vVZ=CU#pA4&n!~g zvL}W->JJRm&0q@S43H=Bv9q}7h#1I)z|9J56FnDm;g3G(x&w@2ZBJkh*kHe|$-g^r zH!`qKCvld3J>m2OQ47}OrwT1R{!7)-a+vWNy$*u^JWr!rkDqUdGQ$#9j!Q+4*M|w( zN*g%u#llFWAy5?i{pRWxZ!lyv0H;HXK0<8c`hl#xHtOfS)Iiuu(JI7pYzC;hUgv_Z zB|09}0V*hwmj&HFNq$;FA32DhHPoU9sFmf+#8nWX1+!2fiR$vBUm?MWm~p zy=>g;yKtPGxtLlg!UDLs}jR@^>*&{hOZ zH$R1oA))y zGNPxdPFoVRE|GjBaA~>g2f|5S0h|8a?GHdrT?x;>>Rt%N+wR3!BnJ~_y;$}%8*Ey$ zpmJ)fW5>PX%5DFPa8MUjqC&*Mo1CdK!h&NB;Z<7Ah)F z@aGU9S4uCSADM{?)OKvJjgpD?rmhF=TLEzh6mqYPbESC$!KfkXE^w@v*3L)mKAdu>%!Tv5BbZFDo)oa}*4%~T zK2>&}AcR+V<(-r66$uFd5?n=1DQ|&YQ*X0g?uMcOMVI1Yue8rn@BigU8>U14=gimX z?qD`r;r;Bav(x(#&bW+=U?NJ(vfkkLO`zFFZ3*0Rip&L!{v)bP`tVs|0G>`2oHw4_O4rsaJyk)&vFU9k`HHpCzA92nK(OMrK_*Q&3q?LgjApyM+M3019RBXEGL-Yr zzXomRa~Tmt22rXWN#)vBdKHVsrHXs1d)dsSvDGx&;?K;eKQ+=4mS78oy-awTT`%$s1AHp>aF~9!k-{4QZK?6h2Cn<{iJc%R|iYBMly&q`2bcDv)YCH=s<%CFmHz&;g%5o~3Ge5IOw{r?prDD*{ifar3O=Pv%KX zFY%-eLk2_F>NYiRLbJp2@5rZD^R>R4=49c9TkW|h3aecAc?p`Vz#eH#J^gI^mlAeb z*;o53ZT1GZG&Q@gQM)za5IOS1==4}%Aa~AZ6iDq%-`jV_ zAP}-2`SENFz#zOIQ*ZUv)4;}>(A?k@=KBcWThDCey1&VPp6i&F4NZ_a;`^!1lU6%+ zw`9Bsov{;Tr&p0o-5=9D5|_KuR zm0&AgJPzM)lE~>AE#aN@CGF2FEeCc!5R*cF^~($S5t;;XS}L{_8Ua7_o$|XQfy6V@ zPjV-*?wmesSR%=+4Ze3AS8IAVl}*RS>z^&J>2H1wSA$v@1I%so#M)T)6wQ?q%~2AJ zS?jiAWz^2UdvuIv$b=#Oi0BI5cgY6Xulp@@A3;wYnCX$vZ4vnY>QLp1UEr7hnhHyx z$*0qM<=gxdO!z48)#-m!Dv;O}+Jl#n?oyA8zW(`rN@P$774(e0roXx~N=TOOEV)SO;- zuH~;I#(m}N2PzK1+$csSiz5m>ge-irt+vF(AFS8t?O8?iB5@U z9}9K!Y?^3ufv=lp&Jv+HO8f{SReX^*GE*;~fU7%U?Kd?I$ho<<9FoxL%YyuxwjVkb za{~0X+mY3p`KEBohl??FMNGHg8Bar`WcK*_3{nRgox!W3KR1GIc+RaqxFQbBo)VzN zx5*aV zykti+Tl4sM&R#XZ`W$QfVk*=X@+aw<{e@8~q8ZQUN?2$S=ex+j?Rn-P_0o)+-0Z6P zW(PRt0*^hPhk;hHL~TM5{&db^=_w&~&&s*&x?y?kYw%vatu}6S+c%{O=#!&OQa*e< zY(um!yk|A}M5^%_{sKwHjvUT80nB%*B!+jTbKI+T=lIRaqDMZ+<`4C42VYx7=K~`M zx&7iIS&%qp5s9N3SzBv>EW2F9kc=VclR7j`%4Lz0f@p<=c4iBSMPo<}n!m?h0Cq-j z&Cfkgpchng=*KFGxrTpE_duJj`CuMld?W{|c-s#Zrm*HIcV`+)UP-3yBapB~Ry}sI zkVz4&sqB2BrlCzmTF*Ig_MZ$1CA*pnE>lS9tfjQxU`UE@DkaMF6&B{kKq)vHVD?$OP!6YCL=bH*N9YB0t(iQFtu;*rQRAtTVi3A07%0_o;!;k}+FN-^v&lA~aS*O4fMUu#jZ#aoKum)b5yFLQZ*cvgN3 zvYV=W&MslEkk$7Q_c%9C;K7K2m{S$5!s2KAS7xaw`e#DxxlSiahsXnd%zlrrDVxGH z$ii?eEY2Gkeb1X{t4qu{M5VAjBuO`wG@LlFp2L2Xx>lU`bOTRVRs3aJZ?^F}OoT>f z08XWR(h_4uRXny5)Qf&nTE+A}O+mE20NSxUfD&+P%! zl;d_FoQM*NY0cRo8@Q5a*36<8t(SY znmTJALOt)=8B+YH94U7c@N{gM&;$HYiCEFHCJ6stGEe27RGl`wzlhlMkwh~F3y%5`Me>k7x z$4?^3)53A^{dC{DYbMdVp4`#d>p?&F;`pwUBH}ny|I=)_Dy`Xo z0U`|b8b20NCD@oiZvPP5U=)-=Kq8{MfVA4KhgGA8)10Qw_`Q7|OtyRR1^p1Yw}exH zVAB(%C6@%v%375a1=;arzRThpin;LW@$?0J_0;XB8BiHvzn9Dph6hqGl;6-DW#@IY zmjBaFZ3!8F(Yv%;9AS5@(E%)^WDX3WLkZacsTb^?ACwo8Hz7ik&0rn4k2QoLaayhD zKNMXGA(678S6^UI3j_5$jX*f&ex;=7}rV9LU9LecMzcGSSq*8~5!`IRq^5=Y0 zVbGKPtZxMU7Jp-)f^1{~;c~jT^O~Ad6`F2pM6JK!L5!4@T-kNW_8o*GPf%Xg1RPKg zoCAwp{u9{4s+ljd!3hjtti}~;i?PT4UZbY-3p932&^G4r*Qc-0 z^y?yxPkiVOq28|LGc3*JjmNZ&Nf#?C8cD06cY^c>@y78zW5ZGT&1a$Jy`G^ zSvNG;-CnZqa}K0KVs?U(l&BpNOQO0Wp&&N#-%f&J5I*-ak_}7vSN1=UK*GK6Mipik zoFfyvOW`0R`G|q-^?^dq!$^VcZnCV>4dBOzsD)7lchXK2j%arZgghhYb7=ECHK%gEURiS^2=r*6c;7#1z~KB~ML^BN{)fYJ)Qxjptu0;AzImi=K8^ zHrB&0WSucVyT3@|`aCZ*c;c9M_J+Ju3kq{sC#rKq$?6C%YKQN_UG$#e;HqrJGn-Q7 znOfYD?wJUT`!5;{oQ4zMVAR6#Dc%3jIrb0F(Nl@rX4Q^ZYkk$RmD_NxX9jTo5Uu z$`7#ZhfG|ttB7m<9-AO?C9jM5U@>&v^z!1Bcwn)P5?ZyGI0ck8HOm+NR=k1|#we4+ zoGyaPGt%?7g>cUXtDsYteg<_ZPsCi;eERT91d!tWeYKVicnC^qKL6Fnch_pk>7+*_ z-`K4fAbIN-=uuIl@r+oZKAUPu`47|^BZ1eYM`lk&28(ITlNUQeHHDEz&yD1hFi>EF z__bB&&*<|sdZjm5ms7}oAFAELX?Do);l4XkC)Nb=4;)vz~>KL{y0ywwXlq+$47Wd?`bQYE3AQigu?@f3@uMb!10RsxVvGMN{vqKh!{VC?7L zNG8INsKk6SL8uB~4nW>Dp-(&c)l~OtXLs`6Jw851_1z=K!ActcRE3>$v5vpo76?N^ zsFOhjd(yrpvN*f!4dg2@25OO^lpiDh;d=fkjGx24#JkktCcZU!k%I@9Fi1~G-<&t- zwq_rTfDzC%zC52_h6qn*#KR|7B3QvuwovBEA*%onmy7Ga#m)5rb=Gqzq^SJ6(S_TD ze5t)}CLPw0Jf!{@aob(Y=s#93R^02s&jM|ZPF+&?n{(FRkHC-j;1@~1ugRyR{2X?u zdIYQwaagD6WEUT?=0-;hI7U)hwA2Zfbwyeclr(9CSHjOM_41n1HT~n{LdR5TBIf~ zKDgj{G-zBPK4Caf3?B74bZ-&H96e6`Fy$u>v&H#kI&<}DxSt8f!r~2kA6}W4@sF60 z2=sce5H;4Jct64?joGm$Qno8G4>=#yjpso0%(8s`RpG#YViAm^a;M_`;jF#(W6+1z5@7pcNMSn}ArpSm~2uPDk^*Hmx`C$AFLe<3f zI~A`%AXInI9~5Qi9=G$Qe=U5+SxvnFgg4vb$r*X1{XQlVG>146Yv?!K8gkU^Qs^qe z7{!sjvBHQq=V2^zC}&V$1WNUV#D>!$pG|g6e*{m_#j$dv>~<4hjN>3p&B)bWPqH}} z5=QnznI3T{1?B1j-|q1~VF^_M7j!Y<^SsgDN3crpoXS2oYPamdY-zSB30;q|q}H0p zAIyKivSbh8j5g|Zwru3Mo9HOa48x(Y)@_K;d6Aaf3l`F% zGt7wCMg>$R0;&4k7v;5>OEELs*?r*aGrK|Rnlhh2r&pKVWsE-hGa=;Y_&zJf$N^CZ z`RbIwtIFKYY{?~lW56LbFa+TE02NqvQZI$*^3gjxd}mT^l2K8b2XHaIFbfQElN!iMNQofYXJTXwK$lv@C-E0qQ5hYB zSnBSggD^2=zp_7wWFzQlE+EIO!{EhyyP4It#MnxLJ2-r}f)N6~o9o~YVuiMh>EsK( zL$fa(eRx6I7CcXFy~fBr?ej)#6hPPXx}$6^#&}m5)7_&O+0Kgj4KwBYo@}<>t(hQ3 zR=g#myJ$TVlf9Y09Ga9K-7k@1SdOcNW+w-*s76Qx;esC~wblXVk(qaMCQD?a8`&5W z@>l|EA?EbuDD;)NX*AO%+fS??7}6Mjf>0XhndND9`mdr&I}UVSD6=3U9Rl2Y`{^sWE-^2P{p>Zx|~i z=G`z1sEjTPUbG&#GKq-z;a4-`D@$*8_sImuon7^GhT}!hEgAR49FIa@K!(YP`S8n9 z$8FV|v8Y7MWraw^&4Kl#tT}Xv9_bzBc8DS0H*^kQf?lFqVRujS+S2ohgqMZ5mqgCC zpqIE;@GzQa1&qG!ZVXGD2~x_!cTG#dz;mGMhD#+en^18TdasUm??~}AHI2>s5YD?x z8TAg#?%o;czRRYDLlG@zLheeK&&AyIG?A}F>8AOR*%yJTyJQu(QMqWD5|D>3TBVOt zEN@)iH+0rrsyC6I9C5bo-CdRKE>Eq~m%BToLa;HEyZfu(o+@`Yh*|Tdz#R4+sh0}V zfb9sZkx{)+Pk1=la+2hjdim2Znj0f&Yfs4AH93Bb%kK{Db7^7F8hsBx)RU6gIwr=| z=us>E@GRmxq4QjDeg;*S)|dTrkB@y9?hp4l^1MNJ-}$7nWj9#6oOG z;qe2i_VQUPG5kl&jfrwSRu3IUVvaQNw|=mIBOOPBUHLcle1|u-p#~ zvyGnm_7Y_vPSkr$|10t|jRsrF6Lxegh@aC__`JtL)}UW0AR`iV*9whSkO96)|Ws034`?qdgEDKAXz_-ns%X>S+ zy|a1^xzP-w`gv>!UE$(LbTo?O?b?_k{&s(plU+eHgtA1iRhOH!es_P=Iga8|C7gT) zfkluLO&w!xsU?()_2}<-ns%H?mQm8}eEN;X3^z-ds{dLC|2+2);{ zmrBMRLHyLLf8f?;gqWa5x1z^9lHaQS%E4qSTiIpCvlge95`t{Wtzt=j_jx3U@*SxD zk!KshgVVC^NRwN^9@DmJ7%M?{iE1el-RLLXHgdW?@y1YJ5F9m9M&bSLf01}8KZ9$n z0qLPd>va`~qKz=7Ww+E1d)+-GRhVaRfHZaHn~(RGP;IU6+NxrZgi!jG)LQN@VFXnQ z9*Rl|$bJX?n{U{f+oiJ%=9{Hnb5s3mfSKqtSI3U~j>vjCA}MW!nVApgUyM}--p*I&0pDzcHjQP(0^Em?P>Gwc_mgaWosfaNXbe+g?YzB=EQ!}?Gn?g1ngtzdWxA(1aF)!Q2 z^Aw1tQ8YQLe}6e6ppw+;cD*$gv)`SuO}my+^{x`eDYBgOHb5-=o5kVJz7(>lpt1hS z$g3x3w9HbahpmI~uO@=-vsVk~``zkCvYrVs^Fbx^3D@(jKAT3wJ(3r-H&~5)3;-8DzTbK{j;8%Gia*!E1@}nK}@JubUr>sFyw^ zLgP)LPq8GKr^SDhBd3K31DA0;sX6PkCmpmih}P~{mS1Ys$5bT}Vrt`Ha?O>ZstaM1 zOqQ{>aOivz9eIZ1pQCZ%F7Yy6$^rjqA{4W3+^$1f8m&DvW4OtR^`i5g8Pv zS4pNZ1V^834b<9U3C5$(HUN!>Ou{?-7P~^q9@8i=)9h^ENX&urRd(pYAVk`2letKN z13BPxI8$J@8_pvpi8Z0{;nqH#N$`*9+5qP}L=y7ER|Zf#Ep?3Nl66QG&x66en}FrED91Y zr{mIDg9p9wSv9SunX5A?~|VY*Z3J(-QBav?}@V|mZ51|6d8498v3QR zfuDRKs4%fM@H_E4H?h`QqjndJ*`Sfco0p#{hVJN^gVv!0# zpg7TrFoZkeRE08NuS@rSx0;;Kxl7|M#gAxIK-3m~X)u9ko6?Lx9!UqGRvi}_=PSk{&<)ut zUVg;mSnjpLABc4^(?Oy0g#wf><8n66a?!IPueB9_tRs=%>b`!39N=0K(l4M8wXC?rdrnRviBQ|l9 z8Bmlw7ei}Zqp+Z_W2q!BmM~JV6p!Q2UAU1fw-ZS2iu|rc$MP>kfGuB+>;ZeD&p*j- zw&ac!UQQcaK_prVBhP@7E%`q+VPx>yw6zm# zek4y3c(~cjagA~wBA}9{w(t>$s|`kxA*t&9BdJtfTR$UKW}mf32?Z^J>6%Wafbi6F zjU%&CmciUFvc;Q)ze>ta=69hvBJYs06E~4rc|M9 zI7$1xwRSqvFyVb%U&~|R^r>(PXYG{B>< zL$K*YHmv1j=VaC2Ed`w>);Ug)-(wjRXNKDn-+2WfqHi@jUs4Ii#!97R^g&=eazFnH zz@`H<5kXr+VjPQITR+5Q0|eSF zj`lk>A3zfCRD>F3Y9f2e?XZgIM4zz~im4mA`0nFK_~gorj)*n}+%cm+r(w0=pC(MR zz#XQTZMjQ!(#OXveT1JqYG^foD)3R+>WWp|e3W`q;jNoMFFG)~ z-Obz?@Ji|7kW$Gxc4sv*HrY;_zp8HBd6Ccq+tJssF3@)XtDHI}uO}*(4JJJ8a|bvO zqwdN`%wGWMG*#9i(jMf3(FN6KTlc7Jmqp4KOU}{+RQILw0p9qFz~$Y4FlIcQA%T>)Ym>!G#)hnees_l`ujYY8wTnb~1i!=$HfG}yxQ8~1|( z_rMA*ic*^GM?5!y2`f2q1758J!4?WRRRe_PszZ&3&{p_lH8pDbo8bX7!YWoH-da0y zj_6FcQV1yb$W=S;FDUU_dFd1uLnk5(L^F=?cj&eqP`(s}7pA8URS+>*0tVrJph6X! z#=20!G%xv=FhW6s?;&%wxyrD7B+JCX<_;~H*7M8UIZ1o^>IjbIWnU}2fJU5$PiEMe zDObx}=paPO9Tlah@NXoSAHs*9n9p}EAJ~Za6sV3Z{W7~!^Bkb

%E*vW@uru|F=AXA zWD^!%rQ}d0jS78=^K-%g$0HM8pKqbWJ=$dXtTG-@GWXVemk4@W%ah?v7 zFZU{2f=HUK|JIn^Wu-&fwBHHnZt^=jJ!=fgH&KXc5vvE!K`A2XY$y!evZnt& z!7+k<<;f&}Wbgb&lu5V5)pGZeMW$I$8wp%sRs3FgsO1hkn0jsr&RgUjQa9g8 z$wOOY?h+DrlPJD}QyE_{?m@MRFo=R2`8N0Ywmz1B6ML66W~*^Sg5t(9W@uK`88XwS zH22}_4N25212r#O%LCf!@!dku6I>Lj$K!DM3-oEKEEJLJ72f&vN~x=EcE*{Z$yZrd zJJ+iYWP7Eph*iHc=!}Hmg-qZNHYRkq+#78N#zPNCOTjyMsDHWQgdT5Lh<+;;$YB{d zc78+1q%(E%;CDmKEa)^IV&Pco=08&FjQNWGgp8IY_JcoSLoBZxOUaTfO}}uf;;HJd z`T=2tY#FdqoQh9Rcv!cgtjA2t7%hz+xZ(3!6&y`1Xq>y|XX|3Zu<-eLzQm{tH#B<4 zr;=(I(Lfka20J6Qe?cwqmTI(yIRUWY)SdZd(EJgb-A4ZpW#0i$b^HF`d^CxMlu=0{ z5lTizsbp{2$_yd1?23|P&tsj0?CiZNn`2}P$=+md{`co|4(E6}p6~DfdU^TwEzi|; zU*r9LU)OyHy^vr9&$SjlF1_OA;1Qzz7g9B=HF+KRbIwgN=~4ygXQlOAGB%snU_atD z_dS1+nLI#HVL8fVs!E0JSn&ITkjj%;0o{e4`S-`2{u=zN>?H4pz2nikeyZ84;JYRt zWdvgR@qN$qH9+4__|Dz7FWQQ!wouiB2Ip%j>syZ>)^e8;5(!f4HMq`w2|H>ZD8?3ll2mMc-TY`C3x`GyZkG z&$&SA+x?oct54ka`8I^DntuAUlw5Ff^$Fo>RN$<~TsTJ(mx-7AOD_kFPd(?F*FyFZ zB|Z{WUx3~W7@CW|Mw09^dqk1$HOsMn`<1%C(Ad=y-pjix$EClz5B^D%RTO*%CSnQy z6seH+VEFd;i6ps3${SjA!q-ps;-71ZP3iHM_ES#ObIbV2&5;`WPlT}qfXRMeNuY!b zv|RRmL{YKuXEmUva`}oKAAz2fwhEgapFmvii-#(&y-&N2+;1t{N1J>-b~HBGUhF}5 z&S!@uohkCSH-;`>l`o;_Dz>UymZUIjFjcqxFxm6!AwqFNz??mLlqTCbazE`9-yxru zuFx+$eueb}4I&_LRX)iAwEqA^3 zGYR1Kve0Z?_;rtf*ja`F5=V>0;DB#liW3f|FHBJZ!fL^GPYKv$nm(-e)DNHe#dvSH zf#$&YSM^Fk-U>kOe^i@$-qP$E^r%-n$-`*ZtOb^}s#c+kbCPEk1sb@{ur4l=OWlq7 zP!mn{>%2f3U4G(`u8Opgr&YJWAIOU+JWlN)c>W*@rTBW!oRV$01c8K9jqtI~S0yq` zyX`9v1n23go+681p6cwO^1Q>^`!*6mjug_!u(XMHpH4l!X7FPyWD9G$dGjv z&E#^9cB&tJ#Myz=0zYYx_v_yLHxKmLdGPUFBe6C|Wq=nAx`9_S zD{kzkJhf0^x_W@Jn;0_vc#Rg%i#sqxv=r8|%DxJ$4aIet#6Wkvn8Rx;)uiBr;7j z!Y8v4JzeHbq$)Zqw|nH=o9E^|!WTR?EH~UxT1(F@HYh4;rzdA82llYO&yY-WwUU|* zDAFU0<5->Bo9U7?G}sZXpR%6GQPAZzGM%^aq+pWQ<{6nwOO~?q-mY4vhs2i)Cd&#L zHbQN>Y7hiWtwm=*p!UIx3OzAjjra_64)hx2#0k6cnRF@(Z_4mNEXan96Xm zw;Y>4y{44joH!nxZxzFS+{AI=dT_$+5~N2hRiWw%e;&f&;J3{D2m7k*7{%IdI@`Qj zY6^3bdw!`nK3oGB3#ILAEoq00F}ZhA28nx7l8w;)a zZibknWG(mGo_}7M-4kr<+INnAh;5{RZ>5Y=znUun#mD(iJ@cRbV$RP~Y_6HQs|^mB z?E~+IXgZ*Q{ch~c5nE7@e6bM}2emqH+0}ERZ-AM*<9_d{#dk|?IUbYD|(yOGRG5w94Luccp4ny{g#&r!ZCEndPW^&!Nctp(~OBoufZ9khQ%lXqs;Sk z#+8E=}Y9@z4XP( zbH(A68OX%%nY;kqJW*h6WA^trn~&-1)q|M}IW=MzH_pLH7!#Q3I+Aqm_OKX2?^r$4 zGs%mu$9HiS99aBu)I_cSW1OnY#v_o<;nRyOOl6ygOv*V*+QR;{%8kA<+r{M0D#5UA zq1H_myAK=HyY}DW(~a{7d&uyG9F+3m4E{CR5YsnHLkG@LsScF5OjF^lk7=|u)s_YU(yJ01LA&LS5)Z!%P&_t9v`)LGD-F!8Jk;dB!TWXi$wP*jp8YFC_(JxI`rs0U zY-9eHxZ{%`V*0;RO=GDh?OFNu-;`O_h@vcBxlD196o1m9aNY;_kwykZDD(=YpL zAoylSY(hy{K@)(eAu01Z-`;ok=#sqGIhw;cweBz*>bhxbcS2@)8`X8W-5govg22|b zT^C&1*LD#&KH(n9d$EBj4J}nSocLe!jh{nd-Ut+zUMNM3ps{jc_5ik4-Ay8fMlk4 zL?k>tB=q7Hv+7*L*@AY-mIt5*cCjn%+sUoQwZLfufs+P_qXWe&MD^BeH8r|+c_5i{ ziZ@C%RafsE_?UJxgu|Ze9IF6ZV|fAJGOdd78=DPICQSHiXVh_8>NEAT){MQ!C(Jv8 zUu@ilfP|HAB zp3D4L$eDmnnvnXVwq_XPUZ+)eD!I%aftbCzO;_I#l4sWLb~%uAh8!ykXTNZn350@b}3rbI*F#2y{bSjV)^az}7BvLe@&UC3k6* zqa>3kMtF4@Lx-pLOI*A^P;zgs8Vw!W>LY{By~tuLT7Ar%dn0gGzd!>7y3_;~)Ab|>m0EDltnooaIHt?{BAv2Bw^d3L8zK`_7dWY?XZI-z%F)=zkSWG^)>!hG_v)Qwbp||7+jy8JX}B#{pHfwv4+A)IP3Ip0Ynr76H3&pSnFx>ebnV`!4_~{diy6|Fz0#rfFm?Yk>%uCT z(O+IDylC+;XE~>e$)qk@b1r~3M9!Wx;jVa_bA@}@uHpx5vSPnNzIy{>;Co85=-|5d z48>VSM@10o%2z{C)WB48x6O}wBec8y)u}3Bdrt?q>z4y*D3UJI+LP|4_TEoj%zwVL*p*q!-91ETC)ZWib;Jj;FzC02hRJc&ujexf$cMi zX_t#?*9ISvK9+BDZgbDy_4~moxtd=p#dsYA2J?Nz4Ot5$d-jnHkc?gUL!wE0idS*(A8#`` zCoUZ#5Ite-vC&`z!Uol+acSe$R|^_D>dZ3Q2SPg37YD_9LA88(T1B&=+6%nXn*!d| zT{%p%_Q1r#^q|ELstSp|_P=5HgdoRa@~E^$2Nqi&7*1 z;%<;V*7e+mOXA*szO{RV%cfx@=LPN5zpOLvS@$rfT_z^q6&{~DVsaL9Sbq-dYoPRi zgGhqbFTqvP4Z7kC586xh_H(Ny+Ke z3t0ra*?i0u*Hrd(To@Gt8-rbJx*MeIRr- zPpeLDQ1*e)9eOjNwoheM!q6v$5(!-UCjfSh?{Y;Rswtnq5}$8_-ZcG5!H;5sT_u98 zJ)+ctol~wpT($NvB8ZI^k1Z^}?Q~E^IPz1&$mE6J6kb|>K~&#%fAnHV?dY)f5YVUq zxtQ0gp~N|CcYt}I|8WN2RO0uhMAPU_dv8xPJsw4 zRJHr>U8;hm+J+O{<>Ba7eg$O>kl(D)BBB=NIpuA z#^>O(2en43*o?*NNDH<*rW3bA?Tjx~Zkl6E60{>eQ4IWhV1k%AU?ItWkizqvntEuc zsJQq7W#11_c@-aQLs(g{rR>-=dfkXtenf}b3=_Q^gX{@x^e%r_A*H0T4Cz$w2<=JlQ{eNV5t%scm$B!{cBvr*f1f=nmeqkGHzR5ZxWd=COqbgmPNm2$)02 zyqkD9=Xe|wvyN=aP-Xuwhg)aR!~qZ=TQ1J#Sz&vI&(&vW2GqSiG@4}N&qlvZN`$)GaR%2^;dluP2K5Vgeqt)Bhw(~`DcEIhEx zBlGd}_1VSQ=foZY6_2mV*f?8S2@&d_-yywY8}hN1s>3JV&<`@f`Hh;EN#=#qp=kb~ zpY+7_plCk-2=3h{(Kugjx6eN+#mnen2fdd#x|)SmLI^g2{^fY(lzZfh>5{TnORN1I z4uE(?WHQk9Vqd!T0ei$Te9ZDDX@}9>rpf!ds)g4tuenDKX~Xgt_BHw*J(GAQEz0B~ zvfgvd_p{A%Nlc!O5@WRZ62OCpQPYPHE&Ih&g70@5L9;(MdR?R9-jxdX-_yae^$HX_ zP~~EEY?1YQ;prI03e~wvG-8qZB&}L}JT&yc?)Gioz(Xe-XpC|r9+9ToGjJejmWY)@ zqiBbR+d2Wr|K(!FmB(|j_Y6yDsba-BVR$ybN+qPc4CAx0Iep>Bj|au}=Uh~I8>4AY z8dgsOL3Ebvh?GuKE`cTH$lG#kLdjQu9(71sQA;Rsz8}pVhey=xxFq(QT?FQ`CHKGo z=9Q_EQs^SF-y4SL%10@op-myF1ZYGxuR-CI%;>X|`e~nhqx5L3&6$yCK#({)0|5Vv z7?fd|SU&#%h(8<;A>z4yxc}Bpss$NdJ%hmDRaG!I#N!w#q)zeWj+y;2k&YopOka;IyKP8t)7~fVumsLw0cEL~ft-xL3YaAe!D7 zqhq!b{L@tSqj0bpk)Xi$nFIyu(=aY1!i0s9R8G_Af99vtC{l9 zX=a$z`cwP~T7q=;LKvSx!Ng@AG84?XD;e{R@q1Fr@i?k)<}zx23g-GI82=K@k<~c) zc#{+vH+9fYY`^Hdo*5755Fdl=k79#B3h@bmf>vCV{dk(evOV%2n2+M^_O%QS(^)2z zB(yAP{v}PLulSeN$B*q3j>@@YJ;#N#OQx+9dSN0_w3T18qw#$H^3#IChb?~G;=Vze z0O}c;s%R$Hxy8WS>!r}M<{7O#r|-?SxbY=40l!`j1!`kAMFrF4p??%!sVDUr_@5fP zaKg|(q;>Vcm)eHZq2b{zMBOe;lN7nu4G2PGgU6cIKsG`zUsB#JwD{X^ejDUt z52qI}_%Llx$)k#PM#!LpBHCb-PE$hz7E}KvuOf{*Kt67W&yT#>%!l?6$cJ)BB{;CA z;wwhuCS7v?(S%lis#pTV*EN%de}Q(@e?R#Q*D4(w95dm z>O5Cpza~sSdHJ7*+&oUa)TY)CJDscj1K{>hdbnwB8~@%F4m#5fBY&Ou^vg)UD*Lj#`;`jhXMF9|dnY$mtG2QGj>j2G#SRYu*pY<=UwCK@=+ z0yOwYy|jOSwHu&cLo1u*+;_i^w>jH!NWGMew@fhPuBXL=EheFiS9H9^rzCiq_}k*d zmuFoX6e=>5CBh+lFuKe>`~vvH{#MhK)_bQj-Z`HAwmV+EA~Vh~VbkDt`A4u^mDm;h zXjtZyR-(o5CiwYpp^K3P8vGK$9Mj4`Qh`hb{HCgJJ{qvuY&dh#h)~DH_+U|52*!EvEE@O4fUra3&)h*4x#>lIUi-xvcEB`cQV?Utlp%HEotHJiNs_gDnY9r-TC5xs6 z?_~_6Zl96JQ_s8(osJy#VG>mhX~bxRM!_|-Mqmyh>u@;1un%%k2JVs&nU}JFxzsC0nhM$kn$~+W zvp$ZwBQ1ja<$b+sMxG6h;T7jbrO>P-wp4G%q_#W_w@U|SOcxQ%C7*L0tdFJb^UoVs ze68ZhHjr|BjWcFfoK$^7>JDp|?;|;OrT|+Du6I`X7p$s_`!orPf)Gt&$mHlq#2ytP zFL6a+h>u;WIb=xS8Tgl}%?bvFOp6$Clunh08^^s*`tL^pgCQW@ss*$C@Gc=6#E}Z7 z6V$bkvX|w?p^fzbyh)LZ=ud|g}GT!OWt=-RsX2D6w@Pb2T{WLP*x|pf25Cm&a-&-HU-J3 zp~D(vqsz8bzxuFXRvV1J=2E87-pl#nLZjEINIns9#)$Y&chDxZ^PlXtkW-KMu1un@ zwaq;<5~2F_5~QpO(0OeN6>k$Ed?Ig#EhK|8mHjia^i(Ikf{Fjn%YQlCKJ z^6`zHZ$-cq@X+u!Ri8TAJ(rbpU7WFLVo~>Ex7=IdKRMT6%Gl8)PwV?w)=)sMh^PF} zzYXeKPA0q6(I=c*;XiO{_BP`wzspS7rxtD(n9HOp%s%sX3Z6?fo-k-x3wytu_#?Yj z5q2+|B1)%~K;avFT5cUe5WCYNmgB#V&_oju-CU}FIvr_wc=;SDXxA^^ftguE(+Rl2 zGvV@i+)FRCHhb&TggSKGrPj>DTiNhS-4CoW2TcF`MpkLJ%e8X|m}~13p4sy6>V$*M zXfz9FrIX{3gBZQ^hg%C7N+1mvnW3(0wbnwF(^sk8^w$s1uA&_S;$2yvaQ^8o?4@xf1q_YW}ty`m|MTd$8$v zwUu1%AqQm!21!*D>kfjYW=Sox>sPI=WjX~LQsK{&QUh#snV0IP4?@|cmMk%ss-lInQO_B2Du#O~f<=Yi z6q#0mZH-uzZSJY9*0`Z_1=||dnSw?48D5sGpMWbby2t(leAW+cpYIV3@KZ(j*jIJ5 z8%|5y%L?&54IP!~^&;j{@(z_7Mf%UF+tY|=EciNo?P@6q=p7s(( z8~gDiZK&IB$l(d^S0QmAPpq9V)L|B{|=oe zRCZ0Ozf5G*QNQ*6vn!&DJ}X{MIA#KS271B-TXQv(%jeROt|sJ29Ap2hCoom#<-k*3 z@|~og#=n=RJkyOnp+WbD>3ki5Zt=C1c7nGCxV$UqWUaiw_esSpYDrj)09Fvt?bY@z_!2X06^mR-+WpKYb53yw8ox7 z1qTu#1f4b5*(9VSM{pY~zZu(LIB0x8Ye4N5gm#dNXCQMrpOk6S zpTNn8H0Qi3WevC|M`nOWS07Zdcy0Ex78s82xyQe?^*D*fJKO`Svu-m7xPrqK+p!D$ zRGO1Iy`W>qF>LV@W3GX9%pv}7t|e)7Z~{CA@I(sAEYJ|65q@Xj!edE99=ng1r1Q!!bioYaWe-EP_RL$R34&BB|KdB$8iwJ0CgV_ zJ;a_P)^$^#;@Q*hbv=@(H9?qni=-&doM=OIK_|l#ACkbMbFuAat*md--cH zeQ|fIFOplZk_V^kj%e|!l-6j2tb)L4ZOH(|j4hfq8_gp6ZWe>GtskF(u)V8|0uAn6 zhWJBQx$a^&cApg8X&E1hOp=rCT2>ffgV#KFUT5uTuyuR;VA%U-N&{C+f>QxO<~Lt$ z6wH4qN(f|+bq)EZtRNO*lgD~Uv?){+afHAYTPRsYe}bv@DjdIg>bS>Ln)~sv#Su!w z=}6GKRg{~J%Z-sK0FOKRG5$g3*7eO8GYny!l0x;LLQ3k!lGNHhP_cfD3T8k9u~WWa~?CILxpAxk|hqy%{(AvMyU09$)#B{x{miAAby zQlP_$^J(mx`a|d8M(aljGol*}Lgm4+Fe0f8`#DpHGv=n7YbBkT9eT9`trL`@y{+&t z_nH_5SCHOxB=`v2>sYDg)aEpxb9senIr(e?NGbT(Bn%E`EF?oBY912sM*W~K zxX{B-q-ml#w$E?`sH4}6-PqIE3V-mS7vXJ{%znI|GiLdt_cA2kfjox0!mGx%UX&^} z8e&^?=yZ8fa-2An(8CWd640=%pvm^kaD*zXK0(=nK?N3gfG#57;lgNH;@(=zkn&Tg zmfy+-x;K~}HqH2}YsrKpS{`d?R`dzqs29wKxmE@YPixJR5SL*pZjfgf(!||$uu4&^ z)#FGxGk2R2%{{ni3{MtMK!1S`S2HOlc<>6tClYpKoxMy!?*s=NbE`Er6GTN`=CiH=s6!fEz*S3& zU=unG5XYin&TPWlupKLSgto!R-@~>X++R%(Xy;(r4uTJA1U>MK^4Bc4u`gs~0)_H_ zXos5W&2ELQ!L#<kwnV@nb6aJ zz;wJr#X04|{BLSx-42>-<4lN40>+xL6@E4L+Un0U>{0*i+{&hN*1#u6e)l)IFqTlR zSYX90?kw9z^l=MH;HulI61eIdi*1j6KFzt1u>i~nexgJV+VtG>iu`z|#XcT#Xs^(O z=~igY26C>@Tn2_YUT9FPABP&EzRH@5KDjh;NFij!!g>qPGlQ>Ug|-P5A;hj*C8wim zf(4S=wn2zoJ0R75VYok^!nd{O;cSrZMEV5wq_`?}p38h2%585}ZXIJP$6>Dth`K7_ zq(T8qf{KoEYmD7ibo;b%^8ihXxFv^Y#)kL-f7CkG6TpleXrp^$sUGewx4W_}f(huu zLhGHMRFEca0t8WoZHQPv5ZqfrN54i6OArf&-fvyyce$)#xT|F2^tN&00o_J(c4q!I zWBJWkW4NlRva~RuArHqnc*Mqm;B{zw5(DUg8y>O2eu5hoO%0w++<1rL z@}!Ta?|LE_6M_D}4>13*u#bO-gV+dqi1nO@M+sTCv{G3aYs)Ig*r;aVwybWW{cIxh zR++<*C+|QcofN#uHSp-K0|dzdM|i1|?w<)Q60&~6+xbHYWJcCek(>-X@Ie}$Xn7kqt-P7L67CVMFhm+{9zJ~=9wutcv zrmgO(LTq*yH20g%Tb3*Eo*gx|nJ~U@W!Vx=qO|(njnbevRNk3QUXWKJu)QX=tb)#5@rN?%Nbjys=q~qI3))z z6U@lCf`D6_MFNxl=oXNiN5Vj2KIT2|e@lkg(7fP+<}=V@t(l{V2k`Gq;FS}O#edTm zS~1OMtO!Hb6Iulq$~Z=&23z&VaSUQ79P+RT?`sxpz`f1m{;MnQ@SwYbry&rOF*0-o zJ>tlA{`bmh)7rm+hq<3Xmg%6!Y9uCpEC1aS2A9-+UVzl5XY>GP3>a!Kg3hBB-q+>S zrjSD(&0$m<8e7ZGz8OG>C&DLY7Qt#AaWMlPT&w1~ z<~hV_@e9NWez6(t>B#CnVWqzdZ`u-C*ERA$g-1UPyn?X3J~dEV4l5=Gp1#>yCwi?& zIEki9D4xFyG0wK0Ko`pCad@QmUEQ>0^!d7Y?G|`$1E-Y`P7Ai63V$|lCWGzr5E>%N z2jT6yFyvZ&ZQ<2w^r|!cdMb8Bv|Te@A_`Im%k_7Ejb7*qVOHeaHd3eW?AS2NHpk$C z%h-ZpOu+@B()@5h-5b%gb3kcVeCoJx@IF}N7Eck=Q z>N8vfDJH;%P<;$Vs9uFd30OB2T0lA&ZB9kc^0O>FPg|ld6Jz_SYeTQ9()zw^3}Zcv;xcjaO?&o zmVUtUMxQ&bzg(}8AR9fIZxbXdyRTb>W2)no*hmx9r=+71cH`idF7OmwxbJ^V-{Jwc zhnJia;KFSduQdq{y@6L3VivDZ4(bH+6`>rchcqTq$O1`%NvI-6{h5b9nyYeQV+lI4 zIyhZ`yA}3Yfr$p{c{pm&Zt34q^ZnN>eJLbLX9oa=R!g8g!C5o-Xy^1Gxcn=hR?yNF z%+j3beM^&>_KhudzAbDAQP7i9+Rg@8$GxXySrfitc^`>>BMQ%*C+i z;4s~)%+`A(j}i=|HB7%1MuW>Sgp zdPJUfPG7(m+<(D9Dg8lia4MS{(2NfHqC|0rs8Rbk+fU&h6c%z|ssFEx2I+RfZD4?D zgY^I2wL&2I(c3B=8sADdW7N1}s~Ip|kZx%+0d6$xT{AGEuz9C7CguuahyE0V$?9h- zt?vnFsr01my9zW5#!~#}5WREQW??>X%{LGPO3=I5f*}JC&5^jDJ8jZw(2JnI3k1U4 z2Uaj0WI)Di>Topeq;5Gl$`mGXJ!IR;*}arwTuH ziI^td_>Y}Z8{YZ=m#sq_;6Z|j|4%!p5jvoYC4YFeXRxDlnCpklJU~mx<;=o*2Gi?kZ&jOc0&LBB%1}>O>ZWU2Q#>K1wOI02!iF}X1&$JG;c8B zeaRAgEoWfb#fUv?b=#q>TlD^42K7nAhaV;LqHlp>7pbt9N)AhP1a$pf1``If+l=iH zIP^U=u5-|xoH-Uk&?T3VEgm?{f3nFwb2D^God2<7U6S9Ga12JbZJb~Q4Glk``@#@l zEFBnY4TSTc^gpht0m*kl=HPW4zQBD3W8lHEO9C{dN5rh<{+kwX4-366*+P*a=*~f= zrqt2~l3OG<;X90<;^IIZoxyt}-{BNI0Ls_!l3LDoyu`LcT7_qG)_XlBBiLB_f3`#8 zW9h3tatC0(0xMQ5UvYyO+T&;KeGW*1Y}xu>-H?s283v5?FHC}#HnnYF)lEDJH7eL4 zgS7~RCh@qcssdz(qNLXo#(Btft=m24`mjW|^E1 zA=LmXp)CA&O2HO>^O?oYuAy(@j6ep!X<p9tlq%g7}WaUdjI?|q$}&$76hfOG52uj*v*#f;eUX{23=#~$;0NA1Nw$qZ1aX1 z-48*O|9K5p58{^zu{}I)Wuglhz?=t!=VrP=D-m>%OiFHoF3mC*;+t`ZYug@ke(#g9 z`#T2@eL?-y)QAi4nFvXy74*_#-p;DIclOBE^oAX_g2OP7zL{HWr9d|#7va04pCg{l zN$&%mJ)QeM^23&~Z9>VahKGn_R7V3mqvNi5z%&V5b5Z*N?Ue%W;NAa@Js)Xp>i`H0 zApLI<_i2z}!r_|A&!14YO7U`Iw$n`(W9?WB-ZtT*Uoveuw;ktj9x^#^Ucwpt_YjSP zBd{FF0U-wx0<`O!@=bcEgf5fgW=@`W(2!5Bw&gmAw_E>bODIr5ufVc1uOh(&Vt`02 zH?CP8=2%dq!Pl|qyXgS{Bs;al^k&g{!4tG;w-}7+?RJ_s@V~MMf}S1V$pf^L+q!j7 zs)xr0(_~qUwct?v7u_Ezp}qcd04IAPhVYE;G?xOKSx6azmN*8_sA<)y*k)7G_gZtWW`5J57z zanmj_Y=>TrP^>F zZm)D?dgC9z;M<2;fJ$4z``0448S~b<3THt7Ij9=vi0|I!j^Lp7*walg!BckcpiPy^ zPtX!$n74hj06>dk^C@t4nYbWO4BuixD2%TsHZP}@=AGzA3hxi9#}z}9>%7JPrU^V9 zd$FZ-}P26zH}*$w-aS_{28 z$fAJWS)*^eOA?1}HgxD${~ve)PglUNz|$rn4ntp1LuZECBA0xN#J0gP`hptISz$0X zwJs;S`5huLALk16I=+c#K@t3u2YhdA*(^^xlWbG-lLdjvIketA4#@3wN@ zh+OVxw3BZi!H-7f;APZ!Jp<8=8^N{TKWIspC5^H!OqxUoS?vuy^;>thU3Krt6n0JH z@@emI);ul?-Ji~7X^T`2JQdZIrt*HgW%*t=2}e&0iN;a(JH0)4mIs;L9nv56>+Os} zT5`n5X-C@u!l#5cWR1Qy?74OI>qejHD+WRZ@|4xSp#w%|H&zW=5r1?y!XJu7BwMAX zkbjPpqcW50VvkQ#Bf3&Sq#macJ%><=;ov=?w)Q;h43o3-IsO!JPN{;jCFNI9`(G%& z+^87b1MIPDE>-*>`}H_eJlDOf@d|CdTE2oMp}(SS-6PxHB)7-SX(P@ro}?v_%_4%j zA#*FRIl&8i)5JO5`mWXt9s=$)>{%7(AuaFmC^=sx?pE{1?Oda7rjkeru&14`pg^b< z(?np~e3S5sL3@$Vw8MkZ({F7D*!10G70Yf7PzxL^+vnB&Q^3t9^BR&A1P?@T!R8Av z=ECoXBoFECKX=yU=NfMi?4ZG>gNBfU=UdZ8vaO!fH5&h_Vdao}M#1{Sot%c;TlgO% zDh{{4GlQo4;e4#qA`gRX^mz2s3h2BjqfmMqaxh_@*Q)<+;Fp_MYP+T4h;qIdkvH4k zx>rrnx_WMc^X(HV4iidJD$`)d;BoP{Cdh2s0Djw+vwzZdi68!B&GQiFz+7@sDsz8; zIjclqZV;FYOa$hbZw1M5BZ*u?zB%@>d-wKe_$_;eJ8DQ(ew|=_Zf+XAhAEfr?q$c6 zN$G94n|>YhJ+AxhSNts};RK$cZw1Eky2q&?d!k6mrKNI9Wt-k^s|nHp`BN50W_U~s zuQ}x;-NX|=idU5lH5`xTE1k{MjpRa$K(VB$gJRJbVoR{{p*nMCMvSATFKe;1Xs%@8WmW>B%{?#7Lu zz>7g%`}y;Y93MeCex?Ek!x+<-Kk}}WK90OyN@Bl_;!ccM~Y*$j$2e3|C(l)E+}b$;@+zvoqP;C#VYZ2E~ls zX!Ob+O@)_vk}o(h{@uVwCJ%fc&Rr5h7Q#yPJ(z<4o|{~>dKky#u0~86K9xyWD-M z&~e3J;@aR<{O+k5jfMIe+T`bC zmHipazN_Tc{?>S?zg)tXU*casWZJZ;)SnY(Sp)pb10B*`05ZZjdDh9bX7(`+&8a~HjdzO( zB@_)PX@TjE8HTW1MrWlfYV9I!;WY^u#RQMPd}F5T`5qlZUQ%ZlcU{?K0MyblpS^}naop^h$-V>ngiyiG#O$rV!&9W~ zf#Y4{OlyFQ*XsZoFDk5qHvPr^RD+K_!Ria;GQWnYh25U82g)`g-VKA7y8}M4_=+HV zAGodXW5~&VI-76H0nZA?F&1BNe`LppRO~ z7*@J@)NQ!h?{VgA=^Ah8Zf`&(fkhBfGXUh`S}lDX&I*v44xIMwJ6*#&{?lmWCxNo7 zYiR2yVZZnfT6cuj;^?efPdrN(RJ><8V3Y6SLl}O zsMOyD3|un%;ndUnAXFcD4`8bdOFwnLb#U!Tbb7a)nZjZv&6F@8-((L(Z!V0i@>Pqz zMQr~#HpJ5Q0IDOD4@Amb22{5?9jf1kG1vRxSC7pXyi{^0#G+=m%R{k`#x|KL(8(M%#_J4BT3>5P~;13{sT8^j~h6*6u8bVBb zqnXdHA057It05wT-nBYORR-&`3 zOSBedpxFb-7?C(BoW{7Z1u@%t7c|*@@5i^}QTzndV!IhHV zneS=QBL?IwVvOyFAPxO*k!m763b8QXT;;**zLT&l(opGtNZ77pc7EW38RXs%vSw^+ zq=D98dH`A@ZA*68)eauQifH2KHYbU}mw?rWu689rqOCNrDiPDUm5@2XMuA6V`H`bCEG=L1c@4uBAHVM2JO796=xj+?k2QVBEO zhqUZ3^VnI|rjL;bal_Wwy>`-Vw*w&ep3PJqOhZn}`4t(&G|6u)`4-*RSxzExz4x*G z^o7sa2NRH4ive`!>R!)!3_1m3u&dF8lVK*_1yvnWp%&U z>RsmQER|uYP7oKxmdrMUrj`Kb-EhIUnhII06Xsl(y`n$*|AaQN*Q*CQ6*n2%^adJNHrAVR6_%&4^5 z-(xkgD%r;B52s`PE~orm{P>W|pox{Yc{jsv|L*)Jl<1RcqLPOj6kke(0V>Ey)q75J z;~%UEb8Uax-U3|yif0akr{ZgskI(M?uG@5c3UCpD2w=DCTXQ<(pJ171UJ3rOpV*Oe z{KMY&RriEHirWJAU|en_8I>+HfraWP5W5KKt&8ff_Kqg_SFIo!cXeNpM+ zO^~Sa$)1Zz=9$B2f^BUp@NpVwf+3S1Btz1eE?aKIB@Q<9{E-OFAI)fEz6n@k|Kg26 z&hj3UAK(Kv$Kd3`lU@wl3nRIiaCdaG<`SUkqn6|g#FKQUqtY6-BltwYH2Bfm9v}&S z=K%&4AF5^kv6mIA5wDw};X~(O%YXVu(Oun($s8y61waVrcrs$?e@+P;R}K1os;dm6S0} zX8R>vg)rdW&eJckW1G{n>?g+APY%w;K(uiWsiO?hr?*p z_|l|t3Oo6T*njmtU!Go4fXmhPn2r$1G+dnx%97%z0 z4RU=XDB=L2%H%n+EdkwZwM^Q=(a%7}nOPO~``5bmn za{k7)QdS@&wbgTmF(uW7mo#kDfoCo_zD9It85$3i2Zisv=Nuddim!CJ@gbhQTK{d0 zk#nH#{w}?NMl(B!FrFdlTEPyWsMctAgLZ?_ABu&x9#i%4y(Z z-*O`mRNbG%uYwQ(fsqmnG#}M$jLsmCd@Zx+)_@#KrOKxI|85QKhq@U5#7cmFqL|iz z9OGbW{a>vyG-mRH1H$AG4wMUzxf>k88O8vYy1Cm(t99+rpgMq@lzlht;gO?Of9byl zayW!K{w_6W*4UcIXEG;NKi;veiwdP(0zQKJC0MFPLd&Z|$jbjUkE<|p<|>;JLjAi{ zg79{21myVig@Ia#IM~UjG4nlYTaq(vRIx?FH6b5j(Nr`FBq;>WNT9;8;EbNfr{Q_L z_gOjY9p^;mjwvpx66H4cNUgeuJufs9LEr~Xyf71)ZO%l~$}913e+*>LDPT)x`{J3e zU-#h-f*^bq4EM%SQu!y?0|} zaHHF6eaYQtMY@~UWc|FsjQGYH_@c?F_jxU&MC+rAyVdHlMBAs*pKtWpuWNLzI1KUj zBR4LK2(15DPt9*B<4xb#U9cg(GRUjQE41D{zBv1hmn(6cNfc=qGUZsSYOxV9RkJqr z8`;=}5MNmLUgpYNU-^S9<}x~(yWSjoHRP&wWMO`}{ldnY z+Qx$Yy3t0N{d&vB$Th3^3jaK>?4q-Om>j+O@et|LD;ep= zZCQVEN=MJ|8sy#Xon%`#1fLk#?2@Kx&Ssp=;F`>vso_d&x9qGDU)h_Owtl^l>5Xu2 zig7o=T8m!cMaJ*_@9}7_B|bS_geGHKEYTSX`-u~Gk(93?NbJgs{acL z$#xPWzOT!#ir*Ac>jnLBKye)}bX_#KYe221G+>SZ|GjIFe(%7~cR%G8U#SbPvh`%r zF-fZ4xp?zJHZk;-#YWV2XC>RSs@c@jZ>+n?8x-s5_Y&lBOSZrJc|RWfrg5S{hyK~* zpWrLLr;V>tB>!}7`jstHc)%YO`Ak=tjWN&7+JIJ$E3-{3z@mHdU6WY61qjyTbhRWJ zJuc|0Yw|Np6UU472HDyVHh?eso_73m$eF&yA=0PLO`HG!tl{9>UY`+C)iQ$&@W(;= zz-02z?Ckl{v&YgyqQQR-e&cy-4MoQBD+Qlb7Av23b9KHkdUL8^L1B@_sN4G68>ZkI zn{cxME?w3x&Y&gwZd4|TPC)_tj8*`GsTpNssy&dqz|!@_f2pzX~rEAS^$tw%>kWi~Y=JE{1eFPI-rHz5;K&}`|m$ui^`#@A?r)I%@ni+07 zgpp#ojsKm2!z?Ua>7GkcZXb%R?=$j*6CfphYM$KJas0{}*h7{)^5Km6{aUtg`5@2p zHNmrF!@VCowD0?{hUXxDj8|Qr(ds+JTIotA`1Qkp+Wj$RY6?GMf~v~}TE)FA^rmFh zpFUK|+}}qRZsPMpu;OxozYnEC_syxPn>>g$$}d0FEaqg1r9{-e)8R1+ zUE;GGppHQhg=q5#1}{mN3^aT}xTk9K9P?i)R~j(=fN;O7&BKLQx+pdv&5dv$*F3es z8n=e1)z{=%_FNLVJ;1*gA?~7S;m+D#g7BR}&0A`Va;MG)C`ea7mDFy&$m$}8kc~yz zDQh<|rWW}s)K@+o)Ux1aX(vZ?IUo#>C`AeF@?bJ*9gDpz;iIUhoU93`4_Pey@hD9e z);^R-ElY2*hy!=Som$jA7HU5f!=;9{Dzk&E246*}&o|JQ&)TyjM2NUwXn0Xs7jQ(f zA}Iz%{o?JEb|{iXJP$#Tf;#?CJBT)Q-m|U0f?-ONjhCf;A426ds*WR7&_m&T`3Gj! z)I`)pR@Q;a4`M71-Xc!itZWr1VHVMOkzTfjjOy717SVQ*Otyx{<+Cm<)s9DQSJyQh zaj)=bIC7<00)gr^9zf8~I0jq#RNkV}q5NQa=@BBA@pzKRSC;)j&We}x5U;DrsEV16 z7m75pET~;FL#!|zPe&#AXV0-nRyESs@~nLqKdAEgQL3B&AI5#m$8$u6Se~m7h@l)A zO*gdml(y7^qU6!}RQkMg;joeT>Y~&b>Sl;e0WtT?jh~1_@miZfi-D?a)~>3crIdb@ z|Dtxm*v*-%wFstt)i%aY1`cbmcCiF5an_@rqqGa$uFa&sK_teZY|0)FR2^gO()V8~ zNJBjz)+(@|o0$_qB=%R{+M``COE)8`ieR#>u;CCH5Prqdb)ALY_0Xf z(3AU5*}^3PJz1)U8nh#hu#)(Zbrya2rFH)zbNJ@~VyUX=UM-mxmiIPfQ=dPSOW*If z5`Mtf)2(vol~#lXixnSP2;xJ5#C@Mj;i}%m7b*@YYdT(IIdmC8RHefsgCv$Nx7oux zBf0ir{muYr7^e}GKsGCKquNG-eFjmB(mBYAWUaQjNH_B%5+%^gf;6qPIY&Q3mx&^{ zz=AZXu(7%@6N5krTxCI4l*hN|G-t4mE+Z%=Q6~1uMt~oD zLa(S@cr7*4uk9go5e*G@dklX7u61@XSJz4GR#^=#;7X8Cm)+Y<>C!{?gCa zK7hY8o9paz9cr&l?ySr~6%pOkcecOJ3@a}~o zau(G2txr&7M4+RGWOuU}X1V_6yNLV8;0u8d-}l)#5vgJCaJV$wm2K|0!M_Q=w_bk8Ww8!-F)~6x=QmxVd*M*e^G;wWV z1#uZs5C#xI1Qi_!2u4KI$Pz-rW|?6XR4}zssS8?MNDI`UqpU(D5wsOZ0!0x4Q7c*m z92NUUEV#UiTCp*vV(S8dwumC{WI(a+&v)d^#q%832yyHhvX*Toiy-?ThfAN!qno64RnHcyS|^HGhXjnI{v@=PO*J#B?m zhgnBhN5rlYZ`0VziX%J9vS%qD$OHW5;a7^FfqVeid0w|xD$O(Qhg4{OP=F-yRoiJy>Bq%488r> z)^r9a!K{hJDNZ#Rdf#Hn{uK~vhJuxRzlw>;gln=xtQ8E@WX85Hbb;AA3aUZ7;h~ua zPvVOf`brj~ktdN}x%Z4AIN?P;ECT+P!HGfB$$>m-W&mW{=_}k9U1DU=k2A30jrknR zU?yQ}LPl-`b4)i`lmaaz?~5|T!yw#s7BaC`)VN2rlTJ=P=H|O#L*B<4j#^`f7cQ~z z;0ZmV3q36OH^^>(CZxo3C_g62{ux&W1E4`qaktV&PZDO2B<8vbA`S>EoVx;ih}8@uYkv~mu6$` zKux@-A*J#Wu(gc9EgWEGf3Qz&Y02i$yyHVkV-8&M-i9V?q(#m^*OUROeDTC#ZGpgM zV9v?zHUC#uc$~4;aagPnH#xYXhKK{ngsei_dBWnxnj@>%n7-e%;R=$XJ5)y~sOaze z$aS1Nd7RP58$nw@)x5AN`p1BXI?$O=NuF#*TMuCOfvCe-j2!e%lC$ZXxx5pILY#Bav1 z1SrTyDg(Wd4t_$o4va1yN}4`j6iXCFp}(6MxZiZCFMNYC_k=F-0V*inL8`kYqzc!| zSc@xCKin?Jrk*I8Tw$CszK5Pnz3R?_Zj+9pCiWT3&>3-4#wAT(G{;Q|zJ?!xYXg?; z0@k5cot3I8|MjTu{q$=5TsNinf)A!u|8mK1%htPrjX>}`BtJ_}rQ@pn;HWp)X%X9! zGhqhzZ!fKh;bR-}qA z42-s&WAJHc;Z}5xwZYC?E_7MrjP0dyeWT}-`6x`wN1Lt5`2xvNv^_xh3sJZOT{j(e zt4WKzF(EBjBZOG;HL zo5J8rV%u8klYVlBF%JurC{QdAh;#%lcIm;(kg#0pj<4K#;9wp6P!3X4A*No--<}bK z%AJwT#6DZvn5UWtV3~&b=D{{oKYsRZUeB(>jn`K^>DKS?T)VQyxxT9FZ}OZ=eO=dM zDo9%F=oOJ#^49yc&($Baw=;9;Ajbq;9B`GmN@%X;SS*UYo3vVea++6r-=*e9o7=a% zU8A1l-T|;PwpP92DKzyxkB{DcQD5~aAIT!>vZ&S41U0T}(U*#?79v-LAs;nY)=U*G zQQ(#U$*SF45sVm5C7ZA@d^=Y}LX6L5Pba>gl{xAJS0tU1!JbL*XJ;RVEV7+|R0;HJe%cj<&p2{v=Ho*evvvg_`x=zXTxCv6DY=>SxFdhfSTB^#`ioA!l z@EIP9a2x3H1a?c{J84SV3v81>xKy{9 zhkCQN>b^-eq31WPN}B%9?0NyL`olJ4FGo9+T{h%DSUr&Hb9XiGAj0#~Qi|vi%N!Jv1SB8Jx;I zGoVJ{)?z5xf8t5NE1j^P3InM1EbBtaa_l)zI2V~uq-Su0(N7h|rlMcu!4BwT0I37X zF2i>gq3-gwaiWI-!pTS?Ubu&{1_O7RbTkRQ(PZtjQrB^$BNpx>N012oSQ^(1Mgi{a zWq*sWGo=sabElz)N@~WC_L!58Z~_v9k45R-TsZ<@iDUYR=sy8=lVEs78Z`;sQnFQ_ zw1QF67W>s3>|=ZYPAo@!@bPKfiD*non;vP7o$;0%AkH}744H*bl|Y`~qjYLMH6BGu z@KKs)apL}{qIa_LuSMQ+&HyW9klw^Syc|0{LDU$a8jTp>j8StbPTUn`^Hw(QYf+$X z#o!+($43D;Ep|ZRZavk85>QQKS1>0!0Lr57}U z>3tWhz`8yaqBGvLk4hnn+&8qkL0ekQdBzIqUsBY2I5gZw%QAW`8|^3ZCZac2aGpdJ z{lN)H4*jwW*2-!j3&z{?G_ufxQ5PI4YZ7Hwwbo|Rp@Pp{pqIrYP>nrgS_ zETcNJlpZ>4OWBUN_=iz3|Hz&`q-Ww9`8jRp4Fjf#088+VJo@QFrpMmr`(tap;LE3#-Q ztM#bt>Cb_U7jGq0bCM%%JXuD?vi+^}to54s)7qqHaeXBxHqyq0m0KXYc0I7*BHb7D z;_WNXcLnF}Z@aRZ@?E2`tI-;-5Rb3qjES_-W1Z}#XRRn3T=mQ=s=rlMm8cO`YI`HZ z{S};)h@u9^kT_X+b>Q9ew{}!<(jsgwIj(*RPqk&C;xQ*Ui4jHT9dlR8uAQXSk(zBM zz{xG0WfUmu*s6&?e#@$A`(9Q^knEb0Ruh`;W7?!}F{grK6S0JnJv~S#29&*siT^Ru z+}*L&UN-Ieb6tyUjV>&NB%SKh2nP|MGCw>|j6rJz}Vi&|KDbK@3H;=(V>a#FII mm3;MR<;|Ah8SYhe?o}&a&lnsS)E_l!5WuF+(1~A(jrt$?^YGjN literal 0 HcmV?d00001 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).')

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%0DC?dkE8PZl6$!u%~x;W$p@?w#E(l64T$8 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�!h?`!y8MF9&KqM!nL4HA@M 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